sips
Moderators-
Posts
218 -
Joined
-
Last visited
-
Days Won
6
sips last won the day on August 17
sips had the most liked content!
Equipment
-
Hardware
KN-XXXX, K+DECT, Linear
Recent Profile Visitors
The recent visitors block is disabled and is not being shown to other users.
sips's Achievements
-
Установка IP-АТС Asterisk 20.3 на Keenetic
sips replied to driveRom's topic in Каталог готовых решений Opkg
Выполните команду «dmesg | grep "usb 1-1.1"» на устройстве, где происходит сбой и покажите результат. Должно выглядеть примерно так: usb 1-1.1: new high-speed USB device number 7 using xhci-mtk usb 1-1.1: New USB device found, idVendor=1e0e, idProduct=9011, bcdDevice= 1.00 usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 usb 1-1.1: Product: Asrmicro usb 1-1.1: Manufacturer: Asrmicro usb 1-1.1: SerialNumber: 123456789ABCD usb 1-1.1: GSM modem (1-port) converter now attached to ttyUSB0 usb 1-1.1: GSM modem (1-port) converter now attached to ttyUSB1 -
Установка IP-АТС Asterisk 20.3 на Keenetic
sips replied to driveRom's topic in Каталог готовых решений Opkg
Подключитесь к Entware по ssh от пользователя root и перезапустите Asterisk командой /opt/etc/init.d/S31asterisk restart. Проверьте, указан ли у вас путь до скрипта initrc в настройках OPKG Package Manager, см. скриншот. Если нет, то укажите путь и перезапустите OPKG. -
Установка IP-АТС Asterisk 20.3 на Keenetic
sips replied to driveRom's topic in Каталог готовых решений Opkg
Последняя версия драйвера с улучшенным механизмом подключения к модему, которую я выкладывал ранее, входит в состав новой версии инсталлятора «asterisk-installer-20260930.tar.gz» (прилагается). Помимо драйвера, в данной версии инсталлятора: 1) поддерживается набор номера в международном формате при исходящих звонках по LTE ( +, код страны, код региона/оператора, номер абонента); 2) исправлен транспорт TLS (настраивается скриптом /opt/etc/asterisk/scripts/config-features или /opt/etc/asterisk/keys/scripts/create_ca_ast_cert). Для новых инсталляций Asterisk лучше использовать новый инсталлятор «asterisk-installer-20260930.tar.gz». Для существующих инсталляций можно перезаписать файл драйвера. Тесты показали, что модем RG500U встроенный в XX-4110 пригоден для звонков по LTE — есть интерфейс UAC и поддержка IMS, работают исходящие и входящие звонки по LTE, работает обмен аудиоданными через UAC во время разговора и приходят репорты о смене состояния звонка. Сейчас ведется работа по добавлению поддержки этого модема в канальный драйвер. Вероятнее всего, эта работа будет продолжаться еще от одной до трех недель. Есть вероятность, что последующее за этим тестирование выявит критичные баги в прошивке модема и тогда придется запрашивать исправление этих багов у производителя модема. Исправление может занять значительное время. asterisk-installer-20260930.tar.gz -
Установка IP-АТС Asterisk 20.3 на Keenetic
sips replied to driveRom's topic in Каталог готовых решений Opkg
В "диагностическом" chan_quectel.so изменен алгоритм подключения к модему. Драйвер периодически запрашивает статус модема у ndm и подключается к модему, когда подключение к сотовой сети установлено (статус «running»). Если после рестарта Asterisk модем уже подключен к сотовой сети, то Asterisk подключается к модему без задержки. -
Установка IP-АТС Asterisk 20.3 на Keenetic
sips replied to driveRom's topic in Каталог готовых решений Opkg
На данный момент ведется работа по отладке драйвера chan_quectel c модемом Quectel RG500U. Когда драйвер будет готов, я сообщу. -
Установка IP-АТС Asterisk 20.3 на Keenetic
sips replied to driveRom's topic in Каталог готовых решений Opkg
Судя по логу Asterisk, в 20:54 соединение с сотовой сетью пропало, модем перезагрузился и Asterisk отключился от модема, после чего соединение так и не было восстановлено. Asterisk подключается к модему не раньше, чем ndm установит соединение с сотовой сетью на интерфейсе UsbLte0 или UsbLte1 модема. Когда соединение установлено, статус UsbLte должен быть «running». Т.к. соединение не было установлено, Asterisk не подключался к модему и телефония VoLTE не работала. Почему соединение пропало и ndm не смог его восстановить неизвестно. Возможно, self-test помог бы это узнать, но его нет. Если снова повторится, сохраните self-test и пришлите его. -
Установка IP-АТС Asterisk 20.3 на Keenetic
sips replied to driveRom's topic in Каталог готовых решений Opkg
Для исходящего звонка в терминале в первом окне наберите команду "ATDXXXXXXXXXXX;" где XXXXXXXXXXX - номер вызываемомго абонента -
Установка IP-АТС Asterisk 20.3 на Keenetic
sips replied to driveRom's topic in Каталог готовых решений Opkg
Вы можете во время разговора захватить звук на аудиоинтерфейса UAC модема и записать его в файл, а затем скачать файл на компьютер и воспроизвести. Если голос оппонента будет с прерываниями и похрипываниями, как и в трубке IP-телефона, то звук искажает модем. Если звук будет без прерываний, то звук искажает Asterisk. Как записать звук: 1) выполнить команду «quectel show device state quectel0» в консоли Asterisk и выяснить, какой порт модема использует Asterisk. В примере ниже используется /dev/ttyUSB1: Netcraze-3950*CLI> quectel show device state quectel0 -------------- Status ------------- Device : quectel0 State : Free Audio UAC : hw:CARD=Asrmicro Data : /dev/ttyUSB1 2) выйти из консоли Asterisk 3) остановить cron командой «/opt/etc/init.d/S10cron stop» 3) остановить Asterisk командой «/opt/etc/init.d/S31asterisk stop» 4) установить пакеты командами «opkg install alsa-utils» и «opkg install picocom» 5) открыть последовательный порт модема, который использовал Asterisk командой «picocom -b 115200 /dev/ttyUSB1», вместо /dev/ttyUSB1 нужно указать актуальный порт. Когда порт успешно открыт, в терминале постоянно повторяются нотификации +CNETCINONINFO. 6) проверить, отвечает ли модем на команды: ввести команду «AT» в терминале и проверить наличие ответа «OK» 7) подключиться к роутеру по SSH повторно, чтобы появилось второе окно 😎 позвонить со смартфона на номер активной SIM-карты роутера и дождаться длинных гудков 9) во втором окне стартовать запись звука командой «arecord -Dhw:CARD=0 -c 1 -f S16_LE -r 16000 /storage/inaudio.wav» 10) в первом окне ответить на вызов командой «ATA» в терминале 11) на стороне смартфона убедиться в том, что вызов был отвечен и начался разговор, затем говорить в микрофон в течение нескольких секунд 12) завершить звонок на смартфоне или на роутере командой «ATH» в первом окне 12) остановить запись звука нажав CTRL+C во втором окне 13) чтобы закрыть терминал picocom и отключить порт модема, в первом окне нажмите CTRL+A, затем CTRL+X 14) убедиться в том, что на накопителе /storage появился файл «inaudio.wav», скачать его на компьютер и воспроизвести. Для большей достоверности результата запись звука лучше выполнить несколько раз. По завершению исследований запустите Asterisk и cron командами «/opt/etc/init.d/S31asterisk start» и «/opt/etc/init.d/S10cron start». -
Установка IP-АТС Asterisk 20.3 на Keenetic
sips replied to driveRom's topic in Каталог готовых решений Opkg
Нет, не надо. /opt/etc/asterisk/scripts/chan_quectel.so копируется в папку /opt/lib/asterisk/modules/ при настройке VoLTE. -
Установка IP-АТС Asterisk 20.3 на Keenetic
sips replied to driveRom's topic in Каталог готовых решений Opkg
Перезапишите на роутере /opt/lib/asterisk/modules/chan_quectel.so прилагаемым файлом и перезапустите asterisk. Если после этого сбой повторится, пришлите, лог из консоли asterisk -rvvvv. Можно включить вывод сообщений 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 -
Установка IP-АТС Asterisk 20.3 на Keenetic
sips replied to driveRom's topic in Каталог готовых решений Opkg
Судя по логам, asterisk ждал, когда ndm подключится к модему, а ndm не подключался по неизвестной причине. Asterisk подключается к модему только после того, как ndm подключится к нему. Чтобы звонки по номерам в международном формате работали можно сделать слдующее: 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]. Правильно -
Установка IP-АТС Asterisk 20.3 на Keenetic
sips replied to driveRom's topic in Каталог готовых решений Opkg
Насколько я понял из собственных тестов, SIpnetic проверяет сертификат сервера только когда используется SIPS. SIPS нужно включить, если нужна валидация сертификата сервера. Если SIPS включено и нет регистрации, то советую проверить соответствие доменного имени указанного в сертификате Asterisk доменному имени указанному в настройках учетной записи Sipnetic, попробовать заново пересоздать сертификаты и установить новый сертификат CA на телефон, удалив при этом старый. На Sipnetic нужно выключить учетную запись, подтвердить выключение галочкой сверху на экране, выйти из Sipnetic через меню приложения, запустить его снова, включить учетную запись и подтвердить включение галочкой сверху. Иначе изменения не принимаются. Если PhonerLite не настрен для проверки сертифката сервера и сертификат CA не установлен на стороне PhonerLite, то PhonerLite будет подключаться по TLS к любому серверу, адрес которого получит от DNS. -
Установка IP-АТС Asterisk 20.3 на Keenetic
sips replied to driveRom's topic in Каталог готовых решений Opkg
Прилагаю исправленный скрипт "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 -
Установка IP-АТС Asterisk 20.3 на Keenetic
sips replied to driveRom's topic in Каталог готовых решений Opkg
Да, так и есть. Спасибо. -
Установка IP-АТС Asterisk 20.3 на Keenetic
sips replied to driveRom's topic in Каталог готовых решений Opkg
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.
