]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
Make record only end the application, and not hangup the call on * (thanks knhor).
authorMichael Jerris <mike@jerris.com>
Sat, 21 Oct 2006 23:01:58 +0000 (23:01 +0000)
committerMichael Jerris <mike@jerris.com>
Sat, 21 Oct 2006 23:01:58 +0000 (23:01 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3143 d0543943-73ff-0310-b7d9-9358b9ac24b2

src/mod/applications/mod_playback/mod_playback.c

index d325bc6463a6cfe855c65df6ef9c1c319e4ca623..0fafa586b090a83f9d1adbdb146621f22336e9be 100644 (file)
@@ -24,6 +24,7 @@
  * Contributor(s):
  * 
  * Anthony Minessale II <anthmct@yahoo.com>
+ * Neal Horman <neal at wanlink dot com>
  *
  *
  * mod_playback.c -- Raw Audio File Streaming Application Module
@@ -126,13 +127,15 @@ static void playback_function(switch_core_session_t *session, char *data)
 static void record_function(switch_core_session_t *session, char *data)
 {
        switch_channel_t *channel;
+       switch_status_t status;
        channel = switch_core_session_get_channel(session);
     assert(channel != NULL);
 
-       if (switch_ivr_record_file(session, NULL, data, on_dtmf, NULL, 0) != SWITCH_STATUS_SUCCESS) {
+       status = switch_ivr_record_file(session, NULL, data, on_dtmf, NULL, 0);
+
+       if (!switch_channel_ready(channel) || (status != SWITCH_STATUS_SUCCESS && !SWITCH_STATUS_IS_BREAK(status))) {
                switch_channel_hangup(channel, SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER);
        }
-       
 }