SIP.js icon indicating copy to clipboard operation
SIP.js copied to clipboard

No media when sip.js browser is receiver, using VPN

Open smititelu opened this issue 3 years ago • 4 comments

Describe the bug I'm using basic SIP.js 0.19.0 Web.SimpleUser() typescript app, from chrome browser. When I start call from browser, all works. When I receive calls in browser, sip signalling works fine but I can't hear audio. I have a VPN setup where "private_ip" is VPN interface address and "public_ip" is STUN resolved address.

After debugging and comparing the signalling, I noticed this ICE candidate is missing from the browser's 200 OK, when browser is receiver. Note that the candidate is present in the browser's INVITE, when browser is sender and all works:

a=candidate:1234934969 1 udp 1686052607 "public_ip"59220 typ srflx raddr "private_ip" rport 59220 generation 0 network-id 1

My question is if you have any idea why in 200OK that candidate is not sent and what can I do about it?

To Reproduce (if possible) Web.SimpleUser() receiver using VPN interface.

Expected behavior RTP media to be sent over VPN interface.

Observed behavior RTP media is sent over local interface connected to wifi, not over VPN interface.

Environment Information

  • Backend Server and version: kamailio 4.4, rtpengine 9.4.0.0
  • Browser and version: Chrome Version 89.0.4389.90 (Official Build) (64-bit)

smititelu avatar Mar 31 '21 06:03 smititelu

Full logs with sip trace please.

james-criscuolo avatar Mar 31 '21 12:03 james-criscuolo

Hi, I've attached console logs when browser is both sender and receiver.

sender.log receiver.log

smititelu avatar Apr 01 '21 06:04 smititelu

Hello, have you solved this problem? I'm facing similair issue and don't know how to fix it. I'm using v0.20.0

slachtar avatar Sep 11 '21 10:09 slachtar

Hi,

No, I didn't solve this problem.

Thanks, Stefan

smititelu avatar Sep 20 '21 09:09 smititelu

Hi,

If this is still an issue, can you please send the receiver.log again with the UserAgent logLevel option set to "debug". There are a bunch of debug level messages which will indicate what is going on with ICE. It's apparently not spending any time waiting for candidates, so would just like to confirm it's just getting the 2 host candidates which are getting put in the SDP of the 200 Ok. If that's the case, then SIP.js is doing what it is supposed to be doing and this is a network/webrtc support issue and not a bug.

Thanks,

John

john-e-riordan avatar Oct 02 '22 18:10 john-e-riordan