That's also a solution, but I prefer not dropping the 183 :)
Daniel's (the other one ;-)) suggestion was the solution in the end:
if(subst("/^o=somestuff ([0-9]+) ([0-9]+) IN IP4 (.*)$/o=somestuff \1 \1 IN IP4 \3/")) { xlog("L_INFO", "Fixed Asterisk incorrect version number in SDP"); msg_apply_changes(); } rtpproxy_answer("wrei");
Now it's looking OK:
v=0 o=tismi 895007076 895007076 IN IP4 185.X.X.X s=XXXXX c=IN IP4 185.X.X.X t=0 0 m=audio 39250 RTP/AVP 8 0 18 3 101 a=rtpmap:8 PCMA/8000 a=rtpmap:0 PCMU/8000 a=rtpmap:18 G729/8000 a=fmtp:18 annexb=no a=rtpmap:3 GSM/8000 a=rtpmap:101 telephone-event/8000 a=fmtp:101 0-16 a=silenceSupp:off - - - - a=ptime:20 a=sendrecv a=sdpmangled:yes
Matthias
On 01/15/2015 03:29 PM, Daniel Tryba wrote:
On Thursday 15 January 2015 13:38:00 Matthias van der Vlies wrote:
I have an on-reply route that needs to change the SDP version for the reply coming in. The use case is that I have a mobile originated call and there is some Ericsson switch that doesn't like it when the SDP version is updated (in this case by asterisk) although nothing has changed to the actual SDP (183 session progress and then OK.) Funny thing is that Asterisk will actually drop a call if it receives a re-INVITE with same version... That's why they invented ignoresdpversion, but now it's the other way around.... :)
Mobile phone -> Ericsson MSC -> ACME packet -> (18X.4X.XXX.XX) Kamailio (10.41.0.21) -> Asterisk
Sounds familiar (the Ericsson is the troublemaker), my solution was to upgrade to asterisk 11.x. But since patching is not possible, I assume upgrading is neither. A workaround was to drop the 183 message in kamailio to Ericsson:
onreply_route[MANAGE_REPLY] { xlog("incoming reply\n"); if(status=~"[12][0-9][0-9]") route(NATMANAGE);
if(status=="183") { drop; }
...