[OpenSER-Devel] rtpproxy - transcoder patch
Stefan Sayer
stefan.sayer at iptego.com
Wed Jul 9 23:32:59 CEST 2008
[sorry if you receive this mail multiple times on multiple mailing list
- I thought people on (open)serdev might be interested, but not
necessarily subscribed to rtpproxy lists]
Hello,
some time back Atle and me did a small hack to rtpproxy and nathelper so
it could use the codecs from SEMS[1] to transcode RTP from one codec
into another in the rtpproxy.
Unfortunately we never had or spent the time to get this further than
proof-of-concept. That is, iirc the rtpproxy part is quite ok, but the
nathelper patch could need some eyes over it. As recently someone asked
again about it, we thought we would just release the code as it is, so
if there is anyone interested she or he could take the code, maybe
improve and update it a little and maybe add it into rtpproxy/nathelper.
It works the following way:
- nathelper gets another function force_rtp_transcode, that takes the
codec to encode to, and creates a completely new SDP with the local port
and new codec line
- nathelper tells rtpproxy to transcode with a new command option (T)
that takes new codec id and format parameters
- rtpproxy gets a new codec module path option, from where codec
plugins are loaded
- when rtpproxy is invoked with 'T' command option, it instantiates a
rtpproxy transcoder session with two codec instances from the correct
codec plugins
- if a packet is received for an rtpproxy session with transcoder, it
passes the packet through the codecs before sending
The patch is against rtpproxy head from 14092006; since then I think the
rtpproxy code has been a little restructured, so it would need some
rework to go with current rtpproxy. It contains gsm, ilbc, speex-nb and
g711 codec plugins; since then g726, l16, g722 (nb de/encoding) have
been added to SEMS (though the codec interface has slightly changed,
mostly optional stuff). Other codec wrappers (e.g. 729) could be added
easily. A sample transcoder.cfg is in nathelper dir.
The patch and files are available at
http://user.cs.tu-berlin.de/~sayer/transcoder/
If anyone is taking this up, we would be happy to hear about it.
Best Regards
Stefan Sayer & Atle Samuelsen
[1] http://iptel.org/sems
--
Stefan Sayer
VoIP Services
stefan.sayer at iptego.com
www.iptego.com
iptego GmbH
Am Borsigturm 40
13507 Berlin
Germany
Amtsgericht Charlottenburg, HRB 101010
Geschaeftsfuehrer: Alexander Hoffmann
More information about the Devel
mailing list