]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FSCORE-403
authorAnthony Minessale <anthony.minessale@gmail.com>
Fri, 17 Jul 2009 20:42:24 +0000 (20:42 +0000)
committerAnthony Minessale <anthony.minessale@gmail.com>
Fri, 17 Jul 2009 20:42:24 +0000 (20:42 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@14283 d0543943-73ff-0310-b7d9-9358b9ac24b2

src/switch_ivr_async.c

index b540868bee13233a8cebcc829ed2691eb9807ec8..b79fbaf1060dca7214fea46e42fe30b9cf8f7a4f 100644 (file)
@@ -900,8 +900,23 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_record_session(switch_core_session_t
                flags |= SMBF_RECORD_ANSWER_REQ;
        }
 
+
+       fh->samplerate = 0;
+       if ((vval = switch_channel_get_variable(channel, "record_sample_rate"))) {
+               int tmp = 0;
+
+               tmp = atoi(vval);
+
+               if (switch_is_valid_rate(tmp)) {
+                       fh->samplerate = tmp;
+               }
+       }
+
+       if (!fh->samplerate) {
+               fh->samplerate = read_impl.actual_samples_per_second;
+       }
+
        fh->channels = channels;
-       fh->samplerate = read_impl.actual_samples_per_second;
        fh->pre_buffer_datalen = SWITCH_DEFAULT_FILE_BUFFER_LEN;
 
        if (switch_core_file_open(fh,
@@ -959,17 +974,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_record_session(switch_core_session_t
        rh->fh = fh;
        rh->file = switch_core_session_strdup(session, file);
        rh->packet_len = read_impl.decoded_bytes_per_packet;
-
-       if ((vval = switch_channel_get_variable(channel, "record_sample_rate"))) {
-               int tmp = 0;
-
-               tmp = atoi(vval);
-
-               if (switch_is_valid_rate(tmp)) {
-                       rh->fh->samplerate = tmp;
-               }
-       }
-
+       
        if ((status = switch_core_media_bug_add(session, record_callback, rh, to, flags, &bug)) != SWITCH_STATUS_SUCCESS) {
                switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Error adding media bug for file %s\n", file);
                switch_core_file_close(fh);