krunal09 / csipsimple

Automatically exported from code.google.com/p/csipsimple
0 stars 0 forks source link

Samsung Intercept no Microphone Audio #1012

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Make or receive call with csipsimple
2. turn on speakerphone
3. turn off speakerphone

What is the expected output? What do you see instead?
When in call no audio is picked up from the microphone unless the speakerphone 
is turned on.

Please provide any additional information below.
I have used all the options for rerouting sound and have not been able to get 
audio from the mic without turning on the speakerphone.
this phone requires "Use Mode audio API" to get sound to come from the ear 
speaker.

What version of the product are you using? On what operating system?
Virgin Mobile Samsung Intercept
Android 2.2.2 Baseband EC07

Have tested with the following kernels
VM Intercept Ultimate Kernel Package v3(CrapKernel)
dcd's intercept kernel 0.9.0
Vampirefo 2.2

Original issue reported on code.google.com by goofee...@gmail.com on 31 May 2011 at 9:07

GoogleCodeExporter commented 9 years ago
Arg... a samsung device that has a crappy audio driver :S

The audio hack I found for Galaxy S is based on a "relative" "bug" on the 
Samsung driver... 
In fact the Hack for Galaxy S (that I hope already activated on your config), 
is based on the fact Mode_in_call route correctly things (to earpiece), and 
mode_normal retrieve the micro source (in fact unplug it from direct connection 
to GSM chipset).

Unfortunately, if they change that it may break my hack :S

Normally there is another very very cleaner way to do things... but samsung 
just do awful things with their audio drivers. And that's always a fight to get 
voice working on their device (there is two hacks just for this manufacturer!).

Normally on Galaxy S what helps is :
 * Use Galaxy Hack => Activated
 * Use Mode API => Deactivated
 * Use Routing API => Deactivated
 * Mode for SIP calls => Normal
 * Micro source => default

If you can just check with these exact settings and let me know how it goes. 
(Be careful that for example activating Mode API will break everything else... 
in fact activating something is not "better" and combination of hacks may make 
sense)

Unfortunately if it does not help there is few things I can do :(. Maybe if you 
collect logs (see HowToCollectLogs wiki page, I could find some clue from logs 
raised by the audio driver)

Original comment by r3gis...@gmail.com on 31 May 2011 at 9:19

GoogleCodeExporter commented 9 years ago
using your settings I get audio from the mic but sound is output through the 
speakerphone.

Here is a log from the phone. it contains 2 calls where I switched the speaker 
on and off. in the second call I turned the speaker on and off more than once.

from all the options and combinations of options I've tried I can only get 
audio from the earpiece if I use "Use Mode audio API" but that prevents audio 
from the mic.

Based on the GPL CSipSimple version : 0.02-01 r841
Here are important informations about Device :
android.os.Build.BOARD : SPH-M910
android.os.Build.BRAND : VirginMobile
android.os.Build.DEVICE : SPH-M910
android.os.Build.ID : FROYO
android.os.Build.MODEL : SPH-M910
android.os.Build.PRODUCT : SPH-M910
android.os.Build.TAGS : release-keys
android.os.Build.VERSION.INCREMENTAL : EC07
android.os.Build.VERSION.RELEASE : 2.2.2
android.os.Build.VERSION.SDK : 8

Original comment by goofee...@gmail.com on 31 May 2011 at 9:54

Attachments:

GoogleCodeExporter commented 9 years ago
Ok, 
Just quick note (for info): actually "Use Mode API" do Mode_in_call for 
earpiece routing and mode_normal for speaker routing. 
So if you turn option off and instead use mode for sip calls "mode_in_call" you 
should get the same thing (for earpiece routing -- it will probably do nothing 
when you try to activate speaker however) ;).

Well, sounds the ROM you are using "fixes" the thing that made possible to have 
the hack I found for this family of samsung devices... at least that's what I 
suppose regarding the fact with "Use Samsung Galaxy Hack" you have routing to 
the speaker. 
I guess these logs are not with the hack activated cause I do not see the try 
to route earpiece (mode_in_call) and then retrieve the micro by using 
mode_normal.

