[asterisk-bugs] [JIRA] (ASTERISK-25160) [patch] Opus Codec: SIP/SDP line fmtp missing when called internally

Alexander Traud (JIRA) noreply at issues.asterisk.org
Mon Nov 9 06:58:33 CST 2015


    [ https://issues.asterisk.org/jira/browse/ASTERISK-25160?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=226492#comment-226492 ] 

Alexander Traud edited comment on ASTERISK-25160 at 11/9/15 6:58 AM:
---------------------------------------------------------------------

This is marked as a minor bug, because I do not know a scenario when this bug is noticed by an end-user. The mentioned formats are pass-through only, yet and do not work for local extensions. Even when used with the transcoding module for the [Opus Codec |https://github.com/seanbright/opus], this does not affect end-users, because rtpmap is ignored with that module. However, this is an issue in my transcoding modules for [iLBC 20|https://github.com/traud/asterisk-ilbc], [SILK|https://github.com/traud/asterisk-silk], and [AMR(-WB)|https://github.com/traud/asterisk-amr]. Those modules require a working {{fmtp}} even for local extensions.

Patch A does not solve the actual cause but avoids this situation. I do not like this approach, because not just "generate" but "joint" and "compare" could be affected by this bug as well. Nevertheless, joint/compare did not misbehave for me, yet.

Patch B solves the actual cause. At least for cached formats (type I). I was not able to create a scenario with a format from type II. Therefore, patch B does not include that part. Instead, this is the topic of ASTERISK-25535.


was (Author: traud):
This is marked as a minor bug, because I do not know a scenario when this bug is noticed by an end-user. The mentioned formats are pass-through only, yet and do not work for local extensions. Even when used with the transcoding module for the [Opus Codec |https://github.com/seanbright/opus], this does not affect end-users, because rtpmap is ignored with that module. However, this is an issue in my transcoding modules for [iLBC 20|https://github.com/traud/asterisk-ilbc], [SILK|https://github.com/traud/asterisk-silk], and [AMR(-WB)|https://github.com/traud/asterisk-amr]. Those modules require a working {{fmtp}} even for local extensions.

Patch A does not solve the actual cause but avoids this situation. I do not like this approach, because not just "generate" but "joint" and "compare" could be affected by this bug as well. Nevertheless, joint/compare did not misbehave for me, yet.

Patch B solves the actual cause. At least for cached formats (type I). I was not able to create a scenario with a format from type II. Therefore, patch B does not include that part. Instead, this is the topic of ASTERISK-25535.

*Question to the Asterisk team:*
Why are format-attribute modules loaded so late, after channels are loaded?

> [patch] Opus Codec: SIP/SDP line fmtp missing when called internally
> --------------------------------------------------------------------
>
>                 Key: ASTERISK-25160
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-25160
>             Project: Asterisk
>          Issue Type: Bug
>      Security Level: None
>          Components: Channels/chan_sip/CodecHandling
>    Affects Versions: SVN, 13.4.0
>         Environment: Ubuntu 14.04 LTS
>            Reporter: Alexander Traud
>            Severity: Minor
>         Attachments: A_generate_sdp_fmtp_always.patch, B_register_interface_with_cached.patch
>
>
> Sometimes, Asterisk does not send a line {{x=fmtp:y}} while negotiating the formats via SIP/SDP. This affects all formats with an attribute module like H.263, H.264, and Opus {{res/res_format_attr_opus.c}}.
> This happens, because {{ast_format_generate_sdp_fmtp}} is called with a format without an attribute module (variable {{interface}} is NULL). This happens, because such a format was created before its attribute module got registered. This happens for
> I) cached formats: main » ast_codec_builtin_init » CODEC_REGISTER_AND_CACHE » ast_format_create | ast_format_cache_set » set_cached_format
> II) local capabilities: main » ast_local_init » ast_format_cap_append_by_type » ast_format_create
> Steps to reproduce:
> # {{make install samples}}
> # edit the configuration file {{sip.conf}} to allow {{opus}}
> # dial echo-test extension (600)



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



More information about the asterisk-bugs mailing list