[asterisk-dev] synchronizing RTP

Klaus Darilion klaus.mailinglists at pernau.at
Mon Mar 8 09:13:09 CST 2010


Hi Kevin!

Am 08.03.2010 14:47, schrieb Kevin P. Fleming:
> Klaus Darilion wrote:
>
>> I have a problem with generating a nice RTP stream with one packet every
>> 20ms.
>>
>> I have the following setup:
>>
>> Asterisk+SendFAX<--SIP/G711-->  Asterisk+T38Gateway<---SIP/T38--->  ATA
>>
>> This T38Gateway application is implemented to send an RTP packet to
>> SendFAX every time it receives an RTP packet.
>>
>> On the other side, SendFAX apparently does the same, because as soon as
>> the call is established both Asterisk's exchange RTP packets like crazy
>> - 5000 packets/s.
>>
>> What is the best way to solve this problem? How should the voice frames
>> generated in the T38Gateway application to get a correct RTP stream
>> (e.g. 160 samples/frame, 50 frames/s)?
>
> T.38 gateway elements are designed to sit between a packet network and a
> TDM network, not between two packet networks.

That's were it is used most (actually DAHDI<->SIP is already working). 
But IMO a T38Gateway application should not be restricted to TDM<->SIP 
as there are other useful usecases, for example a SIP client which does 
not support T.38 but is located near the T38Gateway so that delay/jitter 
is not an issue.

> If you are going use
> SIP/G.711 as your 'TDM' network, you'll have to force that endpoint to
> only generate packets every 20ms, so that it will appear to be a TDM
> endpoint. This is not a problem in the gateway application.

That means the T38Gateway application has to rely on the non-T38 client 
to supply proper timing. IMO this is bad as it causes the above 
described problems. For example the non-T38 client may not send RTP at 
all during reception phase (fax is half-duplex).

Thus I am looking for a way for the T.38Gateway to make the RTP timing 
itself, not relying on the other endpoint.

I tried using an ast_generator but that causes the same problems, looks 
like the generator is also triggered by received RTP packets.

I found there is an Asterisk startup option -I: enable internal timing

Is this something that can be useful for my problem?

thanks
klaus




>



More information about the asterisk-dev mailing list