From f096ddab24de25228e586e6de3e33b9ef70eccc6 Mon Sep 17 00:00:00 2001 From: crichter Date: Tue, 5 Jun 2007 11:48:25 +0000 Subject: Merged revisions 67210 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ................ r67210 | crichter | 2007-06-05 12:25:32 +0200 (Di, 05 Jun 2007) | 9 lines Merged revisions 67209 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r67209 | crichter | 2007-06-05 12:05:45 +0200 (Di, 05 Jun 2007) | 1 line added possibility to deactivate bridging per port ........ ................ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@67240 f38db490-d61c-443f-a65b-d21fe96a405b --- channels/chan_misdn.c | 11 +++++++++++ channels/misdn/chan_misdn_config.h | 1 + channels/misdn_config.c | 7 +++++++ 3 files changed, 19 insertions(+) diff --git a/channels/chan_misdn.c b/channels/chan_misdn.c index 14c241f70..4d936be66 100644 --- a/channels/chan_misdn.c +++ b/channels/chan_misdn.c @@ -2808,6 +2808,16 @@ static enum ast_bridge_result misdn_bridge (struct ast_channel *c0, else return -1; + int p1_b, p2_b; + + misdn_cfg_get(ch1->bc->port, MISDN_CFG_BRIDGING, &p1_b, sizeof(int)); + misdn_cfg_get(ch2->bc->port, MISDN_CFG_BRIDGING, &p2_b, sizeof(int)); + + if ( ! p1_b || ! p2_b) { + ast_log(LOG_NOTICE, "Falling back to Asterisk bridging\n"); + return AST_BRIDGE_FAILED; + } + int bridging; misdn_cfg_get( 0, MISDN_GEN_BRIDGING, &bridging, sizeof(int)); if (bridging) { @@ -3268,6 +3278,7 @@ static struct ast_channel *misdn_new(struct chan_list *chlist, int state, char int bridging; misdn_cfg_get( 0, MISDN_GEN_BRIDGING, &bridging, sizeof(int)); + if (bridging) tmp->tech = &misdn_tech; else diff --git a/channels/misdn/chan_misdn_config.h b/channels/misdn/chan_misdn_config.h index 47d767a46..17d99b4fb 100644 --- a/channels/misdn/chan_misdn_config.h +++ b/channels/misdn/chan_misdn_config.h @@ -67,6 +67,7 @@ enum misdn_cfg_elements { MISDN_CFG_NEED_MORE_INFOS, /* bool */ MISDN_CFG_NOAUTORESPOND_ON_SETUP, /* bool */ MISDN_CFG_NTTIMEOUT, /* bool */ + MISDN_CFG_BRIDGING, /* int */ MISDN_CFG_JITTERBUFFER, /* int */ MISDN_CFG_JITTERBUFFER_UPPER_THRESHOLD, /* int */ MISDN_CFG_CALLGROUP, /* ast_group_t */ diff --git a/channels/misdn_config.c b/channels/misdn_config.c index f9450c07b..69b35ccbf 100644 --- a/channels/misdn_config.c +++ b/channels/misdn_config.c @@ -314,6 +314,13 @@ static const struct misdn_cfg_spec port_spec[] = { { "nttimeout", MISDN_CFG_NTTIMEOUT, MISDN_CTYPE_BOOL, "no", NONE , "Set this to yes if you want calls disconnected in overlap mode\n" "\twhen a timeout happens." }, + { "bridging", MISDN_CFG_BRIDGING, MISDN_CTYPE_BOOL, "yes", NONE, + "Set this to yes/no, default is yes.\n" + "This can be used to have bridging enabled in general and to\n" + "disable it for specific ports. It makes sense to disable\n" + "bridging on NT Port where you plan to use the HOLD/RETRIEVE\n" + "features with ISDN phones.\n" + }, { "msns", MISDN_CFG_MSNS, MISDN_CTYPE_MSNLIST, "*", NONE, "MSN's for TE ports, listen on those numbers on the above ports, and\n" "\tindicate the incoming calls to Asterisk.\n" -- cgit v1.2.3