From b52abf3d21995e87f75abc56a786b62ddd884e99 Mon Sep 17 00:00:00 2001 From: Moises Silva Date: Sun, 14 Jun 2009 06:13:48 +0000 Subject: added openr2 to menuselect-deps.in, recent commit in menuselect made me realize this was never done but was working anyways also added support for skip category request feature of openr2 and updated chan_dahdi.conf.sample git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@200477 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- build_tools/menuselect-deps.in | 1 + channels/chan_dahdi.c | 11 ++++++++--- configs/chan_dahdi.conf.sample | 26 ++++++++++++++++++++------ 3 files changed, 29 insertions(+), 9 deletions(-) diff --git a/build_tools/menuselect-deps.in b/build_tools/menuselect-deps.in index dc57dac41..7204162e1 100644 --- a/build_tools/menuselect-deps.in +++ b/build_tools/menuselect-deps.in @@ -36,6 +36,7 @@ PGSQL=@PBX_PGSQL@ POPT=@PBX_POPT@ PORTAUDIO=@PBX_PORTAUDIO@ PRI=@PBX_PRI@ +OPENR2=@PBX_OPENR2@ RESAMPLE=@PBX_RESAMPLE@ AIS=@PBX_AIS@ RADIUS=@PBX_RADIUS@ diff --git a/channels/chan_dahdi.c b/channels/chan_dahdi.c index a062d38fd..9dd2b2af9 100644 --- a/channels/chan_dahdi.c +++ b/channels/chan_dahdi.c @@ -583,6 +583,7 @@ struct dahdi_mfcr2_conf { 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; @@ -1418,6 +1419,7 @@ static struct dahdi_chan_conf dahdi_chan_conf_default(void) .max_ani = 10, .max_dnis = 4, .get_ani_first = -1, + .skip_category_request = -1, .call_files = 0, .allow_collect_calls = 0, .charge_calls = 1, @@ -5327,8 +5329,8 @@ static openr2_call_disconnect_cause_t dahdi_ast_cause_to_r2_cause(int cause) 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 @@ -11080,6 +11082,7 @@ static int dahdi_r2_set_context(struct dahdi_mfcr2 *r2_link, const struct dahdi_ } 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); @@ -11301,7 +11304,8 @@ static struct dahdi_pvt *mkintf(int channel, const struct dahdi_chan_conf *conf, 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; } @@ -16193,6 +16197,7 @@ static char *dahdi_show_channel(struct ast_cli_entry *e, int cmd, struct ast_cli 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"); diff --git a/configs/chan_dahdi.conf.sample b/configs/chan_dahdi.conf.sample index 6d9847d2a..c948dce3d 100644 --- a/configs/chan_dahdi.conf.sample +++ b/configs/chan_dahdi.conf.sample @@ -1000,8 +1000,19 @@ pickupgroup=1 ; ---------------- 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) @@ -1010,17 +1021,17 @@ pickupgroup=1 ; 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 @@ -1120,6 +1131,9 @@ pickupgroup=1 ; 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 -- cgit v1.2.3