Error - transports.recv.connectionState stuck in new state

Trying to deploy GitHub - fmeringdal/nettu-meet: Open source video conferencing system for tutors. which uses mediasoup lib. Medisoup version tried are 3.7 and 3.8

When a user turns on his/her video or audio in the meeting room then getting this message on the console “transport connstate new” and then it stays stuck in this state.

Here is the code snippet which prints the above output.

signalingChannel.on("newConsumer", async (data: any) => {
const { joined } = useRoomStore.getState();
if (!joined) return;
const {
  peerId,
  producerId,
  id,
  kind,
  rtpParameters,
  type,
  appData,
  producerPaused,
} = data;

console.log('*************', 'utils.ts - temp log to check rtpParameters, **************')
console.log(data)
console.log(rtpParameters)

const { transports } = useTransportStore.getState();
if (!transports) return;

const consumer = await transports.recv.consume({
  id,
  producerId,
  kind,
  rtpParameters,
  appData: { ...appData, peerId }, // Trick.
});

useRoomStore.getState().addConsumer(consumer);

// the server-side consumer will be started in paused state. wait
// until we're connected, then send a resume request to the server
// to get our first keyframe and start displaying video
while (transports.recv.connectionState !== "connected") {
  log("  transport connstate", transports.recv.connectionState);
  await sleep(100);
}

if (!producerPaused) {
  // okay, we're ready. let's ask the peer to send us media
  await resumeConsumer(consumer.id);
} else {
  await pauseConsumer(consumer.id);
}

consumer.on("transportclose", () => {
  closeConsumer(consumer.id);
});

Attaching below the transport related parameters in case it helps.

When the first user joins I am getting these transport options on the client.

{
"id": "2c2239b1-18e3-478c-86f3-5e3bfd31941d",
"iceParameters": {
    "iceLite": true,
    "password": "v128uo3o9ixphketku7pz9gtu7222lr6",
    "usernameFragment": "a4t3lzi3o50ckvxw"
},
"iceCandidates": [
    {
        "foundation": "udpcandidate",
        "ip": "0.0.0.0",
        "port": 44449,
        "priority": 1076558079,
        "protocol": "udp",
        "type": "host"
    },
    {
        "foundation": "tcpcandidate",
        "ip": "0.0.0.0",
        "port": 47212,
        "priority": 1076302079,
        "protocol": "tcp",
        "tcpType": "passive",
        "type": "host"
    }
],
"dtlsParameters": {
    "fingerprints": [
        {
            "algorithm": "sha-1",
            "value": "7B:A7:5D:F1:A6:EA:72:83:4B:83:21:E2:7A:8D:A1:B1:A4:8B:A6:87"
        },
        {
            "algorithm": "sha-224",
            "value": "8A:E5:5F:5C:30:34:BD:D4:75:52:B5:0A:28:1C:5C:11:6B:84:01:5F:FE:72:82:BA:C9:6F:B6:63"
        },
        {
            "algorithm": "sha-256",
            "value": "CC:D8:6A:94:DA:71:27:45:FB:1B:32:88:2C:5C:1C:26:94:6E:BF:84:47:CA:FE:41:53:5B:D7:36:D5:66:42:A0"
        },
        {
            "algorithm": "sha-384",
            "value": "FF:25:F0:2F:A5:CF:C4:D8:9E:A1:4F:D5:47:44:98:25:BE:30:12:71:53:AB:61:D1:D1:78:BA:96:65:75:7B:A5:3B:94:49:9F:61:DA:B1:C6:B9:FF:57:41:1F:2B:78:65"
        },
        {
            "algorithm": "sha-512",
            "value": "7F:D3:E0:C6:1B:D1:AB:1F:A3:35:72:7D:9C:24:91:62:BF:A0:5E:A8:1F:EE:F0:9A:1D:05:37:AD:78:B9:E8:8E:42:6E:F9:09:4B:A5:B4:66:23:26:A1:A8:DE:08:85:27:0B:3C:60:90:89:FD:3D:1F:30:73:81:F7:35:49:7D:F5"
        }
    ],
    "role": "auto"
}
} 

{
"id": "5485ff92-9bd2-4f74-9c5f-9c1873cbaedb",
"iceParameters": {
    "iceLite": true,
    "password": "hv1nyjohkworxcrpm0icbcd29hdcy98e",
    "usernameFragment": "cesy56bc7zfqg3uk"
},
"iceCandidates": [
    {
        "foundation": "udpcandidate",
        "ip": "0.0.0.0",
        "port": 41434,
        "priority": 1076558079,
        "protocol": "udp",
        "type": "host"
    },
    {
        "foundation": "tcpcandidate",
        "ip": "0.0.0.0",
        "port": 44080,
        "priority": 1076302079,
        "protocol": "tcp",
        "tcpType": "passive",
        "type": "host"
    }
],
"dtlsParameters": {
    "fingerprints": [
        {
            "algorithm": "sha-1",
            "value": "7B:A7:5D:F1:A6:EA:72:83:4B:83:21:E2:7A:8D:A1:B1:A4:8B:A6:87"
        },
        {
            "algorithm": "sha-224",
            "value": "8A:E5:5F:5C:30:34:BD:D4:75:52:B5:0A:28:1C:5C:11:6B:84:01:5F:FE:72:82:BA:C9:6F:B6:63"
        },
        {
            "algorithm": "sha-256",
            "value": "CC:D8:6A:94:DA:71:27:45:FB:1B:32:88:2C:5C:1C:26:94:6E:BF:84:47:CA:FE:41:53:5B:D7:36:D5:66:42:A0"
        },
        {
            "algorithm": "sha-384",
            "value": "FF:25:F0:2F:A5:CF:C4:D8:9E:A1:4F:D5:47:44:98:25:BE:30:12:71:53:AB:61:D1:D1:78:BA:96:65:75:7B:A5:3B:94:49:9F:61:DA:B1:C6:B9:FF:57:41:1F:2B:78:65"
        },
        {
            "algorithm": "sha-512",
            "value": "7F:D3:E0:C6:1B:D1:AB:1F:A3:35:72:7D:9C:24:91:62:BF:A0:5E:A8:1F:EE:F0:9A:1D:05:37:AD:78:B9:E8:8E:42:6E:F9:09:4B:A5:B4:66:23:26:A1:A8:DE:08:85:27:0B:3C:60:90:89:FD:3D:1F:30:73:81:F7:35:49:7D:F5"
        }
    ],
    "role": "auto"
}
}

When the second user joins the meet room, I am getting these transport options on the client.

{
"id": "4abfb816-734a-4b66-a860-2dd88fd95f8a",
"iceParameters": {
    "iceLite": true,
    "password": "ze87is9bl32vwx0ko7d8v1qgm0fk1u9h",
    "usernameFragment": "alrip3oyoaluv83n"
},
"iceCandidates": [
    {
        "foundation": "udpcandidate",
        "ip": "0.0.0.0",
        "port": 41783,
        "priority": 1076558079,
        "protocol": "udp",
        "type": "host"
    },
    {
        "foundation": "tcpcandidate",
        "ip": "0.0.0.0",
        "port": 45051,
        "priority": 1076302079,
        "protocol": "tcp",
        "tcpType": "passive",
        "type": "host"
    }
],
"dtlsParameters": {
    "fingerprints": [
        {
            "algorithm": "sha-1",
            "value": "7B:A7:5D:F1:A6:EA:72:83:4B:83:21:E2:7A:8D:A1:B1:A4:8B:A6:87"
        },
        {
            "algorithm": "sha-224",
            "value": "8A:E5:5F:5C:30:34:BD:D4:75:52:B5:0A:28:1C:5C:11:6B:84:01:5F:FE:72:82:BA:C9:6F:B6:63"
        },
        {
            "algorithm": "sha-256",
            "value": "CC:D8:6A:94:DA:71:27:45:FB:1B:32:88:2C:5C:1C:26:94:6E:BF:84:47:CA:FE:41:53:5B:D7:36:D5:66:42:A0"
        },
        {
            "algorithm": "sha-384",
            "value": "FF:25:F0:2F:A5:CF:C4:D8:9E:A1:4F:D5:47:44:98:25:BE:30:12:71:53:AB:61:D1:D1:78:BA:96:65:75:7B:A5:3B:94:49:9F:61:DA:B1:C6:B9:FF:57:41:1F:2B:78:65"
        },
        {
            "algorithm": "sha-512",
            "value": "7F:D3:E0:C6:1B:D1:AB:1F:A3:35:72:7D:9C:24:91:62:BF:A0:5E:A8:1F:EE:F0:9A:1D:05:37:AD:78:B9:E8:8E:42:6E:F9:09:4B:A5:B4:66:23:26:A1:A8:DE:08:85:27:0B:3C:60:90:89:FD:3D:1F:30:73:81:F7:35:49:7D:F5"
        }
    ],
    "role": "auto"
}
}


{
"id": "6f2e2284-2468-4a79-928b-b044765a6777",
"iceParameters": {
    "iceLite": true,
    "password": "b2tjomcqdmno3bjig7q85rpr2jwd4s8j",
    "usernameFragment": "eho67d7lw16nee2l"
},
"iceCandidates": [
    {
        "foundation": "udpcandidate",
        "ip": "0.0.0.0",
        "port": 48942,
        "priority": 1076558079,
        "protocol": "udp",
        "type": "host"
    },
    {
        "foundation": "tcpcandidate",
        "ip": "0.0.0.0",
        "port": 49477,
        "priority": 1076302079,
        "protocol": "tcp",
        "tcpType": "passive",
        "type": "host"
    }
],
"dtlsParameters": {
    "fingerprints": [
        {
            "algorithm": "sha-1",
            "value": "7B:A7:5D:F1:A6:EA:72:83:4B:83:21:E2:7A:8D:A1:B1:A4:8B:A6:87"
        },
        {
            "algorithm": "sha-224",
            "value": "8A:E5:5F:5C:30:34:BD:D4:75:52:B5:0A:28:1C:5C:11:6B:84:01:5F:FE:72:82:BA:C9:6F:B6:63"
        },
        {
            "algorithm": "sha-256",
            "value": "CC:D8:6A:94:DA:71:27:45:FB:1B:32:88:2C:5C:1C:26:94:6E:BF:84:47:CA:FE:41:53:5B:D7:36:D5:66:42:A0"
        },
        {
            "algorithm": "sha-384",
            "value": "FF:25:F0:2F:A5:CF:C4:D8:9E:A1:4F:D5:47:44:98:25:BE:30:12:71:53:AB:61:D1:D1:78:BA:96:65:75:7B:A5:3B:94:49:9F:61:DA:B1:C6:B9:FF:57:41:1F:2B:78:65"
        },
        {
            "algorithm": "sha-512",
            "value": "7F:D3:E0:C6:1B:D1:AB:1F:A3:35:72:7D:9C:24:91:62:BF:A0:5E:A8:1F:EE:F0:9A:1D:05:37:AD:78:B9:E8:8E:42:6E:F9:09:4B:A5:B4:66:23:26:A1:A8:DE:08:85:27:0B:3C:60:90:89:FD:3D:1F:30:73:81:F7:35:49:7D:F5"
        }
    ],
    "role": "auto"
}
}

Below is the data being sent from the server which is used in code snippet pasted above when newConsumer event happens.

{
"peerId": "VZwCYhzUbcjc9nLiAAAJ",
"producerId": "c673fb19-7b32-44f9-b45d-43355a193277",
"id": "48ba5d06-942d-47ca-aaf6-3985a22de91b",
"kind": "video",
"rtpParameters": {
    "codecs": [
        {
            "mimeType": "video/VP8",
            "payloadType": 101,
            "clockRate": 90000,
            "parameters": {},
            "rtcpFeedback": [
                {
                    "type": "nack",
                    "parameter": ""
                },
                {
                    "type": "nack",
                    "parameter": "pli"
                },
                {
                    "type": "ccm",
                    "parameter": "fir"
                },
                {
                    "type": "transport-cc",
                    "parameter": ""
                }
            ]
        },
        {
            "mimeType": "video/rtx",
            "payloadType": 102,
            "clockRate": 90000,
            "parameters": {
                "apt": 101
            },
            "rtcpFeedback": []
        }
    ],
    "headerExtensions": [
        {
            "uri": "urn:ietf:params:rtp-hdrext:sdes:mid",
            "id": 1,
            "encrypt": false,
            "parameters": {}
        },
        {
            "uri": "http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time",
            "id": 4,
            "encrypt": false,
            "parameters": {}
        },
        {
            "uri": "http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01",
            "id": 5,
            "encrypt": false,
            "parameters": {}
        },
        {
            "uri": "http://tools.ietf.org/html/draft-ietf-avtext-framemarking-07",
            "id": 6,
            "encrypt": false,
            "parameters": {}
        },
        {
            "uri": "urn:ietf:params:rtp-hdrext:framemarking",
            "id": 7,
            "encrypt": false,
            "parameters": {}
        },
        {
            "uri": "urn:3gpp:video-orientation",
            "id": 11,
            "encrypt": false,
            "parameters": {}
        },
        {
            "uri": "urn:ietf:params:rtp-hdrext:toffset",
            "id": 12,
            "encrypt": false,
            "parameters": {}
        }
    ],
    "encodings": [
        {
            "ssrc": 306981400,
            "rtx": {
                "ssrc": 306981401
            }
        }
    ],
    "rtcp": {
        "cname": "jjCf7Ex05NUeAQBn",
        "reducedSize": true,
        "mux": true
    },
    "mid": "0"
},
"type": "simple",
"appData": {
    "mediaTag": "webcam",
    "peerId": "VZwCYhzUbcjc9nLiAAAJ",
    "transportId": "2c2239b1-18e3-478c-86f3-5e3bfd31941d"
},
"producerPaused": false
}

Deployment infra info.

Frontend and backend are deployed as docker containers along with nginx on aws multi docker container .

For testing purposes I opened up all tcp and udp ports on the load balancer as well as the ec2 instance.

Frontend Docker File

FROM nginx

WORKDIR /usr/share/nginx/html

RUN rm -rf ./*

COPY build/ .

COPY ./nginx/default.conf /etc/nginx/conf.d/default.conf

EXPOSE 3000

CMD ["nginx", "-g", "daemon off;"]

Backend Docker File

FROM node:14.15.4

# Install DEB dependencies and others.

RUN \

set -x \

&& apt-get update \

&& apt-get install -y net-tools build-essential valgrind

WORKDIR /app

COPY package*.json ./

COPY tsconfig.json .

COPY src src

RUN npm install

EXPOSE 5000

EXPOSE 40000-49999

CMD ["npm", "run", "start:prod]

Nginx Docker File

FROM nginx

EXPOSE 80

RUN rm /usr/share/nginx/html/*

COPY configs/default.conf /etc/nginx/conf.d/default.conf

CMD [ "nginx", "-g", "daemon off;" ]

Https is enabled on the load balancer and node server is running as a http server.

Below is the mediasoup config file

export const config = {
    // http server ip, port, and peer timeout constant
    //
    httpIp: '0.0.0.0',
    httpPort: 5000,
    httpPeerStale: 15000,

    // ssl certs. we'll start as http instead of https if we don't have
    // these
    sslCrt: 'local.crt', // is not being used
    sslKey: 'local.key',

    mediasoup: {
        worker: {
            rtcMinPort: 40000,
            rtcMaxPort: 49999,
            logLevel: 'debug',
            logTags: [
                'info',
                'ice',
                'dtls',
                'rtp',
                'srtp',
                'rtcp',
                // 'rtx',
                // 'bwe',
                // 'score',
                // 'simulcast',
                // 'svc'
            ],
        } as WorkerSettings,
        router: {
            mediaCodecs: [
                {
                    kind: 'audio',
                    mimeType: 'audio/opus',
                    clockRate: 48000,
                    channels: 2,
                },
                {
                    kind: 'video',
                    mimeType: 'video/VP8',
                    clockRate: 90000,
                    parameters: {
                        //                'x-google-start-bitrate': 1000
                    },
                },
                {
                    kind: 'video',
                    mimeType: 'video/h264',
                    clockRate: 90000,
                    parameters: {
                        'packetization-mode': 1,
                        'profile-level-id': '4d0032',
                        'level-asymmetry-allowed': 1,
                        //						  'x-google-start-bitrate'  : 1000
                    },
                },
                {
                    kind: 'video',
                    mimeType: 'video/h264',
                    clockRate: 90000,
                    parameters: {
                        'packetization-mode': 1,
                        'profile-level-id': '42e01f',
                        'level-asymmetry-allowed': 1,
                        //						  'x-google-start-bitrate'  : 1000
                    },
                },
            ] as RtpCodecCapability[],
        },

        // rtp listenIps are the most important thing, below. you'll need
        // to set these appropriately for your network for the demo to
        // run anywhere but on localhost
        webRtcTransport: {
            listenIps: [
                {
                    ip: process.env.LISTEN_IP,
                    announcedIp: process.env.ANNOUNCEMENT_IP,
                },
                // { ip: '127.0.0.1', announcedIp: '192.168.65.1' },
                // { ip: '172.17.0.1', announcedIp: undefined },
                // { ip: '127.0.0.1', announcedIp: '192.168.1.34' },
                // { ip: "192.168.42.68", announcedIp: null },
                // { ip: '10.10.23.101', announcedIp: null },
            ] as TransportListenIp[],
            initialAvailableOutgoingBitrate: 800000,
        },
    },
};

Ip is set to 0.0.0.0 and announcedIp is set to the public ip of the ec2 instance.

I am new to Webrtc and mediasoup. I am stuck with this error for quite some time. Any help would be appreciated. Thanks in advance.

This error may happen if mediasoup media server is not reachable through it’s public ip from a client browser. Thoroughly check your configuration settings for the media server and also check if udp port range and the tcp port on which the media server is running, which you have mentioned in your config file are open OR not in security group currently being used by your AWS EC2 instance.

Hope this helps.

Thanks for the reply.

I tried checking whether the udp port is open or not using netcat

nc -z -v -u ec2_public_ip 40000

Connection to ec2_public_ip port 40000 [udp/safetynetp] succeeded!

Changed docker-compose to run the containers on host network_mode as shown below:


version: "3.9"

services:
  client:
    image: client_image_url
    container_name: client
    network_mode: host
    restart: always
  backend:
    image: backend_image_url
    container_name: backend
    env_file: .env
    network_mode: host
    restart: always
  nginx:
    image: nginx_network_mode
    depends_on:
      - client
      - backend
    network_mode: host
    restart: always

Ip is set to private ip of the ec2 instance and announcedIp is set to the public ip of the ec2 instance.

Now the transports.recv.connectionState moves to connecting state and after a while gets disconnected.

Below is the server logs (with mediasoup debug on) immesiately after a user turns on his audio/video:

nginx_1    |  - - [07/Sep/2021:03:49:28 +0000] "OPTIONS /api/v1/signaling/connect-transport HTTP/1.1" 204 0 "https://e-classroom-test.planetspark.app/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.2 Safari/605.1.15" "122.162.219.253"
backend    | connect-transport cA5hn-2zdSiOfSBUAAAz { peerId: 'cA5hn-2zdSiOfSBUAAAz', clientDirection: 'send' }
backend    | 2021-09-07T03:49:28.221Z mediasoup:WebRtcTransport connect()
backend    | 2021-09-07T03:49:28.221Z mediasoup:Channel request() [method:transport.connect, id:56]
backend    | 2021-09-07T03:49:28.222Z mediasoup:Channel request succeeded [method:transport.connect, id:56]
nginx_1    | ip - - [07/Sep/2021:03:49:28 +0000] "POST /api/v1/signaling/connect-transport HTTP/1.1" 200 18 "https://e-classroom-test.planetspark.app/meeting/63c7b48c-c243-43ce-bc21-5ca7d36ebdb0" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.2 Safari/605.1.15" "122.162.219.253"
backend    | ::ffff:127.0.0.1 - - [07/Sep/2021:03:49:28 +0000] "POST /api/v1/signaling/connect-transport HTTP/1.1" 200 18 "https://e-classroom-test.planetspark.app/meeting/63c7b48c-c243-43ce-bc21-5ca7d36ebdb0" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.2 Safari/605.1.15"
nginx_1    | ip - - [07/Sep/2021:03:49:28 +0000] "OPTIONS /api/v1/signaling/send-track HTTP/1.1" 204 0 "https://e-classroom-test.planetspark.app/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.2 Safari/605.1.15" "122.162.219.253"
backend    | 2021-09-07T03:49:28.322Z mediasoup:Transport produce()
backend    | 2021-09-07T03:49:28.324Z mediasoup:Channel request() [method:transport.produce, id:57]
backend    | 2021-09-07T03:49:28.325Z mediasoup:Channel request succeeded [method:transport.produce, id:57]
backend    | 2021-09-07T03:49:28.325Z mediasoup:Producer constructor()
nginx_1    | 172.31.13.181 - - [07/Sep/2021:03:49:28 +0000] "POST /api/v1/signaling/send-track HTTP/1.1" 200 45 "https://e-classroom-test.planetspark.app/meeting/63c7b48c-c243-43ce-bc21-5ca7d36ebdb0" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.2 Safari/605.1.15" "122.162.219.253"
backend    | 2021-09-07T03:49:28.326Z mediasoup:Transport consume()
backend    | 2021-09-07T03:49:28.326Z mediasoup:Channel request() [method:transport.consume, id:58]
backend    | ::ffff:127.0.0.1 - - [07/Sep/2021:03:49:28 +0000] "POST /api/v1/signaling/send-track HTTP/1.1" 200 45 "https://e-classroom-test.planetspark.app/meeting/63c7b48c-c243-43ce-bc21-5ca7d36ebdb0" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.2 Safari/605.1.15"
backend    | 2021-09-07T03:49:28.327Z mediasoup:Channel [pid:38] RTC::SimpleConsumer::CreateRtpStream() | [ssrc:427266687, payloadType:101]
backend    | 2021-09-07T03:49:28.328Z mediasoup:Channel [pid:38] RTC::SimpleConsumer::CreateRtpStream() | NACK supported
backend    | 2021-09-07T03:49:28.328Z mediasoup:Channel [pid:38] RTC::SimpleConsumer::CreateRtpStream() | PLI supported
backend    | 2021-09-07T03:49:28.328Z mediasoup:Channel [pid:38] RTC::SimpleConsumer::CreateRtpStream() | FIR supported
backend    | 2021-09-07T03:49:28.328Z mediasoup:Channel request succeeded [method:transport.consume, id:58]
backend    | 2021-09-07T03:49:28.328Z mediasoup:Consumer constructor()
nginx_1    | 172.31.13.181 - - [07/Sep/2021:03:49:28 +0000] "OPTIONS /api/v1/signaling/connect-transport HTTP/1.1" 204 0 "https://e-classroom-test.planetspark.app/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36" "122.162.219.253"
backend    | connect-transport 8NIn2C3M_jDiI1kTAAAx { peerId: '8NIn2C3M_jDiI1kTAAAx', clientDirection: 'recv' }
backend    | 2021-09-07T03:49:28.423Z mediasoup:WebRtcTransport connect()
backend    | 2021-09-07T03:49:28.424Z mediasoup:Channel request() [method:transport.connect, id:59]
backend    | 2021-09-07T03:49:28.424Z mediasoup:Channel request succeeded [method:transport.connect, id:59]
backend    | ::ffff:127.0.0.1 - - [07/Sep/2021:03:49:28 +0000] "POST /api/v1/signaling/connect-transport HTTP/1.1" 200 18 "https://e-classroom-test.planetspark.app/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36"
nginx_1    | 172.31.13.181 - - [07/Sep/2021:03:49:28 +0000] "POST /api/v1/signaling/connect-transport HTTP/1.1" 200 18 "https://e-classroom-test.planetspark.app/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36" "122.162.219.253"

@ibc - Kindly look into this. Any help would be appreciated. Thanks

It doesn’t seem like you specify ANNOUNCEMENT_IP, which is the root of the problem in AWS even with host network.

Also please don’t ping maintainers directly, especially when you have questions about unofficial tools built on top of mediasoup.

1 Like

After checking thoroughly I found that I did a spelling mistake with the announcement_ip env variable. Had set the announcement ip to the public ip of the ec2 instance but had done a spelling mistake. It is working fine now.

Thanks a lot for saving days of unnecessary work.