<p>neels has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-msc/+/15058">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">doc/sequence_charts/mncc_fsm.msc: add SIP messages, tweak<br><br>- add SIP messages, taken from OS#1683<br>- change some wording and clarify some message ordering<br>- have a separate sipcon1 and sipcon2 for the MO and MT sides<br><br>Change-Id: I6782e416dbd8ee88d093cbef722b0c5084f3865c<br>---<br>M doc/sequence_charts/mncc_fsm.msc<br>1 file changed, 57 insertions(+), 37 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/58/15058/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/doc/sequence_charts/mncc_fsm.msc b/doc/sequence_charts/mncc_fsm.msc</span><br><span>index ae5e0a2..45a77ca 100644</span><br><span>--- a/doc/sequence_charts/mncc_fsm.msc</span><br><span>+++ b/doc/sequence_charts/mncc_fsm.msc</span><br><span>@@ -1,84 +1,104 @@</span><br><span> msc {</span><br><span style="color: hsl(0, 100%, 40%);">-     hscale=2;</span><br><span style="color: hsl(0, 100%, 40%);">-       msc1[label="osmo-msc"], mncc1[label="MNCC FSM"], pbx[label="MNCC server (osmo-sip-connector)"], mncc2[label="MNCC FSM"], msc2[label="osmo-msc"];</span><br><span style="color: hsl(120, 100%, 40%);">+    hscale=3;</span><br><span style="color: hsl(120, 100%, 40%);">+     msc1[label="osmo-msc"], mncc1[label="MNCC FSM\n(osmo-msc mncc_fsm.c)"], sipcon1[label="osmo-sip-connector"], sip[label="PBX"], sipcon2[label="osmo-sip-connector"], mncc2[label="MNCC FSM\n(osmo-msc mncc_fsm.c)"], msc2[label="osmo-msc"];</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   mncc1 note mncc1 [label="The typical progression of an outgoing call, i.e. a call initiated by osmo-msc, as</span><br><span style="color: hsl(0, 100%, 40%);">-                implemented in mncc_fsm.h, mncc_fsm.c"];</span><br><span style="color: hsl(0, 100%, 40%);">-   mncc2 note mncc2 [label="The typical progression of an incoming call, i.e. a call initiated by the PBX, as</span><br><span style="color: hsl(0, 100%, 40%);">-         implemented in mncc_fsm.h, mncc_fsm.c"];</span><br><span style="color: hsl(120, 100%, 40%);">+ msc1 note sipcon1 [label="MO call"];</span><br><span style="color: hsl(120, 100%, 40%);">+        sipcon2 note msc2 [label="MT call"];</span><br><span> </span><br><span>   mncc1 abox mncc1 [label="MNCC_ST_NOT_STARTED"];</span><br><span>    msc1 rbox msc1 [label="mncc_outgoing_start()"];</span><br><span>    msc1 -> mncc1 [label="MNCC_EV_OUTGOING_START"];</span><br><span> </span><br><span>     mncc1 abox mncc1 [label="MNCC_ST_OUTGOING_WAIT_PROCEEDING"];</span><br><span style="color: hsl(0, 100%, 40%);">-  mncc1 => pbx [label="MNCC_SETUP_IND</span><br><span style="color: hsl(0, 100%, 40%);">-                         \n callref, IMSI, called and calling number"];</span><br><span style="color: hsl(0, 100%, 40%);">- mncc1 <= pbx [label="MNCC_RTP_CREATE</span><br><span style="color: hsl(120, 100%, 40%);">+  mncc1 => sipcon1 [label="MNCC_SETUP_IND</span><br><span style="color: hsl(120, 100%, 40%);">+                           \n callref, IMSI, called and calling number, SDP"];</span><br><span style="color: hsl(120, 100%, 40%);">+  sipcon1 => sip [label="SIP INVITE</span><br><span style="color: hsl(120, 100%, 40%);">+                     \n from, to, SDP"];</span><br><span style="color: hsl(120, 100%, 40%);">+      sipcon1 <= sip [label="SIP 100 Trying"];</span><br><span style="color: hsl(120, 100%, 40%);">+ mncc1 <= sipcon1 [label="MNCC_RTP_CREATE</span><br><span>                     \n callref"];</span><br><span>   mncc1 rbox mncc1 [label="mncc_rx_rtp_create()"];</span><br><span style="color: hsl(0, 100%, 40%);">-      mncc1 => pbx [label="MNCC_RTP_CREATE</span><br><span style="color: hsl(120, 100%, 40%);">+  mncc1 => sipcon1 [label="MNCC_RTP_CREATE</span><br><span>                     \n callref, RTP IP address and port"];</span><br><span style="color: hsl(0, 100%, 40%);">-     mncc1 <= pbx [label="MNCC_CALL_PROC_REQ</span><br><span style="color: hsl(120, 100%, 40%);">+       mncc1 <= sipcon1 [label="MNCC_CALL_PROC_REQ</span><br><span>                  \n callref, RTP IP address and port"];</span><br><span>  mncc1 abox mncc1 [label="MNCC_ST_OUTGOING_WAIT_COMPLETE"];</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-        msc2 <= pbx [label="MNCC_SETUP_REQ</span><br><span style="color: hsl(0, 100%, 40%);">-                      \n callref, called and calling number"];</span><br><span style="color: hsl(120, 100%, 40%);">+ sip => sipcon2 [label="SIP INVITE</span><br><span style="color: hsl(120, 100%, 40%);">+                     \n from, to, SDP"];</span><br><span style="color: hsl(120, 100%, 40%);">+      sipcon2 => sip [label="SIP 100 Trying"];</span><br><span style="color: hsl(120, 100%, 40%);">+ msc2 <= sipcon2 [label="MNCC_SETUP_REQ</span><br><span style="color: hsl(120, 100%, 40%);">+                        \n callref, called and calling number</span><br><span style="color: hsl(120, 100%, 40%);">+                 \n SDP"];</span><br><span>       mncc2 abox mncc2 [label="MNCC_ST_NOT_STARTED"];</span><br><span>    msc2 rbox msc2 [label="mncc_incoming_start()"];</span><br><span>    msc2 -> mncc2 [label="MNCC_EV_INCOMING_START"];</span><br><span>         mncc2 abox mncc2 [label="MNCC_ST_INCOMING_WAIT_COMPLETE"];</span><br><span style="color: hsl(0, 100%, 40%);">-    mncc2 => pbx [label="MNCC_CALL_CONF_IND</span><br><span style="color: hsl(0, 100%, 40%);">-                 \n callref, bearer capabilities, cccap and IMSI"];</span><br><span style="color: hsl(0, 100%, 40%);">- mncc2 <= pbx [label="MNCC_RTP_CREATE</span><br><span style="color: hsl(120, 100%, 40%);">+  mncc2 => sipcon2 [label="MNCC_CALL_CONF_IND</span><br><span style="color: hsl(120, 100%, 40%);">+                   \n callref, bearer capabilities, cccap and IMSI, SDP?"];</span><br><span style="color: hsl(120, 100%, 40%);">+ mncc2 <= sipcon2 [label="MNCC_RTP_CREATE</span><br><span>                     \n callref"];</span><br><span>   mncc2 rbox mncc2 [label="mncc_rx_rtp_create()"];</span><br><span style="color: hsl(0, 100%, 40%);">-      mncc2 => pbx [label="MNCC_RTP_CREATE</span><br><span style="color: hsl(0, 100%, 40%);">-                    \n callref, RTP IP address and port"];</span><br><span style="color: hsl(0, 100%, 40%);">-     mncc2 => pbx [label="MNCC_ALERT_IND</span><br><span style="color: hsl(120, 100%, 40%);">+   mncc2 => sipcon2 [label="MNCC_RTP_CREATE</span><br><span style="color: hsl(120, 100%, 40%);">+                      \n callref, RTP IP address and port, SDP?"];</span><br><span style="color: hsl(120, 100%, 40%);">+     mncc2 => sipcon2 [label="MNCC_ALERT_IND</span><br><span>                      \n callref"];</span><br><span style="color: hsl(120, 100%, 40%);">+    sipcon2 => sip [label="SIP 180 Ringing</span><br><span style="color: hsl(120, 100%, 40%);">+                        \n SDP"];</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-      mncc1 <= pbx [label="MNCC_ALERT_REQ</span><br><span style="color: hsl(120, 100%, 40%);">+   sipcon1 <= sip [label="SIP 180 Ringing</span><br><span style="color: hsl(120, 100%, 40%);">+                        \n SDP"];</span><br><span style="color: hsl(120, 100%, 40%);">+        mncc1 <= sipcon1 [label="MNCC_ALERT_REQ</span><br><span>                      \n callref and progress"];</span><br><span style="color: hsl(120, 100%, 40%);">+       sipcon1 => sip [label="SIP PRACK 180 Ringing"];</span><br><span style="color: hsl(120, 100%, 40%);">+  sipcon1 <= sip [label="SIP PRACK 200"];</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-        mncc2 => pbx [label="MNCC_SETUP_CNF</span><br><span style="color: hsl(0, 100%, 40%);">-                     \n callref, imsi and connected number"];</span><br><span style="color: hsl(0, 100%, 40%);">-   mncc2 <= pbx [label="MNCC_RTP_CONNECT</span><br><span style="color: hsl(0, 100%, 40%);">-                   \n callref, RTP IP and port"];</span><br><span style="color: hsl(0, 100%, 40%);">-     mncc2 rbox mncc2 [label="mncc_rx_rtp_connect()"];</span><br><span style="color: hsl(0, 100%, 40%);">-     mncc2 <= pbx [label="MNCC_SETUP_COMPL_REQ</span><br><span style="color: hsl(0, 100%, 40%);">-                       \n callref"];</span><br><span style="color: hsl(0, 100%, 40%);">-      mncc2 abox mncc2 [label="MNCC_ST_TALKING"];</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-   mncc1 <= pbx [label="MNCC_RTP_CONNECT</span><br><span style="color: hsl(120, 100%, 40%);">+ mncc1 <= sipcon1 [label="MNCC_RTP_CONNECT</span><br><span>                    \n callref, RTP IP and port"];</span><br><span>  mncc1 rbox mncc1 [label="mncc_rx_rtp_connect()"];</span><br><span>  msc1 <- mncc1 [label="rtp_stream_set_remote_addr()"];</span><br><span style="color: hsl(0, 100%, 40%);">-      mncc1 <= pbx [label="MNCC_SETUP_RSP</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ mncc2 => sipcon2 [label="MNCC_SETUP_CNF</span><br><span style="color: hsl(120, 100%, 40%);">+                       \n callref, imsi and connected number, SDP?"];</span><br><span style="color: hsl(120, 100%, 40%);">+   sipcon2 => sip [label="SIP 200 OK</span><br><span style="color: hsl(120, 100%, 40%);">+                     \n SDP"];</span><br><span style="color: hsl(120, 100%, 40%);">+        mncc2 <= sipcon2 [label="MNCC_RTP_CONNECT</span><br><span style="color: hsl(120, 100%, 40%);">+                     \n callref, RTP IP and port"];</span><br><span style="color: hsl(120, 100%, 40%);">+   mncc2 rbox mncc2 [label="mncc_rx_rtp_connect()"];</span><br><span style="color: hsl(120, 100%, 40%);">+   mncc2 <= sipcon2 [label="MNCC_SETUP_COMPL_REQ</span><br><span>                        \n callref"];</span><br><span style="color: hsl(0, 100%, 40%);">-      mncc1 => pbx [label="MNCC_SETUP_COMPL_IND</span><br><span style="color: hsl(120, 100%, 40%);">+     mncc2 abox mncc2 [label="MNCC_ST_TALKING"];</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       sipcon1 <= sip [label="SIP 200 OK INVITE"];</span><br><span style="color: hsl(120, 100%, 40%);">+      mncc1 <= sipcon1 [label="MNCC_SETUP_RSP</span><br><span style="color: hsl(120, 100%, 40%);">+                       \n callref"];</span><br><span style="color: hsl(120, 100%, 40%);">+    mncc1 => sipcon1 [label="MNCC_SETUP_COMPL_IND</span><br><span>                        \n callref"];</span><br><span>   mncc1 abox mncc1 [label="MNCC_ST_TALKING"];</span><br><span style="color: hsl(120, 100%, 40%);">+ sipcon1 => sip [label="SIP ACK"];</span><br><span> </span><br><span>   ...;</span><br><span>         ... [label="Call goes on for a while..."];</span><br><span>         ...;</span><br><span> </span><br><span>     mncc1 rbox mncc1 [label="mncc_release()"];</span><br><span style="color: hsl(0, 100%, 40%);">-    mncc1 => pbx [label="MNCC_DISC_IND</span><br><span style="color: hsl(120, 100%, 40%);">+    mncc1 => sipcon1 [label="MNCC_DISC_IND</span><br><span>                       \n callref and cause"];</span><br><span>         mncc1 abox mncc1 [label="MNCC_ST_WAIT_RELEASE_ACK"];</span><br><span style="color: hsl(0, 100%, 40%);">-  mncc1 <= pbx [label="MNCC_REL_REQ</span><br><span style="color: hsl(120, 100%, 40%);">+     sipcon1 => sip [label="SIP BYE"];</span><br><span style="color: hsl(120, 100%, 40%);">+        sipcon1 <= sip [label="SIP 200 OK"];</span><br><span style="color: hsl(120, 100%, 40%);">+     mncc1 <= sipcon1 [label="MNCC_REL_REQ</span><br><span>                        \n callref and cause"];</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-        mncc2 <= pbx [label="MNCC_DISC_REQ</span><br><span style="color: hsl(120, 100%, 40%);">+    sip => sipcon2 [label="SIP BYE"];</span><br><span style="color: hsl(120, 100%, 40%);">+        sip <= sipcon2 [label="SIP 200 OK"];</span><br><span style="color: hsl(120, 100%, 40%);">+     mncc2 <= sipcon2 [label="MNCC_DISC_REQ</span><br><span>                       \n callref and cause"];</span><br><span style="color: hsl(0, 100%, 40%);">-    mncc2 => pbx [label="MNCC_REL_IND</span><br><span style="color: hsl(120, 100%, 40%);">+     mncc2 => sipcon2 [label="MNCC_REL_IND</span><br><span>                        \n callref and cause"];</span><br><span>         mncc2 abox mncc2 [label="terminated"];</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-    mncc1 => pbx [label="MNCC_REL_CNF</span><br><span style="color: hsl(120, 100%, 40%);">+     mncc1 => sipcon1 [label="MNCC_REL_CNF</span><br><span>                        \n callref"];</span><br><span>   mncc1 abox mncc1 [label="terminated"];</span><br><span> }</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-msc/+/15058">change 15058</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/osmo-msc/+/15058"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-msc </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I6782e416dbd8ee88d093cbef722b0c5084f3865c </div>
<div style="display:none"> Gerrit-Change-Number: 15058 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: neels <nhofmeyr@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>