Перейти к содержанию

Рекомендуемые сообщения

Опубликовано
On 7/27/2026 at 1:20 PM, vpaulo said:

есть ли в планах расширить данный функционал на 5г (NC-4110) модель и nc-2311 ?

Добавить звонки VoLTE на роутере KN-2311 нет технической возможности. Что касается XX-4110, в модеме этого роутера есть вся функциональность необходимая для VoLTE. На начало следующего месяца запланировано тестирование VoLTE на NC-4110. Если тестирование покажет, что VoLTE работает, то будет подготовлен инсталлятор Asterisk с поддержкой VoLTE для XX-4110.

  • Ответов 215
  • Создана
  • Последний ответ

Топ авторов темы

Опубликовано (изменено)

Так, а вот такой вопрос @sips, в этой цепочке подключения - где-то есть выбор кодека?

Уменя впечатление после ряда бесед по сим меги, что подключение по сип к мегафону и к этой штуке различаются словно мы говорим по g711 и g729 соотвественно.

На мтс симке мне кажется качество голоса лучше.

Изменено пользователем mesb
Опубликовано
1 hour ago, mesb said:

в этой цепочке подключения - где-то есть выбор кодека?

При разговоре происходит следующее преобразование аудиоданных:

IP-телефон <ulaw, 8 kHz 8 bit> Asterisk <pcm, 16 kHz 16 bit> A7908E <codec> сеть LTE

Кодеки в сети LTE используются разные. Звук, который слышите вы и ваш собеседник зависит от того, какой кодек используется при разговоре. Выбрать кодек для LTE и настроить аудио интерфейс UAC на стороне модема невозможно.

Если ваш IP-телефон поддерживает широкополосный кодек G.722, то можете установить его командой «opkg install asterisk-codec-g722», выбрать g722 вместо ulaw в конфигурации /opt/etc/asterisk/pjsip.conf и тогда возможно вы услышите более качественный звук. Здесь можно посмотреть, какие кодеки доступны для Asterisk: https://bin.entware.net/aarch64-k3.10/

Опубликовано (изменено)

@sips добрый день!

переустановил с вашего последнего дистрибутива. в инет теперь транки ходят (смена дефолтного порта запуска астера с 5060 на 5080 помогла), но обнаружилась другая проблема, что при ребуте астера, квиктел устройство остается в статусе не инцииализировано

image.thumb.png.0b352fdb0adf90d32e73d2e0aaabfd37.png

image.thumb.png.4f3ad98c5824b47ccf1e88cefaa2d731.png

Изменено пользователем vpaulo
Опубликовано (изменено)

image.png.b8a78a181c407895ba6c634d23c89c60.png

а может просто гсм кодеков накидать ей или транскодирования не избежать в любом случае?

Изменено пользователем vpaulo
Опубликовано
В 03.08.2026 в 13:54, vpaulo сказал:

что при ребуте астера, квиктел устройство остается в статусе не инцииализировано

Как делался ребут?
Что при этом в вебе у роутера по этой сим?

Опубликовано
В 09.06.2026 в 12:10, sips сказал:

Для VoLTE требуется регистрация в IMS, которая в данном случае возможна только при подключении 4G.

День добрый! Наверное имеет смысл в настройках модема принудительно зафиксировать Тип сети "Только 4G" (не Авто), чтобы исключить 3G совсем? Возможно, это стОит отразить как рекомендацию в документации, если у пользователя звонки VoLTE приоритетнее, чем интернет 3G при случае?

Спойлер

Лирическое отступление (оно же оффтоп :) ).

В конце июля приобрел-таки NC-2312 на замену одной из своих Extra KN-1711  Сподвигли на покупку три факта:

1. Экстра уже не очень справляется со своими обязанностями;

2. Поддержка VoLTE на NC-2312;

3. По акции купил "внагрузку" Buddy 6 SE менее, чем за полцены, да еще половину бонусами магазина оплатил. По-моему, довольно выгодно получилось. Если что, акция еще действует до 24 августа (правда, 2312 сейчас там на 2 тысячи подорожал почему-то).

Сейчас ставлю Астериск на NC-2312 без Телефонной станции и модулей Plus DECT или Linear. Entware уже установлена на внешний диск. Инсталлятор Астериска от 17 июля asterisk-installer-20260717.tar.gz. Оператор Мегафон, в смартфоне были включены VoWiFi и VoLTE.

Версия NDMS: 5.1.3. Версия прошивки модема: A241651B01A7908M11A-M2_CUS_DK

Установка запущена в Busybox из-под root, прошла почти без ошибок, за исключением, как я понимаю, чего-то, связанного с cron'ом:

Цитата

...

Info: Installing "cron" package...
Info: The "cron" package has been installed.
Command::Base error[7405602]: argument parse error.
Core::FileSystem::Repository: Copied "flash:startup-config".
 Starting cron...              done.
 Checking cron...              alive.
 Starting asterisk...              done.
NC-2312 found

...

Далее, статус Астериска alive.

Состояние модема в Астериске вроде хорошо (часть данных прикрыл):

Спойлер

Netcraze*CLI> quectel show device state quectel0
-------------- Status -------------
  Device                  : quectel0
  State                   : Free
  Audio UAC               : hw:CARD=Asrmicro
  Data                    : ttyUSB1
  Voice                   : Yes
  Manufacturer            : SIMCOM
  Model                   : A7908E-M2
  Firmware                : A241651B01A7908M11A-M2_CUS_DK
  IMEI                    : 35xxxxx
  IMSI                    : 25xxxxx
  ICCID                   : 89xxxxx
  GSM Registration Status : Registered, home network
  IMS Registration Status : Registered
  RSSI                    : 27, -59 dBm
  Access technology       : LTE
  Network Name            : MegaFon #1
  Provider Name           : MegaFon #1
  Location area code      : baf4
  Cell ID                 : 0xxxxxxc
  Subscriber Number       : +79xxxxxxxxx
  Tasks in queue          : 0
  Commands in queue       : 0
  Call Waiting            : Off
  Current device state    : start
  Desired device state    : start
  When change state       : now
  Calls/Channels          : 0
    Active                : 0
    Held                  : 0
    Dialing               : 0
    Alerting              : 0
    Incoming              : 0
    Waiting               : 0
    Releasing             : 0
    Initializing          : 0

