[svn-commits] jpeeler: branch jpeeler/asterisk-sigwork-trunk r199697 - /team/jpeeler/asteri...
SVN commits to the Digium repositories
svn-commits at lists.digium.com
Mon Jun 8 17:11:16 CDT 2009
Author: jpeeler
Date: Mon Jun 8 17:11:12 2009
New Revision: 199697
URL: http://svn.asterisk.org/svn-view/asterisk?view=rev&rev=199697
Log:
fix various issues, calls should be working now
Modified:
team/jpeeler/asterisk-sigwork-trunk/channels/chan_dahdi.c
team/jpeeler/asterisk-sigwork-trunk/channels/sig_pri.c
Modified: team/jpeeler/asterisk-sigwork-trunk/channels/chan_dahdi.c
URL: http://svn.asterisk.org/svn-view/asterisk/team/jpeeler/asterisk-sigwork-trunk/channels/chan_dahdi.c?view=diff&rev=199697&r1=199696&r2=199697
==============================================================================
--- team/jpeeler/asterisk-sigwork-trunk/channels/chan_dahdi.c (original)
+++ team/jpeeler/asterisk-sigwork-trunk/channels/chan_dahdi.c Mon Jun 8 17:11:12 2009
@@ -4082,6 +4082,7 @@
if (p->sig == SIG_PRI) {
struct dahdi_params ps;
+ memset(&ps, 0, sizeof(ps));
if (ioctl(p->subs[SUB_REAL].dfd, DAHDI_GET_PARAMS, &ps)) {
ast_log(LOG_ERROR, "Could not get params\n");
}
@@ -10370,7 +10371,7 @@
}
ast_log(LOG_ERROR, "Adding callbacks %p to chan %d\n", &dahdi_pri_callbacks, tmp->channel);
- pchan = sig_pri_chan_new(tmp, &dahdi_pri_callbacks, &pris[span].pri, tmp->logicalspan, offset);
+ pchan = sig_pri_chan_new(tmp, &dahdi_pri_callbacks, &pris[span].pri, tmp->logicalspan, p.chanpos);
if (!pchan) {
destroy_dahdi_pvt(&tmp);
return NULL;
@@ -10414,7 +10415,7 @@
}
//tmp->call = NULL;
} else {
- ast_log(LOG_ERROR, "Channel %d is reserved for D-channel.\n", offset);
+ ast_log(LOG_ERROR, "Channel %d is reserved for D-channel.\n", p.chanpos);
destroy_dahdi_pvt(&tmp);
return NULL;
}
@@ -10681,8 +10682,9 @@
return NULL;
}
/* the dchannel is down so put the channel in alarm */
- if (tmp->pri && !pri_is_up(tmp->pri))
- tmp->inalarm = 1;
+ //jpeeler, just for reference, remove it later
+ //if (tmp->pri && !pri_is_up(tmp->pri))
+ // tmp->inalarm = 1;
#endif
if ((res = get_alarms(tmp)) != DAHDI_ALARM_NONE) {
if (tmp->sig == SIG_PRI)
Modified: team/jpeeler/asterisk-sigwork-trunk/channels/sig_pri.c
URL: http://svn.asterisk.org/svn-view/asterisk/team/jpeeler/asterisk-sigwork-trunk/channels/sig_pri.c?view=diff&rev=199697&r1=199696&r2=199697
==============================================================================
--- team/jpeeler/asterisk-sigwork-trunk/channels/sig_pri.c (original)
+++ team/jpeeler/asterisk-sigwork-trunk/channels/sig_pri.c Mon Jun 8 17:11:12 2009
@@ -208,7 +208,7 @@
break;
}
- return pri->fds[x];
+ return x;
}
static int pri_find_dchan(struct sig_pri_pri *pri)
@@ -249,14 +249,14 @@
ast_mutex_unlock(&pri->lock);
for (;;) {
if (p->owner) {
- if (ast_channel_trylock(&p->owner)) {
+ if (ast_channel_trylock(p->owner)) {
PRI_DEADLOCK_AVOIDANCE(p);
} else {
ast_set_callerid(p->owner, S_OR(p->lastcid_num, NULL),
S_OR(p->lastcid_name, NULL),
S_OR(p->lastcid_num, NULL)
);
- ast_channel_unlock(&p->owner);
+ ast_channel_unlock(p->owner);
break;
}
} else
@@ -273,11 +273,11 @@
ast_mutex_unlock(&pri->lock);
for (;;) {
if (p->owner) {
- if (ast_channel_trylock(&p->owner)) {
+ if (ast_channel_trylock(p->owner)) {
PRI_DEADLOCK_AVOIDANCE(p);
} else {
ast_queue_frame(p->owner, f);
- ast_channel_unlock(&p->owner);
+ ast_channel_unlock(p->owner);
break;
}
} else
@@ -306,7 +306,10 @@
channel = PRI_CHANNEL(channel);
if (!explicit) {
- span = pri->dchan_logical_span[pri_active_dchan_index(pri)];
+ int index = pri_active_dchan_index(pri);
+ if (index == -1)
+ return -1;
+ span = pri->dchan_logical_span[index];
}
for (x = 0; x < pri->numchans; x++) {
@@ -687,7 +690,7 @@
numdchans = i;
time(&t);
ast_mutex_lock(&pri->lock);
- if (pri->switchtype != PRI_SWITCH_GR303_TMC && (pri->resetinterval > 0)) {
+ if (pri->switchtype != PRI_SWITCH_GR303_TMC && (pri->sig != SIG_BRI_PTMP) && (pri->resetinterval > 0)) {
if (pri->resetting && pri_is_up(pri)) {
if (pri->resetpos < 0)
pri_check_restart(pri);
More information about the svn-commits
mailing list