[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