Конечный автомат клиентской He-INVITE-транзакции |
|
Конечный автомат (машина состояний) клиентской He-INVITE-транзакции показан на рис. 4.3. Состояние «Trying» наступает, когда TU передачей запроса инициирует создание клиентской транзакции. В тот же момент запускается тай¬мер F со значением 64 Т1. Запрос должен быть передан на транспортный уровень SIP для передачи по сети. При использовании ненадежного транспортного протокола запускается таймер Е на время Т1. Если этот таймер срабатывает, когда транзакция еще не перешла в другое состояние, устанавливается новая величина таймера, равная MIN (2 Т1, Т2). После очередного срабатывания значение таймера становится MIN (4Т1, Т2). Этот процесс продолжается так, что повторения передачи происходят с экспоненциально увеличивающимся интервалом времени; возрастание интер¬вала прекращается при достижении им величины Т2. Значение Т2 по умолчанию -4 секунды. В течение этого времени серверная He-INVITE-транзакция может фор¬мировать ответ на запрос, если ответ не был передан немедленно. Для значений Т1 иТ2 по умолчанию это выражается следующим образом: 500 мс, 1 с, 2 с, 4 с, 4 с, 4 с и т.д. В случае срабатывания таймера F клиентская транзакция должна информи¬ровать TU об истечении времени ожидания и перейти в состояние «Terminated». При получении предварительного ответа в состоянии «Trying», он передается TU, а затем клиентская транзакция переходит в состояние «Proceeding». При получе¬нии окончательного ответа (ответы 200-699) в состоянии «Trying», он также пе¬редается TU, а клиентская транзакция переходит в состояние «Completed». Когда в состоянии «Proceeding» срабатывает таймер Е, запрос поступает на транспорт¬ный уровень SIP, а таймер принимает значение Т2. В случае срабатывания в состо¬янии «Proceeding» таймера F клиентская транзакция должна информировать TU об истечении времени ожидания и перейти в состояние «Terminated». При получении окончательного ответа (ответы 200-699) в состоянии «Proceeding», он также передается TU, и клиентская транзакция переходит в состо¬яние «Completed». При переходе клиентской транзакции в состояние «Completed», запускается таймер К со значением Т4 при использовании ненадежного транс¬портного протокола и со значением 0 - при использовании надежного. Состояние «Completed» предназначено для буферизации дополнительных повторных отве¬тов, которые могут придти, а потому оно используется только при ненадежном транспортном протоколе. Т4 представляет интервал времени, необходимый сети для завершения передачи сообщений между клиентской и серверной транзакци¬ями. Значение Т4 по умолчанию - 5 секунд. Ответ будет считаться повторно пе¬реданным, если он относится к той же транзакции. Когда срабатывает таймер К, клиентская транзакция переходит в состояние «Terminated». Как только клиентская транзакция оказывается в этом состоянии, она тут же разрушается. |

