mgcp_client_fsm 'terminate' logic has no timeout
While reading the mgcp_client_fsm code I noticed the 'terminate' logic whihc delays sending a DLCX if some other operation is still pending.
I don't really understand why this is required (it's perfectly legal to send MGCP commands without waiting for the response first, right?) - the problem is that there appears to be no related timeout. So if we set that 'terminate' flag, and we never get a response to whatver previous MGCP ommand, then we are stuck in this state indefinitiely and we never send the DLCX.
The main point of osmo_fsm was to introduce mechanisms to avoid such 'stuck' situations and to ensure there always is a timer running to recover.
Maybe my reading of the code os wrong, please clarify.