msc { hscale = "3"; ue,hnb,hnbgw,cn; ue box hnb [ label = "Radio Channel Establishment" ]; ue => hnb [ label = "RRC (MM LOC UPD REQ)" ] ; hnb => hnbgw [ label = "RUA CONNECT (RANAP Initial UE Msg (CM SERV REQ))" ]; hnbgw => cn [ label = "SCCP CR (RANAP Initial UE Msg (CM SERV REQ))" ]; cn >> hnbgw [ label = "SCCP CC" ]; --- [ label = "Optional retrieval of IMSI (if not given in CM or retrived from VLR by TMSI)" ]; cn => hnbgw [ label = "SCCP DT1 (RANAP DirectTransfer (MM IDENTITY REQ))" ]; hnbgw => hnb [ label = "RUA DT (RANAP DirectTransfer (MM IDENTITY REQ))" ]; hnb => ue [ label = "RRC (MM IDENTITY REQ)" ]; ue >> hnb [ label = "RRC (MM IDENTITY RESP)" ]; hnb >> hnbgw [ label = "RUA DT (RANAP DirectTransfer (MM IDENTITY RESP))" ]; hnbgw >> cn [ label = "SCCP DT1 (RANAP DirectTransfer (MM IDENTITY RESP))" ]; --- [ label = "Mandatory activation of Integrity Protection" ]; cn => hnbgw [ label = "SCCP DT1 (RANAP SecurityModeCommand (IK))" ]; hnbgw => hnb [ label = "RUA DT (RANAP SecurityModeCommand (IK))" ]; hnb >> hnbgw [ label = "RUA DT (RANAP SecurityModeResponse (IK))" ]; hnbgw >> cn [ label = "SCCP DT1 (RANAP SecurityModeResponse (IK))" ]; cn => hnbgw [ label = "SCCP DT1 (RANAP CommonID)" ]; hnbgw => hnb [ label = "RUA DT (RANAP CommonID)" ]; --- [ label = "Optional Authentication" ]; cn => hnbgw [ label = "SCCP DT1 (RANAP DirectTransfer (MM AUTH REQ))" ]; hnbgw => hnb [ label = "RUA DT (RANAP DirectTransfer (MM AUTH REQ))" ]; hnb => ue [ label = "RRC (MM AUTH REQ)" ]; ue >> hnb [ label = "RRC (MM AUTH RESP)" ]; hnb >> hnbgw [ label = "RUA DT (RANAP DirectTransfer (MM AUTH RESP))" ]; hnbgw >> cn [ label = "SCCP DT1 (RANAP DirectTransfer (MM AUTH RESP))" ]; --- [ label = "Optional activation of Encryption" ]; cn => hnbgw [ label = "SCCP DT1 (RANAP SecurityModeCommand (IK+CK))" ]; hnbgw => hnb [ label = "RUA DT (RANAP SecurityModeCommand (IK+CK))" ]; hnb >> hnbgw [ label = "RUA DT (RANAP SecurityModeResponse (IK+CK))" ]; hnbgw >> cn [ label = "SCCP DT1 (RANAP SecurityModeResponse (IK+CK))" ]; cn >> hnbgw [ label = "SCCP DT1 (RANAP DirectTransfer (CM SERV ACC))" ]; hnbgw >> hnb [ label = "RUA DT (RANAP DirectTransfer (CM SERV ACC))" ]; hnb >> ue [ label = "RRC (CM SERV ACC)" ]; ue box ue [ label = "subscriber A dials a call" ]; ue => hnb [ label = "RRC (CC SETUP)" ]; hnb => hnbgw [ label = "RUA DT (RANAP DirectTransfer (CC SETUP))" ]; hnbgw => cn [ label = "SCCP DT1 (RANAP DirectTransfer (CC SETUP))" ]; cn box cn [ label = "Signalling towards B subscriber via ISUP, SIP, ..." ]; cn => hnbgw [ label = "SCCP DT1 (RANAP DirectTransfer (CC ALERTING))" ]; hnbgw => hnb [ label = "RUA DT (RANAP DirectTransfer (CC ALERTING))" ]; hnb => ue [ label = "RC (CC ALERTING)" ]; --- [ label = "Assignment of Voice Channel" ]; cn => hnbgw [ label = "SCCP DT1 (RANAP RAB Assign Cmd)" ]; hnbgw => hnb [ label = "RUA DT (RANAP RAB Assign Cmd)" ]; hnb >> hnbgw [ label = "RUA DT (RANAP RAB Assign Rsp)" ]; hnbgw >> cn [ label = "SCCP DT1 (RANAP RAB Assign Rsp)" ]; cn box cn [ label = "subscriber B picks up the ringing call" ]; cn => hnbgw [ label = "SCCP DT1 (RANAP DirectTransfer (CC CALL CONF))" ]; hnbgw => hnb [ label = "RUA DT (RANAP DirectTransfer (CC CALL CONF))" ]; hnb => ue [ label = "RRC (CC CALL CONF)" ]; cn box ue [ label = "Voice channel open" ]; ue box ue [ label = "subscriber A hangs up" ]; ue => hnb [ label = "RRC (CC DISCONNECT)" ]; hnb => hnbgw [ label = "RUA DT (RANAP DirectTranfer (CC DISCONNECT))" ]; hnbgw => cn [ label = "SCCP DT1 (RANAP DirectTranfer (CC DISCONNECT))" ]; cn box hnb [ label = "RAB Release or Iu Release" ]; }