[Freeswitch-users] Detecting multiple tones with freeswitch

Bunea Lucian lucibunea at gmail.com
Tue Jan 6 21:15:11 MSK 2015


I did managed to solve my problem by using tone_detect to handle 
"busy"/"decline" and using an event hook script that listens for 
"CHANNEL_CALLSTATE" events (for "unavailable").

So, if: Channel-Call-State = RINGING, Call-Direction = outbound, 
Answer-State = early, Original-Channel-Call-State = EARLY, Caller-ANI = 
"one_of_my_DIDs" and (Event-Date-Timestamp - 
Caller-Channel-Created-Time) is lower than 7 seconds then I execute a 
sched_cancel on the session ( to delete the sched_hangup).


-------- Original Message --------
*Subject: *Re: [Freeswitch-users] Detecting multiple tones with freeswitch
*From: *Michael Collins <msc at freeswitch.org>
*To: *FreeSWITCH Users Help <freeswitch-users at lists.freeswitch.org>
*Date: *06.01.2015 19:23
> I'm with Jerris on the reliability issue, but if you can't switch 
> carriers and they won't budge on sending the audio inline then you're 
> pretty much stuck with what you've got. I do know that the tone_detect 
> app works well. It's been years since I've done anything with it so 
> I'm a bit rusty. In your case what I would do is use the 
> execute_on_tone_detect to issue an info app. I think you might have a 
> value in there somewhere that will help you differentiate between 
> whether busy or ring was detected.
>
> I wish you well. This is not a fun endeavor...
>
> -MC
>
>
> On Mon, Jan 5, 2015 at 12:32 PM, Bunea Lucian <lucibunea at gmail.com 
> <mailto:lucibunea at gmail.com>> wrote:
>
>     I have a dedicated short number and multiple DIDs. I also have a
>     database with customer phone numbers and their corresponding DIDs.
>     Each field agent has a mobile phone (from the same provider).
>     When a call comes in freeswitch automatically routes the call to
>     the designated field agent via the corresponding DID.
>     I want to monitor what happens with the call after that, to be
>     able to decide what to do with the call next.
>     So basically, the call never leaves the provider's network.
>
>     Btw, I did asked the provider to switch back the settings but the
>     feedback was:
>     "The behavior is normal because for calls made inside Vodafone
>     network, we generate tones. Thus, for Busy, we play specific tone
>     and then disconnect the call, signaling with SIP 480
>     (corresponding to the end of announcement). If a call comes from
>     another network, User Busy is signaled on ISUP and SIP returned as
>     such. The settings can not be changed per customer. "
>     Unofficially, they acknowledged that their PBX behaved differently
>     before because it was not correctly configured.
>
>     PS: My provider sends the description of the tones using a reason
>     header inside the SIP/183 message. But I was unable to find a way
>     to extract it:
>
>     http://lists.freeswitch.org/pipermail/freeswitch-users/2014-March/103645.html
>
>
>
>
>     -------- Original Message --------
>     *Subject: *Re: [Freeswitch-users] Detecting multiple tones with
>     freeswitch
>     *From: *Michael Jerris <mike at jerris.com> <mailto:mike at jerris.com>
>     *To: *FreeSWITCH Users Help
>     <freeswitch-users at lists.freeswitch.org>
>     <mailto:freeswitch-users at lists.freeswitch.org>
>     *Date: *05.01.2015 20:02
>>     You can never reliably depend on the tones, particularly with international traffic.  This is never going to work reliably unless you get useful sip signaling.  I would be demanding the carrier change settings back.
>>
>>
>>>     On Jan 3, 2015, at 7:46 AM, Bunea Lucian<lucibunea at gmail.com>  <mailto:lucibunea at gmail.com>  wrote:
>>>
>>>     Hello,
>>>
>>>     My SIP provider (Vodafone) decided to make me a Christmas present: they
>>>     change the configuration of their SIP server.
>>>
>>>     Using the old configuration they were sending SIP codes for decline,
>>>     busy and unavailable.
>>>     Now they are sending early media with tones (for decline and busy) and a
>>>     one minute message for unavailable.
>>>     Each status is followed by a SIP/480.
>>>
>>>     Since I need to be able to distinguish between different statuses, I
>>>     have determined the following:
>>>     - if I don't receive a ring tone within 7 second, the called number is
>>>     unavailable;
>>>     - if I receive a busy tone within 4 seconds the called number is busy;
>>>     - if I receive a busy tone after 4 second the call number has declined
>>>     the call;
>>>
>>>     This is how I tried to implement it:
>>>     - after receiving early media (SIP/180 or SIP/183) a timer is started
>>>     for call hangup (sched_hangup)
>>>     - if I receive a ring tone within 7 seconds the timer is canceled
>>>     (sched_cancel);
>>>     - if I receive a busy tone a lua script is called;
>>>
>>>
>>>     <action application="set" data="sip_ignore_remote_cause=true"/>
>>>     <action application="set" data="execute_on_media=sched_hangup +7
>>>     SUBSCRIBER_ABSENT"/>
>>>
>>>     <action application="tone_detect" data="busy 425 w +60000 lua
>>>     'busy_detected.lua ${uuid} ${created_time}' 2"/>
>>>     <action application="tone_detect" data="ring 450 w +7000 sched_cancel"/>
>>>
>>>     <action application="bridge"
>>>     data="sofia/external/${destination_number}@XXX.XXX.XXX.XXX"  <mailto:sofia/external/$%7Bdestination_number%7D at XXX.XXX.XXX.XXX>/>
>>>
>>>     But, for some reason, the tones are detected, but the applications are
>>>     never called.
>>>
>>>
>>>     If I add one of the following lines to the dialplan the corresponding
>>>     application is called:
>>>
>>>       <action application="set" data="execute_on_tone_detect=sched_cancel"/>
>>>
>>>     or
>>>
>>>       <action application="set" data="execute_on_tone_detect=lua
>>>     busy_detected.lua ${uuid} ${created_time}"/>
>>>
>>>     but I can't tell which tone was detected...
>>>
>>>     What am I missing?
>>>
>>>     PS: Tested with FreeSWITCH Version 1.4.14-1~64bit.
>>>
>>>       Regards,
>>>     Lucian
>>     _________________________________________________________________________
>>     Professional FreeSWITCH Consulting Services:
>>     consulting at freeswitch.org  <mailto: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  <mailto: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 <mailto: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
>     <mailto: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

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20150106/3e0be840/attachment-0001.html 


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