asterisk/configs/samples
George Joseph 628f8d7a43 Stir/Shaken Refactor
Why do we need a refactor?

The original stir/shaken implementation was started over 3 years ago
when little was understood about practical implementation.  The
result was an implementation that wouldn't actually interoperate
with any other stir-shaken implementations.

There were also a number of stir-shaken features and RFC
requirements that were never implemented such as TNAuthList
certificate validation, sending Reason headers in SIP responses
when verification failed but we wished to continue the call, and
the ability to send Media Key(mky) grants in the Identity header
when the call involved DTLS.

Finally, there were some performance concerns around outgoing
calls and selection of the correct certificate and private key.
The configuration was keyed by an arbitrary name which meant that
for every outgoing call, we had to scan the entire list of
configured TNs to find the correct cert to use.  With only a few
TNs configured, this wasn't an issue but if you have a thousand,
it could be.

What's changed?

* Configuration objects have been refactored to be clearer about
  their uses and to fix issues.
    * The "general" object was renamed to "verification" since it
      contains parameters specific to the incoming verification
      process.  It also never handled ca_path and crl_path
      correctly.
    * A new "attestation" object was added that controls the
      outgoing attestation process.  It sets default certificates,
      keys, etc.
    * The "certificate" object was renamed to "tn" and had it's key
      change to telephone number since outgoing call attestation
      needs to look up certificates by telephone number.
    * The "profile" object had more parameters added to it that can
      override default parameters specified in the "attestation"
      and "verification" objects.
    * The "store" object was removed altogther as it was never
      implemented.

* We now use libjwt to create outgoing Identity headers and to
  parse and validate signatures on incoming Identiy headers.  Our
  previous custom implementation was much of the source of the
  interoperability issues.

* General code cleanup and refactor.
    * Moved things to better places.
    * Separated some of the complex functions to smaller ones.
    * Using context objects rather than passing tons of parameters
      in function calls.
    * Removed some complexity and unneeded encapsuation from the
      config objects.

Resolves: #351
Resolves: #46

UserNote: Asterisk's stir-shaken feature has been refactored to
correct interoperability, RFC compliance, and performance issues.
See https://docs.asterisk.org/Deployment/STIR-SHAKEN for more
information.

