Hello!
Probably this case is not connected Kamailio directly, but it can be
somebody will point me in the correct direction :)
We have VoIP solution: FreeSWITCH -> Kamailio + Rtpengine -> WebRTC Chrome.
Everything works Ok except iOS application based on React Native WebRTC (
https://github.com/oney/react-native-webrtc) + JsSIP.
It answers error 488 on incoming INVITE (wSDP):
INVITE SDP to iOS:
*......*
*v=0*
*o=FreeSWITCH 1508701860 1508701861 IN IP4 52.52.52.52*
*s=FreeSWITCH*
*c=IN IP4 52.52.52.52*
*t=0 0*
*m=audio 30028 RTP/SAVPF 0 8 102*
*a=rtpmap:0 PCMU/8000*
*a=rtpmap:8 PCMA/8000*
*a=rtpmap:102 opus/48000/2*
*a=fmtp:102 useinbandfec=1; maxaveragebitrate=14400; maxplaybackrate=8000;
ptime=20; minptime=10; maxptime=40*
*a=ptime:20*
*a=sendrecv*
*a=rtcp:30028*
*a=rtcp-mux*
*a=setup:actpass*
*a=fingerprint:sha-1
97:1A:E9:FE:D6:65:98:E6:88:EE:D5:9F:20:A3:19:F8:86:E7:E0:E3*
*a=ice-ufrag:9QBO8qg2*
*a=ice-pwd:PPGPo35xGBAs6RnTdMYVM9I8fx*
*a=candidate:KXENzrffZpQvwxdV 1 UDP 2130706431 52.52.52.52 30028 typ host*
iOS console log:
*11:55:23.670 browser.js:133 JsSIP:WebSocketInterface send() +10ms*
*11:55:23.670 browser.js:133 JsSIP:RTCSession session progress +5ms*
*11:55:23.671 browser.js:133 JsSIP:RTCSession emit "progress" +1ms*
*11:55:23.671 webrtc.js:108 WebRTC.on progress: local*
*11:55:23.679 browser.js:133 JsSIP:RTCSession emit "peerconnection" +8ms*
*11:55:23.680 webrtc.js:89 WebRTC.on peerconnection*
*11:55:23.680 browser.js:133 JsSIP:RTCSession emit "sdp" +1ms*
*11:55:23.689 browser.js:133 JsSIP:Transport send() +20ms**11:55:23.689
browser.js:133 JsSIP:Transport sending message:*
*SIP/2.0 488 Not Acceptable Here*
*11:55:23.701 debug.js:115 JsSIP:ERROR:RTCSession emit
"peerconnection:setremotedescriptionfailed" [error:Error: Failed to set
remote offer sdp: Failed to create channels.*
I found similar issue on thier git
https://github.com/oney/react-native-webrtc/issues/293 and main solution is
to struct SDP in way like:
*a=group:BUNDLE audiom=audio PORT RTP/SAVPF N M Ka=mid:audio*
How to modify SDP on Kamailio side (after Rtpengine modification) like
below?
*v=0*
*o=FreeSWITCH 1508701860 1508701861 IN IP4 52.52.52.52*
*s=FreeSWITCH*
*c=IN IP4 52.52.52.52*
*t=0 0*
*a=group:BUNDLE audio*
*m=audio 30028 RTP/SAVPF 0 8 102*
*a=rtpmap:0 PCMU/8000*
*a=rtpmap:8 PCMA/8000*
*a=rtpmap:102 opus/48000/2*
*a=fmtp:102 useinbandfec=1; maxaveragebitrate=14400; maxplaybackrate=8000;
ptime=20; minptime=10; maxptime=40*
*a=ptime:20*
*a=sendrecv*
*a=rtcp:30028*
*a=rtcp-mux*
*a=setup:actpass*
*a=mid:audio*
*a=fingerprint:sha-1
97:1A:E9:FE:D6:65:98:E6:88:EE:D5:9F:20:A3:19:F8:86:E7:E0:E3*
*a=ice-ufrag:9QBO8qg2*
*a=ice-pwd:PPGPo35xGBAs6RnTdMYVM9I8fx*
*a=candidate:KXENzrffZpQvwxdV 1 UDP 2130706431 52.52.52.52 30028 typ host*
BR,
Denys