Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Отладка VoIP приложений

IqTek
September 26, 2019

Отладка VoIP приложений

Стандартные log-файлы (id вызова)
Вывод информации в лог через Verbose
Запись в CDR дополнительных данных
IP-адрес источника
SIP call-id
Unit-тесты

IqTek

September 26, 2019
Tweet

More Decks by IqTek

Other Decks in Programming

Transcript

  1. Конференция Asterconf 2016 Протоколы телефонии Гончаровский Игорь Отладка VoIP приложений

    RTP-Based: • SIP • H.323 • MGCP • SCCP • UNISTIM Другие: • IAX2 • PRI / BRI • GSM • FXS Протоколы для отладки: • RTCP • RTCP-XR • RTP loopback (Linksys)
  2. Конференция Asterconf 2016 SIP протокол. Сообщения Гончаровский Игорь Отладка VoIP

    приложений Основные сообщения: • INVITE, UPDATE • REGISTER • SUBSCRIBE, NOTIFY • PUBLISH • MESSAGE Вспомогательные: • 1xx - provisional responses • 2xx - положительный ответ • 3xx - перенаправление • 4xx - отказ • 5xx - ошибки • 6xx - отказ в услуге • HTTP-like протокол • Читаем • Расширяем Расширения: • PRACK (100rel) • etc Чтобы работать со всеми приходится нарушать стандарты. Чтобы нарушать - нужно знать
  3. Конференция Asterconf 2016 SIP протокол. REGISTER Гончаровский Игорь REGISTER sip:ss2.wcom.com

    SIP/2.0 Via: SIP/2.0/UDP there.com:5060 From: LittleGuy <sip:[email protected]> To: LittleGuy <sip:[email protected]> Call-ID: [email protected] CSeq: 2 REGISTER Expires: 3600 Contact: <sip:[email protected]> Contact: <sip:[email protected];user=phone> Contact: tel:+1-972-555-2222 Authorization:Digest username="UserB", realm="MCI WorldCom SIP", nonce="ea9c8e88df84f1cec4341ae6cbe5a359", opaque="", uri="sip:ss2.wcom.com", response="dfe56131d1958046689cd83306477ecc" Content-Length: 0 Отладка VoIP приложений
  4. Конференция Asterconf 2016 SIP протокол. INVITE Гончаровский Игорь Отладка VoIP

    приложений INVITE sip:[email protected] SIP/2.0 Via: SIP/2.0/UDP here.com:5060 From: BigGuy <sip:[email protected]> To: LittleGuy <sip:[email protected]> Call-ID: [email protected] CSeq: 1 INVITE Expires: 45 Contact: <sip:[email protected]> Content-Type: application/sdp Content-Length: 147 v=0 o=UserA 2890844526 2890844526 IN IP4 here.com s=Session SDP c=IN IP4 100.101.102.103 t=0 0 m=audio 49172 RTP/AVP 0 a=rtpmap:0 PCMU/8000
  5. Конференция Asterconf 2016 SIP протокол. MESSAGE Гончаровский Игорь Отладка VoIP

    приложений MESSAGE sip:[email protected] SIP/2.0 Via: SIP/2.0/UDP server.work.com; branch=z9hG4bKabcd Via: SIP/2.0/UDP station1.work.com; branch=z9hG4bK123 Max-Forwards: 69 From: Daniel To: Boss Call-ID: [email protected] CSeq: 1101 MESSAGE Content-Type: text/plain Content-Length: 22 Content-Disposition: render I’m fine. How are you?
  6. Конференция Asterconf 2016 SIP протокол. SUBSCRIBE Гончаровский Игорь Отладка VoIP

    приложений SUBSCRIBE sip:[email protected]:5060 SIP/2.0 Via: SIP/2.0/UDP 10.129.55.74:5060 From: 7340 <sip:[email protected]:5060>;tag=1 To: 8519 <sip:[email protected]:5060>;tag=a94c095b773be1 dd6e8d668a785a9c84113d Call-id: [email protected] Cseq: 1 SUBSCRIBE Contact: <sip:[email protected]:5060; transport=UDP> Event: telephone-event;duration=300 Expires: 600 Content-Length: 0
  7. Конференция Asterconf 2016 Asterisk Гончаровский Игорь Отладка VoIP приложений Приемы

    отладки: 1. Стандартные log-файлы (id вызова) 2. Вывод информации в лог через Verbose 3. Запись в CDR дополнительных данных a. IP-адрес источника b. SIP call-id 4. Unit-тесты
  8. Конференция Asterconf 2016 Общая классификация Гончаровский Игорь Отладка VoIP приложений

    Главная задача - узнать о проблеме до сообщения пользователем. Варианты тестирования: • Пассивное (Non-intrusive) ◦ Замеряются метрики и параметры реальных вызовов • Активное (Intrusive) ◦ Создаются искусственные тесты для проверки вхождения метрик системы в заданные рамки
  9. Конференция Asterconf 2016 Пассивное тестирование Гончаровский Игорь Отладка VoIP приложений

    Homer: • HEP3 Collector ◦ Asterisk ◦ Freeswitch ◦ Kamailio ◦ sipgrep etc. • RTCP-XR / RTCP • WebRTC • REST API • Производительность • Бесплатный GUI • Аналитика
  10. Конференция Asterconf 2016 Гончаровский Игорь Отладка VoIP приложений • OpenSource

    • Производительность • Коммерческий GUI • Запись разговора • MOS G.107 • PESQ • REGISTER - трекинг • MESSAGES • Jitter / Loss calculation • Обнаружение аномалий • SIP / SCCP • Факсы в PDF
  11. Конференция Asterconf 2016 Утилиты CLI Гончаровский Игорь Отладка VoIP приложений

    • tcpdump ◦ tcpdump -i eth0 -n -s 0 port 5060 -vvv • tshark + передача птрфика через pipe ◦ ssh [email protected] 'tshark -f "port 5060" -w -' | wireshark -k -i - • ngrep ◦ ngrep -q -d any -p -W byline '' 'port 5060' ◦ ngrep -q -d any -p -W byline 'REGISTER' • sngrep
  12. Конференция Asterconf 2016 sipgrep Гончаровский Игорь Отладка VoIP приложений #Find

    a dialog there From user contains '2323232' sipgrep -f 2323232 #Find a dialog there To user has '1111',print dialog report sipgrep -f 1111 -G #Display only 603 replies without dialog match sipgrep '^SIP/2.0 603' -m #Display only OPTIONS and NOTIFY requests sipgrep '^(OPTIONS|NOTIFY)' #Display only SUBSCRIBE dialog sipgrep 'CSeq:\s?\d* (SUBSCRIBE|PUBLISH|NOTIFY)' -M #Kill friendly-scanner sipgrep -J #Kill friendly-scanner with custom UAC sipgrep -j sipvicious #Display dialogs and duplicate all traffic to HOMER sipcapture in HEPv3 sipgrep -f 23333 -H udp:10.0.0.1:9061 #collect all Calls/Regisrations untill pcap_dump smaller than 20 KB. sipgrep -q 'filesize:20' -O sipgrep.pcap #collect all Calls/Regisrations dialogs during 120 seconds, print reports and exit. sipgrep -g -G -q 'duration:120' #split pcap_dump to 20 KB files in sipgrep_INDEX_YYYYMMDDHHMM.pcap sipgrep -Q 'filesize:20' -O sipgrep.pcap
  13. Конференция Asterconf 2016 Активное тестирование Гончаровский Игорь Отладка VoIP приложений

    Тестирование по сценарию: • Тестирование сервиса ◦ Конференции ◦ IVR • Тестирование качества (MOS) ◦ Эхо ◦ IVR • Тестирование наличия соединения (DID) • SIPP Технологии, на которые опираемся: • PESQ (AQuA) • POLQA (PVQA) • + cloud
  14. Конференция Asterconf 2016 Ссылки Гончаровский Игорь Отладка VoIP приложений •

    http://wiki.freeswitch.org/wiki/Packet_Capture - список утилит для анализа пакетов • https://habrahabr.ru/post/274919/ - статья о мониторинге CLI утилитами • http://www.csie.ntu.edu.tw/~acpang/course/voip_2005_fall/slides/SIP_2.pdf - презентация о работе VoIP протокола Проекты: • http://sipcapture.org/ • http://www.voipmonitor.org/ • http://sevana.biz/ • https://github.com/sipcapture/sipgrep • https://github.com/irontec/sngrep