[commit] r4948 - freeswitch/trunk/src/mod/endpoints/mod_wanpipe
Author: anthm Date: Mon Apr 16 16:20:24 2007 New Revision: 4948 Modified: freeswitch/trunk/src/mod/endpoints/mod_wanpipe/mod_wanpipe.c Log: ... Modified: freeswitch/trunk/src/mod/endpoints/mod_wanpipe/mod_wanpipe.c ============================================================================== --- freeswitch/trunk/src/mod/endpoints/mod_wanpipe/mod_wanpipe.c (original) +++ freeswitch/trunk/src/mod/endpoints/mod_wanpipe/mod_wanpipe.c Mon Apr 16 16:20:24 2007 @@ -134,7 +134,6 @@ struct wpsock { sng_fd_t fd; char *name; - struct private_object *tech_pvt; }; typedef struct wpsock wpsock_t; @@ -307,20 +306,6 @@ } -static int wp_close(private_object_t *tech_pvt) -{ - int ret = 0; - - switch_mutex_lock(globals.hash_mutex); - if (tech_pvt->wpsock && tech_pvt->wpsock->tech_pvt == tech_pvt) { - tech_pvt->wpsock->tech_pvt = NULL; - ret = 1; - } - switch_mutex_unlock(globals.hash_mutex); - - return ret; -} - static wpsock_t *wp_open(private_object_t *tech_pvt, int span, int chan) { sng_fd_t fd; @@ -343,17 +328,6 @@ } } - if (sock && tech_pvt) { - if (sock->tech_pvt) { - if (tech_pvt->session) { - switch_channel_t *channel = switch_core_session_get_channel(tech_pvt->session); - switch_channel_hangup(channel, SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER); - } - } - sock->tech_pvt = tech_pvt; - tech_pvt->wpsock = sock; - } - switch_mutex_unlock(globals.hash_mutex); return sock; @@ -640,10 +614,6 @@ tech_pvt = switch_core_session_get_private(session); assert(tech_pvt != NULL); - - - wp_close(tech_pvt); - switch_core_codec_destroy(&tech_pvt->read_codec); switch_core_codec_destroy(&tech_pvt->write_codec); @@ -962,8 +932,6 @@ default: break; } - //sangoma_socket_close(&tech_pvt->wpsock->fd); - //wp_close(tech_pvt); return SWITCH_STATUS_SUCCESS; @@ -1366,21 +1334,17 @@ channel = switch_core_session_get_channel(session); assert(channel != NULL); - tech_pvt = switch_core_session_get_private(session); - assert(tech_pvt != NULL); - - if (!tech_pvt->call) { - tech_pvt->call = pevent->hangup.call; - } + if (switch_channel_get_state(channel) < CS_HANGUP) { + tech_pvt = switch_core_session_get_private(session); + assert(tech_pvt != NULL); - tech_pvt->cause = pevent->hangup.cause; - switch_set_flag_locked(tech_pvt, TFLAG_BYE); - switch_channel_hangup(channel, tech_pvt->cause); - - switch_mutex_lock(globals.channel_mutex); - *chanmap->map[pevent->hangup.channel] = '\0'; - switch_mutex_unlock(globals.channel_mutex); + if (!tech_pvt->call) { + tech_pvt->call = pevent->hangup.call; + } + tech_pvt->cause = pevent->hangup.cause; + switch_channel_hangup(channel, tech_pvt->cause); + } switch_core_session_rwunlock(session); }
participants (1)
-
Freeswitch SVN