/** Destroy client session (session must be terminated prior to destroy) */ MRCP_DECLARE(apt_bool_t) mrcp_application_session_destroy(mrcp_session_t *session) { if(!session) { return FALSE; } apt_log(APT_PRIO_NOTICE,"Destroy Session <%s>",session->id.buf ? session->id.buf : "new"); mrcp_session_destroy(session); return TRUE; }
/** Destroy client session (session must be terminated prior to destroy) */ MRCP_DECLARE(apt_bool_t) mrcp_application_session_destroy(mrcp_session_t *session) { if(!session) { return FALSE; } apt_obj_log(APT_LOG_MARK,APT_PRIO_NOTICE,session->log_obj,"Destroy MRCP Handle %s",session->name); mrcp_session_destroy(session); return TRUE; }
static void mrcp_unirtsp_session_destroy(mrcp_unirtsp_session_t *session) { if(session->home) { su_home_unref(session->home); session->home = NULL; } rtsp_server_session_object_set(session->rtsp_session,NULL); mrcp_session_destroy(session->mrcp_session); }
static void mrcp_unirtsp_session_destroy(mrcp_unirtsp_session_t *session) { if(session->home) { su_home_unref(session->home); session->home = NULL; } rtsp_server_session_object_set(session->rtsp_session,NULL); apt_log(APT_LOG_MARK,APT_PRIO_NOTICE,"Destroy Session "APT_SID_FMT,MRCP_SESSION_SID(session->mrcp_session)); mrcp_session_destroy(session->mrcp_session); }
static mrcp_session_t* mrcp_server_sig_agent_session_create(mrcp_sig_agent_t *signaling_agent) { mrcp_server_t *server = signaling_agent->parent; mrcp_server_session_t *session = mrcp_server_session_create(); session->server = server; session->profile = mrcp_server_profile_get_by_agent(server,session,signaling_agent); if(!session->profile) { mrcp_session_destroy(&session->base); return NULL; } session->base.signaling_agent = signaling_agent; session->base.request_vtable = &session_request_vtable; return &session->base; }
static apt_bool_t mrcp_sofia_on_session_terminate(mrcp_session_t *session) { mrcp_sofia_session_t *sofia_session = session->obj; if(sofia_session) { if(sofia_session->nh) { nua_handle_bind(sofia_session->nh, NULL); nua_handle_destroy(sofia_session->nh); } if(sofia_session->home) { su_home_unref(sofia_session->home); sofia_session->home = NULL; } sofia_session->session = NULL; } apt_log(APT_LOG_MARK,APT_PRIO_NOTICE,"Destroy Session "APT_SID_FMT, MRCP_SESSION_SID(session)); mrcp_session_destroy(session); return TRUE; }
static apt_bool_t mrcp_sofia_on_session_terminate(mrcp_session_t *session) { mrcp_sofia_session_t *sofia_session = session->obj; if(sofia_session) { if(sofia_session->session) { apt_log(APT_PRIO_NOTICE,"Destroy Session"); mrcp_session_destroy(sofia_session->session); sofia_session->session = NULL; } if(sofia_session->nh) { nua_handle_bind(sofia_session->nh, NULL); nua_handle_destroy(sofia_session->nh); } if(sofia_session->home) { su_home_unref(sofia_session->home); sofia_session->home = NULL; } } return TRUE; }
static mrcp_session_t* mrcp_server_sig_agent_session_create(mrcp_sig_agent_t *signaling_agent) { mrcp_server_t *server = signaling_agent->parent; mrcp_server_session_t *session = mrcp_server_session_create(); session->server = server; session->profile = mrcp_server_profile_get_by_agent(server,session,signaling_agent); if(!session->profile) { apt_log(APT_LOG_MARK,APT_PRIO_WARNING,"Cannot Find Profile by Agent "APT_NAMESID_FMT, session->base.name, MRCP_SESSION_SID(&session->base)); mrcp_session_destroy(&session->base); return NULL; } apt_log(APT_LOG_MARK,APT_PRIO_INFO,"Create Session "APT_NAMESID_FMT" [%s]", session->base.name, MRCP_SESSION_SID(&session->base), session->profile->id); session->base.signaling_agent = signaling_agent; session->base.request_vtable = &session_request_vtable; return &session->base; }