We have the possibly rather unique setup where we have cell phones posing as SIP devices. The SIP registration for those unfortunately doesn't go away just because the phone is off, since the registration is done by our cell-phone<=>SIP gateway, and that gateway has no way of knowing whether the phone is on or off. This is usually ok, but it gets problematic if the cell phone is a member of a queue. In that case Queue() keeps sending the call to the phone, and the cell-phone<=>SIP gateway dutifully makes a call, which is then rejected by the cellular network. A few seconds later, Queue() tries again. This needlessly wastes resources both in Asterisk and in the cellular network. One idea is to run the call through chan_local (we do this anyway because we need to format the caller-ID differently for different phones) and then record if a call is rejected, and for the next 30 seconds just abort if we are asked to send a call to that particular phone. The downside is that we are still running a call through part of the dial plan, but at least it can be done in perhaps 3 lines of code. I would very much like to hear about smarter ways to do it. /Benny
You could configure them as agents and have them log off automatically after a while they're not responding. l. 2009/10/14 Benny Amorsen <benny+usenet at amorsen.dk<benny%2Busenet at amorsen.dk>>> We have the possibly rather unique setup where we have cell phones > posing as SIP devices. The SIP registration for those unfortunately > doesn't go away just because the phone is off, since the registration is > done by our cell-phone<=>SIP gateway, and that gateway has no way of > knowing whether the phone is on or off. > > This is usually ok, but it gets problematic if the cell phone is a > member of a queue. In that case Queue() keeps sending the call to the > phone, and the cell-phone<=>SIP gateway dutifully makes a call, which is > then rejected by the cellular network. A few seconds later, Queue() > tries again. This needlessly wastes resources both in Asterisk and in > the cellular network. > > One idea is to run the call through chan_local (we do this anyway > because we need to format the caller-ID differently for different > phones) and then record if a call is rejected, and for the next > 30 seconds just abort if we are asked to send a call to that particular > phone. The downside is that we are still running a call through part of > the dial plan, but at least it can be done in perhaps 3 lines of code. > > I would very much like to hear about smarter ways to do it. > > > /Benny > > > > _______________________________________________ > -- Bandwidth and Colocation Provided by http://www.api-digital.com -- > > AstriCon 2009 - October 13 - 15 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 >-- Loway - home of QueueMetrics - http://queuemetrics.com -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.digium.com/pipermail/asterisk-users/attachments/20091014/6d38f90e/attachment-0001.htm
Have you tried autopause=yes in your queue configuration? You can then unpause the member by either the dialplan (e.g. having the cell phone user "log back in") or using an AMI based program to change the "paused" state. You can read more about the latter here: http://astbook.asteriskdocs.org/en/2nd_Edition/asterisk-book-html-chunk/asterisk-APP-F-30.html -Elliot -----Original Message----- From: asterisk-users-bounces at lists.digium.com [mailto:asterisk-users-bounces at lists.digium.com] On Behalf Of Benny Amorsen Sent: Wednesday, October 14, 2009 7:58 AM To: asterisk-users at lists.digium.com Subject: [asterisk-users] Queues with unavailable members We have the possibly rather unique setup where we have cell phones posing as SIP devices. The SIP registration for those unfortunately doesn't go away just because the phone is off, since the registration is done by our cell-phone<=>SIP gateway, and that gateway has no way of knowing whether the phone is on or off. This is usually ok, but it gets problematic if the cell phone is a member of a queue. In that case Queue() keeps sending the call to the phone, and the cell-phone<=>SIP gateway dutifully makes a call, which is then rejected by the cellular network. A few seconds later, Queue() tries again. This needlessly wastes resources both in Asterisk and in the cellular network. One idea is to run the call through chan_local (we do this anyway because we need to format the caller-ID differently for different phones) and then record if a call is rejected, and for the next 30 seconds just abort if we are asked to send a call to that particular phone. The downside is that we are still running a call through part of the dial plan, but at least it can be done in perhaps 3 lines of code. I would very much like to hear about smarter ways to do it. /Benny _______________________________________________ -- Bandwidth and Colocation Provided by http://www.api-digital.com -- AstriCon 2009 - October 13 - 15 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 This message is intended only for the use of the individual (s) or entity to which it is addressed and may contain information that is privileged, confidential, and/or proprietary to Calling Circles LLC and its affiliates. If the reader of this message is not the intended recipient, you are hereby notified that any dissemination, distribution, forwarding or copying of this communication is prohibited without the express permission of the sender. If you have received this communication in error, please notify the sender immediately and delete the original message.