Добавление SIP клиента во FreePBX

Чтобы добавить SIP клиента во FreePBX, откроем меню «Applications» — «Extensions«, выберем например «Generic CHAN SIP Device» и укажем основные параметры:

User Extension: 6000 (номер SIP)
Display Name: Operator (любое имя для отображения)
Secret: ПАРОЛЬ
и нажмем «Submit«.

Все, SIP добавлен, по указанному номеру и паролю он может уже регистрироваться.

Как добавить SIP в конфигурационном файле я описывал в этой статье — Добавление SIP клиентов в Asterisk

Установка и настройка GoIP СМС-сервера

На примере настрою GoIP СМС-сервер в Ubuntu Server 14.04 LTS x64.
Переключимся сразу на root пользователя:

Читать далее «Установка и настройка GoIP СМС-сервера»

Настройка SIP Trunk в Asterisk от Укртелеком

Приведу пример настройки SIP Trunk в Asterisk, то есть Asterisk будет в роли SIP клиента.
От провайдера Укртелеком получены данные: номер, пароль и адрес сервера телефонии (sip.ukrtel.net).
SIP номер брался чтобы сделать многоканальность не обычном городском номере, путем переадресации в случае занятости линии.
Настраивать буду на Linux сервере с реальным IP без использования NAT, а также на другом с NAT (во втором случае нужно nat=no изменить на nat=yes и закомментировать canreinvite).

Читать далее «Настройка SIP Trunk в Asterisk от Укртелеком»

Частые сообщения «Remote UNIX connection» в Asterisk

Заметил однажды в консоли Asterisk, что часто отображаются следующие сообщения:

— Remote UNIX connection
— Remote UNIX connection disconnected
— Remote UNIX connection
— Remote UNIX connection disconnected
— Remote UNIX connection
— Remote UNIX connection disconnected

Читать далее «Частые сообщения «Remote UNIX connection» в Asterisk»

Решение ошибки «Unable to create channel of type ‘SIP’ (cause 20 — Subscriber absent)»

Заметил однажды при звонках в консоли Asterisk следующую ошибку:

dial_exec_full: Unable to create channel of type ‘SIP’ (cause 20 — Subscriber absent)

В контексте диалплана у меня выполняется звонок одновременно на два телефона:

exten => s,5,DIAL(SIP/204&SIP/203,19)

Иногда один из IP-телефонов выключен, в связи с чем и возникает эта ошибка, сообщающая что абонент отсутствует.
Для решения нужно просто включить IP-телефон.

Можно посмотреть информацию о SIP в консоли Asterisk:

asterisk -rvv
sip show peers
sip show peer НОМЕР
quit

Если вместо IP-адреса клиента отображается null, а expire равно -1, то SIP клиент не в сети:

Expire: -1
Addr->IP: (null)

Настройка FSK в Asterisk для определения номеров

Чтобы определялся номер, с аналоговых линий, нужно в контексте для каждого Trunk канала Dahdi указать:

Читать далее «Настройка FSK в Asterisk для определения номеров»

Увеличение громкости звонков в Asterisk

Чтобы увеличить громкость разговора при звонках, необходимо в файле /etc/asterisk/extensions.conf, в начале каждого диалплана добавить пару строк (на которых нужно увеличить громкость):

Читать далее «Увеличение громкости звонков в Asterisk»

Маршрутизация звонков по времени в Asterisk

Приведу пример маршрутизации звонков по времени в Asterisk.
Допустим в файле /etc/asterisk/extensions.conf есть настроенный контекст для транка со следующими параметрами:

[Trunk_2]
exten => s,1,DIAL(SIP/6004&SIP/6003,19)
exten => s,2,Hangup()

И чтобы разрулить звонки по времени на разные телефоны укажем для контекста этого транка только вложенные контексты:

[Trunk_2]
include => daytime,8:00-18:00,mon-sat,*,*
include => nighttime,18:00-8:00,mon-sun,*,*
include => sunday,8:00-22:00,sun,*,*

По сути daytime, nighttime, sunday это только названия контекстов, для которых прописано время в контексте [Trunk_2], их можно называть как угодно.

И потом в этих отдельных контекстах уже пропишем нужные екстеншены.
То есть, днем:

[daytime]
exten => s,1,DIAL(SIP/6004&SIP/6003,19)
exten => s,2,Hangup()

Ночью:

[nighttime]
exten => s,1,DIAL(SIP/6002,19)
exten => s,2,Hangup()

И в воскресенье:

[sunday]
exten => s,1,DIAL(SIP/6002,19)
exten => s,2,Hangup()

Можно также например создать контекст holiday с праздничными днями:

include => holiday,*,*,1,jan
include => holiday,*,*,8,mar

и т.д.

Для тех кто хочет расписать подробнее по дням, приведу список дней на английском:
mon — Monday — Понедельник
tue — Tuesday — Вторник
wed — Wednesday — Среда
thu — Thursday — Четверг
fri — Friday — Пятница
sat — Saturday — Суббота
sun — Sunday — Воскресенье

Аналогично сокращаются до трех букв и названия месяцев.