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);