[Freeswitch-users] 5 second delay when taking a phone off hold

Michael Jerris mike at jerris.com
Wed Sep 14 21:28:34 MSD 2016


you should never have to manually play hold music like that… need more info to understand how to better advise.


> On Sep 14, 2016, at 1:19 PM, Dave Horton <daveh at beachdognet.com> wrote:
> 
> It turns out the bug (if it is one) is different than I thought.  When handling the on-hold re-INVITE, I was attempting to play moh to the caller via a lua script that I had set a variable for initially.  It turns out that script was trying to play a non-existent file.  The SIP call itself was not affected, but then when I went off hold I encountered the 5-sec delay apparently because the state of channel for the leg was in a state due to the play failure (or the script failure, as the lua script itself exited ungracefully) such that the attempt to set the CF_BROADCAST flag to false failed.
> 
> Not sure if you consider this a bug or not.
> 
> Dave
> On Sep 14, 2016, at 1:07 PM, Michael Jerris <mike at jerris.com> wrote:
> 
> Please test latest code first.
> 
>> On Sep 13, 2016, at 10:29 AM, Dave Horton <daveh at beachdognet.com> wrote:
>> 
>> I have noticed that when I put a phone on hold, and then later take it off hold that there is a 5 second delay when Freeswitch handles the re-INVITE off-hold (no such delay going on hold).
>> 
>> My app is a fairly simple bridging application, where call is placed from A to B through Freeswitch; the B leg goes on hold and then later attempts to go off hold.
>> 
>> I have tracked the 5 second delay to this line of code in switch_core_media.c:
>> 
>> 			if (b_channel) {
>> 				if (switch_channel_test_flag(session->channel, CF_HOLD)) {
>> 					switch_ivr_unhold(b_session);
>> 					switch_channel_clear_flag(session->channel, CF_SUSPEND);
>> 					switch_channel_clear_flag(session->channel, CF_HOLD);
>> 				} else {
>> 					switch_channel_stop_broadcast(b_channel);
>> 					switch_channel_wait_for_flag(b_channel, CF_BROADCAST, SWITCH_FALSE, 5000, NULL);  <== 5 second delay happens here
>> 				}
>> 			}
>> 
>> 
>> Couple of other data points:
>> 1.  When I go on hold, the INVITE on hold that Freeswitch receives on one leg is not propagated out the associated leg, for whatever reason
>> 2.  I am using late negotiation of the SDP between the A and B legs.
>> 3.  I am running version 1.68
>> 
>> Is this a bug and should I open a Jira?  I can obviously provide traces but wanted to first know if this is a bug or some configuration issue
>> 
>> Dave
> 
> _________________________________________________________________________
> Professional FreeSWITCH Consulting Services: 
> consulting at freeswitch.org
> http://www.freeswitchsolutions.com
> 
> Official FreeSWITCH Sites
> http://www.freeswitch.org
> http://confluence.freeswitch.org
> http://www.cluecon.com
> 
> FreeSWITCH-users mailing list
> FreeSWITCH-users at lists.freeswitch.org
> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
> http://www.freeswitch.org
> 
> 
> _________________________________________________________________________
> Professional FreeSWITCH Consulting Services: 
> consulting at freeswitch.org
> http://www.freeswitchsolutions.com
> 
> Official FreeSWITCH Sites
> http://www.freeswitch.org
> http://confluence.freeswitch.org
> http://www.cluecon.com
> 
> FreeSWITCH-users mailing list
> FreeSWITCH-users at lists.freeswitch.org
> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
> http://www.freeswitch.org




Join us at ClueCon 2016 Aug 8-12, 2016
More information about the FreeSWITCH-users mailing list