Сравнивал с выводом в документации, на первый взгляд, у меня только строки "SMS No" не оказалось. Статус IMS Registered.

А вот дальше появились вопросы.

contacts, и линия mobile в частности, почему-то в выводе pjsip show contacts отсутствуют:

Спойлер

Netcraze*CLI> pjsip show contacts
No objects found.

Для порядка поменял в /opt/etc/asterisk/pjsip.conf в транспортах значения local_net=192.168.1.0/24 на свои и перезапустил Астериск, но контактов и mobile не появились. Это пока клиенты не подключены или я что-то еще не сделал? Или все-таки нужна "Телефонная станция"?

SIP-клиентов пока не подключено. Заодно, если не возбраняется, полуофф: тема-то связанная. Принимаются советы по sip-клиентам (в частности, для Android, встроенного у меня нету). Для начала, хочу смартфон "прицепить". Хотелось бы, чтобы он без дополнительных телодвижений цеплялся к Астериску и звонил через VoLTE находясь как внутри (за роутером), так и извне (видимо, по TLS), а также не очень жрал батарею и был бесплатным (не сильно назойливая реклама в клиенте допускается).

Пока не добрался, но в качестве "SIP registrar/proxy/domain: IP-адрес интернет-центра Keenetic;" можно же и Craze-DNS-имя использовать?

Опубликовано
1 hour ago, KeenTaur said:

ставлю Астериск на NC-2312 без Телефонной станции и модулей Plus DECT или Linear

1 hour ago, KeenTaur said:

contacts, и линия mobile в частности, почему-то в выводе pjsip show contacts отсутствуют

1 hour ago, KeenTaur said:

SIP-клиентов пока не подключено

1 hour ago, KeenTaur said:

Принимаются советы по sip-клиентам (в частности, для Android, встроенного у меня нету). Для начала, хочу смартфон "прицепить"

Если телефонная станция Netcraze не установлена, то при установке Asterisk линия mobile не создается.

Подключите IP-телефон к линии 1000, чтобы звонить и принимать звонки через LTE.

После успешной регистрации IP-телефона вывод команды «pjsip show contacts» выглядит следующим образом:

 

Netcraze-3950*CLI> pjsip show contacts

Contact: <Aor/ContactUri..............................> <Hash....> <Status> <RTT(ms)..>

=========================================================

Contact: 1000/sip:1000@192.168.1.102:38561 68d48e4fd2 Avail 39.538

Objects found: 1



В качестве IP-телефона можно использовать приложение Linphone.

Чтобы IP-телефон принимал входящие звонки рекомендую добавить опцию "qualify_frequency" для линии 1000 в конфигурации /opt/etc/asterisk/pjsip.conf. См. пример ниже.

[1000]
type=aor
remove_existing=yes
max_contacts = 3
mailboxes=1000
qualify_frequency=15

Опубликовано (изменено)
23 часа назад, sips сказал:

В качестве IP-телефона можно использовать приложение Linphone.

Чтобы IP-телефон принимал входящие звонки рекомендую добавить опцию "qualify_frequency" для линии 1000 в конфигурации /opt/etc/asterisk/pjsip.conf.

Огромнейшая благодарность за помощь! Вчера успел выполнить эту рекомендацию и установил sip-клиент на смартфон. Однако, сегодня неожиданно возникла проблема с подключенным USB-диском. Вроде реанимировал, однако, дальнейшие эксперименты откладываются на следующую неделю.

Спасибо еще раз!

Изменено пользователем KeenTaur
Опубликовано (изменено)
В 28.07.2026 в 13:47, sips сказал:

На начало следующего месяца запланировано тестирование VoLTE на NC-4110. Если тестирование покажет, что VoLTE работает, то будет подготовлен инсталлятор Asterisk с поддержкой VoLTE для XX-4110.

1. Нет ли обнадёживающих новостей по 4110?

2. Заметили тут в ряде документов упоминания 2313 - можно ли надеятся что про нас подумали и там тоже будет совместимый и заменяемый с волте модем или уже щас запасацо 2312 впрок?

3. Прошу подсказки по звуку - как и где безопасно покрутить уровень громкости у модема? (мне упорно кажется что на меге както тише звук)

4. Я почти не трогал pjsip кроме как в составе комбайнов с веб - можно ли на аккаунт 1000 зарегать больше одного устройства если меня устраивает чтобы они все звонили если что?

Изменено пользователем mesb
Опубликовано
On 8/14/2026 at 6:15 PM, mesb said:

1. Нет ли обнадёживающих новостей по 4110?

2. Заметили тут в ряде документов упоминания 2313 - можно ли надеятся что про нас подумали и там тоже будет совместимый и заменяемый с волте модем или уже щас запасацо 2312 впрок?

3. Прошу подсказки по звуку - как и где безопасно покрутить уровень громкости у модема? (мне упорно кажется что на меге както тише звук)

4. Я почти не трогал pjsip кроме как в составе комбайнов с веб - можно ли на аккаунт 1000 зарегать больше одного устройства если меня устраивает чтобы они все звонили если что?

1) На данный момент тестирование Quectel RG500U-EB (XX-4110) в процессе. Успешно протестированы команды для проверки статуса и активации UAC, IMS и репортов о смене состояния звонка. Осталось проверить обмен аудиоданными с модемом во время звонка и, если работает, то начнется отладка драйвера модема Quectel RG500U-EB для Asterisk.

2) XX-2313 будет отличаться от XX-2312 только на уровне корпуса - внешними антеннами Wi-Fi. Все внутренности одинаковы с XX-2312. На данный момент видится, что поддержка VoLTE для XX-2313 будет сделана.

3) См. /opt/etc/asterisk/quectel.conf

[defaults]

...

rxgain=-7 ; RX gain, range: from -36 to 12 dB

txgain=-15 ; TX gain, range: from -36 to 12 dB

 

Значения -7 и -15 подобраны для Keenetic Linear. Для своего телефона можете попробовать подобрать подходящие значения в указанных пределах.

