トランザクション機能アプリケーション部(TCAP )は、電話ネットワークで使用されるシステムで、ネットワークの異なる部分が直接通話することなく相互に通信できるようにします。アカウント情報の確認、モバイルローミングの有効化、高度なワイヤレスサービスの実行などの処理に役立ちます。[ 1 ]
これは、 ITU-T勧告Q.771~Q.775またはANSI T1.114において、シグナリングシステム7ネットワーク用のプロトコルとして定義されています。その主な目的は、 TCPポートがインターネット上で同じIPアドレス間の接続を多重化するのと同様に、トランザクションIDを使用して、同じマシン上の同じサブシステム間で複数の同時対話を容易にすることです。
TCAPは、 ASN.1 BERエンコーディングを使用するほか、それがカプセル化するプロトコル、すなわち携帯電話ネットワークのMAPやインテリジェントネットワークのINAPも使用します。
TCAPメッセージはマシン間でネットワークを介して送信されます。TCAPプリミティブはアプリケーションとローカルTCAPスタック間で送信されます。すべてのTCAPメッセージはプリミティブですが、メッセージではないプリミティブも存在します。つまり、ローカルマシン内部でのみ転送されるプリミティブもあります。TCAPプリミティブは1つ以上のTCAPコンポーネントで構成されます。
ITU-T TCAPプリミティブは、以下のいずれかのタイプである可能性がある[ 2 ]:
Beginプリミティブには、Originating Transaction ID(最大4バイト)があります。Continueプリミティブには、Originating Transaction IDとDestination Transaction IDがあります。EndおよびAbortプリミティブには、Destination Transaction IDのみがあります。各プリミティブには、オプションのコンポーネント部分と(オプションの)ダイアログ部分があります。単方向プリミティブのコンポーネント部分は必須です。
ダイアログ部分は、ダイアログまたは単一ダイアログ制御PDUを伝送します。MAPおよびINAPでは、プリミティブで提供されるアプリケーションコンテキストのダイアログの確立と解放を実行するダイアログPDUが使用されます。ダイアログPDUには、以下のプリミティブが定義されています。
ITU-T TCAPの各構成要素は、以下のいずれかのタイプに分類されます。
呼び出しコンポーネントには、符号付き7ビットのInvokeIDがあり、これは他のすべてのコンポーネントに存在し、どの呼び出しに関連付けられているかを識別するために使用されます。
TCAPは、OSIで定義されているROSE(リモートオペレーションサービス要素)プロトコルに基づいています。
トランザクションIDは、単一のダイアログ内で実行される一連のTCAP操作に対するTCAP参照です。マシンAが別のマシンBとのTCAPダイアログを開始すると、AはBにBeginメッセージを送信します。このBeginメッセージには、 AのトランザクションID参照であるOriginating Transaction IDが含まれています。マシンBがContinueメッセージでAに応答する際、AのトランザクションIDをDestination Transaction IDとして含めます。さらに、Bは自身のトランザクションIDをOriginating Transaction IDとして含めます。
TCAPダイアログが進行するにつれて、各Continueメッセージには、宛先マシンのトランザクションIDがDestination Transaction IDとして、送信元マシンのトランザクションIDがOriginating Transaction IDとして含まれます。いずれかのマシンがダイアログを閉じようとすると、相手のマシンにEndメッセージまたはAbortメッセージを送信します。このメッセージには、宛先トランザクションIDのみが含まれます。
呼び出しIDは、特定のTCAP操作に対するTCAP参照であり、ダイアログ内で一意である必要があります。
これはMAPレイヤーによって送信されたMO-SMSであり、16進数ストリームはTCAPレイヤーから取得されたものです。
62 74 48 04 00 02 00 30 6B 1A 28 18 06 07 00 11 86 05 01 01 01 A0 0D 60 0B A1 09 06 07 04 00 00 01 00 19 02 6C 50 A1 4E 02 01 01 02 01 2E 30 46 80 05 70 31 42 44 44 84 06 A1 70 91 92 55 55 04 35 2F 09 00 70 97 92 62 23 04 00 90 20 11 80 01 24 00 27 43 50 7A 0E A2 A3 CB 20 71 79 4E 07 B1 C3 EE 73 3D 7C 2E 83 D2 20 74 D8 5E 06 95 ED 65 39 68 5E 2E BB 01 00
タグの長さの値に基づいて、以下のようにデコードできます。
'--> 62|74 <- Tcap開始メッセージの開始 | '--> 48|04:00 02 00 30 <- トランザクションID | '--> 6B|1A <- ダイアログ部分の開始 | '--> 28|18 | '--> 06|07:00 11 86 05 01 01 01 | '--> A0|0D | '--> 60|0B | '--> A1|09 | '--> 06|07:04 00 00 01 00 19 02 <- アプリケーションコンテキスト | '--> 6C|50 <- コンポーネント部分の開始 | '--> A1|4E | '--> 02|01:01 <- コンポーネント ID (呼び出し ID) | '--> 02|01:2E <- 操作コード | '--> 30|46 <- パラメータバッファの開始 | '--> 80|05:70 31 42 44 44 <- SM-RP-DA(BCD) | '--> 84|06:A1 70 91 92 55 55 <- SM-RP-OA(BCD) | '--> 04|35:2F 09 00 70 97 92 62 23 04 00 90 20 11 80 01 24 00 27 43 50 7A 0E A2 A3 CB 20 71 79 4E 07 B1 C3 EE 73 3D 7C 2E 83 D2 20 74 D8 5E 06 95 ED 65 39 68 5E 2E BB 01 <- SM-RP-UI