From 8b19bdba36fdde8e02f689bf0dcdec7ed1172414 Mon Sep 17 00:00:00 2001 From: "Kevin P. Fleming" Date: Wed, 6 Jul 2005 01:41:54 +0000 Subject: [PATCH] ensure buffer policy is restored after RAS is done with a channel (bug #4589, slightly simpler fix) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@6037 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- apps/app_zapras.c | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/apps/app_zapras.c b/apps/app_zapras.c index 69900ea442..faed71565e 100755 --- a/apps/app_zapras.c +++ b/apps/app_zapras.c @@ -130,8 +130,14 @@ static void run_ras(struct ast_channel *chan, char *args) int status; int res; int signalled = 0; - struct zt_bufferinfo bi; + struct zt_bufferinfo savebi; int x; + + res = ioctl(chan->fds[0], ZT_GET_BUFINFO, &savebi); + if(res) { + ast_log(LOG_WARNING, "Unable to check buffer policy on channel %s\n", chan->name); + return; + } pid = spawn_ras(chan, args); if (pid < 0) { @@ -167,20 +173,11 @@ static void run_ras(struct ast_channel *chan, char *args) x = 1; ioctl(chan->fds[0], ZT_AUDIOMODE, &x); - /* Double check buffering too */ - res = ioctl(chan->fds[0], ZT_GET_BUFINFO, &bi); - if (!res) { - /* XXX This is ZAP_BLOCKSIZE XXX */ - bi.bufsize = 204; - bi.txbufpolicy = ZT_POLICY_IMMEDIATE; - bi.rxbufpolicy = ZT_POLICY_IMMEDIATE; - bi.numbufs = 4; - res = ioctl(chan->fds[0], ZT_SET_BUFINFO, &bi); - if (res < 0) { - ast_log(LOG_WARNING, "Unable to set buffer policy on channel %s\n", chan->name); - } - } else - ast_log(LOG_WARNING, "Unable to check buffer policy on channel %s\n", chan->name); + /* Restore saved values */ + res = ioctl(chan->fds[0], ZT_SET_BUFINFO, &savebi); + if (res < 0) { + ast_log(LOG_WARNING, "Unable to set buffer policy on channel %s\n", chan->name); + } break; } }