blob: 4a14ff73828b21dddefe5dfe4ea5aa26b01c987d [file] [log] [blame]
Neels Hofmeyrc4628a32018-12-07 14:47:34 +01001msc {
Neels Hofmeyr62c0a2a2019-08-05 23:02:21 +02002 hscale=3;
Neels Hofmeyr7ea0db82019-08-05 23:08:38 +02003 msc1[label="osmo-msc"], mncc1[label="MNCC FSM\n(osmo-msc mncc_call.c)"], sipcon1[label="osmo-sip-connector"], sip[label="PBX"], sipcon2[label="osmo-sip-connector"], mncc2[label="MNCC FSM\n(osmo-msc mncc_call.c)"], msc2[label="osmo-msc"];
Neels Hofmeyrc4628a32018-12-07 14:47:34 +01004
Neels Hofmeyr62c0a2a2019-08-05 23:02:21 +02005 msc1 note sipcon1 [label="MO call"];
6 sipcon2 note msc2 [label="MT call"];
Neels Hofmeyrc4628a32018-12-07 14:47:34 +01007
Neels Hofmeyr7ea0db82019-08-05 23:08:38 +02008 mncc1 abox mncc1 [label="MNCC_CALL_ST_NOT_STARTED"];
Neels Hofmeyrc4628a32018-12-07 14:47:34 +01009 msc1 rbox msc1 [label="mncc_outgoing_start()"];
Neels Hofmeyr7ea0db82019-08-05 23:08:38 +020010 msc1 -> mncc1 [label="MNCC_CALL_EV_OUTGOING_START"];
Neels Hofmeyrc4628a32018-12-07 14:47:34 +010011
Neels Hofmeyr7ea0db82019-08-05 23:08:38 +020012 mncc1 abox mncc1 [label="MNCC_CALL_ST_OUTGOING_WAIT_PROCEEDING"];
Neels Hofmeyr62c0a2a2019-08-05 23:02:21 +020013 mncc1 => sipcon1 [label="MNCC_SETUP_IND
14 \n callref, IMSI, called and calling number, SDP"];
15 sipcon1 => sip [label="SIP INVITE
16 \n from, to, SDP"];
17 sipcon1 <= sip [label="SIP 100 Trying"];
18 mncc1 <= sipcon1 [label="MNCC_RTP_CREATE
Neels Hofmeyrc4628a32018-12-07 14:47:34 +010019 \n callref"];
20 mncc1 rbox mncc1 [label="mncc_rx_rtp_create()"];
Neels Hofmeyr62c0a2a2019-08-05 23:02:21 +020021 mncc1 => sipcon1 [label="MNCC_RTP_CREATE
Neels Hofmeyrc4628a32018-12-07 14:47:34 +010022 \n callref, RTP IP address and port"];
Neels Hofmeyr62c0a2a2019-08-05 23:02:21 +020023 mncc1 <= sipcon1 [label="MNCC_CALL_PROC_REQ
Neels Hofmeyrc4628a32018-12-07 14:47:34 +010024 \n callref, RTP IP address and port"];
Neels Hofmeyr7ea0db82019-08-05 23:08:38 +020025 mncc1 abox mncc1 [label="MNCC_CALL_ST_OUTGOING_WAIT_COMPLETE"];
Neels Hofmeyrc4628a32018-12-07 14:47:34 +010026
Neels Hofmeyr62c0a2a2019-08-05 23:02:21 +020027 sip => sipcon2 [label="SIP INVITE
28 \n from, to, SDP"];
29 sipcon2 => sip [label="SIP 100 Trying"];
30 msc2 <= sipcon2 [label="MNCC_SETUP_REQ
31 \n callref, called and calling number
32 \n SDP"];
Neels Hofmeyr7ea0db82019-08-05 23:08:38 +020033 mncc2 abox mncc2 [label="MNCC_CALL_ST_NOT_STARTED"];
Neels Hofmeyrc4628a32018-12-07 14:47:34 +010034 msc2 rbox msc2 [label="mncc_incoming_start()"];
Neels Hofmeyr7ea0db82019-08-05 23:08:38 +020035 msc2 -> mncc2 [label="MNCC_CALL_EV_INCOMING_START"];
36 mncc2 abox mncc2 [label="MNCC_CALL_ST_INCOMING_WAIT_COMPLETE"];
Neels Hofmeyr62c0a2a2019-08-05 23:02:21 +020037 mncc2 => sipcon2 [label="MNCC_CALL_CONF_IND
38 \n callref, bearer capabilities, cccap and IMSI, SDP?"];
39 mncc2 <= sipcon2 [label="MNCC_RTP_CREATE
Neels Hofmeyrc4628a32018-12-07 14:47:34 +010040 \n callref"];
41 mncc2 rbox mncc2 [label="mncc_rx_rtp_create()"];
Neels Hofmeyr62c0a2a2019-08-05 23:02:21 +020042 mncc2 => sipcon2 [label="MNCC_RTP_CREATE
43 \n callref, RTP IP address and port, SDP?"];
44 mncc2 => sipcon2 [label="MNCC_ALERT_IND
Neels Hofmeyrc4628a32018-12-07 14:47:34 +010045 \n callref"];
Neels Hofmeyr62c0a2a2019-08-05 23:02:21 +020046 sipcon2 => sip [label="SIP 180 Ringing
47 \n SDP"];
Neels Hofmeyrc4628a32018-12-07 14:47:34 +010048
Neels Hofmeyr62c0a2a2019-08-05 23:02:21 +020049 sipcon1 <= sip [label="SIP 180 Ringing
50 \n SDP"];
51 mncc1 <= sipcon1 [label="MNCC_ALERT_REQ
Neels Hofmeyrc4628a32018-12-07 14:47:34 +010052 \n callref and progress"];
Neels Hofmeyr62c0a2a2019-08-05 23:02:21 +020053 sipcon1 => sip [label="SIP PRACK 180 Ringing"];
54 sipcon1 <= sip [label="SIP PRACK 200"];
Neels Hofmeyrc4628a32018-12-07 14:47:34 +010055
Neels Hofmeyr62c0a2a2019-08-05 23:02:21 +020056 mncc1 <= sipcon1 [label="MNCC_RTP_CONNECT
Neels Hofmeyrc4628a32018-12-07 14:47:34 +010057 \n callref, RTP IP and port"];
58 mncc1 rbox mncc1 [label="mncc_rx_rtp_connect()"];
59 msc1 <- mncc1 [label="rtp_stream_set_remote_addr()"];
Neels Hofmeyr62c0a2a2019-08-05 23:02:21 +020060
61 mncc2 => sipcon2 [label="MNCC_SETUP_CNF
62 \n callref, imsi and connected number, SDP?"];
63 sipcon2 => sip [label="SIP 200 OK
64 \n SDP"];
65 mncc2 <= sipcon2 [label="MNCC_RTP_CONNECT
66 \n callref, RTP IP and port"];
67 mncc2 rbox mncc2 [label="mncc_rx_rtp_connect()"];
68 mncc2 <= sipcon2 [label="MNCC_SETUP_COMPL_REQ
Neels Hofmeyrc4628a32018-12-07 14:47:34 +010069 \n callref"];
Neels Hofmeyr7ea0db82019-08-05 23:08:38 +020070 mncc2 abox mncc2 [label="MNCC_CALL_ST_TALKING"];
Neels Hofmeyr62c0a2a2019-08-05 23:02:21 +020071
72 sipcon1 <= sip [label="SIP 200 OK INVITE"];
73 mncc1 <= sipcon1 [label="MNCC_SETUP_RSP
74 \n callref"];
75 mncc1 => sipcon1 [label="MNCC_SETUP_COMPL_IND
Neels Hofmeyrc4628a32018-12-07 14:47:34 +010076 \n callref"];
Neels Hofmeyr7ea0db82019-08-05 23:08:38 +020077 mncc1 abox mncc1 [label="MNCC_CALL_ST_TALKING"];
Neels Hofmeyr62c0a2a2019-08-05 23:02:21 +020078 sipcon1 => sip [label="SIP ACK"];
Neels Hofmeyrc4628a32018-12-07 14:47:34 +010079
80 ...;
81 ... [label="Call goes on for a while..."];
82 ...;
83
84 mncc1 rbox mncc1 [label="mncc_release()"];
Neels Hofmeyr62c0a2a2019-08-05 23:02:21 +020085 mncc1 => sipcon1 [label="MNCC_DISC_IND
Neels Hofmeyrc4628a32018-12-07 14:47:34 +010086 \n callref and cause"];
Neels Hofmeyr7ea0db82019-08-05 23:08:38 +020087 mncc1 abox mncc1 [label="MNCC_CALL_ST_WAIT_RELEASE_ACK"];
Neels Hofmeyr62c0a2a2019-08-05 23:02:21 +020088 sipcon1 => sip [label="SIP BYE"];
89 sipcon1 <= sip [label="SIP 200 OK"];
90 mncc1 <= sipcon1 [label="MNCC_REL_REQ
Neels Hofmeyrc4628a32018-12-07 14:47:34 +010091 \n callref and cause"];
92
Neels Hofmeyr62c0a2a2019-08-05 23:02:21 +020093 sip => sipcon2 [label="SIP BYE"];
94 sip <= sipcon2 [label="SIP 200 OK"];
95 mncc2 <= sipcon2 [label="MNCC_DISC_REQ
Neels Hofmeyrc4628a32018-12-07 14:47:34 +010096 \n callref and cause"];
Neels Hofmeyr62c0a2a2019-08-05 23:02:21 +020097 mncc2 => sipcon2 [label="MNCC_REL_IND
Neels Hofmeyrc4628a32018-12-07 14:47:34 +010098 \n callref and cause"];
99 mncc2 abox mncc2 [label="terminated"];
100
Neels Hofmeyr62c0a2a2019-08-05 23:02:21 +0200101 mncc1 => sipcon1 [label="MNCC_REL_CNF
Neels Hofmeyrc4628a32018-12-07 14:47:34 +0100102 \n callref"];
103 mncc1 abox mncc1 [label="terminated"];
104}