борьба с PJSIP
Добавлено: 11 ноя 2021, 02:34
Друзья, прошу не бить меня сразу и больно, вопрос может не содержать достаточного объема конкретики, однако я уперся в проблему и потерял пути решения
более 10 лет благополучно сидел на chan_sip и, можно сказать, бед не знал, но случился pjsip и объявление chan_sip как deprecated
попытки перейти на новый стек я предпринимал раньше, еще с версии 13, но в те времена это выглядело достаточно сыро, например я не редко получал блокировку канала с потреблением 100% процессора.. но истема продолжала работать, отваливался один оператор, он не мог принимать звонки из очереди, так как находился в системе в состоянии In Use, ручное прерывание подвисшего канала никак не влияло на ситуацию - канал продолжал висеть, решалась проблема полным ребутом.
спустя время я начала повторный попытки перехода на pjsip уже на версии 16, надеясь что все критические проблемы уже давно решены.
первая попытка вывести pjsip в прод была совершена в конце 2019 года и она оказалась крайне неудачной - работоспособность блокировалась полностью в какой-то рандомный момент, без криков в логи
при этом проблема не отличалась частотой повторения - раз в неделю-две, как при пиковых нагрузках, так и при штатных (в сутки проходило всего 2000 звонков)
cli оставалось доступной, я мог выполнить core show channels и прочие запросы, но verbose вывода со стороны системы в консоль не было абсолютно никакого - то есть при входящем звонке абонент слышал тишину, а в консоли астера было пусто, будто сип стек находится в какой-то глобальной блокировке и не обрабатывает пакеты сигнализации.
при этом ни один из активных каналов невозможно завершить принудительно через channel request hangup
потребление процессора было штатное, без пиков, в общем с виду астериск был в порядке, но сип стек переставал работать.
из каких-то особенностей - все звонки обрабатываются системой роутинга по fastagi. перезагрузка системы роутинга не имеет никакого влияния на ситуацию.
последняя моя попытка снова перейти на pjsip состоялась на версии 16.21.1, проблема повторилась через несколько дней после вывода системы в прод
астериск собирается из исходников с --with-pjproject-bundled
да, пытался анализировать бэкстеки потоков зависшего астериска через gdb, но каких-то явных зацепок не увидел
что можно в этом случае посмотреть и куда покопать ?
более 10 лет благополучно сидел на chan_sip и, можно сказать, бед не знал, но случился pjsip и объявление chan_sip как deprecated
попытки перейти на новый стек я предпринимал раньше, еще с версии 13, но в те времена это выглядело достаточно сыро, например я не редко получал блокировку канала с потреблением 100% процессора.. но истема продолжала работать, отваливался один оператор, он не мог принимать звонки из очереди, так как находился в системе в состоянии In Use, ручное прерывание подвисшего канала никак не влияло на ситуацию - канал продолжал висеть, решалась проблема полным ребутом.
спустя время я начала повторный попытки перехода на pjsip уже на версии 16, надеясь что все критические проблемы уже давно решены.
первая попытка вывести pjsip в прод была совершена в конце 2019 года и она оказалась крайне неудачной - работоспособность блокировалась полностью в какой-то рандомный момент, без криков в логи
при этом проблема не отличалась частотой повторения - раз в неделю-две, как при пиковых нагрузках, так и при штатных (в сутки проходило всего 2000 звонков)
cli оставалось доступной, я мог выполнить core show channels и прочие запросы, но verbose вывода со стороны системы в консоль не было абсолютно никакого - то есть при входящем звонке абонент слышал тишину, а в консоли астера было пусто, будто сип стек находится в какой-то глобальной блокировке и не обрабатывает пакеты сигнализации.
при этом ни один из активных каналов невозможно завершить принудительно через channel request hangup
потребление процессора было штатное, без пиков, в общем с виду астериск был в порядке, но сип стек переставал работать.
из каких-то особенностей - все звонки обрабатываются системой роутинга по fastagi. перезагрузка системы роутинга не имеет никакого влияния на ситуацию.
последняя моя попытка снова перейти на pjsip состоялась на версии 16.21.1, проблема повторилась через несколько дней после вывода системы в прод
астериск собирается из исходников с --with-pjproject-bundled
да, пытался анализировать бэкстеки потоков зависшего астериска через gdb, но каких-то явных зацепок не увидел
что можно в этом случае посмотреть и куда покопать ?