msc {
	hscale = "3";
	ue,hnb,hnbgw,cn;

	cn box cn	[ label = "subscriber A dials a call; signalling arrives at CN" ];

	cn => hnbgw	[ label = "SCCP UDT (RANAP Paging Command)" ];
	hnbgw => hnb	[ label = "RUA ConnectionlessTransfer (RANAP Paging Command)" ];
	hnb => ue 	[ label = "RRC Paging" ];
	
	ue box hnb	[ label = "Radio Channel Establishment" ];
	ue => hnb 	[ label = "RRC (CM PAGING RESP)" ] ;
	hnb => hnbgw 	[ label = "RUA CONNECT (RANAP Initial UE Msg (CM PAGING RESP))" ];
	hnbgw => cn	[ label = "SCCP CR (RANAP Initial UE Msg (CM PAGING RESP))" ];
	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)" ];

	cn => hnbgw	[ label = "SCCP DT1 (RANAP DirectTransfer (CC SETUP))" ];
	hnbgw => hnb	[ label = "RUA DT (RANAP DirectTransfer (CC SETUP))" ];
	hnb => ue	[ label = "RRC (CC SETUP)" ];

	ue => hnb	[ label = "RC (CC ALERTING)" ];
	hnb => hnbgw	[ label = "RUA DT (RANAP DirectTransfer (CC ALERTING))" ];
	hnbgw => cn	[ label = "SCCP DT1 (RANAP DirectTransfer (CC ALERTING))" ];
	cn box cn	[ label = "Signalling towards A subscriber via ISUP, SIP, ..." ];

	---		[ 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)" ];

	ue => hnb	[ label = "RRC (CC CONNECT)" ];
	hnb => hnbgw	[ label = "RUA DT (RANAP DirectTransfer (CC CONNECT))" ];
	hnbgw => cn	[ label = "SCCP DT1 (RANAP DirectTransfer (CC CONNECT))" ];

	cn box ue	[ label = "Voice channel open" ];

	ue box ue	[ label = "subscriber B 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" ];
}
