Asterisk добавляем SIP клиентов.
Астериск замечательно подходит на роль внутриоффисной АТС, даже если у вас нет выходя на внешнюю линию, уже сейчас можно замечательно звонить друг другу и общаться через Asterisk. Для этого нужен сервер с Asterisk, компьютеры с установленным SIP фоном и наушники(колонки) с микрофоном. Использовать можно ekiga, это софтфон под FreeBSD, Linux и т.п. И к примеру X-Lite, он меня не подводил. Теперь остается настроить Asterisk.
Начнем с настройки SIP аккаунтов. Для этого откроем для редактирования файл sip.conf. В нем находятся настройки отвечающие за SIP.
В первую очередь нужно запретить принимаить по SIP анонимные звонки. В первую очередь это касается PBXов которые имеют доступ к Интернет с маршрутизируемым IP адресом. Для этого находим строку:
;allowguest=noи убрать точку с запятой, которая находится в начале. Вот так:
allowguest=noЭто в принципе единственный глобальный параметр, который стоит поменять. Остальные параметры будем описывать непосредственно в настройках клиента.
Клиент в настройках sip.conf выглядит так:
[hilik] type=friend secret=hilik nat=yes host=dynamic username=hilik dtmfmode=rfc2833 disallow=all allow=ulaw context=sip-dialout callerid=333
Начинается клиент c имени(loginа) клиента заключенного в квадратные скобки в нашем случае это [hilik].
Следующая опция type описывает тип клиента, в нашем случае friend. Вообще существует три типа user – это когда идентификация клиента осуществляется по полю From SIP заголовка, который исходит от клиента. peer – идентификация происходит по адресу хоста с которого осуществляется регистрация. И тот тип, что мы применили friend – это смесь peer и user, идентифкация происходит любым методом(либо адрес хоста, либо юзернейм).
secret – это пароль пользователя.
nat=yes – обозначает, что клиент может находится за натом и для открытия медиаканала при звонке этого пользователя требуется трансляция заголовков.
host=dynamic – привязка к адресу хоста клиента отсутствует.
username=hilik – имя пользователя. Этот логин потом используется в настройках сип клиента.
dtmfmode=rfc2833 – метод передачи dtmf – тонов набора номера. Существует еще метод info, должен совпадать с настройками в SIP клиенте.
disallow=all – запрещаем все кодеки
allow=ulaw – разрешаем кодек ulaw, кодек должен быть такой, который поддерживается клиентом
context=sip-dialout – контекст описывает через какую секцию диалплана будут проходить звонки клиента
callerid=333 – устанавливаем презентацию звонка. При исходящих звонках будет высвечиваться этот номер.
Настройку клиента нужно внести в конце файла. И нужно подключится к астериск:
asterisk -rи в появившейся командной строке астериск выполнить команду:
asterisk*CLI> sip reload asterisk*CLI>
Теперь тут же в коммандной строке проверим:
zapp*CLI> sip show users Username Secret Accountcode Def.Context ACL NAT hilik hilik sip-dialout No Always zapp*CLI>
Все хорошо, появился клиент. Но теперь нужно настроить маршрутизацию звонков на него и от него. Для этого служит специальный файл extensions.conf, в нем описываются правила дозвона. В следующих статьях я подробно опишу работу с этим файлом, а теперь расскажу коротко как сделать так что бы 2 клиента SIP могли общаться между собой.
Для этого введем в sip.conf еще одного клиента:
[sergey] type=friend secret=sergey nat=yes host=dynamic username=sergey dtmfmode=rfc2833 disallow=all allow=ulaw context=sip-dialout callerid=444
И в настройках диалплана(extentions.conf), где то в конце файла:
[sip-dialout] exten => 333,1,Dial(SIP/hilik) exten => 444,1,Dial(SIP/sergey)
Все, теперь абонент зарегестрированный под именем hilik может звонить на номер 444, абоненту sergey и принимать звонки приходящие на номер 333 от абонента зарегистрированного под именем sergey. В вашем контексте sip-dialout всего два префикса, поэтому только между ними и есть возможность обмениваться звонками.
На сегодня на этом все. В дальнейшем продолжим разбираться с extentions.conf и научимся маршрутизировать звонки.




By Dimitricus, 25.11.2009 @ 15:02
Отличная статья. Доступно.
By Shunya, 30.12.2009 @ 13:49
Спасибо за статью.
By Fedore.ig, 06.09.2010 @ 12:42
Hilik, а как быть с сотнями пользователей? Как зарегистрировать на Астериск пользователей без username/secret.