Skip to content

maitrenem/asterisk-opus-1

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Asterisk Opus/VP8 patch

Note: This code applies to Asterisk 13. Other versions of this patch are available:

Since Opus and VP8 cannot, as of now, be integrated into the main Asterisk repositories (learn why in this thread), we prepared a patch that adds support for both codecs (Opus transcoding, VP8 passthrough) to Asterisk 13 from Git:

git clone -b 13 https://github.com/asterisk/asterisk.git asterisk-13-git

Installing the patch

To support Opus, you'll need to install libopus first. No library is needed for VP8, as its support is passthrough only.

The patch was built on top of Asterisk 13 from Git: applying it on different versions may or may not work out of the box, but solving conflicts shouldn't be too hard anyway:

cd asterisk-13-git
cp /path/to/asterisk-opus/codecs/* codecs/
cp /path/to/asterisk-opus/formats/* formats/
patch -p1 < /path/to/asterisk-opus/asterisk.patch

Run the bootstrap script to regenerate the configure:

./bootstrap.sh

Configure the patched Asterisk.

./configure --prefix=/usr

Make sure that codec_opus and format_vp8 are enabled in menuselect before going on. For better results, install the slin16 versions of the Asterisk sounds, which are not enabled by default.

make menuselect

Compile and install.

make
make install

Testing

You can test Opus using the free softphone PhonerLite. Make sure you choose the beta version, as the stable one does not comply with draft-ietf-payload-rtp-opus (RTP timestamp increment).

For VP8 you can make use of the open source softphone Linphone, which added support for VP8 in version 3.5.0.

What is missing

SDP fmtp parameters related to Opus and defined in draft-ietf-payload-rtp-opus are parsed but currently ignored: this means that there's no interaction between chan_sip and codec_opus in that sense. There is also no ad-hoc Opus configuration file for codec defaults. VP8, as anticipated, is passthrough only: besides, there's currently no way to read VP8 files for Playback.

Help us improve the support!

Found an issue? Solved one? Added something that was missing? Help us make it better!

Maintained by @seanbright Originally Developed by @meetecho

About

Opus (transcoding) and VP8 (passthrough) support for Asterisk, needed for a better WebRTC integration

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 100.0%