3.14.4 Процесс обслуживания вызовов. Внутренний протокол сигнализации
В процессе обслуживания вызова участвуют все компоненты системы. Основными компонентами являются Adapter и Core, которые непосредственно работают с сигнализацией и отслеживают фазы вызова.
Обмен сообщениями осуществляется через интеграционную шину, которую обеспечивает кластер BUS. Кластера Adapter и Core обмениваются сообщениями внутреннего протокола ACP (Adapter Core Protocol). Этот протокол является модификацией протокола DSS и основан на примитивах обмена, описанных в стандарте ITU-T Q.1238 для интеллектуальных сетей.
В протоколе ACP выделяют следующие типы сообщений:
- Setup - сообщение для установления соединения (запрос, подтверждение, ответ);
- SubsequentAddress - сообщение с информацией о дополнительных цифрах;
- AddressEnd - сообщение с информацией о завершении набора номера и набранными цифрами;
- ServiceFeature - сообщение с индикацией об активации сервисной логики;
- CallProgress - сообщение для передачи информации без смены фазы обслуживания вызова
- Release - сообщения о разъединении вызова.
Для этих сообщений применяются модификаторы, которые описывают фазу передачи сообщения.
Различают следующие модификаторы:
- Ind - индикация события;
- Req - запрос;
- Resp - ответ;
- Conf - подтверждение;
- Ack - подтверждение в приеме сообщения.
Полный набор сообщений, которые присутствуют в протоколе ACP с учетом модификаторов, имеет вид:
- SetupInd - сообщение передается, когда адаптер определил факт входящего занятия;
- SetupIndAck - сообщение передается на адаптер как подтверждение начала обработки SetupInd;
- SetupReq - сообщение передается на адаптер, когда ядро инициирует исходящее занятие;
- SetupReqAck - сообщение передается на ядро как подтверждение начала обработки SetupReq
- SetupConf - сообщение передается на ядро, когда адаптер получил индикацию об ответе (подтверждение об установлении соединения);
- SetupResp - сообщение передается на адаптер, когда ядро подтверждает установление соединения (ответ);
- SubsequentAddressInd - сообщение передается на ядро, когда адаптер получил донабор от абонента (ситуация dig-by-dig набора);
- AddressEndInd - сообщение передается, когда определено завершение набора номера;
- CallProgressInd - сообщение передается, когда адаптер информирует ядро о событии;
- CallProgressReq - сообщение передается, когда ядро отправляет на адаптер запрос на передачу сообщения;
- ServiceFeatureInd - сообщение передается на ядро, когда адаптер определил событие активации сервисной логики;
- ReleaseInd - сообщение передается на ядро, когда адаптер определил факт разъединения;
- ReleaseReq - сообщение передается на адаптер, когда ядро отправляет запрос на разъединение.
Основные параметры сигнальных сообщений:
SetupInd/Req
- CallRef - идентификатор вызова;
- CallingPartyNumber - номер вызывающего абонента (номер А);
- CalledPartyNumber - номер вызываемого абонента (номер Б);
- CallingPartysCategory - категория вызывающего абонента;
- CalledPartysCategory - категория вызываемого абонента;
- CallingPartyInfo - параметры вызывающего абонента (домен, интерфейс, информация о подключенных услугах);
- CalledPartyInfo - параметры вызываемого абонента (домен, интерфейс, информация о подключенных услугах);
- TrunkGroupId - идентификатор входящей транковой группы для вызова, пришедшего с транка;
- sdp - информация о медиапотоке.
SetupResp/Conf
- CallRef - идентификатор вызова;
- ConnectedNumber - номер вызываемого абонента, ответившего на вызов (если он отличается от изначально набранного номера);
- sdp - информация о медиапотоке.
SubsequentAddressInd
- CallRef - идентификатор вызова;
- Digits - цифры номера.
AddressEndInd
- CallRef - идентификатор вызова;
- Digits - цифры номера.
CallProgressInd/Req
- CallRef - идентификатор вызова;
- Cause - внутренний индикатор причины отправки сообщения;
- CauseInitiator - инициатор события (система, пользователь или событие обнаружено на сети);
- CauseIsup - индикатор причины в формате ISUP;
- EventInformation - описание события;
- gNotification - информационные флаги;
- sdp - информация о медиапотоке;
- TrunkGroupId - идентификатор исходящей транковой группы для исходящего вызова.
ReleaseInd/Req
- CallRef - идентификатор вызова;
- Cause - внутренний индикатор причины разъединения;
- CauseInitiator - инициатор события (система или события обнаружено на сети);
- CauseIsup - индикатор причины разъединения в формате ISUP;
- TrunkGroupId - идентификатор исходящей транковой группы для исходящего вызова.
Далее будут рассмотрены процессы обслуживания вызова на sequence-диаграммах, из которых будет виден процесс обмена сообщениями.
Рисунок 14 - Базовый вызов по протоколу SIP в режиме "enblock", упрощенный вид
Рисунок 15 - Разъединение вызова по инициативе абонента А, упрощенный вид
Рисунок 16 - Разъединение вызова по инициативе абонента Б, упрощенный вид
Рисунок 17 - Базовый вызов по протоколу H.248/Megaco в режиме "enblock", упрощенный вид
Рисунок 18 - Разъединение вызова по инициативе абонента А по протоколу H.248/Megaco, упрощенный вид
Рисунок 19 - Разъединение вызова по инициативе абонента Б по протоколу H.248/Megaco, упрощенный вид
Примеры неуспешных вызовов:
Рисунок 20 - Неуспешный вызов по причине того, что номер Б не существует
Рисунок 21 - Неуспешный вызов по причине того, что номер Б не существует
Рисунок 22 - Неуспешный вызов по причине того, что интерфейс абонента Б не активен