Session Initiation Protocol (SIP) - один из наиболее важных и самых распространенных сигнальных протоколов. SIP поддерживает наибольшее количество вендоров. SIP продолжает распространяться и уже сейчас является идеальным протоколом для подключения различных систем VoIP.
Именно поэтому на обсуждение этого замечательного протокола мы выделим несколько статей
Хотя цикл статей SIP и Call Manager заостряет внимание по работе SIP и CUCM (CUCME), данный материал применим и к другим системам, использующим SIP.
SIP был разработан как альтернатива для H.323, в отличие от которого SIP стал намного проще. SIP базируется на интуитивно понятной логике World Wide Web, его очень просто внедрять. SIP гораздо проще дебагить, поскольку все его внутренние команды производятся прямым текстом.
SIP работает на базе так называемых session invitations которые базируются на модели session invitation/responce. Т.е. одна сторона производит запрос на использование определенной функции или метода, а другая сторона подтверждает либо отклоняет.
Как и H.323 SIP является протоколом типа peer-to-peer.
В этой структуре существует понятие User Agent или клиент(например телефон), который может инициировать сессию (звонок).
Для того чтобы UA могли находить друг друга, SIP позволяет создать инфраструктуру обслуживающих серверов - Proxy Servers.
UA осуществляет множеcтво действий через Proxy Server: registrations, invitations to sessions и т.д.
Как было отмечено ранее, клиенты или участники сессии называются User Agents (UA).
UA может выступать в виде двух ролей:
- User Agent Client (UAC): Клиентское приложение инициирующее запрос SIP.
- User Agent Server (UAS): Серверное приложение которое получает SIP invitation и возвращает отправителю response от имени пользователя.
Один и тот же UA может работать и как UAC, и как UAS, это зависит от того кто инициировал request.
UAC инициирует запрос, а UAS принимает этот запрос.
С точки зрения архитектуры компоненты сети SIP можно разделить на две категории:
Существует несколько видов SIP серверов:
На первом рисунке приведены компоненты SIP и их взаимодействия.
Обратите внимание, что SIP - это сигнальный протокол. Сам по себе поток RTP (телефонный разговор) не идет непосредственно через сервера SIP.
Безусловно сервер SIP может в себе совмещать и к примеру шлюз, но сессии SIP и RTP все равно будут подниматься отдельно.
На следующем рисунке изображены примеры подключений в архитектуре SIP.
\
На рисунке схематично изображен звонок SIP непосредственно от клиента UAC на сервер UAS.
Это самый простой случай, когда SIP клиент и SIP сервер общаются без посредников. Такое возможно если архитектура сети это может позволить. В сложных сетях для связи клиента с сервером необходимо участие SIP сервера-посредника.
Наличие в сети Proxy Server прозрачно для клиента. Благодаря Proxy Server становится возможным централизованный контроль и управление процессом Call Setup. UAC теперь не должен как-то узнавать координаты UAS. Еще раз обратим внимание: Proxy Server участвует лишь в сигнализациии для Call Setup. Сессия RTP устанавливается между UAC и UAS.