msc {
	hscale=2;
	notify [label="calling FSM"], mgwep[label="MGW endpoint FSM"], mgcp[label="mgcp client FSM"],
	mgw[label="MGW"];

	notify note mgw [label="MGW endpoint FSM\nmanages multiple CI for one endpoint"];

	|||;

	notify rbox notify [label="conn FSM"];
	notify box notify [label="gscon_ensure_mgw_endpoint()"];
	notify -> mgwep [label="mgw_endpoint_alloc()"];
	mgwep abox mgwep [label="MGWEP_ST_UNUSED"];

	...;
	...;
	...;
	notify rbox mgw [label="CRCX"];

	notify rbox notify [label="lchan RTP FSM"];
	notify -> mgwep [label="mgw_endpoint_ci_add()"];
	mgwep note mgwep [label="Return an unassigned endpoint CI slot in the local array"];
	...;
	mgwep note mgwep [label="First request on a CI must be a CRCX"];
	notify -> mgwep [label="mgw_endpoint_ci_request(CRCX)"];
	notify note mgwep [label="verb=CRCX\nverb_info='rtpbridge/*@mgw'\nnotify_event"];
	mgwep box mgwep [label="CI[x].pending=true"];
	mgwep abox mgwep [label="MGWEP_ST_WAIT_MGW_RESPONSE"];
	|||;
	notify note mgwep [label="If more mgw_endpoint_ci_request() are triggered, they will be set to
		'pending' and wait until all ongoing requests are through and MGWEP_ST_IN_USE is
		reached."];
	|||;
	mgwep box mgwep [label="for each pending CI:\nsend_verb()"];
	mgwep -> mgcp [label="CI[x]: mgcp_conn_create()"];
	mgwep note mgcp [label="Each CI[i] has two events from the FSM instance event range assigned, one
		for success, one for failure. These are passed to the mgcp client FSM."];
	mgcp => mgw [label="CRCX"];
	...;
	mgcp <= mgw [label="CRCX OK"];
	mgcp note mgw [label="MGW returns:\n'rtpbridge/123@mgw',\nnew CI identifier '123abc',\n
		MGW side RTP IP:port"];
	mgwep <- mgcp [label="CI[x] success event"];
	mgwep box mgwep [label="on_success(CI[x])"];
	mgwep note mgwep [label="CI[x].rtp_info = IP:port\nmgcp_ci_str = '123abc'\n
		endpoint name = 'rtpbridge/123@mgw'"];
	notify <- mgwep [label="notify_event from mgw_endpoint_ci_request()"];
	notify note mgwep [label="notify_event will be one of:\n
		LCHAN_RTP_EV_MGW_ENDPOINT_AVAILABLE (towards BTS)\n
		ASSIGNMENT_EV_MSC_MGW_OK (towards MSC)\n
		HO_EV_MSC_MGW_OK (towards MSC)"];
	mgwep abox mgwep [label="MGWEP_ST_IN_USE"];

	...;
	...;
	...;
	notify rbox mgw [label="MDCX"];

	mgwep note mgwep [label="Second or later request on a CI must be MDCX or DLCX"];
	notify -> mgwep [label="mgw_endpoint_ci_request(MDCX)"];
	notify note mgwep [label="verb=MDCX\nverb_info=BTS RTP IP:port\n
		automatic: full endpoint name as from CRCX OK\n
		notify_event\n"];
	mgwep box mgwep [label="CI[x].pending=true"];
	mgwep abox mgwep [label="MGWEP_ST_WAIT_MGW_RESPONSE"];
	mgwep box mgwep [label="for each pending CI:\nsend_verb()"];
	mgwep -> mgcp [label="CI[x]: mgcp_conn_modify()"];
	mgcp => mgw [label="MDCX"];
	...;
	mgcp <= mgw [label="MDCX OK"];
	mgwep <- mgcp [label="CI[x] success event"];
	mgwep box mgwep [label="on_success(CI[x])"];
	notify <- mgwep [label="notify_event from mgw_endpoint_ci_request()"];
	notify note mgwep [label="notify_event will be one of:\n
		LCHAN_RTP_EV_MGW_ENDPOINT_CONFIGURED (towards BTS)\n
		ASSIGNMENT_EV_MSC_MGW_OK (towards MSC)\n
		HO_EV_MSC_MGW_OK (towards MSC)"];
	mgwep abox mgwep [label="MGWEP_ST_IN_USE"];

	...;
	...;
	...;
	notify rbox mgw [label="DLCX"];

	notify -> mgwep [label="mgw_endpoint_ci_dlcx()"];
	mgwep box mgwep [label="mgw_endpoint_ci_request(DLCX)"];
	mgwep box mgwep [label="CI[x].pending=true"];
	mgwep abox mgwep [label="MGWEP_ST_WAIT_MGW_RESPONSE"];
	mgwep box mgwep [label="for each pending CI:\nsend_verb()"];
	mgwep -> mgcp [label="CI[x]: mgcp_conn_delete()"];
	mgcp => mgw [label="DLCX"];
	mgcp box mgcp [label="detach from parent fi"];
	mgwep box mgwep [label="forget and clear CI[x]"];
	--- [label="IF other CI remain valid"];
	mgwep abox mgwep [label="MGWEP_ST_IN_USE"];
	--- [label="IF no CI remain on endpoint"];
	mgwep abox mgwep [label="terminate"];
	notify rbox notify [label="conn FSM"];
	notify <- mgwep [label="GSCON_EV_FORGET_MGW_ENDPOINT"];
	---;
	...;
	mgcp <= mgw [label="DLCX OK"];
	mgcp abox mgcp [label="terminate"];

}
