From e92b07d372cc49c9c9db8f182890f80c0ee9950e Mon Sep 17 00:00:00 2001
From: Matthew Fredrickson <creslin@digium.com>
Date: Tue, 24 May 2005 14:19:27 +0000
Subject: [PATCH] More updates for NFAS span/channel mapping

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@5760 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 channels/chan_zap.c | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/channels/chan_zap.c b/channels/chan_zap.c
index de9f0f4c11..81bb78bc93 100755
--- a/channels/chan_zap.c
+++ b/channels/chan_zap.c
@@ -7325,21 +7325,22 @@ static struct zt_pvt *pri_find_crv(struct zt_pri *pri, int crv)
 }
 
 
-static int pri_find_principle(struct zt_pri *pri, int channel)
+static int pri_find_principle(struct zt_pri *pri, int prichannel)
 {
 	int x;
-	int span;
+	int span = PRI_SPAN(prichannel);
 	int spanfd;
-	struct zt_params param;
+	ZT_PARAMS param;
 	int principle = -1;
-	span = PRI_SPAN(channel);
-	channel = PRI_CHANNEL(channel);
+	int channel = PRI_CHANNEL(prichannel);
 	
-	if (!PRI_EXPLICIT(channel)) {
+	/* For implicit channel selection, the channel specified is on the
+	 * span with the active d channel */
+	if (!PRI_EXPLICIT(prichannel)) {
 		spanfd = pri_active_dchan_fd(pri);
 		if (ioctl(spanfd, ZT_GET_PARAMS, &param))
 			return -1;
-		span = param.spanno - 1;
+		span = pris[param.spanno - 1].prilogicalspan;
 	}
 
 	for (x=0;x<pri->numchans;x++) {
-- 
GitLab