Есть ли способ предотвратить отправку нескольких SIP-сообщений в одном TCP-пакете? - PullRequest
0 голосов
/ 19 октября 2019
  1. Я тестирую интеграцию SIP-сервера (только УАТС) с другой УАТС.
  2. Входящий вызов поступает на УАТС и отправляется на мой SIP-сервер.
  3. Как только звонок поступает на мой SIP-сервер, он снова отправляется обратно пользователю, зарегистрированному на моей АТС. Здесь у нас есть две ветви вызова - одна от вызывающей стороны к УАТС, а другая от Sip-сервера к вызываемой стороне.
  4. Вызов настроен правильно, и с аудио также нет проблем.
  5. Когда вызываемая сторона отменяет вызов, мой SIP-сервер отправляет сообщение BYE вызываемой стороне и вызывающему абоненту в одном и том же TCP-пакете.

После выполнения трассировки Wireshark я обнаружил, что сообщение BYE от моего SIP-сервера достигаетвызываемая сторона, но никогда не достигает звонящего. Я знаю, что между моим SIP-сервером и УАТС существует брандмауэр.

Вопрос: Существует ли возможность предотвратить несколько сообщений SIP в одном пакете TCP? Кроме использования UDP или борьбы с FW?

>> БЕЗ SIP-сервера вызываемой стороне, и он получает 200 OK:

11: 39: 03.163: Отправка [31, TCP] 462 байта в 10.cc.dd.ddf: 5060 >>>>>

BYE sip: +xxxxxxxxx@10.xx.cc.vv: 1122; транспорт = tcp SIP / 2.0

Call-ID: 003BA5CE-58A9-1D9C-ACEB-886231C0AA77-57379@1xx.vv.vv.vvv

<................>

>> До свидания с сервера SIP для вызывающего абонента и егоникогда не доходит до УАТС:

11: 39: 03.163: Отправка [31, TCP] 448 байтов в 10.cc.dd.ddf: 5060 >>>>>

BYE sip: +420702252645@10.cc.cc.bb: 5060; транспорт = tcp SIP / 2.0

Call-ID: acda8080-da917a0e-5a26b-8a61610a@10.xx.cc.vvb

1 Ответ

2 голосов
/ 19 октября 2019

Существует ли опция для предотвращения нескольких SIP-сообщений в одном TCP-пакете?

Хотя описание, которое вы описываете, сбивает с толку (изображения с настройкой и потоком сообщений могут сделать его болееясно), и вопрос сам по себе, вероятно, не по теме (не связан с программированием), на эту конкретную часть вопроса можно ответить:
Нет такой опции в SIP. Хотя ваша конкретная, но неизвестная конечная точка или УАТС может иметь такую ​​опцию, это маловероятно. Отправитель полностью соответствует спецификации, если он упаковывает несколько сообщений SIP в один и тот же узел (т. Е. Конечную точку SIP или прокси-сервер SIP) в одно и то же TCP-соединение, где они также могут оказаться в одном пакете, потому что именно так работает TCP. Если у получателя есть проблемы с этим, то это ошибка в получателе, и ее следует исправить там, а не обходить ее во всех возможных узлах.

...