| Сейчас я покажу как настроить asterisk на двух пользователей и подключить sip-trunk от sipnet-а. Установку и запуск asterisk я показывал в прошлом посте, так что не будем возвращаться к этому.   Для начала перейдем в папку с конфигами asterisk и создадим директорию для своих конфиго, и сами файлы конфигов (не люблю все писать в базовых конфигах): 
cd /etc/asterisk/ mkdir conf touch conf/sip_trunk.conf touch conf/sip_register.conf touch conf/sip_users.conf touch conf/extensions.conf Теперь сделаем что бы asterisk читал от туда наши данные, для этого используется директива «#include«. В случае с extensions.conf проще не куда, просто в конец файла /etc/asterisk/extensions.conf добавляем строку: 
#include conf/extensions.conf А вот с sip.conf немного больше работы. Нам в файле /etc/asterisk/sip.conf нужно прописать целых три include. Итак приступим. Первым пропишем sip_trunk.conf, для этого перед блоком ganeral вставляем #include conf/sip_trunk.conf В итоге должно получится так: 
… #include conf/sip_trunk.conf [general] … Далее вставим конфиг для регистрации транков. Ищем в блоке [general] текст «OUTBOUND SIP REGISTRATIONS» и за ней вставим #include conf/sip_register.conf В итоге должно получится так: 
;——————— OUTBOUND SIP REGISTRATIONS —————#include conf/sip_register.conf
 И теперь в конец файла /etc/asterisk/sip.conf добавляем строку: 
#include conf/sip_users.conf Последний штрих и asterisk будет видеть наши файлы: 
asterisk -rx ‘sip reload’ && asterisk -rx ‘dialplan reload’   Теперь перейдем непосредственно к конфигурированию. Задача 1: Создание внутреннего номера.Открываем файл conf/sip_users.conf и пишем в него следующее: 
[100]type=friend
 secret=qwe
 host=dynamic
 context=out
 dtmfmode=RFC2833
 disallow=all
 allow=ulaw
 allow=alaw
 nat=comedia
 qualify=yes
 Теперь разберем все по порядку: 
 [100] — указываем внутренний номер;type — в данном случае (friend) разрешаются входящие и исходящие звонки;secret — пароль от номера;host — указывает с какого адреса регистрируется телефон (в данном случае с любого);context — собственно указывает по какому контексту будет идти вызов при исходящем вызове;dtmfmode — указываем dtmf на RFC2833;disallow — отключаем все голосовые кодеки;allow — подключаем указанные кодеки;nat — указываем является ли телефон за nat. В asterisk 11 убрали значение yes и вмесно него мы можем указать comedia или force_rport;qualify — проверка доступности номера (yes = 200 мс); Теперь у нас есть внутренний номер, но толку от этого мало, необходимо asterisk научить звонить. Но сначала подключим линию от sipnet. Задача 2. Подключение внешних линий (sipnet.ru).Открываем файл conf/sip_trunk.conf и пишем следующее: 
[sipnet]secret=you_pass
 defaultuser=you_sipnet_id
 trunkname=sipnet
 host=sipnet.ru
 type=friend
 context=income
 insecure=invite
 fromuser=you_sipnet_id
 fromdomain=sipnet.ru
 disallow=all
 allow=alaw
 allow=ulaw
 allow=g729
 nat=no
 dtmfmode=rfc2833
 Следующий шаг, это прописать регистрацию. Открываем conf/sip_register.conf и пишем: 
register => you_sipnet_id:you_pass@sipnet.ru Готово. Задача 3. Учим asterisk звонить.Открываем conf/extensions.conf и пишем: 
[income]exten => s,1,Dial(SIP/100,90,mt) ;Входящий звонок попадает на номер 100
 same => n,Hangup ;Кладем трубку, если номер 100 не смог ответить
 [out]exten => _XXX,1,Dial(SIP/${EXTEN},90,mtT) ;Звонки между внутренними номерами
 same => n,Hangup
 ;Звонок через sipnet. Звонок происходит через 7.exten => _7X.,1,Dial(SIP/${EXTEN:1}@sipnet,90,mT)
 same => n,Hangup
 Разбор полётов. Структыра комманды Dial: Dial(type/identifier,timeout,options,URL) Теперь немного об опциях команды Dial в этом примере 
 90 — время ожидания ответа;m — проигрывать музыку при ожидании;t — разрешает ответевшему пользователю перевести звонок;T — разрешает звонящему пользователю перевести звонок; Теперь последний штрих, перезагрузка sip и dialplan: 
asterisk -rx ‘sip reload’ && asterisk -rx ‘dialplan reload’ Все, на asterisk можно звонить и делать исходящие вызовы. Profit! =) 
 Источник: http://miho.org.ua/?p=65
 |