aboutsummaryrefslogtreecommitdiffstats
path: root/channels/chan_misdn.c
diff options
context:
space:
mode:
Diffstat (limited to 'channels/chan_misdn.c')
-rw-r--r--channels/chan_misdn.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/channels/chan_misdn.c b/channels/chan_misdn.c
index 67c88454c..c76269494 100644
--- a/channels/chan_misdn.c
+++ b/channels/chan_misdn.c
@@ -2941,7 +2941,7 @@ static struct ast_channel *misdn_request(const char *type, int format, void *dat
if ( port_up>0 ) {
- newbc = misdn_lib_get_free_bc(port, robin_channel);
+ newbc = misdn_lib_get_free_bc(port, robin_channel,0);
if (newbc) {
chan_misdn_log(4, port, " Success! Found port:%d channel:%d\n", newbc->port, newbc->channel);
if (port_up)
@@ -2975,7 +2975,7 @@ static struct ast_channel *misdn_request(const char *type, int format, void *dat
chan_misdn_log(4, port, "portup:%d\n", port_up);
if ( port_up>0 ) {
- newbc = misdn_lib_get_free_bc(port, 0);
+ newbc = misdn_lib_get_free_bc(port, 0, 0);
if (newbc)
break;
}
@@ -2986,7 +2986,7 @@ static struct ast_channel *misdn_request(const char *type, int format, void *dat
} else {
if (channel)
chan_misdn_log(1, port," --> preselected_channel: %d\n",channel);
- newbc = misdn_lib_get_free_bc(port, channel);
+ newbc = misdn_lib_get_free_bc(port, channel, 0);
}
if (!newbc) {
@@ -3836,6 +3836,14 @@ cb_events(enum event_e event, struct misdn_bchannel *bc, void *user_data)
}
+ if (bc->cw) {
+ chan_misdn_log(0, bc->port, " --> Call Waiting on PMP sending RELEASE_COMPLETE\n");
+ int cause;
+ misdn_cfg_get( bc->port, MISDN_CFG_REJECT_CAUSE, &cause, sizeof(cause));
+ bc->out_cause=cause?cause:16;
+ return RESPONSE_RELEASE_SETUP;
+ }
+
print_bearer(bc);
{