2010-07-30 13:02:42     About the g.729 patch...

Document created by Aaronwu Employee on Aug 22, 2013
Version 1Show Document
  • View in full screen mode

2010-07-30 13:02:42     About the g.729 patch...


Message: 91926   


The patch for g.729 seems to add the mediastreamer filter definition, as well as the required codec enums and adjustments to makefiles to include the appropriate objects.  I can certainly instantiate a g.729 stream using the mediastreamer api outside of linphone -- I've verified this in wireshark by snooping the packets. 


I've purchased a SIP softphone, which sends an INVITE with the following sdp info:



o=- 144738577 144738577 IN IP4

s=  www.portsip.com

c=IN IP4

t=0 0

m=audio 20214 RTP/AVP 18 101

a=rtpmap:18 G729/8000

a=fmtp:18 annexb=yes

a=rtpmap:101 telephone-event/8000

a=fmtp:101 0-15



m=video 40634 RTP/AVP 125 34

a=rtpmap:125 H264/90000

a=fmtp:125 profile-level-id=42801e; packetization-mode=1

a=rtpmap:34 H263/90000

a=fmtp:34 CIF=1 QCIF=1


Shortly after the call is placed, linphone returns with the following status line:


SIP/2.0 415 Unsupported Media Type


I noticed that, in the linphone patch, there seems to only be modifications to the mediastreamer library.  I'm not sure which part of linphone, or which one of the libraries it uses handles negotiating the codec.  My question is -- has anyone had luck using g.729 through linphone?  At what level is the SDP negotiation handled?


Thought somebody here might be able to shed some light on the topic.








2010-07-30 14:17:59     Re: About the g.729 patch...

Mike Frysinger (UNITED STATES)

Message: 91934   


from what i recall of the linphone architecture, it offloads all the codec and such to mediastreamer, and simply asks it what codecs it supports.  and the codec list is generated at build time by looking for certain keywords in the source files.


look at the build dir to make sure the g729 object is being compiled and that it is referenced in the alldescs.h file.




2010-07-30 14:38:59     Re: About the g.729 patch...


Message: 91936   


Thanks for the info Mike.  I did verify that the enum is included in allfilters.h, and g.729 works in the sense that I can successfully create a stream manually.  The object file for the filter is included successfully, and I link against libg729. (ld fails otherwise, which makes sense)


For whatever reason, eXosip or linphone must be thinking that there is no implementation of payload type 18, "G729/8000", because it responds with error 415.  (Mediastreamer can send/receive g.729 just fine)  I've adjusted my desktop SIP phone so that G729/8000 is the only codec that we use, so we always request payload type 18 in the sdp.  I suppose I'll have to do some digging to find out where linphone asks mediastreamer what codecs it supports?


It seems strange that mediastreamer can successfully use the codec, yet linphone responds immediately with error 415.






2010-07-30 14:43:31     Re: About the g.729 patch...

Mike Frysinger (UNITED STATES)

Message: 91938   


hmmm, the next thing i'd look at is oRTP, but it seems to already support g729.  i'm not familiar enough to know where to look next off the top of my head, but maybe some of the guys in China who have been maintaining this can offer some insight.




2010-08-02 03:10:00     Re: About the g.729 patch...

Sonic Zhang (CHINA)

Message: 92003   


The original g.729 linphone maintainer is not with us any more. I need to find someone to take over from scratch.