[asterisk-bugs] [JIRA] (ASTERISK-29185) chan_pjsip: Endpoint: allow = all is broken.

Alexander Traud (JIRA) noreply at issues.asterisk.org
Mon Nov 30 03:23:16 CST 2020


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

Alexander Traud commented on ASTERISK-29185:
--------------------------------------------

Somebody else has to bring that up into the review process because I do not support chan_pjsip and I do not know if that is an architectural change; it adds a (new?) link between main/format_cap and rtp_engine.

> chan_pjsip: Endpoint: allow = all is broken.
> --------------------------------------------
>
>                 Key: ASTERISK-29185
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-29185
>             Project: Asterisk
>          Issue Type: Bug
>      Security Level: None
>          Components: . I did not set the category correctly.
>    Affects Versions: 16.15.0, 18.1.0
>            Reporter: Alexander Traud
>            Severity: Minor
>              Labels: patch
>         Attachments: allow-all.patch
>
>
> {{pjmedia_sdp_rtpmap_to_attr}} asserts when the clock rate of a media format is not set. If asserts are not active, you configured Asterisk without {{--enable-developer-mode}}, the SDP of egress calls is simply empty.
> * testlaw
> The clock rate of testlaw is never set.
> * Codec 2
> The clock rate of Codec 2 is set only if the codec_codec2.so module is loaded. That module is loaded only when the development package of Codec 2 existed at built-time.
> * SiLK
> The clock rate of SiLK is set only if the codec_silk.so module is loaded. That module has to be explicitly selected via {{make menuselect}} or downloaded from Digium.
> The latter two media formats do not support pass-through without their shared library. This was simply a choice of the Asterisk Team because the RTP payload IDs get depleted. Therefore, those two media formats register themselves not in the general {{ast_rtp_engine_init(.)}} but in their {{load_module()}} via {{ast_rtp_engine_load_format}}.
> Consequently, the bug is actually bigger: chan_pjsip loads cached formats instead of registered formats. Therefore, the attached patch is more like a hack because it checks whether a cached format is also registered. Theoretically (but not seen in the wild yet), there could be registered formats that are not cached.
> *Workaround*
> {code}type = endpoint
> allow = all
> disallow = testlaw,codec2,silk8,silk12,silk16,silk24{code}



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



More information about the asterisk-bugs mailing list