4) Если нужно отправить входящий звонок VoLTE на несколько телефонов, см. /opt/etc/asterisk/extensions.conf:

;=============== Incoming mobile calls ===============

[mobile-incoming]

exten => s,1,NoOp()

...

same => n,Dial(PJSIP/mobile&PJSIP/1000,30)

 

exten => _+x.,1,NoOp()

...

same => n,Dial(PJSIP/mobile&PJSIP/1000,30)

 

По умолчанию входящий вызов отправляется на mobile и 1000.

 

Например, если нужно отправить на 1000, 1001 и 1002, а на mobile не отправлять, то нужно внести следующие изменения:

 

[mobile-incoming]

exten => s,1,NoOp()

...

same => n,Dial(PJSIP/1000&PJSIP/1001&PJSIP/1002,30)

 

 

exten => _+x.,1,NoOp()

...

same => n,Dial(PJSIP/1000&PJSIP/1001&PJSIP/1002,30)

При входящем звонке телефоны 1000, 1001 и 1002 будут звонить. Соединение будет установлено с тем, кто первый ответит.
После внесения изменений нужно перезагрузить dialplan или перезагрузить ядро Asterisk.

Опубликовано (изменено)

Опечатка исправлена

Изменено пользователем KeenTaur
Опубликовано

День добрый! Опять я под конец недели и рабочего дня :) Как говорит персонаж одного сериала: "Вопросы есть. И много!"

 

1. Сейчас Астериск считает, что он запущен на узле "Netcraze-0298". С сопутствующими ошибками разрешения имени:

[Aug 19 16:50:55] ERROR[28890]: netsock2.c:303 ast_sockaddr_resolve: getaddrinfo("Netcraze-0298", "(null)", ...): Name or service not known
[Aug 19 16:50:55] WARNING[28890]: acl.c:900 resolve_match_or_first: Unable to lookup 'Netcraze-0298'

Наверное можно поправить hosts или задать системное hostname "и все пройдет", но как бы это сделать так, чтобы вне Астериска/Entware осталось прежнее имя (для служб, предоставляемых прошивкой роутера. SMB, например)? Какой-нибудь alias в pjsip.conf? Хотел бы использовать имя CrazeDNS. Подскажите, пожалуйста, правильный путь. Видел секцию [domain_alias], но пока не нашел разжевывания.

 

2. Сгенерировал TLS-сертификаты при помощи скрипта “/opt/etc/asterisk/scripts/config-features", попытался подключить клиента, получил:

[Aug 19 14:57:29] WARNING[2424]: pjproject: <?>:                           SSL STATUS_FROM_SSL_ERR (status): Level: 0 err: <167772559> <error:0A00018F:SSL routines::ee key too small> len: 0 peer: ???
[Aug 19 14:57:29] ERROR[2424]: pjproject: <?>:            ssl0xe75f6a0 Error loading certificate chain file '/opt/etc/asterisk/keys/asterisk.crt': ee key too small

Поисковики пишут, что коротковата кольчужка, новая версия OpenSSL требует ключи подлиннее, надо было генерировать с ключом -b 2048 (либо астериску сказать, что разрешены ключи покороче). Опять же, хотел бы при генерации сертификатов использовать имя CrazeDNS. Можно ли скрипт “/opt/etc/asterisk/scripts/config-features" модернизировать соответствующим образом, чтобы сертификаты с -b 2048 делал и запрашивал, на кого выпускать сертификат? В более привычном виде, а не "вот эти вот все" O=, OU= :)

Пока тестирую с UDP-транспортом.

Дополнительно. Если возникнет желание шифровать еще и RTP, то после включения TLS нужно доустановить пакет Entware "opkg install asterisk-res-srtp"? и, вероятно, внести правки в конфиг Астериска?

 

3. Это скорее по sip-клиентам. На время отладки оставил только 1000 и 1001. Сгенерировал пароли (прямо на роутере в паролях для пользователя). Поменял user100X на свои и пароли в pjsip.conf, перезапустил Астериск. PhonerLite из-под Windows с новыми именами аутентификации и паролями регистрируется, а Linphone из-под Android ни в какую. Чуть логин или пароль посложнее и все, отказ. Установил еще парочку sip-клиентов для теста, Sipnetic с новыми учетными данными регистрируется успешно. Не сталкивались, чтобы Linphone был так привередлив? Плюс, Linphone почему-то становился недоступен, если он не "наверху". С отключенной оптимизацией батарей держался несколько подольше, но все равно отваливался. Вчера Linphone обновлся, новую версию на "отвал" тщательно не проверял, поскольку непонятности со сложным паролем остались.

 

Тестовый стенд у меня пока находится в локальной сети еще за одним Кинетиком, соответственно, надо проходить NAT на нем. Но обо всем этом я скорее всего подумаю уже на следующей неделе.

Опубликовано
В 21.08.2026 в 16:20, KeenTaur сказал:

С сопутствующими ошибками разрешения имени

А вы конфиг роутера не сбрасывали?

Там в инсталляционном скрипте есть команда ip host которая как раз решает этот вопрос. И если сброс был, то эта запись исчезнет.

Опубликовано
3 минуты назад, mesb сказал:

А вы конфиг роутера не сбрасывали?

Там в инсталляционном скрипте есть команда ip host которая как раз решает этот вопрос. И если сброс был, то эта запись исчезнет.

