[asterisk-commits] dvossel: branch dvossel/generic_aoc r253798 - /team/dvossel/generic_aoc/chann...

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Mon Mar 22 14:38:14 CDT 2010


Author: dvossel
Date: Mon Mar 22 14:38:10 2010
New Revision: 253798

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=253798
Log:
chan_dahdi A() dialstring option for requesting Advice of Charge on dial.

Modified:
    team/dvossel/generic_aoc/channels/sig_pri.c

Modified: team/dvossel/generic_aoc/channels/sig_pri.c
URL: http://svnview.digium.com/svn/asterisk/team/dvossel/generic_aoc/channels/sig_pri.c?view=diff&rev=253798&r1=253797&r2=253798
==============================================================================
--- team/dvossel/generic_aoc/channels/sig_pri.c (original)
+++ team/dvossel/generic_aoc/channels/sig_pri.c Mon Mar 22 14:38:10 2010
@@ -3467,6 +3467,12 @@
 			}
 			break;
 #endif	/* defined(HAVE_PRI_AOC_EVENTS) */
+#if defined(HAVE_PRI_AOC_EVENTS)
+		case PRI_SUBCMD_AOC_CHARGING_REQUEST:
+			/* TODO XXX received charing request information, how do we handle this?*/
+			break;
+#endif	/* defined(HAVE_PRI_AOC_EVENTS) */
+
 		default:
 			ast_debug(2,
 				"Unknown call subcommand(%d) in %s event on channel %d/%d on span %d.\n",
@@ -5252,10 +5258,11 @@
 enum SIG_PRI_CALL_OPT_FLAGS {
 	OPT_KEYPAD =         (1 << 0),
 	OPT_REVERSE_CHARGE = (1 << 1),	/* Collect call */
+	OPT_AOC_REQUEST =    (1 << 2),	/* AOC Request */
 };
 enum SIG_PRI_CALL_OPT_ARGS {
 	OPT_ARG_KEYPAD = 0,
-
+	OPT_ARG_AOC_REQUEST,
 	/* note: this entry _MUST_ be the last one in the enum */
 	OPT_ARG_ARRAY_SIZE,
 };
@@ -5263,6 +5270,7 @@
 AST_APP_OPTIONS(sig_pri_call_opts, BEGIN_OPTIONS
 	AST_APP_OPTION_ARG('K', OPT_KEYPAD, OPT_ARG_KEYPAD),
 	AST_APP_OPTION('R', OPT_REVERSE_CHARGE),
+	AST_APP_OPTION_ARG('A', OPT_AOC_REQUEST, OPT_ARG_AOC_REQUEST),
 END_OPTIONS);
 
 /*! \note Parsing must remain in sync with sig_pri_extract_called_num_subaddr(). */
@@ -5466,6 +5474,22 @@
 		}
 		c++;
 	}
+
+#if defined(HAVE_PRI_AOC_EVENTS)
+	if (ast_test_flag(&opts, OPT_AOC_REQUEST)
+		&& !ast_strlen_zero(opt_args[OPT_ARG_AOC_REQUEST])) {
+		if (strchr(opt_args[OPT_ARG_AOC_REQUEST], 's')) {
+			pri_sr_set_aoc_charging_request(sr, PRI_AOC_REQUEST_S);
+		}
+		if (strchr(opt_args[OPT_ARG_AOC_REQUEST], 'd')) {
+			pri_sr_set_aoc_charging_request(sr, PRI_AOC_REQUEST_D);
+		}
+		if (strchr(opt_args[OPT_ARG_AOC_REQUEST], 'e')) {
+			pri_sr_set_aoc_charging_request(sr, PRI_AOC_REQUEST_E);
+		}
+	}
+#endif
+
 #if defined(HAVE_PRI_SETUP_KEYPAD)
 	if (ast_test_flag(&opts, OPT_KEYPAD)
 		&& !ast_strlen_zero(opt_args[OPT_ARG_KEYPAD])) {
@@ -5805,6 +5829,7 @@
 					sig_pri_aoce_from_ast(p, chan, decoded);
 					break;
 				case AST_AOC_REQUEST:
+					/* TODO XXX do we pass through requests? */
 				default:
 					/* not supported for pass-through yet */
 					break;




More information about the asterisk-commits mailing list