From: Russell Bryant Date: Thu, 7 Jul 2005 15:15:59 +0000 (+0000) Subject: ensure buffer policy is restored after RAS is done with a channel (bug #4648) X-Git-Tag: 1.0.11.1~67 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f1274662f4444eada64f0e8979225cad66ed4654;p=thirdparty%2Fasterisk.git ensure buffer policy is restored after RAS is done with a channel (bug #4648) git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/v1-0@6043 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/apps/app_zapras.c b/apps/app_zapras.c index d835e12f8d..09c93bdb1f 100755 --- a/apps/app_zapras.c +++ b/apps/app_zapras.c @@ -125,8 +125,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) { @@ -162,20 +168,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; } }