Richard Fuchs
47e9f22442
TT#109800 add special handling for dtx-shift=0
...
Change-Id: I7e99f60476e74eb38b215573eb7d574f09b4c31a
4 years ago
Richard Fuchs
ff00569c89
TT#14008 extra mitigation for forwarding loops
...
Flag a socket with an error strike when packets are received too fast,
and refuse processing once too many strikes have occurred. This should
prevent forwarding loops from taking down the system.
Change-Id: Idc574f2f1dbbcb156efc37a80e903dc4e60ef1b1
4 years ago
Richard Fuchs
24f607752c
TT#145450 add support for tracking multiple SSRCs per stream
...
Change-Id: I885fbf7973133af8d7c9184eb0e75f5401309c8e
4 years ago
Richard Fuchs
785ed90bba
TT#14008 eliminate duplicate packets_lost counters
...
This solves inconsistent stat output
Change-Id: Ic4c010fbceb83d1f8d5fffecacb3c65a436bfeae
4 years ago
Richard Fuchs
0fa3a105af
TT#131402 add stats for user/kernel streams
...
Change-Id: I78800a3bbef9fdd92369c2ed14efd39c7799178f
4 years ago
Richard Fuchs
c5dc3484ae
TT#131402 split up relay stats between kernel and userspace
...
Change-Id: I9e5a82e5817829d8a1b17e6828bb0594fbc8df08
4 years ago
Richard Fuchs
9c3e5e1fd7
TT#101150 properly name RTPE_STATS_INC/ADD
...
Change-Id: Iba35ea5a453d1a45b575ee98c4aeb2e0aef39473
4 years ago
Richard Fuchs
3f69a48f07
TT#14008 add NAT-wait flag
...
Change-Id: Icfbacc3094ee20955eb50ad9f9c487e9b9a239b9
4 years ago
Richard Fuchs
ac60645c13
TT#14008 fix possible null pointer
...
closes #1358
Change-Id: Id4ad456304569dd79fd1ac19b3f2127c705cd650
4 years ago
Richard Fuchs
d6bffa17f1
TT#142100 fix possible null pointer
...
Change-Id: I6f46bd768e3d77e56f3f95a2280c3ee41fcc9813
4 years ago
Richard Fuchs
ff2aed5907
TT#14008 avoid confirm/unconfirm/reconfig flip-flop
...
Distinguish between unconfirming the learned peer address and
retriggering the kernel stream. In particular we don't want to unconfirm
the sinks every time we confirmed our own peer, as that starts an
unconfirm/reconfirm loop.
Change-Id: I1f172385aefeacbc4585729bce25fbc68f04c2bd
4 years ago
Richard Fuchs
b28ea21f41
TT#14008 add extra debug logging for kernel streams
...
Change-Id: I7a17e74dea7ce11e5923f82436efbfe3160d8ed8
4 years ago
Richard Fuchs
6c9fe540cf
TT#14008 remove redundant check for FILLED sinks
...
We may have multiple subscribers, some of which may be dead/unused. We
don't care if we have these since we don't forward to them anyway.
possibly relevant for #1337
Change-Id: I3cded5080aa2005e9dd615cccf60bd4cba5feb7d
4 years ago
Richard Fuchs
5c01d905e5
TT#14008 use bool type for SSRC changed funcs
...
Change-Id: I026f7d93c8fa3bbfea6b1ab6967b8cd1231637d5
4 years ago
Richard Fuchs
2770bec906
TT#14008 set non_forwarding flag if no sinks are present
...
This silences a warning coming back from incorrect usage of the kernel
module
Change-Id: I2f03518a67620b92ef6b6ccd4ae6a4780087e206
4 years ago
Richard Fuchs
702dd9bb13
TT#14008 don't try to update kernel stats for no-kernel streams
...
Set NO_KERNEL_SUPPORT when we don't actually kernelise the stream, and
use that flag when trying to pull stream stats.
probably closes #1337
Change-Id: I46af55e353d87c5afdda3c106d1f3470273105bf
4 years ago
Richard Fuchs
f6461ab452
TT#14008 use FILLED flag instead of advertised address for sink test
...
The advertised address might be empty (trickle ICE) so use the FILLED
flag instead to see if the sink is eligible.
Change-Id: I114bd7400ccfcc3ecbc871bdcc5aee4e7d699816
4 years ago
Richard Fuchs
40695b2af3
TT#14008 fix possible segfault
...
closes #1342
Change-Id: I469b749cca4e270100572b7eabc9bcd022e83f5d
4 years ago
Richard Fuchs
2130e2f62b
TT#89352 support Janus control protocol
...
Change-Id: I0a6d5fc93c5fa505390408043feeca3f5cf61181
4 years ago
Richard Fuchs
413798e43f
TT#132251 implement media silencing
...
Change-Id: I0902bd72e2733b96ff75bcf52856a58c51a750f6
4 years ago
Richard Fuchs
c2b78aa9cd
TT#132251 refactor kernel payload type tracking
...
Change-Id: Ibdf58347a130f1c07cefca55162c841c71092201
4 years ago
Richard Fuchs
765b1e3bca
TT#89352 use bool type for foreign call functions
...
Change-Id: If8d5e28db534e6aeaaffb885e732e2bdd7338831
4 years ago
Richard Fuchs
ba7a75371c
TT#91151 rapid push to kernel even when sink is unconfirmed
...
Change-Id: I2dc8638a05ba94f33f980db82ae8c4f8c63301f9
4 years ago
Richard Fuchs
45bd10d323
TT#14008 delay learning of endpoint address after re-invite
...
This fixes a race condition: Peer sends updated SDP with new address,
but an older RTP packet from the old address is received afterwards.
Thsi triggers learning of this old address is the "correct" endpoint.
Afterwards the peer stops sending RTP until a packet to the new endpoint
is received there, which never happens because the new endpoint has been
discarded in favour of the "learned" old one.
closes #817
Change-Id: I508f465a669f03e35ddcc6e770d5e7859e57569f
4 years ago
Richard Fuchs
ab4498e9e6
TT#91151 check all sink codec handlers for kernel option
...
Change-Id: I02e5ebd2b1c5c3e5fc75d2d3fe62239c029b211d
4 years ago
Richard Fuchs
9ad5378b5f
TT#111150 fix coverity warnings
...
don't use strncpy
check for null pointer
Change-Id: Ie557d395152c20f1c96bb3abf15935700a84d917
4 years ago
Richard Fuchs
7b59f55457
TT#14008 fix handling of possible NULL rtcp_sibling
...
closes #1302
Change-Id: I000337734400cf3a5b63fc5d51e9fd220be06c68
4 years ago
Richard Fuchs
94a5feea7d
TT#111150 fix coverity warnings
...
Change-Id: I330d5137d38017641bdda71e8bd014c358c432fb
4 years ago
Richard Fuchs
1085d80c98
TT#121752 move RTCP processing into egress loop
...
Move RTCP processing down into the egress section and run the processing
function once for each output, because the output media must be known
when processing RTCP RRs during transcoding.
closes #1298
Change-Id: I1797bef336e27a7064b9f42ab8c25f0aade02e47
4 years ago
Richard Fuchs
92fb330a46
TT#91151 implement one-to-many forwarding
...
Change-Id: I80fd35da680d4ad1f4d3d21f14f11363106b9917
5 years ago
Richard Fuchs
1e0765bf6e
TT#91151 tie codec handlers to output media/sink
...
Change-Id: Id577f9afabbe5645a6e220b6450c39a35ff839a9
5 years ago
Richard Fuchs
01a10c0379
TT#91151 split input from output legs in kernel module
...
Change-Id: Ic8269f5a506c560d4460f562fb545efe0ea6a809
5 years ago
Richard Fuchs
256b9917ec
TT#121752 associate SSRC hash to monologue instead of entire call
...
This solves problems when the same SSRC is looped through the same call
multiple times in different mono/dialogues, with different parameters.
Change-Id: I1d033cb1f012574d82b5bcbfffe11eb5f983cfd8
5 years ago
Richard Fuchs
891f45b4df
TT#14008 run jitter calculation for passthrough and egress
...
Change-Id: I004e8747d3f3dd83d43251ce93e4d98c3a739ecf
5 years ago
Richard Fuchs
a28df1f871
TT#14008 fix incorrect ingress octet count
...
Change-Id: I45b66c4fe29942855494a4e4aee080fca463c351
5 years ago
Richard Fuchs
369e64f9a7
TT#14008 add mqtt support
...
Change-Id: Ica4a3e4ef58eadf3feca44ea63f2308103b3146f
5 years ago
Richard Fuchs
e32d128bd8
TT#14008 add cumulative global stats counters
...
Change-Id: I884a47c6d3e52fcb5572187fbd71fd11ec08cb8e
5 years ago
Richard Fuchs
25cb6ff857
TT#14008 handle deprecated g_memdup
...
GLib 2.68 deprecates g_memdup() in favour of g_memdup2() as the former
was using a guint second argument which could lead to integer overflows
(gsize should be used instead).
Change-Id: Iaa3e3b1ecaab00d1ac887c915397b15b7204dd11
5 years ago
Richard Fuchs
a009f76456
TT#14008 support media echo and blackhole
...
Change-Id: I9df4680188709867db2b61d97cc5f1e30c59e0d7
5 years ago
Guillem Jover
6fc793845b
TT#111150 Use {} instead of ; to mark an empty body
...
Change-Id: Ib87db24dbb0d89cb03052e7b8a2e8d8802246c33
Warned-by: gcc -Wempty-body
5 years ago
Guillem Jover
07695d2abb
TT#111150 Use modern <stdint.h> uint<bits>_t types
...
The u_int<bits>_t are BSD legacy types, while the new ones are specified
by C99 and SUSv3.
Change-Id: Ia748cabc33a7e5adc2c7a6049ad1e55be0c788a8
5 years ago
Richard Fuchs
a8d5076065
TT#119502 correctly restore calls from both Redis instances
...
Change-Id: I713d7e8ba0a7d14f5ef9016d33619df91ce6ec32
5 years ago
Richard Fuchs
a2e05bdc5c
TT#120402 always update output SSRC mapping
...
The SSRC mapping strategy can change if a re-invite disengages
transcoding, therefore we always need to update the output SSRC mapping
even if the SSRC entry has already existed, to avoid stray SSRC changes.
Change-Id: Ib6f14ede1a4e615ff5eb8372cc68bf1acdd4b6c8
(cherry picked from commit dd7acd2644 )
5 years ago
Richard Fuchs
6cc1e99ee8
TT#14008 fix possible segfault when out of ports
...
closes #1243
Change-Id: Ib04c289ad78624139c0375423a7bc1ad402874e7
5 years ago
Richard Fuchs
05ef61c0d7
TT#108003 fix errors reported by coverity
...
Change-Id: I6641da426f1e05f0d0e3924887baf7fb948fb0c9
5 years ago
Richard Fuchs
5802ff2379
TT#54762 add option to enable automatic active/active switchover
...
Change-Id: Icddeb28cab72974d9dad0a241775a0763a56b027
5 years ago
Dennis Yurasov
bfe6d59693
SSRC change fix in kernelized stream
5 years ago
Damir Nedžibović
f650f95111
TT#14008 Squashed commit of the following:
...
commit b3d2d70d4cfb449fb80af188eee89b6dc343830d
Merge: 1e62cbbb eacd2634
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Thu Mar 4 11:36:26 2021 -0500
Merge branch 'fix_packet_order' of https://github.com/enreached/rtpengine into enreached-fix_packet_order
Change-Id: I30690cf4955c04238c359e4aca2d0fea36ebfd36
commit eacd2634e8
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Thu Mar 4 16:56:07 2021 +0100
Update docs with --poller-per-thread option.
commit 7d02539673
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Thu Mar 4 16:47:55 2021 +0100
Prevent mem leak.
commit 3510a5d021
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Thu Mar 4 13:25:39 2021 +0100
Make poller per thread functionality configurable.
commit a2142b2a5e
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Thu Mar 4 11:57:18 2021 +0100
Use pthread_self() instead of syscall(SYS_gettid).
commit 2e471cae40
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Thu Mar 4 11:46:44 2021 +0100
Refactor the code a bit.
commit 91f72455c9
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Thu Mar 4 11:21:42 2021 +0100
Use usleep() instead.
commit 08d3bdb4ed
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Thu Mar 4 11:03:39 2021 +0100
Use ssl_random() instead.
commit 2d9995a864
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Tue Mar 2 15:50:13 2021 +0100
Sleep for 20ms instead.
commit eded168a38
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Tue Mar 2 15:11:43 2021 +0100
Implement poller per thread in order to fix packet order.
Change-Id: If652c906be8b16115eb84e749f89a2729ba75120
5 years ago
Richard Fuchs
fa6d29b45c
TT#91151 fix wrong hash table lookup object being used
...
fixes 8abc6b1c
Change-Id: Id38636308c9c6f37b95829911af71148ca3256ce
5 years ago
Richard Fuchs
7101f535da
TT#108003 remove unnecessary null checks
...
Change-Id: I1aeb10662eac2ed0553cf4489d1e1d7a487ad272
5 years ago