aboutsummaryrefslogtreecommitdiffstats
path: root/channels
diff options
context:
space:
mode:
authorcrichter <crichter@f38db490-d61c-443f-a65b-d21fe96a405b>2007-06-05 10:05:45 +0000
committercrichter <crichter@f38db490-d61c-443f-a65b-d21fe96a405b>2007-06-05 10:05:45 +0000
commitb14d4ebd361a3dfe91b8fee416fe09f0fd34970b (patch)
tree6835b2780e9ec4bc561603f14bc7f1b155843e9d /channels
parent57a13eaab1c6707d90f1a2a5b594bb7b312e6ed2 (diff)
added possibility to deactivate bridging per port
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.2@67209 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels')
-rw-r--r--channels/chan_misdn.c11
-rw-r--r--channels/misdn/chan_misdn_config.h1
-rw-r--r--channels/misdn_config.c1
3 files changed, 13 insertions, 0 deletions
diff --git a/channels/chan_misdn.c b/channels/chan_misdn.c
index b26df3468..93da8d5a6 100644
--- a/channels/chan_misdn.c
+++ b/channels/chan_misdn.c
@@ -2404,6 +2404,16 @@ 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) {
@@ -2842,6 +2852,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 9305df500..78cfdb2f9 100644
--- a/channels/misdn/chan_misdn_config.h
+++ b/channels/misdn/chan_misdn_config.h
@@ -58,6 +58,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 9018e7f7a..607b44d7f 100644
--- a/channels/misdn_config.c
+++ b/channels/misdn_config.c
@@ -119,6 +119,7 @@ static const struct misdn_cfg_spec port_spec[] = {
{ "need_more_infos", MISDN_CFG_NEED_MORE_INFOS, MISDN_CTYPE_BOOL, "0", NONE },
{ "noautorespond_on_setup", MISDN_CFG_NOAUTORESPOND_ON_SETUP, MISDN_CTYPE_BOOL, "0", NONE },
{ "nttimeout", MISDN_CFG_NTTIMEOUT, MISDN_CTYPE_BOOL, "no", NONE },
+ { "bridging", MISDN_CFG_BRIDGING, MISDN_CTYPE_BOOL, "yes", NONE },
{ "jitterbuffer", MISDN_CFG_JITTERBUFFER, MISDN_CTYPE_INT, "4000", NONE },
{ "jitterbuffer_upper_threshold", MISDN_CFG_JITTERBUFFER_UPPER_THRESHOLD, MISDN_CTYPE_INT, "0", NONE },
{ "callgroup", MISDN_CFG_CALLGROUP, MISDN_CTYPE_ASTGROUP, NO_DEFAULT, NONE },