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.
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.
| Mensagem | Finalidade |
|---|---|
| TC-BEGIN | Abre um diálogo; carrega o Originating Transaction ID |
| TC-CONTINUE | Mantenha um diálogo aberto em ambas as direções (ambos os TIDs presentes) |
| TC-END | Encerra o diálogo, opcionalmente levando o componente final |
| TC-ABORT | Encerramento anormal (abort do utilizador ou abort do fornecedor) |
| TC-UNI | Unidirecional — não é necessário um diálogo estruturado |
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.
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.
| Componente | Significado |
|---|---|
| Invoke | Solicitar 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 |
| ReturnError | A operação falhou devido a um erro de aplicação (código de erro + parâmetro) |
| Reject | Problema de protocolo — componente malformado, inesperado ou não reconhecido |
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.
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
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.
Especificações de origem
Os padrões publicados nos quais esta página se baseia. Abre num novo separador.