Дебаг VoIP и воспроизведение RTP сессий
Хотел поделиться своим опытом удаленного дебага VoIP трафика с помощью Wireshark и воспроизведения RTP трафика, бывает
крайне полезно, особенно для новичков.
Так как использовать в консоли tshark на машине с установленным астериском для дебага трафика крайне не удобно, во первых
не читабельно, во вторых приходиться сразу задавать параметры отбора трафика, возникла потребность использовать
wireshark, т.к. там очень много удобных инструментов для отлова трафика, его графического отображения, разбора по SIP и
RTP сессиям и прочее. Но ставить X на машину с астериском считаю излишеством, поэтому прибег к следующему:
- на свою локальную машину устанавливаем wireshark, на машину с астериском ставим tshark;
- копируем на машину с астериском свой ssh ключ для захода без паролей
ssh-keygen (с пустой пасс фразой)
ssh-copy-id -i /home/user/.ssh/id_rsa.pub user@asterisk.address
после этого вы должны заходить без пароля
- далее мы будем сливать трафик с астериска на локальную машину по ssh напрямую в wireshark
/usr/bin/wireshark -k -i <(ssh user@asterisk.address sudo tshark -ni any -w - not tcp port 22)
(Не забудьте добавить пользователя в /etc/sudoers)
Весь трафик сливается в wireshark кроме 22 порта соответственно, иначе возникнет цикл и лавинообразный рост
трафика
- а далее всю работу по дебагу выполняем уже в wireshark, что крайне удобно, вот пару ссылок по этому поводу
http://wiki.wireshark.org/RTP_statistics
http://wiki.wireshark.org/VoIP_calls
Есть возможность дампить отдельные RTP сессии в raw формате и потом воспроизводить их(почему то получается сохранять
только forward направление, потом находим reverse и сохраняем его так же, потом импортируем оба файла в нужном формате),
я это делаю в Audacity, там встроена поддержка gsm, alaw, ulaw, но нет g729.
Для него использую декодер va_g729_decoder.exe, нашел только его, если кто знает что то еще прошу отписать, т.к.
приложение под винду то приходится запускать через wine
wine va_g729_decoder.exe имя_файла имя_вых_файла, на входе сессия в формате rtpdump (так же из wireshark, в анализе rtp сесcий) на выходе получаем файл в формате pcm, также потом его просто импортируем в audacity.
Собственно говоря, этого хватает для дебага Voip трафика, прослушивание rtp сессий бывает необходимо не только ради любопытства, но и для анализа качества или факсовых посылок, а так же можно подслушать чужые разговоры )))
Прошу всех поделиться своим опытом в этом вопросе, крайне интересно кто чем пользуется. ;)
|