Процедуры UAC. Обработка ответов на запрос INVITE |
|
Как только UAC передает запрос INVITE клиентской транзакции, он переходит в режим ожидания ответов на запрос. Если клиентская INVITE-транзакция вместо передачи ответа сообщает об истечении времени ожидания окончательного ответа, пользователь транзакции (TU) действует, как в случае получения ответа с кодом 408 (Request Timeout).
Ядро UAC должно создавать запрос АСК при получении каждого ответа класса 2хх. Заголовки запроса АСК формируются так же, как и заголовки любых других сообщений, передаваемых в режиме диалога, за исключением CSeq и заголовков, относящихся к процедуре аутентификации. Порядковый номер в заголовке CSeq должен совпадать с номером в первоначальном запросе INVITE, но в поле типа запроса заголовка должно быть значение АСК. Запрос АСК содержит то же значение отклика аутентификации, что и INVITE. Если ответ класса 2xx содержит offer (предложение с описанием сеанса), в соответствии с правилами, приведенными выше, в теле сообщения АСК долженнаходиться answer (ответ с описанием сеанса). Если offer в ответе 2хх не может быть принято, ядро UAC формирует answer в подтверждении АСК и затем незамедлительно передает сообщение BYE. После формирования подтверждения АСК определяются адрес места назначения, номер порта и тип транспортного протокола. Запрос направляется непосредственно на транспортный уровень SIR минуя клиентскую транзакцию. Это происходит потому, что за повторные запросы АСК отвечает не уровень транзакций, а ядро UAC. Подтверждение АСК должно направляться клиентской стороне транспортного уровня SIP каждый раз, когда приходит очередной повторно переданный ответ класса 2хх. Если после подтверждения ответа 2хх на INVITE UAC не желает продолжать текущий диалог, он должен разорвать диалог передачей сообщения BYE. |

