aboutsummaryrefslogtreecommitdiffstats
path: root/channels/chan_zap.c
diff options
context:
space:
mode:
authormarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2003-10-24 18:22:45 +0000
committermarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2003-10-24 18:22:45 +0000
commit326a85e10f52280b2facbb2936bed81a60ee2e9f (patch)
tree0cee71625b74db3e52196edbf5ae8d49fab2ff14 /channels/chan_zap.c
parent4c81f60757b61bfcddaa882380c485e42bf392cf (diff)
Check that there really is a tag
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@1663 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels/chan_zap.c')
-rwxr-xr-xchannels/chan_zap.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/channels/chan_zap.c b/channels/chan_zap.c
index 1fb850963..2391734eb 100755
--- a/channels/chan_zap.c
+++ b/channels/chan_zap.c
@@ -188,6 +188,8 @@ static int amaflags = 0;
static int adsi = 0;
+static int numbufs = 4;
+
#ifdef ZAPATA_PRI
static int minunused = 2;
static int minidle = 0;
@@ -659,7 +661,7 @@ static int alloc_sub(struct zt_pvt *p, int x)
if (!res) {
bi.txbufpolicy = ZT_POLICY_IMMEDIATE;
bi.rxbufpolicy = ZT_POLICY_IMMEDIATE;
- bi.numbufs = 4;
+ bi.numbufs = numbufs;
res = ioctl(p->subs[x].zfd, ZT_SET_BUFINFO, &bi);
if (res < 0) {
ast_log(LOG_WARNING, "Unable to set buffer policy on channel %d\n", x);
@@ -5116,7 +5118,7 @@ static struct zt_pvt *mkintf(int channel, int signalling, int radio)
if (!res) {
bi.txbufpolicy = ZT_POLICY_IMMEDIATE;
bi.rxbufpolicy = ZT_POLICY_IMMEDIATE;
- bi.numbufs = 4;
+ bi.numbufs = numbufs;
res = ioctl(tmp->subs[SUB_REAL].zfd, ZT_SET_BUFINFO, &bi);
if (res < 0) {
ast_log(LOG_WARNING, "Unable to set buffer policy on channel %d\n", channel);
@@ -5301,7 +5303,7 @@ static struct zt_pvt *chandup(struct zt_pvt *src)
if (!res) {
bi.txbufpolicy = ZT_POLICY_IMMEDIATE;
bi.rxbufpolicy = ZT_POLICY_IMMEDIATE;
- bi.numbufs = 4;
+ bi.numbufs = numbufs;
res = ioctl(p->subs[SUB_REAL].zfd, ZT_SET_BUFINFO, &bi);
if (res < 0) {
ast_log(LOG_WARNING, "Unable to set buffer policy on dup channel\n");
@@ -6267,7 +6269,7 @@ static int start_pri(struct zt_pri *pri)
}
bi.txbufpolicy = ZT_POLICY_IMMEDIATE;
bi.rxbufpolicy = ZT_POLICY_IMMEDIATE;
- bi.numbufs = 8;
+ bi.numbufs = 16;
bi.bufsize = 1024;
if (ioctl(pri->fd, ZT_SET_BUFINFO, &bi)) {
ast_log(LOG_ERROR, "Unable to set appropriate buffering on channel %d\n", x);
@@ -6781,6 +6783,8 @@ int load_module()
strncpy(musicclass, v->value, sizeof(musicclass)-1);
} else if (!strcasecmp(v->name, "stripmsd")) {
stripmsd = atoi(v->value);
+ } else if (!strcasecmp(v->name, "jitterbuffers")) {
+ numbufs = atoi(v->value);
} else if (!strcasecmp(v->name, "group")) {
cur_group = ast_get_group(v->value);
} else if (!strcasecmp(v->name, "callgroup")) {
@@ -7319,6 +7323,8 @@ static int reload_zt(void)
ast_mutex_unlock(&iflock);
return -1;
}
+ } else if (!strcasecmp(v->name, "jitterbuffers")) {
+ numbufs = atoi(v->value);
} else if (!strcasecmp(v->name, "minunused")) {
minunused = atoi(v->value);
} else if (!strcasecmp(v->name, "idleext")) {