Статусы в телефонии Asterisk

В нашей работе мы часто сталкиваемся с вопросом клиентов, которые хотят получить достоверную статистику по статусам исходящих вызовов.

Рассказываем подробно в статье что из себя представляют статусы в телефонии Asterisk и почему они слабо подходят для маркетинговых вызовов отдельно от других данных.

Какие бывают статусы?

Q.931 и SIP

Технические статусы, отображают причину отклонения вызова. Для Q.931 — цифровой, для SIP — код и текстовое описание. Ответы от разных операторов в одних и тех же ситуациях могут быть разными. К тому же если произошёл ответ на вызов, кода уже не будет, хотя ответ мог быть и не реальным.

Обе системы кодов имеют стандарт на преобразование между друг другом. Особенностью является, что последовательные преобразования из SIP в q.931 и обратно могут привести к изменению кода завершения вызова.

${DIALSTATUS}

Asterisk внутренне фактически использует коды q.931 для обработки кодов завершения вызова, но чаще всего в статистике вы увидите значение переменной DIALSTATUS, которая обобщает эти коды по общему смыслу, основные это (мы перечислим ситуации, в которых код появится, чтобы показать, как это помешает в анализе):

· ANSWER — вызов был технически отвечен. Это ничего не говорит о доступности номера для вызова. Вызываемый номер может быть недоступен, занят. Оператор может произвести ответ при переводе вызова на голосовую почту (при этом как после тонового сигнала, так и перед приглашением оставить сообщение)

· NOANSWER — вызов не был отвечен. Означает только то что ваш Asterisk прервал вызов до того как он был отвечен или отклонён вызываемой стороной. При этом во время вызова могли звучать различные сообщения, проходить КПВ или вообще не быть никакой сигнализации о прогрессе вызова.

· BUSY — номер занят. Относительно понятно, но нужно учитывать, что не во всех ситуациях, когда номер занят вы получите этот код. Часть вызовов на занятые номера попадают на автоответчик и вторую линию и будут видны со статусом NOANSWER, часть — попадут на автоответчик и будут видны со статусом ANSWER

· CONGESTION — какой-либо другой код отклонения вызова, ез подробного понимания что произошло (номер отключён, недоступен, не существует и т.п.). Также этот статус подвержен тем же проблемам для понимания доступности номера, как и статус BUSY.

· CHANUNAVAIL — ситуации, когда вызываемый канал недоступен (в основном это проблемы с настройкой или недоступность оборудования оператора)

Теперь расскажем, как сделать так чтобы ваша телефония была максимально продуктивной и поддавалась аналитике.

Подход iqAntibot

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

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

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

Метод, который используем в данный момент для анализа пока единственный. Он аналогичен Shazam — собираем базу стандартных автоответчиков, в процессе разговора в реальном времени анализируем звук и обрываем вызов. Данный подход работает хорошо, не давая ложных срабатываний.

Также технологии, на которых построено приложение позволяют реализовать и другие технологии анализа состояния линии:

· распознавание речи — при обнаружении речи в канале можно распознать её в реальном времени. Минус — к каждому вызову добавляется стоимость распознания речи.

· распознавание ключевых слов — возможно построить достаточно точный поиск ключевых слов на основании открытых библиотек распознавания речи.

· классический AMD — распознавание активности говорящего после ответа на вызов

· анализ переключения SSRC в RTP — часто при срабатывании автоответчиков происходит переключение RTP потока, можно фиксировать эти данные и использовать пост-фактум для анализа статистики

· анализ ответов Early Media — некоторые операторы генерируют различные 18x ответы в SIP в зависимости от фазы вызова. Также можно использовать для статистики.

А ещё на основе этой технологии делаем сервис суфлирования для операторов call-центра, но это уже совсем другая история.

Раскрыли ещё больше технических особенностей о нашем iqAntibot, чтобы максимально подробно рассказать, как он работает. Если у вас остались вопросы по работе продукта, можете задать их в комментариях

Начать дискуссию