Авг 08 2009

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

    Спасибо за статью.

Other Links to this Post


Украинская Баннерная Сеть