I see an issue happening with only Mac OS Desktop Linphone version 4.2.5. It is not coming with Mobile Linphone and other SIP clients I tried.
The case is Mac OS Linphone gets an incoming call with non ICE supported SDP (SDP with INVITE does not contain any attribute of ICE) and Mac OS Linphone replies it with 200 OK. The 200 OK SDP also does not contain any ICE attributes. Now the issue happens when Mac OS Linphone tries to put the call on hold. I see that Mac OS Linphone re-INVITE contains only ice attributes ( a=ice-pwd:db25532a84d7055079f58b52 and a=ice-ufrag:fa8d26ef) but no ice-candidates. So these two ICE attributes indicate the support of ICE but does not have the ice-candidates. Freeswitch replies the Hold Request with 488 Not acceptable. The logs on Freeswitch shows that it tries to search for ice-candidates in the re-INVITE for call hold and it does not find.
Logs Snippet from Freeswitch Server (I have masked the IPs)
INITIAL INVITE SDP:
o=MH 1656670131 1656670132 IN IP4 10.98.4.001
c=IN IP4 10.98.4.001
m=audio 25606 RTP/AVP 102 9 0 8 3 103 101
a=fmtp:102 useinbandfec=1; maxaveragebitrate=30000; maxplaybackrate=48000; ptime=20; minptime=10; maxptime=40
a=rtcp:25607 IN IP4 10.97.4.175
INITIAL 200 OK SDP (from MacOS Linphone):
o=bpante 373 442 IN IP4 22.214.171.124
c=IN IP4 126.96.36.199
m=audio 22158 RTP/AVP 102 103
re-INVITE SDP (from MacOS Linphone on Call Hold):
o=bpante 373 443 IN IP4 188.8.131.52
c=IN IP4 184.108.40.206
a=rtcp-xr:rcvr-rtt=all:10000 stat-summary=loss,dup,jitt,TTL voip-metrics
m=audio 22172 RTP/AVP 102 101
a=rtcp-fb:* trr-int 1000
a=rtcp-fb:* ccm tmmbr
Freeswitch replies with 488 Not Acceptable Here.
switch_core_media.c:3567 sofia/external/sbc no suitable candidates found.
I see that this issue is Fixed in Latest Linphone 4.4.8 and the only difference I see is that now re-INVITE does not contain the ICE support. The ICE attributes in the red highlighted color are not present now in the re-INVITE SDP.
So why should these not be present?
What makes it behave bad here?
So what will happen when Linphone Desktop needs ICE support if it is behind some restricted NAT?
Thanks and Regards