[asterisk-commits] rmudgett: branch 10 r330051 - in /branches/10: ./ channels/sig_pri.c

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Thu Jul 28 12:10:41 CDT 2011


Author: rmudgett
Date: Thu Jul 28 12:10:37 2011
New Revision: 330051

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=330051
Log:
Merged revisions 330050 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.8

................
  r330050 | rmudgett | 2011-07-28 12:04:24 -0500 (Thu, 28 Jul 2011) | 22 lines
  
  Merged revisions 330033 from
  https://origsvn.digium.com/svn/asterisk/be/branches/C.3-bier
  
  ..........
    r330033 | rmudgett | 2011-07-28 11:26:38 -0500 (Thu, 28 Jul 2011) | 15 lines
  
    Datacalls with B410P fail.
  
    Incoming and outgoing call legs of a data call are using different
    formats: a-law, u-law.  When the call is bridged, the media stream is run
    through translation to convert the media formats.  The translation is bad
    for data calls.
  
    * Make incoming call that does not explicitly specify u-law or a-law use
    the DAHDI channel's default law.  The outgoing call always uses the
    default law from the DAHDI channel.
  
    (closes issue ABE-2800)
    Patches:
  	jira_abe_2800_companding.patch (license #5621) patch uploaded by rmudgett
  ..........
................

Modified:
    branches/10/   (props changed)
    branches/10/channels/sig_pri.c

Propchange: branches/10/
------------------------------------------------------------------------------
Binary property 'branch-1.8-merged' - no diff available.

Modified: branches/10/channels/sig_pri.c
URL: http://svnview.digium.com/svn/asterisk/branches/10/channels/sig_pri.c?view=diff&rev=330051&r1=330050&r2=330051
==============================================================================
--- branches/10/channels/sig_pri.c (original)
+++ branches/10/channels/sig_pri.c Thu Jul 28 12:10:37 2011
@@ -5334,6 +5334,7 @@
 	int res;
 	int chanpos = 0;
 	int x;
+	int law;
 	struct ast_channel *c;
 	struct timeval tv, lowest, *next;
 	int doidling=0;
@@ -5962,7 +5963,20 @@
 				/* Make sure extension exists (or in overlap dial mode, can exist) */
 				if (((pri->overlapdial & DAHDI_OVERLAPDIAL_INCOMING) && ast_canmatch_extension(NULL, pri->pvts[chanpos]->context, pri->pvts[chanpos]->exten, 1, pri->pvts[chanpos]->cid_num)) ||
 					ast_exists_extension(NULL, pri->pvts[chanpos]->context, pri->pvts[chanpos]->exten, 1, pri->pvts[chanpos]->cid_num)) {
-					/* Setup law */
+					/* Select audio companding mode. */
+					switch (e->ring.layer1) {
+					case PRI_LAYER_1_ALAW:
+						law = SIG_PRI_ALAW;
+						break;
+					case PRI_LAYER_1_ULAW:
+						law = SIG_PRI_ULAW;
+						break;
+					default:
+						/* This is a data call to us. */
+						law = SIG_PRI_DEFLAW;
+						break;
+					}
+
 					if (e->ring.complete || !(pri->overlapdial & DAHDI_OVERLAPDIAL_INCOMING)) {
 						/* Just announce proceeding */
 						pri->pvts[chanpos]->call_level = SIG_PRI_CALL_LEVEL_PROCEEDING;
@@ -5988,10 +6002,8 @@
 						sig_pri_unlock_private(pri->pvts[chanpos]);
 						ast_mutex_unlock(&pri->lock);
 						c = sig_pri_new_ast_channel(pri->pvts[chanpos],
-							AST_STATE_RESERVED,
-							(e->ring.layer1 == PRI_LAYER_1_ALAW)
-								? SIG_PRI_ALAW : SIG_PRI_ULAW,
-							e->ring.ctype, pri->pvts[chanpos]->exten, NULL);
+							AST_STATE_RESERVED, law, e->ring.ctype,
+							pri->pvts[chanpos]->exten, NULL);
 						ast_mutex_lock(&pri->lock);
 						sig_pri_lock_private(pri->pvts[chanpos]);
 						if (c) {
@@ -6107,9 +6119,7 @@
 						sig_pri_unlock_private(pri->pvts[chanpos]);
 						ast_mutex_unlock(&pri->lock);
 						c = sig_pri_new_ast_channel(pri->pvts[chanpos],
-							AST_STATE_RING,
-							(e->ring.layer1 == PRI_LAYER_1_ALAW)
-								? SIG_PRI_ALAW : SIG_PRI_ULAW, e->ring.ctype,
+							AST_STATE_RING, law, e->ring.ctype,
 							pri->pvts[chanpos]->exten, NULL);
 						ast_mutex_lock(&pri->lock);
 						sig_pri_lock_private(pri->pvts[chanpos]);




More information about the asterisk-commits mailing list