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

sips

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

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

  • Посещение

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

    4

sips стал победителем дня 29 июня

sips имел наиболее популярный контент!

2 Подписчика

Оборудование

  • Устройства
    KN-XXXX, K+DECT, Linear

Посетители профиля

Блок последних пользователей отключён и не показывается другим пользователям.

Достижения sips

Поставщик контента

Поставщик контента (4/6)

123

Репутация

2

Ответы сообщества

  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.
×
×
  • Создать...

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

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