Техпідтримка 3CX відповідає: захоплення SIP-трафіку на сервері АТС

У цій статті ми поговоримо про основи захоплення та аналізу SIP-трафіку, що генерується АТС 3CX. Стаття адресована системним адміністраторам або звичайним користувачам, в обов'язки яких входить обслуговування телефонії. Для поглибленого вивчення теми рекомендуємо пройти Розширений навчальний курс 3CX.

3CX V16 дозволяє робити захоплення SIP-трафіку безпосередньо через веб-інтерфейс сервера та зберігати у стандартному форматі Wireshark PCAP. Ви можете прикріпити файл захоплення під час звернення до техпідтримки або завантажити для самостійного аналізу.

Якщо 3CX працює на Windows, необхідно самостійно встановити Wireshark на сервер 3CX. Інакше під час спроби захоплення з'явиться таке повідомлення.
Техпідтримка 3CX відповідає: захоплення SIP-трафіку на сервері АТС

У Linux-системах утиліта tcpdump встановлюється автоматично під час встановлення або оновлення 3CX.

Захоплення трафіку

Щоб розпочати захоплення, перейдіть до розділу інтерфейсу Головна > Події SIP та виберіть інтерфейс, на якому потрібно зробити захоплення. Можна також захоплювати трафік на всіх інтерфейсах одночасно, крім інтерфейсів тунелювання IPv6.

Техпідтримка 3CX відповідає: захоплення SIP-трафіку на сервері АТС

У 3CX для Linux можна робити захоплення трафіку локального хоста (lo). Це захоплення використовується для аналізу підключень SIP-клієнтів за технологією 3CX Tunnel та Session Border Controller.

Кнопка "Захоплення трафіку" запускає Wireshark на Windows або tcpdump на Linux. У цей момент необхідно швидко відтворити проблему, т.к. захоплення завантажує процесор та займає достатньо місця на диску.  
Техпідтримка 3CX відповідає: захоплення SIP-трафіку на сервері АТС

Зверніть увагу на такі параметри дзвінка:

  • Номер, з якого зателефонували, на який зателефонували та інші номери/учасники виклику.
  • Точний час виникнення проблеми годинником сервера 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.

Техпідтримка 3CX відповідає: захоплення SIP-трафіку на сервері АТС

Виберіть інтерфейс для захоплення та натисніть кнопку Options. Зніміть галочку Capture Traffic in promiscuous mode, а інші налаштування залиште без змін.

Техпідтримка 3CX відповідає: захоплення SIP-трафіку на сервері АТС

Тепер слід відтворити проблему. Коли проблему відтворено, зупиніть захоплення (Меню 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 дуже схожий на e-mail адресу та записується як sip:x@y:Port.

Техпідтримка 3CX відповідає: захоплення SIP-трафіку на сервері АТС

Request-Line-URI:

Request-Line-URI – поле містить одержувача дзвінка. У ньому міститься та ж інформація, що й у полі To, але без відображуваного імені користувача (Display Name).

Вулиця:

Via — кожен SIP-сервер (проксі), через який проходить запит INVITE, додає зверху списку Via свою IP-адресу та порт, на який було отримано повідомлення. Потім повідомлення передається далі шляхом прямування. Коли кінцевий одержувач відповідає на запит INVITE, всі транзитні вузли «переглядають» заголовок Via і повертають повідомлення відправнику за тим самим маршрутом. При цьому транзитний SIP-проксі видаляє свої дані із заголовка.

от:

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 "Anonymous", наприклад, From: "Anonymous"[захищено електронною поштою]>.

Для того, щоб:

To - цей заголовок вказує на одержувача запиту. Це може бути як кінцевий одержувач дзвінка, так і проміжна ланка. Зазвичай у заголовку міститься SIP URI, проте можливі інші схеми (див. RFC 2806 [9]). Однак SIP URI має підтримуватись у всіх імплементаціях протоколу SIP, незалежно від виробника обладнання. Заголовок To також може містити ім'я Display Name, що відображається, наприклад, To: «Ім'я Прізвище»[захищено електронною поштою]>).

Зазвичай поле To містить SIP URI, що вказує на перший (наступний) SIP-проксі, який оброблятиме запит. Це не обов'язково має бути кінцевий одержувач запиту.

Контактна особа:

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

Додати коментар або відгук