Настройка Asterisk DUNDi SIP
Таким же способом можно объединить и другие сервера в сети.
(Основывается на конфигурациях в директории config и статьях Brian K. West aka bkw_)
http://voip-info.org/wiki/view/DUNDi+Enterprise+Configuration+SIP
Примечание
Данная конфигурация не предусматривает установку пароля как, например, в DUNDi Enterprise Configuration IAX или DUNDi Enterprise Configuration SIP, поэтому не рекомендуется для незащищённых сетей. Главное отличие от DUNDi Enterprise Configuration SIP заключается в небольших изменениях файлов sip.conf и extentions.conf на серверах.
Следует учитывать:
• До тех пор пока ваш специфичиский хост не будет указан в файле sip.conf, звонки будут обрабатываться согласно контексту, заданному в части [general]. Вы можете добавить в этот контекст [dundi-priv-local].
Файл extensions.conf на сервере A:
; Private DUNDi network [dundi-priv-canonical] ; Direct numbers ;example: ;exten => 201,1,Dial(SIP/201,20,tT) ;exten => 203,1,Dial(SIP/201,20,tT) ;exten => 204,1,Dial(SIP/204,20,tT) ; ATTENTION! this part should be added on box A ;--------start ; in order to advertise Zap extentions ; we must use _[3-5]XX wildcard ; not to mess up numeration with BP250 ; please see attached scheme ; this part should be added on box A ;exten => _[3-5]XX,1,Dial(Zap/g1/${EXTEN},20,rtT) ;--------finish [dundi-priv-customers] ; If you are an ITSP or Reseller, list your customers here. [dundi-priv-via-pstn] ; If you are freely delivering calls to the PSTN, list them here [dundi-priv-local] include => dundi-priv-canonical include => dundi-priv-customers include => dundi-priv-via-pstn [dundi-priv-switch] ; Just a wrapper for the switch switch => DUNDi/priv [dundi-priv-lookup] include => dundi-priv-local include => dundi-priv-switch [macro-dundi-priv] exten => s,1,Goto(${ARG1},1) include => dundi-priv-lookup
Файл extensions.conf на сервере В:
; Private DUNDi network [dundi-priv-canonical] ; Direct numbers ;example: ;exten => 888,1,Dial(SIP/888,20,tT) [dundi-priv-customers] ; If you are an ITSP or Reseller, list your customers here. [dundi-priv-via-pstn] ; If you are freely delivering calls to the PSTN, list them here [dundi-priv-local] include => dundi-priv-canonical include => dundi-priv-customers include => dundi-priv-via-pstn [dundi-priv-switch] ; Just a wrapper for the switch switch => DUNDi/priv [dundi-priv-lookup] include => dundi-priv-local include => dundi-priv-switch [macro-dundi-priv] exten => s,1,Goto(${ARG1},1) include => dundi-priv-lookup
Файл sip.conf на обоих серверах:
[priv] type=peer context=dundi-priv-local disallow=all allow=ilbc
Файл dundi.conf на обоих серверах под mappings:
Во всех строчках требуется изменить ${IPADDR} на ваш локальный IP-адрес.
priv => dundi-priv-canonical,0,SIP,${IPADDR}/${NUMBER},nopartial priv => dundi-priv-customers,100,SIP,${IPADDR}/${NUMBER},nopartial priv => dundi-priv-via-pstn,400,SIP,${IPADDR}/${NUMBER},nopartial
Теперь на каждом сервере смените директорию: cd /var/lib/asterisk/keys и запустите
astgenkey -n BOXNAMEHERE (имя или адрес сервера)
Нажмите Еnter, чтобы не вводить пароль в ключах, если вы не хотите инициализировать ключи при каждом запуске asterisk.
Теперь запустите обмен публичными ключами (public keys) между серверами.
Файл dundi.conf на сервере А:
[DE:AD:BE:EF:DE:AD] <-- EID/MAC сервера B model = symmetric host = boxb.domain.com inkey = BOXB <- BOX B's public key outkey = BOXA <- BOX A's private key include = priv permit = priv qualify = yes order = primary
Файл dundi.conf на сервере В:
[BE:EF:DE:AD:BE:EF] <-- EID/MAC сервера A model = symmetric host = boxa.domain.com inkey = BOXA <- BOX A's public key outkey = BOXB <- BOX B's private key include = priv permit = priv qualify = yes order = primary
Теперь в контексте устройств, подключенных к внешней сети, вы можете сделать следущее:
exten => _91NXXNXXXXXX,1,Macro(dundi-priv,${EXTEN:1}) exten => _91NXXNXXXXXX,2,Dial(Zap/g1/${EXTEN:1}) ; Это вывод для примера подключения к ТфОП через PRI
и найти номера в вашей сети DUNDi! Отлично работает!