Richard Fuchs
60fe7104e7
TT#14008 fix possible unintentional integer overflow
...
Change-Id: I9dacb34cf92d461029bfb393a251736676431fc7
Warned-by: coverity
5 years ago
Richard Fuchs
4be6ff2b07
TT#14008 fix warning as `ch` cannot be NULL
...
Change-Id: I2f627190e82e4bc1fe4b3f3b7a1a5925b581808c
5 years ago
Richard Fuchs
0cc41a56ff
TT#14008 fix warning as `output_ch` cannot be NULL
...
Change-Id: I3c079fc9fdca96d6ee2dbdfc17fd3834abc0e815
Warned-by: coverity
5 years ago
Richard Fuchs
28e3ca3dce
TT#14008 fix possible NULL pointer dereference
...
Change-Id: I601676f2cb1722d936e055ab7270b6668150b4ba
Warned-by: coverity
5 years ago
Richard Fuchs
1ccb8de7bc
TT#14008 fix warning as `value` cannot be NULL
...
Change-Id: I011eacbd95fafc7f5d13a40851753acc448ef2fc
Warned-by: coverity
5 years ago
Richard Fuchs
88c65686aa
TT#14008 Fix use-after-free
...
Change-Id: I8d5164d44c944c43a6e30595720245b00f759399
Warned-by: coverity
5 years ago
Richard Fuchs
2d2d7665b1
TT#156900 support single/odd ports for RTCP-mux
...
Change-Id: Ie000cbf4f9287e570da246c629a2b9cbd7c4fb54
5 years ago
Richard Fuchs
6f8ad8f936
TT#156900 close sockets on branch deletion
...
Change-Id: I5aeabde1755d3144e3e74e5fb040e0c2b793e305
5 years ago
Richard Fuchs
d199199b84
TT#156900 eliminate helper hash table in timer iterator
...
Change-Id: I002fea88b8a8867732eade49ed51895e224c4075
5 years ago
Richard Fuchs
45a9ce32a7
TT#156900 track local media sockets in hash table
...
Change-Id: I6a732b670ca46165675ebced4514eb8a86b7047e
5 years ago
Richard Fuchs
5fc658e33b
Squashed commit of the following:
...
commit a2e5cfb8e5
Author: Razvan Crainea <razvan@opensips.org>
Date: Thu Jan 13 16:16:19 2022 +0200
Add tests for subscribe requests on paused media
commit fa58596a9f
Author: Razvan Crainea <razvan@opensips.org>
Date: Wed Jan 12 22:01:27 2022 +0200
Swap media direction check for `subscribe request`
as @rfuchs mentioned in his review, the SEND/RECV media flags are set
according to rtpengine's perspective, not the media flow's one.
commit e1e9a157c0
Author: Razvan Crainea <razvan@opensips.org>
Date: Wed Jan 12 19:27:42 2022 +0200
Fix `subscribe request` SDP media direction
When building the SDP for a `subscribe request` command, take into
consideration the media direction of the source stream - if stream is
`recvonly`, then we do not have anything to send, thus the direction
should be advertised as `inactive`, rather than `sendonly`.
Change-Id: I2d78bbec8ad584774f3c90f0ce5cca42f57f7b0f
5 years ago
Richard Fuchs
2a584261e7
TT#155900 update phc flags to bool type
...
Change-Id: Ied794a6cd0c5e03e8c807b54b03f4b29699d4162
5 years ago
Richard Fuchs
c1d238b014
TT#144701 extra warnings for unknown flags and keys
...
Change-Id: I1ca4939f6ffce040b9d4558f699207a0411eda35
5 years ago
Richard Fuchs
cf34ecc24c
TT#156900 rename functions to avoid namespace conflict
...
Change-Id: I676e35319518b468ed72da2dd58db7ec3ca33ea1
5 years ago
Richard Fuchs
b1d17cdcef
TT#14008 use pthread_cancel semantics for shutdown
...
Instead of having each thread sleep only a little while and then
periodically check for the shutdown flag, make them sleep longer and use
pthread_cancel() to interrupt the sleep during a shutdown in the
designated break points.
Change-Id: I13f1872a0176697e064ceef4062db6ca6ccf7a0e
5 years ago
Richard Fuchs
a684025f07
TT#14008 avoid pointless open/close of kernel list
...
If there's no calls active then there's no point in checking the kernel
status.
Change-Id: I84418b38f8976c9f4e29ea725e9cd1eab7306298
5 years ago
Richard Fuchs
3582b623a9
TT#136957 DTMF delay support
...
Change-Id: I62dce272a1acc0a9a3b6b8c37df68a18357dbee4
5 years ago
Richard Fuchs
1ef4eeba80
TT#136957 split up DTMF event queue into in and out
...
Change-Id: I2e0619071d43df8537736187104ca12bb2f86f64
5 years ago
Richard Fuchs
c794c00efa
TT#136957 refactor DTMF event tracking into a list
...
Change-Id: I09aec46cad4cbb92aab67b7e9158d4d1598df186
5 years ago
Richard Fuchs
3a90f44383
TT#136957 peg seq num tracking to position in delay buffer
...
Change-Id: Ic78f24d2593817832839d3e1cf7ce3b398be785e
5 years ago
Richard Fuchs
2ca64340e1
TT#136957 support DTMF triggers for blocking
...
Change-Id: I32e0d02e739ceb5a34aaf187b1ea086482e6d73e
5 years ago
Richard Fuchs
6ac4f12c01
TT#136956 add more options for DTMF replacement
...
Change-Id: Ic78a34042ad664bd54e35647636864ea99e60385
5 years ago
Richard Fuchs
9608ae6ac5
TT#136956 refactor DTMF block mode setting function
...
Change-Id: Ia13ebef2999e8da1cd717e50aa24ee44188ef8b1
5 years ago
Richard Fuchs
576774614b
TT#136956 add support for DTMF-security=zero
...
Change-Id: I48d612697ac3f89852b2b7374cf6e442e4a8222e
5 years ago
Richard Fuchs
9da5a46fcb
TT#136956 support DTMF-security=random
...
Change-Id: I4100c1511be743901d302491238872990f213118
5 years ago
Richard Fuchs
320642ddf2
TT#136956 support DTMF-security=tone
...
Change-Id: Ide898f68d788f39674b8fdb4f4edb0aa14e0884b
5 years ago
Richard Fuchs
20ae998d32
TT#136956 flush delay buffer at shutdown
...
Change-Id: I1e58668071abad00520e83004bcf716fae85ae6a
5 years ago
Richard Fuchs
38f97c2df8
TT#136956 support DTMF silence replacement
...
Change-Id: If693800a955a9ddf7245da0082426ae609deb407
5 years ago
Richard Fuchs
478c2608e8
TT#136956 upgrade `block_dtmf` to enum to allow for different modes
...
Change-Id: I8bfa1cb9067a00958a2a1415b82e01c02deaf758
5 years ago
Richard Fuchs
1ce4f66d74
TT#136955 trigger DTMF state also when decoding DTMF to PCM
...
Change-Id: I8a8522ecd5d370bac7f4f8846651362efccf190e
5 years ago
Richard Fuchs
ba556db1d4
TT#136955 tie in DSP DTMF events with other DTMF reporting
...
Change-Id: I72fe6b670c42fe4ed6ba32a1fd142c290b2aaca2
5 years ago
Richard Fuchs
e7edfc03b4
TT#136954 add explicit flag to en/disable DTMF detection
...
Change-Id: I0da522ec5b195d580b44e6c5d0cfc42b73a8ac4b
5 years ago
Richard Fuchs
975cd33a9c
TT#136954 switch pcm_dtmf_detect to bool type
...
Change-Id: Ia78c2123bd5094e12895e82223ded49921efcbe2
5 years ago
Richard Fuchs
a22c3a5a1f
TT#136952 add CLI command to set delay buffer
...
Change-Id: I469ce986dd0fc2d4300de5901d7e15a568267755
5 years ago
Richard Fuchs
19a5d3cdb0
TT#136953 use delay_buffer for passthrough streams
...
Change-Id: I7e740f0bb3b45a500f316bbafab549ee5c9ae5c6
5 years ago
Richard Fuchs
8e8e78afb1
TT#136952 add new delay_buffer struct
...
Change-Id: I8b3b663d3688f1872b059791381fc8e2034c7293
5 years ago
hdikme
85ec0faf9e
TT#14008 send NG command stats count to Graphite
...
closes #1429
Change-Id: Iefd9fcfc7ac86ee04024be03aff86cfafd5b3fc5
5 years ago
Richard Fuchs
ecf02ddcc1
Merge branch 'master' of https://github.com/smititelu/rtpengine
...
Change-Id: If22a490e36138e14fe46cbfad6b9d815a4fceeaa
5 years ago
Richard Fuchs
12f23b311c
TT#157801 shift handling of v4/v6 addresses
...
Handling of dual stack v4/v6 was previously done by the individual
listener objects for INADDR_ANY listening addresses. If listening on
INADDR_ANY was requested, then each listener would create two instances,
one for IPv4 and one for IPv6. This works fine for INADDR_ANY but fails
for listening on host names that resolve to multiple addresses, such as
`localhost`.
Solve this by relieving the listener objects from handling this and
instead handle it in the code setting up the listeners. If a host name
resolves to multiple addresses, then set up multiple listeners (up to
two supported currently). This allows us to listen on `localhost` by
default and have both 127.0.0.1 and ::1 active. INADDR_ANY is handled
specially by also setting up :: in that case.
Change-Id: I2a1e1d7090d7d23863c7a9bb1e89b85ad2ea44f4
5 years ago
Richard Fuchs
aad3fb3130
TT#157801 support "any" interface config
...
Allow usage of "any" as interface config option to configure any and all
locally present network address, except loopback. This allows us to ship
a working default config file.
Change-Id: Ic13efd5f668e3bb317948b226c5700331f95a708
5 years ago
Richard Fuchs
f5a148f268
TT#14008 change local ICE ufrag/pwd after ICE restart
...
Implements RFC 5245 9.2.1.1
Also reset ICE role after a restart
closes #786
Change-Id: Idc7ec9f409b70598e2840fb7d0a31a12f9db3c21
5 years ago
Richard Fuchs
37323545bd
TT#14008 suppress ICE attribute warning
...
Change-Id: I21f0cc7dbf087888b12cb0c1272e21015f364f30
5 years ago
Stefan Mititelu
528e108a1e
Add new graphite-timeout parameter
...
Needed to be able to set graphite socket timeout.
Useful when one wants rtpengine to force the graphite connection
to fail faster, in case graphite server gets filtered while
connection is ongoing.
5 years ago
Richard Fuchs
31e41d1282
TT#14008 fix poller-per-thread behaviour
...
Change-Id: Ie75e9ebb315801157e432b2d0ce6a07c61cdd0d0
5 years ago
Richard Fuchs
cf7dcb31be
TT#14008 add fallback if codec list is empty
...
reported in #1374 and #1380
Change-Id: Ie12453a0526ed202c298d06d18b6782105c9fade
5 years ago
Richard Fuchs
3535d96fda
TT#136957 fix TS tracking with supplemental codecs
...
Supplemental codecs such as DTMF use static timestamps while the event
is ongoing, leading to a TS jump when the RTP flow changes back to
audio. The sequencer needs to be aware of this so it doesn't mistakenly
see the next audio packet as overdue and starts to process it
prematurely.
Change-Id: I2faea9aceec21fc04920f6c3c94141725383379f
5 years ago
Richard Fuchs
f79593ecc9
TT#136957 use output PT clock rate instead of encoder clock rate
...
... for scheduling output RTP packets. This is mostly relevant for DTMF
packets which don't have an associated encoder when being forwarded.
Change-Id: I56ee94a9ac7f42cc65eec0703bf042065687e43f
5 years ago
Richard Fuchs
912524abc7
TT#136957 use scheduled timestamp when running timers
...
Change-Id: Idcd17785dca7e7ae63b6b2ec39d3fe705d4f945e
5 years ago
Richard Fuchs
757cee2125
TT#136957 correctly schedule send-now RTP packets
...
Change-Id: Ie96324329dae131f24784916911189dd8cf3d6b8
5 years ago
Richard Fuchs
9be9ceb8f9
TT#156052 set `destroyed` TS also for delayed deletes
...
Change-Id: Ib55a9a63c2bdf0bdcc71717ac73af917c933950e
5 years ago
Richard Fuchs
8b79a6074f
TT#156052 add call duration stddev metric
...
Change-Id: Idb8cf304323ba33e1cdbd4dbe343dc508041cc93
5 years ago
Richard Fuchs
7b5b52e932
TT#156052 add MOS stats to stats output
...
Change-Id: I9dd3847ae772ba0851239c3f230de72a2ed207ee
5 years ago
Richard Fuchs
970757da2b
TT#156052 add call duration metric to Prom
...
Change-Id: I734e9d4bf08f5b5559decb546ac150bc6bf981ac
5 years ago
Richard Fuchs
49b79e8b2f
TT#156052 use `destroyed` timestamp for call duration stats
...
Change-Id: I464269ffc85c7552e38abdbe326c8675b3175f19
5 years ago
Richard Fuchs
45cb995b19
TT#156052 add call->destroyed timestamp
...
Change-Id: I76e973faee5797c00b1f5a1e01a73df903874ccb
5 years ago
Richard Fuchs
f613cf6fb2
TT#156052 rename total_calls_duration to _intv
...
These stats are per-Graphite-interval stats. The name should reflect
that.
Change-Id: I53844b8b1e61000873bc839f0ab713b7fc5ac1d6
5 years ago
Richard Fuchs
5fba6c7172
Merge branch 'master' of https://github.com/smititelu/rtpengine
...
Change-Id: Ib3d067385d9ea0efe259aaeec97bfd4f8f7075f1
5 years ago
Stefan Mititelu
7adf6ace92
Add 'seconds' to some stats duration
5 years ago
Richard Fuchs
9c0d233a46
TT#14008 support SRTCP with generate-RTCP
...
Change-Id: I279d26745278b12bc818e36589324828d7883a3f
5 years ago
Richard Fuchs
aea33b77fe
TT#14008 switch must_recrypt argument to bool
...
Change-Id: I27d7f31adb62a2fd099268ea9a82c4384bfe78a2
5 years ago
Richard Fuchs
219982ba06
TT#14008 call g_string_set_size before grabbing pointer
...
closes #1412
Change-Id: I02f97aa05788401586848cb36421f65828968864
5 years ago
Richard Fuchs
e11407ab8d
TT#144701 support JSON in NG protocol
...
Change-Id: I5ffe551c2712d0dece3490cd5653c6817603642d
5 years ago
Richard Fuchs
16f2f9af5c
TT#14008 switch from repeated hash lookups to list iterator
...
Change-Id: Ib877462c584de20aa7c7af35ce567392b2a7b6ba
5 years ago
Richard Fuchs
00438148ae
TT#14008 improve pseudo string hash for YCM
...
Change-Id: I405694b3ea3b3c71a4414fe66383aa05275d171d
5 years ago
Richard Fuchs
f1d37e9c93
TT#147451 add support for SIPREC style SDPs
...
Change-Id: I6a0bba30e8e356a44156571b7dc3b094176ef26e
5 years ago
Richard Fuchs
a7e22ba698
TT#147451 add support for multi-ml subscriptions
...
Change-Id: I1ff9861840bc743068eac2cd18d81990d44acdc9
5 years ago
Richard Fuchs
77be8a00b0
TT#136952 add convenience function to reset all codec handlers
...
Change-Id: I690b1a6c3388c47ba97fadb2b8740eff8706884f
5 years ago
Richard Fuchs
2e5a5f63c4
TT#147451 rename helper function
...
Change-Id: Id2ea3f4d9a495018319d7f8fc3b97d56ad35defe
5 years ago
Richard Fuchs
61ad51b926
TT#136955 only do DTMF event output if we have a PT
...
Change-Id: I2c322a3a1ff18cbb3191025607af030c0651e642
5 years ago
Richard Fuchs
fdb529eb5a
TT#136955 refactor DTMF event reporting
...
Change-Id: I420f56674a639a4b41b5333d8d9b8ffa843a7042
5 years ago
Richard Fuchs
ea7d04ae76
TT#136952 add CLI options to manipulate calls and tags
...
Change-Id: I9b6b24cbcaa7ed62a5dd786ae5d847ecee8cd46f
5 years ago
Richard Fuchs
ef141e6810
TT#136952 split up CLI tag info writer
...
Change-Id: I40f9e89d11edb3857ae7d1b6663b9afb0efc5c78
5 years ago
Richard Fuchs
31ad47af33
TT#136952 split up call info CLI writer
...
Change-Id: I8a2aaa08b2ad1a6d8a3b6a8753b0e6e0248f43d4
5 years ago
Richard Fuchs
740bdb4295
TT#136957 reset SSRC sequencers when going to transcoding
...
Change-Id: I98110a3d298b4ef7884ddfe2fdc931b338d40dc7
5 years ago
Richard Fuchs
bcb912bc27
TT#136952 allow passing user data to ssrc_hash_foreach
...
Change-Id: Iea158f06901de33ad9b53f8c277011b859cb214a
5 years ago
Richard Fuchs
4cbeb15c07
TT#147451 obsolete necessity for `from-tag` in unsub/sub ans
...
Change-Id: I409dbfb032265d0da39bff4cb63bf6dd5388cde4
5 years ago
Richard Fuchs
a3f2781acd
TT#147451 refactor media_block_match
...
Change-Id: Id4094e59100d05f3e6afa5f923aa55e1c8ddba4d
5 years ago
Richard Fuchs
730cc646a8
TT#14008 eliminate duplicate DTMF reports when forking media
...
With multiple media subscriptions, codec handlers are called
consecutively, once for each forwarding chain, leading to DTMF events
reported multiple times. The DTMF trigger must therefore keep track of
the state in the upper media object, not in the codec handlers.
Change-Id: I9ceaf406e093f25b7c037a325a0f2a7a91954922
5 years ago
Victor Seva
23d0dad18f
TT#124273 fix typos detected by lintian
...
Change-Id: I5b0636ba18dc0e2a1fc888e94cf44cbd20a103ea
5 years ago
Richard Fuchs
e6405c4a2f
TT#14008 add locking for `bypass_seq` case
...
Some functions (packet_dtmf in particular) called from the sequencer
depend on upper-level locking, so make sure this happens even if we're
bypassing the sequencer and do passthrough.
Change-Id: I6c729c3ba8075736fd614b8c06e3415b9c9e5ca7
5 years ago
Richard Fuchs
ca0c699356
TT#113650 support "active-replica" alternative to "master"
...
Change-Id: I2f5a5a8ef8dc64263c881d94bb780224707e6997
5 years ago
Richard Fuchs
9c2b53b3ed
TT#147800 don't clutter output dict with empty SSRC entries
...
SSRC entries might be present for the same SSRC in multiple contexts,
but only one of them will hold the actual stats. Don't create output
SSRC entries unless we know they won't be empty, as otherwise we won't
be able to create the actual SSRC entries (with stats) later on as they
dict key will already exist.
Change-Id: I54e263a17e14869ebb98456963f8ca75d11e9a89
5 years ago
Richard Fuchs
271a2a2a54
TT#14008 fix local SDP copy incorrectly returned from function
...
closes #1405
Change-Id: I12ba3970d7991a966f9403dca13a57bd0ef5120e
5 years ago
Richard Fuchs
56d4ff74f2
TT#14008 add config knob for max log line length
...
This is useful because we log to stderr, which technically would allow
unlimited log line length, but this is in fact turned over to syslog,
which truncates log lines that are too long.
Change-Id: Iee8994842335ab1cf94941c14eced01e29120bc9
5 years ago
Richard Fuchs
ba14e05724
TT#14008 use correct accumulator for managed_sess and avg call duration
...
closes #1399
Change-Id: I9ef93a78bb6317f33cd90779d0069c5a7b328008
5 years ago
Richard Fuchs
13c999ce05
Merge branch 'endpoint_learning' of https://github.com/john08burke/rtpengine
...
Change-Id: I7c64c1a353fa599d55a6c0de5d132d0f45619c28
5 years ago
Richard Fuchs
80e002135f
TT#14008 rate limit error messages from sendmsg
...
Change-Id: Ic7acfd40d498f9c3279a9d638e5650d24fbabec9
5 years ago
John Burke
fab19ed8bb
Add support for endpoint-learning on a per call basis
5 years ago
Richard Fuchs
835ba08b5f
TT#14008 handle NULL selected_sfd in rtcp_send_report
...
closes #1404
Change-Id: I282db8287f31d49eb26f0baf01951187577d7890
5 years ago
Richard Fuchs
0c95b124fd
TT#151150 don't call __get_logical_interface with NULL name
...
Change-Id: I5a2426974fd73a17ed7986e1146d9a2ae6423f08
5 years ago
Richard Fuchs
179b7edec1
TT#14008 fix possible segfault
...
Not only check for the presence of a sink, but also check for a sink FD.
Treat a sink without an FD as if there is no sink.
Closes #1401
Change-Id: I04c0be33f8cae39399674ca0a87185a729daa843
5 years ago
Richard Fuchs
2c0e196be9
TT#107565 fix SDP ordering issue of s= vs o=
...
Change-Id: Id6ad795bf9304e66012958060104af00a4bc1c6b
5 years ago
Richard Fuchs
176e7bef67
TT#14008 avoid possible reference leak
...
Change-Id: I250697df090e58e04071bb4220a59f7788ad15c8
5 years ago
Richard Fuchs
2dd5d7125f
TT#14008 don't directly use __obj_* calls
...
Change-Id: I578482e8dd32c36c14e85fc5d5ef34b99a5600a8
5 years ago
Richard Fuchs
fc56744553
TT#14008 remove calls from iterators during shutdown
...
... for easier mem leak debugging
Change-Id: I23fc86a9ac242d37c04debf6c1f7fb18cadb8ee9
5 years ago
Richard Fuchs
44e53a2767
TT#147451 add missing cleanup of subs lists
...
Change-Id: I54d1545d3b302d3d73168c3c64b15af3e327a494
5 years ago
Richard Fuchs
b9eea8c579
TT#14008 fix 32-bit compiler warnings
...
Change-Id: Ibf2d631245e2ee67ee2023647ceac349e8c9b605
5 years ago
Richard Fuchs
47e9f22442
TT#109800 add special handling for dtx-shift=0
...
Change-Id: I7e99f60476e74eb38b215573eb7d574f09b4c31a
5 years ago
Richard Fuchs
0c2f990561
TT#109800 fix output seq num bug
...
Change-Id: I68bc61982806ba1a48931030fdee26bcd75f1858
5 years ago
Richard Fuchs
00a76df639
TT#109800 refactor DTX timer drift handling
...
Change-Id: I73ba6cf188ca2cf62829539a7e76107c9dcd8989
5 years ago