|Summary:||ASTERISK-00024: Speex support incomplete for IAX2|
|Date Opened:||2003-07-29 00:02:49||Date Closed:||2004-09-25 02:40:14|
|Description:||IAX2 doesn't seem to support speex. When trying to force it|
on IAX2 links, error messages related to get_samples appear.
****** ADDITIONAL INFORMATION ******
The following simple patch seems to fix the problem.
However, for some reason chan_iax.c tries to return 160*(f->datalen/39), even though codec_speex.c specifically says that "all frames are 20ms long":
f.datalen = sizeof(speex_slin_ex);
/* All frames are 20 ms long */
f.samples = 160;
Please double-check if this patch is correct.
--- chan_iax2.c 16 Jul 2003 18:45:12 -0000 1.33
+++ chan_iax2.c 29 Jul 2003 05:06:08 -0000
@@ -601,6 +601,9 @@
samples = f->datalen *2;
+ case AST_FORMAT_SPEEX:
+ samples = 160 * f->datalen;
ast_log(LOG_WARNING, "Don't know how to calculate samples on %d packets\n", f->subclass);
|Comments:||By: Mark Spencer (markster) 2003-07-29 14:44:30|
Okay should be fixed in CVS let me know.
By: Malcolm Davenport (mdavenport) 2003-07-29 16:52:36
Yes, if the fix does work, please add a bugnote here, too, so that we can resolve the bug.
By: jwr (jwr) 2003-07-29 21:50:13
It does work for calls. However, another problem shows up: GSM-encoded messages played from disk sound choppy and play very slowly. That's probably an entirely different problem, though, so this bug may as well be closed.
I don't think I'll be able to trace the other problem down.