Приветствую! Насколько я помню - не сбрасывал. НО... с начала августа (с начала эксплуатации этого экземпляра) у меня три раза возникала проблема с подключенным диском (SSD через USB-SATA-коробочку). Конкретно с разделом с opkg. Если не ошибаюсь, каждый раз при обновлении NDMS :( По логу вроде включен кеш записи, возможно, потеря кеша при такой перезагрузке... 

Да! это я сделал, ip host прописал пару дней назад. А вы не подскажете еще, на что именно ссылается ip host у вас? в смысле, на какой адрес? я влепил лупбек 127.0.0.1, возможно лучше указать адрес роутера в домашнем сегменте?

 

По проблеме с TLS я в первом приближении тоже нашел решение. К сожалению, ключ "-b2048" выдал "Illegal option -b", в общем недопустимый параметр. Может и к лучшему, нашел статью и ее первоисточник, хоть у меня и программные клиенты, но, решил, для пущей совместимости с аппаратными ip-телефонами, пойти через:

Цитата

Fix 1: Regenerate Your Certificate with P-256 (Recommended)
The most reliable fix. P-256 (secp256r1) is universally supported by every SIP device on the market.

Выполнил тамошние проверки, вроде оно, перегенерировал сертификат астериска указанным образом, плюс, в pjsip.conf указал method = tlsv1_2

и оно зашуршало. И Sipnetic (Android), и PhonerLite (Win) заработали через TLS.

Хотелось бы понять, правильным ли путем я пошел?

Опубликовано (изменено)

PS по UDP на порту 6060, к слову, за выходные начали ломиться нехорошие люди. Закрыл их фаерволом, перешел на TCP (надеюсь на антискан, который поставил), а теперь и TCP сменил на TLS.

Изменено пользователем KeenTaur
Опубликовано
2 часа назад, KeenTaur сказал:

на что именно ссылается ip host у вас? в смысле, на какой адрес? я влепил лупбек 127.0.0.1, возможно лучше указать адрес роутера в домашнем сегменте?

Ага, он туда ставит адрес локальный в домашней сети.

Если не меняли дефолтовый то там будет 192.168.1.1

Опубликовано
22 часа назад, KeenTaur сказал:

и оно зашуршало

Я вообще хотел в это лезть не раньше новогодних выходных, но раз вы начали, то какая в итоге инструкция то получается и можно ли это чисто в шелле ентвари кинетика делать?

Опубликовано

Так я еще тоже недалеко прошел. Шел по инструкции от 2026.06.25, Установка... затем, для задействования tls, раздел "Дополнительные функции". Запустил скрипт “/opt/etc/asterisk/scripts/config-features” на вопросы о голосовой почте и записи разговоров ответил пока отрицательно. Был еще вопрос что-то типа удалить звуковые файлы и освободить место, тоже нет. Про tls ответил да и сгенерировал сертификаты, для чего необходимо было придумать и ввести парольную фразу. Перезапустился Астериск. Исполнение скрипта под спойлером (subject=CN=keenetic, O=MyPBX заданы по умолчанию и скрипт не спрашивал, хочу ли я что-то в этом поменять. Хорошо бы знать, что это надо где-то предварительно задать):

Спойлер

~ # /opt/etc/asterisk/scripts/config-features
This script will help you to configure the following features:
  1) call recording
  2) voice mail
  3) SIP TLS transport
Do you want to record calls to USB drive plugged into your Keenetic? <y/n> n
Do you want to use the voicemail features with recording messages to an external USB drive? <y/n> n
Do you want to remove Asterisk Core Sounds files to free up 20 MB? <y/n> n
Do you want to configure SIP TLS transport? <y/n> y
It will take a few minutes to create the CA key, please wait and do not interrupt the script execution. Press any key to begin.
No config file specified, creating '/opt/etc/asterisk/keys/tmp.cfg'
You can use this config file to create additional certs without
re-entering the information for the fields in the certificate
Creating CA key /opt/etc/asterisk/keys/ca.key
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
Creating CA certificate /opt/etc/asterisk/keys/ca.crt
Enter pass phrase for /opt/etc/asterisk/keys/ca.key:
Combining key and crt into ca.pem
Creating certificate /opt/etc/asterisk/keys/asterisk.key
Creating signing request /opt/etc/asterisk/keys/asterisk.csr
Creating certificate /opt/etc/asterisk/keys/asterisk.crt
Certificate request self-signature ok
subject=CN=keenetic, O=MyPBX
Enter pass phrase for /opt/etc/asterisk/keys/ca.key:
Combining key and crt into /opt/etc/asterisk/keys/asterisk.pem
 Shutting down asterisk...              done.
 Starting asterisk...              done.

Далее, перенастроил клиентов на TLS, при попытке авторизации получил пилюлю в Астериске:

Спойлер

[Aug 19 10:33:34] WARNING[2424]: pjproject: <?>:                           SSL STATUS_FROM_SSL_ERR (status): Level: 0 err: <167772559> <error:0A00018F:SSL routines::ee key too small> len: 0 peer: ???
[Aug 19 10:33:34] ERROR[2424]: pjproject: <?>:            ssl0xe75f6a0 Error loading certificate chain file '/opt/etc/asterisk/keys/asterisk.crt': ee key too small

Далее, по результатам поиска, попробовал запустить генерацию сертификатов с ключом "-b 2048" (совет, между прочим, из то ли из wiki, то ли из док астериска), но получил illegal option -b

Спойлер

это штатный, как я понимаю, скрипт, лежит в /opt/etc/asterisk/keys

./ast_tls_cert -C MyCrazeDNS.netcraze.pro -O "My Family PBX" -d /opt/etc/asterisk/keys -b 2048

Дошел до советов в статьях. Перегенерировал сертификаты астериска как там указано (даже subj не поменял):

Цитата

The Fix: Regenerate with P-256
P-256 (secp256r1) works with every SIP device on the market. This is almost always the right answer:

# Generate P-256 key
openssl ecparam -genkey -name prime256v1 -out /opt/etc/asterisk/keys/asterisk.key

# Self-signed cert (10 years)
openssl req -new -x509 -key /opt/etc/asterisk/keys/asterisk.key \
  -out /opt/etc/asterisk/keys/asterisk.crt \
  -days 3650 -subj "/CN=asterisk.local/O=Asterisk PBX"

# Combine into PEM
cat /opt/etc/asterisk/keys/asterisk.key /opt/etc/asterisk/keys/asterisk.crt \
  > /opt/etc/asterisk/keys/asterisk.pem

Также в pjsip.conf поменял метод TLS с sslv23 на tlsv1_2 и перезапустил астериск.

Указал клиентам использовать TLS, регистрация прошла успешно, друг другу звонят:

Цитата

Netcraze-0298*CLI> pjsip show contacts

  Contact:  <Aor/ContactUri..............................> <Hash....> <Status> <RTT(ms)..>
