В тази статия ще говорим за основите на улавянето и анализа на SIP трафика, генериран от АТС 3CX. Статията е насочена към начинаещи системни администратори или обикновени потребители, отговорни за поддържането на телефонията. За задълбочено изучаване на темата, препоръчваме да преминете .
3CX V16 позволява улавяне на SIP трафика директно през уеб интерфейса на сървъра и запазване в стандартен формат Wireshark PCAP. Можете да приложите файла с улавянето, когато се свържете с техническата поддръжка или да го изтеглите за самостоятелен анализ.
Ако 3CX работи на Windows, е необходимо сами да инсталирате Wireshark на сървъра 3CX. В противен случай, при опит за улавяне, ще се появи следното съобщение.

В Linux-системите, утилитата tcpdump се инсталира автоматично при инсталация или актуализация на 3CX.
Улавяне на трафика
За да започнете улавянето, отидете в секцията на интерфейса Начална страница > Събития SIP и изберете интерфейса, на който желаете да направите улавяне. Също така можете да улавяте трафик на всички интерфейси едновременно, с изключение на интерфейсите за тунелиране на IPv6.

В 3CX за Linux може да се прави улавяне на трафика за локалния хост (lo). Това улавяне се използва за анализ на свързаността на SIP клиентите по технологията .
Кнопката „Улавяне на трафика“ стартира Wireshark на Windows или tcpdump на Linux. В този момент трябва бързо да воспроизведете проблема, тъй като улавянето натоварва процесора и заема значително дисково пространство.

Обърнете внимание на следните параметри на повикването:
- Номерата, от които и на които е позвънявано, и други номера / участници на повикването.
- Точното време на възникване на проблема по часовника на сървъра 3CX.
- Маршрутът на повикването.
Опитайте се да не кликате на други места в интерфейса освен на бутона „Спри“. Също така не преминавайте по други връзки в този прозорец на браузъра. В противен случай, улавянето на трафика ще продължи на заден план и ще доведе до допълнително натоварване на сървера.
Получаване на файла с улавяне
Кнопката „Спри“ спира улавянето и запазва файла с улавянето. Можете да изтеглите файла на компютъра си за анализ в утилитата Wireshark или да генерирате специален файл , която ще включва това захващане и друга отладъчна информация. След изтеглянето или включването в пакета за техническа поддръжка, файлът за захващане автоматично се изтрива от сървъра на 3CX за безопасност.
На сървъра на 3CX файлът се намира на следното място:
- Windows: C:ProgramData3CXInstance1DataLogsdump.pcap
- Linux: /var/lib/3cxpbx/Instance/Data/Logs/dump.pcap
За да избегнете повишено натоварване на сървъра или загуба на пакети при захващането, периодът на захващане е ограничен до 2 милиона пакета. След това захващането автоматично спира. Ако ви е нужно по-дълго захващане, използвайте отделна утилита Wireshark, както е описано по-долу.
Захващане на трафика с утилитата Wireshark
Ако се интересувате от по-дълбок анализ на мрежовия трафик, захващайте го ръчно. Изтеглете утилитата Wireshark за вашата ОС . След инсталиране на утилитата на сървъра на 3CX, преминете в раздела Capture > Interfaces. Тук ще бъдат показани всички мрежови интерфейси на ОС. IP адресите на интерфейсите могат да се показват в стандарта IPv6. За да видите адреса IPv4, кликнете върху адреса IPv6.

Изберете интерфейс за захващане и натиснете бутона Options. Свалете отметката Capture Traffic in promiscuous mode, а останалите настройки оставете без промяна.

Сега следва да възпроизведете проблема. Когато проблемът бъде възпроизведен, сп停ете захващането (меню Capture > Stop). SIP съобщенията могат да бъдат избрани от менюто Telephony > SIP Flows.
Основи на анализа на трафика — SIP INVITE съобщение
Нека разгледаме основните полета на SIP съобщението INVITE, което се изпраща за установяване на VoIP повикване, т.е. е изходната точка за анализа. Обикновено SIP INVITE включва от 4 до 6 полета с информация, която се използва от крайните SIP устройства (телефони, шлюзове) и операторите на връзките. Разбирането на съдържанието на INVITE и следващите след него съобщения често помага да се определи източникът на проблема. Освен това, познаването на полетата на INVITE помага при свързването на SIP оператори към 3CX или при интегрирането на 3CX с други SIP ПТС.
В съобщението INVITE потребителите (или SIP устройства) се определят по URI. Обикновено SIP URI е номерът на телефона на потребителя + адреса на SIP сървера. SIP URI много прилича на имейл адрес и се записва като sip:x@y:Port.

Request-Line-URI:
Request-Line-URI — полето съдържа получателя на повикването. В него се съдържа същата информация, която е в полето To, но без показваното име на потребителя (Display Name).
Via:
Via — все SIP-сервери (прокси), через которые проходит запрос INVITE, добавляют в начало списка Via свой IP-адрес и порт, на который было получено сообщение. Затем сообщение передается далее по пути следования. Когда конечный получатель отвечает на запрос INVITE, все промежуточные узлы «просматривают» заголовок Via и возвращают сообщение отправителю тем же маршрутом. При этом промежуточный SIP-прокси удаляет свои данные из заголовка.
From:
From — заголовок указывает на инициатора запроса с точки зрения SIP-сервера. Заголовок формируется аналогично e-mail адресу (user@domain, где user — добавочный номер пользователя 3CX, а domain — локальный IP-адрес или SIP-домен сервера 3CX). Как и заголовок To, заголовок From содержит URI и, опционально, отображаемое имя пользователя Display Name. По заголовку From можно понять, как следует обрабатывать этот SIP-запрос.
Стандарт SIP RFC 3261 предусматривает, что если отображаемое имя Display Name не передается, IP-телефон или VoIP-шлюз (UAC) должны использовать Display Name «Анонимный», например, From: «Анонимный» <sip:10000@10.172.0.2>.
To:
To — этот заголовок указывает на получателя запроса. Это может быть как конечный получатель вызова, так и промежуточное звено. Обычно в заголовке содержится SIP URI, однако возможны и другие схемы (см. RFC 2806 [9]). Тем не менее, SIP URI должен поддерживаться во всех имплементациях протокола SIP, независимо от производителя оборудования. Заголовок To также может содержать отображаемое имя Display Name, например, To: «Имя Фамилия» <sip:101@10.172.0.2>).
Обычно поле To содержит SIP URI, указывающий на первый (следующий) SIP-прокси, который будет обрабатывать запрос. Это не обязательно должен быть конечный получатель запроса.
Contact:
Contact — заголовок содержит SIP URI, по которому можно связаться с отправителем запроса INVITE. Это обязательный заголовок, который должен содержать только один SIP URI. Он является частью двусторонней коммуникации, соответствующей первоначальному запросу SIP INVITE. Важно, чтобы заголовок Contact содержал корректную информацию (включая IP-адрес), по которому отправитель запроса ожидает ответа. URI Contact используется и в дальнейших коммуникациях, уже после установления сеанса связи.
Allow:
Позволете — полето съдържа списък с параметри (SIP методи), разделени със запетая. Те описват какви възможности на SIP протокола поддържа този изпращач (устройство). Пълният списък на методите: ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, OPTIONS, PRACK, REFER, REGISTER, SUBSCRIBE, UPDATE. Подробно за SIP методите е описано .
Източник: habr.com
