aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNeels Hofmeyr <neels@hofmeyr.de>2019-10-07 21:14:02 +0200
committerNeels Hofmeyr <neels@hofmeyr.de>2019-10-08 08:20:16 +0200
commit8b1cfdd4e2782c883a0331d45e31da9e1cde934c (patch)
tree955f127421f8a92e59e3d6421ef0e019bc94ad92
parent5dfb056f4edfc52fe33e1601e98a247137257888 (diff)
charts: add full MO and MT voice call diagram
Add voice_call_full.ladder, in the ladder diagram format that I invented in libosmocore/contrib/ladder_to_msc.py. This file is translated to .msc and then mscgen generates the actual diagram, see doc/sequence_charts/Makefile.am. Depends: Iefac4cb91b82c93a64b4999afa62e299479913af (libosmocore) Change-Id: I8a907d6a4ece1f3ad78da75a8c3e3e76afd5418d
-rw-r--r--doc/sequence_charts/Makefile.am7
-rw-r--r--doc/sequence_charts/voice_call_full.ladder173
2 files changed, 179 insertions, 1 deletions
diff --git a/doc/sequence_charts/Makefile.am b/doc/sequence_charts/Makefile.am
index f1775c8f5..ded9354f9 100644
--- a/doc/sequence_charts/Makefile.am
+++ b/doc/sequence_charts/Makefile.am
@@ -19,14 +19,19 @@ msc: \
$(builddir)/mncc_call_fsm.png \
$(builddir)/inter_bsc_ho.png \
$(builddir)/inter_msc_ho.png \
+ $(builddir)/voice_call_full.png \
$(NULL)
dot: \
$(NULL)
-$(builddir)/%.png: $(srcdir)/%.msc
+$(builddir)/%.png: %.msc
mscgen -T png -o $@ $<
+$(builddir)/%.msc: $(srcdir)/%.ladder
+ which ladder_to_msc.py || (echo 'PLEASE POINT YOUR $$PATH AT libosmocore/contrib/ladder_to_msc.py' && false)
+ ladder_to_msc.py -i $< -o $@
+
$(builddir)/%.png: $(srcdir)/%.dot
dot -Tpng $< > $@
diff --git a/doc/sequence_charts/voice_call_full.ladder b/doc/sequence_charts/voice_call_full.ladder
new file mode 100644
index 000000000..339db9895
--- /dev/null
+++ b/doc/sequence_charts/voice_call_full.ladder
@@ -0,0 +1,173 @@
+{hscale=3}
+moms = MS,BSS (MO)
+momgw = MGW for MSC (MO)
+momsc = MSC (MO)
+sip = MNCC to PBX via
+ osmo-sip-connector
+mtmsc = MSC (MT)
+mtmgw = MGW for MSC (MT)
+mtms = hNodeB,UE (MT)
+
+
+moms > momsc CC Setup
+ Bearer Cap
+momsc [] . CC starts guard timer (180s)
+momsc <> . CC state:
+ INITIATED
+ callref = 0x80000001
+momsc > sip MNCC_SETUP_IND
+ Bearer Cap: Speech Ver list
+momsc < sip MNCC_RTP_CREATE
+momgw < momsc for RAN: CRCX 1
+ rtpbridge/*@msc
+momgw > momsc CRCX 1 OK
+ rtpbridge/0@msc, CI: ABCD1234, MGW RTP IP:port
+moms < momsc Assignment Command
+ MGW RTP IP:port
+moms > momsc Assignment Complete
+ Speech Codec (Chosen), BSC RTP IP:port
+momgw < momsc for RAN: MDCX 2
+ rtpbridge/0@msc, CI: ABCD1234, codec (112="AMR/8000")
+momgw > momsc MDCX 2 OK
+momgw < momsc for CN: CRCX 3
+ rtpbridge/0@msc
+momgw > momsc CRCX 3 OK
+ rtpbridge/0@msc, CI: BCDE2345, MGW RTP IP:port
+momsc > sip MNCC_RTP_CREATE
+ MGW RTP IP:port, payload_type=112, payload_msg_type=GSM_TCH_FRAME_AMR
+
+momsc < sip MNCC_CALL_PROC_REQ
+
+momsc <> . CC state:
+ MO_CALL_PROC
+moms < momsc DTAP: CC Call Proceeding
+
+sip > mtmsc MNCC_SETUP_REQ
+ callref = 5002, called + calling MSISDN
+mtmsc <> . CC state:
+ NULL
+mtmsc > mtms Paging
+mtmsc < mtms Paging Response
+mtmsc [] . CC starts T303 (30s)
+mtmsc <> . CC state:
+ CALL_PRESENT
+mtmsc > mtms DTAP: CC Setup
+mtmsc < mtms DTAP: CC Call Confirmed
+ Bearer Cap: Speech Ver list
+mtmsc [] . CC stops T303
+ starts T310 (30s)
+mtmsc <> . CC state:
+ MO_TERM_CALL_CONF
+mtmgw < mtmsc for RAN: CRCX 4
+ rtpbridge/*@msc
+sip < mtmsc MNCC_CALL_CONF_IND
+ Bearer Cap: Speech Ver list
+sip > mtmsc MNCC_RTP_CREATE
+mtmgw > mtmsc CRCX 4 OK
+ rtpbridge/1@msc, CI: CDEF3456, MGW RTP IP:port
+mtmsc > mtms RAB Assignment Request
+ MGW RTP IP:port
+mtmsc < mtms RAB Assignment Response
+ hNodeB RTP IP:port
+mtmgw < mtmsc for RAN: MDCX 5
+ rtpbridge/1@msc, CI: CDEF3456, codec (112="AMR/8000")
+mtmgw > mtmsc MDCX 5 OK
+mtmgw < mtmsc for CN: CRCX 6
+ rtpbridge/1@msc
+mtmgw > mtmsc CRCX 6 OK
+ CI: DEFA4567, MGW RTP IP:port
+sip < mtmsc MNCC_RTP_CREATE
+ MGW RTP IP:port, payload_type=112, payload_msg_type=GSM_TCH_FRAME_AMR
+mtmsc < mtms DTAP: CC Alerting
+mtmsc [] . CC stops T310
+ starts T301 (180s)
+mtmsc <> . CC state:
+ CALL_RECEIVED
+sip < mtmsc MNCC_ALERT_IND
+momsc < sip MNCC_ALERT_REQ
+
+momsc [] . CC stops guard timer
+momsc <> . CC state:
+ CALL_DELIVERED
+moms < momsc DTAP: CC Alerting
+...
+... ringing
+...
+mtmsc < mtms DTAP: CC Connect
+mtmsc [] . CC stops T301
+mtmsc <> . CC state:
+ CONNECT_REQUEST
+sip < mtmsc MNCC_SETUP_CNF
+sip > mtmsc MNCC_RTP_CONNECT
+ SIP RTP IP:port
+mtmgw < mtmsc for CN: MDCX 7
+ rtpbridge/1@msc, CI: DEFA4567, MGW RTP IP:port
+sip > mtmsc MNCC_SETUP_COMPL_REQ
+mtmsc [] . CC starts guard timer (180s)
+mtmsc <> . CC state:
+ ACTIVE
+mtmsc [] . CC stops guard timer
+mtmsc > mtms DTAP: CC Connect Acknowledge
+
+momsc < sip MNCC_RTP_CONNECT
+ SIP RTP IP:port
+momgw < momsc for CN: MDCX 8
+ rtpbridge/0@msc, CI: BCDE2345, MGW RTP IP:port
+mtmsc < mtmgw MDCX 7 OK
+
+momsc < sip MNCC_SETUP_RSP
+
+momsc [] . CC starts guard timer (180s)
+ also starts T313 (30s)
+momsc <> . CC state:
+ CONNECT_IND
+moms < momsc DTAP: CC Connect
+momgw > momsc MDCX 8 OK
+moms > momsc DTAP: CC Connect Acknowledge
+momsc [] . CC stops T313
+momsc <> . CC state:
+ ACTIVE
+momsc [] . CC stops guard timer
+momsc > sip MNCC_SETUP_COMPL_IND
+
+...
+... call ongoing
+...
+
+mtmsc < mtms DTAP: CC Disconnect
+mtmsc <> . CC state:
+ DISCONNECT_IND
+sip < mtmsc MNCC_DISC_IND
+sip > mtmsc MNCC_REL_REQ
+mtmsc [] . CC starts guard timer (180s)
+ and starts T308 (10s)
+mtmsc > mtms DTAP: CC Release
+
+momsc < sip MNCC_DISC_REQ
+momsc [] . CC starts guard timer (180s)
+ and starts T306 (30s)
+momsc <> . CC state:
+ DISCONNECT_IND
+moms < momsc DTAP: CC Disconnect
+moms > momsc DTAP: CC Release
+momsc [] . CC stops T306
+moms < momsc DTAP: CC Release Complete
+momsc > sip MNCC_REL_IND
+momsc <> . CC state:
+ NULL
+momsc [] . CC frees transaction
+ stops guard timer
+momgw < momsc for CN: DLCX
+momgw < momsc for RAN: DLCX
+moms < momsc Clear Command
+moms > momsc Clear Complete
+
+mtmsc < mtms DTAP: CC Release Complete
+mtmsc [] . CC stops timer T308
+sip < mtmsc MNCC_REL_CNF
+mtmsc [] . CC frees transaction
+ stops guard timer
+mtmgw < mtmsc for CN: DLCX
+mtmgw < mtmsc for RAN: DLCX
+mtms < mtmsc Iu Release Command
+mtms > mtmsc Iu Release Command: Successful Outcome