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

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


Alexander Traud created ASTERISK-29185:
------------------------------------------

             Summary: 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: 18.1.0, 16.15.0
            Reporter: Alexander Traud
            Severity: Minor
         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