一个拨号方案的例子

[globals]
ANSWERWAIT=1
TRANSFER_CONTEXT=transfer
;MONITOR_EXEC=/usr/local/bin/2wav2mp3

#include phones.conf

[internal]
include => phones
include => paging
include => outbound
include => voicemail
include => conferencerooms
include => parkedcalls
exten => 5555,1,Goto(welcomeivr,s,1)

[transfer]
include => phones
include => conferencerooms
exten => 5555,1,Goto(welcomeivr,s,1)

[incoming]
include => phones
exten => 8663297150,1,Goto(welcomeivr,slc,1) ;Was Alliee's
exten => 8667128012,1,Goto(welcomeivr,slc,1) ;Published it Scotsmans Guide
exten => 8004750056,1,Goto(phones,3002,1)

exten => 8019906297,1,Goto(welcomeivr,slc,1) ;Going to .20 (Testing)

; 911 Service. Calls must go to the caller
exten => 8019906291,1,Goto(phones,4010,1) ;Boise Caller ID for 911
exten => 8019906292,1,Goto(phones,3001,1) ;Denver Caller ID for 911
exten => 8017477151,1,Goto(phones,2001,1) ;Phoenix Caller ID for 911

exten => 8017477150,1,Goto(welcomeivr,slc,1)
exten => 2083775300,1,Goto(welcomeivr,slc,1)
exten => 3036298337,1,Goto(welcomeivr,slc,1)
exten => 6023344020,1,Goto(welcomeivr,phx,1)

exten => 3036298317,1,Goto(phones,2001,1)
exten => 6023571863,1,Goto(phones,3001,1)

[welcomeivr]
include => phones
include => conferencerooms
exten => slc,1,GotoIfTime(8:00-17:00,mon-fri,*,*?s,1)
exten => slc,n,Goto(afterhours,1)
;Modify this so it doesn't need changing
exten => phx,1,GotoIfTime(9:00-18:00,mon-fri,*,*?s,1)
exten => phx,n,Goto(afterhours,1)
exten => afterhours,1,Answer()
exten => afterhours,n,Set(LOOP=afterhours)
exten => afterhours,n,Wait(${ANSWERWAIT})
exten => afterhours,n(Start),Background(custom/afterhours2)
exten => afterhours,n,VoiceMail(office)
exten => s,1,Answer()
exten => s,n,Set(LOOP=s)
exten => s,n,NoOp(${CALLERIDNUM} is calling)
exten => s,n,Wait(${ANSWERWAIT})
exten => s,n(Start),Background(custom/mainboise)
exten => s,n,Goto(0,1)
; Don't start keys with 1,2,3,4, or 8
exten => 7,1,Goto(dtmftest,s,1)
exten => 0,1,Macro(warnaboutrecording)
exten => 0,n,GotoIfTime(17:00-18:00,mon-fri,*,*,PhxQueue)
exten => 0,n,Queue(mainqueue,t,,,35)
exten => 0,n,VoiceMail(boffice)
exten => 0,n,Hangup()
exten => 0,30(PhxQueue),Queue(phxqueue,t,,,30)
exten => 0,n,VoiceMail(boffice)
exten => 0,n,Hangup()
exten => #,1,Directory(default,phones)
exten => o,1,Goto(0,1)
exten => a,1,Goto(s,1)
exten => i,1,Wait(1)
exten => i,n,SayDigits(${INVALID_EXTEN})
exten => i,n,Playback(invalid)
exten => i,n,Goto(${LOOP},Start)
; End of welcomeivr

[dtmftest]
;exten => _XXXX,1,SayDigits(${EXTEN})
;exten => _XXXX,n,Goto(s,Start)
exten => 0,1,Answer
exten => 0,n,MusicOnHold(default)
exten => 1,1,Answer
exten => 1,n,Milliwatt
exten => h,1,Hangup
exten => hang,1,Playback(vm-goodbye)
exten => hang,n,Hangup
exten => i,1,SayDigits(${INVALID_EXTEN})
exten => i,n,Playback(invalid)
exten => i,n,Goto(s,7)
exten => s,1,Answer
exten => s,n,Wait(1)
exten => s,n,SetVar(LOOPED=1)
exten => s,n(Start),GotoIf($[${LOOPED} > 2]?hang,1)
exten => s,n,Set(TIMEOUT(digit)=3)
exten => s,n,ResponseTimeout(7)
exten => s,n,Background(you-have-reached-a-test-number)
exten => t,1,SetVar(LOOPED=$[${LOOPED} + 1])
exten => t,n,Goto(dtmftest,s,Start)

