From 168c6db00d73f57cc71c70dddcf2920ed2daa139 Mon Sep 17 00:00:00 2001
From: Anthony Minessale <anthony.minessale@gmail.com>
Date: Mon, 10 Jul 2006 22:24:57 +0000
Subject: [PATCH] adj iax to use the intervals thing

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1819 d0543943-73ff-0310-b7d9-9358b9ac24b2
---
 src/mod/endpoints/mod_iax/mod_iax.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/mod/endpoints/mod_iax/mod_iax.c b/src/mod/endpoints/mod_iax/mod_iax.c
index 13ec157331..cd967705e8 100644
--- a/src/mod/endpoints/mod_iax/mod_iax.c
+++ b/src/mod/endpoints/mod_iax/mod_iax.c
@@ -217,6 +217,7 @@ static switch_status_t iax_set_codec(struct private_object *tech_pvt, struct iax
 	int num_codecs = 0;
 	unsigned int local_cap = 0, mixed_cap = 0, chosen = 0, leading = 0;
 	int x, srate = 8000;
+	uint32_t interval = 0;
 
 	if (globals.codec_string) {
 		if ((num_codecs = switch_loadable_module_get_codecs_sorted(codecs,
@@ -291,6 +292,7 @@ static switch_status_t iax_set_codec(struct private_object *tech_pvt, struct iax
 						for (imp = codecs[z]; imp; imp = imp->next) {
 							if (prefs[x] == iana2ast(imp->ianacode)) {
 								dname = imp->iananame;
+								interval = imp->microseconds_per_frame / 1000;
 								break;
 							}
 						}
@@ -307,6 +309,7 @@ static switch_status_t iax_set_codec(struct private_object *tech_pvt, struct iax
 						unsigned int cap = iana2ast(imp->ianacode);
 						if (cap == chosen) {
 							dname = imp->iananame;
+							interval = imp->microseconds_per_frame / 1000;
 							break;
 						}
 					}
@@ -319,6 +322,7 @@ static switch_status_t iax_set_codec(struct private_object *tech_pvt, struct iax
 						if (cap & mixed_cap) {
 							chosen = cap;
 							dname = imp->iananame;
+							interval = imp->microseconds_per_frame / 1000;
 							break;
 						}
 					}
@@ -366,7 +370,7 @@ static switch_status_t iax_set_codec(struct private_object *tech_pvt, struct iax
 	if (switch_core_codec_init(&tech_pvt->read_codec,
 							   dname,
 							   srate,
-							   0,
+							   interval,
 							   1,
 							   SWITCH_CODEC_FLAG_ENCODE | SWITCH_CODEC_FLAG_DECODE,
 							   NULL, switch_core_session_get_pool(tech_pvt->session)) != SWITCH_STATUS_SUCCESS) {
@@ -376,7 +380,7 @@ static switch_status_t iax_set_codec(struct private_object *tech_pvt, struct iax
 		if (switch_core_codec_init(&tech_pvt->write_codec,
 								   dname,
 								   srate,
-								   0,
+								   interval,
 								   1,
 								   SWITCH_CODEC_FLAG_ENCODE | SWITCH_CODEC_FLAG_DECODE,
 								   NULL, switch_core_session_get_pool(tech_pvt->session)) != SWITCH_STATUS_SUCCESS) {