Opus (transcoding) and VP8 (passthrough) support for Asterisk, needed for a better WebRTC integration
Clone or download
Pull request Compare This branch is 6 commits ahead, 1 commit behind greenfieldtech-nirs:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
LICENSE
README.md
asterisk-11.10.2-opus+vp8.patch
asterisk-11.11.0-opus+vp8.patch
asterisk-11.8.1-opus+vp8.patch
asterisk-12.2-5_opus.patch

README.md

#Asterisk Opus/VP8 patches

The following project is based upon the original work of @meetecho - who created a patch to support Opus Transcoding and VP8 Passthrough with Asterisk 11.1.2. Since the inception of the original patch, Asterisk had progressed, however, the original patch hadn't.

The puporse of this project will be to forward patch the original work to new versions and maybe even add support for future versions of Asterisk 12 and greater.

Since Opus and VP8 cannot, as of now, be integrated in the Asterisk repositories (learn why in this thread).

The patch name contains the name of the Asterisk version it is compatible with, so pay attention to what you download.

##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 11.1.2: applying it on different versions may or may not work out of the box, but solving conflicts shouldn't be too hard anyway. Copy it in the Asterisk source folder and apply it:

**For Asterisk 11.1.2:** patch -p1 -u < asterisk-11.1.2-opus+vp8.patch

**For Asterisk 11.8.2:** patch -p1 -u < asterisk-11.8.1-opus+vp8.patch

**For Asterisk 12.2.0 and up (tested till 12.2.5) :** patch -p1 -u < asterisk-12.2-5_opus.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. Besides, 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). The codec_opus module also has a CLI command to enable debugging: type opus set debug for information about it.

Usage: opus set debug {status|none|normal|huge}
	Enable/Disable Opus debugging: normal only debugs setup and errors, huge debugs every single packet

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. Besides, there still is 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!

Developed by @meetecho

Forward patched by @greenfieldtech-nirs