asterisk/include/asterisk
George Joseph fd27df9479 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.

(cherry picked from commit e6c7f1aee0)
2024-03-07 14:17:23 +00:00
..
doxygen include: Spelling fixes 2021-11-16 05:59:44 -06:00
.gitignore Add .gitignore and .gitreview files 2015-04-11 19:43:43 -06:00
_private.h core/ari/pjsip: Add refer mechanism 2023-09-06 16:55:59 +00:00
abstract_jb.h include: Spelling fixes 2021-11-16 05:59:44 -06:00
acl.h main: Fix for Doxygen. 2021-12-02 15:02:09 -06:00
adsi.h progdocs: Fix grouping for latest Doxygen. 2021-12-02 10:26:08 -06:00
ael_structs.h Remove as much trailing whitespace as possible. 2017-12-22 09:23:22 -05:00
agi.h Remove redundant module checks and references. 2018-01-24 13:37:29 -05:00
alaw.h
alertpipe.h main: Fix for Doxygen. 2021-12-02 15:02:09 -06:00
aoc.h include: Spelling fixes 2021-11-16 05:59:44 -06:00
app.h app.h: Move declaration of ast_getdata_result before its first use 2023-07-13 05:45:06 -06:00
ari.h res_ari: Fix for Doxygen. 2021-11-18 16:25:51 -06:00
ast_expr.h Remove as much trailing whitespace as possible. 2017-12-22 09:23:22 -05:00
ast_version.h make_buildopts_h, et. al. Allow adding all cflags to buildopts.h 2024-01-12 18:29:18 +00:00
astdb.h Stir/Shaken Refactor 2024-03-07 14:17:23 +00:00
astmm.h progdocs: Fix grouping for latest Doxygen. 2021-12-02 10:26:08 -06:00
astobj2.h main: Fix for Doxygen. 2021-12-02 15:02:09 -06:00
audiohook.h res_mixmonitor: MixMonitorMute by MixMonitor ID 2023-05-08 18:13:35 +00:00
autochan.h main: Fix for Doxygen. 2021-12-02 15:02:09 -06:00
autoconfig.h.in configure: Rerun bootstrap on modern platform. 2024-03-07 14:17:22 +00:00
backtrace.h main: Fix for Doxygen. 2021-12-02 15:02:09 -06:00
beep.h (mix)monitor: Add options to enable a periodic beep 2014-04-15 23:21:19 +00:00
bridge.h main: Fix for Doxygen. 2021-12-02 15:02:09 -06:00
bridge_after.h main: Fix for Doxygen. 2021-12-02 15:02:09 -06:00
bridge_basic.h main: Fix for Doxygen. 2021-12-02 15:02:09 -06:00
bridge_channel.h bridge_channel: Fix for Doxygen. 2021-11-18 09:20:52 -06:00
bridge_channel_internal.h main: Fix for Doxygen. 2021-12-02 15:02:09 -06:00
bridge_features.h main: Fix for Doxygen. 2021-12-02 15:02:09 -06:00
bridge_internal.h main: Fix for Doxygen. 2021-12-02 15:02:09 -06:00
bridge_roles.h main: Fix for Doxygen. 2021-12-02 15:02:09 -06:00
bridge_technology.h app_confbridge: Update dsp_silence_threshold and dsp_talking_threshold docs. 2018-01-31 13:13:27 -06:00
bucket.h main: Fix for Doxygen. 2021-12-02 15:02:09 -06:00
buildinfo.h
calendar.h res: Fix for Doxygen. 2021-12-03 10:38:39 -06:00
callerid.h callerid: Allow specifying timezone for date/time. 2023-07-10 11:49:47 +00:00
causes.h progdocs: Fix grouping for latest Doxygen. 2021-12-02 10:26:08 -06:00
ccss.h main: Fix for Doxygen. 2021-12-02 15:02:09 -06:00
cdr.h cdr: Allow bridging and dial state changes to be ignored. 2022-10-10 12:06:36 -05:00
cel.h cel: add publish user event helper 2024-01-12 18:29:18 +00:00
celt.h
channel.h doxygen: Fix doxygen errors. 2023-01-31 12:59:16 -06:00
channel_internal.h various files - fix some alerts raised by lgtm code analysis 2019-11-18 08:30:45 -06:00
channelstate.h
chanvars.h core: Remove ABI effects of MALLOC_DEBUG. 2018-03-01 13:13:55 -06:00
cli.h main: Fix for Doxygen. 2021-12-02 15:02:09 -06:00
codec.h format: Reintroduce smoother flags 2017-05-30 15:10:20 -05:00
compat.h core: Remove ABI effects of MALLOC_DEBUG. 2018-03-01 13:13:55 -06:00
compiler.h Add conditional support for noreturn functions. 2016-07-19 22:45:10 -05:00
config.h Geolocation: Base Asterisk Prereqs 2022-07-07 08:19:14 -05:00
config_options.h main: Fix for Doxygen. 2021-12-02 15:02:09 -06:00
conversions.h progdocs: Fix Doxygen left-overs. 2021-12-13 08:57:26 -06:00
core_local.h progdocs: Fix Doxygen left-overs. 2021-12-13 08:57:26 -06:00
core_unreal.h main: Fix for Doxygen. 2021-12-02 15:02:09 -06:00
crypto.h doxygen: Fix doxygen errors. 2023-01-31 12:59:16 -06:00
data_buffer.h main: Fix for Doxygen. 2021-12-02 15:02:09 -06:00
datastore.h progdocs: Fix for Doxygen, the hidden parts. 2021-12-02 10:37:38 -06:00
devicestate.h main: Fix for Doxygen. 2021-12-02 15:02:09 -06:00
dial.h main: Fix for Doxygen. 2021-12-02 15:02:09 -06:00
dlinkedlists.h progdocs: Avoid 'name' with Doxygen \file. 2021-11-18 08:17:56 -06:00
dns.h main: Fix for Doxygen. 2021-12-02 15:02:09 -06:00
dns_core.h main: Fix for Doxygen. 2021-12-02 15:02:09 -06:00
dns_internal.h dns_txt: Add TXT record parsing support 2020-03-13 09:58:59 -05:00
dns_naptr.h dns: Add core DNS API + unit tests and res_resolver_unbound module + unit tests. 2015-03-25 12:32:26 +00:00
dns_query_set.h res_pjsip: Add external PJSIP resolver implementation using core DNS API. 2015-04-15 10:47:53 -03:00
dns_recurring.h main: Fix for Doxygen. 2021-12-02 15:02:09 -06:00
dns_resolver.h main: Fix for Doxygen. 2021-12-02 15:02:09 -06:00
dns_srv.h dns: Add core DNS API + unit tests and res_resolver_unbound module + unit tests. 2015-03-25 12:32:26 +00:00
dns_test.h Reduce duplication of common DNS code. 2015-04-09 14:58:02 +00:00
dns_tlsa.h dns: Add core DNS API + unit tests and res_resolver_unbound module + unit tests. 2015-03-25 12:32:26 +00:00
dns_txt.h dns_txt: Add TXT record parsing support 2020-03-13 09:58:59 -05:00
dnsmgr.h main: Fix for Doxygen. 2021-12-02 15:02:09 -06:00
doxyref.h core: Cleanup gerrit and JIRA references. (#57) 2023-05-08 18:13:36 +00:00
dsp.h res_tonedetect: Tone detection module 2021-09-10 11:08:11 -05:00
dundi.h pbx_dundi: Add PJSIP support. 2023-05-08 18:13:35 +00:00
endian.h BuildSystem: Add DragonFly BSD. 2018-04-20 12:50:03 +02:00
endpoints.h progdocs: Fix Doxygen left-overs. 2021-12-13 08:57:26 -06:00
enum.h progdocs: Avoid 'name' with Doxygen \file. 2021-11-18 08:17:56 -06:00
event.h main: Fix for Doxygen. 2021-12-02 15:02:09 -06:00
event_defs.h main: Fix for Doxygen. 2021-12-02 15:02:09 -06:00
extconf.h Core: Increase AST_PBX_MAX_STACK to 512 if not LOW_MEMORY 2019-02-20 12:52:53 -06:00
features.h Bridge system: Fix memory leaks and double frees on impart failure. 2016-04-22 15:45:47 -05:00
features_config.h features: Add transfer initiation options. 2022-09-08 13:47:25 -05:00
file.h streams: Ensure that stream is closed in ast_stream_and_wait on error 2022-12-20 08:51:42 -06:00
format.h main: Fix for Doxygen. 2021-12-02 15:02:09 -06:00
format_cache.h main: Fix for Doxygen. 2021-12-02 15:02:09 -06:00
format_cap.h main: Fix for Doxygen. 2021-12-02 15:02:09 -06:00
format_compatibility.h codecs: Remove test-law. 2021-01-04 05:00:58 -06:00
frame.h func_channel: Expose previously unsettable options. 2024-01-12 18:29:19 +00:00
framehook.h frame: Fix for Doxygen. 2021-11-18 16:13:18 -06:00
fskmodem.h Remove as much trailing whitespace as possible. 2017-12-22 09:23:22 -05:00
fskmodem_float.h main: Fix for Doxygen. 2021-12-02 15:02:09 -06:00
fskmodem_int.h main: Fix for Doxygen. 2021-12-02 15:02:09 -06:00
global_datastores.h Detect potential forwarding loops based on count. 2015-04-17 15:58:07 -05:00
hashtab.h main: Fix for Doxygen. 2021-12-02 15:02:09 -06:00
heap.h main: Fix for Doxygen. 2021-12-02 15:02:09 -06:00
http.h http.c: Add ability to create multiple HTTP servers 2021-12-15 09:58:27 -06:00
http_websocket.h res_http_websocket: Add a client connection timeout 2022-01-31 07:18:51 -06:00
ilbc.h codecs: Add iLBC 20. 2016-07-22 10:09:08 +02:00
image.h progdocs: Fix Doxygen left-overs. 2021-12-13 08:57:26 -06:00
indications.h Remove as much trailing whitespace as possible. 2017-12-22 09:23:22 -05:00
inline_api.h core: Remove ABI effects of LOW_MEMORY. 2016-09-29 03:22:28 -04:00
io.h main: Fix for Doxygen. 2021-12-02 15:02:09 -06:00
iostream.h main: Fix for Doxygen. 2021-12-02 15:02:09 -06:00
json.h func_json: Fix crashes for some types 2024-01-12 18:29:18 +00:00
linkedlists.h progdocs: Avoid 'name' with Doxygen \file. 2021-11-18 08:17:56 -06:00
localtime.h
lock.h lock.c: Separate DETECT_DEADLOCKS from DEBUG_THREADS 2024-01-12 18:29:18 +00:00
logger.h logger.h: Add ability to change the prefix on SCOPE_TRACE output 2024-01-12 18:29:18 +00:00
logger_category.h main: Fix for Doxygen. 2021-12-02 15:02:09 -06:00
manager.h chan_pjsip: Add PJSIPHangup dialplan app and manager action 2024-01-12 18:29:19 +00:00
max_forwards.h main: Fix for Doxygen. 2021-12-02 15:02:09 -06:00
md5.h
media_cache.h media cache: Add a core API and facade for a backend agnostic media cache 2015-07-12 20:44:16 -05:00
media_index.h media_index.c: Refactored so it doesn't cache the index 2019-01-28 12:26:58 -07:00
message.h main: Fix for Doxygen. 2021-12-02 15:02:09 -06:00
mixmonitor.h various files - fix some alerts raised by lgtm code analysis 2019-11-18 08:30:45 -06:00
mod_format.h include: Spelling fixes 2021-11-16 05:59:44 -06:00
module.h loader: Prevent deadlock using tab completion. 2022-06-06 16:51:32 -05:00
monitor.h Remove unneeded uses of optional_api providers. 2015-05-02 19:31:12 -05:00
multicast_rtp.h main: Fix for Doxygen. 2021-12-02 15:02:09 -06:00
musiconhold.h
mwi.h main: Fix for Doxygen. 2021-12-02 15:02:09 -06:00
named_locks.h named_locks: Use ao2_weakproxy to deal with cleanup from container. 2016-09-02 09:13:45 -04:00
netsock2.h main: Fix for Doxygen. 2021-12-02 15:02:09 -06:00
network.h thread safety: Don't use getprotobyname() 2017-03-20 08:55:05 -04:00
optional_api.h Build: Make function constructor/destructor attributes mandatory. 2017-11-10 13:32:06 -05:00
options.h file.c: Add ability to search custom dir for sounds 2024-01-12 18:29:18 +00:00
opus.h codec_opus: Replace res_format_attr_opus with the one from codec_opus 2016-09-27 13:42:02 -05:00
parking.h parking: Fix for Doxygen. 2021-11-18 16:59:26 -06:00
paths.h Introduce astcachedir, to be used for temporary bucket files 2020-12-09 11:17:27 -06:00
pbx.h doxygen: Fix doxygen errors. 2023-01-31 12:59:16 -06:00
phoneprov.h res: Fix for Doxygen. 2021-12-03 10:38:39 -06:00
pickup.h main: Fix for Doxygen. 2021-12-02 15:02:09 -06:00
pktccops.h Remove as much trailing whitespace as possible. 2017-12-22 09:23:22 -05:00
plc.h include: Spelling fixes 2021-11-16 05:59:44 -06:00
poll-compat.h Fix #include poll.h and sys/cdefs.h 2016-06-02 22:53:39 +03:00
presencestate.h Remove as much trailing whitespace as possible. 2017-12-22 09:23:22 -05:00
privacy.h include: Spelling fixes 2021-11-16 05:59:44 -06:00
pval.h Remove as much trailing whitespace as possible. 2017-12-22 09:23:22 -05:00
refer.h core/ari/pjsip: Add refer mechanism 2023-09-06 16:55:59 +00:00
res_aeap.h doxygen: Fix doxygen errors. 2023-01-31 12:59:16 -06:00
res_aeap_message.h doxygen: Fix doxygen errors. 2023-01-31 12:59:16 -06:00
res_audiosocket.h feat: AudioSocket channel, application, and ARI support. 2020-01-14 09:36:44 -06:00
res_fax.h res_fax: wrap v21 detected Asterisk initiated negotiation with config option 2019-12-13 14:24:10 -06:00
res_geolocation.h doxygen: Fix doxygen errors. 2023-01-31 12:59:16 -06:00
res_hep.h res: Fix for Doxygen. 2021-12-03 10:38:39 -06:00
res_mwi_external.h res: Fix for Doxygen. 2021-12-03 10:38:39 -06:00
res_odbc.h odbc: Fix for Doxygen. 2021-11-19 02:50:36 -06:00
res_odbc_transaction.h res_odbc: Remove connection management 2016-01-22 11:59:06 -06:00
res_pjproject.h res_rtp_asterisk: Fix regression issues with DTLS client check 2023-12-20 08:47:21 -07:00
res_pjsip.h Stir/Shaken Refactor 2024-03-07 14:17:23 +00:00
res_pjsip_body_generator_types.h res_pjsip_pubsub: Use common datastores container API. 2016-05-09 10:40:36 -03:00
res_pjsip_cli.h res: Fix for Doxygen. 2021-12-03 10:38:39 -06:00
res_pjsip_outbound_publish.h res_pjsip_exten_state: Use the extension for publishing to. 2016-05-18 18:37:27 -05:00
res_pjsip_presence_xml.h res_pjsip: Fix for Doxygen. 2021-11-18 12:14:54 -06:00
res_pjsip_pubsub.h res_pjsip_pubsub: provide a display name for RLS subscriptions 2022-02-23 15:20:49 -06:00
res_pjsip_session.h Stir/Shaken Refactor 2024-03-07 14:17:23 +00:00
res_pjsip_session_caps.h res_pjsip: Fix for Doxygen. 2021-11-18 12:14:54 -06:00
res_prometheus.h res: Fix for Doxygen. 2021-12-03 10:38:39 -06:00
res_srtp.h res_srtp: Enable AES-256 and AES-GCM. 2016-07-21 16:25:41 +02:00
res_stir_shaken.h Stir/Shaken Refactor 2024-03-07 14:17:23 +00:00
rtp_engine.h res_rtp_asterisk: Asterisk Media Experience Score (MES) 2023-01-09 11:40:46 -06:00
say.h include: Spelling fixes 2021-11-16 05:59:44 -06:00
sched.h sched: fix and test a double deref on delete of an executing call back 2022-01-21 10:06:57 -06:00
sdp_srtp.h main: Fix for Doxygen. 2021-12-02 15:02:09 -06:00
security_events.h main: Fix for Doxygen. 2021-12-02 15:02:09 -06:00
security_events_defs.h security-events: Fix SuccessfulAuth using_password declaration. 2017-12-04 17:21:27 -06:00
select.h Remove as much trailing whitespace as possible. 2017-12-22 09:23:22 -05:00
sem.h main: Fix for Doxygen. 2021-12-02 15:02:09 -06:00
serializer.h main: Fix for Doxygen. 2021-12-02 15:02:09 -06:00
sha1.h include: Remove unimplemented HMAC declarations 2022-01-19 09:44:24 -06:00
silk.h
sip_api.h Remove unneeded uses of optional_api providers. 2015-05-02 19:31:12 -05:00
slin.h various files - fix some alerts raised by lgtm code analysis 2019-11-18 08:30:45 -06:00
slinfactory.h main: Fix for Doxygen. 2021-12-02 15:02:09 -06:00
smdi.h Remove as much trailing whitespace as possible. 2017-12-22 09:23:22 -05:00
smoother.h main: Fix for Doxygen. 2021-12-02 15:02:09 -06:00
sorcery.h main: Fix for Doxygen. 2021-12-02 15:02:09 -06:00
sounds_index.h media_index.c: Refactored so it doesn't cache the index 2019-01-28 12:26:58 -07:00
speech.h res_aeap & res_speech_aeap: Add Asterisk External Application Protocol 2022-04-26 14:26:48 -05:00
spinlock.h Add "destroy" implementation for spinlock. 2014-04-29 15:10:24 +00:00
srv.h progdocs: Avoid 'name' with Doxygen \file. 2021-11-18 08:17:56 -06:00
stasis.h progdocs: Fix for Doxygen, the hidden parts. 2021-12-02 10:37:38 -06:00
stasis_app.h stasis: Fix for Doxygen. 2021-11-18 14:46:42 -06:00
stasis_app_device_state.h progdocs: Fix Doxygen left-overs. 2021-12-13 08:57:26 -06:00
stasis_app_impl.h progdocs: Fix for Doxygen, the hidden parts. 2021-12-02 10:37:38 -06:00
stasis_app_mailbox.h progdocs: Fix for Doxygen, the hidden parts. 2021-12-02 10:37:38 -06:00
stasis_app_playback.h stasis: Fix for Doxygen. 2021-11-18 14:46:42 -06:00
stasis_app_recording.h stasis: Fix for Doxygen. 2021-11-18 14:46:42 -06:00
stasis_app_snoop.h stasis: Fix for Doxygen. 2021-11-18 14:46:42 -06:00
stasis_bridges.h stasis: Fix for Doxygen. 2021-11-18 14:46:42 -06:00
stasis_cache_pattern.h progdocs: Fix Doxygen left-overs. 2021-12-13 08:57:26 -06:00
stasis_channels.h ari: expose channel driver's unique id to ARI channel resource 2022-05-22 15:40:33 -05:00
stasis_endpoints.h progdocs: Fix Doxygen left-overs. 2021-12-13 08:57:26 -06:00
stasis_internal.h progdocs: Fix Doxygen left-overs. 2021-12-13 08:57:26 -06:00
stasis_message_router.h stasis: Fix for Doxygen. 2021-11-18 14:46:42 -06:00
stasis_state.h stasis_state: Add new stasis_state module 2019-06-28 11:41:15 -05:00
stasis_system.h stasis: Fix for Doxygen. 2021-11-18 14:46:42 -06:00
stasis_test.h stasis: Fix for Doxygen. 2021-11-18 14:46:42 -06:00
statsd.h res: Fix for Doxygen. 2021-12-03 10:38:39 -06:00
stream.h main: Fix for Doxygen. 2021-12-02 15:02:09 -06:00
stringfields.h GCC12: Fixes for 16+ 2022-05-09 08:21:45 -05:00
strings.h strings.h: Ensure ast_str_buffer(…) returns a 0 terminated string. 2024-03-07 14:17:23 +00:00
stun.h progdocs: Avoid 'name' with Doxygen \file. 2021-11-18 08:17:56 -06:00
syslog.h progdocs: Avoid 'name' with Doxygen \file. 2021-11-18 08:17:56 -06:00
taskprocessor.h main: Fix for Doxygen. 2021-12-02 15:02:09 -06:00
tcptls.h tcptls.c: refactor client connection to be more robust 2022-01-05 09:48:59 -06:00
tdd.h main: Fix for Doxygen. 2021-12-02 15:02:09 -06:00
term.h progdocs: Fix grouping for latest Doxygen. 2021-12-02 10:26:08 -06:00
test.h test: initialize capture structure before freeing 2022-09-26 09:40:26 -05:00
threadpool.h progdocs: Fix Doxygen left-overs. 2021-12-13 08:57:26 -06:00
threadstorage.h main: Fix for Doxygen. 2021-12-02 15:02:09 -06:00
time.h doxygen: Fix doxygen errors. 2023-01-31 12:59:16 -06:00
timing.h main: Fix for Doxygen. 2021-12-02 15:02:09 -06:00
transcap.h progdocs: Fix grouping for latest Doxygen. 2021-12-02 10:26:08 -06:00
translate.h main: Fix for Doxygen. 2021-12-02 15:02:09 -06:00
udptl.h main: Fix for Doxygen. 2021-12-02 15:02:09 -06:00
ulaw.h
unaligned.h
uri.h main: Fix for Doxygen. 2021-12-02 15:02:09 -06:00
utf8.h res_pjsip: Replace invalid UTF-8 sequences in callerid name 2023-03-01 09:49:39 -06:00
utils.h main/utils: allow checking for command in $PATH 2022-09-12 09:49:21 -05:00
uuid.h uuid: Enable UUID in Solaris 11. 2018-06-23 08:26:19 +02:00
vector.h main: Fix for Doxygen. 2021-12-02 15:02:09 -06:00
version.h
xml.h doxygen: Fix doxygen errors. 2023-01-31 12:59:16 -06:00
xmldoc.h xmldoc: Fix for Doxygen. 2021-11-20 13:05:04 +01:00
xmpp.h ARI: Fix endpoint/channel subscription issues; allow for subscriptions to tech 2014-07-22 16:20:58 +00:00