==========================================================================================

  Contact:  1000/sip:1000@XXX.XX.XX.XX:36624;transport=TLS 5c405cf44d Avail       110.716
  Contact:  1001/sip:1001@XXX.XX.XX.XX:45624;transport=TLS 7bf7e81144 Avail         2.681

Objects found: 2

Все делалось из entware. Разумеется, порт для TLS снаружи открыт. Да! Если скрипт “/opt/etc/asterisk/scripts/config-features” будете пропускать, убедитесь, что в pjsip.conf пути к сертификатам раскомментированы.

Вроде как друг другу номера звонят, с 1000 еще набирал Мегафоновский 0525 (проверка голосовых сообщений). "Вроде как" потому что у меня этот тестовый стенд за nat'ом сейчас. Из-за nat'а тестировать еще много есть чего.

Пока на этом пауза. Хотел бы выпустить сертификаты и для клиентов и включить обоюдную проверку. Затем включить еще и SRTP. Необходимая библиотека для srtp, как я понял, уже установлена. Правда, если кое-кто начнет еще рубить весь "непонятный" трафик, то в общем-то вся затея сведется на нет :(

Опубликовано (изменено)
В 13.08.2026 в 15:17, KeenTaur сказал:

День добрый! Наверное имеет смысл в настройках модема принудительно зафиксировать Тип сети "Только 4G" (не Авто), чтобы исключить 3G совсем? Возможно, это стОит отразить как рекомендацию в документации, если у пользователя звонки VoLTE приоритетнее, чем интернет 3G при случае?

Извините, что опять намусорю :) Возможно, тем, кто разворачивает, будет полезно. Но если ответственные за тему посчитают офтопиком, то прошу удалить.

Проверил экспериментально, предположение вредное. Как я понимаю, тип сети необходимо выставлять именно в "Авто". Обнаружил, что при выполнении исходящего звонка через VoLTE сам модем у меня переходит в 3G HSPA (по крайней мере, так информировали "Метрики сигнала" в веб-интерфейсе роутера). Попытался зафиксировать режим "Только 4G" и исходящие по VoLTE как отрезало. Пользуясь случаем, в свете необходимости контролировать режим сети, заодно прошу обладателей NC-2312 проверить, по возможности, мобильное приложение. Ну и совсем кому не лень это.

Далее. Разумеется, на работоспособность VoLTE очень влияют уровни сигнала. Если в консоли Астериска (asterisk -rvvvv) quectel show device state quectel0 показывает что-то вроде "RSSI   : 27, -59 dBm", работать будет, И так будет "RSSI  : 17, -79 dBm". А вот при таком "RSSI  : 6, -101 dBm" звонок уже на состоится, а модем (в состоянии покоя еще показывающий 4G с терпимыми метриками) во время попытки звонка сваливается в 2G EDGE. Это решил посмотреть, когда обнаружил, что при закрытых роллеттах в офисе звонка нет.

 

@sips

по документации. Придирки.

Цитата

Подготовка к установке Asterisk
...
1. вставьте SIM-карту в один из слотов на задней панели вашего роутера (KN-2312 или NC-2312);

...

У NC-2312 слоты для sim-карт на боковой панели.

Изменено пользователем KeenTaur
правка ссылок
Опубликовано
On 8/21/2026 at 4:20 PM, KeenTaur said:

Можно ли скрипт “/opt/etc/asterisk/scripts/config-features" модернизировать соответствующим образом, чтобы сертификаты с -b 2048 делал и запрашивал, на кого выпускать сертификат? В более привычном виде, а не "вот эти вот все" O=, OU=


Прилагаю исправленный скрипт "create_ca_ast_cert", который создает шифрованный приватный ключ CA, самоподписанный сертификат CA и сертификат для Asterisk подписанный CA. Сертификат CA созданный этим скриптом мне удалось установить на Android 15 и использовать для проверки подлинности сертификата Asterisk при подключении софтфона Sipnetic 1.1.7 по TLS.

Чтобы создать сертификаты и активировать транспорт TLS на Asterisk:

1) Удалить (или переместить в другую папку) все файлы в папке /opt/etc/asterisk/keys/, если они там есть, должна остаться только папка со скриптами /opt/etc/asterisk/keys/scripts

2) Перезаписать скрипт /opt/etc/asterisk/keys/script/create_ca_ast_cert прилагаемым скриптом.

3) Запустить скрипт /opt/etc/asterisk/keys/script/create_ca_ast_cert и следовать инструкциям на экране: ввести пароль для шифрования приватного ключа CA, ввести данные для создания сертификатов CA и Asterisk. Для сертифката Asterisk в поле Common Name ввести системное имя роутера, доменное имя CrazeDNS или другое, которое затем будет указано в настройках IP-телефона. См. скриншот с примером выполнения скрипта. По завершению работы скрипта будет создан сертификат CA /opt/etc/asterisk/key/ca.crt и сертификат Asterisk /opt/etc/asterisk/key/asterisk.crt.

4) Перезапустить Asterisk командой «core restart now» в командной строке Asterisk. Зайти снова в командную строку Asterisk, выполнить команду «pjsip show transports» и убедиться в том, что транспорт TLS отображается как в данном примере:

Netcraze-1727*CLI> pjsip show transports

Transport: <TransportId........> <Type> <cos> <tos> <BindAddress....................>

==========================================================================================

Transport: transport-tcp tcp 0 0 0.0.0.0:5060

Transport: transport-tls tls 0 0 0.0.0.0:5061

Transport: transport-udp udp 0 0 0.0.0.0:5060

 

Для подключения Sipnetic по TLS c проверкой подлинности сертификата Asterisk:

5) Установить на Android-смартфон приложение Sipnetic.

6) Настроить в приложении учетную запись для подключения к Asterisk с транспортом UDP и убедиться, что регистрация и звонки выполняются успешно. При настройке в поле «Домен» нужно ввести не IP-адрес роутера, а доменное имя, которое было указано в поле CN сертифката Asterisk.

7) Для перехода на транспорт TLS в настройках учетной записи Sipnetic выполнить и применить следующие настройки:

