Здесь показаны различия между двумя версиями данной страницы.
asterisk:dial_plans [2017-03-27 08:02] |
asterisk:dial_plans [2017-03-27 08:02] (текущий) |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | ====== Asterisk: Планы набора номеров ====== | ||
+ | Планы набора номеров (Dial plans) задаются в файле ''[[#extensions.conf|extensions.conf]]'' | ||
+ | ====== extensions.conf ====== | ||
+ | FIXME | ||
+ | |||
+ | Планы набора номеров (Dial plans) | ||
+ | |||
+ | ====== В консоли ====== | ||
+ | |||
+ | |Показать|<code>dialplan show</code>| | ||
+ | |Перезагрузить|<code>dialplan reload</code>| | ||
+ | |||
+ | ====== Эмуляция вызова номера ====== | ||
+ | |||
+ | При звонке на ''НОМЕР'' звонящий слышит гудки как при вызове. | ||
+ | |||
+ | <code> | ||
+ | exten => НОМЕР,1,Ringing | ||
+ | same => n,Wait(60) | ||
+ | same => n,HangUp() | ||
+ | </code> | ||
+ | |||
+ | ====== Вызов нескольких номеров сразу ====== | ||
+ | <code> | ||
+ | exten => НОМЕР,1,Dial(SIP/НОМЕР_1&SIP/НОМЕР_2) | ||
+ | </code> | ||
+ | |||
+ | ====== Запрет вызова с номера на номер ====== | ||
+ | |||
+ | Запрет звонков с ''НОМЕР_1'' на ''НОМЕР_2'' | ||
+ | <code> | ||
+ | exten => НОМЕР_2/НОМЕР_1,1,Hangup | ||
+ | </code> | ||
+ | |||
+ | ====== Изменение тона звонка при вызове ====== | ||
+ | |||
+ | В файле ''extensions.conf'' в нужном месте нужно указать значение ''SIPAddHeader(Alert-Info)'' | ||
+ | |||
+ | Пример: | ||
+ | При набора номера ''0'' будет выбран звонок ''ring2'' | ||
+ | |||
+ | <code> | ||
+ | exten => 0,1,Set(__TRANSFER_CONTEXT=transfer) | ||
+ | same => n,SIPAddHeader(Alert-Info:info=ring2) | ||
+ | same => n,Dial(SIP/100,,tT) | ||
+ | </code> | ||
+ | |||
+ | **Особенности реализации данной функции описаны в соответствующих разделах:** | ||
+ | |||
+ | [[grandstream:gxw400x#Изменение тона звонка при вызове|IP аналоговый FXS шлюз серии GXW400x]] | ||
+ | |||
+ | ====== Примеры для входящих вызовов ====== | ||
+ | |||
+ | <code> | ||
+ | [in] | ||
+ | ; Исключения | ||
+ | exten => 101,1,Ringing | ||
+ | same => n,Wait(60) | ||
+ | same => n,HangUp() | ||
+ | |||
+ | ; Голосовое меню | ||
+ | exten => s,1,Answer | ||
+ | exten => s,n,Set(__TRANSFER_CONTEXT=transfer) | ||
+ | exten => s,n,SIPAddHeader(Alert-Info:info=ring2) | ||
+ | exten => s,n,BackGround(/var/lib/asterisk/sounds/custom/10) | ||
+ | exten => s,n,GotoIfTime(8:00-17:00,mon-fri,*,*?WorkTime:NotWorkTime) | ||
+ | |||
+ | ; Рабочее время | ||
+ | exten => s,n(WorkTime),NoOp() | ||
+ | exten => s,n,Queue(operator,hHtT,,,10) | ||
+ | exten => s,n,Queue(security,hHtT,,,10) | ||
+ | exten => s,n,Queue(order-managers,hHtT,,,10) | ||
+ | exten => s,n,Hangup | ||
+ | |||
+ | ; Не рабочее время | ||
+ | exten => s,n(NotWorkTime),NoOp() | ||
+ | exten => s,n,Queue(security,hHtT,,,10) | ||
+ | exten => s,n,Hangup | ||
+ | |||
+ | include => in-special-numbers | ||
+ | include => in-generic-numbers | ||
+ | |||
+ | [in-special-numbers] | ||
+ | ; Специальные номера | ||
+ | exten => 0,1,Set(__TRANSFER_CONTEXT=transfer) | ||
+ | same => n,SIPAddHeader(Alert-Info:info=ring2) | ||
+ | same => n,Dial(SIP/100,,tT) | ||
+ | |||
+ | exten => 9,1,Set(__TRANSFER_CONTEXT=transfer) | ||
+ | same => n,SIPAddHeader(Alert-Info:info=ring2) | ||
+ | same => n,Dial(SIP/109,,tT) | ||
+ | |||
+ | [in-generic-numbers] | ||
+ | ; Основные номера | ||
+ | exten => _1XX,1,Set(__TRANSFER_CONTEXT=transfer) | ||
+ | same => n,SIPAddHeader(Alert-Info:info=ring2) | ||
+ | same => n,Dial(SIP/${EXTEN},,tT); Разрешим переадресацию звонков | ||
+ | same => n,HangUp() | ||
+ | </code> | ||
+ | ====== Примеры для исходящих вызовов ====== | ||
+ | |||
+ | ===== Звонки через ГТС (шлюз FXO) ===== | ||
+ | В данных примерах конструкция ''SIP/991'' обозначает: ''99'' префикс линии, ''1'' номер линии шлюза. | ||
+ | |||
+ | Приведённым ниже примерам соответствует эта [[asterisk:user_manual|Инструкция для пользователя]]. | ||
+ | |||
+ | <code> | ||
+ | ; Город через ГТС (шлюз FXO) | ||
+ | [out-9] | ||
+ | exten => _9[0-7,9].,1,Dial(SIP/991${EXTEN:1}@fxo); Линия 1 | ||
+ | exten => _9[0-7,9].,n,Dial(SIP/992${EXTEN:1}@fxo); Линия 2 | ||
+ | exten => _9[0-7,9].,n,Dial(SIP/993${EXTEN:1}@fxo); Линия 3 | ||
+ | exten => _9[0-7,9].,n,Dial(SIP/994${EXTEN:1}@fxo); Линия 4 | ||
+ | exten => _9[0-7,9].,n,Dial(SIP/995${EXTEN:1}@fxo); Линия 5 | ||
+ | exten => _9[0-7,9].,n,Playtones(busy) | ||
+ | exten => _9[0-7,9].,n,Congestion | ||
+ | exten => _9[0-7,9].,n,Hangup() | ||
+ | |||
+ | ; Мобильные через ГТС (шлюз FXO) | ||
+ | [out-mobile-pstn] | ||
+ | exten => _89XXXXXXXXX,1,Dial(SIP/9918${EXTEN:1}@fxo); Линия 1 | ||
+ | exten => _89XXXXXXXXX,n,Dial(SIP/9928${EXTEN:1}@fxo); Линия 2 | ||
+ | exten => _89XXXXXXXXX,n,Dial(SIP/9938${EXTEN:1}@fxo); Линия 3 | ||
+ | exten => _89XXXXXXXXX,n,Dial(SIP/9948${EXTEN:1}@fxo); Линия 4 | ||
+ | exten => _89XXXXXXXXX,n,Dial(SIP/9958${EXTEN:1}@fxo); Линия 5 | ||
+ | exten => _89XXXXXXXXX,n,Hangup() | ||
+ | |||
+ | ; Межгород через ГТС (шлюз FXO) | ||
+ | [out-8] | ||
+ | exten => _8[2-8]XXXXXXXXX,1,Dial(SIP/9918${EXTEN:1}@fxo); Линия 1 | ||
+ | exten => _8[2-8]XXXXXXXXX,n,Dial(SIP/9928${EXTEN:1}@fxo); Линия 2 | ||
+ | exten => _8[2-8]XXXXXXXXX,n,Dial(SIP/9938${EXTEN:1}@fxo); Линия 3 | ||
+ | exten => _8[2-8]XXXXXXXXX,n,Dial(SIP/9948${EXTEN:1}@fxo); Линия 4 | ||
+ | exten => _8[2-8]XXXXXXXXX,n,Dial(SIP/9958${EXTEN:1}@fxo); Линия 5 | ||
+ | exten => _8[2-8]XXXXXXXXX,n,Hangup() | ||
+ | |||
+ | ; Международные через ГТС (шлюз FXO) | ||
+ | [out-810] | ||
+ | exten => _810.,1,Dial(SIP/996${EXTEN}@fxo); Линия 1 | ||
+ | exten => _810.,n,Dial(SIP/993${EXTEN}@fxo); Линия 2 | ||
+ | exten => _810.,n,Dial(SIP/994${EXTEN}@fxo); Линия 3 | ||
+ | exten => _810.,n,Dial(SIP/995${EXTEN}@fxo); Линия 4 | ||
+ | exten => _810.,n,Dial(SIP/992${EXTEN}@fxo); Линия 5 | ||
+ | exten => _810.,n,Hangup() | ||
+ | </code> | ||
+ | |||
+ | ===== Звонки через МультиФон ===== | ||
+ | Основная статья о [[multifon:multifon|МультиФон]]. | ||
+ | |||
+ | <code> | ||
+ | ; Мобильные через МультиФон | ||
+ | [out-mobile-multifon] | ||
+ | exten => _79XXXXXXXXX,1,Dial(SIP/${EXTEN}@79271234567,30,r) | ||
+ | exten => _79XXXXXXXXX,n,Hangup() | ||
+ | </code> | ||
+ | ====== Примеры уровней доступа ====== | ||
+ | |||
+ | <code> | ||
+ | ; Только внутренние | ||
+ | [level-0] | ||
+ | include => local | ||
+ | |||
+ | ; Город | ||
+ | [level-1] | ||
+ | include => level-0 | ||
+ | include => out-9 | ||
+ | |||
+ | ; Город + Мобильные | ||
+ | [level-2] | ||
+ | include => level-1 | ||
+ | include => out-mobile-pstn | ||
+ | |||
+ | ; Межгород | ||
+ | [level-3] | ||
+ | include => level-2 | ||
+ | include => out-8 | ||
+ | |||
+ | ; Международные | ||
+ | [level-4] | ||
+ | include => level-3 | ||
+ | include => out-810 | ||
+ | |||
+ | ; BLF | ||
+ | [level-5] | ||
+ | exten => 100,hint,SIP/${EXTEN} | ||
+ | exten => 101,hint,SIP/${EXTEN} | ||
+ | exten => 102,hint,SIP/${EXTEN} | ||
+ | exten => 103,hint,SIP/${EXTEN} | ||
+ | exten => 105,hint,SIP/${EXTEN} | ||
+ | |||
+ | ; Прослушка | ||
+ | [level-6] | ||
+ | exten => 56,1,Congestion | ||
+ | exten => 56,n,Hangup() | ||
+ | |||
+ | ; Международные + BLF | ||
+ | [level-45] | ||
+ | include => level-4 | ||
+ | include => level-5 | ||
+ | |||
+ | ; Международные + BLF + Прослушка | ||
+ | [level-456] | ||
+ | include => level-4 | ||
+ | include => level-5 | ||
+ | include => level-6 | ||
+ | </code> | ||
+ | |||
+ | ====== Ссылки ====== | ||
+ | |||
+ | [[https://serveradmin.ru/vyivod-tranka-vmeste-s-nomerom-zvonyashhego/|Вывод транка вместе с номером звонящего в asterisk]] | ||
+ | |||
+ | |||
+ | {{tag>Asterisk}} |