Asterisk doesn't have any magic way of knowing whether a SIP phone is
busy or not; the "SIP way" is that you just call the phone (ie send
an INVITE) and the phone then decides by itself what to do. It might
send back a "Busy here" response - in which case Asterisk gets the
message and tries someone else. Or, it might start doing call-waiting
beeps and stuff. If the phone does the latter, Asterisk has no way of
telling that that's what is happening - it looks just like the phone
is ringing in the normal way.
The use of the leastrecent strategy makes things worse - because when
the one attempt rings out with no answer, the Queue code looks again
for an agent and will come up with the same agent again and try them
again etc...
Both these solutions resolved the problem:
1) Reconfigure the phone to disable call-waiting such that it will
return busy when Asterisk attempts the second call; or,
2) Use the limit stuff thats in sip.conf to tell asterisk to only do
one call at a time to that phone. "outgoinglimit=1" and
"incominglimit=1" for that SIP friend.
Rob
On 7/7/05, Hilton Williams <hilton@datatex.co.za>
wrote:> Hi
>
> I have a problem with the queues on Asterisk. The setup is Asterisk@Home
> v1.0 with Asterisk 1.0.7.
>
> I have 1 queue (4500) set up, with leastrecent strategy. There are no
> agents configured in this queue.
> Agents log in by dialing 4500* on their phones. All incoming calls are
sent
> to the queue. Calls wait 120 seconds in the queue, and are then sent to
> voicemail extension 310.
>
> My problem is that while an agent is busy on a call, Asterisk is still
> sending calls to that agent.
>
> The queue configuration from extensions.conf is:
>
> [ext-queues]
> exten => 4500,1,Answer();
> exten => 4500,2,SetCIDName(${CALLERIDNAME});
> exten => 4500,3,Queue(4500|t|||120); Support
> exten => 4500,4,Macro(vm,310);
> exten => 4500*,1,Macro(agent-add,4500,);
> exten => 4500**,1,Macro(agent-del,4500);
>
> [macro-agent-add]
> exten => s,1,Wait(1)
> exten => s,2,GotoIf($[foo${ARG2} = foo]?4:3))
> exten => s,3,Authenticate(${ARG2})
> exten => s,4,AddQueueMember(${ARG1})
> exten => s,5,Wait(1)
> exten => s,6,Playback(agent-loginok)
> exten => s,7,Hangup()
>
> [macro-agent-del]
> exten => s,1,Wait(1)
> exten => s,2,RemoveQueueMember(${ARG1})
> exten => s,3,Wait(1)
> exten => s,4,Playback(agent-loggedoff)
> exten => s,5,Hangup()
>
> The queue configuration from queues.conf is this:
>
> [4500]
> wrapuptime=0
> timeout=20
> strategy=leastrecent
> retry=5
> music=default
> maxlen=0
> leavewhenempty=yes
> joinempty=yes
> announce-holdtime=no
> announce-frequency=0
> agentannounce=None
>
>
> Has anyone had a similar problem on Asterisk? I can't figure out why
> app_queue doesn't know that the agent is busy on a call.
>
> Regards
> Hilton
>
>
> Datatex Dynamics CC
> Web site http://www.datatex.co.za/
> Email to hilton@datatex.co.za
> Tel +27215924033
> Fax +27215924077
>
> The use of the Datatex e-mail facility is not permitted
> for the distribution of chain letters or offensive email
> of any nature whatsoever. Datatex hereby distances itself
> from and accepts no liability in respect of the
> unauthorised use of its e-mail facility or the sending of
> e-mail communications for other than strictly business
> purposes. Datatex furthermore disclaims liability for any
> unauthorised instruction for which permission was not
> granted. Any recipient of an unacceptable communication,
> a chain letter or offensive material of any nature is
> requested to report it to abuse@datatex.co.za.
>
> _______________________________________________
> Asterisk-Users mailing list
> Asterisk-Users@lists.digium.com
> http://lists.digium.com/mailman/listinfo/asterisk-users
> To UNSUBSCRIBE or update options visit:
> http://lists.digium.com/mailman/listinfo/asterisk-users
>