ショートメッセージサービスは、 SS7プロトコルのモバイルアプリケーションパート(MAP)を使用して実現され、ショートメッセージプロトコルの要素はMAPメッセージ内のフィールドとしてネットワークを介して転送されます。[ 1 ]これらのMAPメッセージは、「従来型」のTDMベースのシグナリングを使用して転送することも、 SIGTRANと適切な適応レイヤを使用してIP経由で転送することもできます。
ショートメッセージプロトコル自体は、ショートメッセージサービス - ポイントツーポイント (SMS-PP)については3GPP TS 23.040 [ 2 ]、セルブロードキャストサービス (CBS)については3GPP TS 23.041 [ 3 ]で定義されています。
ショートメッセージサービスを制御するために、4 つの MAP 手順が定義されています。[ 1 ]

右の図は、モバイル端末から送信されたショートメッセージ(SM)が正常に送信された場合の簡略化されたコールフローを示しています。[ 1 ]
加入者がショートメッセージを送信すると、ハンドセットは無線インターフェースを介してテキストメッセージをモバイル交換センター(MSC) /サービングGPRSサポートノード(SGSN)に送信します。ショートメッセージの実際のテキストに加えて、SMの宛先アドレスとショートメッセージサービスセンター(SMSC)のアドレスが含まれます。後者はSIMカードに保存されているハンドセットの設定から取得されます。[ 4 ]
無線インターフェース技術に関係なく、VMSC/SGSN は MAP サービス パッケージ MAP_MO_FORWARD_SHORT_MESSAGE を呼び出して、ハンドセットから提供されたアドレスを持つサービス センターの相互接続 MSC にテキストを送信します。このサービスは、ハンドセットからの SM 送信で識別された SMSC にmo-ForwardSM [注 1 ] MAP 操作をトランザクション機能アプリケーション パート(TCAP) メッセージに埋め込み、シグナリング接続制御パート(SCCP)を使用してコア ネットワーク経由で転送します。[ 1 ]
SMSC の相互接続 MSC は、MAP mo-ForwardSM メッセージを受信すると、テキスト メッセージを含む SMS-PP [ 2 ]アプリケーション プロトコル データ ユニット (APDU) をSMSC の実際のサービス センター (SC) に渡して保存し、その後宛先アドレスに「転送」(配信) し、SC は成功または失敗を示す確認応答を返します。サービス センターからこの送信ステータスを受信すると、相互接続 MSC は適切な指示を送信元の加入者の VMSC/SGSN に送り返します。その後、メッセージ送信ステータスは無線インターフェースを介して加入者のハンドセットに転送されます。[ 4 ] [注 2 ]

