How to add g729 codec in Android application?

2019-01-29 09:38发布

i am developing a SIP application for making and receiving a call and i want to add the G729 codec in my application.

currently i am doing analysis on open source project SipDroid. if i want to make that application to support G729 codec how to do that?

there is a different codecs configuration file in org.sipdroid.codecs package.how do create the this kind of .java file for G729 codec?

Any suggestion and response will be appreciated.

Log message of asterisk

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:5003@192.168.1.17>
From: <sip:5004@192.168.1.17>;tag=z9hG4bK80811693
Call-ID: 082004294635@10.0.2.15
CSeq: 2 INVITE
Contact: <sip:5004@10.0.2.15:36252;transport=udp>
Expires: 3600
User-Agent: MySipdroid. !/2.4 beta/sdk
Authorization: Digest username="5004", realm="asterisk", nonce="6264308a", uri="sip:5003@192.168.1.17", algorithm=MD5, response="fb6dfb528d362657ef01458f96653adb"
Content-Length: 137
Content-Type: application/sdp

v=0
o=5004@192.168.1.17 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 - 082004294635@10.0.2.15
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!

Result of Show Translation

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>

1条回答
劫难
2楼-- · 2019-01-29 10:27

your asterisk logs looks pretty good to support the codec, but you need the g729 encoder on your client android application (seems to be a commercial license for now), please let me know if you have any luck on getting an opensource license of the codec.

Licensing

G.729 includes patents from several companies and is licensed by Sipro Lab Telecom. Sipro Lab Telecom is the authorized Intellectual Property Licensing Administrator for G.729 technology and patent pool.[3][4][5][6] In a number of countries, the use of G.729 may require a license fee and/or royalty fee.[5]

Source: http://en.wikipedia.org/wiki/G.729

Regards.

查看更多
登录 后发表回答