Диалпланы Asterisk

Материал из megapuper
Версия от 14:13, 10 сентября 2019; Root (обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Исходящие звонки в ёмкости 74951690XXX в коротком формате

exten => _1690XXX,1,NoOp(Outgoing call inside network in short format)
exten => _1690XXX,n,Set(CALLERID(ALL)=${CALLERID(num)})
exten => _1690XXX,n,Dial(SIP/peer/7495${EXTEN})
exten => _1690XXX,n,Hangup()

Исходящие звонки в ёмкости 7495XXXXXXX/7499XXXXXXX в коротком формате внутри префикса

exten => _XXXXXXX,1,NoOp(Outgoing call of short number by ${CALLERID(num)})
exten => _XXXXXXX,n,Set(first_three=${CALLERID(num):1:3})
exten => _XXXXXXX,n,NoOp(---first_three digits are ${first_three})
exten => _XXXXXXX,n,Set(CALLERID(ALL)=${CALLERID(num)})
exten => _XXXXXXX,n,Dial(SIP/peer/7${first_three}${EXTEN})
exten => _XXXXXXX,n,Hangup()

Исходящие звонки в ёмкости 74951690XXX в длинном формате со сменой 8 на 7

exten => _84951690XXX,1,NoOp(Outgoing call inside network in long format)
exten => _84951690XXX,n,Set(CALLERID(ALL)=${CALLERID(num)})
exten => _84951690XXX,n,Dial(SIP/peer/7${EXTEN:1})
exten => _84951690XXX,n,Hangup()

Исходящие на межгород

exten => _8XXXXXXXXXX,1,NoOp(Outgoing call)
exten => _8XXXXXXXXXX,n,Set(CALLERID(ALL)=${CALLERID(num)})
exten => _8XXXXXXXXXX,n,Dial(SIP/peer/7${EXTEN:1})
exten => _8XXXXXXXXXX,n,Hangup()
exten => _7XXXXXXXXXX,1,NoOp(Outgoing call)
exten => _7XXXXXXXXXX,n,Set(CALLERID(ALL)=${CALLERID(num)})
exten => _7XXXXXXXXXX,n,Dial(SIP/peer/${EXTEN})
exten => _7XXXXXXXXXX,n,Hangup()
exten => _+7XXXXXXXXXX,1,NoOp(Outgoing call)
exten => _+7XXXXXXXXXX,n,Set(CALLERID(ALL)=${CALLERID(num)})
exten => _+7XXXXXXXXXX,n,Dial(SIP/peer/${EXTEN:1})
exten => _+7XXXXXXXXXX,n,Hangup()

Исходящие на международку

exten => _810X.,1,NoOp(Outgoing call ABROAD from ${CALLERID(num)})
exten => _810X.,n,Set(abroad_allowed=${SHELL(php /srv/abroad_allowed.php ${CALLERID(num)})})
exten => _810X.,n,GotoIf($[${abroad_allowed}!=1]?hangup)
exten => _810X.,n,Set(CALLERID(ALL)=${CALLERID(num))
exten => _810X.,n,Dial(SIP/peer/${EXTEN:3})
exten => _810X.,n(hangup),Hangup

Входящие

exten => _74951690001,1,NoOp(Incoming call, SIP device SIP/7${EXTEN} state is ${DEVICE_STATE(SIP/7${EXTEN}))
exten => _74951690001,n,ExecIf($[ ${DEVICE_STATE(SIP/7${EXTEN})} = INUSE ]:Busy) ;нужно  для корректного ответа  Busy, чтобы не было  звонка "по второй  линии"  при входящем (еще вариант - в место  Busy юзать Set(DIALSTATUS=BUSY))
exten => _74951690001,n,Set(CALLERID(ALL)=7${CALLERID(num)})
exten => _74951690001,n,Dial(SIP/7${EXTEN},90,rR)
exten => _74951690001,n,Hangup()

этот  фрагмент нужен, чтобы говорить при  звонке на непрописанный номер в сторону оператора "Unassigned Number"
exten => _74951690XXX,1,NoOp(Incoming call to UNASSIGNED number)
exten => _74951690XXX,n,Hangup(1)

Входящий звонок и ivr

[incoming]
exten => _X.,1,NoOp(Incoming call)
exten => _X.,n,Goto(ivr,s,1)

[ivr]
exten => s,1,Answer()
exten => s,n,Background(ivr)
exten => s,n,WaitExten(3)
exten => s,n,Dial(SIP/1200,10)
exten => s,n,Hangup()
exten => 1,1,Dial(SIP/1201)
exten => 1,n,Hangup()
exten => 2,1,Playback(filename)
exten => 2,n,Hangup()
exten => i,1,Playback(pbx-invalid)
exten => i,n,Goto(ivr,s,1)