bool UmcSession::ResourceDiscover() { if(!m_Running) return false; return (mrcp_application_resource_discover(m_pMrcpSession) == TRUE); }
/** Run demo resource discover scenario */ static apt_bool_t discover_application_run(demo_application_t *demo_application, const char *profile) { /* create session */ mrcp_session_t *session = mrcp_application_session_create(demo_application->application,profile,NULL); if(!session) { return FALSE; } /* send resource discover request */ if(mrcp_application_resource_discover(session) != TRUE) { mrcp_application_session_destroy(session); return FALSE; } return TRUE; }
/** \brief Send session management request to client stack and wait for async response */ static apt_bool_t uni_recog_sm_request_send(uni_speech_t *uni_speech, mrcp_sig_command_e sm_request) { apt_bool_t res = FALSE; ast_log(LOG_DEBUG, "Send session request type:%d\n",sm_request); apr_thread_mutex_lock(uni_speech->mutex); uni_speech->is_sm_request = TRUE; uni_speech->sm_request = sm_request; switch(sm_request) { case MRCP_SIG_COMMAND_SESSION_UPDATE: res = mrcp_application_session_update(uni_speech->session); break; case MRCP_SIG_COMMAND_SESSION_TERMINATE: res = mrcp_application_session_terminate(uni_speech->session); break; case MRCP_SIG_COMMAND_CHANNEL_ADD: res = mrcp_application_channel_add(uni_speech->session,uni_speech->channel); break; case MRCP_SIG_COMMAND_CHANNEL_REMOVE: res = mrcp_application_channel_remove(uni_speech->session,uni_speech->channel); break; case MRCP_SIG_COMMAND_RESOURCE_DISCOVER: res = mrcp_application_resource_discover(uni_speech->session); break; default: break; } if(res == TRUE) { /* Wait for session response */ ast_log(LOG_DEBUG, "Wait for session response\n"); if(apr_thread_cond_timedwait(uni_speech->wait_object,uni_speech->mutex,MRCP_APP_REQUEST_TIMEOUT) != APR_SUCCESS) { ast_log(LOG_ERROR, "Failed to get response, request timed out\n"); uni_speech->sm_response = MRCP_SIG_STATUS_CODE_FAILURE; } ast_log(LOG_DEBUG, "Waked up, status code: %d\n",uni_speech->sm_response); } uni_speech->is_sm_request = FALSE; apr_thread_mutex_unlock(uni_speech->mutex); return res; }