Принципы организации IP-телефонии на базе решений Cisco Systems

       

Взаимодействие агентов и шлюзов


Процесс взаимодействия телефонного агента со шлюзами для обеспечения телефонного вызова можно описать следующей последовательностью действий (Рис. 11):

Рис. 11. Взаимодействие шлюзов с агентом

  1. Агент направляет сообщение RQNT (Request Notification) каждому шлюзу. Этот запрос дает инструкцию шлюзам ждать события off-hook (когда снимается телефонная трубка) и дать гудок, когда такое событие произойдет. Агент также сообщает о необходимости мониторинга других событий. Предоставляя цифровую карту в запросе, агент позволяет шлюзам собрать цифры перед тем как информировать о событии агента (иначе шлюз не будет "знать", когда набор номера завершается, будет вынужден посылать агенту все цифры набора по одной).
  2. Шлюз отвечает на запрос. С этого момента агент и шлюзы ждут событий.
  3. Пользователь на шлюзе А поднял трубку. Следуя инструкции, шлюз дает телефонный гудок. Так как у шлюза есть карта номеров, он начинает собирать набираемые цифры, пока не будет получено соответствие (или пока набранные цифры не покажут, что соответствие невозможно).
  4. Шлюз А посылает оповещение (NTFY) агенту, сообщая ему, что требуемое событие произошло. Оповещение включает в себя конечную точку, событие и набранные цифры.
  5. После подтверждения возможности звонка агент инструктирует шлюз А создать соединение (CRCX) с его конечной точкой.
  6. Шлюз отвечает дескриптором сессии. Дескриптор определяет, как минимум, IP-адрес и UDP-порт для последующей RTP-сессии. Шлюз не имеет дескриптора сессии удаленной стороны, и соединение переходит в режим ожидания.
  7. Агент отправляет запрос на соединение шлюзу В. В запросе агент предоставляет дескриптор сессии, который он получил от шлюза А. Агент также посылает инструкции о том, какие в данный момент события важны и какие сигналы шлюзу генерировать. В данном случае таким событием является off-hook, сигналом — звонок.
  8. Шлюз В отвечает на запрос и сообщает свой дескриптор сессии.
  9. Агент передает дескриптор сессии шлюзу А в запросе MDCX (Modify Connection). Теперь шлюзы могут установить RTP-сессии для передачи голоса.
  10. В конце вызова одна из конечных точек распознает переход в состояние on-hook (трубка повешена). Допустим, это случилось на шлюзе А. Так как агент проинструктировал сообщить о таком событии, шлюз А посылает агенту уведомление.
  11. Агент рассылает сообщение DLCX (Delete Connection) каждому шлюзу.
  12. Шлюзы удаляют соединения и отвечают.



Содержание раздела