SIP клиенты в Asterisk указываются в файле sip.conf, поэтому откроем его например в текстовом редакторе nano (Ctrl+X для выхода из редактора, y или n для сохранения или отмены изменений):
sudo nano /etc/asterisk/sip.conf
Сначала укажем следующий параметр, запретив принимать анонимные звонки:
allowguest=no
Теперь в самом конце файла добавим клиента:
[6000]
type=friend
secret=PASSWORD
nat=no
host=dynamic
dtmfmode=rfc2833
disallow=all
allow=ulaw
context=sip-dialout
callerid=6000
deny=0.0.0.0/0
permit=192.168.0.10/32
Кратко опишу параметры которые я указывал:
type — тип клиента, может быть user (идентификация по паролю), peer (идентификация по адресу хоста), fried (либо по паролю, либо по хосту).
secret — пароль пользователя.
nat=no — указывает, что клиент может быть за NAT, смотрите мою статью по поводу этого Звонок через NAT.
host=dynamic — нет привязки клиента к адресу хоста.
dtmfmode=rfc2833 — метод передачи dtmf тонов набора номера.
disallow=all — запрет всех кодеков.
allow=ulaw — разрешим только кодек ulaw
context=sip-dialout — имя диалплана (он описывается в extensions.conf)
callerid=6000 — внутренний номер телефона клиента.
deny=0.0.0.0/0 — запрещаем подключение со всех IP адресов.
permit=192.168.0.10/32 — разрешаем подключение только с указанного IP адреса.
После добавления клиента подключимся к Asterisk и обновим конфигурацию sip:
sudo asterisk -rvv
sip reload
Посмотреть список клиентов можно командой:
sip show users
sip show peers
Для выхода из консоли Asterisk наберем:
quit
Теперь уже можно подключиться добавленному клиенту к серверу Asterisk используя например программу X-Lite, Zoiper или VoIP телефон, но звонить пока некуда, поэтому добавим для теста второго клиента в sip.conf:
[6001]
type=friend
secret=PASSWORD
nat=no
host=dynamic
dtmfmode=rfc2833
disallow=all
allow=ulaw
context=sip-dialout
callerid=6001
deny=0.0.0.0/0
permit=192.168.0.10/32
Откроем в редакторе файл extensions.conf:
sudo nano /etc/asterisk/extensions.conf
И укажем в его конце следующие строки, чтобы пользователи могли звонить друг другу:
[sip-dialout]
exten => 6000,1,Dial(SIP/6000)
exten => 6001,1,Dial(SIP/6001)
Перезапустим Asterisk чтобы применить изменения:
sudo service asterisk restart
Или обновим конфигурацию если не хотим перезагружать:
sudo asterisk -rvv
dialplan reload
quit
Все, мы добавили двух пользователей и они могут звонить друг другу.
Если вы хотите использовать SIP клиент на iPhone, то после установки и настройки приложения для звонков, необходимо обязательно активировать функцию «Обновление контента» для «Wi-Fi и сотовые данные», которая находится в «Настройки» — «Основное» — «Обновление контента». Так как после блокировки экрана iPhone, через несколько секунд отключается Wi-Fi, а также приложения не указанные в функции «Обновление контента» активно не используются для экономии системных ресурсов. Также в настройках SIP клиента на asterisk не ограничиваем ему доступ по IP адресу так как iPhone в заблокированном состоянии будет подключаться через сотовую связь.
Смотрите также мою статью:
Добавление SIP клиента во FreePBX
спасибо