Hangup Cause for a ringing destination leg
Dear Freeswitch Users and Developers, I'm a bit desperate. I googled and tried multiple days last weeks and I can't find a solution for my (hopefully simple) problem: In short: how do I set the hangup cause for a ringing destination leg? Long story: I'm struggling to get a certain call-group behaviour: Incoming call --> freeswitch --> User A & [delayed] Group A Group A is meant to be something like a Hunt Group, so that the incoming call can be answered by someone else if User A is not available. It is not for sure that someone on Group A will answer the incoming call. I want to record the missed call only to User A. My main struggling point: If the Incoming call is aborted, the call log of User A and of all members of Group A is set to a missed call. And depending on my differently attempted implementations I can also have two missed calls for User A (one from initial ringing, one from group ringing). So I thought that I need to modify the hangup cause, but I can't get it working at all (I can modify the hangup cause for the Incoming call only). Could you point me to the right wording and directions? I thought I'll need two bridges: 1. bridge for User A, onetimeout set hangup cause for the destination leg 2. bridge for User A and Group A, onetimeout set hangup causes for destination legs But how do I do the hangup cause for ringing destination leg? Best Regards Daniel Schäfer
bridge sofia/something/1234,{leg_delay=20}sofia/somethingelse/1234,{leg_delay=25}sofia/blahblah/4567,{leg_delay=30}sofia/blahblah/1234 If you're fixated on the resulting hangup cause I suspect you're just overthinking it. You shouldn't be too concerned with the causes because we should do the right thing. /b On Mon, Jul 25, 2016 at 5:14 AM, Daniel Schäfer <schaefer@vh-s.de> wrote:
Dear Freeswitch Users and Developers, I'm a bit desperate. I googled and tried multiple days last weeks and I can't find a solution for my (hopefully simple) problem: In short: how do I set the hangup cause for a ringing destination leg?
Long story: I'm struggling to get a certain call-group behaviour:
Incoming call --> freeswitch --> User A & [delayed] Group A
Group A is meant to be something like a Hunt Group, so that the incoming call can be answered by someone else if User A is not available. It is not for sure that someone on Group A will answer the incoming call. I want to record the missed call only to User A.
My main struggling point: If the Incoming call is aborted, the call log of User A and of all members of Group A is set to a missed call. And depending on my differently attempted implementations I can also have two missed calls for User A (one from initial ringing, one from group ringing).
So I thought that I need to modify the hangup cause, but I can't get it working at all (I can modify the hangup cause for the Incoming call only).
Could you point me to the right wording and directions?
I thought I'll need two bridges:
1. bridge for User A, onetimeout set hangup cause for the destination leg 2. bridge for User A and Group A, onetimeout set hangup causes for destination legs
But how do I do the hangup cause for ringing destination leg?
Best Regards Daniel Schäfer
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@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@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
-- *Brian West* brian@freeswitch.org *Twitter: @FreeSWITCH , @briankwest* http://www.freeswitchbook.com http://www.freeswitchcookbook.com https://www.gofundme.com/freeswitch_ubuntu Got Bugs? Report them here <https://freeswitch.org/jira>! | Reddit: /r/freeswitch <https://www.reddit.com/r/freeswitch> *T:*+19184209001 | *F:*+19184209002 | *M:*+1918424WEST (9378) *iNUM:*+883 5100 1420 9001 | *ISN:*410*543 | *Skype:*briankwest
Hi Brian, thanks for your help, support and work! (I'm also willing to contribute my future solution to the wiki/confluence) Is it really leg_delay? I can only find leg_delay start? If I use leg_delay_start, and no one wins the race, as no endpoint is answering - Every ringing end-device records a "missed" call, right? This is the thing I'm trying to avoid. The missed call should only be logged on the users phone, not the hunt group phones. My Voip Enddevices are cheap and "dumb", I don't have an API to modify their call logs via remote. In the "no-answer" case freeswitch is sending ORIGINATOR_CANCEL to all ringing phones. When someone answers a call, freeswitch is sending LOSE_RACE to the other phones and no "missed" call is logged on these devices. So it seems to be possible? Again, thanks for your time and help :-) Regards Daniel Am 25.07.2016 um 17:51 schrieb Brian West:
bridge sofia/something/1234,{leg_delay=20}sofia/somethingelse/1234,{leg_delay=25}sofia/blahblah/4567,{leg_delay=30}sofia/blahblah/1234
If you're fixated on the resulting hangup cause I suspect you're just overthinking it. You shouldn't be too concerned with the causes because we should do the right thing.
/b
On Mon, Jul 25, 2016 at 5:14 AM, Daniel Schäfer <schaefer@vh-s.de <mailto:schaefer@vh-s.de>> wrote:
Dear Freeswitch Users and Developers, I'm a bit desperate. I googled and tried multiple days last weeks and I can't find a solution for my (hopefully simple) problem: In short: how do I set the hangup cause for a ringing destination leg?
Long story: I'm struggling to get a certain call-group behaviour:
Incoming call --> freeswitch --> User A & [delayed] Group A
Group A is meant to be something like a Hunt Group, so that the incoming call can be answered by someone else if User A is not available. It is not for sure that someone on Group A will answer the incoming call. I want to record the missed call only to User A.
My main struggling point: If the Incoming call is aborted, the call log of User A and of all members of Group A is set to a missed call. And depending on my differently attempted implementations I can also have two missed calls for User A (one from initial ringing, one from group ringing).
So I thought that I need to modify the hangup cause, but I can't get it working at all (I can modify the hangup cause for the Incoming call only).
Could you point me to the right wording and directions?
I thought I'll need two bridges:
1. bridge for User A, onetimeout set hangup cause for the destination leg 2. bridge for User A and Group A, onetimeout set hangup causes for destination legs
But how do I do the hangup cause for ringing destination leg?
Best Regards Daniel Schäfer
participants (2)
-
Brian West
-
Daniel Schäfer