summaryrefslogtreecommitdiff
path: root/channels/chan_misdn.c
diff options
context:
space:
mode:
Diffstat (limited to 'channels/chan_misdn.c')
-rw-r--r--channels/chan_misdn.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/channels/chan_misdn.c b/channels/chan_misdn.c
index 68adc5e74..1e01f9646 100644
--- a/channels/chan_misdn.c
+++ b/channels/chan_misdn.c
@@ -150,6 +150,8 @@ struct chan_list {
int norxtone;
int notxtone;
+ int incoming_early_audio;
+
int pipe[2];
char ast_rd_buf[4096];
struct ast_frame frame;
@@ -1210,6 +1212,8 @@ static int read_config(struct chan_list *ch, int orig) {
misdn_cfg_get( port, MISDN_CFG_TXGAIN, &bc->txgain, sizeof(int));
misdn_cfg_get( port, MISDN_CFG_RXGAIN, &bc->rxgain, sizeof(int));
+ misdn_cfg_get( port, MISDN_CFG_INCOMING_EARLY_AUDIO, &ch->incoming_early_audio, sizeof(int));
+
misdn_cfg_get( port, MISDN_CFG_SENDDTMF, &bc->send_dtmf, sizeof(int));
misdn_cfg_get( port, MISDN_CFG_NEED_MORE_INFOS, &bc->need_more_infos, sizeof(int));
@@ -1733,7 +1737,11 @@ static int misdn_indication(struct ast_channel *ast, int cond)
p->state=MISDN_ALERTING;
chan_misdn_log(1, p->bc->port, " --> * IND :\tringing pid:%d\n",p->bc?p->bc->pid:-1);
misdn_lib_send_event( p->bc, EVENT_ALERTING);
- tone_indicate(p, TONE_ALERTING);
+
+ if ( !p->bc->nt && (p->orginator==ORG_MISDN) && !p->incoming_early_audio )
+ chan_misdn_log(1,p->bc->port, " --> incoming_early_audio off\n");
+ else
+ tone_indicate(p, TONE_ALERTING);
chan_misdn_log(1, p->bc->port, " --> * SEND: State Ring pid:%d\n",p->bc?p->bc->pid:-1);
ast_setstate(ast,AST_STATE_RINGING);
}
@@ -2860,7 +2868,11 @@ static void do_immediate_setup(struct misdn_bchannel *bc,struct chan_list *ch ,
ret = misdn_lib_send_event(bc, EVENT_PROCEEDING );
}
}
- tone_indicate(ch,TONE_DIAL);
+
+ if ( !bc->nt && (ch->orginator==ORG_MISDN) && !ch->incoming_early_audio )
+ chan_misdn_log(1,bc->port, " --> incoming_early_audio off\n");
+ else
+ tone_indicate(ch,TONE_DIAL);
chan_misdn_log(1, bc->port, "* Starting Ast ctx:%s dad:%s oad:%s with 's' extension\n", ast->context, ast->exten, AST_CID_P(ast));