diff options
author | Neels Hofmeyr <nhofmeyr@sysmocom.de> | 2022-01-13 23:18:02 +0100 |
---|---|---|
committer | Neels Hofmeyr <nhofmeyr@sysmocom.de> | 2023-03-18 03:05:34 +0100 |
commit | bd5f8e900b030f6857ae6e7e3c4421dcd2d2be9d (patch) | |
tree | 5fb38addd1f28fdb1a7464660d773b63e04b0003 /doc/sequence_charts | |
parent | 11a746acd3de12e8b067283f977c6f7eaeb3ada1 (diff) |
do CN CRCX first
In order to send the MSC's RTP endpoint IP address+port in the initial
SDP, move the MGCP CRCX up to an earlier point in the sequence of
establishing a voice call.
Update the voice call sequence chart to show the effects.
Though the semantic change is rather simple, the patch is rather huge --
things have to happen in a different order, and async waits have to
happen at different times.
The new codec filter helps to carry codec resolution information across
the newly arranged code paths.
Related: SYS#5066
Change-Id: Ie433db1ba0c46d4b97538a969233c155cefac21c
Diffstat (limited to 'doc/sequence_charts')
-rw-r--r-- | doc/sequence_charts/voice_call_external_mncc.msc | 48 | ||||
-rw-r--r-- | doc/sequence_charts/voice_call_internal_mncc.msc | 50 |
2 files changed, 49 insertions, 49 deletions
diff --git a/doc/sequence_charts/voice_call_external_mncc.msc b/doc/sequence_charts/voice_call_external_mncc.msc index 980755d2e..94cedee67 100644 --- a/doc/sequence_charts/voice_call_external_mncc.msc +++ b/doc/sequence_charts/voice_call_external_mncc.msc @@ -13,24 +13,24 @@ 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 =>> mncc [label="MNCC_SETUP_IND"]; +momgw <<= momsc [label="for CN: CRCX\nrtpbridge/*@msc"]; +momgw =>> momsc [label="for CN: CRCX OK\nEP-1 CI-1 IP:port-1"]; +momsc =>> mncc [label="MNCC_SETUP_IND\nIP:port-1"]; +momgw <<= momsc [label="for RAN: CRCX\nEP-1"]; momsc <<= mncc [label="MNCC_RTP_CREATE"]; -momgw <<= momsc [label="for RAN: CRCX\nrtpbridge/*@msc"]; -momgw =>> momsc [label="for RAN: CRCX OK\nEP-1 CI-1 IP:port-1"]; +momgw =>> momsc [label="for RAN: CRCX OK\nEP-1 CI-2 IP:port-2"]; 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 IP:port-1"]; -momgw <<= momsc [label="for CN: CRCX\nEP-1"]; -momgw =>> momsc [label="for CN: CRCX OK\nEP-1 CI-2 IP:port-2"]; -momsc =>> mncc [label="MNCC_RTP_CREATE\nIP:port-2"]; +momgw <<= momsc [label="for RAN: MDCX\nEP-1 CI-2"]; +momsc =>> mncc [label="MNCC_RTP_CREATE\nIP:port-1"]; momsc <<= mncc [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 <<= mncc [label="MNCC_SETUP_REQ"]; +mtmsc <<= mncc [label="MNCC_SETUP_REQ\nIP:port-1"]; mtms <<= mtmsc [label="Paging"]; +momgw =>> momsc [label="for RAN: MDCX OK\nEP-1 CI-2 IP:port-2"]; mtms =>> mtmsc [label="(BSSMAP) Complete Layer 3 Information"]; mtms =>> mtmsc [label="RR PAG_RESP"]; mtms <<= mtmsc [label="MM AUTH_REQ"]; @@ -45,23 +45,23 @@ mtms =>> mtmsc [label="RR CIPH_M_COMPL"]; mtms =>> mtmsc [label="CC CALL_CONF"]; mtmsc note mtmsc [label="CC stops timer T303"]; mtmsc note mtmsc [label="CC starts timer T310 (30s)"]; +mtmgw <<= mtmsc [label="for CN: CRCX\nrtpbridge/*@msc"]; mtmsc abox mtmsc [label="CC state:\nMO_TERM_CALL_CONF"]; -mtmgw <<= mtmsc [label="for RAN: CRCX\nrtpbridge/*@msc"]; mtmsc =>> mncc [label="MNCC_CALL_CONF_IND"]; mtmsc <<= mncc [label="MNCC_RTP_CREATE"]; -mtmgw =>> mtmsc [label="for RAN: CRCX OK\nEP-2 CI-3 IP:port-3"]; +mtmgw =>> mtmsc [label="for CN: CRCX OK\nEP-2 CI-3 IP:port-3"]; +mtmgw <<= mtmsc [label="for RAN: CRCX\nEP-2"]; +mtmgw =>> mtmsc [label="for RAN: CRCX OK\nEP-2 CI-4 IP:port-4"]; mtms <<= mtmsc [label="(BSSMAP) ASSIGNMENT_COMMAND"]; mtms =>> mtmsc [label="(BSSMAP) Assignment Complete"]; -mtmgw <<= mtmsc [label="for RAN: MDCX\nEP-2 CI-3"]; -mtmgw =>> mtmsc [label="for RAN: MDCX OK\nEP-2 CI-3 IP:port-3"]; -mtmgw <<= mtmsc [label="for CN: CRCX\nEP-2"]; -mtmgw =>> mtmsc [label="for CN: CRCX OK\nEP-2 CI-4 IP:port-4"]; -mtmsc =>> mncc [label="MNCC_RTP_CREATE\nIP:port-4"]; +mtmgw <<= mtmsc [label="for RAN: MDCX\nEP-2 CI-4"]; +mtmsc =>> mncc [label="MNCC_RTP_CREATE\nIP:port-3"]; +mtmgw =>> mtmsc [label="for RAN: MDCX OK\nEP-2 CI-4 IP:port-4"]; 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 =>> mncc [label="MNCC_ALERT_IND"]; +mtmsc =>> mncc [label="MNCC_ALERT_IND\nIP:port-3"]; momsc <<= mncc [label="MNCC_ALERT_REQ"]; momsc note momsc [label="CC stops guard timer"]; momsc note momsc [label="CC starts guard timer (180s)"]; @@ -70,24 +70,24 @@ 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 =>> mncc [label="MNCC_SETUP_CNF"]; -mtmsc <<= mncc [label="MNCC_RTP_CONNECT\nIP:port-2"]; -mtmgw <<= mtmsc [label="for CN: MDCX\nEP-2 CI-4"]; +mtmsc =>> mncc [label="MNCC_SETUP_CNF\nIP:port-3"]; +mtmsc <<= mncc [label="MNCC_RTP_CONNECT\nIP:port-1"]; +mtmgw <<= mtmsc [label="for CN: MDCX\nEP-2 CI-3"]; mtmsc <<= mncc [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"]; -momsc <<= mncc [label="MNCC_RTP_CONNECT\nIP:port-4"]; -momgw <<= momsc [label="for CN: MDCX\nEP-1 CI-2"]; +momsc <<= mncc [label="MNCC_RTP_CONNECT\nIP:port-3"]; +momgw <<= momsc [label="for CN: MDCX\nEP-1 CI-1"]; momsc <<= mncc [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"]; -mtmgw =>> mtmsc [label="for CN: MDCX OK\nEP-2 CI-4 IP:port-4"]; -momgw =>> momsc [label="for CN: MDCX OK\nEP-1 CI-2 IP:port-2"]; +mtmgw =>> mtmsc [label="for CN: MDCX OK\nEP-2 CI-3 IP:port-3"]; +momgw =>> momsc [label="for CN: MDCX OK\nEP-1 CI-1 IP:port-1"]; moms =>> momsc [label="CC CONNECT_ACK"]; momsc note momsc [label="CC stops timer T313"]; momsc abox momsc [label="CC state:\nACTIVE"]; diff --git a/doc/sequence_charts/voice_call_internal_mncc.msc b/doc/sequence_charts/voice_call_internal_mncc.msc index 69af60ed0..898c1ff9a 100644 --- a/doc/sequence_charts/voice_call_internal_mncc.msc +++ b/doc/sequence_charts/voice_call_internal_mncc.msc @@ -13,29 +13,29 @@ 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 =>> mncc [label="MNCC_SETUP_IND"]; +momgw <<= momsc [label="for CN: CRCX\nrtpbridge/*@msc"]; +momgw =>> momsc [label="for CN: CRCX OK\nEP-1 CI-1 IP:port-1"]; +momsc =>> mncc [label="MNCC_SETUP_IND\nIP:port-1"]; momsc <<= mncc [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"]; -momgw <<= momsc [label="for RAN: CRCX\nrtpbridge/*@msc"]; momsc <<= mncc [label="MNCC_LCHAN_MODIFY"]; momsc note momsc [label="CC stops guard timer"]; momsc note momsc [label="CC starts guard timer (180s)"]; -mtmsc <<= mncc [label="MNCC_SETUP_REQ"]; +mtmsc <<= mncc [label="MNCC_SETUP_REQ\nIP:port-1"]; mtms <<= mtmsc [label="Paging"]; -momgw =>> momsc [label="for RAN: CRCX OK\nEP-1 CI-1 IP:port-1"]; +momgw <<= momsc [label="for RAN: CRCX\nEP-1"]; +momgw =>> momsc [label="for RAN: CRCX OK\nEP-1 CI-2 IP:port-2"]; 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 IP:port-1"]; -momgw <<= momsc [label="for CN: CRCX\nEP-1"]; -momgw =>> momsc [label="for CN: CRCX OK\nEP-1 CI-2 IP:port-2"]; -momsc =>> mncc [label="MNCC_RTP_CREATE\nIP:port-2"]; mtms =>> mtmsc [label="(BSSMAP) Complete Layer 3 Information"]; mtms =>> mtmsc [label="RR PAG_RESP"]; mtms <<= mtmsc [label="MM AUTH_REQ"]; +moms =>> momsc [label="(BSSMAP) Assignment Complete"]; +momgw <<= momsc [label="for RAN: MDCX\nEP-1 CI-2"]; +momsc =>> mncc [label="MNCC_RTP_CREATE\nIP:port-1"]; +momgw =>> momsc [label="for RAN: MDCX OK\nEP-1 CI-2 IP:port-2"]; mtms =>> mtmsc [label="MM AUTH_RESP"]; mtms <<= mtmsc [label="(BSSMAP) CIPHER_MODE_COMMAND"]; mtms =>> mtmsc [label="(BSSMAP) Ciphering Mode Complete"]; @@ -47,49 +47,49 @@ mtms =>> mtmsc [label="RR CIPH_M_COMPL"]; mtms =>> mtmsc [label="CC CALL_CONF"]; mtmsc note mtmsc [label="CC stops timer T303"]; mtmsc note mtmsc [label="CC starts timer T310 (30s)"]; +mtmgw <<= mtmsc [label="for CN: CRCX\nrtpbridge/*@msc"]; mtmsc abox mtmsc [label="CC state:\nMO_TERM_CALL_CONF"]; -mtmgw <<= mtmsc [label="for RAN: CRCX\nrtpbridge/*@msc"]; mtmsc =>> mncc [label="MNCC_CALL_CONF_IND"]; mtmsc <<= mncc [label="MNCC_LCHAN_MODIFY"]; mtmsc note mtmsc [label="CC starts guard timer (180s)"]; -mtmgw =>> mtmsc [label="for RAN: CRCX OK\nEP-2 CI-3 IP:port-3"]; +mtmgw =>> mtmsc [label="for CN: CRCX OK\nEP-2 CI-3 IP:port-3"]; +mtmgw <<= mtmsc [label="for RAN: CRCX\nEP-2"]; +mtmgw =>> mtmsc [label="for RAN: CRCX OK\nEP-2 CI-4 IP:port-4"]; mtms <<= mtmsc [label="(BSSMAP) ASSIGNMENT_COMMAND"]; mtms =>> mtmsc [label="(BSSMAP) Assignment Complete"]; -mtmgw <<= mtmsc [label="for RAN: MDCX\nEP-2 CI-3"]; -mtmgw =>> mtmsc [label="for RAN: MDCX OK\nEP-2 CI-3 IP:port-3"]; -mtmgw <<= mtmsc [label="for CN: CRCX\nEP-2"]; -mtmgw =>> mtmsc [label="for CN: CRCX OK\nEP-2 CI-4 IP:port-4"]; -mtmsc =>> mncc [label="MNCC_RTP_CREATE\nIP:port-4"]; +mtmgw <<= mtmsc [label="for RAN: MDCX\nEP-2 CI-4"]; +mtmsc =>> mncc [label="MNCC_RTP_CREATE\nIP:port-3"]; +mtmgw =>> mtmsc [label="for RAN: MDCX OK\nEP-2 CI-4 IP:port-4"]; 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 =>> mncc [label="MNCC_ALERT_IND"]; -momsc <<= mncc [label="MNCC_ALERT_REQ"]; +mtmsc =>> mncc [label="MNCC_ALERT_IND\nIP:port-3"]; +momsc <<= mncc [label="MNCC_ALERT_REQ\nIP:port-3"]; 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"]; +momgw <<= momsc [label="for CN: MDCX\nEP-1 CI-1"]; moms <<= momsc [label="CC ALERTING"]; +momgw =>> momsc [label="for CN: MDCX OK\nEP-1 CI-1 IP:port-1"]; mtms =>> mtmsc [label="CC CONNECT"]; mtmsc note mtmsc [label="CC stops timer T301"]; mtmsc abox mtmsc [label="CC state:\nCONNECT_REQUEST"]; -mtmsc =>> mncc [label="MNCC_SETUP_CNF"]; +mtmsc =>> mncc [label="MNCC_SETUP_CNF\nIP:port-3"]; mtmsc <<= mncc [label="MNCC_SETUP_COMPL_REQ"]; mtmsc note mtmsc [label="CC stops guard timer"]; 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"]; -momsc <<= mncc [label="MNCC_SETUP_RSP"]; +momsc <<= mncc [label="MNCC_SETUP_RSP\nIP:port-3"]; 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"]; -mtmgw <<= mtmsc [label="for CN: MDCX\nEP-2 CI-4"]; -momgw <<= momsc [label="for CN: MDCX\nEP-1 CI-2"]; -mtmgw =>> mtmsc [label="for CN: MDCX OK\nEP-2 CI-4 IP:port-4"]; -momgw =>> momsc [label="for CN: MDCX OK\nEP-1 CI-2 IP:port-2"]; +mtmgw <<= mtmsc [label="for CN: MDCX\nEP-2 CI-3"]; +mtmgw =>> mtmsc [label="for CN: MDCX OK\nEP-2 CI-3 IP:port-3"]; moms =>> momsc [label="CC CONNECT_ACK"]; momsc note momsc [label="CC stops timer T313"]; momsc abox momsc [label="CC state:\nACTIVE"]; |