<p>laforge <strong>merged</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/osmo-msc/+/15058">View Change</a></p><div style="white-space:pre-wrap">Approvals:
Jenkins Builder: Verified
pespin: Looks good to me, but someone else must approve
laforge: Looks good to me, approved
</div><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;"><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-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: laforge <laforge@gnumonks.org> </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>