右の図は、モバイル端末で終端されるショートメッセージ配信のコールフローを示しています。[ 1 ]簡略化のため、VMSCとVLR間、およびVMSCとハンドセット間の一部のやり取りは省略されており、SMSホームルーティングが使用されていない場合のみが表示されています。
SMSC がショート メッセージを宛先に配信する必要があると判断すると、テキスト メッセージ、「B パーティ」(宛先の電話番号)およびその他の詳細を含む SMS-PP APDU を SMSC の Gateway MSC (GMSC) 論理コンポーネントに送信します。[ 2 ] GMSC は、このショート メッセージを受信すると、受信者にテキストを正しく配信できるように、B パーティの位置を検出する必要があります (この文脈では、Gateway MSC という用語は、ホーム ロケーション レジスタ (HLR)からルーティング情報を取得する MSC を示します)。これを行うために、GMSC は MAP サービス パッケージ MAP_SEND_ROUTING_INFO_FOR_SM を呼び出し、宛先番号の HLR に sendRoutingInfoForSM (SRI-for-SM) MAP メッセージを送信して、現在位置を要求します。このSRI-for-SMメッセージは、宛先加入者が属するネットワークに応じて、SMSCと同じネットワーク内のHLRに送信されるか、相互接続を介して外部PLMN内のHLRに送信されるかのいずれかになります。
HLRはデータベース検索を実行してBパーティの現在位置を取得し、確認メッセージでSMSCのGMSCエンティティに返します。現在位置は、加入者が現在ローミングしているMSCアドレス、SGSNアドレス、またはその両方である可能性があります。HLRは、宛先がショートメッセージングに利用できないと判断した場合、失敗を返すこともあります。詳細については、下記の「ショートメッセージ配信の失敗」セクションを参照してください。
HLR からルーティング情報を取得すると、GMSC はショート メッセージを受信者に配信しようとします。これは、MAP_MT_FORWARD_SHORT_MESSAGE サービスを呼び出すことによって行われ、HLR から返されたアドレスに MAP mt-ForwardSM [注 3 ]メッセージが送信されます。これは、MSC (回線交換 SMS 配信) か SGSN (パケット交換 SMS 配信) かに関係なく行われます。
VMSC は、Send_Info_for_MT_SMS メッセージを VLR に送信して、ショート メッセージを受信者に配信するために必要な情報を要求します。VLR は、宛先の加入者のモバイル加入者ISDN 番号 (MSISDN)のページ リクエストまたは加入者検索を開始し、結果を VMSC に返します。一般的な展開では、VLR は MSC と同じ場所に設置されるため、このメッセージ フローは通常プラットフォーム内部で行われます。[注 4 ]加入者のページまたは検索が失敗した場合、VLR は VMSC に失敗の原因を示し、VMSC はショート メッセージ配信手順を中止して、失敗を SMSC に返します (以下の「ショート メッセージ配信の失敗」セクションを参照)。ハンドセットのページが成功した場合、VMSC は SMSC に配信成功を示すメッセージを送信します。SMSC の GMSC コンポーネントは、配信試行の結果をサービス センターに渡します。配信が成功した場合、配信されたテキストメッセージはストアアンドフォワードエンジン(SFE)から削除され、要求があれば配信レポートがテキストの発信者に送信されます。[ 2 ]配信が失敗した場合、SMSCは再試行手順を呼び出して定期的に配信を再度試みます。さらに、Bパーティが今後ショートメッセージの配信に利用可能になったときに通知を受け取るためにHLRに登録する場合があります(下記の「ショートメッセージの配信失敗」セクションを参照)。
VMSC/SGSNがショートメッセージの配信失敗を示すと、SMSCはMAP_REPORT_SM_DELIVERY_STATUSプロシージャを使用してHLRにメッセージを送信し、配信失敗の理由を示すとともに、宛先が再び利用可能になった際に通知を希望するサービスセンターのリストにSMSCを追加するよう要求します。HLRは、宛先アカウントに対してショートメッセージの配信が不可能であることを示すフラグを設定し、宛先のメッセージ待機データ(MWD)リストにSMSCのアドレスを保存します。有効なフラグは、モバイル到達不能フラグ(MNRF)、メモリ容量超過フラグ(MCEF)、およびGPRSモバイル到達不能(MNRG)です。HLRは、SRI-for-SM要求に対して失敗を応答し、失敗理由を示し、要求元のSMSCのアドレスを宛先のMWDリストに自動的に追加します。(ただし、SRI-for-SMメッセージに優先度フラグが設定されている場合は、HLRは利用可能な場合はVLRアドレスで応答します。)
HLRは、加入者がショートメッセージ配信に対応可能になったことを、いくつかの方法で通知される可能性があります。
宛先側がショートメッセージを受信する準備ができたという通知を受け取ると、HLR は加入者の MWD リストに登録されている各 SMSC に AlertSC MAP メッセージを送信し、SMSC にショートメッセージ配信プロセスを最初からやり直させます。[ 1 ]
さらに、SMSCは再試行スケジュールに入り、アラートが発生しないまま定期的にSMを配信しようと試みます。再試行スケジュールの間隔は、元の障害原因によって異なります。一時的なネットワーク障害の場合は再試行スケジュールが短くなりますが、通信範囲外の場合は通常、再試行スケジュールが長くなります。
ショートメッセージ転送に関連するMAP操作の概要を以下の表に示します。
InformServiceCentre は、 HLR がsendRoutingInfoForSM または reportSM-DeliveryStatus 応答に提供するメッセージです。このメッセージは通常、MWD フラグをショート メッセージ サービス センターに転送するために使用されます。[ 1 ]
MAP 3GPP仕様ではMAPを伝送レイヤーから分離する努力がなされているが、一般的な伝送はTCAPを介して行われ、TCAPはSCCP/MTP[1-3]および/またはSIGTRANプロトコル(SUA、 M3UAなど)を介して行われる。
したがって、MAP_OPEN 構造は MAP アプリケーション コンテキストを持つ TCAP_BEGIN に直接関連しており、MAP_CLOSE は TCAP_END です。
メッセージが MAP フェーズ 2 以上を使用し、SIGTRANではなく MTP を介して配信される場合、MTP PDU の最大サイズにより、送信側でセグメント化されたメッセージ送信が開始されることがあります。このプロセスは連結とは関係ありませんが、単に MSC/SMSC/SGSN とのトランザクションが通常よりも多くのステップを含むことを意味します。推奨される方法[ 1 ]は、空の TCAP_BEGIN に続いて TCAP_CONTINUE 内の MAP コンテンツが続き、最後に TCAP_END で完了することです。TCAP_BEGIN には、MAP フェーズ 2 で追加されたフィールドにより制限を超える原因となる TCAP 関連の情報が含まれています。セグメント化が必要となる正確なポイントは、アドレスの長さなどの要因に依存しますが、主にメッセージの長さ自体に依存します。140 文字以上の 7 ビット アルファベット メッセージは、通常 MAP セグメント化手順の対象となります。
このセグメンテーション手順は、SMSスプーフィングが顧客に影響を与えるのを防ぐために、通信事業者によってますます採用され、オプションで強制されています。これは、メッセージを送信するには送信者が応答を受信する必要があり、そのため送信元アドレスが正しい必要があるためです。[ 5 ]