Процедуры UAS. Обработка запроса INVITE |
|
Ядро UAS получает запросы INVITE от уровня транзакций. Вначале выполняются общие процедуры обработки для UAS (как для запросов INVITE вне диалога, так и для запросов INVITE в режиме диалога). Допуская, что эти процедуры обработки выполняются без создания ответа, ядро UAC выполняет дополнительные шаги обработки:
Запрос INVITE может содержать описание сеанса, в этом случае UAS посредством offer приглашается к участию в сеансе связи. Возможно, что пользователь уже является участником данного сеанса, несмотря на то, что INVITE передается вне диалога. Это может произойти, когда пользователь приглашается к одной и той же multicast-конференции разными ее участниками. При желании UAS может использовать идентификаторы внутри описания сеанса, чтобы обнаружить такое дублирование. Например, SDP-описание включает в себя идентификатор сеанса (session id) и порядковый номер SDP-описания, указанный в поле origin, - так называемый номер версии. В случае, когда пользователь уже является участником сеанса, и параметры сеанса, содержащиеся в SDP-описании запроса INVITE, те же, UAS принимает INVITE, не информируя об этом пользователя, и передает ответ класса 2хх. Если запрос INVITE не содержит описания сеанса, это значит, что UAC обращается к UAS с просьбой принять участие в сеансе и передать информацию offer. UAS должен предоставить offer в своем первом надежном ответе, не информирующем об ошибке (ответ класса 2хх). UAS может информировать о текущей стадии обработки, принятии, перенаправлении или отклонении информации offer. Во всех этих случаях он формирует ответ в соответствии с процедурами для создания ответов вне диалога. |