[conferencerooms]
;Do we need to answer and wait?
exten => 8000,1,MeetMe(8000,i)
exten => 8001,1,MeetMe(8001,i)
exten => 8002,1,MeetMe(8002,i)

[outbound]
exten => _1NXXNXXXXXX,1,Macro(callout,${EXTEN})
exten => _NXXNXXXXXX,1,Macro(callout,1${EXTEN})
exten => _NXXXXXX,1,Macro(callout,1801${EXTEN}) ; You could parse the OUTBOUNDCID and get the area code
exten => 911,1,Macro(call911)

[macro-call911]
exten => s,1,Monitor(wav,/var/spool/asterisk/monitor/inside${CALLERID(num)}/outside911/${CALLERID(num)}-911-${TIMESTAMP}-outbound,b)
exten => s,n,Set(CALLERID(number)=${EMERGENCYCID})
exten => s,n,Dial(IAX2/8019903974/${PSAP},120,tT)

[macro-callout]
exten => s,1,StopMonitor()
exten => s,n,Monitor(wav,/var/spool/asterisk/monitor/inside${CALLERID(num)}/outside${ARG1}/${CALLERID(num)}-${ARG1}-${TIMESTAMP}-outbound,b)
exten => s,n,Set(CALLERID(name)=CCS)
exten => s,n,Set(CALLERID(number)=${OUTBOUNDCID})
exten => s,n(Dial),Dial(IAX2/8019903974/${ARG1},120,tT)
exten => s,n,Goto(v-${DIALSTATUS},1)
exten => _v-BUSY,1,Busy()
exten => _v-.,1,Congestion()

[voicemail]
exten => *97,1,Wait(${ANSWERWAIT})
exten => *97,n,VoiceMailMain(s${CALLERID(num)})
exten => 9999,1,VoiceMailMain(office)

[macro-voicemail]
exten => s,1,Set(DIALEXT=${ARG1})
exten => s,n,Answer
exten => s,n,Wait(${ANSWERWAIT})
exten => s,n,VoiceMail(u${DIALEXT}@default)
exten => a,1,VoiceMailMain(${DIALEXT})

[macro-callphone]
exten => s,1,Set(DIALEXT=${ARG1})
;exten => s,n,GotoIf($["${BLINDTRANSFER}" = ""]?NotTrans)
;exten => s,n,Playback(custom/transferring)
;exten => s,n,SayDigits(${DIALEXT})
exten => s,n(NotTrans),Macro(warnaboutrecording)
exten => s,n,StopMonitor()
exten => s,n,Monitor(wav,/var/spool/asterisk/monitor/inside${ARG1}/outside${CALLERID(num)}/${ARG1}-${CALLERID(num)}-${TIMESTAMP}-inbound,b)
exten => s,n,Dial(${ARG2},25,tT)
exten => s,n,GotoIf($["${CHANNEL:0:5}" = "Local"]?hangup,1)
exten => s,n,Goto(vm-${DIALSTATUS},1)
exten => hangup,1,Congestion()
exten => a,1,VoiceMailMain(${DIALEXT})
exten => vm-BUSY,1,VoiceMail(b${DIALEXT}@default)
exten => _vm-.,1,VoiceMail(u${DIALEXT}@default)

[macro-warnaboutrecording]
exten => s,1,GotoIf($["${CHANNEL:0:3}" != "IAX"]?end)
exten => s,n,GotoIf($["${WARNED}" = "YES"]?end)
exten => s,n,GotoIf($["${BLINDTRANSFER}" != ""]?end) ; This is because in early versions variables get lost in a transfer
exten => s,n,Set(__WARNED = YES)
exten => s,n,Answer()
exten => s,n,Wait(${ANSWERWAIT})
exten => s,n,Playback(custom/this-call-may-be-monitored-or-recorded)
exten => s,n(end),NoOp()

[pager]
; This assumes SIP because that is the only transport that supports it
exten => _X.,1,ChanIsAvail(SIP/${EXTEN}|js)
exten => _X.,n,Set(__SIPADDHEADER=Call-Info: /;answer-after=0)
exten => _X.,n,Set(__ALERT_INFO=Ring Answer)
exten => _X.,n,Set(__SIP_URI_OPTIONS=intercom=true)
exten => _X.,n,SIPAddHeader(Call-Info: /;answer-after=0)
exten => _X.,n,Dial(SIP/${EXTEN}||)
exten => _X.,n,Hangup()
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值