Talkbox:/etc/asterisk# cat extensions.conf [default] ; ============================================================================== ; BEGIN DIALING RULES FOR TELEPHONES BEHIND THE PBX ; ============================================================================== [stations-montecito] include => services include => local_extensions include => outbound_montecito [stations-intermarket] include => services include => local_extensions include => outbound_intermarket [stations-accounting] include => services include => local_extensions include => outbound_accounting ; ============================================================================== ; BEGIN EXTENSIONS FOR DEVICES AND SERVICES WITHIN AND BEHIND THE PBX ; ============================================================================== [local_extensions] exten => _[23]XX,1,Macro(vm,${EXTEN},20) exten => 666,1,Answer() exten => 666,n,Wait(1) exten => 666,n,Playback(spam) exten => 688,1,Macro(hunt_and_rollover,SIP/342&SIP/343,20,SIP/343,20) [services] exten => *95,1,Answer() exten => *95,n,Wait(0.5) exten => *95,n,VoicemailMain(${CALLERID(num)}) exten => *95,n,Hangup() ; ============================================================================== ; BEGIN EXTENSIONS FOR OUTBOUND CALLING ; ============================================================================== [outbound_montecito] include => outbound_montecito_local include => outbound_montecito_toll [outbound_montecito_local] exten => _1626NXXXXXX,1,Dial(ZAP/G2/9${EXTEN:4}) exten => _1626NXXXXXX,n,Hangup() [outbound_montecito_toll] exten => _1NXXNXXXXXX,1,Dial(ZAP/G2/9${EXTEN}) exten => _1NXXNXXXXXX,n,Hangup() ;======================================================= [outbound_intermarket] include => outbound_intermarket_local include => outbound_intermarket_toll [outbound_intermarket_local] exten => _1626NXXXXXX,1,Dial(ZAP/G1/9${EXTEN:4}) exten => _1626NXXXXXX,n,Hangup() [outbound_intermarket_toll] exten => _1NXXNXXXXXX,1,Dial(ZAP/G1/9${EXTEN}) exten => _1NXXNXXXXXX,n,Hangup() ;================================================ [outbound_accounting] include => outbound_accounting_local include => outbound_accounting_toll [outbound_accounting_local] exten => _1626NXXXXXX,1,Dial(ZAP/G3/9${EXTEN:4}) exten => _1626NXXXXXX,n,Hangup() [outbound_accounting_toll] exten => _1NXXNXXXXXX,1,Dial(ZAP/G3/9${EXTEN}) exten => _1NXXNXXXXXX,n,Hangup() ; ============================================================================== ; BEGIN EXTENSIONS FOR INBOUND CALLING ; ============================================================================== [inbound_montecito] #exten => s,1,Macro(hunt_and_rollover,SIP/310&SIP/311,15,SIP/321&SIP/322$SIP/323$SIP/324&SIP/330,20) exten => s,1,Goto(local_extensions,688,1) [inbound_intermarket] exten => s,1,Macro(hunt_and_rollover,SIP/211&SIP/212&SIP/213&SIP/214&SIP/215,25,SIP/310$SIP/311,15) [inbound_accounting] exten => s,1,Goto(local_extensions,350,1) ; ============================================================================== ; BEGIN MACROS ; ============================================================================== [macro-vm] ; ; ARGUMENTS ; ; ARG1 - SIP extension / VM box ; ARG2 - timeout exten => s,1,Dial(SIP/${ARG1},${ARG2}) exten => s,n,Goto(s-${DIALSTATUS},1) ; If phone returns busy, play the busy greeting exten => s-BUSY,1,Answer() exten => s-BUSY,n,Wait(0.5) exten => s-BUSY,n,Voicemail(${ARG1},b) exten => s-BUSY,n,Hangup() ; If phone fails to answer, isn't plugged in, etc etc etc, ; play the unavailable greeting exten => _s-.,1,Goto(s-UNAVAILABLE,1) exten => s-UNAVAILABLE,1,Answer() exten => s-UNAVAILABLE,n,Wait(0.5) exten => s-UNAVAILABLE,n,Voicemail(${ARG1},u) exten => s-UNAVAILABLE,n,Hangup() exten => a,1,VoicemailMain(${ARG1}) exten => a,n,Hangup() [macro-hunt_and_rollover] ; ; ARGUMENTS ; ; ARG1 = First phone or phone(s) to dial ; ARG2 = Timeout for first group ; ARG3 = Second phone or phone(s) to dial ; ARG4 = Timeout for second group ; ARG5 = Third phone or phone(s) ; ARG6 = timeout etc etc etc exten => s,1,Dial(${ARG1},${ARG2}) exten => s,n,GotoIf($["${ARG3}" = ""]?hangup) exten => s,n,Dial(${ARG3},${ARG4}) exten => s,n,GotoIf($["${ARG5}" = ""]?hangup) exten => s,n,Dial(${ARG5},${ARG6}) exten => s,n(hangup),Hangup() Talkbox:/etc/asterisk#