jhondiaz / sipdroid

Automatically exported from code.google.com/p/sipdroid
GNU General Public License v3.0
0 stars 0 forks source link

Sound from android mic stutter on asterisk. The other end sounds clear #69

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Register to Asterisk server with Sipdroid
2. Place a call

What is the expected output? What do you see instead?
Expected: Both sides hear voice fluently
Actual: Only I hear the other party ok. They hear me stuttering

What version of the product are you using? On what operating system?
Sipdroid 0.9.11 . My phone OS is ADP1 Cupcake (official)

Please provide any additional information below.
This was tested with
1. Sipdroid to X-Lite softphone
2. X-Lite to sipdroid
3. Sipdroid to trunk (external line)

With X-Lite to trunk (no sipdroid) everything works fine

Original issue reported on code.google.com by arnonse...@gmail.com on 10 Jul 2009 at 4:19

GoogleCodeExporter commented 9 years ago

Original comment by pmerl...@googlemail.com on 10 Jul 2009 at 4:23

GoogleCodeExporter commented 9 years ago
Hey I just had a similar problem.  I had two eth connections, eth0, and eth1, 
eth0
had no connection, I disabled eth0 and vooila! no more stutter

Original comment by nate.bar...@gmail.com on 20 Jul 2009 at 5:23

GoogleCodeExporter commented 9 years ago
I previously posted this comment to issue 10 because I thought issue 69 is just 
a
duplicate of 10, however issue 10 is only about the payload size and was thus 
closed,
so I reposted this here since its more appropriate:

I tried 1.0.7, 1.0.8 and 1.1.1 to make calls from emulator to x-lite, linphone 
and
ekiga using Asterisk. 

My tests show that the emulator side hears good quality audio, but the 
softphone side
hears jitters and choppy audio, while softphone to softphone calls shows good 
quality
on both sides. Of course, emulator to emulator shows choppy audio for both ends.

ernest.zielinski from issue 10 says, by changing his ROM, the quality is fixed? 
Does
this mean that choppy audio is simply caused by poor Android emulator/device
performance? 

Because my tests confirms all softphone calls to have good quality on PBXes, 
Gizmo
and Asterisk, and choppy outgoing audio persists on Sipdroid regardless of what
server is used.

I doubt this is an audio codec problem, but I'm not sure...

So is the jittering problem a network, performance or codec problem? Any 
thoughts?

Original comment by Silversp...@gmail.com on 12 Oct 2009 at 5:28

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
Since this is labled "Duplicate", does the author even look at this?

Original comment by arnonse...@gmail.com on 12 Oct 2009 at 12:47

GoogleCodeExporter commented 9 years ago

Original comment by pmerl...@googlemail.com on 12 Oct 2009 at 6:58

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
After testing pc-based softphones to sipdroid on emulator some more, like what 
I did
in comment 3, the results are, by far, consistent, that outgoing audio is 
jittery.
In contrast, softphones like x-lite, linphone and ekiga, when used to call each 
other
using asterisk, shows good quality, I guess it implies that network capacity and
asterisk management of audio is not the problem.

Three suspects left, emulator/device performance, emulator unoptimized use of pc
bandwidth, and unoptimized audio encoding.  

The emulator is launched using "emulator -avd <avd_name> -netspeed full" for 
full
usage of the pc's bandwidth.

A audio loopback mechanism is then created in RtpStreamSender.java (by 
initializing a
new audiotrack object, apart from the one created in RtpStreamReceiver, and 
calling
track.write() to output the sound to the speaker), a test was conducted using
sipdroid on an emulator to call x-lite in a different pc using asterisk.

First, the lin (short array) from record.read() was fed to the G711.encode() to
produce buffer (byte array) which was again fed to G711.decode() to produce lin2
(short array) that was fed to track.write(). This test was effective in 
producing an
echo output of your own voice with 1 sec delay from the time the words are 
spoken.
This test shows poor audio quality and lots of jitters after the first three 
seconds
of call, similar to my test shown in Comment 3.

The second test is a slight variation of the former one, however, instead of 
going
through G711 encoding and decoding, the extracted lin from record.read() is fed
straight to track.write(). This test shows exactly the same results as the 
previous
test. I guess this implies that encoding and decoding doesn't diminish the 
quality,
thus is not the problem.

The only suspect left is performance.

I made a rush audio recording application and tried to record my own voice to 
compare
the quality from loopback versus that of recorder playback. This test shows 
that the
voice quality from these two methods are almost the same. The same is true in 
using
the default android sound recorder. This implies that the problem is not 
processing
performance, but the android OS's way of extracting audio stream from the mic.

I don't know if the same is true for G1 and other HTC devices, but in the case 
of the
emulator, the audio quality extracted from the MediaRecorder object is simply 
not of
pleasing quality, now I suspect to be the cause poor audio quality heard on 
other sip
clients.

I hope these helps, please do pause other test results as well so we can
prove/disprove this hypothesis...

Original comment by Silversp...@gmail.com on 22 Oct 2009 at 3:44

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
I have exactly the same issue: outgoing audio from sipdroid is choppy when 
connected
to asterisk.

After a series of tests I realize the problem only appears when I change 
channels
(sip/isdn) on my path. Here is what I did:

szenario: sipdroid connected to asterisk connected to isdn (and other sip 
providers)

sipdroid calls echo test at asterisk: no problem
sipdroid calls out to external number: choppy sound from sipdroid, incoming ok
sipdroid calls out to external number via another sip-provider: no problem

incoming call via isdn no assigned to sipdroid: choppy sound from sipdroid only
incoming call via sip-provider-number: no problem 

I therefore figure that the problem must be at the asterisk converting channels 
from
sip to BRI and only in this direction. BTW I am running
Asterisk-1.2.13-BRIstuffed-0.3.0-PRE-1v

I have lots of other SIP extensions that work fine calling out on ISDN, only 
sipdroid
is causing this problem. So maybe its a frame-thing? 

Original comment by oakcam...@googlemail.com on 18 Nov 2009 at 10:49

GoogleCodeExporter commented 9 years ago
one more test is causing me a headache:

I reconfigured my asterisk to use allways outgoing sip provider for sipdroid.
when calling external number of another sip provider I run into the same old 
problem:
audio from sipdroid is stuttering.

Original comment by oakcam...@googlemail.com on 18 Nov 2009 at 10:52

GoogleCodeExporter commented 9 years ago
Hi,
I want to precise that I do not want to advertise another program, but I tried 
F****
on my magic, with the same configuration that I use with sipdroid and there is 
not a
problem on outgoing voice. 
To be more precise I have Application <---> Wireless Router <---> Asterisk 
<---> PSTN
So I think that is strange that could be an asterisk conversion problem, also 
because
incoming voice is perfect.

Have you got any ideas, or any test to do in order to find the problem?

Original comment by f.crisci...@gmail.com on 19 Nov 2009 at 2:41