Asterisk и VolLTE

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Новое время - новые вызовы

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

Предыдущие статьи по теме:
Asterisk. Доставка SIP Message после возврата абонента из off-line'а
SMS через SIP messaging в Asterisk

Выбор подходящих модемов

Не смотря на то, что LTE модемов много, часть из них не поддерживает голос (и тут нет ничего нового, так было и во времена "станого GSM"), а еще значительная часть - не имеет соответствующих модулей для Asterisk.

Наиболее свежим можно считать Проект IchthysMaranatha, за что ему огромное человеческое спасибо. И несмотря на то, что заявлена поддержка нескольких модемов и чипов, наилучшие результаты достигаются с чипом Quectel EC25.

У чипа есть несколько вариантов как по диапозонам, так и по формату платы, на которой он напаян (и интерфейсов), но все это не так важно - главное подберите под свой регион. У меня заработал EC25G-E в формате USB свистка (а ниже будет рекомендация что лучше чем это).

no-name Quectel EC25G-E (антенны не показаны)
no-name Quectel EC25G-E (антенны не показаны)

Что нужно учитывать с LTE модемами

Все современные модемы - очень энергоемкие. Сразу все предупреждают что они потребляют 2.1A и что мощности "обычного" порта USB не хватит для их работы. Особенно это актуально для Raspberry Pi, где порт не дает больше 1.2А, да и то, если блок питания позволяет и другие потребители не кушают лишнего. В своем проекте я использовал другую плату, но даже там больше 1го модема система не тянула с блоком питания Apple 65W.

Второй момент - размер. Эти модемы значительно больше Е1550 и в соседние порты не войдут. Ни по вертикали, ни по горизонтали. Т.е. нужны или пигтейлы или внешний USB3 хаб (можно и на USB2, но они любят 3й, по крайней мере у меня, уж не знаю почему), у которого есть минимум 3 порта. Тогда можно вставить 2 модеме через 1 порт и все поместится. И да - хаб должен быть с внешним питанием.

Как я решал проблему питания

Так как у меня плата позволяет прокачать один модем, я взял внешний хаб D-Link DUB-1340, у которого заявлены те самые 2.5A на один порт. в него можно воткнуть 2 модема с внешними антеннами, или 3 в конфигурации "2 с антеннами + 1 без".

Предварительные настройки

Мы настроим GNSS и узнаем IMEI модема.

Важной особенностью чипсета Quectel EC25 является наличие GPS и WiFI. И если второй не особо страшен, то первый передает данные по ttyUSB как раз по каналу, по которому же идет и звук. Исправим.

Найдем устройства, которые создал наш модем, скажем ttyUSB6..9. Скорее всего ttyUSB9 будет для управления. Попробуем подключиться screen /dev/ttyUSB9 и послать комманду AT. Если ответ ОК - мы на нужном устройстве. Если ответа нет, пробуем другое до досижения успеха.

Собственно отключим вывод GNSS на ttyUSB.

Как только мы нашли устройство управления - пошлем следующую комманду:
AT+QGPSCFG=?
ответ должен быть
+QGPSCFG: "outport",("none","usbnmea","uartdebug")

Отключим вывод данных GNSS в канал USB-Audio (я не использую эту опцию вообще, как оно поведет себя с uartdebug не готов сказать)
AT+QGPSCFG="outport"
отетом будет
+QGPSCFG: "outport",none

Все, теперь нам ни кто не мешает слушать звук через ttyUSB устройство.
Смешно то, что модуль и сам Asterisk не будут ругаться на звуковое устройство, если в модеме не отключен вывод GNSS данных - просто звонок будет "виснуть", ни кто никого не будет слышать, а при сбросе вызова в клиенте, модем будет продолжать находиться в статусе Dial и поможет только ресет из консоли Asterisk.

Выясним IMEI модема, чтоб потом его использовать при описании в модуле Asterisk:
AT+CGSN
Ответом будет строка цифр - она нам нужна, запишем в файлик рядом с именем ttyUSB управления.

