]> git.ipfire.org Git - thirdparty/asterisk.git/commit
chan_dahdi: Fix broken hidecallerid setting. (#101)
authorInterLinked1 <24227567+InterLinked1@users.noreply.github.com>
Thu, 25 May 2023 14:48:54 +0000 (10:48 -0400)
committerGitHub <noreply@github.com>
Thu, 25 May 2023 14:48:54 +0000 (08:48 -0600)
commit200a3f1d68fa9ce744d55c1f640f2b7d8df2a2de
treece3a03ce628ace4bad2af4e4e856f29108ac17ba
parent869cb0c2608c7602eb372063a28f5160b57ac412
chan_dahdi: Fix broken hidecallerid setting. (#101)

The hidecallerid setting in chan_dahdi.conf currently
is broken for a couple reasons.

First, the actual code in sig_analog to "allow" or "block"
Caller ID depending on this setting improperly used
ast_set_callerid instead of updating the presentation.
This issue was mostly fixed in ASTERISK_29991, and that
fix is carried forward to this code as well.

Secondly, the hidecallerid setting is set on the DAHDI
pvt but not carried forward to the analog pvt properly.
This is because the chan_dahdi config loading code improperly
set permhidecallerid to permhidecallerid from the config file,
even though hidecallerid is what is actually set from the config
file. (This is done correctly for call waiting, a few lines above.)
This is fixed to read the proper value.

Thirdly, in sig_analog, hidecallerid is set to permhidecallerid
only on hangup. This can lead to potential security vulnerabilities
as an allowed Caller ID from an initial call can "leak" into subsequent
calls if no hangup occurs between them. This is fixed by setting
hidecallerid to permcallerid when calls begin, rather than when they end.
This also means we don't need to also set hidecallerid in chan_dahdi.c
when copying from the config, as we would have to otherwise.

Fourthly, sig_analog currently only allows dialing *67 or *82 if
that would actually toggle the presentation. A comment is added
clarifying that this behavior is okay.

Finally, a couple log messages are updated to be more accurate.

Resolves: #100
ASTERISK-30349 #close
channels/chan_dahdi.c
channels/sig_analog.c