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

Alexander Traud (JIRA) noreply at issues.asterisk.org
Tue Aug 5 07:28:56 CDT 2014


     [ https://issues.asterisk.org/jira/browse/ASTERISK-24121?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alexander Traud updated ASTERISK-24121:
---------------------------------------

    Description: 
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-period=2; mode-change-neighbor=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 in its 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 https://issues.asterisk.org/jira/secure/attachment/50793/CMakeLists.txt}}
{{wget https://issues.asterisk.org/jira/secure/attachment/50794/codec_amr.c}}
{{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.

  was:
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 in its 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 https://issues.asterisk.org/jira/secure/attachment/50793/CMakeLists.txt}}
{{wget https://issues.asterisk.org/jira/secure/attachment/50794/codec_amr.c}}
{{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.


> [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
>            Assignee: Alexander Traud
>         Attachments: CMakeLists.txt, codec_amr.c, codecDynamic_for_Asterisk11.patch, codecDynamic_for_Asterisk12.patch
>
>
> 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-period=2; mode-change-neighbor=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 in its 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 https://issues.asterisk.org/jira/secure/attachment/50793/CMakeLists.txt}}
> {{wget https://issues.asterisk.org/jira/secure/attachment/50794/codec_amr.c}}
> {{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