<div dir="ltr"><span style="box-sizing:border-box;color:rgb(73,73,73);font-family:"Gotham SSm",Helvetica,Arial,sans-serif,symbola;font-size:13px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:18.5714px;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(242,242,242)">Hi Mike,<br style="box-sizing:border-box"><br style="box-sizing:border-box">Thank you for your reply.<br style="box-sizing:border-box">I think the issue is within Freeswitch since FS is not putting the other leg in the active state again,<br style="box-sizing:border-box"><br style="box-sizing:border-box">We have the following scenario:<br style="box-sizing:border-box"><br style="box-sizing:border-box">1. Outbound call from A to B over Freeswitch: A ==>> Freeswitch ==>> B<br style="box-sizing:border-box">2. A puts the call on hold using inactive flag within the SDP header, FS starts playing musiconhold towards B.<br style="box-sizing:border-box">3. A sends a reinvite without a SDP header to FS (which should retrieves the call from the hold scenario, since we’ve set sip_unhold_nosdp=true<br style="box-sizing:border-box">4. FS keeps playing musiconhold towards B, while it should have put all legs back in active state in my opinion.<br style="box-sizing:border-box"><br style="box-sizing:border-box">It looks like this issue is related to JIRA FS-9983<br style="box-sizing:border-box"><br style="box-sizing:border-box">Can you please confirm my conclusion and let me know in which part of the code it’s possible to change this behaviour?<br style="box-sizing:border-box">If you’re able to fix it I would be very happy as well of course.<br style="box-sizing:border-box"><br style="box-sizing:border-box">Best regards,<br style="box-sizing:border-box"></span><img style="box-sizing: border-box; border-width: 0px; border-style: none; border-color: currentcolor; border-image: none; vertical-align: middle; color: rgb(73, 73, 73); font-family: "Gotham SSm",Helvetica,Arial,sans-serif,symbola; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 18.5714px; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; background-color: rgb(242, 242, 242);">

</div><br><div class="gmail_quote"><div dir="ltr">пн, 24 июл. 2017 г. в 23:49, Dmitriy Borisov <<a href="mailto:borik.internet@gmail.com">borik.internet@gmail.com</a>>:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><p dir="ltr">Hello, Michael!</p>
<p dir="ltr">Problem not on the client side. On the client side call is active, not on hold. But the channel state in FreeSWITCH is holded. To enable voice I need to trigger hold twice (put on hold and take off hold after that)</p>
<br><div class="gmail_quote"><div dir="ltr">пн, 24 июля 2017 г., 19:19 Michael Jerris <<a href="mailto:mike@jerris.com" target="_blank">mike@jerris.com</a>>:<br></div></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">sofia is doing the right thing.. sendrecv is the default state if not otherwise stated in the packet and is not necessary to send there.  the receiving device is broken if its not taking off hold there.</div><div style="word-wrap:break-word"><div><br><div><br><div><blockquote type="cite"><div>On Jul 24, 2017, at 5:18 AM, Dmitriy Borisov <<a href="mailto:borik.internet@gmail.com" target="_blank">borik.internet@gmail.com</a>> wrote:</div><br class="m_-2803845331886782826m_3720818559793088614Apple-interchange-newline"><div><div dir="ltr"><div><div>Hello!<br><br></div>There are some issue (or not???) in mod_sofia module.<br><br></div>You can reproduce this issue by holding call via 0.0.0.0 SDP:<br><div style="margin:0px;text-indent:0px"><span style="font-family:"Consolas";font-size:10pt">v=0 </span></div><div style="margin:0px;text-indent:0px"><span style="font-family:"Consolas";font-size:10pt">o=OneXS 99765105 2 IN IP4 87.237.24.14 </span></div><div style="margin:0px;text-indent:0px"><span style="font-family:"Consolas";font-size:10pt">s=- </span></div><div style="margin:0px;text-indent:0px"><span style="font-family:"Consolas";font-size:10pt">c=IN IP4 0.0.0.0 </span></div><div style="margin:0px;text-indent:0px"><span style="font-family:"Consolas";font-size:10pt">t=0 0 </span></div><div style="margin:0px;text-indent:0px"><span style="font-family:"Consolas";font-size:10pt">m=audio 49760 RTP/AVP 8 101 </span></div><div style="margin:0px;text-indent:0px"><span style="font-family:"Consolas";font-size:10pt">a=fmtp:101 0-15 </span></div><div style="margin:0px;text-indent:0px"><span style="font-family:"Consolas";font-size:10pt">a=rtpmap:101 telephone-event/8000 </span></div><div style="margin:0px;text-indent:0px"><span style="font-family:"Consolas";font-size:10pt">a=inactive </span></div><div style="margin:0px;text-indent:0px;font-family:Consolas;font-size:10pt"><br></div><div style="margin:0px;text-indent:0px;font-family:Consolas;font-size:10pt">and unholding via invite without SDP. <br></div><div style="margin:0px;text-indent:0px;font-family:Consolas;font-size:10pt"><br></div><div style="margin:0px;text-indent:0px;font-family:Consolas;font-size:10pt">In version 7a77e0b (branch v1.6) place of errorneus (as I think) code is near:</div><div style="margin:0px;text-indent:0px;font-family:Consolas;font-size:10pt"> 7641             if (switch_channel_var_true(channel, "sip_unhold_nosdp")) {<br> 7642                 switch_core_media_gen_local_sdp(session, SDP_TYPE_RESPONSE, NULL, 0, "sendrecv",<br> 7643                                                 zstr(tech_pvt->mparams.local_sdp_str) || !switch_channel_test_flag(channel, CF_PROXY_MODE));<br> 7644             } else {<br> 7645                 switch_core_media_gen_local_sdp(session, SDP_TYPE_RESPONSE, NULL, 0, NULL,<br> 7646                                             zstr(tech_pvt->mparams.local_sdp_str) || !switch_channel_test_flag(channel, CF_PROXY_MODE));<br> 7647             }<br> 7648<br> 7649             if (zstr(tech_pvt->mparams.local_sdp_str)) {<br> 7650                 switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_WARNING, "Cannot find a SDP\n");<br> 7651                 switch_channel_hangup(channel, SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER);<br> 7652             } else {<br> 7653                 if (sofia_use_soa(tech_pvt)) {<br> 7654                 <b>switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_WARNING, tech_pvt->mparams.local_sdp_str); // This is my add</b><br> 7655                     nua_respond(tech_pvt->nh, SIP_200_OK,<br> 7656                                 SIPTAG_CONTACT_STR(tech_pvt->reply_contact),<br> 7657                                 SOATAG_USER_SDP_STR(tech_pvt->mparams.local_sdp_str),<br> 7658                                 SOATAG_REUSE_REJECTED(1),<br> 7659                                 SOATAG_AUDIO_AUX("cn telephone-event"),<br> 7660                                 TAG_IF(sofia_test_pflag(profile, PFLAG_DISABLE_100REL), NUTAG_INCLUDE_EXTRA_SDP(1)), TAG_END());<br> 7661                 } else {<br> 7662                     nua_respond(tech_pvt->nh, SIP_200_OK,<br> 7663                                 NUTAG_MEDIA_ENABLE(0),<br> 7664                                 SIPTAG_CONTACT_STR(tech_pvt->reply_contact),<br> 7665                                 SIPTAG_CONTENT_TYPE_STR("application/sdp"), SIPTAG_PAYLOAD_STR(tech_pvt->mparams.local_sdp_str), TAG_END());<br> 7666                 }<br> 7667             }<br><br><br></div><div style="margin:0px;text-indent:0px;font-family:Consolas;font-size:10pt">In described situation code flow go throw line 7654 and post to nua_respond correct SDP (with correct c=IN IP4 re.al.ip.addr and a=sendrecv):</div><div style="margin:0px;text-indent:0px;font-family:Consolas;font-size:10pt">2017-07-24 11:00:54.252668 [WARNING] sofia.c:7654 v=0<br>o=Sipean 1500875192 1500875195 IN IP4 x.x.x.x:<br>s=Sipean<br>c=IN IP4 x.x.x.x<br>t=0 0<br>m=audio 11642 RTP/AVP 8 101<br>a=rtpmap:8 PCMA/8000<br>a=rtpmap:101 telephone-event/8000<br>a=fmtp:101 0-16<br>a=ptime:20<br>a=sendrecv<br></div><div style="margin:0px;text-indent:0px;font-family:Consolas;font-size:10pt"><br></div><div style="margin:0px;text-indent:0px;font-family:Consolas;font-size:10pt">sofia library sends SDP:</div><div style="margin:0px;text-indent:0px"><span style="font-family:"Consolas";font-size:10pt">v=0 </span></div><div style="margin:0px;text-indent:0px"><span style="font-family:"Consolas";font-size:10pt">o=Sipean 1500875192 1500875195 IN IP4 x.x.x.x </span></div><div style="margin:0px;text-indent:0px"><span style="font-family:"Consolas";font-size:10pt">s=Sipean </span></div><div style="margin:0px;text-indent:0px"><span style="font-family:"Consolas";font-size:10pt">c=IN IP4 x.x.x.x </span></div><div style="margin:0px;text-indent:0px"><span style="font-family:"Consolas";font-size:10pt">t=0 0 </span></div><div style="margin:0px;text-indent:0px"><span style="font-family:"Consolas";font-size:10pt">m=audio 11642 RTP/AVP 8 101 </span></div><div style="margin:0px;text-indent:0px"><span style="font-family:"Consolas";font-size:10pt">a=rtpmap:8 PCMA/8000 </span></div><div style="margin:0px;text-indent:0px"><span style="font-family:"Consolas";font-size:10pt">a=rtpmap:101 telephone-event/8000 </span></div><div style="margin:0px;text-indent:0px"><span style="font-family:"Consolas";font-size:10pt">a=fmtp:101 0-16 </span></div><div style="margin:0px;text-indent:0px"><span style="font-family:"Consolas";font-size:10pt">a=ptime:20 <br></span></div><div style="margin:0px;text-indent:0px"><span style="font-family:"Consolas";font-size:10pt"><br></span></div><div style="margin:0px;text-indent:0px"><span style="font-family:"Consolas";font-size:10pt">On SIP client side call in unholded state, but at FreeSWITCH side it is still in HOLDED state<br></span></div><div style="margin:0px;text-indent:0px"><span style="font-family:"Consolas";font-size:10pt"><br></span></div><div style="margin:0px;text-indent:0px"><span style="font-family:"Consolas";font-size:10pt">I have experimented with nua_respond, but maximum result is a correct call state on SIP client side (holded), but not unholding the line. Where should I search for errors? Or this scenario can't work correct?<br></span></div></div></div></blockquote></div><br></div></div></div><div style="word-wrap:break-word"></div>_________________________________________________________________________<br>
Professional FreeSWITCH Consulting Services:<br>
<a href="mailto:consulting@freeswitch.org" target="_blank">consulting@freeswitch.org</a><br>
<a href="http://www.freeswitchsolutions.com" rel="noreferrer" target="_blank">http://www.freeswitchsolutions.com</a><br>
<br>
Official FreeSWITCH Sites<br>
<a href="http://www.freeswitch.org" rel="noreferrer" target="_blank">http://www.freeswitch.org</a><br>
<a href="http://wiki.freeswitch.org" rel="noreferrer" target="_blank">http://wiki.freeswitch.org</a><br>
<a href="http://www.cluecon.com" rel="noreferrer" target="_blank">http://www.cluecon.com</a><br>
<br>
FreeSWITCH-dev mailing list<br>
<a href="mailto:FreeSWITCH-dev@lists.freeswitch.org" target="_blank">FreeSWITCH-dev@lists.freeswitch.org</a><br>
<a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev" rel="noreferrer" target="_blank">http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev</a><br>
UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-dev" rel="noreferrer" target="_blank">http://lists.freeswitch.org/mailman/options/freeswitch-dev</a><br>
<a href="http://www.freeswitch.org" rel="noreferrer" target="_blank">http://www.freeswitch.org</a><br>
</blockquote></div></blockquote></div>