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

sips

Модераторы
  • Постов

    200
  • Зарегистрирован

  • Посещение

  • Победитель дней

    4

Весь контент sips

  1. В этой версии исправлены известные ошибки VoLTE, включая подключение к занятому виртуальному порту модема, зависшие звонки на невалидные номера (MegaFon) и сбой настройки VoLTE, когда активен SIM2 и др. Добавлен механизм повторного чтения парметров модема, которые не удалось считать при инициализации и поддержка Early Media при исходящих звонках. Отлажено переподключение модема после сканирования эфира. asterisk-installer-20260717.tar.gz
  2. Если эта версия не заработает, то на следующей неделе попробуем отладить через удаленное подключение, как вы предлагаете. chan_quectel.so
  3. Принудительно прерывать звонок командой +CHUP через 20 секунд dialing было плохой идеей. Если будут звучать голосовые сообщения Early Media и они будут неожиданно прерваны, то это не понравится многим пользователям. Кроме того, не понятно, как в вашем случае это вообще работало и почему перестало работать. Команда +CHUP должна завершить звонок и после нее модем должен прислать репорт +CLCC подтверждающий завершение. В вашем случае на команду +CHUP модем отвечает ERROR и репорт не присылает. Данную задачу нужно решать иначе и решение видится следующим: когда после звонка на невалидный номер вы кладете трубку, драйвер отправляет +CHUP, получает в ответ ERROR, ждет репорт о завершении звонка, но репорта нет и звонок зависает. Чтобы звонок не зависал, нужно при получении ERROR завершить звонок не дожидаясь репорта. В этой версии при получении ERROR в ответ на +CHUP обработчик команд должен принудительно удалить звонок и отключить аудиоустройство также, как и при получении репорта о завершении звонка. Прошу проверить и сообщить, как это работает. Когда положите трубку, в консоли должны появиться сообщения следующего вида: “Error sending hangup for call idx:*” “Forcibly ending call idx:*” После них выполняется код завершающий звонок и отключающий аудиоустройство. chan_quectel.so
  4. Пробовал звонить на 0860 (см. скриншот), 0000000 и др. невалидные номера - во всех случаях приходит репорт от модема и звонок успешно завершается. Попробуйте звонки на невалидные номера с прилагаемым драйвером. Там добавлена смена статуса звонка dialing>released без репорта от модема после того, как пользователь кладет трубку. Это может пофиксить зависший звонок. Если не пофиксит, то задача откладывается до тех пор, пока не найдется способ воспроизвести зависание. chan_quectel.so
  5. У меня при звонке на номер 0890 с SIM Megafon звонок корректно завершается через секунду после отправки вызова и звонок не зависает, см. скриншот. Если включить отладочный лог -rvvvvdd, то можно видеть репорт о завершении звонка приходящий от модема: [Jul 8 13:22:06] DEBUG[5958]: src/at_response.c:1111 handle_clcc: [quectel0] CLCC idx:1 dir:0 state:6 mode:0 mpty:off number:0890 type:129 При тестировании использовалась SIM-карта Megafon приобретенная на этой неделе в офисе Megafon. Зависший звонок не воспроизводится. Без воспроизведения отладить не получится. Насколько я понял, если не набирать невалидные номера, то зависаний нет. Предполагаю, если вы замените SIM-карту на новую, то зависание при звонке на 0890 уйдет.
  6. Судя по логам, при исходящем вызове по номеру 0890 модем не присылает репортов о смене статуса звонка. На команду завершения звонка он отвечает ERROR и не присылает репорт о завершении звонка. Чтобы завершить звонок Asterisk должен получить такой репорт, но репорта нет и звонок зависает. Нужно отладить завершение звонка в данном сценарии с Megafon. Отладка будет выполняться на следующей неделе. Сейчас после установки Asterisk в конфигурации /opt/etc/asterisk/extensions.conf в контексте “mobile-outgoing” разрешены исходящие звонки через сеть LTE по любым номерам: [mobile-outgoing] exten => _x.,1,NoOp() Вместо этого можно добавить валидацию номеров по шаблонам, чтобы Asterisk отбивал звонки по невалидным номерам и таким образом исключить зависающие звонки. В примере ниже разрешены только звонки на 11-ти значные номера, которые начинаются на 8, а также звонки на номер 0500. Аналогичным образом можно разрешить звонки по другим номерам, если это необходимо. Для этого нужно добавить новый экстеншен после _0500 ;=============== Outgoing mobile calls =============== [mobile-outgoing] exten => _8XXXXXXXXXX,1,Goto(send-mobile-call,${EXTEN},1) exten => _0500,1,Goto(send-mobile-call,${EXTEN},1) [send-mobile-call] exten => _X.,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)}-${ARG1:2}_${STRFTIME(${EPOCH},/opt/share/zoneinfo/Europe/Moscow,%y%m%d-%H%M)}.wav,b) ;<------ Call recording same => n,Dial(Quectel/quectel0/${EXTEN}) 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()
  7. Нолик добавлен, в следующей версии этой опечатки не будет. Спасибо. Ваше обращение передано разработчикам NC-2312, они его рассмотрят.
  8. same => n,Progress() same => n,Dial(Quectel/quectel0/${EXTEN},30,R) Эти изменения в "mobile-outgoing" позволяют принимать аудио до ответа на вызов (Early Media). Если вы их применили, то во время звонка на номер 0890 могут появиться голосовые сообщения. Хорошо бы проверить, появились ли сообщения и послушать, о чем говорят. Я не могу воспроизвести зависшие звонки с Beeline и MTS: при звонках на невалидные номера звучат сообщения о неправильно набранном номере и т.п., затем звонок корректно завершается. Протестировать с Megafon в ближайшее время не смогу. Если возможно, пришлите отладочный лог зависшего звонка из консоли Asterisk. Для этого зайдите в консоль Asterisk командой “asterisk -rvvvvdd” позвоните 0890, подождите минуту, завершите звонок на телефоне, сохраните весь консольный вывод в файл и пришлите его мне. Возможно, c отладочным логом удастся понять, что происходит. Кстати, проверьте, сбрасывается ли зависший звонок командой “channel request hangup all”.
  9. Найдите в /opt/etc/asterisk/extensions.conf и замените в нем экстеншен "mobile-outgoing" на это: ;=============== Outgoing mobile calls =============== [mobile-outgoing] exten => _x.,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)}-${ARG1:2}_${STRFTIME(${EPOCH},/opt/share/zoneinfo/Europe/Moscow,%y%m%d-%H%M)}.wav,b) ;<------ Call recording same => n,Progress() same => n,Dial(Quectel/quectel0/${EXTEN},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() Затем перезагрузите ядро "core restart now". После перезагрузки попробуйте снова позвонить на 0890. Проверьте, появились ли голосовые сообщения.
  10. Новая версия инсталлятора Asterisk: keenetic-asterisk-installer-20260625.tar.gz keenetic-asterisk-installer-guide-20260625.pdf Добавлен механизм, который разводит процессы ndm и asterisk по разным виртуальным последовательным портам модема, чтобы не мешали друг другу. Asterisk должен корректно переподключать модем после переключения между SIM1 и SIM2. Перед установкой новой версии Asterisk удалите существующую версию скриптом "remove-asterisk". На всякий случай, выкладываю его снова. Он входит в состав прилагаемой версии. keenetic-asterisk-installer-guide-20260625.pdf keenetic-asterisk-installer-20260625.tar.gz remove-asterisk
  11. На данный момент причиной проблем видится то, что периодически, после перезагрузки модема ndm и asterisk начинают использовать один и тот же виртуальный последовательный порт модема. Сейчас ведется работа по добавлению механизма, который разведет ndm и asterisk по разным портам модема, чтобы не мешали друг другу.
  12. В /opt/etc/asterisk/pjsip.conf нужно заменить outbound_proxy=sip:multifon.ru:5060\;lr\;hide на outbound_proxy=sip:sbc.megafon.ru:5060\;lr\;hide Заменить в двух местах, см. выше, отмечено маркером <<<< Затем перечитать конфигурацию командой "core restart now" в командной строке Asterisk и проверить регистрацию trunkMegafon
  13. Еще нужен self-test с роутера. Не нужно его сюда класть, пришлите мне в личку.
  14. Выполните /opt/etc/init.d/S31asterisk stop Перезапишите /opt/lib/asterisk/modules/chan_quectel.so прилагаемым файлом. Выполните /opt/etc/init.d/S31asterisk start Проверьте сценарий с зависанием в состянии Dialing после набора невалидного номера. Через 20 секунд дрйвер должен прервать вызов командой +CHUP, если статус Dialing не сменится. chan_quectel.so
  15. Насколько я понял, в процессе установки из телефонных линий телефонной станции Keenetic были созданы SIP-транки Asterisk, но они не работают, нет SIP-регистрации. SIP-регистрация телефонных линий работала до создания транка? Чтобы понять, почему не работают SIP-транки мне нужен self-test c роутера и конфигурация /opt/etc/asterisk/pjsip.conf из Asterisk.
  16. В строке 124 файле extension.conf ошибка: same => Hangup() Должно быть так: same => n,Hangup() Или можно совсем удалить, т.к. в строке 123 безусловный переход. Будет исправлено.
  17. Сбрасывется ли статус Dialing командой quectel cmd quectel0 “at+chup” ?
  18. Это скрипт для удаления Asterisk со всеми модулями, драйверами и конфигурационными файлами. Перед новой инсталляцией Asterisk нужно удалить существующую инсталляцию этим скриптом. После удаления система OPKG Entware с другими установленными пакетами останется и можно будет заново установить Asterisk в эту систему по инструкции. Если в существующей инсталляции есть конфигурационные файлы Asterisk, которые правились руками и их нужно сохранить, то перед удалением Asterisk их нужно скачать с роутера, чтобы потом загрузить на роутер обратно в новую инсталляцию. Скрипт нужно загрузить на встроенное хранилище роутера, например, в папку /opt/etc/asterisk/scripts, затем сделать его исполняемым с помощью команды "chmod +x /opt/etc/asterisk/scripts/remove-asterisk" в командной строке Linux. После этого можно его запустить "/opt/etc/asterisk/scripts/remove-asterisk". Скрипт запрашивает подтверждение на удаление. remove-asterisk
  19. Зайдите в консоль Asterisk и выполните команду "core restart now", чтобы перчитать все конфигурационные файлы. Затем выключите и включите телефонную станцию Netcraze и проверьте регистрацию line1001 и mobile.
  20. Предполагаю, что вы заходите в NDMS CLI как “admin”, затем переходите в консоль Linux по команде "exec ash" и запускаете инсталлятор /opt/asterisk/install. При этом некоторые команды используемые инсталлятором не работают, т.к. не хватает прав. Чтобы инсталлятор работал корректно нужно зайти в консоль Linux напрямую по SSH как пользователь “root” (дефолтный пароль “кееnetic”), затем запустить инсталлятор /opt/asterisk/install, как написано в инструкции "keenetic-asterisk-installer-guide-20260603.pdf". Рекомендую полностью удалить текущую инсталляцию OPKG Entware + Asterisk, затем повторить установку Asterisk по инструкции от пользователя “root” из консоли Linux.
  21. Обновлен инсталлятор: keenetic-asterisk-installer-20260615.tar.gz Добавлена проверка статуса модема при исходящем звонке. Если модем готов для исходящего звонка, то вызов направляется по LTE. Если модем не готов, то вызов отбивается с голосовым сообщением. Если asterisk упал по какой-то причине, то он автоматически перезапустится в течение минуты. Руководство по установке не обновлялось. keenetic-asterisk-installer-20260615.tar.gz
  22. Тест фильтрации входящих звонков описанный ниже выполнялся с KeeneticOS 5.0.12. Смотрю историю звонков, вижу звонки с номеров 1234567890 и +1234567890, которые нужно заблокировать. Получаю данные по телефонным линиям сконфигурированным в системе. Имеется одна линия с идентификатором 1. Черный список для нее не сконфигурирован и не включен. Мне нужно заблокировать звонки с номеров, которые начинаются на 123 и +123. Создаю черный список линии 1 для блокировки номеров из 10-ти цифр, которые начинаются на 123 и +123. Включаю черный список линии 1. Проверю данные по телефонным линиям. Черный список линии 1 сконфигурирован и включен. Проверяю черный список линии 1. Смотрю историю звонков, вижу заблокированные звонки с номеров 1234567890 и +1234567890. Смотрю системный лог и вижу записи о входящих звонках заблокированных черным списком.
  23. Проверьте версию NDMS на роутере. У меня установлена NDMS 5.0.12 и с ней звонки VoLTE с Beeline работают.
  24. Вставьте SIM-карту в смартфон, активируйте услугу VoLTE у опертора и активируйте VoLTE на смартфоне. Затем проверьте звонки VoLTE. Когда VoLTE заработает, вставьте SIM-карту в слот роутера и проверьте звонки снова.
×
×
  • Создать...

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

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