2015-06-09 2 views
0

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

Использование софтфона не помогает.

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

Может ли это быть сделано? Я создаю приложения против freeswitch. Идеи отладки приложений voip также приветствуются в комментариях.

ответ

2

да, совершенно. Самым простым было бы иметь отдельный сервер FreeSWITCH, который используется для размещения тестовых вызовов и отправки/приема тестовых сигналов.

tone_stream будет генерировать звуковые сигналы на частотах, которые вам нужны: https://freeswitch.org/confluence/display/FREESWITCH/Tone_stream

tone_detect может обнаружить частоты и выполнить действия, или даже лучше, генерировать события, которые вы можете поймать над ESL гнездо: https://freeswitch.org/confluence/display/FREESWITCH/mod_dptools%3A+tone_detect

Лучший способ генерировать такие вызовы - использовать скрипт дозвона, который связывается с FreeSWITCH через Event Socket. Здесь вы можете увидеть некоторые (рабочие) примеры, которые я сделал с Perl:

https://github.com/voxserv/rring/blob/master/lib/Rring/Caller/FreeSWITCH.pm - это часть тестового набора, который я собираю для тестирования инфраструктуры SIP провайдера. Как вы можете видеть, он подключается к FreeSWITCH, запускает прослушиватель событий, а затем инициирует вызов и также ожидает входящий вызов. Затем он отправляет и анализирует DTMF.

https://github.com/voxserv/freeswitch-helper-scripts/tree/master/esl - это специальные дозвонщики, вы также можете использовать их в качестве примеров.

https://github.com/voxserv/freeswitch-perf-dialer - здесь генерируется серия вызовов, таких как SIPp.

0

Другой способ - воспроизвести образец аудиофайла и записать звук, полученный на другом конце [запись вызова], а затем сравнить их. Эта система работает над установкой, где системы расположены в разных местах, и вы проверяете качество конца.

Есть много инструментов для сравнения аудио (как PESQ), которые помогут вам не просто обнаружить присутствие аудио, но также дать статистику об ухудшении различных параметров в аудиопотоке.

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