Настройки транспорта>Транспорт по умолчанию: TLS

Настройки транспорта>Использовать только транспорт по умолчанию: вкл

Безопасность>Безопасный транспорт Использовать протокол SIPS: да

Безопасность>Использовать SIPS для всех исходящих звонков: да

Безопасность>Использовать SIPS для всех входящих звонков: да

Затем выключить учетную запись и закрыть Sipnetic.

😎 Открыть Sipnetic снова и убедиться в том, что учетная запись больше не регистрируется, т. к. проверка подлинности сертификата не работает. 

9) Скачать сертификат CA /opt/etc/asterisk/key/ca.crt с роутера на Android-смартфон в папку /Download.

10) Установить сертификат ca.crt в пользовательское хранилище сертификатов смартфона: Настройки>Отпечатки, данные лица и защита устройства > Конфиденциальность > Дополнительные настройки безопасности > Шифрование и учетные данные > Установка сертификатов > Сертификат центра сертификации > Все равно установить, ввести PIN-код, выбрать сертификат /Download/ca.crt, должно появиться подтверждение «Сертификат ЦС установлен».

11) Выключить учетную запись в Sipnetic, перезапустить Sipnetic, включить учетную запись и убедиться в том, что регистрация учетной записи выполнена успешно. Проверка подлинности сертификата работает.

Если после этого пересоздать сертификаты скриптом "create_ca_ast_cert" и перезапустить Asterisk, то регистрация учетной записи Sipnetic должна перестать работать до тех пор, пока новый сертификат CA не будет установлен на смартфон.

create-ca-ast-cert-20260828.png

create_ca_ast_cert

Опубликовано

День добрый! Огромнейшая благодарность! Жаль нельзя их много "отсыпать".

55 минут назад, sips сказал:

2) Перезаписать скрипт /opt/etc/asterisk/keys/script/create_ca_ast_cert прилагаемым скриптом.

на всякий случай, я для нового скрипта права на исполнение дал (у него их не было).

 

58 минут назад, sips сказал:

7) Для перехода на транспорт TLS в настройках учетной записи Sipnetic выполнить и применить следующие настройки:

Настройки транспорта>Транспорт по умолчанию: TLS

Настройки транспорта>Использовать только транспорт по умолчанию: вкл

Безопасность>Безопасный транспорт Использовать протокол SIPS: да

Безопасность>Использовать SIPS для всех исходящих звонков: да

Безопасность>Использовать SIPS для всех входящих звонков: да

После выполнения п.10 (Установить сертификат ca.crt в пользовательское хранилище сертификатов смартфона) вот так клиент (Sipnetic) сейчас не регистрировался, отключил ему SIPS и регистрация выполнена. Может быть надо еще где-то в конфигах Астериска включить? Или могло повлиять, что я на смартфоне сам файл переименовал в XX-PBX-ca.crt? как мне кажется, не должно бы.

Второй клиент PhonerLite (Win) по-прежнему регистрируется без загрузки сертификата. Транспорт TLS у обоих клиентов.

Опубликовано
2 hours ago, KeenTaur said:

После выполнения п.10 (Установить сертификат ca.crt в пользовательское хранилище сертификатов смартфона) вот так клиент (Sipnetic) сейчас не регистрировался, отключил ему SIPS и регистрация выполнена.

Насколько я понял из собственных тестов, SIpnetic проверяет сертификат сервера только когда используется SIPS. SIPS нужно включить, если нужна валидация сертификата сервера.
Если SIPS включено и нет регистрации, то советую проверить соответствие доменного имени указанного в сертификате Asterisk доменному имени указанному в настройках учетной записи Sipnetic, попробовать заново пересоздать сертификаты и установить новый сертификат CA на телефон, удалив при этом старый. На Sipnetic нужно выключить учетную запись, подтвердить выключение галочкой сверху на экране, выйти из Sipnetic через меню приложения, запустить его снова, включить учетную запись и подтвердить включение галочкой сверху. Иначе изменения не принимаются.

2 hours ago, KeenTaur said:

Второй клиент PhonerLite (Win) по-прежнему регистрируется без загрузки сертификата. Транспорт TLS у обоих клиентов.

Если PhonerLite не настрен для проверки сертифката сервера и сертификат CA не установлен на стороне PhonerLite, то PhonerLite будет подключаться по TLS к любому серверу, адрес которого получит от DNS. 

Опубликовано

Извиняюсь, что скачу с пятого на десятое и обратно...

Сегодня, придя на работу, обнаружил в консоли Астериска, что модем не инициализирован. Рестарт Астериска не помог. Уже собирался перезапускать роутер, но попробовал перезагрузить модем из Системного монитора веб-интерфейса роутера. Помогло. Листинг до перезагрузки модема:

Спойлер

Netcraze-0298*CLI> quectel show device state quectel0
[quectel0] State: Not initialized

       > [TTY] Waiting for ndm...
       > [TTY] Waiting for ndm...
       > [TTY] Waiting for ndm...
       > [TTY] Waiting for ndm...
       > [TTY] Waiting for ndm...
       > [TTY] Waiting for ndm...
       > [TTY] Waiting for ndm...
       > [TTY] Waiting for ndm...
Netcraze-0298*CLI> exit
Asterisk cleanly ending (0).
Executing last minute cleanups
~ # /opt/etc/init.d/S31asterisk restart
 Shutting down asterisk...              done.
 Starting asterisk...              done.
~ # /opt/etc/init.d/S31asterisk status
 Checking asterisk...              alive.
~ # asterisk -rvvvv
Asterisk 23.1.0, Copyright (C) 1999 - 2025, Sangoma Technologies Corporation and others.
Created by Mark Spencer <markster@digium.com>
Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
This is free software, with components licensed under the GNU General Public
License version 2 and other licenses; you are welcome to redistribute it under
certain conditions. Type 'core show license' for details.
=========================================================================
Running as user 'root'
Running under group 'root'
Connected to Asterisk 23.1.0 currently running on Netcraze-0298 (pid = 16959)
       > [TTY] Waiting for ndm...
