SIP

Раздел Сервисы описывает объекты. Здесь собраны типовые задачи целиком: что настроить, в каком порядке, как убедиться, что регистрация и звонок работают, и что означают ошибки, если не заработало.

  • SIP с CommuniGate Pro — сигнализация через балансировщик 5А с бэкендом CommuniGate Pro: SIP-монитор с запросом OPTIONS, SIP-прокси в софтфоне, разбор звонка по логу CGP.
  • SIP с Asterisk — то же с Asterisk: допустимые коды ответа для монитора, контрольное отключение сервиса и расшифровка записей stream-лога.

Оба сценария рассчитаны на SIP-сигнализацию по UDP через L4 UDP-конфигурацию балансировки. Бэкенд — сервер телефонной платформы, клиент — софтфон.

Как идёт трафик

Балансировщик работает с SIP на транспортном уровне (L4) и не разбирает содержимое SIP-сообщений.

Через балансировщик проходят:

  • REGISTER — регистрация софтфона, и ответы на него;
  • исходящий INVITE — вызов, который софтфон отправляет на сервер, и ответы на него.

Напрямую между сервером и софтфоном идут:

  • входящий INVITE вызываемому абоненту;
  • запросы внутри уже установленного разговора (BYE и подобные);
  • голос (RTP).

Причина в том, что телефонная платформа адресует эти запросы по адресу Contact, который софтфон указал при регистрации, а балансировщик этот заголовок не переписывает. Поэтому серверу нужен доступ до софтфонов по адресам из их Contact, а софтфонам — до медиапортов сервера.

Ограничения

  • Балансировка L4 не анализирует и не переписывает поля SIP Via, Contact, Record-Route и SDP: сообщения передаются как есть.
  • Голос (RTP) идёт напрямую и через балансировщик не проходит.
  • Статус «На линии» в софтфоне означает успешную регистрацию, а не рабочий звонок. Работоспособность вызова проверяется отдельным звонком, причём в обе стороны.
  • Для нескольких SIP-серверов в одной группе нужна общая база регистраций (кластер платформы) либо persistence по IP клиента: иначе регистрация абонента и вызов к нему могут попасть на разные серверы.

Для проверки доступности SIP-сервера в системе есть монитор с протоколом SIP: он отправляет OPTIONS или REGISTER по UDP или TCP (при необходимости — поверх TLS) и сверяет код ответа. Поля монитора описаны в разделе о мониторах.