From 087d7313015bd65c6ed5143c8be9e739394c8040 Mon Sep 17 00:00:00 2001 From: Michael Jerris Date: Sat, 26 Aug 2006 21:21:02 +0000 Subject: [PATCH] add answer application, change playback to preanswer by default. git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2403 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- src/mod/applications/mod_dptools/mod_dptools.c | 18 +++++++++++++++++- .../applications/mod_playback/mod_playback.c | 2 +- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/mod/applications/mod_dptools/mod_dptools.c b/src/mod/applications/mod_dptools/mod_dptools.c index 871a8e59eb..b59510fd4c 100644 --- a/src/mod/applications/mod_dptools/mod_dptools.c +++ b/src/mod/applications/mod_dptools/mod_dptools.c @@ -45,6 +45,14 @@ static void sleep_function(switch_core_session_t *session, char *data) } } +static void answer_function(switch_core_session_t *session, char *data) +{ + switch_channel_t *channel; + channel = switch_core_session_get_channel(session); + assert(channel != NULL); + switch_channel_answer(channel); +} + static void set_function(switch_core_session_t *session, char *data) { switch_channel_t *channel; @@ -118,11 +126,19 @@ static const switch_application_interface_t set_application_interface = { /*.application_function */ set_function }; +static const switch_application_interface_t answer_application_interface = { + /*.interface_name */ "answer", + /*.application_function */ answer_function, + NULL,NULL,NULL, + &set_application_interface + +}; + static const switch_application_interface_t strftime_application_interface = { /*.interface_name */ "strftime", /*.application_function */ strftime_function, NULL,NULL,NULL, - &set_application_interface + &answer_application_interface }; diff --git a/src/mod/applications/mod_playback/mod_playback.c b/src/mod/applications/mod_playback/mod_playback.c index 4bc91740c5..cc167aae3a 100644 --- a/src/mod/applications/mod_playback/mod_playback.c +++ b/src/mod/applications/mod_playback/mod_playback.c @@ -91,7 +91,7 @@ static void speak_function(switch_core_session_t *session, char *data) switch_channel_hangup(channel, SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER); } - switch_channel_answer(channel); + switch_channel_pre_answer(channel); switch_ivr_speak_text(session, engine, voice, timer_name, codec->implementation->samples_per_second, on_dtmf, text, buf, sizeof(buf)); }