[Asterisk-Users] Sip + Cisco 7940/7960 + Panel + DND + queues

Alex Ongena Alex.Ongena at able.be
Fri Feb 10 04:12:32 MST 2006


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)





More information about the asterisk-users mailing list