Показаны сообщения с ярлыком Dialplan. Показать все сообщения
Показаны сообщения с ярлыком Dialplan. Показать все сообщения

18 янв. 2014 г.

Использование встроенной базы данных AstDB в Asterisk

AstDB является частью Asterisk  и устанавливается вместе с ним. Это простая БД (Barkley DB версии 1), без всяких заморочек. Если нужно подключить к Asterisk БД MySQL или PosrgreSQL - это тоже можно сделать, но для несложных задач вполне хватит и AstDB.

Предположим, у нас уже настроен GSM-модем в Asterisk - например, как я описывал здесь для модемов Huawei - и мы хотим звонить на мобильные номера наших абонентов (к примеру, в не рабочее время, когда они находятся вне доступа к SIP телефонам).

Хранится информация в БД с помощью трех понятий - семейство, ключ и значение. Семейство - это аналог таблицы, в которой хранятся пары ключ-значение.

Для начала, нам необходимо наполнить нашу БД номерами. Сделать это можно в процессе диалплана командой вроде:

exten => s,n,Set(DB(mobile/1112)=0991111111)

Здесь мы создаем (или модифицируем, если таковой ключ уже есть) ключ 1112 - SIP-номер для нашего абонента, в моем примере - в семейтве mobile. И присваиваем ему номер мобильного для этого абонента.

Но для большого количества абонентов делать такое не есть хорошо, тем более что БД хранит данные и после перезапуска Asterisk  и после перезагрузки сервера. Потому, целесообразнее - для моего примера - заранее заполнить БД данными из командной строки Asterisk.

Добавление/модификация значений:

database put <семейство> <ключ> <значение>
Пример: database put mobile 1112 0991111111

Для просмотра информации имеем команду:

database get <семейство> <ключ>

а также для просмотра всей БД:

database show

В плане набора (dialplan) пишем следующее:

...
; Вызываем макрос для дозвона по GSM, передавая ему SIP номер абонента как аргумент
exten => _1XXX,n,Macro(dial-mobile,${EXTEN})
....
[macro-dial-mobile]
; Вытаскиваем из БД значение номера для нужного абонента
; и помещаем в его переменную MobNumber
exten => 1,1(mobile),Set(MobNumber=${DB(mobile/${ARG1})})
; Звоним через GSM-модем
exten => 1,n,Dial(Dongle/dongle0/${MobNumber},100,dmghHtT)
...

Вот в общем-то и всё. 

22 мар. 2013 г.

Звонки в Asterisk через PSTN (ТфОП) с помощью Grandstream Handy Tone HT503

В общем, необходимо подключить обычную телефонную линию (ТфОП, PSTN) к Asterisk для возможности принимать и совершать вызовы через неё.

В этой статье изложу свой опыт - для памятки и вдруг кому-нибудь еще поможет.

Как подключить аналоговую линию в цифровой астериск? Вариантов нашлось три:
  • VoIP-гейтвей
  • PCI-карточка с хотя бы одним портом FXO
  • небольшая волшебная коробочка под названием Grandstream Handy Tone HT503
1й вариант отвергли, т. к. гейт дорог и в его функционал не будет реализован на его стоимость. 2й вариант был отвергнут, т. к. на материнской плате сервера нет обычного PCI-порта... и еще потому, что настраивать карточки расширения имеет смысл, если у нас несколько линий аналоговой/цифровой телефонии FXO/E1. Самым простым и экономичным вариантом оказался номер 3 (стоимость его 50-70 долл).

Итак, разберемся с терминологией. Если по-простому, то:
  • FXO - это интерфейс, к которому подключается PSTN, т. е. сама телефонная линия.
  • FXS - интерфейс для подключения обычного аналогового телефона для использования его в VoIP-телефонии.
  • E1 - интерфейся цифровой телефонии, используются в крупных организациях с множеством цифровых каналов.
Для наших задач возможно подошло бы и другое устройство подобного типа, НО из представленных на нашем рынке устройств, только HT503 имело FXO-порт. Большинство таких устройств имеют только 1 или несколько FXS-портов. Они нам НЕ подходят! Называются они ATA - Analog Telephone Adapter. (в HT503, к слову, также есть один FXS порт, так что он тоже ATA, но не только).

Моменты, которые необходимо учитывать при настройке HT503:
  • подключение чекез WAN или LAN
  • настройка аналоговых параметров ТфОП на странице Advanced Settings (зависят от страны)
  • параметры отсылки DTMF-сигналов для голосовых меню входящих и исходящих вызовов
  • региональные параметры детектирования busy-сигнала ТфОП. Если задать неверные - HT503 не будет детектировать момент завершения входящего вызова вызывающим абонентом
  • Настройки сопротивления ТфОП
  • приоритеты кодеков
  • настройка экстеншна Unconditional Call Forward to VOIP для диалплана Астериска

В общем, распаковываем коробку, подключаем к HT503 БП, затем

17 авг. 2012 г.

Настройка модемов Huawei для работы с АТС Asterisk PBX

После некоторых мучений и поисков, что чего и куда, решил написать статью для потомков о настройке модемов Huawei для работы с АТС Asterisk.

Для начала установим необходимые пакеты. Всё нижесказанное для системы Debian. Для других дистрибутивов нужно будет подправить команды и возможно пути.

aptitude install asterisk-dev libusb libusb-dev subversion build-essential

Теперь идём на реальную вин-машину. Втыкаем туда нашего зверька, винда должна пошуршать дровами, затем надо установить из памяти устройства программульку U'manager. Она установит дрова именно на сам модем. Для верности, заходим в свойства в прожке и проверяем, виден ли наш модем.


Теперь скачиваем прожку для крякания модемчиков Хуявей тут Huawei_Modem_Unlocker.zip