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

	cn box cn	[ label = "subscriber A send a SMS; 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 (CP-DATA (RP-DATA (SMS DELIVER))))" ];
	hnbgw => hnb	[ label = "RUA DT (RANAP DirectTransfer (CP-DATA (RP-DATA (SMS DELIVER))))" ];
	hnb => ue	[ label = "RRC (CP-DATA (RP-DATA (SMS DELIVER)))" ];

	ue => hnb	[ label = "RRC (CP-ACK)" ];
	hnb => hnbgw	[ label = "RUA DT (RANAP DirectTransfer (CP-ACK))" ];
	hnbgw => cn	[ label = "SCCP DT1 (RANAP DirectTransfer (CP-ACK))" ];
	
	ue => hnb	[ label = "RRC (CP-DATA (RP-ACK)" ];
	hnb => hnbgw	[ label = "RUA DT (RANAP DirectTransfer (CP-DATA (RP-ACK)))" ];
	hnbgw => cn	[ label = "SCCP DT1 (RANAP DirectTransfer (CP-DTA (RP-ACK)))" ];

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

	cn box cn	[ label = "MAP MT Forward SM to GMSC/SMSC" ];

	cn box hnb	[ label = "RAB Release or Iu Release" ];
}
