digraph G {
rankdir=LR;
CRCX_RAN [label="CRCX_RAN\nfsm_crcx_ran_cb()"]
CRCX_CN [label="CRCX_CN\nfsm_crcx_cn_cb()"]
CRCX_COMPL [label="CRCX_COMPL\nfsm_crcx_compl()"]
MDCX_CN [label="MDCX_CN\nfsm_mdcx_cn_cb()"]
MDCX_CN_COMPL [label="MDCX_CN_COMPL\nfsm_mdcx_cn_compl_cb()"]
MDCX_RAN [label="MDCX_RAN\nfsm_mdcx_ran_cb()"]
MDCX_RAN_COMPL [label="MDCX_RAN_COMPL\nfsm_mdcx_ran_compl_cb()"]
CALL [label="CALL\nfsm_call_cb()"]
HALT [label="HALT\nfsm_halt_cb()"]
_handle_error [label="_handle_error()",shape=box]
fsm_timeout_cb [label="fsm_timeout_cb()",shape=box]
msc_mgcp_call_assignment [label="msc_mgcp_call_assignment()",shape=box]
msc_mgcp_call_release [label="msc_mgcp_call_release()",shape=box]
mgw_crcx_ran_resp_cb [label="mgw_crcx_ran_resp_cb()",shape=box]
mgw_crcx_cn_resp_cb [label="mgw_crcx_cn_resp_cb()",shape=box]
msc_mgcp_call_complete [label="msc_mgcp_call_complete()",shape=box]
mgw_mdcx_cn_resp_cb [label="mgw_mdcx_cn_resp_cb()",shape=box]
msc_mgcp_ass_complete [label="msc_mgcp_ass_complete()",shape=box]
mgw_mdcx_ran_resp_cb [label="mgw_mdcx_ran_resp_cb()",shape=box]
mgw_dlcx_all_resp_cb [label="mgw_dlcx_all_resp_cb()",shape=box]
CRCX_RAN->HALT [label="-"]
CRCX_RAN->CALL [label="-"]
CRCX_RAN->CRCX_CN [label="-"]
CRCX_CN->HALT [label="-"]
CRCX_CN->CALL [label="-"]
CRCX_CN->CRCX_COMPL [label="CRCX_RAN_RESP"]
CRCX_COMPL->HALT [label="-"]
CRCX_COMPL->CALL [label="-"]
CRCX_COMPL->MDCX_CN [label="CRCX_CN_RESP"]
MDCX_CN->HALT [label="-"]
MDCX_CN->CALL [label="-"]
MDCX_CN->MDCX_CN_COMPL [label="CONNECT"]
MDCX_CN_COMPL->HALT [label="-"]
MDCX_CN_COMPL->CALL [label="-"]
MDCX_CN_COMPL->MDCX_RAN [label="MDCX_CN_RESP"]
MDCX_RAN->HALT [label="-"]
MDCX_RAN->CALL [label="-"]
MDCX_RAN->MDCX_RAN_COMPL [label="ASSIGN"]
MDCX_RAN_COMPL->HALT [label="-"]
MDCX_RAN_COMPL->CALL [label="MDCX_RAN_RESP"]
CALL->HALT [label="-"]
HALT->HALT [label="-"]
_handle_error->CALL [label="TEARDOWN_ERROR",style=dotted]
_handle_error->HALT [label="TEARDOWN_ERROR",style=dotted]
_handle_error->CRCX_CN [label="TEARDOWN_ERROR",style=dotted,arrowhead=halfopen]
_handle_error->CRCX_COMPL [label="TEARDOWN_ERROR",style=dotted,arrowhead=halfopen]
_handle_error->MDCX_CN [label="TEARDOWN_ERROR",style=dotted,arrowhead=halfopen]
_handle_error->MDCX_RAN [label="TEARDOWN_ERROR",style=dotted,arrowhead=halfopen]
_handle_error->MDCX_RAN_COMPL [label="TEARDOWN_ERROR",style=dotted,arrowhead=halfopen]
fsm_timeout_cb->HALT [label="TEARDOWN",style=dotted]
fsm_timeout_cb->CRCX_CN [label="TEARDOWN",style=dotted,arrowhead=halfopen]
fsm_timeout_cb->CRCX_COMPL [label="TEARDOWN",style=dotted,arrowhead=halfopen]
fsm_timeout_cb->MDCX_CN [label="TEARDOWN",style=dotted,arrowhead=halfopen]
fsm_timeout_cb->MDCX_CN_COMPL [label="TEARDOWN",style=dotted,arrowhead=halfopen]
fsm_timeout_cb->MDCX_RAN [label="TEARDOWN",style=dotted,arrowhead=halfopen]
fsm_timeout_cb->MDCX_RAN_COMPL [label="TEARDOWN",style=dotted,arrowhead=halfopen]
fsm_timeout_cb->CALL [label="TEARDOWN",style=dotted,arrowhead=halfopen]
msc_mgcp_call_assignment->CRCX_RAN [label="INIT",style=dotted,arrowhead=halfopen]
msc_mgcp_call_release->CRCX_CN [label="TEARDOWN",style=dotted,arrowhead=halfopen]
msc_mgcp_call_release->CRCX_COMPL [label="TEARDOWN",style=dotted,arrowhead=halfopen]
msc_mgcp_call_release->MDCX_CN [label="TEARDOWN",style=dotted,arrowhead=halfopen]
msc_mgcp_call_release->MDCX_CN_COMPL [label="TEARDOWN",style=dotted,arrowhead=halfopen]
msc_mgcp_call_release->MDCX_RAN [label="TEARDOWN",style=dotted,arrowhead=halfopen]
msc_mgcp_call_release->MDCX_RAN_COMPL [label="TEARDOWN",style=dotted,arrowhead=halfopen]
msc_mgcp_call_release->CALL [label="TEARDOWN",style=dotted,arrowhead=halfopen]
msc_mgcp_call_release->HALT [label="TEARDOWN",style=dotted,arrowhead=halfopen]
mgw_crcx_ran_resp_cb->CRCX_CN [label="CRCX_RAN_RESP",style=dotted,arrowhead=halfopen]
mgw_crcx_cn_resp_cb->CRCX_COMPL [label="CRCX_CN_RESP",style=dotted,arrowhead=halfopen]
msc_mgcp_call_complete->MDCX_CN [label="CONNECT",style=dotted,arrowhead=halfopen]
mgw_mdcx_cn_resp_cb->MDCX_CN_COMPL [label="MDCX_CN_RESP",style=dotted,arrowhead=halfopen]
msc_mgcp_ass_complete->MDCX_RAN [label="ASSIGN",style=dotted,arrowhead=halfopen]
mgw_mdcx_ran_resp_cb->MDCX_RAN_COMPL [label="MDCX_RAN_RESP",style=dotted,arrowhead=halfopen]
mgw_dlcx_all_resp_cb->HALT [label="DLCX_ALL_RESP",style=dotted,arrowhead=halfopen]
}
