[Freeswitch-users] FS merges RE-INVITE request into 200 OK

Mickael Hubert mickael at winlux.fr
Tue Oct 15 09:13:33 UTC 2019


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"/>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20191015/917b52d5/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: call_flow.png
Type: image/png
Size: 96808 bytes
Desc: not available
URL: <http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20191015/917b52d5/attachment-0001.png>


More information about the FreeSWITCH-users mailing list