Carlos, Carlos Chavez wrote:
> How can I make sure the agent will show "In Use" when they make a call? This is a common problem. Unfortunately, there are no good solutions; the queue engine has no way of knowing the state of every SIP peer, as far as whether there is an open INVITE transaction and so on. These state machines are entirely separate. The only way to determine that a SIP peer is in use is to try to place a call to it and see what the feedback is, which is how Dial(), ChanIsAvail(), etc. perform their evaluations. So, unfortunately, as far as the queue subsystem is concerned, the only way that an agent can be in "in use" is if they picked up an incoming queue call. There are many possible solutions. You can remove / increase the call-limit and use call waiting. Or, you can use Local channels for outbound calls to shunt the dialing through a set of dial plan instructions, and use the "M" argument to Dial() to call a macro upon far-end pickup that sets the agent to "paused" state and causes queue calls not to be routed to them. Perhaps you can use the 'h' extension to unpause the member once the outbound call exits. In my case, I modified the source code to set the queue member's "in use" flag when the SIP peer makes a relevant call, but this is expensive and inelegant as it requires doing linear lookups to correlate the calling SIP agent with any queue(s)s of which they may be a member on every outbound dial. It was a solution that caused a lot of problems as well as solving some. -- Alex -- Alex Balashov Evariste Systems Web : http://www.evaristesys.com/ Tel : (+1) (678) 954-0670 Direct : (+1) (678) 954-0671 Mobile : (+1) (706) 338-8599 _______________________________________________ -- Bandwidth and Colocation Provided by http://www.api-digital.com -- AstriCon 2008 - September 22 - 25 Phoenix, Arizona Register Now: http://www.astricon.net asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users