Конфигурируем Asterisk

Ставим chan-quectel из ссылки. Там все описано подробно, не будут копировать.

Последним пунктом инструкции идет копирование конфигурационного файла quectel.conf в папку с Asterisk. После его выполнения нужно сделать следующее:

  • Настроить загрузку модуля в modules.conf не забыв заблокировать chan_dongle как лишний (если вы все модемы GSM убрали)
    ;load = chan_dongle.so
    load = chan_quectel.so

  • Настроить параметры в quectel.conf
    context=incoming - вставить нужное вам согласно dialplan
    imei=816068516637705 - вставить IMEI вашего модема, которую мы получили раньше
    ;audio= и ;data= - закомментируем эти 2 параметра, так как по моей просьбе разработчик добавил фичу автопоиска устройств упарвления и звука в модуль.
    rxgain=2 и txgain=-1 - конкретно у меня эти параметры такие. Можно начать с значений по умолчанию, но не забываем что иногда это помогает решить разные эффекты бочке и эхо.

  • Модифицируем dialplan в extensions.conf
    Так как я говорю про свою систему, я ссылаюсь на свой файл из предыдущих статей.

    - было достаточно провести элементарные :%s/dongle0/quectel0/g для всех моих устройств
    - было достаточно провести элементарные :%s/Dongle\/dongle0/Quectel\/quectel0/g для всех моих устройств

Далее простое в консоли Asterisk:
module unload cahn_dongle
module load cahn_quectel
dialplan reload

По идее это должно быть все. Можно работать с модулем chan_quectel как и с chan_dongle заменяя команды на quectel. Учитывайте, что LTE модемы регистрируются в сети чуть дольше, чем обычные GSM и более чувствительны к качеству и уровню сигнала.

Пара замечаний, как быть с питанием, или что можно сделать иначе

Как уже писал выше, питание это боль. Решать это можно двумя способами:

А. Пигтейлы и внешние адаптеры питания
Можно взять вот такую пару на 3А и замутить связку.

no-name адаптеры, которые, иногда, работают
no-name адаптеры, которые, иногда, работают
USB3 пигтейл с доп-питанием
USB3 пигтейл с доп-питанием

Преимущество в том, что у нас точно можно использовать рядомстоящие порты, но придется подтягивать удилиннитель-разветвитель 220V, а еще адаптеры умеют греться (как и модемы). Короче такой себе колхоз. С другой стороны, можно разобрать адаптеры, наклеять их на плекс или что-то подобное, сделать электроразводку и вывести одним шнуром питания... такие себе очумелые ручки.

Б. Готовые платы с питанием для чипа и USB интерфейсом
На рынке есть готовые платы с доп-питанием и модемом. Я не пробовал, так как поздно про них узнал, но видел потом их в количестве. Так же решается вопрос с близкорасположенными портами, внешним питанием и аккуратностью всей конструкции. Единственное, что придется докупать нужные антенны и как-то все это размещать и закреплять, чтоб не развалилось.

all-in-one плата с модемом, питанием и USB
all-in-one плата с модемом, питанием и USB

Источник: https://habr.com/ru/post/696042/


Интересные статьи

Интересные статьи

Одна из самых важных (на мой взгляд) функций в Битрикс24 это бизнес-процессы. Теоретически они позволяют вам полностью избавиться от бумажных служебок и перенести их в эл...
Всем привет. Если вы когда-либо работали с универсальными списками в Битрикс24, то, наверное, в курсе, что страница детального просмотра элемента полностью идентична странице редак...
Несмотря на то, что “в коробке” с Битриксом уже идут модули как для SOAP (модуль “Веб сервисы” в редакции “Бизнес” и старше), так и для REST (модуль “Rest API” во всех редакциях, начиная с...
Бизнес-смыслы появились в Битриксе в начале 2016 года, но мало кто понимает, как их правильно использовать для удобной настройки интернет-магазинов.
В статье описаны необходимые параметры сервера для оптимальной работы сайта на платформе 1С-Битрикс.