SIP - базовый поток вызовов
На следующем изображении показан основной поток вызовов сеанса SIP.
Ниже приведено пошаговое объяснение вышеуказанного потока вызовов.
Запрос INVITE, который отправляется на прокси-сервер, отвечает за инициирование сеанса.
Прокси-сервер сенда 100 Trying немедленный ответ вызывающей стороне (Алисе), чтобы остановить повторную передачу запроса INVITE.
Прокси-сервер ищет адрес Боба на сервере местоположения. После получения адреса он пересылает запрос INVITE дальше.
После этого 180 Ringing (Предварительные ответы), сгенерированные Бобом, возвращаются Алисе.
А 200 OK ответ генерируется вскоре после того, как Боб снимает трубку.
Боб получает ACK от Алисы, как только он получит 200 OK.
В то же время устанавливается сеанс, и пакеты (разговоры) RTP начинают поступать с обоих концов.
После разговора любой участник (Алиса или Боб) может отправить BYE запрос на прекращение сеанса.
BYE достигает напрямую от Алисы к Бобу, минуя прокси-сервер.
Наконец, Боб отправляет 200 OK ответ для подтверждения BYE, и сеанс завершается.
В приведенном выше базовом потоке вызовов три transactions (отмечены цифрами 1, 2, 3) доступны.
Полный вызов (от ПРИГЛАШЕНИЯ до 200 ОК) известен как Dialog.
SIP Трапеция
Как прокси помогает связать одного пользователя с другим? Давайте выясним с помощью следующей диаграммы.
Топология, показанная на схеме, известна как трапеция SIP. Процесс происходит следующим образом -
Когда вызывающий абонент инициирует вызов, на прокси-сервер отправляется сообщение INVITE. После получения INVITE прокси-сервер пытается разрешить адрес вызываемого с помощью DNS-сервера.
После получения следующего маршрута прокси-сервер вызывающего абонента (прокси-сервер 1, также известный как исходящий прокси-сервер) пересылает запрос INVITE на прокси-сервер вызываемого абонента, который действует как входящий прокси-сервер (прокси 2) для вызываемого.
Входящий прокси-сервер связывается с сервером местоположения, чтобы получить информацию об адресе вызываемого абонента, на котором зарегистрировался пользователь.
Получив информацию от сервера местоположения, он переадресует вызов месту назначения.
Как только пользовательские агенты узнают свой адрес, они могут обойти вызов, т. Е. Разговоры проходят напрямую.