[asterisk-commits] moy: branch moy/mfcr2 r130570 - in /team/moy/mfcr2: channels/ configs/

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Sun Jul 13 15:14:06 CDT 2008


Author: moy
Date: Sun Jul 13 15:14:06 2008
New Revision: 130570

URL: http://svn.digium.com/view/asterisk?view=rev&rev=130570
Log:
added support to block collect calls using Group B signals in Brazil

Modified:
    team/moy/mfcr2/channels/chan_zap.c
    team/moy/mfcr2/configs/zapata.conf.sample

Modified: team/moy/mfcr2/channels/chan_zap.c
URL: http://svn.digium.com/view/asterisk/team/moy/mfcr2/channels/chan_zap.c?view=diff&rev=130570&r1=130569&r2=130570
==============================================================================
--- team/moy/mfcr2/channels/chan_zap.c (original)
+++ team/moy/mfcr2/channels/chan_zap.c Sun Jul 13 15:14:06 2008
@@ -421,6 +421,7 @@
 static int mfcr2_cur_get_ani_first = 0;
 static int mfcr2_cur_context_index = 0;
 static int mfcr2_cur_call_files = 0;
+static int mfcr2_cur_allow_collect_calls = 0; /* don't allow collect calls by default */
 static char mfcr2_cur_logdir[OR2_MAX_LOGDIR];
 static openr2_log_level_t mfcr2_cur_loglevel = OR2_LOG_ERROR | OR2_LOG_WARNING;
 static openr2_calling_party_category_t mfcr2_cur_category = OR2_CALLING_PARTY_CATEGORY_NATIONAL_SUBSCRIBER;
@@ -766,6 +767,7 @@
 	openr2_calling_party_category_t mfcr2_category;
 	struct zt_mf_tx_state mf_tx_state;
 	struct zt_mf_rx_state mf_rx_state;
+	int mfcr2_allow_collect_calls;
 #endif
 	char begindigit;
 	int muting;
@@ -1327,6 +1329,12 @@
 	ast_log(LOG_NOTICE, "MFC/R2 call offered on chan %d. DNIS = %s, ANI = %s, Category = %s\n", 
 			openr2_chan_get_number(r2chan), dnis, ani, openr2_proto_get_category_string(category));
 	p = openr2_chan_get_client_data(r2chan);
+	/* if collect calls are not allowed and this is a collect call, reject it! */
+	if (!p->mfcr2_allow_collect_calls && category == OR2_CALLING_PARTY_CATEGORY_COLLECT_CALL) {
+		ast_log(LOG_NOTICE, "Rejecting MFC/R2 collect call\n");
+		openr2_chan_disconnect_call(r2chan, OR2_CAUSE_COLLECT_CALL_REJECTED);
+		return;
+	}
 	ast_mutex_lock(&p->lock);
 	p->mfcr2_recvd_category = category;
 	if (p->use_callerid && ani) {
@@ -8887,6 +8895,7 @@
 					tmp->mfcr2_category = mfcr2_cur_category;
 					tmp->mfcr2 = zap_r2;
 					tmp->mfcr2call = 0;
+					tmp->mfcr2_allow_collect_calls = mfcr2_cur_allow_collect_calls;
 					zap_r2->monitored_count++;
 				}
 			}
@@ -15134,6 +15143,8 @@
 				}
 			} else if (!strcasecmp(v->name, "mfcr2_get_ani_first")) {
 				mfcr2_cur_get_ani_first = ast_true(v->value);
+			} else if (!strcasecmp(v->name, "mfcr2_allow_collect_calls")) {
+				mfcr2_cur_allow_collect_calls = ast_true(v->value);
 			} else if (!strcasecmp(v->name, "mfcr2_call_files")) {
 				mfcr2_cur_call_files = ast_true(v->value);
 			} else if (!strcasecmp(v->name, "mfcr2_max_ani")) {

Modified: team/moy/mfcr2/configs/zapata.conf.sample
URL: http://svn.digium.com/view/asterisk/team/moy/mfcr2/configs/zapata.conf.sample?view=diff&rev=130570&r1=130569&r2=130570
==============================================================================
--- team/moy/mfcr2/configs/zapata.conf.sample (original)
+++ team/moy/mfcr2/configs/zapata.conf.sample Sun Jul 13 15:14:06 2008
@@ -947,6 +947,12 @@
 ; Any negative value means 'default'. 
 ; mfcr2_metering_pulse_timeout=-1
 
+; Brazil uses a special calling party category for collect calls (llamadas por cobrar)
+; instead of using the operator (as in Mexico). The R2 spec in Brazil says a special GB tone
+; should be used to reject collect calls. If you want to ALLOW collect calls specify 'yes',
+; if you want to BLOCK collect calls then say 'no'. Default is to block collect calls.
+; mfcr2_allow_collect_calls=no
+
 ; ---------------- END of options to be used with signalling=mfcr2
 
 ; ---------------- Options for use with signalling=ss7 -----------------




More information about the asterisk-commits mailing list