On 7 Feb 2008, at 09:17, David Hogan wrote:
> Hi all,
>
> I have spent some time searching, but I haven?t found a way to
> prevent * from concatenating two frames into one IAX packet.
>
> I have a situation where I make an IAX GSM call to *, which
> transcodes to an iLBC SIP call. Every second voice packet the IAX
> client receives contains 2x 20ms frames, the other containing only
> one. I presume this is related to the mismatch of 20ms GSM vs 30ms
> iLBC. What is odd, is that this doesn?t happen when I use G711 on
> the IAX leg ? each packet contains 20ms.
>
> Anyway, the IAX client I am using isn?t handling the 40 ms packets
> gracefully. Is there something I can configure on * to prevent the
> concatenation?
>
As a hack, you could try forcing asterisk to transcode to slin, either
by recording the call or putting it into a conference.
There is also a recent change where you can force a jitter buffer on
the local channel which might help.
eg:
exten => _100[0-4],1,dial(Local/${EXTEN}@games_call/nj)
[games_call]
exten => _100[0-4],1,meetme(${EXTEN},nT)
Alternatively you could fix the client :-)
(We've recently fixed it for our web-based implementation on
www.phonefromhere.com/tesco/
where we had the same
problem)
There are quite a few situations where asterisk sends IAX audio frames
that aren't the length that you 'expect'
It's best to have the client cope.
Tim.