ЛОГИКА/ОТЛАДОЧНАЯ ИНФОРМАЦИЯ
Сервер SIPMarket является сервером-свитчем. Это означает, что сервер
обеспечивает взаимодействие клиентского вызывающего SIP-оборудования и
принимающей стороны, которой может являться принимающий SIP-клиент или
терминирующий шлюз, который в свою очередь обеспечивает коммутацию с мобильным,
стационарными или другим телефонами. Таким образом, все отладочная информация -
это информация принимаемая от SIP-клиента на сервер sipmarket.net и отправялемая
SIP-клиенту сервером.
После входа в личный кабиент системы SIPMarket в меню доступна Отладочная
информация, представялющая собой SIP-логи взаимодействия клиентского
SIP-оборудования и proxy-сервера sipmarket.net.
Все SIP-логи представляют собой текстовые файлы, просмотреть каждый из которых можно кликнув на имя лога,
например 14.11.2011 15:24:14-1982-Out-REGISTER-c2cb0045-1406-1910-89c7-c54985c39102-111111-111111.log.
Имена могут отличаться в зависимости от того, что содержится в логе. В случае
лога исходящего звонка в имени лога содержится фраза -Out-, входящего -In-, регистрации -REGISTER-.
Лог-файл представляет собой содержимое пакетов обмена между SIP-клиентом и
сервером. Пакеты делятся в свою очередь на входящие и исходящие. Входящие пакеты имеют в заголовке ключевое
слов Recieve, исходящие - Send. Данные определения всегда
рассматриваются со стороны сервера sipmarket.net, т.е. в случае Recieve - пакет
получен НА СЕРВЕР, в случае Send - пакет отправен ОТ СЕРВЕРА.
Принимаемые и передаваемые пакеты создают цепочку обмена СИГНАЛЬНОЙ ИНФОРМАЦИЕЙ (SIP-СИГНАЛИЗАЦИЯ), определяющую
проводимую операцию, например телефонный вызов. Это означает, что в зависимости от содержимого приходящего пакета зависит
содержимое исходящего пакета и ответ в нем. Сами пакеты содержат КОМАНДЫ или ОТВЕТЫ на команды, определяющие назначение пакета, например INVITE или 200OK.
В каждой команде или ответе имеются различные параметры - авторизация звонящего, кодеки,
работа за НАТом и проксирование, различные информационные параметры, DTMF и пр.
Пример пакета с командой INVITE с параметрами:
14.02.2011 11:21:23-Receive from-95.211.216.165:34587
INVITE sip:888888@sipmarket.net SIP/2.0
Via: SIP/2.0/UDP 192.168.1.5:34587;rport;branch=z9hG4bK84530
Max-Forwards: 70
To: <sip:888888@sipmarket.net>
From: <sip:100000@sipmarket.net>;tag=z9hG4bK71515594
Call-ID: 615570798693@192.168.1.5
CSeq: 1 INVITE
Contact: <sip:100000@192.168.1.5:34587;transport=udp>
Expires: 3600
User-Agent: Sipdroid/2.4 beta/HTC Desire
Content-Length: 284
Content-Type: application/sdp
Общие схемы обмена представлены ниже.
Пункт меню Отладочная информация содержит SIP-логи с делением на три группы: Регистрации, Вызовы, Все. На
сервере хранятся логи за 5 последних дней.
Регистрации
В разделе отображаются логи регистрации SIP-оборудования. В имени лога всегда
присутсвует ключевое слов REGISTER. В общем случае логика
регистрации выглядит следующим образом:
Recieve REGISTER
Send UNAUTHORIZED
Recieved REGISTRED with AUTHORIZATION
DATA
Send OK
В случае перерегистрации авторизация сервером не запрашивается. В случае ошибки вместо
200OK передается информация об ошибке. В любом случае любое финальное
действие должен быть подтвержден либо SIP-клиентом, либо сервером.
Вызовы
В разделе отображаются логи входящих и исходящих вызовов. В имени лога
входящего вызова всегда содержатся ключевые слова In и INVITE, в
имени исходящего вызова - ключевые слова Out и INVITE. В общем случае логика
исходящего звонка выглядит следующим образом:
Recieve INVITE
Send UNAUTHORIZED
Recieved INVITE with AUTHORIZATION DATA
Send TRYING
Send SESSION PROGRESS
Send RINGING
Send 200OK
Recieved
ACK
Recieved(Send) BYE
Send(Recieved) 200OK
В случае входящего звонка ключевые слова Recieved и Send меняются местами,
авторизация на стороне SIP-клиента отсутствует.
В случае авторизации при
исходящем вызове по IP авторизация отсутствует.
В случае занятости вызываемого
номера вместо 200OK передается BUSY с ответом 200OK.
В случае отбоя до
соединения передается CANCEL с ответом 200OK.
В любом случае любое финальное
действие (соединение, окончание звонка, отказ от звонка) должен быть подтвержден
либо SIP-клиентом, либо сервером.
Ответ ACK передается только на 200OK с соединением или на ошибку
В случае вызовов на SIP-номера авторизация принимающей
стороной не запрашивается (бесплатыне звонки). Ответы Session Progress или Ringing
не всегда имеют место - это зависит от политики терминирующего шлюза.