FS merges RE-INVITE request into 200 OK
Hi list, I have a sympathetic "issue" or miss-configuration with FS. SIP provider <--> FS <--> Opensips <--> Asterisk After long investigation, I saw FS merge a RE-INVITE request from Asterisk into 200OK to provider. ONly when I have 183 session progress Ex: *SDP INVITE from Provider (SIP provider -->FS)* v=0 o=Sonus_UAC 7950 990 IN IP4 ******** s=SIP Media Capabilities c=IN IP4 ********* t=0 0 m=audio 22970 RTP/AVP 8 18 2 101 a=rtpmap:8 PCMA/8000 a=rtpmap:18 G729/8000 a=fmtp:18 annexb=no a=rtpmap:2 G726-32/8000 a=rtpmap:101 telephone-event/8000 a=fmtp:101 0-15 a=sendrecv a=ptime:20 *SDP INVITE from FS to asterisk (FS --> Opensips --> Asterisk)* v=0 o=Sonus_UAC 7950 990 IN IP4 ******** s=SIP Media Capabilities c=IN IP4 ****** t=0 0 m=audio 22970 RTP/AVP 8 18 2 101 a=rtpmap:8 PCMA/8000 a=rtpmap:18 G729/8000 a=fmtp:18 annexb=no a=rtpmap:2 G726-32/8000 a=rtpmap:101 telephone-event/8000 a=fmtp:101 0-15 a=ptime:20 *183 from asterisk (Asterisk --> Opensips --> FS)* v=0 o=- 7950 992 IN IP4 10.1.15.89 s=Asterisk c=IN IP4 10.1.15.89 t=0 0 m=audio 14096 RTP/AVP 8 18 101 a=rtpmap:8 PCMA/8000 a=rtpmap:18 G729/8000 a=fmtp:18 annexb=no a=rtpmap:101 telephone-event/8000 a=fmtp:101 0-16 a=ptime:20 a=maxptime:150 a=sendrecv *183 from FS to SIP provider (FS --> provider)* v=0 o=- 7950 992 IN IP4 ******* s=Asterisk c=IN IP4 ******* t=0 0 m=audio 18344 RTP/AVP 8 18 101 a=rtpmap:8 PCMA/8000 a=rtpmap:18 G729/8000 a=fmtp:18 annexb=no a=rtpmap:101 telephone-event/8000 a=fmtp:101 0-16 a=maxptime:150 a=rtcp:18345 a=ptime:20 *200OK from asterisk to FS (asterisk --> FS) (same code than 183)* v=0 o=- *7950 992* IN IP4 10.1.15.89 s=Asterisk c=IN IP4 10.1.15.89 t=0 0 m=audio 14096 RTP/AVP *8 18 101* a=rtpmap:8 PCMA/8000 a=rtpmap:18 G729/8000 a=fmtp:18 annexb=no a=rtpmap:101 telephone-event/8000 a=fmtp:101 0-16 a=ptime:20 a=maxptime:150 a=sendrecv *RE-INVITE from asterisk (very close to 200OK)* v=0 o=- *7950 993* IN IP4 10.1.15.89 s=Asterisk c=IN IP4 10.1.15.89 t=0 0 m=audio 14096 RTP/AVP *8 0 18 101* a=rtpmap:8 PCMA/8000 a=rtpmap:0 PCMU/8000 a=rtpmap:18 G729/8000 a=fmtp:18 annexb=no a=rtpmap:101 telephone-event/8000 a=fmtp:101 0-16 a=ptime:20 a=maxptime:150 a=sendrecv *Final 200OK from FS to sip provider (FS --> sip provider)* v=0 o=- *7950 993* IN IP4 ****** s=Asterisk c=IN IP4 ****** t=0 0 m=audio 18344 RTP/AVP *8 0 18 101* a=rtpmap:8 PCMA/8000 a=rtpmap:0 PCMU/8000 a=rtpmap:18 G729/8000 a=fmtp:18 annexb=no a=rtpmap:101 telephone-event/8000 a=fmtp:101 0-16 a=maxptime:150 a=rtcp:18345 a=ptime:20 We can see FS receives REINVITE close to 200OK from asterisk, it doesn't send original 200OK to SIP provider, but "merge" 200OK with sdp from REINVITE (from asterisk) ==> same owner and codecs (7950 / 993). - owner 200OK from asterisk: 7950 992 / codecs: 8 18 101 - owner REINVITE from asterisk: 7950 993 / codecs: 8 0 18 101 - owner 200OK from FS to SIP provider: 7950 993 / codecs: 8 0 18 101 After that, FS never sends 200OK to the asterisk's REINVITE and opensips hangup call avec timeout (2 mins) (cf call flow in attachment). Do you already saw that ? How can I correct this please ? thanks in advance PS: - FreeSWITCH Version 1.10.1-release+git~20190820T165404Z~f9990221e6~64bit (git f999022 2019-08-20 16:54:04Z 64bit) - I use <param name="inbound-late-negotiation" value="true"/>
Hi all, Thanks to my friend, Vallimamod Abdullah. We have found origin of this issue. Freeswitch is configured to be bypass media. When asterisk (version 15) bridge call with differents codecs, it sends RE-INVITE very quickly. FS receives this reinvite before sends 200OK to sip provider, and in this case it replaces the SDP into 200OK with RE-INVITE sdp. I coundn't correct this issue, I had to downgrade version of asterisk to be 13.29. This version doesn't reinvite. The second workaround should be copy asterisk's codecs from leg A to leg B. Thanks a lot Valli ;) ++ Le mar. 15 oct. 2019 à 11:13, Mickael Hubert <mickael@winlux.fr> a écrit :
Hi list, I have a sympathetic "issue" or miss-configuration with FS. SIP provider <--> FS <--> Opensips <--> Asterisk
After long investigation, I saw FS merge a RE-INVITE request from Asterisk into 200OK to provider. ONly when I have 183 session progress
Ex: *SDP INVITE from Provider (SIP provider -->FS)*
v=0 o=Sonus_UAC 7950 990 IN IP4 ******** s=SIP Media Capabilities c=IN IP4 ********* t=0 0 m=audio 22970 RTP/AVP 8 18 2 101 a=rtpmap:8 PCMA/8000 a=rtpmap:18 G729/8000 a=fmtp:18 annexb=no a=rtpmap:2 G726-32/8000 a=rtpmap:101 telephone-event/8000 a=fmtp:101 0-15 a=sendrecv a=ptime:20
*SDP INVITE from FS to asterisk (FS --> Opensips --> Asterisk)* v=0 o=Sonus_UAC 7950 990 IN IP4 ******** s=SIP Media Capabilities c=IN IP4 ****** t=0 0 m=audio 22970 RTP/AVP 8 18 2 101 a=rtpmap:8 PCMA/8000 a=rtpmap:18 G729/8000 a=fmtp:18 annexb=no a=rtpmap:2 G726-32/8000 a=rtpmap:101 telephone-event/8000 a=fmtp:101 0-15 a=ptime:20
*183 from asterisk (Asterisk --> Opensips --> FS)* v=0 o=- 7950 992 IN IP4 10.1.15.89 s=Asterisk c=IN IP4 10.1.15.89 t=0 0 m=audio 14096 RTP/AVP 8 18 101 a=rtpmap:8 PCMA/8000 a=rtpmap:18 G729/8000 a=fmtp:18 annexb=no a=rtpmap:101 telephone-event/8000 a=fmtp:101 0-16 a=ptime:20 a=maxptime:150 a=sendrecv
*183 from FS to SIP provider (FS --> provider)* v=0 o=- 7950 992 IN IP4 ******* s=Asterisk c=IN IP4 ******* t=0 0 m=audio 18344 RTP/AVP 8 18 101 a=rtpmap:8 PCMA/8000 a=rtpmap:18 G729/8000 a=fmtp:18 annexb=no a=rtpmap:101 telephone-event/8000 a=fmtp:101 0-16 a=maxptime:150 a=rtcp:18345 a=ptime:20
*200OK from asterisk to FS (asterisk --> FS) (same code than 183)* v=0 o=- *7950 992* IN IP4 10.1.15.89 s=Asterisk c=IN IP4 10.1.15.89 t=0 0 m=audio 14096 RTP/AVP *8 18 101* a=rtpmap:8 PCMA/8000 a=rtpmap:18 G729/8000 a=fmtp:18 annexb=no a=rtpmap:101 telephone-event/8000 a=fmtp:101 0-16 a=ptime:20 a=maxptime:150 a=sendrecv
*RE-INVITE from asterisk (very close to 200OK)* v=0 o=- *7950 993* IN IP4 10.1.15.89 s=Asterisk c=IN IP4 10.1.15.89 t=0 0 m=audio 14096 RTP/AVP *8 0 18 101* a=rtpmap:8 PCMA/8000 a=rtpmap:0 PCMU/8000 a=rtpmap:18 G729/8000 a=fmtp:18 annexb=no a=rtpmap:101 telephone-event/8000 a=fmtp:101 0-16 a=ptime:20 a=maxptime:150 a=sendrecv
*Final 200OK from FS to sip provider (FS --> sip provider)* v=0 o=- *7950 993* IN IP4 ****** s=Asterisk c=IN IP4 ****** t=0 0 m=audio 18344 RTP/AVP *8 0 18 101* a=rtpmap:8 PCMA/8000 a=rtpmap:0 PCMU/8000 a=rtpmap:18 G729/8000 a=fmtp:18 annexb=no a=rtpmap:101 telephone-event/8000 a=fmtp:101 0-16 a=maxptime:150 a=rtcp:18345 a=ptime:20
We can see FS receives REINVITE close to 200OK from asterisk, it doesn't send original 200OK to SIP provider, but "merge" 200OK with sdp from REINVITE (from asterisk) ==> same owner and codecs (7950 / 993). - owner 200OK from asterisk: 7950 992 / codecs: 8 18 101 - owner REINVITE from asterisk: 7950 993 / codecs: 8 0 18 101 - owner 200OK from FS to SIP provider: 7950 993 / codecs: 8 0 18 101
After that, FS never sends 200OK to the asterisk's REINVITE and opensips hangup call avec timeout (2 mins) (cf call flow in attachment).
Do you already saw that ? How can I correct this please ?
thanks in advance
PS: - FreeSWITCH Version 1.10.1-release+git~20190820T165404Z~f9990221e6~64bit (git f999022 2019-08-20 16:54:04Z 64bit) - I use <param name="inbound-late-negotiation" value="true"/>
participants (1)
-
Mickael Hubert