[asterisk-bugs] [JIRA] (ASTERISK-24121) [patch] pass-through support for AMR and AMR-WB

Alexander Traud (JIRA) noreply at issues.asterisk.org
Fri Jul 25 09:24:56 CDT 2014


Alexander Traud created ASTERISK-24121:
------------------------------------------

             Summary: [patch] pass-through support for AMR and AMR-WB
                 Key: ASTERISK-24121
                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-24121
             Project: Asterisk
          Issue Type: Improvement
      Security Level: None
          Components: Codecs/NewFeature
    Affects Versions: Feature Tracker
         Environment: Ubuntu 14.04 LTS
            Reporter: Alexander Traud


This patch and the module should speed up the development of your own, favorite pass-through codec: The patch allows to load a pass-through media-codec module while Asterisk is running. As example of such a module, AMR(-WB) was implemented.

This is an implementation of [RFC 4867|https://tools.ietf.org/html/rfc4867]. Sometimes, AMR is called AMR Narrowband (AMR-NB). AMR Wideband (ITU-T Recommendation G.722.2) is sometimes abbreviated W-AMR ([GSA|http://www.gsacom.com/hdvoice/]). GSMA Mobile [HD Voice|https://www.youtube.com/playlist?&list=PLj1MyDu3jckpSciPQ1Max0W6HDSaY8-n4] is based on [AMR-WB|http://www.youtube.com/watch?v=T6HsGyKU46c]. Research papers comparing various audio codecs: [InterSpeech 2010|http://research.nokia.com/files/public/%5B12%5D_Interspeech%202010_Voice%20Quality%20Evaluation%20of%20Recent%20Open%20Source%20Codecs.pdf], [ICASSP 2010|http://research.nokia.com/files/public/%5B11%5D_ICASSP2010_Voice%20Quality%20Evaluation%20of%20Various%20Codecs.pdf], [InterSpeech 2011|http://research.nokia.com/files/public/%5B16%5D_InterSpeech2011_Voice_Quality_Characterization_of_IETF_Opus_Codec.pdf]. Further [samples …|http://www.voiceage.com/Audio-Samples-Listening-Room.html]
\\
\\
*Limitations*

* Removing the module/format without restarting Asterisk, is not supported. If you need this, please, add this!

* Not all AMR attributes mentioned in the RFC are supported.

* Asterisk 12 does not pass-through SDP attributes, yet. Opus faces the same limitation. To address this, I have a patch in testing right now, and I am going to post it in August. Until then, you are limited to the default values, like octet-align=0 and all modes set. This could create no-audio. situations. If you need GSM compatibility (3GPP TS 26.103) or you want to reduce the RTP bandwidth from 40 kb/s to below 30 kb/s
{{octet-align=0; mode-set=0,1,2; mode-change-neighbor=2; mode-change- neighbour=1}}
just change the call of {{ast_format_set}}.

* Asterisk 12 is not able to remove pass-through codecs in a SDP offer, if the remote call-leg does not support them, see ASTERISK-11782. Opus faces the same limitation. This could create no-audio situations. Again, the patch for this issue (same as above) is testing phase.
\\

*How-to Compile*
before you start, patch your Asterisk as usual; Asterisk 11.11 and Asterisk 12.4 were tested
{{sudo apt-get install build-essential cmake}}
{{mkdir codec_amr && cd ./codec_amr/}}
{{wget [^codec_amr.c]}}
{{wget [^CMakeLists.txt]}}
{{cmake .}}
{{sudo make install}}

*Thank You*
goes to [~marcelloceschia] for the idea, the initial patch, and allowing me to post the final version to the general public.



--
This message was sent by Atlassian JIRA
(v6.2#6252)



More information about the asterisk-bugs mailing list