Commit Graph

787 Commits (b826dbddd6b9eed2ba630baa8c94d7a37c5f3e34)

Author SHA1 Message Date
Donat Zenichev f984c8e5e3 MT#57719 redis: Use media subscriptions approach
2 years ago
Richard Fuchs 81151b3793 MT#57977 support short-packet blocking
2 years ago
Richard Fuchs 91a8f4be04 MT#55283 use correct ARG_NONE type
2 years ago
Richard Fuchs 8684a1933a MT#57977 use symmetric UDP
2 years ago
Richard Fuchs ddc3565bfe MT#57977 support multiple listen sockets
2 years ago
Donat Zenichev 2152a90f08 MT#57719 ssrc: Use media subscriptions: `hunt_ssrc()`
2 years ago
Donat Zenichev 101cc3bb6c MT#57719 Introduce the `media_unconfirm()` function
2 years ago
Donat Zenichev 4bbbfba818 MT#57719 stop using `call_subscription` when getting dialogs
2 years ago
Donat Zenichev 2a9564983b MT#57719 call: funcs introduction for media subscriptions handling
2 years ago
Donat Zenichev 259b3a7088 MT#57719 call: introduce `media_subscription` and according objects
2 years ago
Richard Fuchs 16e7b9465f MT#55283 add `allow-asymmetric-codecs` option
2 years ago
Richard Fuchs cbd17da6b3 MT#55283 switch to pcre2
2 years ago
Richard Fuchs ea0d1775f3 MT#55283 update parsing function to bool
2 years ago
Richard Fuchs 4f6f5fdf4e MT#55283 update config settings to bool type
2 years ago
Richard Fuchs 125657e108 MT#56374 move glib helper to auxlib
2 years ago
Richard Fuchs d9131bf9b7 MT#55283 introduce __monologue_free
2 years ago
Richard Fuchs 2364464fc7 MT#55283 split up codec_offer/answer
2 years ago
Richard Fuchs 5c5ad6d830 MT#55283 use fancy "named args" syntax
2 years ago
Richard Fuchs 8893281e3d MT#55283 switch to anonymous unions
2 years ago
Richard Fuchs f2f825dccc MT#55283 enable PKTINFO for UDP listeners
2 years ago
Richard Fuchs 61ce4ca5db MT#55283 annotate codec_store functions
2 years ago
Richard Fuchs c42887a2cd MT#55283 use fancy "named args" syntax
2 years ago
Richard Fuchs 9081d39066 MT#55283 move codec_handler_lookup
2 years ago
Richard Fuchs baf339fb60 MT#55283 update to C11
2 years ago
Richard Fuchs 267f965098 MT#55283 unify constructor signatures
2 years ago
Richard Fuchs e58d36fb84 MT#56374 update glib dependency to >= 2.40
2 years ago
Richard Fuchs ee0fa947ce MT#56374 move resources() to lib
2 years ago
Richard Fuchs 73489fc556 MT#56374 obsolete non-global pollers
2 years ago
Richard Fuchs 16c08efe62 MT#56374 move pthread helper functions to auxlib
2 years ago
Richard Fuchs 61ca57f0cf MT#56374 move ssl_random to auxlib
2 years ago
Richard Fuchs 84f4467241 MT#56374 move rtpe_shutdown to auxlib
2 years ago
Richard Fuchs ba7620d214 MT#56374 move poller to lib/
2 years ago
Richard Fuchs f9f9348d4f MT#56374 eliminate poller_timer functionality
2 years ago
Richard Fuchs bd59c127e1 MT#56128 convert to sdp_manipulate_remove
2 years ago
Richard Fuchs e59e03ec05 MT#56128 simplify sdp_manipulations_subst case
2 years ago
Richard Fuchs 4089005074 MT#56128 simplify sdp_manipulations_add case
2 years ago
Richard Fuchs 7990d127b8 MT#56128 convert sdp_manipulations to array
2 years ago
Richard Fuchs ac7d5e8dc3 MT#56374 remove DTLS timer from poller_timer
2 years ago
Orgad Shaneh 1a28b73a2d MT#55283 Rename aux -> helpers
2 years ago
Richard Fuchs 3ad63ba8ed MT#54294 more generic packet_encoded_rtp
2 years ago
Richard Fuchs c03362cc71 TT#146201 use kernel's RTCP sending function
3 years ago
Richard Fuchs 5ff9294bab TT#146201 support RTCP encryption in kernel
3 years ago
Richard Fuchs 196e874c65 TT#146201 obsolete TRANSCODE flag entirely
3 years ago
Richard Fuchs 758617d490 TT#146201 delegate setting transcoding flag
3 years ago
Richard Fuchs 8783e1391a TT#146201 directly set transcoding flag
3 years ago
Richard Fuchs b4a96be7f1 TT#146201 return offer/answer subscription objects
3 years ago
Richard Fuchs c34f3e6765 MT#55283 refactor call_timer
3 years ago
Richard Fuchs 2e4dec10ea MT#55283 refactor call_rate_stats_updater
3 years ago
Richard Fuchs a6ecfb8a80 MT#55283 refactor load monitor thread
3 years ago
Richard Fuchs b90edf0ecf MT#55283 looper thread bool return type
3 years ago
Richard Fuchs 688c75f9d8 MT#55283 flexible sleep time for looper threads
3 years ago
Richard Fuchs 15709a62a6 MT#55283 refactor loop thread creation
3 years ago
Richard Fuchs ee0b2bc2c1 MT#55283 set output-dest even if not active yet
3 years ago
Richard Fuchs 22b4d92368 MT#55283 update argument to const
3 years ago
Richard Fuchs 2f53de0361 MT#55283 convert macros to inline functions
3 years ago
Richard Fuchs 95ec0939dd MT#55283 rename all `str` to `s`
3 years ago
Donat Zenichev d818b7ab65 MT#57379 move `ice_slow_timer()` to a separate thread
3 years ago
Donat Zenichev 131702c6e4 MT#57378 move `stats_counters_calc_rate()` to a separate thread
3 years ago
Richard Fuchs 5b9d624fae MT#57302 add `exclude-recording` flag
3 years ago
Donat Zenichev 6fe9cc9b8a MT#57337 Move kernel stats update to a separate thread
3 years ago
Richard Fuchs fdc9b14509 MT#55283 force sequential socket reads
3 years ago
Donat Zenichev 905d584902 MT#57335 Move `stats_rate_min_max()` to a separate thread
3 years ago
Donat Zenichev a236f465e5 MT#57268 Move release closed sockets to a separate thread
3 years ago
Richard Fuchs 03fd8e1c4e MT#57268 improve g_queue_move()
3 years ago
Donat Zenichev 643c12e0b9 MT#56128 SDP manipulations: mode `substitute` to GHashTable
3 years ago
Richard Fuchs 8cb7a4c9a6 MT#56861 support DTMF injection with kernel mode
3 years ago
Richard Fuchs 93d4fe74c1 MT#56861 use SSRC TS for "encoder" TS
3 years ago
Richard Fuchs 42284d4fa2 MT#56856 support the new REMG_DEL_TARGET_STATS
3 years ago
Richard Fuchs eea05c878f MT#56759 support discarding call recordings
3 years ago
Richard Fuchs 52f757e966 MT#56759 provide alternative call_delete_branch()
3 years ago
Richard Fuchs 4fde86f981 MT#56759 split up meta_filepath
3 years ago
Richard Fuchs 43ea87a4c5 MT#56759 remove obsolete comments
3 years ago
Richard Fuchs 8b851c4663 MT#56759 unify recording_start trigger
3 years ago
Richard Fuchs fc491af7f3 MT#57093 log reasons for unkernel event
3 years ago
Richard Fuchs 95176a3cc9 MT#57093 shortcut _update_stats
3 years ago
Richard Fuchs dca7a84566 MT#56447 switch to trickle_ice_update()
3 years ago
Richard Fuchs 50f09c33f5 MT#56447 add bencode_strdup_str
3 years ago
Richard Fuchs 066ecf0901 MT#56447 add ng_buffer_auto_release
3 years ago
Richard Fuchs a67aed73cd MT#56447 add ng_buffer_new
3 years ago
Richard Fuchs e561a1cc0c MT#56447 refactor trickle ICE handling
3 years ago
Richard Fuchs a590831bd0 MT#56447 move ICE fragment handle
3 years ago
Richard Fuchs 5822cb889d MT#56447 change ml->medias to GPtrArray
3 years ago
Richard Fuchs b38131414a MT#56447 remove pointless lock
3 years ago
Stefan Mititelu 983d91d19e Add command to disable/enable redis write
3 years ago
Donat Zenichev c024b54dc3 MT#56750 Deprecate unused objects of `media_socket.port_pool`
3 years ago
Donat Zenichev 3444febebc MT#56750 Reworked port allocation
3 years ago
Richard Fuchs 6cb8285cfe MT#56447 add glib_json_print()
3 years ago
Michael Prokop 710e676524 TT#71950 Fix typos
3 years ago
Richard Fuchs 7865337f66 MT#55283 introduce `inactive` flag
3 years ago
Richard Fuchs 26cc168f83 MT#55283 eliminate useless return values
3 years ago
Richard Fuchs b207d0c586 MT#55283 single-threaded lws_write()
3 years ago
Richard Fuchs 0914bf761d MT#55283 add per-call dtmf-log-dest
3 years ago
Donat Zenichev 4b79d20577 MT#56128 SDP manipulations: add support for 'substitute' command.
3 years ago
Richard Fuchs 981a9070bf MT#56470 fix dump_packet arguments
3 years ago
Tom Briden 35ac2610af MT#55283 Add an option to not send dtmf log events for injected dtmf
3 years ago
Richard Fuchs f2527c47bd MT#55283 add "control-pmtu" option
3 years ago
Richard Fuchs c9fa42c347 MT#56470 support egress call recording
3 years ago
Richard Fuchs 4b7ec4e11f MT#56471 add flag to suppress early media
3 years ago
Richard Fuchs dd75c761cc MT#56471 tie in play_media with audio_player
3 years ago
Richard Fuchs ddab4a71e4 MT#56471 add audio_player
3 years ago
Richard Fuchs 0863302a7b MT#56471 reset codec handlers when player finishes
3 years ago
Richard Fuchs 0e2e562700 MT#56471 add codec_update_all_source_handlers()
3 years ago
Richard Fuchs b58de96095 MT#56471 add media_player_is_active()
3 years ago
Richard Fuchs 7320425062 MT#56471 generalise media_player functions
3 years ago
Richard Fuchs 61f41522e0 MT#56471 extend get_ssrc to return created y/n
3 years ago
Richard Fuchs 8ace838eed MT#56471 add more generic create_ssrc_hash
3 years ago
Richard Fuchs 9375d763f1 MT#56471 add media_player_pt_match()
3 years ago
Donat Zenichev 521532599c MT#56128 sdp manipulations: improve structures design
3 years ago
Donat Zenichev d7dbae8720 MT#56128 RTPEngine: Add options for arbitrary SDP manipulations
3 years ago
Richard Fuchs d71d46362e MT#56521 support reverse legacy OSRTP offers
3 years ago
Richard Fuchs 817d9b9875 MT#56521 support offering legacy non-RFC OSRTP
3 years ago
Richard Fuchs f8fef89f5b MT#56521 support legacy non-RFC OSRTP
3 years ago
Richard Fuchs f0aea65234 MT#55283 support parsing a=tls-id
3 years ago
Richard Fuchs e36386a096 MT#55283 disable graphite stats if disabled
3 years ago
Richard Fuchs 595c9b31c8 MT#55283 add graphite_is_enabled()
3 years ago
Richard Fuchs b956303748 MT#55283 support reporting per-interval metrics
3 years ago
Richard Fuchs 4498e181a6 MT#55283 refactor interfaces stats block
3 years ago
Richard Fuchs 64d7a12701 MT#55283 add new `summary` mqtt option
3 years ago
Richard Fuchs 6f53f80900 MT#55283 report per-interface VoIP metrics
3 years ago
Richard Fuchs fbf7550f86 MT#55283 collect sampled interface stats
3 years ago
Richard Fuchs 095ff4a88f MT#55283 collect per-interface stats
3 years ago
Richard Fuchs 1cb7e0e05a MT#55283 split up gauge stats bookkeeping
3 years ago
Richard Fuchs d6ca0a99b3 MT#55283 simplify/clarify min/max stats gathering
3 years ago
Richard Fuchs fb9738ff02 MT#55283 fix def/undef pairing
3 years ago
Richard Fuchs c34e6dcc82 MT#55283 remove "const" from local_intf
3 years ago
Richard Fuchs 410a277f50 MT#55283 remove useless struct member
3 years ago
Richard Fuchs 6c1fbc5706 MT#55283 move stats variables into sensible units
3 years ago
Richard Fuchs dddaa60afb MT#55283 simplify/clarify stats gathering
3 years ago
Richard Fuchs b5a20bdb91 MT#55283 properly output stat strings
3 years ago
Richard Fuchs c9e38ebe9a MT#55283 properly support double value stats
3 years ago
Richard Fuchs 8db4d64b84 MT#56521 add reference to plain RTP protocol
3 years ago
Richard Fuchs 99230b9a93 Revert "MT#56420 use actual local socket for decryption"
3 years ago
Richard Fuchs 87ea144935 MT#56469 add pause_recording method
3 years ago
Richard Fuchs c56c3cff4d MT#55283 refactor MQTT callbacks
3 years ago
Richard Fuchs cd185fd168 MT#56493 move GTree helpers to auxlib
3 years ago
Richard Fuchs b28794f853 MT#56420 use actual local socket for decryption
3 years ago
Richard Fuchs 83912f7502 MT#55283 remove non existing function from .h
3 years ago
Richard Fuchs 4d708350ee MT#56447 add new "media" Janus event
3 years ago
Richard Fuchs 2ccc910354 MT#56447 rename _media_up to _rtc_up
3 years ago
Richard Fuchs 7be1153acb MT#56447 move "janus_session" to monologue
3 years ago
Richard Fuchs 1379ba2310 MT#56447 handle Janus POST alternative usage
3 years ago
Richard Fuchs 9b20ce2ef9 MT#56447 support HTTP OPTIONS
3 years ago
Richard Fuchs 4697b437d5 MT#56447 implement GET for Janus protocol
3 years ago
Donat Zenichev 83fc4c930f MT#56127 Improve the way we accept crypto suites
3 years ago
Richard Fuchs 57ae65c6f1 TT#146201 remove unused function arguments
3 years ago
Richard Fuchs cf12ffc264 MT#55283 support buffered media player
3 years ago
Richard Fuchs bec997590b MT#55283 abstract RTP sending and scheduling
3 years ago
Richard Fuchs a3b30f0e78 MT#55283 split out media_player_coder
3 years ago
Richard Fuchs 54f797c080 MT#55283 store AVStream in media_player
3 years ago
Richard Fuchs 70ef2f1a02 MT#55283 separate destination PT determination
3 years ago
Richard Fuchs 8f17f140eb MT#55283 support generating a=tls-id
3 years ago
Donat Zenichev 8595f95cef MT#56126 Introduce a preference list for crypto suites
3 years ago
Donat Zenichev bffd5c9354 MT#56126 New function: crypto_params_sdes_cmp()
3 years ago
Donat Zenichev 6dcda68223 MT#56125 Move sdes_no / sdes_only checks to a separate function
3 years ago
Donat Zenichev 3ba1f548c8 MT#56125 Add a flag to only accept/add allowed SDES crypto suits
3 years ago
Donat Zenichev 50ba97b3c9 MT#56129 Add a flag to force increasing the SDP version
3 years ago
Donat Zenichev 47375c5bfd MT#55897 Document general objects/funcs in RTPEgnine code (part 2)
3 years ago
Richard Fuchs 8d413f6018 MT#55984 obsolete `branches` hash table
3 years ago
Richard Fuchs 8712e3b88e MT#55984 obsolete `other_tags` table
3 years ago
Richard Fuchs 53dbef7e1a MT#55984 fix call teardown logic
3 years ago
Richard Fuchs 6f0ad0db0f MT#55984 introduce `associated_tags` hash table
3 years ago
Richard Fuchs 25e2640145 TT#136957 support multiple frequencies for `tone`
3 years ago
Richard Fuchs 8a99171200 MT#55283 allow for delay in kernel mode
3 years ago
Donat Zenichev eb9aae1ddb MT#55897 Document general objects in RTPEgnine code (part 1)
3 years ago
Richard Fuchs c9a5714df7 MT#55524 work around buggy libasan
3 years ago
Richard Fuchs 0c4fc1c31d MT#55524 use define for thread sleep time
3 years ago
Richard Fuchs 08a05e76ec MT#55524 add thread cancel helper macros
3 years ago
Damir Nedžibović dd2956dc66 Implement playing from a given position for db and blob.
3 years ago
Damir Nedžibović bab3c94fd0 Implement playing from a start position.
3 years ago
Richard Fuchs 7ed04c3949 MT#55283 add dedicated "unknown" transport protocol
3 years ago
Richard Fuchs 1ff6813b52 MT#55447 add payload_type_destroy
3 years ago
Richard Fuchs a65954bbbb MT#55447 refactor encoder callback struct
3 years ago
Andreas Granig 3a54a1f0a4 Squashed commit of the following:
3 years ago
Richard Fuchs 387895b61c TT#44805 add bookkeeping for output stream stats
3 years ago
Richard Fuchs e7abe3b378 TT#44805 rename `stats` to `stats_in`
3 years ago
Richard Fuchs 354c4ea2c2 TT#189201 add extra `all=` options for media blocking
3 years ago
Richard Fuchs d4922681ba TT#189201 upgrade `all` flag to key/value and enum
3 years ago
Richard Fuchs 71a5cec45d TT#189201 allow `to-label` usage for media blocking
3 years ago
Richard Fuchs 4a19714cd1 TT#189201 support per-sink media blocking/silencing
3 years ago
Richard Fuchs 1699c90705 TT#189201 refactor __add_subscription arguments
3 years ago
Richard Fuchs 0b8d74ae2f TT#189201 preserve existing attributes after repeated offer/answer
3 years ago
Richard Fuchs 9e227099c6 TT#189201 add convenience function call_get_call_subscription
3 years ago
Richard Fuchs 2463c5e37c TT#189201 simplify attrs handling in __init_streams
3 years ago
Richard Fuchs 7be1d0aef1 TT#189201 refactor sink/handler attributes
3 years ago
Richard Fuchs c109644fea TT#189201 change block/silence media flags to bool
3 years ago
Richard Fuchs 9eb7b640c2 TT#14008 add explicit lws_cancel_service at shutdown
3 years ago
Richard Fuchs 0558cfbc05 TT#178400 collect and report RTP sequencing metrics
3 years ago
Richard Fuchs 778ec46b81 TT#178400 support reporting out measured jitter
3 years ago
Richard Fuchs 9b4669d7e6 TT#178352 export additional VoIP metrics
3 years ago
Richard Fuchs 6b5a8f5560 TT#178352 generalise metrics gathering and printing
3 years ago
Richard Fuchs 98a527065f TT#14008 update int type to bool
3 years ago
Richard Fuchs 19c8d1e01a TT#14008 change Redis restore order
3 years ago
Richard Fuchs 9c28951e40 Merge branch 'master' of https://github.com/smititelu/rtpengine
3 years ago
Stefan Mititelu 3813821129 Add 'all' recording method
3 years ago
Michael Prokop e425e82272 TT#71950 Fix typos
4 years ago
Richard Fuchs 17bda4b1e8 TT#156900 fix master/slave race condition with early closed ports
4 years ago
Richard Fuchs 2137618b3c TT#14008 don't open a mixed output file unless recording is on
4 years ago
Richard Fuchs 442b26ea48 TT#173752 support per-tag metadata for recording
4 years ago
Richard Fuchs e8f16dba4f TT#14008 offload flags parsing for play_dtmf/media
4 years ago
Richard Fuchs aed9279176 TT#172650 update for OpenSSL >= 3.0
4 years ago
Richard Fuchs cf076fc074 TT#172650 support EC keys for DTLS certificate
4 years ago
Richard Fuchs 008c4c7dce TT#172650 update dtls_signature field to enum
4 years ago
Richard Fuchs d055a5da59 TT#136957 add `egress` subscription support
4 years ago
Richard Fuchs 84fed5ca7e TT#136957 obsolete TRANSCODE flag
4 years ago
Richard Fuchs 50b8f54bcf TT#155900 add `RTCP mirror` flag
4 years ago
Richard Fuchs 2240921ab3 TT#136957 use separate sequencer per sink/destination
4 years ago
Richard Fuchs c0d9f84e49 TT#14008 rename instance of `func` for clarity
4 years ago
Richard Fuchs 2b74e64ddf TT#14008 prevent double-free of MKI
4 years ago
Richard Fuchs f869c23c90 TT#14008 add new "reject-invalid-sdp" option
4 years ago
Richard Fuchs 24ed84357a TT#14008 keep track of ICE candidates based on their priorities
4 years ago
Razvan Crainea 9c62de8189 provide sendrecv mode in siprec tag-medias and media-labels
4 years ago
Richard Fuchs e59c062108 TT#14008 allow ICE reset only during an offer
4 years ago
Richard Fuchs a26601a37a TT#14008 add new `reject-ICE` flag
4 years ago
Richard Fuchs 4658b90f0b TT#14008 don't open extra interface ports when ICE is not in use
4 years ago
Richard Fuchs 22d8db9e72 TT#14008 don't accept stray answer codecs that were not offered
4 years ago
Richard Fuchs 533d4b7d8c TT#14008 remove obsolete config option
4 years ago
Richard Fuchs 3c1f4b1f1e TT#14008 remember last used local socket for reporting purposes
4 years ago
Richard Fuchs 45a9ce32a7 TT#156900 track local media sockets in hash table
4 years ago
Richard Fuchs 941a50edd5 TT#156900 add helper functions and macros
4 years ago
Richard Fuchs b1d17cdcef TT#14008 use pthread_cancel semantics for shutdown
4 years ago
Richard Fuchs 3582b623a9 TT#136957 DTMF delay support
4 years ago
Richard Fuchs 1ef4eeba80 TT#136957 split up DTMF event queue into in and out
4 years ago
Richard Fuchs c794c00efa TT#136957 refactor DTMF event tracking into a list
4 years ago
Richard Fuchs 2ca64340e1 TT#136957 support DTMF triggers for blocking
4 years ago
Richard Fuchs 6ac4f12c01 TT#136956 add more options for DTMF replacement
4 years ago
Richard Fuchs 576774614b TT#136956 add support for DTMF-security=zero
4 years ago
Richard Fuchs 9da5a46fcb TT#136956 support DTMF-security=random
4 years ago
Richard Fuchs 320642ddf2 TT#136956 support DTMF-security=tone
4 years ago
Richard Fuchs 38f97c2df8 TT#136956 support DTMF silence replacement
4 years ago
Richard Fuchs 478c2608e8 TT#136956 upgrade `block_dtmf` to enum to allow for different modes
4 years ago
Richard Fuchs ba556db1d4 TT#136955 tie in DSP DTMF events with other DTMF reporting
4 years ago
Richard Fuchs e7edfc03b4 TT#136954 add explicit flag to en/disable DTMF detection
4 years ago
Richard Fuchs 8e8e78afb1 TT#136952 add new delay_buffer struct
4 years ago
Richard Fuchs ecf02ddcc1 Merge branch 'master' of https://github.com/smititelu/rtpengine
4 years ago
Richard Fuchs 12f23b311c TT#157801 shift handling of v4/v6 addresses
4 years ago
Richard Fuchs f5a148f268 TT#14008 change local ICE ufrag/pwd after ICE restart
4 years ago
Stefan Mititelu 528e108a1e Add new graphite-timeout parameter
4 years ago
Richard Fuchs 31e41d1282 TT#14008 fix poller-per-thread behaviour
4 years ago
Richard Fuchs cf7dcb31be TT#14008 add fallback if codec list is empty
4 years ago
Richard Fuchs 8b79a6074f TT#156052 add call duration stddev metric
4 years ago
Richard Fuchs 7b5b52e932 TT#156052 add MOS stats to stats output
4 years ago
Richard Fuchs 45cb995b19 TT#156052 add call->destroyed timestamp
4 years ago
Richard Fuchs f613cf6fb2 TT#156052 rename total_calls_duration to _intv
4 years ago
Richard Fuchs aea33b77fe TT#14008 switch must_recrypt argument to bool
4 years ago
Richard Fuchs e11407ab8d TT#144701 support JSON in NG protocol
4 years ago
Richard Fuchs 16f2f9af5c TT#14008 switch from repeated hash lookups to list iterator
4 years ago
Richard Fuchs f1d37e9c93 TT#147451 add support for SIPREC style SDPs
4 years ago
Richard Fuchs a7e22ba698 TT#147451 add support for multi-ml subscriptions
4 years ago
Richard Fuchs 77be8a00b0 TT#136952 add convenience function to reset all codec handlers
4 years ago
Richard Fuchs fdb529eb5a TT#136955 refactor DTMF event reporting
4 years ago