/** Register MRCP connection agent (MRCPv2 only) */ MRCP_DECLARE(apt_bool_t) mrcp_server_connection_agent_register(mrcp_server_t *server, mrcp_connection_agent_t *connection_agent) { const char *id; if(!connection_agent) { return FALSE; } id = mrcp_server_connection_agent_id_get(connection_agent); if(!id) { return FALSE; } apt_log(APT_LOG_MARK,APT_PRIO_INFO,"Register Connection Agent [%s]",id); mrcp_server_connection_resource_factory_set(connection_agent,server->resource_factory); mrcp_server_connection_agent_handler_set(connection_agent,server,&connection_method_vtable); server->connection_msg_pool = apt_task_msg_pool_create_dynamic(sizeof(connection_agent_task_msg_data_t),server->pool); apr_hash_set(server->cnt_agent_table,id,APR_HASH_KEY_STRING,connection_agent); if(server->task) { apt_task_t *task = apt_consumer_task_base_get(server->task); apt_task_t *connection_task = mrcp_server_connection_agent_task_get(connection_agent); apt_task_add(task,connection_task); } return TRUE; }
/** Destroy connection agent. */ MRCP_DECLARE(apt_bool_t) mrcp_server_connection_agent_destroy(mrcp_connection_agent_t *agent) { apt_log(APT_LOG_MARK,APT_PRIO_NOTICE,"Destroy MRCPv2 Agent [%s]", mrcp_server_connection_agent_id_get(agent)); return apt_poller_task_destroy(agent->task); }