BroadNet
SS7 / MAPTransações

TCAP: transações, diálogos e componentes

Atualizado em 3 min de leituraBaseado em padrões
Resposta direta

O TCAP (Transaction Capabilities Application Part, ITU-T Q.771–Q.775) transporta operações sem circuito como o MAP sobre SCCP. Tem duas subcamadas: a subcamada de transação correlaciona um diálogo entre dois nós com mensagens Begin/Continue/End/Abort e transaction IDs, e a subcamada de componentes transporta as operações individuais como componentes Invoke, ReturnResult, ReturnError e Reject.

§01

Subcamada de transação

A subcamada de transação gere o diálogo ponto a ponto entre dois pares TCAP. Cada lado aloca um transaction ID (os Originating e Destination Transaction IDs) para que vários diálogos concorrentes sobre o mesmo caminho SCCP se mantenham distintos. Um diálogo é aberto, continuado e fechado por quatro tipos de mensagem. Uma troca de operação única pode até ser comprimida num par Begin+End quando não é necessária mais interação.

Tipos de mensagem (transação) do TCAP
MensagemFinalidade
TC-BEGINAbre um diálogo; carrega o Originating Transaction ID
TC-CONTINUEMantenha um diálogo aberto em ambas as direções (ambos os TIDs presentes)
TC-ENDEncerra o diálogo, opcionalmente levando o componente final
TC-ABORTEncerramento anormal (abort do utilizador ou abort do fornecedor)
TC-UNIUnidirecional — não é necessário um diálogo estruturado
§02

Parte de diálogo e application context

Uma parte de diálogo opcional negoceia o application context — um identificador de objeto que nomeia a aplicação e a versão que ambos os pares vão falar, por exemplo o MAP shortMsgGatewayContext para encaminhamento de SMS ou uma versão específica do MAP para UpdateLocation. Transporta também informação de utilizador e, no ABORT, o motivo de aborto. Acordar o application context é como um recetor sabe que operações e parâmetros MAP esperar dentro do diálogo.

§03

Subcamada de componentes

A subcamada de componentes transporta as operações efetivas. Um componente Invoke pede uma operação, identificada por um Invoke ID e um código de operação (o opcode MAP), com os argumentos da operação. O par responde com ReturnResult (Last ou Not Last, para resultados segmentados), ReturnError (um erro aplicacional como absentSubscriber) ou Reject (um problema ao nível do protocolo como uma operação não reconhecida). Vários componentes podem viajar numa única mensagem de transação, e o Invoke ID liga cada resposta ao seu pedido — muito como o sequence_number do SMPP.

Tipos de componente do TCAP
ComponenteSignificado
InvokeSolicitar uma operação (Invoke ID + código da operação + argumentos)
ReturnResult (Last)Resultado final bem-sucedido de uma operação invocada
ReturnResult (Not Last)Um segmento não final de um resultado grande
ReturnErrorA operação falhou devido a um erro de aplicação (código de erro + parâmetro)
RejectProblema de protocolo — componente malformado, inesperado ou não reconhecido
§04

Um diálogo MAP sobre TCAP

Uma consulta MAP típica é um diálogo TCAP. O iniciador envia TC-BEGIN transportando um Invoke para a operação MAP; o respondente responde TC-END transportando um ReturnResult (ou ReturnError). Conversas mais longas — em que os dois lados trocam várias operações — usam TC-CONTINUE entre elas. Os transaction IDs e os Invoke IDs em conjunto permitem a um nó ocupado manter em ordem milhares de diálogos e as suas operações pendentes.

SendRoutingInfoForSM como um diálogo 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}
Perguntas frequentes

Perguntas frequentes

Qual é a diferença entre as subcamadas de transação e de componentes?

A subcamada de transação gere o diálogo como um todo — abrindo-o, continuando-o e fechando-o com Begin/Continue/End/Abort e transaction IDs. A subcamada de componentes transporta as operações individuais dentro desse diálogo como componentes Invoke, ReturnResult, ReturnError e Reject.

O que é um Invoke ID no TCAP?

O Invoke ID é um pequeno identificador que o iniciador atribui a cada componente Invoke para que o ReturnResult ou ReturnError correspondente possa ser associado ao pedido. Delimita as respostas dentro de um único diálogo, à semelhança de um id de correlação de pedido/resposta.

O que é um application context do TCAP?

O application context é um identificador de objeto na parte de diálogo que nomeia qual a aplicação e versão que ambos os pares usam — por exemplo um context MAP específico para encaminhamento de SMS. Indica ao recetor que operações e formatos de parâmetro esperar no diálogo.

Qual é a diferença entre ReturnError e Reject?

O ReturnError reporta uma falha ao nível aplicacional de uma operação que foi compreendida — por exemplo o MAP absentSubscriber. O Reject reporta um problema ao nível do protocolo, como um código de operação não reconhecido ou um componente mal estruturado, e é gerado pelo próprio TCAP em vez da aplicação.

Uma mensagem TCAP pode transportar várias operações?

Sim. Uma única mensagem de transação pode transportar vários componentes, pelo que um nó pode agrupar vários Invokes ou devolver vários resultados num só Begin/Continue/End. Cada um é distinguido pelo seu Invoke ID, e os resultados podem ser segmentados com ReturnResult Not Last.

Referências

Especificações de origem

Os padrões publicados nos quais esta página se baseia. Abre num novo separador.

BNMantido pela equipa de engenharia BroadNet·Mensagens de nível de operadora desde 2003
Coloque-o no fio.

Construa com uma vinculação SMPP real e uma API REST.

Solicite acesso de teste com chaves de teste reais: envie primeiro para o seu próprio número verificado e, em seguida, passe para o ambiente de produção em mais de 200 países assim que a sua identidade de remetente e rotas forem aprovadas.