Is there other sip apps you tried that succeed in routing things correctly?

Original comment by r3gis...@gmail.com on 31 May 2011 at 10:42

GoogleCodeExporter commented 9 years ago
I can try to use the stock rom+kernel tomorrow. I just tried to make a log with 
the options you supplied but ended up crashing csipsimple when I tired to send 
them. I'm going to do a data reset on it and try again.

This is the first app I have even gotten the audio to come from the earpiece.

Original comment by goofee...@gmail.com on 31 May 2011 at 10:53

GoogleCodeExporter commented 9 years ago
got the log file.

Original comment by goofee...@gmail.com on 31 May 2011 at 11:03

Attachments:

GoogleCodeExporter commented 9 years ago
I introduced two new hack settings in latest revision :
http://nightlies.csipsimple.com/trunk/

One is to get the WebRTC implementation instead of mine that I found by an 
empiric way testing on many devices.
WebRTC is a project from Google, and I guess developpers has a better idea 
about how manufacturer (specially samsung did things). In fact their 
implementation do an exception just for Samsung :)... So there is a little hope 
it helps (main difference with my hacks is the order of method call).
So worth to try :
 * Use WebRTC impl : ON
 * Use mode API : OFF (does not really matter with WebRTC impl ON)
 * Use routing API : OFF (does not really matter with WebRTC impl ON)
 * Micro source : default
 * mode for sip calls : Normal (does not really matter with WebRTC impl ON)

There is another setting I introduced to let you try it too, it's "Focus 
audio". By disabling it you'll disable the try to focus audio only on voice 
call stream.
It's done to stop any currently playing music. However, if manufacturer did 
weird things it could interfere and mute micro too. So if WebRTC does not help, 
you can try :
 * Use WebRTC impl : OFF
 * Use mode API : ON
 * Use routing API : OFF
 * Micro source : default
 * Mode for SIP calls : Normal (does not really matter with Mode API ON)
 * Focus : OFF

I know that there is also some secret codes on Samsung devices. Particularily : 
*#9072641*# (on stock dialpad) that allow to configure deeply how the device 
behaves with audio. I don't know if it's available on roms you are using, but 
could also be an interesting thing to look at.

Original comment by r3gis...@gmail.com on 2 Jun 2011 at 12:10

GoogleCodeExporter commented 9 years ago
OK I tested out everything on a fully stock sprint rom with stock kernel since 
for some reason I could not get the virginmobile stockrom to run.

in every test audio only came out the speakerphone

I am going to attempt to get the virginmobile stockrom running again as the 
sprint one breaks my GPS

Based on the GPL CSipSimple version : 0.02-02 r901
Here are important informations about Device :
android.os.Build.BOARD : SPH-M910
android.os.Build.BRAND : sprint
android.os.Build.DEVICE : SPH-M910
android.os.Build.ID : FROYO
android.os.Build.MODEL : SPH-M910
android.os.Build.PRODUCT : SPH-M910
android.os.Build.TAGS : release-keys
android.os.Build.VERSION.INCREMENTAL : DL05
android.os.Build.VERSION.RELEASE : 2.2.1
android.os.Build.VERSION.SDK : 8

Original comment by goofee...@gmail.com on 2 Jun 2011 at 4:54

Attachments:

GoogleCodeExporter commented 9 years ago
Thx a lot for logs,

There is maybe some very interesting clue. I see some log that I've already 
seen on another Samsung device (codecOn and codecOff). 

Could be interesting to activate the "Tone Hack". It was very helpful on the 
device where I had these logs about codecOn/codecOff, even if problem was a 
little bit different cause I had no sound at all in earpiece mode.
(Tone Hack ON + Samsung Hack ON + Mode API OFF).

Original comment by r3gis...@gmail.com on 3 Jun 2011 at 9:09