Netcraze-0298*CLI> quectel show device state quectel0
[quectel0] State: Not initialized

       > [TTY] Waiting for ndm...
       > [TTY] Waiting for ndm...
       > [TTY] Waiting for ndm...
       > [TTY] Waiting for ndm...
       > [TTY] Waiting for ndm...
       > [TTY] Waiting for ndm...
       > [TTY] Waiting for ndm...
       > [TTY] Waiting for ndm...
       > [TTY] Waiting for ndm...
       > [TTY] Waiting for ndm...
Netcraze-0298*CLI> exit
Asterisk cleanly ending (0).
Executing last minute cleanups

Возможно на модем в Астериске могло повлиять то, что уходя на выходные я оставил открытыми Метрики сигнала модема в веб-интерфейсе роутера. Ну или совпало так.

 

Исходящие вызовы с 1000 на 1001, 800, 802, 9999 работают. Работают вызовы с 1000 через VoLTE на 0525 (голосовые сообщения в мегафоне), на 7-значные городские, на 11-значные федеральные типа 8800XXXXXXX. А вот международный формат +79XXXXXXXXX Астериск отклоняет, не найден в контексте phones:

Цитата

[Aug 28 12:18:09] NOTICE[19012]: res_pjsip_session.c:4046 new_invite:  1000: Call (TLS:AAA.BB.CC.DD:50968) to extension '+79XXXXXXXXX' rejected because extension not found in context 'phones'.

Правильно я понимаю, что все, что не внутренние/служебные(800, 802, 9999 etc), должно бы уходить через VoLTE в контексте [mobile-outgoing]? Хотелось бы брать контакты из адресной книги смартфона, где у меня номера записаны как раз как +79XXXXXXXXX, но встречаются и другие международные типа +49. Можно, конечно, включить модификацию номеров на клиентах, но, мне кажется, правильнее это предусмотреть в Астериске.

 

Еще момент. Мне, наверное, придется изменить внутреннюю нумерацию, поскольку 1000 пересекается с коротким номером ВТБ для звонков с мобильных операторов. Изменение нумерации уже описано где-то на первых страницах темы, просто для информации, что 1000 может быть востребована (реклама сего банка идет активная).

Опубликовано
On 8/31/2026 at 2:50 PM, KeenTaur said:

Сегодня, придя на работу, обнаружил в консоли Астериска, что модем не инициализирован. Рестарт Астериска не помог. Уже собирался перезапускать роутер, но попробовал перезагрузить модем из Системного монитора веб-интерфейса роутера.

Судя по логам, asterisk ждал, когда ndm подключится к модему, а ndm не подключался по неизвестной причине. Asterisk подключается к модему только после того, как ndm подключится к нему.

On 8/31/2026 at 2:50 PM, KeenTaur said:

А вот международный формат +79XXXXXXXXX Астериск отклоняет, не найден в контексте phones

Чтобы звонки по номерам в международном формате работали можно сделать слдующее:

1) в конфигурации /opt/etc/asterisk/extensions.conf замените контекст «mobile-outgoing» на следующее:

[mobile-outgoing]

exten => _x.,1,NoOp()

same => n,Set(OUTGOING_MOBILE_NUM=${EXTEN})

same => n,Goto(handle-mobile-outgoing,s,1)

 

exten => _+x.,1,NoOp()

same => n,Set(OUTGOING_MOBILE_NUM=${EXTEN})

same => n,Goto(handle-mobile-outgoing,s,1)

 

2) Добавьте новый контекст «handle-mobile-outgoing» в конфигурацию /opt/etc/asterisk/extensions.conf:

[handle-mobile-outgoing]

exten => s,1,NoOp()

same => n,Set(MODEM_STATE=${SHELL(asterisk -rx "quectel show device state quectel0" | grep "State" | cut -d : -f 2 | sed 's/^ //')})

same => n,Set(IS_READY=${REGEX("Free" ${MODEM_STATE})})

same => n,GotoIf($[${IS_READY} = 1]?dialing:unavailable)

 

same => n(dialing),Set(VOLUME(TX)=0)

same => n,Set(VOLUME(RX)=0)

;same => n,MixMonitor(/tmp/mnt/USBDISK/asterisk/records/${CALLERID(num)}-${OUTGOING_MOBILE_NUM}_${STRFTIME(${EPOCH},/opt/share/zoneinfo/Europe/Moscow,%y%m%d-%H%M)}.wav,b) ;<------ Call recording

same => n,Progress()

same => n,Dial(Quectel/quectel0/${OUTGOING_MOBILE_NUM},30,R)

same => n,Hangup()

 

same => n(unavailable),NoOp(LTE Modem is not ready! Status: ${MODEM_STATE})

same => n,Playback(calling&vm-isunavail&please-try-call-later)

same => n,Wait(1)

same => n,Hangup()

В контексте [mobile-outgoing] первый экстеншен выполняется при звонке по любому номеру. Второй экстеншен выполняется при исходящем звонке по любому номеру, который начинается с «+». Оба вызывают обработчик исходящих звонков [handle-mobile-outgoing].

On 8/31/2026 at 2:50 PM, KeenTaur said:

Правильно я понимаю, что все, что не внутренние/служебные(800, 802, 9999 etc), должно бы уходить через VoLTE в контексте [mobile-outgoing]?

Правильно

Опубликовано

@sips

Можно ещё подсказок:

в текущей локации одной из сим слышимость оппонента несколько странная стала, как будто бы с прерываниями коротенькими или скорее похрипываниями периодическими, при этом качество сигнала выглядит приличным. Симка в локации с показателями похуже таких артефактов в разговоре не имеет.

 

Если это всёже проблемы уровня сигнала, то какой из параметров желательно вверх тянуть?

 

Screenshot_20260902_171939.thumb.jpg.346616ea33db381e5da237d80608109f.jpgScreenshot_20260902_172103.thumb.jpg.539a2d7c67c3b2493bf7dd9bb74a7114.jpg

Опубликовано

Спасибо!

