Подсистема TCAP. Общие положения. Прикладная система возможности транзакций, страница 2

При структурированном диалоге используются возможности TC для формирования однозначного соответствия между всеми сообщениями, относящимися к данному диалогу. Для этого используются идентификатор диалога "DialogID". Структурированный диалог подразумевает процедуру открытия диалога, продолжения и закрытия. При этом для контроля порядка передачи сообщений используются либо возможности сетевого уровня (выбор соответствующего класса сервиса), либо механизмы протоколов верхнего уровня.

При структурированном диалоге пользователь TC при посылке компонентов использует один из четырех возможных типов:

  • запрос открытия диалога;
  • подтверждение открытия диалога;
  • продолжение;
  • завершение диалога.

Запрос открытия диалога

Для запроса открытия диалога используется примитив TC-BEGIN-request. Посылка данного примитива TC-пользователем к подсистеме TCAP преследует две задачи:

  • запрос подуровня компонентов открыть диалог, идентифицируемый уникальным идентификатором "DialogID";
  • запрос подуровня компонентов передать подуровню транзакций все ранее полученные компоненты с идентичным идентификатором "DialogID"

В данном примитиве TC-пользователь может передать ACN и UI.

Подтверждение открытия диалога

Для подтверждения открытия диалога при получении запроса TC-BEGIN-indication используется примитив TC-CONTINUE-request. Посылка данного примитива TC-пользователем к подсистеме TCAP преследует две задачи:

  • подтверждение, что диалог может быть продолжен;
  • запрос подуровня компонентов передать подуровню транзакций все ранее полученные компоненты с идентичным идентификатором "DialogID"

В случае, если примитив TC-BEGIN-indication содержал ACN, то первый примитив TC-CONTINUE-request также должен содержать ACN, который идентичен полученному.

При подтверждении открытия диалога TC-пользователь может указать Originating Address. Причем этот Originating Address остается неизменным на протяжении всего диалога.

Продолжение диалога

Для продолжения диалога используется примитивы TC-CONTINUE. В продолжении диалога могут принимать участие обе стороны – исходящая и входящая. Примитивы TC-CONTINUE, за исключением первого, используемого для подтверждения открытия диалога, не могут содержать ACN.

Завершение диалога

Существуют три способа завершения диалога:

  • предопределенное закрытие диалога;
  • базовое закрытие диалога;
  • abort диалога TC-пользователем.

Предопределенное закрытие диалога используется тогда, когда данный тип закрытия подразумевается TC-пользователями для данного приложения. В этом случае примитив TC-END-request имеет локальное значение и не инициирует передачу соответствующего сообщения через сеть. Примитив TC-END-indication не используется.

При базовом закрытии диалога TC-пользователь также использует примитив TC-END-request. Однако в этом случае инициируется передача подуровню транзакций ранее полученных компонентов. После получения примитива TC-END-request, подуровень компонентов игнорирует любые компоненты с данным DialogID в любом направлении. Для указания типа закрытия диалога в TC-пользователь передает в примитиве TC-END-request соответствующий параметр "Termination".

Abort диалога TC-пользователем приводит к немедленному закрытию диалога, причем все ранее полученные компоненты отбрасываются. Для прерывания диалога используется примитив TC-U-ABORT-request. Типичным примером прерывания диалога может служить abort по причине "Application context name not supported" с возможным указанием предпочтительного для использования в данном приложении ACN.

Примитивы обработки компонентов