From ae806dc7930793724be6d06eedc2f44d1884a637 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Tue, 6 Jun 2006 23:49:02 +0000 Subject: [PATCH] update git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1553 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- src/mod/endpoints/mod_wanpipe/mod_wanpipe.c | 8 +++++++- src/switch_channel.c | 4 ++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/mod/endpoints/mod_wanpipe/mod_wanpipe.c b/src/mod/endpoints/mod_wanpipe/mod_wanpipe.c index b7c07f1e53..2a4d233c95 100644 --- a/src/mod/endpoints/mod_wanpipe/mod_wanpipe.c +++ b/src/mod/endpoints/mod_wanpipe/mod_wanpipe.c @@ -577,11 +577,17 @@ static switch_status_t wanpipe_write_frame(switch_core_session_t *session, switc #endif towrite = bytes >= globals.mtu ? globals.mtu : bytes; + if (towrite < globals.mtu) { + int diff = globals.mtu - towrite; + memset(bp + towrite, 0, diff); + towrite = globals.mtu; + } + result = sangoma_sendmsg_socket(tech_pvt->socket, &tech_pvt->hdrframe, sizeof(tech_pvt->hdrframe), bp, towrite, 0); if (result < 0) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, - "Bad Write frame len %u write %d bytes returned %d (%s)!\n", frame->datalen, + "Bad Write frame len %u write %d bytes returned %d (%s)!\n", towrite, globals.mtu, result, strerror(errno)); if (errno == EBUSY) { continue; diff --git a/src/switch_channel.c b/src/switch_channel.c index 12b3820806..fb54780c12 100644 --- a/src/switch_channel.c +++ b/src/switch_channel.c @@ -857,6 +857,10 @@ SWITCH_DECLARE(switch_status_t) switch_channel_perform_answer(switch_channel_t * return SWITCH_STATUS_FALSE; } + if (switch_channel_test_flag(channel, CF_ANSWERED)) { + return SWITCH_STATUS_SUCCESS; + } + if (switch_core_session_answer_channel(channel->session) == SWITCH_STATUS_SUCCESS) { switch_event_t *event;