UpgradeNote: The stir-shaken refactor is a breaking change but since
it's not working now we don't think it matters. The
stir_shaken.conf file has changed significantly which means that
existing ones WILL need to be changed.  The stir_shaken.conf.sample
file in configs/samples/ has quite a bit more information.  This is
also an ABI breaking change since some of the existing objects
needed to be changed or removed, and new ones added.  Additionally,
if res_stir_shaken is enabled in menuselect, you'll need to either
have the development package for libjwt v1.15.3 installed or use
the --with-libjwt-bundled option with ./configure.
2024-02-28 18:39:03 +00:00
..
acl.conf.sample configs: Move sample config files into a subdirectory of configs 2014-07-17 21:17:28 +00:00
adsi.conf.sample configs: Move sample config files into a subdirectory of configs 2014-07-17 21:17:28 +00:00
aeap.conf.sample res_aeap & res_speech_aeap: Add Asterisk External Application Protocol 2022-04-26 14:26:48 -05:00
agents.conf.sample configs: Move sample config files into a subdirectory of configs 2014-07-17 21:17:28 +00:00
alarmreceiver.conf.sample configs: Move sample config files into a subdirectory of configs 2014-07-17 21:17:28 +00:00
amd.conf.sample app_amd: Add option to play audio during AMD. 2022-09-26 09:30:36 -05:00
app_skel.conf.sample configs: Move sample config files into a subdirectory of configs 2014-07-17 21:17:28 +00:00
ari.conf.sample stasis: Segment channel snapshot to reduce creation cost. 2018-11-26 12:56:24 -06:00
ast_debug_tools.conf.sample ast_coredumper: Refactor to better find things 2021-10-28 13:50:43 -05:00
asterisk.adsi Remove as much trailing whitespace as possible. 2017-12-22 09:23:22 -05:00
asterisk.conf.sample file.c: Add ability to search custom dir for sounds 2023-09-20 19:15:07 +00:00
calendar.conf.sample Remove as much trailing whitespace as possible. 2017-12-22 09:23:22 -05:00
ccss.conf.sample general: Fix broken links. 2023-12-08 13:11:54 +00:00
cdr.conf.sample cdr: Allow bridging and dial state changes to be ignored. 2022-10-10 12:07:03 -05:00
cdr_adaptive_odbc.conf.sample Remove as much trailing whitespace as possible. 2017-12-22 09:23:22 -05:00
cdr_beanstalkd.conf.sample Remove as much trailing whitespace as possible. 2017-12-22 09:23:22 -05:00
cdr_custom.conf.sample configs: Move sample config files into a subdirectory of configs 2014-07-17 21:17:28 +00:00
cdr_manager.conf.sample configs: Move sample config files into a subdirectory of configs 2014-07-17 21:17:28 +00:00
cdr_odbc.conf.sample cdr/cdr_odbc.c: Added to record new columns add on CDR 1.8 Asterisk Version 2015-04-27 09:38:15 -05:00
cdr_pgsql.conf.sample configs: Move sample config files into a subdirectory of configs 2014-07-17 21:17:28 +00:00
cdr_sqlite3_custom.conf.sample Sqlite3: make busy_timeout configurable. 2017-05-25 10:02:42 +02:00
cdr_tds.conf.sample Remove as much trailing whitespace as possible. 2017-12-22 09:23:22 -05:00
cel.conf.sample Remove as much trailing whitespace as possible. 2017-12-22 09:23:22 -05:00
cel_beanstalkd.conf.sample This patch adds a beanstalk CEL backend. 2017-11-16 09:47:10 -06:00
cel_custom.conf.sample configs: Move sample config files into a subdirectory of configs 2014-07-17 21:17:28 +00:00
cel_odbc.conf.sample configs: Move sample config files into a subdirectory of configs 2014-07-17 21:17:28 +00:00
cel_pgsql.conf.sample cel_pgsql: Add support for setting schema 2015-05-05 07:59:12 -04:00
cel_sqlite3_custom.conf.sample Sqlite3: make busy_timeout configurable. 2017-05-25 10:02:42 +02:00
cel_tds.conf.sample configs: Move sample config files into a subdirectory of configs 2014-07-17 21:17:28 +00:00
chan_dahdi.conf.sample general: Fix broken links. 2023-12-08 13:11:54 +00:00
chan_mobile.conf.sample Remove as much trailing whitespace as possible. 2017-12-22 09:23:22 -05:00
cli.conf.sample chan_sip: Remove deprecated module. 2023-01-03 09:00:42 -06:00
cli_aliases.conf.sample chan_sip: Remove deprecated module. 2023-01-03 09:00:42 -06:00
cli_permissions.conf.sample chan_sip: Remove deprecated module. 2023-01-03 09:00:42 -06:00
codecs.conf.sample chan_sip: Remove deprecated module. 2023-01-03 09:00:42 -06:00
confbridge.conf.sample app_confbridge: Add end_marked_any option. 2022-09-11 16:22:08 -05:00
config_test.conf.sample core: Add PARSE_TIMELEN support to ast_parse_arg and ACO. 2017-07-13 11:44:14 -04:00
console.conf.sample Sample configs: Eliminate false multiline comment block starts. 2016-09-02 13:01:13 -05:00
dbsep.conf.sample Remove as much trailing whitespace as possible. 2017-12-22 09:23:22 -05:00
dnsmgr.conf.sample configs: Move sample config files into a subdirectory of configs 2014-07-17 21:17:28 +00:00
dsp.conf.sample Remove as much trailing whitespace as possible. 2017-12-22 09:23:22 -05:00
dundi.conf.sample doc: Update IP Quality of Service links. 2023-11-07 17:10:44 +00:00
enum.conf.sample configs: Move sample config files into a subdirectory of configs 2014-07-17 21:17:28 +00:00
extconfig.conf.sample Stir/Shaken Refactor 2024-02-28 18:39:03 +00:00
extensions.ael.sample extensions.conf.sample: Remove reference to missing context. 2023-07-21 17:49:34 +00:00
extensions.conf.sample extensions.conf.sample: Remove reference to missing context. 2023-07-21 17:49:34 +00:00
extensions.lua.sample extensions.conf.sample: Remove reference to missing context. 2023-07-21 17:49:34 +00:00
extensions_minivm.conf.sample app_macro: Remove deprecated module. 2023-01-10 14:07:44 -06:00
features.conf.sample res_monitor: Remove deprecated module. 2023-01-13 08:32:33 -06:00
festival.conf.sample Remove as much trailing whitespace as possible. 2017-12-22 09:23:22 -05:00
followme.conf.sample app_followme: Add a prompt to be read when a call is connected 2018-01-17 12:08:59 -06:00
func_odbc.conf.sample func_odbc: Add SQL_ESC_BACKSLASHES dialplan function. 2022-04-14 12:13:43 -05:00
geolocation.conf.sample general: Fix broken links. 2023-12-08 13:11:54 +00:00
hep.conf.sample chan_sip: Remove deprecated module. 2023-01-03 09:00:42 -06:00
http.conf.sample http: Add ability to disable /httpstatus URI 2020-01-22 10:10:14 -06:00
iax.conf.sample configs: Improve documentation for bandwidth in iax.conf. 2023-11-09 18:24:07 +00:00
iaxprov.conf.sample doc: Update IP Quality of Service links. 2023-11-07 17:10:44 +00:00
indications.conf.sample indications.conf.sample: Add indication tones for Indonesia 2020-03-06 08:42:25 -06:00
logger.conf.sample configs: Spelling fixes 2021-11-16 06:00:28 -06:00
manager.conf.sample ami: Allow events to be globally disabled. 2022-02-17 11:58:26 -06:00
meetme.conf.sample configs: Move sample config files into a subdirectory of configs 2014-07-17 21:17:28 +00:00
minivm.conf.sample app_macro: Remove deprecated module. 2023-01-10 14:07:44 -06:00
modules.conf.sample chan_sip: Remove deprecated module. 2023-01-03 09:00:42 -06:00
motif.conf.sample configs: Spelling fixes 2021-11-16 06:00:28 -06:00
musiconhold.conf.sample res_musiconhold: Add option to loop last file. 2023-06-05 12:34:40 -06:00
ooh323.conf.sample configs: Spelling fixes 2021-11-16 06:00:28 -06:00
phoneprov.conf.sample chan_sip: Remove deprecated module. 2023-01-03 09:00:42 -06:00
pjproject.conf.sample res_pjsip: disable raw bad packet logging 2023-12-14 18:48:22 +00:00
pjsip.conf.sample general: Fix broken links. 2023-12-08 13:11:54 +00:00
pjsip_notify.conf.sample configs: Move sample config files into a subdirectory of configs 2014-07-17 21:17:28 +00:00
pjsip_wizard.conf.sample general: Fix broken links. 2023-12-08 13:11:54 +00:00
prometheus.conf.sample res_prometheus.c: missing module dependency 2022-02-10 12:58:34 -06:00
queuerules.conf.sample Remove as much trailing whitespace as possible. 2017-12-22 09:23:22 -05:00
queues.conf.sample app_queue: periodic announcement configurable start time. 2023-09-07 11:28:34 +00:00
res_config_mysql.conf.sample chan_sip: Remove deprecated module. 2023-01-03 09:00:42 -06:00
res_config_odbc.conf.sample extconfig: Allow explicit DB result set ordering to be disabled. 2023-08-14 17:20:09 +00:00
res_config_sqlite3.conf.sample Sqlite3: make busy_timeout configurable. 2017-05-25 10:02:42 +02:00
res_corosync.conf.sample configs: Move sample config files into a subdirectory of configs 2014-07-17 21:17:28 +00:00
res_curl.conf.sample func_curl.c: Allow user to set what return codes constitute a failure. 2020-11-06 12:39:03 -06:00
res_fax.conf.sample Remove as much trailing whitespace as possible. 2017-12-22 09:23:22 -05:00
res_http_media_cache.conf.sample res_http_media_cache: Introduce options and customize 2023-03-06 12:16:24 -06:00
res_ldap.conf.sample chan_sip: Remove deprecated module. 2023-01-03 09:00:42 -06:00
res_odbc.conf.sample res_odbc: Add basic query logging. 2019-02-07 08:23:14 -06:00
res_parking.conf.sample samples: PARKINGSLOT -> PARKING_SPACE in parking sample config 2018-10-18 14:59:01 -05:00
res_pgsql.conf.sample extconfig: Allow explicit DB result set ordering to be disabled. 2023-08-14 17:20:09 +00:00
res_snmp.conf.sample Remove as much trailing whitespace as possible. 2017-12-22 09:23:22 -05:00
res_stun_monitor.conf.sample chan_sip: Remove deprecated module. 2023-01-03 09:00:42 -06:00
resolver_unbound.conf.sample Remove as much trailing whitespace as possible. 2017-12-22 09:23:22 -05:00
rtp.conf.sample configs: Spelling fixes 2021-11-16 06:00:28 -06:00
say.conf.sample say.conf: fix 12pm noon logic 2022-01-05 14:17:21 -06:00
sla.conf.sample general: Fix broken links. 2023-12-08 13:11:54 +00:00
smdi.conf.sample configs: Move sample config files into a subdirectory of configs 2014-07-17 21:17:28 +00:00
sorcery.conf.sample Stir/Shaken Refactor 2024-02-28 18:39:03 +00:00
ss7.timers.sample configs: Move sample config files into a subdirectory of configs 2014-07-17 21:17:28 +00:00
stasis.conf.sample res_monitor: Remove deprecated module. 2023-01-13 08:32:33 -06:00
statsd.conf.sample res_statsd: handle non-standard meter type safely 2021-08-03 08:12:33 -05:00
stir_shaken.conf.sample Stir/Shaken Refactor 2024-02-28 18:39:03 +00:00
telcordia-1.adsi configs: Move sample config files into a subdirectory of configs 2014-07-17 21:17:28 +00:00
test_sorcery.conf.sample configs: Move sample config files into a subdirectory of configs 2014-07-17 21:17:28 +00:00
udptl.conf.sample configs: Move sample config files into a subdirectory of configs 2014-07-17 21:17:28 +00:00
unistim.conf.sample doc: Update IP Quality of Service links. 2023-11-07 17:10:44 +00:00
users.conf.sample users.conf: Deprecate users.conf configuration. 2023-07-12 14:09:28 +00:00
voicemail.conf.sample voicemail.conf: Fix incorrect comment about #include. 2023-04-10 12:05:06 -05:00
xmpp.conf.sample Remove as much trailing whitespace as possible. 2017-12-22 09:23:22 -05:00