GoogleCodeExporter commented 9 years ago
Tried that, also tried everything else since I'm now on a full stock 
virginmobile rom with stock kernel.

I think for the sake of trying to get this working I am going to downgrade to 
android 2.1 with the squealjoy kernel which has a supposed VOIP fix.

I linked my thread on the SDX developers forum to here so hopefully someone 
else can continue trying to get 2.2 working. I'll report back with my findings 
with android 2.1

Based on the GPL CSipSimple version : 0.02-02 r901
Here are important informations about Device :
android.os.Build.BOARD : SPH-M910
android.os.Build.BRAND : VirginMobile
android.os.Build.DEVICE : SPH-M910
android.os.Build.ID : FROYO
android.os.Build.MODEL : SPH-M910
android.os.Build.PRODUCT : SPH-M910
android.os.Build.TAGS : release-keys
android.os.Build.VERSION.INCREMENTAL : EC07
android.os.Build.VERSION.RELEASE : 2.2.2
android.os.Build.VERSION.SDK : 8

Original comment by goofee...@gmail.com on 3 Jun 2011 at 2:23

Attachments:

GoogleCodeExporter commented 9 years ago
Ok so I got squealjoy2.2 running with andoid 2.1 and it is working, would it be 
helpful to have a log of that?

without squealjoy I was unable to get the audio to route to the earpiece

Original comment by goofee...@gmail.com on 3 Jun 2011 at 10:45

GoogleCodeExporter commented 9 years ago
I think log will be more helpful for those how make 2.2 ROM. 
I think that the problem is unfortunately linked to the way the driver setup 
sound routings :S and unfortunately the app can't workaround it in this case :(.

Hopefully SDX developpers will find a way to port the hack of the previous 
kernel in more recent ones. 
If they need me to give some infos about the way the SIP app do things 
(actually all sip apps do more or less the same thing), just let me know, I'll 
be pleased to help.

In android 2.3.3 things will be more obvious (even for samsung ;) ). The 
android API has something more clear about a specific VoIP mode that they also 
use for the stock SIP application. Hopefully when samsung will upgrade their 
device to 2.3 they will provide a clean kernel that allow to change routing as 
define in android SDK.

Original comment by r3gis...@gmail.com on 4 Jun 2011 at 5:09

GoogleCodeExporter commented 9 years ago
unfortunately android 2.3 will not hit this device from what I've read. I hope 
that a kernel will come out for 2.2

Original comment by goofee...@gmail.com on 4 Jun 2011 at 6:52

GoogleCodeExporter commented 9 years ago
Issue 1174 has been merged into this issue.

Original comment by r3gis...@gmail.com on 26 Jul 2011 at 8:49

GoogleCodeExporter commented 9 years ago
So I can add that the kernel hack has been ported to android 2.2 but 
unfortunately I am getting the same results as with 2.1

you can get audio from the earpiece but the microphone wont work but once you 
turn on the loudspeaker the mic works

Original comment by goofee...@gmail.com on 26 Jul 2011 at 11:51

GoogleCodeExporter commented 9 years ago
I am using the kernel referenced in comment 14 
(http://forum.sdx-developers.com/index.php?topic=16144.0), which is a froyo 
kernel with the same hack as squealjoy kernel for eclair) but the results don't 
seem any different from the stock froyo kernel (audio comes from the back 
speaker, and if I enable mode audio API, audio comes from the earpiece but the 
microphone doesn't work).  Has anyone else tried that kernel and gotten it to 
work?

Original comment by tlin...@gmail.com on 29 Jul 2011 at 7:30

GoogleCodeExporter commented 9 years ago
The audio layer compatibility has been significantly improved recently. Maybe 
this issue is already fixed with the next nightly builds (that will be produced 
in about one hour here : 
http://nightlies.csipsimple.com/trunk/CSipSimple-latest-trunk.apk )

Original comment by r3gis...@gmail.com on 18 Sep 2012 at 9:35