aboutsummaryrefslogtreecommitdiffstats
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
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
-rwxr-xr-xchannels/chan_sip.c2
-rwxr-xr-xchannels/chan_zap.c14
-rwxr-xr-xconfigs/zapata.conf.sample4
3 files changed, 15 insertions, 5 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index e6cd20e6a..34847fc89 100755
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -1629,7 +1629,7 @@ static struct sip_pvt *find_call(struct sip_request *req, struct sockaddr_in *si
p = iflist;
while(p) {
if (!strcmp(p->callid, callid) &&
- (!pedanticsipchecking || !strlen(p->theirtag) || !strcmp(p->theirtag, tag))) {
+ (!pedanticsipchecking || !tag || !strlen(p->theirtag) || !strcmp(p->theirtag, tag))) {
/* Found the call */
ast_mutex_lock(&p->lock);
ast_mutex_unlock(&iflock);
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")) {
diff --git a/configs/zapata.conf.sample b/configs/zapata.conf.sample
index 70d41d37c..8d22e3cbc 100755
--- a/configs/zapata.conf.sample
+++ b/configs/zapata.conf.sample
@@ -234,6 +234,10 @@ immediate=no
;minunused=2
;minidle=1
;
+; Configure jitter buffers in zapata (each one is 20ms, default is 4)
+;
+;jitterbuffers=4
+;
; Each channel consists of the channel number or range. It
; inherits the parameters that were specified above its declaration
;