Alex Ongena
2006-Feb-10 04:12 UTC
[Asterisk-Users] Sip + Cisco 7940/7960 + Panel + DND + queues
Hi all, Running bristuffed 1.2.4 system with solely Cisco 7940/7960 phones with SIP. I'm using also op_panel 0.25 (snapshot). I'm using * queues. I want to properly implement DND via *78 and *79. I'm using op_panel's documentation RECIPE 1 solution with astdb and dnd variables and this is fine for FOP. The DND works in normal cases, since I catch it with my Macro dialsip, HOWEVER The Queue handling does not look at my astdb DND settings... so the Phones that are member of a queue keep ringing, even after pressing *78 and being in DND state. Any solution ? The only way 'around' that I see is to Dynamically Add and Remove the members from the queue when people set DND on/off. I do not like this, since the 'knowledge' with which queue members are related, is defined twice (in the Dialplan and in queues.conf) Is there a way to put a Sip phone from the dialplan in state 'Busy' ? (= alternative work around) Is there a way the let 'Queue' use my Macro for Dialing the members ? Txs Alex my configs (or part of it) queues.conf: [support] musiconhold = default strategy = ringall member => Sip/301 member => Sip/311 member => Sip/302 member => Sip/310 member => Sip/315 ... [sales] musiconhold = default strategy = ringall member => Sip/300 member => Sip/307 member => Sip/304 member => Sip/308 member => Sip/313 ... parts of extensions.conf [macro-dialsip] ; DND exten => s,1,Set(value=${DB(dnd/SIP/${ARG1})}) exten => s,n,GotoIf(${value}?dnd:nodnd) exten => s,n(nodnd),NoOp exten => s,n,Dial(Sip/${ARG1},60) exten => s,n,Goto(s-${DIALSTATUS},1) exten => s,n(dnd),NoOp exten => s,n,Playtones(busy) exten => s,n,Wait(30) exten => s,n,Hangup exten => s-BUSY,1,Playtones(busy) exten => s-BUSY,n,Wait(10) exten => s-BUSY,n,Goto(mainmenu,s,1) exten => s-NOANSWER,1,Goto(mainmenu,s,1) exten => _s-.,1,Playtones(congestion) exten => _s-.,n,Wait(10) exten => _s-.,n,Goto(s-NOANSWER,1) [apps] ... ; DND On exten => *78,1,UserEvent(ASTDB|Family: dnd^State: On) exten => *78,n,Set(temp=${CHANNEL}) exten => *78,n,Cut(temp=temp,,1) exten => *78,n,Set(DB(dnd/${temp})=On) exten => *78,n,Playback(dnd-aan) exten => *78,n,Wait(10) exten => *78,n,Hangup ; DND Off exten => *79,1,UserEvent(ASTDB|Family: dnd^State: ^) exten => *79,n,Set(temp=${CHANNEL}) exten => *79,n,Cut(temp=temp,,1) exten => *79,n,DBDel(dnd/${temp}) exten => *79,n,Playback(dnd-uit) exten => *79,n,Wait(10) exten => *79,n,Hangup ... part of the IVR: [mainmenu] exten => s,1,Background(hoofdmenu) exten => s,n,Goto(s,1) ; Operator / Admin exten => 1,1,Goto(menu-admin,s,1) exten => 2,1,Goto(menu-support,s,1) exten => 3,1,Goto(menu-sales,s,1) exten => 4,1,Goto(s,1) ; invalid exten => i,1,Playback(menu-verkeerd) exten => i,n,Goto(s,1) ; timeout lang gewacht exten => t,1,Goto(s,1) [menu-admin] ; hoofdnummer exten => s,1,Dial(Sip/300,30,t) exten => s,n,Queue(sales|t|||180) exten => s,n,Queue(support|t|||60) exten => s,n,Queue(development|t|||60) exten => s,n,Goto(mainmenu,s,1) [menu-sales] exten => s,1,Queue(sales|t|||180) exten => s,n,Queue(support|t|||60) exten => s,n,Queue(development|t|||60) exten => s,n,Goto(mainmenu,s,1) [menu-support] exten => s,1,Queue(support|t|||180) exten => s,n,Queue(development|t|||60) exten => s,n,Queue(sales|t|||60) exten => s,n,Goto(mainmenu,s,1)