aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2018-08-25 11:20:39 +0200
committerVadim Yanitskiy <axilirator@gmail.com>2019-02-19 18:08:18 +0000
commitac42b589090c2ab59126f23c2c696b80d38775e2 (patch)
treed33b6753c8c5a1b5028c37fb7b30a93dc22ea519
parent68bbdc5f02d891133123573c422202f61923ebdf (diff)
chapters/gsup.adoc: add message sequence charts for SMS over GSUP
-rw-r--r--common/chapters/gsup_mo_smma.msc24
-rw-r--r--common/chapters/gsup_mo_sms.msc28
-rw-r--r--common/chapters/gsup_mt_sms.msc36
3 files changed, 88 insertions, 0 deletions
diff --git a/common/chapters/gsup_mo_smma.msc b/common/chapters/gsup_mo_smma.msc
new file mode 100644
index 0000000..ccf7524
--- /dev/null
+++ b/common/chapters/gsup_mo_smma.msc
@@ -0,0 +1,24 @@
+msc {
+ hscale="3";
+ ms [label="MS"], omsc [label="MSC/VLR"], hlr [label="HLR"];
+
+ ms <-> omsc [label="Establishment, Auth, Ciph, ..."];
+ ...;
+ ms -> omsc [label="CP-DATA(RP-SMMA)"];
+ ms <- omsc [label="CP-ACK"];
+ omsc -> hlr [label="GSUP ReadyForSM-Req (MR, Alert Reason)"];
+
+ |||;
+ ... [label="Successful delivery"];
+ |||;
+ omsc <- hlr [label="GSUP ReadyForSM-Res (MR)"];
+ ms <- omsc [label="CP-DATA(RP-ACK)"];
+ ms -> omsc [label="CP-ACK"];
+
+ |||;
+ ... [label="Failed delivery"];
+ |||;
+ omsc <- hlr [label="GSUP ReadyForSM-Err (MR, Cause)"];
+ ms <- omsc [label="CP-DATA(RP-ERROR)"];
+ ms -> omsc [label="CP-ACK"];
+}
diff --git a/common/chapters/gsup_mo_sms.msc b/common/chapters/gsup_mo_sms.msc
new file mode 100644
index 0000000..4cea871
--- /dev/null
+++ b/common/chapters/gsup_mo_sms.msc
@@ -0,0 +1,28 @@
+msc {
+ hscale="3";
+ ms [label="MS"], omsc [label="MSC/VLR"], hlr [label="HLR"], smsc [label="SMSC"];
+
+ ms <-> omsc [label="Establishment, Auth, Ciph, ..."];
+ ...;
+ ms -> omsc [label="CP-DATA(RP-DATA(SMS-SUBMIT))"];
+ ms <- omsc [label="CP-ACK"];
+ omsc -> hlr [label="GSUP MO-ForwardSM-Req (MR, DA=SMSC, OA=MSISDN, UI)"];
+ hlr box hlr [label="Route based on DA\n(SMSC address)"];
+ hlr -> smsc [label="GSUP MO-ForwardSM-Req (MR, DA=SMSC, OA=MSISDN, UI)"];
+
+ |||;
+ ... [label="Successful delivery"];
+ |||;
+ hlr <- smsc [label="GSUP MO-ForwardSM-Res (MR)"];
+ omsc <- hlr [label="GSUP MO-ForwardSM-Res (MR)"];
+ ms <- omsc [label="CP-DATA(RP-ACK)"];
+ ms -> omsc [label="CP-ACK"];
+
+ |||;
+ ... [label="Failed delivery"];
+ |||;
+ hlr <- smsc [label="GSUP MO-ForwardSM-Err (MR, Cause)"];
+ omsc <- hlr [label="GSUP MO-ForwardSM-Err (MR, Cause)"];
+ ms <- omsc [label="CP-DATA(RP-ERROR)"];
+ ms -> omsc [label="CP-ACK"];
+}
diff --git a/common/chapters/gsup_mt_sms.msc b/common/chapters/gsup_mt_sms.msc
new file mode 100644
index 0000000..f5addda
--- /dev/null
+++ b/common/chapters/gsup_mt_sms.msc
@@ -0,0 +1,36 @@
+msc {
+ hscale="4";
+ ms [label="MS"], omsc [label="MSC/VLR"], hlr [label="HLR"], smsc [label="SMSC"];
+
+ hlr <- smsc [label="GSUP MT-ForwardSM-Req (MR=0xFF, DA=IMSI/MSISDN, OA=SMSC, UI, MMS)"];
+ hlr box hlr [label="Route based on IMSI/MSISDN"];
+ omsc <- hlr [label="GSUP MT-ForwardSM-Req (MR=0xFF, DA=IMSI/MSISDN, OA=SMSC, UI, MMS)"];
+
+ |||;
+ ... [label="Connection establishment failure"];
+ |||;
+ omsc -> hlr [label="GSUP MT-ForwardSM-Err (MR, Cause)"];
+ hlr -> smsc [label="GSUP MT-ForwardSM-Err (MR, Cause)"];
+
+ |||;
+ ... [label="Failed delivery"];
+ |||;
+ ms <-> omsc [label="Establishment, Auth, Ciph, ..."];
+ ms <- omsc [label="CP-DATA(RP-DATA(SMS-DELIVER))"];
+ ms -> omsc [label="CP-ACK"];
+ ms -> omsc [label="CP-DATA(RP-ERROR)"];
+ omsc -> hlr [label="GSUP MT-ForwardSM-Err (MR, Cause)"];
+ ms <- omsc [label="CP-ACK"];
+ hlr -> smsc [label="GSUP MT-ForwardSM-Err (MR, Cause)"];
+
+ |||;
+ ... [label="Successful delivery"];
+ |||;
+ ms <-> omsc [label="Establishment, Auth, Ciph, ..."];
+ ms <- omsc [label="CP-DATA(RP-DATA(SMS-DELIVER))"];
+ ms -> omsc [label="CP-ACK"];
+ ms -> omsc [label="CP-DATA(RP-ACK)"];
+ omsc -> hlr [label="GSUP MT-ForwardSM-Res (MR)"];
+ ms <- omsc [label="CP-ACK"];
+ hlr -> smsc [label="GSUP MT-ForwardSM-Res (MR)"];
+}