I am trying to do the following:
1) Using a SIP client (SIP CLIENT
) call Android phone (GATEWAY
)
2)GATEWAY
calls another phone (DESTINATION
) using cellular network (au KDDI CDMA in my case)
I would like to be able to have a voice conversation between SIP CLIENT
and DESTINATION
. I thought of using the AudioRecord and AudioTrack Android classes to "connect" the audio stream, however apparently it would not work.
I did a simple test whereGATEWAY
encodes the audio coming from DESTINATION
using AudioSource.VOICE_DOWNLINK for AudioRecord and sends out the data in an RTP stream. Audio received atSIP CLIENT
is unclear. My guess is that the stream used for encoding is not taken directly from the cellular PCM stream but rather from feedback which appears on the mic within开发者_运维技巧 the phone (Sharp IS05).
On the other hand, when talking to the micrphone ofGATEWAY
the sound coming in the RTP stream is much better sounding. When talking directly betweenGATEWAY
andDESTINATION
the sound is also much better.
Any ideas of how to implement something like this? Thanks
--olegCan yo try and record the audio that is coming from GSM before sending it to the SIP Client ? This way you will know if the problem is the source (i.e. internal mic) like you are saying or the RTP encoding.
BTW, which CODED do you use ?
It seems that this cannot be done: http://mortlemania.wordpress.com/2010/06/10/call-recording-crippled-on-android-fix-this-now-google/
精彩评论