[Asterisk-Users] App queue and all Agent busy
Anton Yurchenko
phila at dg.net.ua
Thu Nov 27 09:44:38 MST 2003
Anton Yurchenko wrote:
I just wanted to say, that I patched the code like I wrote below, and it
works. When all the operators are busy, then it drops to priority + 101.
If that would break something please write me ASAP ;)
> Philipp von Klitzing wrote:
>
>> Hi!
>>
>>
>>
>>> but when both Agents are busy then still the called party does not
>>> get a busy signal.
>>>
>>> What I`d want is when both Agents are busy that the caller gets a
>>> busy, not the long tones, like the phone is ringing, but nobody
>>> answers it ( this is how this works now)
>>> Any Ideas?
>>>
>>
>>
>> Method 1: Configure the queue to only take two callers
>>
>>
>>
> what would callers get when the queue is full? that is still not such
> a good solution as there may be a variable number of operators.
>
>> Method 2: Don't use queues at all and instead use a simple Dial() in
>> extensions.conf where you dial both agents extensions like
>>
>> exten => 1000,1,Dial(SIP/john&SIP/mary)
>> exten => 1000,2, ... unavailable ...
>> exten => 1000,102, ... busy ...
>>
>>
>>
> Operators have a wrapup to do and such.
>
> I`ve looked at the source of app_dial. and app_queue.c, and I found
> such a piece of code in app_dial.c:
> if (found < 0) {
> if (numlines == numbusies) {
> if (option_verbose > 2)
> ast_verbose( VERBOSE_PREFIX_2
> "Everyone
> is busy at this time\n");
> /* See if there is a special busy
> message */
> if (ast_exists_extension(in,
> in->context, in->exten, in->priority + 101, in->callerid))
> in->priority+=100;
> } else {
> if (option_verbose > 2)
> ast_verbose( VERBOSE_PREFIX_2
> "No one is available to answer at this time\n");
> }
> *to = 0;
>
> notice the part about priority, there is an almost identical code in
> app_queue.c:
>
> if (found < 0) {
> if (numlines == numbusies) {
> ast_log(LOG_DEBUG, "Everyone is busy at
> this time\n");
> } else {
> ast_log(LOG_NOTICE, "No one is answered
> queue %s\n", queue);
> }
>
>
> *to = 0;
>
> almost the same without the part:
>
> /* See if there is a special busy
> message */
> if (ast_exists_extension(in,
> in->context, in->exten, in->priority + 101, in->callerid))
> in->priority+=100;
>
>
> would it work if I merged them and code in app_queue.c looke like:
>
> if (found < 0) {
> if (numlines == numbusies) {
> ast_log(LOG_DEBUG, "Everyone is busy at
> this time\n");
> /* See if there is a special busy message */
> if (ast_exists_extension(in, in->context,
> in->exten, in->priority + 101, in->callerid))
> in->priority+=100;
> } else {
> ast_log(LOG_NOTICE, "No one is answered
> queue %s\n", queue);
> }
>
>
> *to = 0;
>
> this is a production system and it better to know before I go in with
> hacked code.
>
> This would be a very good functionality, I can setup a prompt, like
> "all operators are busy" and such.
>
> thanks
>
>
>> Cheers, Philipp
>>
>>
>> _______________________________________________
>> Asterisk-Users mailing list
>> Asterisk-Users at lists.digium.com
>> http://lists.digium.com/mailman/listinfo/asterisk-users
>>
>>
>>
>
>
--
Anton Yurchenko<phila at dg.net.ua>
Digital Generation
More information about the asterisk-users
mailing list