"Пропажа" модема случилась еще раз. Но перезапуск только модема из веб-интерфейса уже не помог, пришлось перезагружать роутер целиком. Может быть включить какую-нибудь отладку? Entware на внешнем SSD, места для логов должно хватить (раздел с opkg около 6ГБ, занято порядка 150МБ). Из совпадений до "пропаж" установил Антискан и выполнил перегенерацию сертификатов Астериска.

 

Понял вашу идею по звонкам на +7, хотя буквально несколько часов назад я сделал немого по-другому. Как мне кажется, проще (но не значит, что правильнее). Возможно, позже переделаю на ваш вариант с учетом еще других вариантов шаблонов.

Сначала я попробовал для эксперимента задать паттерн в [mobile-outgoing] почти как вы написали через exten => _+x.,1,NoOp() но так что-то не заработало. Потом я заменил шаблон в exten => _.x.,1,NoOp()  (т.е. вместо плюса "+" указал подстановочный знак точка ".", что соответствует одному или более символу, не только цифрам). Сейчас работает так. И 0525, и +7ХХХХХХХХХХ, и семизначные городские проходят.

 

Из мелочей, добавил русскоязычную озвучку.

 

Возможно, что с шифрованием тоже получилось: PhonerLite (Win) звонок отображает с ключиком, а Sipnetic (Android) показывает замок на оранжевом фоне, что соответствует использованию SRTP. (другие возможные состояния, если я правильно понял, "Замок на синем фоне" используется TLS; разомкнутый замок на синем фоне - шифрования нет). Информация о звонке в Sipnetic на скриншоте (правда, в разделе АУДИО про шифрование ничего нет, там только статистика о пакетах), "оранжевый замок" видно на фоне внизу слева.

Спойлер

Screenshot_20260902_100022_Sipnetic.thumb.jpg.d0273ffafcab3eb5016a30b6ff5c7f54.jpg

Можно как-то во время звонка увидеть в консоли Астериска, что шифрование действительно применено? Достаточно ли выделенного в выводе или надо еще что-то проверить?

Цитата

~ # asterisk -rx "pjsip show endpoint 1000" | grep transport
      Contact:  1000/sip:1000@XXX.XXX.XXX.XXX:33958;transport 4161949be9 Avail         5.728
  Transport:  transport-tls             tls      0      0  0.0.0.0:6061
 media_use_received_transport       : false
 transport                          : transport-tls
~ # asterisk -rx "pjsip show endpoint 1000" | grep encryption
 media_encryption                   : sdes
 media_encryption_optimistic        : true

 

 

Еще незначительный вопрос по 9999. Он в extensions.conf задан как шаблон (_9999). Можно уточнить, для чего так сделано?

Опубликовано
19 hours ago, KeenTaur said:

"Пропажа" модема случилась еще раз. Но перезапуск только модема из веб-интерфейса уже не помог, пришлось перезагружать роутер целиком. Может быть включить какую-нибудь отладку?

Перезапишите на роутере /opt/lib/asterisk/modules/chan_quectel.so прилагаемым файлом и перезапустите asterisk. Если после этого сбой повторится, пришлите, лог из консоли asterisk -rvvvv.

20 hours ago, KeenTaur said:

Можно как-то во время звонка увидеть в консоли Астериска, что шифрование действительно применено?

Можно включить вывод сообщений SIP командой «pjsip set logger on» в консоли Asterisk и посмотреть вывод во время звонка. Когда соединение будет установлено и начнется разговор, см. ответ 200 OK на запрос INVITE, который будет примерно следующим:

 

<--- Transmitting SIP response (978 bytes) to TLS:192.168.1.102:42040 --->

SIP/2.0 200 OK

Via: SIP/2.0/TLS 192.168.1.102:55002;rport=42040;received=192.168.1.102;branch=z9hG4bK01ZqpOgGU6uG

Call-ID: OEEPi1Ci1nXG0lL+BrQt

From: <sips:1000@netcraze-3950>;tag=z9XfYwVg9AdC

To: "callee" <sips:+7XXXXXXXXX@netcraze-3950>;tag=c1dc1810-c0ec-4fc0-b35e-de15176ff4d2

CSeq: 419 INVITE

Server: Asterisk PBX 23.1.0

Allow: OPTIONS, REGISTER, SUBSCRIBE, NOTIFY, PUBLISH, INVITE, ACK, BYE, CANCEL, UPDATE, PRACK, INFO, REFER, MESSAGE

Contact: <sips:192.168.1.1:5061;transport=TLS>

Supported: 100rel, timer, replaces, norefersub

Session-Expires: 300;refresher=uac

Require: timer

Content-Type: application/sdp

Content-Length: 320

 

v=0

o=- 1525411207 1525411209 IN IP4 192.168.1.1

s=Asterisk

c=IN IP4 192.168.1.1

t=0 0

m=audio 10076 RTP/SAVP 0 101

a=crypto:1 AES_CM_128_HMAC_SHA1_32 inline:JfrT5aTEDz56yMyjMMaKxx4yRkZhyxAlFk5QROg3

a=rtpmap:0 PCMU/8000

a=rtpmap:101 telephone-event/8000

a=fmtp:101 0-16

a=ptime:20

a=maxptime:140

a=sendrecv

 

Следующие поля в SDP означают, что для данной сесси использовалось шифрование аудиоданных:

m=audio 10076 RTP/SAVP 0 101

a=crypto:1 AES_CM_128_HMAC_SHA1_32 inline:JfrT5aTEDz56yMyjMMaKxx4yRkZhyxAlFk5QROg3

 

chan_quectel.so

Опубликовано
2 часа назад, sips сказал:

Перезапишите на роутере /opt/lib/asterisk/modules/chan_quectel.so прилагаемым файлом и перезапустите asterisk. Если после этого сбой повторится, пришлите, лог из консоли asterisk -rvvvv.

/opt/lib/asterisk/modules/chan_quectel.so заменил, астериск перезапустил. ждем результатов. Вопрос: в  /opt/etc/asterisk/scripts тоже есть chan_quectel.so и он, кажется, оригинальный, его не надо было тоже заменить?

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...

Важная информация

На этом сайте используются файлы cookie. Нажимая "Я принимаю" или продолжая просмотр сайта, вы разрешаете их использование: Политика конфиденциальности.