How do I configure fifo to transfer a call out whenever a channel opens up.

I'm sending the calls through an Adtran which has a limited number of channels available and we don't want this one DID to use all the channels but we don't just want to USER_BUSY the calls either. We want to leave them in a fifo listening to music until a channel becomes available to allow the next call through. How do I configure the fifo to allow the next call through once there are no longer 5 calls (for example) already sent to the Adtran for that DID?

I was thinking I could execute something on orbit, but then it won't be a fifo any more. We want them exiting the fifo in the order they enter. Also, the orbit could mean they wait in the fifo longer than they should, so I think that's definitely not the right approach.

I know I could write a lua script that monitors the fifo and transfers out the next available caller, but I was hoping for a built-in way to do this.



Royce Mitchell, IT Consultant
ITAS Solutions
royce3@itas-solutions.com

On Wed, Dec 6, 2017 at 5:07 AM, Vallimamod Abdullah <vma@vallimamod.org> wrote:
Hi,

With the limit app, you can also send the call to a different extension instead of rejecting it with user_busy:

<action application="limit" data="hash inbound ${destination_number} ${call_limit} queue_ext XML queue_context"/>

The over limit calls will be transferred to the queue_context context with queue_ext extension.

But for your use case, I think the limit is no more necessary, you can directly use mod_fifo.

Best Regards,
--
Vallimamod Abdullah
SIP Solutions
vma@sipsolutions.fr
.


> On 6 Dec 2017, at 04:22, Royce Mitchell III <royce3@gmail.com> wrote:
>
> I am currently using hash to limit the number of calls that can get through on a specific destination_number and giving any excess a USER_BUSY, something like this:
>
> <action application="limit" data="hash inbound ${destination_number} ${call_limit} !USER_BUSY"/>
>
> However, now they're asking me to queue those calls with a recording and let them through in order as the call_limit reduces back down and then send the call to a different destination if it stays in that queue for a minute.
>
> In other words, if call_limit is 5, the 6th call would get queued until one of those first 5 calls clears. If none of the 5 calls clears before a minute has elapsed, I want to transfer that 6th call to a different destination. If a 7th call enters the queue, the 6th call should be the next to get a channel because it has been in the queue longer.
>
> I'm digging through the documentation and I haven't been able to figure out a way to do this so far. It seems like maybe using fifo in combination with limit would be in order, but I can't think of how to make them work together to accomplish this.
>
>
>
>
> Royce Mitchell, IT Consultant
> ITAS Solutions
> royce3@itas-solutions.com


_________________________________________________________________________
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