Диалпланы Asterisk — различия между версиями
Root (обсуждение | вклад) |
Root (обсуждение | вклад) |
||
(не показаны 3 промежуточные версии этого же участника) | |||
Строка 1: | Строка 1: | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
Исходящие звонки в ёмкости 74951690XXX в коротком формате | Исходящие звонки в ёмкости 74951690XXX в коротком формате | ||
− | |||
exten => _1690XXX,1,NoOp(Outgoing call inside network in short format) | exten => _1690XXX,1,NoOp(Outgoing call inside network in short format) | ||
exten => _1690XXX,n,Set(CALLERID(ALL)=${CALLERID(num)}) | exten => _1690XXX,n,Set(CALLERID(ALL)=${CALLERID(num)}) | ||
− | exten => _1690XXX,n,Dial(SIP/7495${EXTEN}) | + | exten => _1690XXX,n,Dial(SIP/peer/7495${EXTEN}) |
exten => _1690XXX,n,Hangup() | exten => _1690XXX,n,Hangup() | ||
− | Исходящие звонки в ёмкости 7495XXXXXXX/7499XXXXXXX в коротком формате внутри префикса | + | Исходящие звонки в ёмкости 7495XXXXXXX/7499XXXXXXX в коротком формате внутри префикса |
exten => _XXXXXXX,1,NoOp(Outgoing call of short number by ${CALLERID(num)}) | 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,Set(first_three=${CALLERID(num):1:3}) | ||
exten => _XXXXXXX,n,NoOp(---first_three digits are ${first_three}) | exten => _XXXXXXX,n,NoOp(---first_three digits are ${first_three}) | ||
exten => _XXXXXXX,n,Set(CALLERID(ALL)=${CALLERID(num)}) | exten => _XXXXXXX,n,Set(CALLERID(ALL)=${CALLERID(num)}) | ||
− | exten => _XXXXXXX,n,Dial(SIP/ | + | exten => _XXXXXXX,n,Dial(SIP/peer/7${first_three}${EXTEN}) |
exten => _XXXXXXX,n,Hangup() | exten => _XXXXXXX,n,Hangup() | ||
Строка 23: | Строка 16: | ||
exten => _84951690XXX,1,NoOp(Outgoing call inside network in long format) | exten => _84951690XXX,1,NoOp(Outgoing call inside network in long format) | ||
exten => _84951690XXX,n,Set(CALLERID(ALL)=${CALLERID(num)}) | exten => _84951690XXX,n,Set(CALLERID(ALL)=${CALLERID(num)}) | ||
− | exten => _84951690XXX,n,Dial(SIP/7${EXTEN:1}) | + | exten => _84951690XXX,n,Dial(SIP/peer/7${EXTEN:1}) |
exten => _84951690XXX,n,Hangup() | 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 | Входящий звонок и ivr |
Текущая версия на 14:13, 10 сентября 2019
Исходящие звонки в ёмкости 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)