apt_bool_t mrcp_client_mpf_message_process(mpf_message_t *mpf_message) { mrcp_client_session_t *session = NULL; if(mpf_message->context) { session = mpf_context_object_get(mpf_message->context); } if(mpf_message->message_type == MPF_MESSAGE_TYPE_RESPONSE) { switch(mpf_message->command_id) { case MPF_COMMAND_ADD: apt_log(APT_LOG_MARK,APT_PRIO_DEBUG,"On Termination Add"); mrcp_client_on_termination_add(session,mpf_message); break; case MPF_COMMAND_MODIFY: apt_log(APT_LOG_MARK,APT_PRIO_DEBUG,"On Termination Modify"); mrcp_client_on_termination_modify(session,mpf_message); break; case MPF_COMMAND_SUBTRACT: apt_log(APT_LOG_MARK,APT_PRIO_DEBUG,"On Termination Subtract"); mrcp_client_on_termination_subtract(session,mpf_message); break; default: break; } } else if(mpf_message->message_type == MPF_MESSAGE_TYPE_EVENT) { apt_log(APT_LOG_MARK,APT_PRIO_DEBUG,"Process MPF Event"); } return TRUE; }
apt_bool_t mrcp_client_mpf_message_process(mpf_message_container_t *mpf_message_container) { apr_size_t i; mrcp_client_session_t *session; const mpf_message_t *mpf_message; for(i=0; i<mpf_message_container->count; i++) { mpf_message = &mpf_message_container->messages[i]; if(mpf_message->context) { session = mpf_engine_context_object_get(mpf_message->context); } else { session = NULL; } if(!session) { apt_log(APT_LOG_MARK,APT_PRIO_DEBUG,"Received MPF Message: NULL session"); continue; } if(mpf_message->message_type == MPF_MESSAGE_TYPE_RESPONSE) { switch(mpf_message->command_id) { case MPF_ADD_TERMINATION: mrcp_client_on_termination_add(session,mpf_message); break; case MPF_MODIFY_TERMINATION: mrcp_client_on_termination_modify(session,mpf_message); break; case MPF_SUBTRACT_TERMINATION: mrcp_client_on_termination_subtract(session,mpf_message); break; case MPF_ADD_ASSOCIATION: case MPF_REMOVE_ASSOCIATION: case MPF_RESET_ASSOCIATIONS: case MPF_APPLY_TOPOLOGY: case MPF_DESTROY_TOPOLOGY: if(mrcp_client_session_subrequest_remove(session) == TRUE) { if(session->state == SESSION_STATE_GENERATING_OFFER) { /* send offer to server */ mrcp_client_session_offer_send(session); } else if(session->state == SESSION_STATE_PROCESSING_ANSWER) { /* raise app response */ mrcp_app_sig_response_raise(session,TRUE); } } break; default: break; } } else if(mpf_message->message_type == MPF_MESSAGE_TYPE_EVENT) { apt_obj_log(APT_LOG_MARK,APT_PRIO_DEBUG,session->base.log_obj,"Process MPF Event " APT_NAMESID_FMT, MRCP_SESSION_NAMESID(session)); } } return TRUE; }