[OpenSIPS-Users] WebRTC-SIP only working in one direction

John Quick john.quick at smartvox.co.uk
Fri Nov 9 08:42:15 EST 2018


I have been trying to get WebRTC working with OpenSIPS v2.4 and rtpengine
version "git-master-3102357"
Testing has been tried using both Chrome and Firefox browsers running on
Windows 10 PCs combined with two different web-host-servers:
 (1) A home-grown sip.js page and    (2) the ctxSIP trial client available
at collecttix.github.io/ctxSip

Test calls from the WebRTC client to an Asterisk server, via OpenSIPS and
rtpengine, are working okay.
However, I cannot get calls to work the other way.
The WebRTC client registers okay. It appears in the location table with
typical values like this:
 Username=1002
 Contact= sip:mch27rvr at bcdtsq8dhvt4.invalid;transport=ws
 Received= sip:123.45.67.89:15752;transport=wss
 Cflags= WS_DEVICE NATTED_CLIENT
 User-agent= SIP.js/0.11.3 (my sip.js)   OR     SIP.js/0.7.8 (ctx client)

Here is what happens when I make a call from Asterisk to user 1002:
Using Chrome or Firefox with my own sip.js web page:
It initiates ringing on the browser-based client (the caller's name is shown
correctly), but when I click the Answer button, the call fails.
The SIP time sequence between OpenSIPS and the WebRTC client looks like
this:
----->   INVITE with SDP
<----    100 Trying
<----    180 Ringing
  Browser page shows incoming call and displays correct caller display name
  I click the Answer button
<---     480 Temporarily Unavailable
On the web page it reports:  Call cancelled:  Cause: WebRTC Error

Using Chrome with the ctxSip client:
The browser-based client rejects the call as soon as the INVITE is received.
----->   INVITE with SDP
<----    100 Trying
<----    488 Not Acceptable Here

Using Firefox with the ctxSip client:
The browser-based client shows an incoming call and the caller's display
name is shown correctly. It offers a green and a red button to respond to
the call.
I press the green button and the call ends immediately.
----->   INVITE with SDP
<----    100 Trying
<----    180 Ringing
  Browser page shows incoming call and displays correct caller display name
  I click the Answer button
<---     480 Temporarily Unavailable
The browser window simply reports "Terminated".

Any help or ideas would be very welcome. I've tried everything I can think
of including changes to the codecs offered and various adjustments to the
arguments passed (e.g. rtcp-mux, ICE) in rtpengine_offer(). My current
arguments string is like this:
"trust-address replace-origin replace-session-connection rtcp-mux-offer
ICE=force codec-strip-G729 transcode-PCMU RTP/SAVPF"

My JavaScript skills are minimal. I think there must be a way to get more
debug info from sip.js, but I cannot figure it out. If anyone can post a
sample of the code showing how to activate the debug logging that would be
really useful. I'm not even sure where the log output would be written.

Could it be relevant that rtpengine and OpenSIPS, although both running on
one server, are bound to different IP addresses?

John Quick
Smartvox Limited




More information about the Users mailing list