Siggi Langauf
2003-Jun-11 13:03 UTC
[Asterisk-Users] filling suppressed silence with chan_oh323
After some more analysis of my "dropped fragment" problem, things look like this: Cisco 7940 phone -- RTP --> chan_oh323 --> Asterisk (running, eg., VoiceMailMain) That RTP connection was negotiated via H.323 on a third machine running Cisco CallManager 3.2, but this part should not be relevant. Connections work fine, with one exception: Whenever there's a break in *'s voice stream (eg. between the "mailbox" and "password" prompts), the 7940 detects horrible jitter and drops a few packets (eg. the whole "password" prompt). Using ethereal, I found that the RTP packets sent by asterisk seem to have bogus timestamps: After the gap, timestamps continue just as if there hasn't been a gap, so timestamp / sequence number always is constant. This should be fine for continuous RTP streams, so I tried disabling silence suppression in oh323.conf. However, * still only sends out packets while it is playing, and not between playback phases. So AFAICT, there are two possible solutions: 1) make chan_oh323 stream continuously, no matter if the current application does not play audio. IOW: transmit silence instead of no packets. Is this possible? 2) use better timestamps in streamed packets, ie increase timestamps even after a period of silence, and not only for each sent packet. Not sure if that makes the phone happy, though... Any chance to do one of those? Thanks in advance, Siggi
Michael Manousos
2003-Jun-12 05:16 UTC
[Asterisk-Users] filling suppressed silence with chan_oh323
Hi Siggi, Thanks for your thorough report and test results. You are right. The transmission of voice packets after silence periods is done with incorrect timestamps, causing slight voice drop-outs. I 'll see how this can be fixed and let you know. Regards, Michael. Siggi Langauf wrote:> After some more analysis of my "dropped fragment" problem, things look > like this: > > Cisco 7940 phone -- RTP --> chan_oh323 --> Asterisk > (running, eg., VoiceMailMain) > > That RTP connection was negotiated via H.323 on a third machine running > Cisco CallManager 3.2, but this part should not be relevant. > > Connections work fine, with one exception: > > Whenever there's a break in *'s voice stream (eg. between the "mailbox" > and "password" prompts), the 7940 detects horrible jitter and drops a few > packets (eg. the whole "password" prompt). > > Using ethereal, I found that the RTP packets sent by asterisk seem to have > bogus timestamps: > After the gap, timestamps continue just as if there hasn't been a gap, so > timestamp / sequence number always is constant. > This should be fine for continuous RTP streams, so I tried disabling > silence suppression in oh323.conf. However, * still only sends out packets > while it is playing, and not between playback phases. > So AFAICT, there are two possible solutions: > > 1) make chan_oh323 stream continuously, no matter if the current > application does not play audio. IOW: transmit silence instead of no > packets. Is this possible? > > 2) use better timestamps in streamed packets, ie increase timestamps even > after a period of silence, and not only for each sent packet. > Not sure if that makes the phone happy, though... > > Any chance to do one of those? > > Thanks in advance, > > Siggi > > > _______________________________________________ > Asterisk-Users mailing list > Asterisk-Users@lists.digium.com > http://lists.digium.com/mailman/listinfo/asterisk-users
Siggi Langauf
2003-Jun-12 08:48 UTC
[Asterisk-Users] filling suppressed silence with chan_oh323
On Thu, 12 Jun 2003, Michael Manousos wrote:> Thanks for your thorough report and test results. > You are right. The transmission of voice packets after > silence periods is done with incorrect timestamps, > causing slight voice drop-outs. > I 'll see how this can be fixed and let you know.Cool. Thanks in advance! And while I'm at it: thanks for writing the driver in the first place! Let me know if I can do anything to help... Cheers, Siggi (unchanged fullquote follows...)> Siggi Langauf wrote: > > After some more analysis of my "dropped fragment" problem, things look > > like this: > > > > Cisco 7940 phone -- RTP --> chan_oh323 --> Asterisk > > (running, eg., VoiceMailMain) > > > > That RTP connection was negotiated via H.323 on a third machine running > > Cisco CallManager 3.2, but this part should not be relevant. > > > > Connections work fine, with one exception: > > > > Whenever there's a break in *'s voice stream (eg. between the "mailbox" > > and "password" prompts), the 7940 detects horrible jitter and drops a few > > packets (eg. the whole "password" prompt). > > > > Using ethereal, I found that the RTP packets sent by asterisk seem to have > > bogus timestamps: > > After the gap, timestamps continue just as if there hasn't been a gap, so > > timestamp / sequence number always is constant. > > This should be fine for continuous RTP streams, so I tried disabling > > silence suppression in oh323.conf. However, * still only sends out packets > > while it is playing, and not between playback phases. > > So AFAICT, there are two possible solutions: > > > > 1) make chan_oh323 stream continuously, no matter if the current > > application does not play audio. IOW: transmit silence instead of no > > packets. Is this possible? > > > > 2) use better timestamps in streamed packets, ie increase timestamps even > > after a period of silence, and not only for each sent packet. > > Not sure if that makes the phone happy, though... > > > > Any chance to do one of those? > > > > Thanks in advance, > > > > Siggi > > > > > > _______________________________________________ > > Asterisk-Users mailing list > > Asterisk-Users@lists.digium.com > > http://lists.digium.com/mailman/listinfo/asterisk-users > > > _______________________________________________ > Asterisk-Users mailing list > Asterisk-Users@lists.digium.com > http://lists.digium.com/mailman/listinfo/asterisk-users >