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"/>