[asterisk-commits] moy: branch moy/dahdi-tap-1.6.2 r270948 - /team/moy/dahdi-tap-1.6.2/channels/

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Wed Jun 16 14:18:54 CDT 2010


Author: moy
Date: Wed Jun 16 14:18:50 2010
New Revision: 270948

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=270948
Log:
set the conference law to fix audio problem in E1

Modified:
    team/moy/dahdi-tap-1.6.2/channels/chan_dahdi.c

Modified: team/moy/dahdi-tap-1.6.2/channels/chan_dahdi.c
URL: http://svnview.digium.com/svn/asterisk/team/moy/dahdi-tap-1.6.2/channels/chan_dahdi.c?view=diff&rev=270948&r1=270947&r2=270948
==============================================================================
--- team/moy/dahdi-tap-1.6.2/channels/chan_dahdi.c (original)
+++ team/moy/dahdi-tap-1.6.2/channels/chan_dahdi.c Wed Jun 16 14:18:50 2010
@@ -4349,6 +4349,7 @@
 	}
 
 	x = 0;
+#ifdef HAVE_PRI
 	if (p->passivefd != -1) {
 		struct dahdi_confinfo pinfo;
 		memset(&pinfo, 0, sizeof(pinfo));
@@ -4360,6 +4361,7 @@
 		dahdi_close(p->passivefd);
 		p->passivefd = -1;
 	}
+#endif
 	dahdi_confmute(p, 0);
 	p->muting = 0;
 	restore_gains(p);
@@ -4381,11 +4383,13 @@
 		p->channel, idx, p->subs[SUB_REAL].dfd, p->subs[SUB_CALLWAIT].dfd, p->subs[SUB_THREEWAY].dfd);
 	p->ignoredtmf = 0;
 
+#ifdef HAVE_PRI
 	if (p->passivepeer) {
 		p->passivepeer->passivepeer = NULL;
 		p->passivepeer->owner = NULL;
 		p->passivepeer = NULL;
 	}
+#endif
 
 	if (idx > -1) {
 		/* Real channel, do some fixup */
@@ -6938,8 +6942,9 @@
 		ast_mutex_unlock(&p->lock); \
 		return f; \
 	}
+#ifdef HAVE_PRI
 	if (p->passivefd == -1) {
-		/* do normal reading */
+		/* no tapping, do normal reading */
 		res = read(p->subs[idx].dfd, readbuf, p->subs[idx].linear ? READ_SIZE * 2 : READ_SIZE);
 	} else {
 		/* passive channel reading */
@@ -6951,6 +6956,10 @@
 		/* now read the mixed audio that will be returned to the core */
 		res = read(p->passivefd, readbuf, p->subs[idx].linear ? READ_SIZE * 2 : READ_SIZE);
 	}
+#else
+	/* do normal reading */
+	res = read(p->subs[idx].dfd, readbuf, p->subs[idx].linear ? READ_SIZE * 2 : READ_SIZE);
+#endif
 	ast_clear_flag(ast, AST_FLAG_BLOCKING);
 	/* Check for hangup */
 	CHECK_READ_RESULT(res);
@@ -7134,9 +7143,11 @@
 		return -1;
 	}
 
+#ifdef HAVE_PRI
 	if (p->passivepeer) {
 		return 0;
 	}
+#endif
 
 #if 0
 #ifdef HAVE_PRI
@@ -12654,6 +12665,17 @@
 			ast_hangup(c);
 			break;
 		}
+
+		/* set the conference law */
+		if (dahdi_setlaw(fd, law)) {
+			ast_log(LOG_ERROR, "Unable to set law %d for the tapping conference\n", law);
+			ast_mutex_unlock(&peerpvt->lock);
+			ast_mutex_unlock(&masterpvt->lock);
+			ast_hangup(c);
+			break;
+		}
+
+		/* save the conference file descriptor and number */
 		masterpvt->passiveconf = dahdic.confno;
 		masterpvt->passivefd = fd;
 




More information about the asterisk-commits mailing list