0
我正在開發一個用於撥打和接聽電話的SIP應用程序,我想在我的應用程序中添加G729編解碼器。如何在Android應用程序中添加g729編解碼器?
目前我正在做分析開源項目SipDroid。如果我想讓該應用程序支持G729編解碼器如何做到這一點?
org.sipdroid.codecs package中有一個不同的編解碼器配置文件。創建這種用於G729編解碼器的.java文件嗎?
任何建議和反應將不勝感激。展會翻譯星號的
日誌消息
Found RTP audio format 101
Found audio description format telephone-event for ID 101
Found RTP video format 103
Found video description format h263-1998 for ID 103
Capabilities: us - 0x100 (g729), peer - audio=0x0 (nothing)/video=0x100000 (h263p)/text=0x0 (nothing), combined - 0x0 (nothing)
Non-codec capabilities (dtmf): us - 0x1 (telephone-event|), peer - 0x1 (telephone-event|), combined - 0x1 (telephone-event|)
[Apr 9 18:00:25] NOTICE[3813]: chan_sip.c:9187 process_sdp: **No compatible codecs**, not accepting this offer!
SDP
To: <sip:[email protected]>
From: <sip:[email protected]>;tag=z9hG4bK80811693
Call-ID: [email protected]
CSeq: 2 INVITE
Contact: <sip:[email protected]:36252;transport=udp>
Expires: 3600
User-Agent: MySipdroid. !/2.4 beta/sdk
Authorization: Digest username="5004", realm="asterisk", nonce="6264308a", uri="sip:[email protected]", algorithm=MD5, response="fb6dfb528d362657ef01458f96653adb"
Content-Length: 137
Content-Type: application/sdp
v=0
[email protected] 0 0 IN IP4 10.0.2.15
s=Session SIP/SDP
c=IN IP4 10.0.2.15
t=0 0
m=audio 21000 RTP/AVP
a=fmtp:18 annexb=no
<------------->
--- (13 headers 7 lines) ---
Sending to 192.168.1.17:35370 (NAT)
Using INVITE request as basis request - [email protected]
Found peer '5004' for '5004' from 192.168.1.17:35370
== Using SIP RTP CoS mark 5
Capabilities: us - 0x100 (g729), peer - audio=0x0 (nothing)/video=0x0 (nothing)/text=0x0 (nothing), combined - 0x0 (nothing)
Non-codec capabilities (dtmf): us - 0x1 (telephone-event|), peer - 0x0 (nothing), combined - 0x0 (nothing)
[Apr 10 12:01:05] NOTICE[3524]: chan_sip.c:9187 process_sdp: No compatible codecs, not accepting this offer!
結果
core show translation
Translation times between formats (in microseconds) for one second of data
Source Format (Rows) Destination Format (Columns)
g723 gsm ulaw alaw g726aal2 adpcm slin lpc10 g729 speex ilbc g726 g722 siren7 siren14 slin16 g719 speex16 testlaw
g723 - - - - - - - - - - - - - - - - - - -
gsm - - 1001 1001 3000 2000 1000 3000 3999 - 8999 3999 1001 - - 1002 - - 1001
ulaw - 2000 - 1 2001 1001 1 2001 3000 - 8000 3000 2 - - 3 - - 2
alaw - 2000 1 - 2001 1001 1 2001 3000 - 8000 3000 2 - - 3 - - 2
g726aal2 - 2999 1001 1001 - 2000 1000 3000 3999 - 8999 3999 1001 - - 1002 - - 1001
adpcm - 2000 2 2 2001 - 1 2001 3000 - 8000 3000 2 - - 3 - - 2
slin - 1999 1 1 2000 1000 - 2000 2999 - 7999 2999 1 - - 2 - - 1
lpc10 - 2999 1001 1001 3000 2000 1000 - 3999 - 8999 3999 1001 - - 1002 - - 1001
g729 - 2999 1001 1001 3000 2000 1000 3000 - - 8999 3999 1001 - - 1002 - - 1001
speex - - - - - - - - - - - - - - - - - - -
ilbc - 2998 1000 1000 2999 1999 999 2999 3998 - - 3998 1000 - - 1001 - - 1000
g726 - 2999 1001 1001 3000 2000 1000 3000 3999 - 8999 - 1001 - - 1002 - - 1001
g722 - 2000 2 2 2001 1001 1 2001 3000 - 8000 3000 - - - 1 - - 2
siren7 - - - - - - - - - - - - - - - - - - -
siren14 - - - - - - - - - - - - - - - - - - -
slin16 - 3000 1002 1002 3001 2001 1001 3001 4000 - 9000 4000 1000 - - - - - 1002
g719 - - - - - - - - - - - - - - - - - - -
speex16 - - - - - - - - - - - - - - - - - - -
testlaw - 2000 2 2 2001 1001 1 2001 3000 - 8000 3000 2 - - 3 - - -
sip.conf
[5004]
type=friend
username=5004
secret=5004
host=dynamic
context=testcontext
nat=yes
disallow=all
allow=g729
qualify=yes
callerid="919999121312"<5004>
[添加一個新的編解碼器到Android?](http://stackoverflow.com/questions/5192076/add-a-new-codec-to-android) – Macarse 2012-04-09 23:35:37
SipDroid中的Java編解碼器類只是包裝對於位於[此處]的本地實現(http://code.google.com/p/sipdroid/source/browse/#svn/trunk/jni)。您需要獲得G729的java或c/C++實現。我認爲[Doubango](http://code.google.com/p/doubango/source/browse/#svn/branches/2.0/doubango/g729a%253Fstate%253Dclosed)支持G729。您需要將這些實現轉移到您的項目中,並創建調用本機代碼的java包裝類。 – hovanessyan 2012-04-09 08:31:46