diff --git a/patches/tmp.diff b/patches/tmp.diff deleted file mode 100644 index 75d761f48b..0000000000 --- a/patches/tmp.diff +++ /dev/null @@ -1,194 +0,0 @@ -Index: src/switch_core_media_bug.c -=================================================================== ---- src/switch_core_media_bug.c (revision 13639) -+++ src/switch_core_media_bug.c (working copy) -@@ -102,7 +102,7 @@ - } - } - --SWITCH_DECLARE(switch_status_t) switch_core_media_bug_read(switch_media_bug_t *bug, switch_frame_t *frame) -+SWITCH_DECLARE(switch_status_t) switch_core_media_bug_read(switch_media_bug_t *bug, switch_frame_t *frame, switch_bool_t fill) - { - switch_size_t bytes = 0, datalen = 0; - int16_t *dp, *fp; -@@ -131,7 +131,8 @@ - - switch_mutex_lock(bug->read_mutex); - frame->datalen = (uint32_t) switch_buffer_read(bug->raw_read_buffer, frame->data, bytes); -- if (frame->datalen < bytes) { -+ if (fill && frame->datalen < bytes) { -+ printf("FILL READ %d %d\n", (int)frame->datalen, (int)bytes); - memset(((unsigned char *)frame->data) + frame->datalen, 0, bytes - frame->datalen); - frame->datalen = bytes; - } -@@ -141,7 +142,8 @@ - switch_assert(bug->raw_write_buffer); - switch_mutex_lock(bug->write_mutex); - datalen = (uint32_t) switch_buffer_read(bug->raw_write_buffer, bug->data, bytes); -- if (datalen < bytes) { -+ if (fill && datalen < bytes) { -+ printf("FILL WRITE %d %d\n", (int)datalen, (int)bytes); - memset(((unsigned char *)bug->data) + datalen, 0, bytes - datalen); - datalen = bytes; - } -@@ -154,6 +156,14 @@ - rlen = frame->datalen / 2; - wlen = datalen / 2; - blen = bytes / 2; -+ -+ if (!fill && rlen == 0 && wlen == 0) { -+ frame->datalen = 0; -+ frame->samples = 0; -+ frame->rate = read_impl.actual_samples_per_second; -+ frame->codec = NULL; -+ return SWITCH_STATUS_FALSE; -+ } - - if (switch_test_flag(bug, SMBF_STEREO)) { - for (x = 0; x < blen; x++) { -Index: src/switch_ivr_async.c -=================================================================== ---- src/switch_ivr_async.c (revision 13639) -+++ src/switch_ivr_async.c (working copy) -@@ -424,9 +424,11 @@ - return SWITCH_STATUS_SUCCESS; - } - -+#define LEAD_IN 25 - struct record_helper { - char *file; - switch_file_handle_t *fh; -+ int lead_in; - }; - - static switch_bool_t record_callback(switch_media_bug_t *bug, void *user_data, switch_abc_type_t type) -@@ -447,6 +449,22 @@ - switch_channel_set_private(channel, rh->file, NULL); - - if (rh->fh) { -+ -+ if (switch_channel_test_flag(channel, CF_ANSWERED) || !switch_core_media_bug_test_flag(bug, SMBF_RECORD_ANSWER_REQ)) { -+ switch_size_t len; -+ uint8_t data[SWITCH_RECOMMENDED_BUFFER_SIZE]; -+ switch_frame_t frame = { 0 }; -+ -+ frame.data = data; -+ frame.buflen = SWITCH_RECOMMENDED_BUFFER_SIZE; -+ -+ while (switch_core_media_bug_read(bug, &frame, SWITCH_FALSE) == SWITCH_STATUS_SUCCESS && frame.datalen) { -+ len = (switch_size_t) frame.datalen / 2; -+ //printf("POST WRITE %d\n", frame.datalen); -+ switch_core_file_write(rh->fh, data, &len); -+ } -+ } -+ - switch_core_file_close(rh->fh); - if (rh->fh->samples_out < read_impl.samples_per_second * 3) { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Discarding short file %s\n", rh->file); -@@ -457,6 +475,10 @@ - - break; - case SWITCH_ABC_TYPE_READ_PING: -+ if (rh->lead_in) { -+ rh->lead_in--; -+ } else -+ - if (rh->fh) { - switch_size_t len; - uint8_t data[SWITCH_RECOMMENDED_BUFFER_SIZE]; -@@ -465,17 +487,16 @@ - frame.data = data; - frame.buflen = SWITCH_RECOMMENDED_BUFFER_SIZE; - -- if (switch_core_media_bug_read(bug, &frame) == SWITCH_STATUS_SUCCESS) { -- int doit = 1; -- if (!switch_channel_test_flag(channel, CF_ANSWERED) && switch_core_media_bug_test_flag(bug, SMBF_RECORD_ANSWER_REQ)) { -- doit = 0; -- } -- -- if (doit) { -+ if (switch_channel_test_flag(channel, CF_ANSWERED) || !switch_core_media_bug_test_flag(bug, SMBF_RECORD_ANSWER_REQ)) { -+ int loops = LEAD_IN; -+ while (switch_core_media_bug_read(bug, &frame, SWITCH_TRUE) == SWITCH_STATUS_SUCCESS && frame.datalen) { - len = (switch_size_t) frame.datalen / 2; -+ //printf("WRITE %d\n", frame.datalen); - switch_core_file_write(rh->fh, data, &len); -+ if (!--loops) break; - } - } -+ rh->lead_in = LEAD_IN; - } - break; - case SWITCH_ABC_TYPE_WRITE: -@@ -528,7 +549,7 @@ - break; - case SWITCH_ABC_TYPE_READ_PING: - if (ep->buffer) { -- if (switch_core_media_bug_read(bug, &frame) == SWITCH_STATUS_SUCCESS) { -+ if (switch_core_media_bug_read(bug, &frame, SWITCH_TRUE) == SWITCH_STATUS_SUCCESS) { - switch_buffer_lock(ep->buffer); - switch_buffer_zwrite(ep->buffer, frame.data, frame.datalen); - switch_buffer_unlock(ep->buffer); -@@ -949,6 +970,7 @@ - rh = switch_core_session_alloc(session, sizeof(*rh)); - rh->fh = fh; - rh->file = switch_core_session_strdup(session, file); -+ rh->lead_in = LEAD_IN; - - 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); -@@ -991,7 +1013,6 @@ - switch_channel_queue_dtmf(channel, &dtmf); - p++; - } -- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "DTMF DETECTED: [%s]\n", digit_str); - } - switch_core_media_bug_set_read_replace_frame(bug, frame); - } -@@ -1942,7 +1963,7 @@ - break; - case SWITCH_ABC_TYPE_READ: - if (sth->ah) { -- if (switch_core_media_bug_read(bug, &frame) == SWITCH_STATUS_SUCCESS) { -+ if (switch_core_media_bug_read(bug, &frame, SWITCH_TRUE) == SWITCH_STATUS_SUCCESS) { - if (switch_core_asr_feed(sth->ah, frame.data, frame.datalen, &flags) != SWITCH_STATUS_SUCCESS) { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Error Feeding Data\n"); - return SWITCH_FALSE; -Index: src/switch_rtp.c -=================================================================== ---- src/switch_rtp.c (revision 13639) -+++ src/switch_rtp.c (working copy) -@@ -2126,6 +2126,7 @@ - *payload_type = (switch_payload_t) rtp_session->recv_msg.header.pt; - ret = 2 + rtp_header_len; - rtp_session->stats.inbound.skip_packet_count++; -+ printf("CNG\n"); - goto end; - } - -Index: src/include/switch_core.h -=================================================================== ---- src/include/switch_core.h (revision 13639) -+++ src/include/switch_core.h (working copy) -@@ -238,7 +238,7 @@ - \param frame the frame to write the data to - \return the amount of data - */ --SWITCH_DECLARE(switch_status_t) switch_core_media_bug_read(_In_ switch_media_bug_t *bug, _In_ switch_frame_t *frame); -+SWITCH_DECLARE(switch_status_t) switch_core_media_bug_read(_In_ switch_media_bug_t *bug, _In_ switch_frame_t *frame, switch_bool_t fill); - - /*! - \brief Flush the read and write buffers for the bug -Index: src/mod/formats/mod_shout/mod_shout.c -=================================================================== ---- src/mod/formats/mod_shout/mod_shout.c (revision 13639) -+++ src/mod/formats/mod_shout/mod_shout.c (working copy) -@@ -1159,7 +1159,7 @@ - break; - case SWITCH_ABC_TYPE_READ_PING: - if (buffer) { -- if (switch_core_media_bug_read(bug, &frame) == SWITCH_STATUS_SUCCESS) { -+ if (switch_core_media_bug_read(bug, &frame, SWITCH_TRUE) == SWITCH_STATUS_SUCCESS) { - switch_buffer_lock(buffer); - switch_buffer_write(buffer, frame.data, frame.datalen); - switch_buffer_unlock(buffer);