Asterisk Removes Ice Lines In Sdp When Calling Between Webrtc Clients
Hello,
I have a problem with a call between 2 webrtc clients. Asterisk removes the ice-related lines from the sdp when it sends the INVITE out, and the called webrtc client rejects the INVITE due to the missing ice lines. Both webrtc clients are defined exactly the same way, same values in all fields except the number of the peer.
There’s probably something I’ve changed that causes this behavior. Can anyone tell me what’s wrong in my configuration?
res_rtp_asterisk is included in the compilation and uuid-devel is installed, Asterisk version is 11.11.0. Ice is enabled in rtp.conf as well as in both clients in the realtime sip peer table.
Here’s my realtime peer data:
*CLI> realtime load sippeers name 660
Column Name Column Value
——————– ——————
11 thoughts on - Asterisk Removes Ice Lines In Sdp When Calling Between Webrtc Clients
What does a DEBUG log show with ‘sip set debug on’ when the outbound call is made?
Hi Matthew,
Here’s the debug output:
<--- SIP read from UDP:PU.BL.IC.IP:5060 --->
INVITE sip:661@testers.com SIP/2.0
Record-Route:
That’s not really DEBUG output – just VERBOSE output from the CLI with ‘sip set debug on’.
That aside, your initial e-mail provided the configuration for SIP peer
660, but not for SIP peer 661. In your dialplan, you are dialling SIP peer
661:
— Executing [661@default:2] Dial(“SIP/660-00000007”,
“SIP/661,3600,rt”) in new stack
== Using SIP RTP TOS bits 184
== Using SIP RTP CoS mark 5
What is their configuration?
Hi,
My bad, below is the output for peer 661 and the log output, which does not tell me much. I guess Asterisk assumes it’s working correctly as there are no errors etc, however for some reason the INVITE leaves Asterisk without the ice definitions in the sdp. I must assume it’s a configuration issue as I’ve been modifying the sip peer table recently, and installed Asterisk 12, then moved back to 11. I compiled the current 11.11.0 version from source, starting from ./configure –with-crypto –with-ssl –with-srtp, make menuselect etc.
*CLI> realtime load sippeers name 661
Column Name Column Value
——————– ——————
Hi,
Is there anything I can do with this problem? Re-installing Asterisk does not solve this and the problem still persists. Or is there any other logs or configurations I can provide to help figure out why Asterisk is removing lines from the sdp?
Any ideas would be greatly appreciated! I also tried removing everything under /etc/asterisk/ and make samples to restore any errors I could have had in my configurations, then restoring my minimal configuration:
asterisk.conf, extconfig.conf, extensions.conf, res_mysql.conf and sip.conf. This did not help.
(in case this message comes double, I just canceled posting of previous similar one as it was too big)
cheers, Olli
QXN0ZXJpc2sgaXMgbm90IGEgU0lQIFByb3h5LiAgIEl0IGlzIGEgQjJCVUEgYW5kIHdpbGwgKmFs d2F5cyogcmVwbGFjZSB0aGUgU0RQIHdpdGggaXRzIG93bi4NCg0KRnJvbTogYXN0ZXJpc2stdXNl cnMtYm91bmNlc0BsaXN0cy5kaWdpdW0uY29tIFttYWlsdG86YXN0ZXJpc2stdXNlcnMtYm91bmNl c0BsaXN0cy5kaWdpdW0uY29tXSBPbiBCZWhhbGYgT2YgT2xsaSBIZWlza2FuZW4NClNlbnQ6IFRo dXJzZGF5LCBPY3RvYmVyIDAyLCAyMDE0IDk6MDYgQU0NClRvOiBBc3RlcmlzayBVc2VycyBNYWls aW5nIExpc3QgLSBOb24tQ29tbWVyY2lhbCBEaXNjdXNzaW9uDQpTdWJqZWN0OiBSZTogW2FzdGVy aXNrLXVzZXJzXSBBc3RlcmlzayByZW1vdmVzIGljZSBsaW5lcyBpbiBzZHAgd2hlbiBjYWxsaW5n IGJldHdlZW4gd2VicnRjIGNsaWVudHMNCg0KDQpIaSwNCg0KSXMgdGhlcmUgYW55dGhpbmcgSSBj YW4gZG8gd2l0aCB0aGlzIHByb2JsZW0/IFJlLWluc3RhbGxpbmcgQXN0ZXJpc2sgZG9lcyBub3Qg c29sdmUgdGhpcyBhbmQgdGhlIHByb2JsZW0gc3RpbGwgcGVyc2lzdHMuIE9yIGlzIHRoZXJlIGFu eSBvdGhlciBsb2dzIG9yIGNvbmZpZ3VyYXRpb25zIEkgY2FuIHByb3ZpZGUgdG8gaGVscCBmaWd1
cmUgb3V0IHdoeSBBc3RlcmlzayBpcyByZW1vdmluZyBsaW5lcyBmcm9tIHRoZSBzZHA/DQoNCkFu eSBpZGVhcyB3b3VsZCBiZSBncmVhdGx5IGFwcHJlY2lhdGVkISBJIGFsc28gdHJpZWQgcmVtb3Zp bmcgZXZlcnl0aGluZyB1bmRlciAvZXRjL2FzdGVyaXNrLyBhbmQgbWFrZSBzYW1wbGVzIHRvIHJl c3RvcmUgYW55IGVycm9ycyBJIGNvdWxkIGhhdmUgaGFkIGluIG15IGNvbmZpZ3VyYXRpb25zLCB0
aGVuIHJlc3RvcmluZyBteSBtaW5pbWFsIGNvbmZpZ3VyYXRpb246IGFzdGVyaXNrLmNvbmYsIGV4
dGNvbmZpZy5jb25mLCBleHRlbnNpb25zLmNvbmYsIHJlc19teXNxbC5jb25mIGFuZCBzaXAuY29u Zi4gVGhpcyBkaWQgbm90IGhlbHAuDQoNCihpbiBjYXNlIHRoaXMgbWVzc2FnZSBjb21lcyBkb3Vi bGUsIEkganVzdCBjYW5jZWxlZCBwb3N0aW5nIG9mIHByZXZpb3VzIHNpbWlsYXIgb25lIGFzIGl0
IHdhcyB0b28gYmlnKQ0KDQpjaGVlcnMsDQpPbGxpDQo
Hi,
Thanks Eric for your reply, yes I know Asterisk replaces the sdp, however it should create ice lines when calling to a webrtc client, which it is currently not doing.
To recap my problem (check previous messages for details); I have 2 webrtc clients (sip.js on chrome) with realtime information that appears to be correct. When calling from A to B, INVITE coming to Asterisk contains correct sdp, but when the INVITE leaves Asterisk, the sdp lacks ice lines.
cheers, Olli
2014-10-02 18:13 GMT+03:00 Eric Wieling:
Unfortunately, I can’t reproduce this. We’ve been running a lot of tests with a variety of SIP clients over the past week here at SIPit –
both with and without ICE – and I haven’t had a single instance of Asterisk failing to provide any ICE candidates when it is properly configured to do so.
Hi,
Thanks Matthew for trying to reproduce the problem, I appreciate your efforts very much.
There must be something off in my setup in one way or another. I could just discard this server and build a new one, but I think it’s not good practice to leave a problem unsolved, so I’ll continue trying to figure this out. One thing I noticed – don’t know if it’s relevant or not – due to a repo mismatch, I had problems with updating libgdiplus and libgdiplus-devel package, had to disable a repo and reinstall those and my mono installation
(which is making me lose my hair).
Is there a way to debug Asterisk itself? Or find the code that parses the outbound sdp? I figured there must be an if statement or more that determines whether or not to parse the ice lines into the sdp body. Finding that/those statements that produce the kind of sdp I’m seeing Asterisk send out, might tell something about what’s wrong with my setup. As my c is not exactly fluent I wasn’t sure which code files to search, can you guys help out with that?
cheers, Olli
2014-10-03 11:31 GMT+03:00 Matthew Jordan:
Olli Heiskanen wrote:
I would suggest using the latest version of 11 (as older versions will not work with current browsers). As well do you have the uuid development library installed? If not pjproject won’t be built and you won’t have ICE support which will yield exactly this result.
Hi Joshua,
Excellent! I didn’t even remember to consider newer versions of asterisk as
11.11 was the latest one when I started building on. I have had libuuid and libuuid-devel installed the whole time, but perhaps 11.11 just did not see it there. I just installed 11.13 and it works perfectly.
Thank you sir, I will raise a drink for you next time I’m out.
cheers, Olli
2014-10-07 16:55 GMT+03:00 Joshua Colp: