int max_ani;
int max_dnis;
int get_ani_first:1;
+ int skip_category_request:1;
int call_files:1;
int allow_collect_calls:1;
int charge_calls:1;
.max_ani = 10,
.max_dnis = 4,
.get_ani_first = -1,
+ .skip_category_request = -1,
.call_files = 0,
.allow_collect_calls = 0,
.charge_calls = 1,
r2cause = OR2_CAUSE_NORMAL_CLEARING;
break;
}
- ast_log(LOG_DEBUG, "dahdi_ast_cause_to_r2_cause returned %d/%s for ast cause %d\n",
- r2cause, openr2_proto_get_disconnect_string(r2cause), cause);
+ ast_log(LOG_DEBUG, "ast cause %d resulted in openr2 cause %d/%s\n",
+ cause, r2cause, openr2_proto_get_disconnect_string(r2cause));
return r2cause;
}
#endif
}
openr2_context_set_log_level(r2_link->protocol_context, conf->mfcr2.loglevel);
openr2_context_set_ani_first(r2_link->protocol_context, conf->mfcr2.get_ani_first);
+ openr2_context_set_skip_category_request(r2_link->protocol_context, conf->mfcr2.skip_category_request);
openr2_context_set_mf_threshold(r2_link->protocol_context, threshold);
openr2_context_set_mf_back_timeout(r2_link->protocol_context, conf->mfcr2.mfback_timeout);
openr2_context_set_metering_pulse_timeout(r2_link->protocol_context, conf->mfcr2.metering_pulse_timeout);
tmp->subs[SUB_REAL].dfd,
NULL, NULL);
if (!tmp->r2chan) {
- ast_log(LOG_ERROR, "Cannot create OpenR2 channel.\n");
+ openr2_liberr_t err = openr2_context_get_last_error(r2_link->protocol_context);
+ ast_log(LOG_ERROR, "Cannot create OpenR2 channel: %s\n", openr2_context_error_string(err));
destroy_dahdi_pvt(&tmp);
return NULL;
}
ast_cli(a->fd, "MFC/R2 Max ANI: %d\n", openr2_context_get_max_ani(r2context));
ast_cli(a->fd, "MFC/R2 Max DNIS: %d\n", openr2_context_get_max_dnis(r2context));
ast_cli(a->fd, "MFC/R2 Get ANI First: %s\n", openr2_context_get_ani_first(r2context) ? "Yes" : "No");
+ ast_cli(a->fd, "MFC/R2 Skip Category Request: %s\n", openr2_context_get_skip_category_request(r2context) ? "Yes" : "No");
ast_cli(a->fd, "MFC/R2 Immediate Accept: %s\n", openr2_context_get_immediate_accept(r2context) ? "Yes" : "No");
ast_cli(a->fd, "MFC/R2 Accept on Offer: %s\n", tmp->mfcr2_accept_on_offer ? "Yes" : "No");
ast_cli(a->fd, "MFC/R2 Charge Calls: %s\n", tmp->mfcr2_charge_calls ? "Yes" : "No");
; ---------------- Options for use with signalling=mfcr2 --------------
+; MFC-R2 signaling has lots of variants from country to country and even sometimes
+; minor variants inside the same country. The only mandatory parameters here are:
+; mfcr2_variant, mfcr2_max_ani and mfcr2_max_dnis.
+; IT IS RECOMMENDED that you leave the default values (leaving it commented) for the
+; other parameters unless you have problems or you have been instructed to change some
+; parameter. OpenR2 library uses the mfcr2_variant parameter to try to determine the
+; best defaults for your country, also refer to the OpenR2 package directory
+; doc/asterisk/ where you can find sample configurations for some countries. If you
+; want to contribute your configs for a particular country send them to the e-mail
+; of the primary OpenR2 developer that you can find in the AUTHORS file of the OpenR2 package
+
; MFC/R2 variant. This depends on the OpenR2 supported variants
-; A list of values can be found at libopenr2.org
+; A list of values can be found by executing the openr2 command r2test -l
; some valid values are:
; ar (Argentina)
; br (Brazil)
; itu (per ITU spec)
; mfcr2_variant=mx
-; whether or not to get the ANI before getting DNIS.
-; some telcos require ANI first some others do not care
-; if this go wrong, change this value
-; mfcr2_get_ani_first=no
-
; Max amount of ANI to ask for
; mfcr2_max_ani=10
; Max amount of DNIS to ask for
; mfcr2_max_dnis=4
+; whether or not to get the ANI before getting DNIS.
+; some telcos require ANI first some others do not care
+; if this go wrong, change this value
+; mfcr2_get_ani_first=no
+
; Caller Category to send
; national_subscriber
; national_priority_subscriber
; or implicitly through the Answer() application.
; mfcr2_accept_on_offer=yes
+; Skip request of calling party category and ANI
+; mfcr2_skip_category=no
+
; WARNING: advanced users only! I really mean it
; this parameter is commented by default because
; YOU DON'T NEED IT UNLESS YOU REALLY GROK MFC/R2