Harald Welte has submitted this change and it was merged.

Change subject: message sequence charts for GSM <-> SIP codec selection
......................................................................


message sequence charts for GSM <-> SIP codec selection

Those diagrams represent the current design of the way how
GSM <-> SIP codec selection should work in the future.

Related: OS#1683
Change-Id: If92379b41d859bdf7be4b7689dc0bbca7cb6e682
---
A common/chapters/msc_mncc_mo_sip_mgcp.msc
A common/chapters/msc_mncc_mo_sip_rel18x_mgcp.msc
A common/chapters/msc_mncc_mt_sip_mgcp.msc
3 files changed, 211 insertions(+), 0 deletions(-)

Approvals:
  Harald Welte: Looks good to me, approved
  Jenkins Builder: Verified



diff --git a/common/chapters/msc_mncc_mo_sip_mgcp.msc 
b/common/chapters/msc_mncc_mo_sip_mgcp.msc
new file mode 100644
index 0000000..ab904be
--- /dev/null
+++ b/common/chapters/msc_mncc_mo_sip_mgcp.msc
@@ -0,0 +1,68 @@
+msc {
+       hscale="3";
+       ms [label="MS"], bsc [label="BSC"], mgw [label="MGW@MSC"], omsc 
[label="OsmoMSC"], osc [label="OsmoSIPcon"], sip [label="External SIP World"];
+       |||;
+       ...             [label="Mobile Originated call handled via 
osmo-sip-conector, OsmoMSC, OsmoMGW: No reliable 18x"];
+       |||;
+
+       ms <-> bsc      [label="RR Establishment"];
+       ms <-> omsc     [label="MM Procedures (Auth/Ciph/...)"];
+       ...;
+
+       ms -> omsc      [label="CC SETUP (called, bearer_cap)"];
+       omsc -> osc     [label="MNCC_SETUP_IND (calling, called, bearer_cap)"];
+       osc box osc     [label="bearer_cap -> SDP"];
+       osc -> sip      [label="SIP INVITE (from, to, SDP)"];
+       osc <- sip      [label="SIP 100 Trying (NO rel100)"];
+       omsc <- osc     [label="MNCC_CALL_PROC_REQ"];
+       ms <- omsc      [label="CC CALL PROCEEDING"];
+       ...;
+
+       sip box sip     [label="SIP UA starts ringing"];
+       osc <- sip      [label="SIP 180 Ringing (NO SDP)"];
+       omsc <- osc     [label="MNCC_ALERT_REQ"];
+       ms <- omsc      [label="CC ALERTING"];
+
+       omsc box omsc   [label="generate BSSMAP codec list from\n(without 
knowing SIP/SDP)"];
+       bsc <- omsc     [label="BSSMAP ASSIGNMENT REQ"];
+       ms <-> bsc      [label="RR ASSIGNMENT or RR MODE MODIFY"];
+       bsc -> omsc     [label="BSSMAP ASSIGNMENT COMPL"];
+       omsc box omsc   [label="determine chosen codec from\nBSSMAP 
Assignment"];
+       mgw <- omsc     [label="MGCP CRCX (RAN-side, chosen codec)"];
+       mgw -> omsc     [label="MGCP CRCX OK (RAN-side)"];
+
+       sip box sip     [label="User accepts call"];
+       osc <- sip      [label="SIP 200 OK (SDP, finally)"];
+       omsc <- osc     [label="MNCC_SETUP_RSP"];
+       ms <- omsc      [label="CC CONNECT"];
+       omsc <- osc     [label="MNCC_RTP_CONNECT"];
+
+       omsc <- osc     [label="MNCC_RTP_CREATE.req (SDP from SIP)"];
+       mgw <- omsc     [label="MGCP CRCX (EXT-side)"];
+       mgw box mgw     [label="If there is a common codec between RAN and CN, 
use that\nElse: Configure Transcoding in MGW"];
+       mgw -> omsc     [label="MGCP CRCX OK (EXT-side)"];
+       omsc -> osc     [label="MNCC_RTP_CREATE.resp (CN side IP/Port)"];
+       mgw <- omsc     [label="MGCP MDCX (sendrecv)"];
+       mgw -> omsc     [label="MGCP MDCX OK"];
+       ms -> omsc      [label="CC CONNECT ACK"];
+       omsc -> osc     [label="MNCC_SETUP_COMPL_IND"];
+       osc -> sip      [label="SIP ACK"];
+       ...;
+       ms box ms       [label="MO user releases call"];
+       ms -> omsc      [label="CC DISCONNECT"];
+       omsc -> osc     [label="MNCC_DISC_IND"];
+       osc -> sip      [label="SIP BYE"];
+       osc <- sip      [label="SIP 200 OK"];
+       omsc <- osc     [label="MNCC_REL_REQ"];
+       ms <- omsc      [label="CC RELEASE COMMAND"];
+       ms -> omsc      [label="CC REELASE COMPLETE"];
+       omsc -> osc     [label="MNCC_REL_CNF"];
+       mgw <- omsc     [label="MGCP DLCX (all connections on EP)"];
+       mgw -> omsc     [label="MGCP DLCX OK"];
+       bsc <- omsc     [label="BSSMAP CLEAR CMD"];
+       ms <-> bsc      [label="RR Disconnect"];
+       bsc -> omsc     [label="BSSMAP CLEAR CMPL"];
+
+}
+
+
diff --git a/common/chapters/msc_mncc_mo_sip_rel18x_mgcp.msc 
b/common/chapters/msc_mncc_mo_sip_rel18x_mgcp.msc
new file mode 100644
index 0000000..cd12aa5
--- /dev/null
+++ b/common/chapters/msc_mncc_mo_sip_rel18x_mgcp.msc
@@ -0,0 +1,72 @@
+msc {
+       hscale="3";
+       ms [label="MS"], bsc [label="BSC"], mgw [label="MGW@MSC"], omsc 
[label="OsmoMSC"], osc [label="OsmoSIPcon"], sip [label="External SIP World"];
+       |||;
+       ...             [label="Mobile Originated call handled via 
osmo-sip-conector, OsmoMSC, OsmoMGW: Reliable 18x"];
+       |||;
+
+       ms <-> bsc      [label="RR Establishment"];
+       ms <-> omsc     [label="MM Procedures (Auth/Ciph/...)"];
+       ...;
+
+       ms -> omsc      [label="CC SETUP (called, bearer_cap)"];
+       omsc -> osc     [label="MNCC_SETUP_IND (calling, called, bearer_cap)"];
+       osc box osc     [label="bearer_cap -> SDP"];
+       osc -> sip      [label="SIP INVITE (from, to, SDP)"];
+       osc <- sip      [label="SIP 100 Trying (rel100)"];
+       omsc <- osc     [label="MNCC_CALL_PROC_REQ"];
+       ms <- omsc      [label="CC CALL PROCEEDING"];
+       ...;
+
+       sip box sip     [label="SIP UA starts ringing"];
+       osc <- sip      [label="SIP 180 Ringing (SDP)"];
+       osc box osc     [label="bearer_cap <- SDP"];
+       omsc <- osc     [label="MNCC_ALERT_REQ"];
+       ms <- omsc      [label="CC ALERTING"];
+       osc -> sip      [label="SIP PRACK (180 Ringing)"];
+       osc <- sip      [label="SIP 200 (PRACK)"];
+
+       omsc box omsc   [label="generate BSSMAP codec list from\nSIP-negotiated 
bearer_cap"];
+       bsc <- omsc     [label="BSSMAP ASSIGNMENT REQ"];
+       ms <-> bsc      [label="RR ASSIGNMENT or RR MODE MODIFY"];
+       bsc -> omsc     [label="BSSMAP ASSIGNMENT COMPL"];
+       omsc box omsc   [label="determine chosen codec from\nBSSMAP 
Assignment"];
+       mgw <- omsc     [label="MGCP CRCX (RAN-side, chosen codec)"];
+       mgw -> omsc     [label="MGCP CRCX OK (RAN-side)"];
+
+       omsc <- osc     [label="MNCC_RTP_CREATE.req (SDP from SIP)"];
+       mgw <- omsc     [label="MGCP CRCX (EXT-side)"];
+       mgw box mgw     [label="If there is a common codec between RAN and CN, 
use that\nElse: Configure Transcoding in MGW"];
+       mgw -> omsc     [label="MGCP CRCX OK (EXT-side)"];
+       omsc -> osc     [label="MNCC_RTP_CREATE.resp (CN side IP/Port)"];
+       ...;
+
+       sip box sip     [label="User accepts call"];
+       osc <- sip      [label="SIP 200 OK (INVITE)"];
+       omsc <- osc     [label="MNCC_SETUP_RSP"];
+       ms <- omsc      [label="CC CONNECT"];
+       omsc <- osc     [label="MNCC_RTP_CONNECT"];
+       mgw <- omsc     [label="MGCP MDCX (sendrecv)"];
+       mgw -> omsc     [label="MGCP MDCX OK"];
+       ms -> omsc      [label="CC CONNECT ACK"];
+       omsc -> osc     [label="MNCC_SETUP_COMPL_IND"];
+       osc -> sip      [label="SIP ACK"];
+       ...;
+       ms box ms       [label="MO user releases call"];
+       ms -> omsc      [label="CC DISCONNECT"];
+       omsc -> osc     [label="MNCC_DISC_IND"];
+       osc -> sip      [label="SIP BYE"];
+       osc <- sip      [label="SIP 200 OK"];
+       omsc <- osc     [label="MNCC_REL_REQ"];
+       ms <- omsc      [label="CC RELEASE COMMAND"];
+       ms -> omsc      [label="CC REELASE COMPLETE"];
+       omsc -> osc     [label="MNCC_REL_CNF"];
+       mgw <- omsc     [label="MGCP DLCX (all connections on EP)"];
+       mgw -> omsc     [label="MGCP DLCX OK"];
+       bsc <- omsc     [label="BSSMAP CLEAR CMD"];
+       ms <-> bsc      [label="RR Disconnect"];
+       bsc -> omsc     [label="BSSMAP CLEAR CMPL"];
+
+}
+
+
diff --git a/common/chapters/msc_mncc_mt_sip_mgcp.msc 
b/common/chapters/msc_mncc_mt_sip_mgcp.msc
new file mode 100644
index 0000000..003ec64
--- /dev/null
+++ b/common/chapters/msc_mncc_mt_sip_mgcp.msc
@@ -0,0 +1,71 @@
+msc {
+       hscale="3";
+       ms [label="MS"], bsc [label="BSC"], mgw [label="MGW@MSC"], omsc 
[label="OsmoMSC"], osc [label="OsmoSIPcon"], sip [label="External SIP World"];
+       |||;
+       ...             [label="Mobile Terminated call handled via 
osmo-sip-conector, OsmoMSC, OsmoMGW"];
+       |||;
+
+       sip box sip     [label="Somebody in SIP world dials a\nGSM subscriber"];
+       osc <- sip      [label="SIP INVITE (from, to, SDP)"];
+       osc box osc     [label="SDP -> bearer_capabilities"];
+       omsc <- osc     [label="MNCC_SETUP_REQ (calling, called, bearer_cap)"];
+       osc -> sip      [label="SIP 100 Trying"];
+       bsc <- omsc     [label="BSSMAP PAGING"];
+       ms <- bsc       [label="RR PAGING"];
+       ms <-> bsc      [label="RR Establishment"];
+       ms <-> omsc     [label="MM Procedures (Auth/Ciph/...)"];
+       ...;
+       ms <- omsc      [label="CC SETUP (calling, bearer_cap)"];
+       ms -> omsc      [label="CC CALL CONFIRMED (bearer_cap)"];
+       omsc box omsc   [label="generate BSSMAP codec list from\nMS-negotiated 
bearer_cap"];
+       bsc <- omsc     [label="BSSMAP ASSIGNMENT REQ"];
+       ms <-> bsc      [label="RR ASSIGNMENT or RR MODE MODIFY"];
+       bsc -> omsc     [label="BSSMAP ASSIGNMENT COMPL"];
+       omsc box omsc   [label="determine chosen codec from\nBSSMAP 
Assignment"];
+       mgw <- omsc     [label="MGCP CRCX (RAN-side, chosen codec)"];
+       mgw -> omsc     [label="MGCP CRCX OK (RAN-side)"];
+       omsc -> osc     [label="MNCC_CALL_CONF_IND"];
+
+       omsc <- osc     [label="MNCC_RTP_CREATE.req"];
+       mgw <- omsc     [label="MGCP CRCX (EXT-side)"];
+       mgw box mgw     [label="If there is a common codec between RAN and CN, 
use that\nElse: Configure Transcoding in MGW"];
+       mgw -> omsc     [label="MGCP CRCX OK (EXT-side)"];
+       omsc -> osc     [label="MNCC_RTP_CREATE.resp (CN side IP/Port)"];
+       ...;
+       ms box ms       [label="MS starts ringing"];
+       ms -> omsc      [label="CC ALERTING"];
+       omsc -> osc     [label="MNCC_ALERT_IND"];
+       osc -> sip      [label="SIP 180 Ringing (SDP w/chosen codec?)"];
+       ...;
+       ...;
+       ms box ms       [label="MT user accepts call"];
+       ms -> omsc      [label="CC CONNECT"];
+       omsc -> osc     [label="MNCC_SETUP_CNF"];
+       osc -> sip      [label="SIP 200 OK (SDP w/chossen codec)"];
+       osc <- sip      [label="SIP ACK"];
+       omsc <- osc     [label="MNCC_RTP_CONNECT"];
+       mgw <- omsc     [label="MGCP MDCX (MNCC-side, sendrecv)"];
+       mgw -> omsc     [label="MGCP MDCX OK"];
+       omsc <- osc     [label="MNCC_SETUP_COMPL_REQ"];
+       ms <- omsc      [label="CC CONNECT ACK"];
+       mgw <- omsc     [label="MGCP MDCX (RAN-side, sendrecv)"];
+       mgw -> omsc     [label="MGCP MDCX OK"];
+       ...;
+       ms box ms       [label="MT user releases call"];
+       ms -> omsc      [label="CC DISCONNECT"];
+       omsc -> osc     [label="MNCC_DISC_IND"];
+       osc -> sip      [label="SIP BYE"];
+       osc <- sip      [label="SIP 200 OK"];
+       omsc <- osc     [label="MNCC_REL_REQ"];
+       ms <- omsc      [label="CC RELEASE COMMAND"];
+       ms -> omsc      [label="CC REELASE COMPLETE"];
+       omsc -> osc     [label="MNCC_REL_CNF"];
+       mgw <- omsc     [label="MGCP DLCX (all connections on EP)"];
+       mgw -> omsc     [label="MGCP DLCX OK"];
+       bsc <- omsc     [label="BSSMAP CLEAR CMD"];
+       ms <-> bsc      [label="RR Disconnect"];
+       bsc -> omsc     [label="BSSMAP CLEAR CMPL"];
+
+}
+
+

-- 
To view, visit https://gerrit.osmocom.org/7513
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: If92379b41d859bdf7be4b7689dc0bbca7cb6e682
Gerrit-PatchSet: 1
Gerrit-Project: osmo-gsm-manuals
Gerrit-Branch: master
Gerrit-Owner: Harald Welte <lafo...@gnumonks.org>
Gerrit-Reviewer: Harald Welte <lafo...@gnumonks.org>
Gerrit-Reviewer: Jenkins Builder

Reply via email to