BroadNet
SS7 / MAPТранзакции

TCAP: транзакции, диалоги и компоненты

Обновлено 3 мин чтенияна основе стандартов
Прямой ответ

TCAP (Transaction Capabilities Application Part, ITU-T Q.771–Q.775) переносит операции, не связанные с цепями, такие как MAP, поверх SCCP. У него два подуровня: подуровень транзакций коррелирует диалог между двумя узлами сообщениями Begin/Continue/End/Abort и идентификаторами транзакций, а подуровень компонентов переносит отдельные операции как компоненты Invoke, ReturnResult, ReturnError и Reject.

§01

Подуровень транзакций

Подуровень транзакций управляет сквозным диалогом между двумя узлами TCAP. Каждая сторона выделяет идентификатор транзакции (Originating и Destination Transaction ID), чтобы несколько одновременных диалогов по одному пути SCCP оставались различимыми. Диалог открывается, продолжается и закрывается четырьмя типами сообщений. Обмен из одной операции можно даже сжать в одну пару Begin+End, когда дальнейшее взаимодействие не требуется.

Типы транзакций (сообщений) TCAP
СообщениеНазначение
TC-BEGINОткрыть диалог; содержит Originating Transaction ID
TC-CONTINUEПродолжение открытого диалога в любом направлении (присутствуют оба TID)
TC-ENDЗакрыть диалог, при необходимости передав последний компонент
TC-ABORTАварийное завершение (прерывание пользователем или поставщиком услуг)
TC-UNIОднонаправленный — структурированный диалог не требуется
§02

Часть диалога и application context

Опциональная часть диалога согласует application context — идентификатор объекта, именующий приложение и версию, на которых будут говорить обе стороны, например MAP shortMsgGatewayContext для маршрутизации SMS или конкретную версию MAP для UpdateLocation. Она также несёт пользовательскую информацию и, при ABORT, причину прерывания. Согласование application context — это то, как получатель узнаёт, какие операции и параметры MAP ожидать в диалоге.

§03

Подуровень компонентов

Подуровень компонентов переносит собственно операции. Компонент Invoke запрашивает операцию, идентифицируемую Invoke ID и кодом операции (opcode MAP), с аргументами операции. Узел отвечает ReturnResult (Last или Not Last, для сегментированных результатов), ReturnError (прикладная ошибка, такая как absentSubscriber) или Reject (проблема протокольного уровня, такая как нераспознанная операция). Несколько компонентов могут идти в одном сообщении транзакции, а Invoke ID связывает каждый ответ с его запросом — во многом как sequence_number в SMPP.

Типы компонентов TCAP
КомпонентЗначение
InvokeЗапросить операцию (Invoke ID + код операции + аргументы)
ReturnResult (Last)Окончательный успешный результат выполненной операции
ReturnResult (Not Last)Нефинальный сегмент большого результата
ReturnErrorОперация завершилась с ошибкой приложения (код ошибки + параметр)
RejectПроблема протокола — некорректно сформированный, неожиданный или нераспознанный компонент
§04

Диалог MAP поверх TCAP

Типичный запрос MAP — это один диалог TCAP. Инициатор отправляет TC-BEGIN, несущий Invoke для операции MAP; отвечающая сторона отвечает TC-END, несущим ReturnResult (или ReturnError). Более длинные разговоры — где стороны обмениваются несколькими операциями — используют TC-CONTINUE между ними. Идентификаторы транзакций и Invoke ID вместе позволяют загруженному узлу держать в порядке тысячи диалогов и их ожидающих операций.

SendRoutingInfoForSM как диалог TCAPtext
SMSC → HLR   TC-BEGIN  OTID=0x1A2B
               Invoke  invokeID=1  opCode=sendRoutingInfoForSM(45)
                        {msisdn, sm-RP-PRI, serviceCentreAddress}
HLR → SMSC   TC-END    DTID=0x1A2B
               ReturnResultLast invokeID=1
                        {imsi, locationInfoWithLMSI: MSC address}
Часто задаваемые вопросы

Часто задаваемые вопросы

В чём разница между подуровнями транзакций и компонентов?

Подуровень транзакций управляет диалогом в целом — открывает, продолжает и закрывает его с помощью Begin/Continue/End/Abort и идентификаторов транзакций. Подуровень компонентов переносит отдельные операции внутри этого диалога как компоненты Invoke, ReturnResult, ReturnError и Reject.

Что такое Invoke ID в TCAP?

Invoke ID — это небольшой идентификатор, который инициатор присваивает каждому компоненту Invoke, чтобы соответствующий ReturnResult или ReturnError можно было сопоставить с запросом. Он ограничивает область ответов одним диалогом, подобно идентификатору корреляции запрос/ответ.

Что такое application context в TCAP?

Application context — это идентификатор объекта в части диалога, именующий, какое приложение и версию используют обе стороны — например, конкретный контекст MAP для маршрутизации SMS. Он сообщает получателю, какие операции и форматы параметров ожидать в диалоге.

В чём разница между ReturnError и Reject?

ReturnError сообщает о сбое на прикладном уровне понятой операции — например, MAP absentSubscriber. Reject сообщает о проблеме протокольного уровня, такой как нераспознанный код операции или плохо структурированный компонент, и генерируется самим TCAP, а не приложением.

Может ли одно сообщение TCAP нести несколько операций?

Да. Одно сообщение транзакции может нести несколько компонентов, поэтому узел может объединить несколько Invoke или вернуть несколько результатов в одном Begin/Continue/End. Каждый различается по Invoke ID, а результаты могут быть сегментированы с ReturnResult Not Last.

Ссылки

Технические характеристики источника

На этой странице представлены опубликованные стандарты, на которых они основаны. (Открывается в новой вкладке)

BNПоддерживается инженерной командой BroadNet·Обмен сообщениями операторского класса с 2003 года.
Прикрепите это к проводу

Разработано с использованием реального SMPP подключения и REST API.

Запросите тестовый доступ с реальными тестовыми ключами: сначала отправьте их на свой подтвержденный номер, а затем, после утверждения вашей личности отправителя и маршрутов, переходите к использованию в производственной среде более чем в 200 странах.