В процессе обслуживания вызова участвуют все компоненты системы. Основными компонентами являются 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 - Неуспешный вызов по причине того, что интерфейс абонента Б не активен