Skip to content
Snippets Groups Projects
Commit 8b19bdba authored by Kevin P. Fleming's avatar Kevin P. Fleming
Browse files

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
parent 9403a6e0
No related branches found
No related tags found
No related merge requests found
...@@ -130,8 +130,14 @@ static void run_ras(struct ast_channel *chan, char *args) ...@@ -130,8 +130,14 @@ static void run_ras(struct ast_channel *chan, char *args)
int status; int status;
int res; int res;
int signalled = 0; int signalled = 0;
struct zt_bufferinfo bi; struct zt_bufferinfo savebi;
int x; 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); pid = spawn_ras(chan, args);
if (pid < 0) { if (pid < 0) {
...@@ -167,20 +173,11 @@ static void run_ras(struct ast_channel *chan, char *args) ...@@ -167,20 +173,11 @@ static void run_ras(struct ast_channel *chan, char *args)
x = 1; x = 1;
ioctl(chan->fds[0], ZT_AUDIOMODE, &x); ioctl(chan->fds[0], ZT_AUDIOMODE, &x);
/* Double check buffering too */ /* Restore saved values */
res = ioctl(chan->fds[0], ZT_GET_BUFINFO, &bi); res = ioctl(chan->fds[0], ZT_SET_BUFINFO, &savebi);
if (!res) { if (res < 0) {
/* XXX This is ZAP_BLOCKSIZE XXX */ ast_log(LOG_WARNING, "Unable to set buffer policy on channel %s\n", chan->name);
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);
break; break;
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment