diff --git a/doc/sequence_charts/Makefile.am b/doc/sequence_charts/Makefile.am index f1775c8f5..6782f44e7 100644 --- a/doc/sequence_charts/Makefile.am +++ b/doc/sequence_charts/Makefile.am @@ -13,18 +13,20 @@ CLEANFILES = \ inter_bsc_ho.png \ inter_msc_ho.png \ mncc_call_fsm.png \ + voice_call_full.png \ $(NULL) 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)/%.png: $(srcdir)/%.dot diff --git a/doc/sequence_charts/voice_call_full.msc b/doc/sequence_charts/voice_call_full.msc new file mode 100644 index 000000000..75fcef2ef --- /dev/null +++ b/doc/sequence_charts/voice_call_full.msc @@ -0,0 +1,123 @@ +# Generated by msc_log_to_ladder.py +msc { +hscale="3"; +moms[label="MS,BSS (MO)\nUE,hNodeB (MO)"],momgw[label="MGW for MSC (MO)"],momsc[label="MSC (MO)"],sip[label="MNCC to PBX via\nosmo-sip-connector"],mtmsc[label="MSC (MT)"],mtmgw[label="MGW for MSC (MT)"],mtms[label="BSS,MS (MT)\nhNodeB,UE (MT)"]; +moms =>> momsc [label="MM CM_SERV_REQ"]; +moms <<= momsc [label="MM AUTH_REQ"]; +moms =>> momsc [label="MM AUTH_RESP"]; +moms <<= momsc [label="(BSSMAP) CIPHER_MODE_COMMAND"]; +moms =>> momsc [label="(BSSMAP) Ciphering Mode Complete"]; +moms =>> momsc [label="RR CIPH_M_COMPL"]; +moms =>> momsc [label="CC SETUP"]; +momsc note momsc [label="CC starts guard timer (180s)"]; +momsc abox momsc [label="CC state:\nINITIATED"]; +momsc =>> sip [label="MNCC_SETUP_IND"]; +momsc <<= sip [label="MNCC_RTP_CREATE"]; +momgw <<= momsc [label="for RAN: CRCX\nrtpbridge/*@msc"]; +momgw =>> momsc [label="for RAN: CRCX OK\nEP-1 CI-1"]; +moms <<= momsc [label="(BSSMAP) ASSIGNMENT_COMMAND"]; +moms =>> momsc [label="(BSSMAP) Assignment Complete"]; +momgw <<= momsc [label="for RAN: MDCX\nEP-1 CI-1"]; +momgw =>> momsc [label="for RAN: MDCX OK\nEP-1 CI-1"]; +momgw <<= momsc [label="for CN: CRCX\nEP-1"]; +momgw =>> momsc [label="for CN: CRCX OK\nEP-1 CI-2"]; +momsc =>> sip [label="MNCC_RTP_CREATE\nIP:port-1"]; +momsc <<= sip [label="MNCC_CALL_PROC_REQ"]; +momsc note momsc [label="CC stops guard timer"]; +momsc note momsc [label="CC starts guard timer (180s)"]; +momsc abox momsc [label="CC state:\nMO_CALL_PROC"]; +moms <<= momsc [label="CC CALL_PROC"]; +mtmsc <<= sip [label="MNCC_SETUP_REQ"]; +mtms <<= mtmsc [label="Paging"]; +mtms =>> mtmsc [label="RR PAG_RESP"]; +mtms <<= mtmsc [label="MM AUTH_REQ"]; +mtms =>> mtmsc [label="MM NULL"]; +mtms =>> mtmsc [label="MM AUTH_RESP"]; +mtms <<= mtmsc [label="(RANAP) SecurityModeCommand"]; +mtms =>> mtmsc [label="(RANAP) SecurityModeControl successfulOutcome"]; +mtms <<= mtmsc [label="(RANAP) CommonId"]; +mtmsc note mtmsc [label="CC starts timer T303 (30s)"]; +mtmsc abox mtmsc [label="CC state:\nCALL_PRESENT"]; +mtms <<= mtmsc [label="CC SETUP"]; +mtms =>> mtmsc [label="CC CALL_CONF"]; +mtmsc note mtmsc [label="CC stops timer T303"]; +mtmsc note mtmsc [label="CC starts timer T310 (30s)"]; +mtmsc abox mtmsc [label="CC state:\nMO_TERM_CALL_CONF"]; +mtmgw <<= mtmsc [label="for RAN: CRCX\nrtpbridge/*@msc"]; +mtmsc =>> sip [label="MNCC_CALL_CONF_IND"]; +mtmsc <<= sip [label="MNCC_RTP_CREATE"]; +mtmgw =>> mtmsc [label="for RAN: CRCX OK\nEP-2 CI-3"]; +mtms <<= mtmsc [label="(RANAP) RAB AssignmentRequest"]; +mtms =>> mtmsc [label="(RANAP) RAB Assignment Response"]; +mtmgw <<= mtmsc [label="for RAN: MDCX\nEP-2 CI-3"]; +mtmgw =>> mtmsc [label="for RAN: MDCX OK\nEP-2 CI-3"]; +mtmgw <<= mtmsc [label="for CN: CRCX\nEP-2"]; +mtmgw =>> mtmsc [label="for CN: CRCX OK\nEP-2 CI-4"]; +mtmsc =>> sip [label="MNCC_RTP_CREATE\nIP:port-2"]; +mtms =>> mtmsc [label="CC ALERTING"]; +mtmsc note mtmsc [label="CC stops timer T310"]; +mtmsc note mtmsc [label="CC starts timer T301 (180s)"]; +mtmsc abox mtmsc [label="CC state:\nCALL_RECEIVED"]; +mtmsc =>> sip [label="MNCC_ALERT_IND"]; +momsc <<= sip [label="MNCC_ALERT_REQ"]; +momsc note momsc [label="CC stops guard timer"]; +momsc note momsc [label="CC starts guard timer (180s)"]; +momsc abox momsc [label="CC state:\nCALL_DELIVERED"]; +moms <<= momsc [label="CC ALERTING"]; +mtms =>> mtmsc [label="CC CONNECT"]; +mtmsc note mtmsc [label="CC stops timer T301"]; +mtmsc abox mtmsc [label="CC state:\nCONNECT_REQUEST"]; +mtmsc =>> sip [label="MNCC_SETUP_CNF"]; +mtmsc <<= sip [label="MNCC_RTP_CONNECT\nIP:port-1"]; +mtmgw <<= mtmsc [label="for CN: MDCX\nEP-2 CI-4"]; +mtmsc <<= sip [label="MNCC_SETUP_COMPL_REQ"]; +mtmsc note mtmsc [label="CC starts guard timer (180s)"]; +mtmsc abox mtmsc [label="CC state:\nACTIVE"]; +mtmsc note mtmsc [label="CC stops guard timer"]; +mtms <<= mtmsc [label="CC CONNECT_ACK"]; +mtmgw =>> mtmsc [label="for CN: MDCX OK\nEP-2 CI-4"]; +momsc <<= sip [label="MNCC_RTP_CONNECT\nIP:port-2"]; +momgw <<= momsc [label="for CN: MDCX\nEP-1 CI-2"]; +momsc <<= sip [label="MNCC_SETUP_RSP"]; +momsc note momsc [label="CC stops guard timer"]; +momsc note momsc [label="CC starts guard timer (180s)"]; +momsc note momsc [label="CC starts timer T313 (30s)"]; +momsc abox momsc [label="CC state:\nCONNECT_IND"]; +moms <<= momsc [label="CC CONNECT"]; +momgw =>> momsc [label="for CN: MDCX OK\nEP-1 CI-2"]; +moms =>> momsc [label="CC CONNECT_ACK"]; +momsc note momsc [label="CC stops timer T313"]; +momsc abox momsc [label="CC state:\nACTIVE"]; +momsc note momsc [label="CC stops guard timer"]; +momsc =>> sip [label="MNCC_SETUP_COMPL_IND"]; +moms =>> momsc [label="CC DISCONNECT"]; +momsc abox momsc [label="CC state:\nDISCONNECT_IND"]; +momsc =>> sip [label="MNCC_DISC_IND"]; +momsc <<= sip [label="MNCC_REL_REQ"]; +momsc note momsc [label="CC starts guard timer (180s)"]; +momsc note momsc [label="CC starts timer T308 (10s)"]; +momsc abox momsc [label="CC state:\nRELEASE_REQ"]; +moms <<= momsc [label="CC RELEASE"]; +mtmsc <<= sip [label="MNCC_DISC_REQ"]; +mtmsc note mtmsc [label="CC starts guard timer (180s)"]; +mtmsc note mtmsc [label="CC starts timer T306 (30s)"]; +mtmsc abox mtmsc [label="CC state:\nDISCONNECT_IND"]; +mtms <<= mtmsc [label="CC DISCONNECT"]; +moms =>> momsc [label="CC RELEASE_COMPL"]; +momsc note momsc [label="CC stops timer T308"]; +momsc abox momsc [label="CC state:\nNULL"]; +momsc note momsc [label="CC stops guard timer"]; +moms <<= momsc [label="(BSSMAP) CLEAR_COMMAND"]; +momsc =>> sip [label="MNCC_REL_CNF"]; +moms =>> momsc [label="(BSSMAP) Clear Complete"]; +mtms =>> mtmsc [label="CC RELEASE"]; +mtmsc note mtmsc [label="CC stops timer T306"]; +mtms <<= mtmsc [label="CC RELEASE_COMPL"]; +mtmsc abox mtmsc [label="CC state:\nNULL"]; +mtmsc note mtmsc [label="CC stops guard timer"]; +mtms <<= mtmsc [label="(RANAP) Iu Release"]; +mtmsc =>> sip [label="MNCC_REL_IND"]; +mtms =>> mtmsc [label="(RANAP) Iu Release successfulOutcome"]; +moms =>> momsc [label="IMSI Detach"]; +mtms =>> mtmsc [label="IMSI Detach"]; +}