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
4 years ago
Richard Fuchs
1e0765bf6e
TT#91151 tie codec handlers to output media/sink
...
Change-Id: Id577f9afabbe5645a6e220b6450c39a35ff839a9
4 years ago
Richard Fuchs
01a10c0379
TT#91151 split input from output legs in kernel module
...
Change-Id: Ic8269f5a506c560d4460f562fb545efe0ea6a809
4 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
4 years ago
Richard Fuchs
891f45b4df
TT#14008 run jitter calculation for passthrough and egress
...
Change-Id: I004e8747d3f3dd83d43251ce93e4d98c3a739ecf
4 years ago
Richard Fuchs
a28df1f871
TT#14008 fix incorrect ingress octet count
...
Change-Id: I45b66c4fe29942855494a4e4aee080fca463c351
4 years ago
Richard Fuchs
369e64f9a7
TT#14008 add mqtt support
...
Change-Id: Ica4a3e4ef58eadf3feca44ea63f2308103b3146f
4 years ago
Richard Fuchs
e32d128bd8
TT#14008 add cumulative global stats counters
...
Change-Id: I884a47c6d3e52fcb5572187fbd71fd11ec08cb8e
4 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
4 years ago
Richard Fuchs
a009f76456
TT#14008 support media echo and blackhole
...
Change-Id: I9df4680188709867db2b61d97cc5f1e30c59e0d7
4 years ago
Guillem Jover
6fc793845b
TT#111150 Use {} instead of ; to mark an empty body
...
Change-Id: Ib87db24dbb0d89cb03052e7b8a2e8d8802246c33
Warned-by: gcc -Wempty-body
4 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
4 years ago
Richard Fuchs
a8d5076065
TT#119502 correctly restore calls from both Redis instances
...
Change-Id: I713d7e8ba0a7d14f5ef9016d33619df91ce6ec32
4 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
)
4 years ago
Richard Fuchs
6cc1e99ee8
TT#14008 fix possible segfault when out of ports
...
closes #1243
Change-Id: Ib04c289ad78624139c0375423a7bc1ad402874e7
4 years ago
Richard Fuchs
05ef61c0d7
TT#108003 fix errors reported by coverity
...
Change-Id: I6641da426f1e05f0d0e3924887baf7fb948fb0c9
4 years ago
Richard Fuchs
5802ff2379
TT#54762 add option to enable automatic active/active switchover
...
Change-Id: Icddeb28cab72974d9dad0a241775a0763a56b027
4 years ago
Dennis Yurasov
bfe6d59693
SSRC change fix in kernelized stream
4 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
4 years ago
Richard Fuchs
fa6d29b45c
TT#91151 fix wrong hash table lookup object being used
...
fixes 8abc6b1c
Change-Id: Id38636308c9c6f37b95829911af71148ca3256ce
4 years ago
Richard Fuchs
7101f535da
TT#108003 remove unnecessary null checks
...
Change-Id: I1aeb10662eac2ed0553cf4489d1e1d7a487ad272
4 years ago
Richard Fuchs
8b1c958f8e
TT#91151 obsolete unused REMG_UPDATE op
...
Change-Id: Ib7daeb3d838e0b679025f582f7c26fe5868f72cb
4 years ago
Richard Fuchs
770df55b9e
TT#14008 improve log output for stray packets
...
Change-Id: Ic4b03928b279aade761de3ba1646b5c27318e6a3
4 years ago
Richard Fuchs
e191e16cf6
TT#14008 fix possible segfault
...
closes #1172
Change-Id: I94bb52c290c2032073e54528283660f03e694033
4 years ago
Stefan Mititelu
001abe5f1f
Add new config parameter: `save-interface-ports`
...
When set to `false`, no changes at all. (default)
When set to `true`, bind only one desired family local address.
Also add info in rtpengine.pod file.
Also add log for sfd with no call.
4 years ago
Richard Fuchs
6602a3a7c5
TT#108551 add kernel support for AEAD-AES-GCM
...
Also amends tests plus additional clean ups
Closes #1133
Change-Id: I0dad7b8aad9cff1b019323c7ac5a356830ab09ad
4 years ago
Richard Fuchs
d8b71e11fd
TT#14008 fix possible null pointer
...
closes #1152
Change-Id: I3c6ac0e57128dfc567cecb3e7c952b5c96175f84
4 years ago
Richard Fuchs
a15e3a28c9
TT#99621 update RTP stats from kernel for RTCP
...
Change-Id: Iff54c4b8bac9df7c0e58c8dbdc424e6c4faf8780
5 years ago
Richard Fuchs
195542a4ec
TT#99621 allow RTCP handlers to discard the packet
...
Change-Id: Ia48a0fa375afc46d9d2ef639ab55538b4b8a5e51
5 years ago
Richard Fuchs
aa5e024417
TT#81212 mark calls as owned upon activity
...
Change-Id: I770d759e11e3ca10c6d879b0e8204ee2bc37bf72
5 years ago
Richard Fuchs
8ded0076da
TT#101202 fix potential null pointer dereference
...
closes #1110
Change-Id: Ib5e26b40bc55e7c96b59a19ddd7ed6bec2d109db
5 years ago
Richard Fuchs
36eb641966
TT#98901 add media_packet_copy/_release
...
Change-Id: I60bc6b258e9efc0d704b6d8cc6b2c2c915330bdc
5 years ago
Richard Fuchs
e8aac8272c
TT#91003 add media_out pointer to media_packet
...
Change-Id: I21c76fef05d6af394f09476e9761c439e7a0da44
5 years ago
Richard Fuchs
e04fb03787
Recrypt SRTP for DTMF logging
...
Change-Id: Id877b8464e99cfd5dca728a01fcdc3ffc654d698
5 years ago
Richard Fuchs
112e57f9fe
TT#86102 remove aggressive endpoint learning heuristics
...
The previous approach causes problems during re-invites with updated
port (or address) information. The UA might delay actually using the new
endpoint until after the answer is seen, in which case rtpengine would
erroneously immediately latch on to the old endpoint. We need to
reinstate the endpoint learning delay in all cases, and make sure
previously learned endpoints are forgotten whenever a new signal is
seen.
Change-Id: If42ed13c43710616c02cdf018b36a4543d7f6bfe
5 years ago
Richard Fuchs
2a4dbd8d37
TT#28300 add cleanup of global interface structs
...
Change-Id: I326d72c88505c532b19e98165666f10d4692fafc
5 years ago
Stefan Mititelu
6043d15ea0
Add drop-traffic=start/stop flag
...
Useful when someone needs to:
- completely drop early media, but stop dropping after call is answered.
- completely drop initial invite media, but stop dropping after re-invite
5 years ago
Richard Fuchs
46325d61fd
TT#81600 fix SRTP when transcoding/DTMF injection is in use
...
Change-Id: I444c95e8dc14594571f7592f158805cbbe6e3c8d
5 years ago
Richard Fuchs
92bcedc08a
TT#78307 keep track of RTP stats also when forwarding
...
Change-Id: Iea6214104b7032687608af71f6270a375fed2702
5 years ago
Richard Fuchs
2e4617ff86
TT#78307 move SSRC send stats to actual point of sending
...
Change-Id: I54ff4afeb8b3a205a678e9102fb0d8cedee78bae
5 years ago
Richard Fuchs
5fc326c64b
TT#78001 support OSRTP
...
closes #951
Change-Id: I8cd21d60b16e357a57d0d505649b74f38f4ca0b3
5 years ago
Richard Fuchs
1d514a063c
TT#78307 add helper functions for SSRC contexts
...
Change-Id: I32470c03c19c8bb889900ca277b73713ee66c485
5 years ago
Richard Fuchs
d872802ba2
TT#76711 T.38 <> audio gateway
...
Change-Id: I4552e07eee632fa730745410b08c3bf70ab67ab2
5 years ago
Richard Fuchs
641fd160ca
TT#77358 create helper function to determine RTP protocols
...
Change-Id: I6ee4a2c48c896fa9f3f00c9f90c0ae65c1ae3bae
5 years ago
Richard Fuchs
9b9dde3ad8
TT#76711 don't run send timers that don't exist
...
Change-Id: I5ee38499051afd5b6d5b7e74ea60b84ad7d74d26
5 years ago
Richard Fuchs
1c00016974
possible null pointer fix
...
Change-Id: I6b0122c7ba51e0fbd3de40da3adbec53a85cfa60
5 years ago
Richard Fuchs
ef0d6a3a80
TT#74301 merge jitter buffer PR #834
...
refactored
closes #834
Change-Id: I174cc6e365af54fb66d2dd78be02c601c5d5d645
5 years ago
Richard Fuchs
c70b3f6369
TT#74651 fix several mem/resource leaks
...
fix cleanup being skipped on redis slaves
fixes an SDES related Redis mem leak
adds a hash for the ports free list to avoid duplicate entries
fixes #898
Change-Id: I34aad67290ff5ef8824142682aac03cb600d0ecb
5 years ago
Richard Fuchs
2a2e3f3fcc
TT#74050 handle sinks with null addresses correctly
...
Change-Id: Ic2f2b840c4595e1d061cfd0cdf7465e8aeebb3ac
5 years ago
Richard Fuchs
6d22af9566
TT#73900 ignore stray RTCP packets when confirming peer addresses
...
fixes #697
Change-Id: Id2fdbd1b0b419b7fcc032c865a62a7ceed84f9f3
5 years ago
Guillem Jover
137c5df644
TT#71950 Fix typos
...
Change-Id: I79991a30bd8459485ea76dad541bda27daf9bfea
6 years ago
Richard Fuchs
dc1daa90ab
TT#72000 confirm immediately on a perfect endpoint match
...
Change-Id: I7f0663a5b7ed6a224d385b3b1d07bc5cf13a185b
6 years ago
Richard Fuchs
61ac7e9656
TT#72000 add different endpoint detection algorithms
...
Change-Id: I791dba23450cab31bc5744a6156965afbb8a3b5c
6 years ago
Richard Fuchs
a2e0dd6b33
TT#62300 kernelise stream even if address doesn't match if possible
...
Change-Id: If0756aa5ac5ce3ddf29d3ca1cb87410d7d57c89b
6 years ago
Richard Fuchs
3b6f098d8e
TT#61850 normalize `address:port` log printing
...
«IP»:«port» vs (preferred) «IP:port»
Change-Id: I785cedfc155c107b7798762ef43f6d35bdf8bd05
6 years ago
Richard Fuchs
f6f484fff6
TT#59501 add optional RTCP sink
...
If `strict source` is set, we can now also kernelise RTCP ports. This
will engage the kernel module's source address checking. If the check
fails, the packet is discarded. Otherwise it's passed to user space
as usual.
Change-Id: Ieedf39fba2263045b0f1faafa7f5826a27b5a115
6 years ago
Richard Fuchs
e17544a452
rate limit log lines resulting from strict-source drops
...
Change-Id: I33d49285f031b761c618f57f9564ed69a8f15e3d
6 years ago
Richard Fuchs
2298de76b1
honour a=rtcp-fb in SDP even if transport is advertised as RTP/(S)AVP
...
closes #467
Change-Id: Ib8ea1d6c7b4c9277279399c4319c5efef6834372
6 years ago
Richard Fuchs
26b725d024
TT#45617 add new options to support log markers for sensitive data
...
Change-Id: I2ffa4da4be3a05f043e7991612bbb37d8102d91a
6 years ago
Richard Fuchs
d449861d96
TT#50652 separate out and move crypt handler routines
...
Change-Id: Ia30aa8912f02ca2ea427b3c659a4b8696dc4a2a0
6 years ago
Richard Fuchs
3bdad88063
TT#50652 create timer to gradually send packets without jitter
...
Change-Id: I5b28f7514f54c6df9f3ee607e3bca76274b431b3
6 years ago
Richard Fuchs
6ba60d5b54
TT#50652 split out packet dequeuing and sending function
...
Change-Id: I303bcfb8869699554ff7381c68767c56fdcdda87
6 years ago
Richard Fuchs
35764c5c63
TT#44702 add CLI command for interface/port stats
...
Change-Id: I670b3779d748e81097995961d6411d21a279bd08
7 years ago
Richard Fuchs
04a83027a0
TT#43557 implement media blocking
...
Change-Id: I336cf7203c1236b3e596310690a89ce1c3fd8bf4
7 years ago
Eric Green
f91b64fcdf
Make recording more accurately report source address. Fixes #584
7 years ago
Richard Fuchs
a9ec666cb4
TT#38350 implement sending DTMF events to syslog
...
Change-Id: I82fbdc7da6cbe2505ef1c98dd3c45b63c4461994
7 years ago
Richard Fuchs
dd34574669
TT#38350 keep track of the most used RTP payload type
...
Instead of just remembering the last seen RTP payload type, this adds a
tracker that keeps track of the last 32 seen payload types and keep the
list in order of how often each type was seen.
Change-Id: I062a43b7bfc9413b755dca548d72953ff8245477
7 years ago
Richard Fuchs
cbe7e5ab1d
TT#36700 implement ports free list
...
eases CPU usage when the number of available ports runs low
Change-Id: I0cdb035991a54a96c94ff47b074c91ff2b74c9bd
7 years ago
Richard Fuchs
95a7cc6cfb
eliminate redundant function argument
...
Change-Id: I5bff4436072c2855590e08d90c5098af3abceb93
7 years ago
Richard Fuchs
2c5a358e1c
TT#36308 fix possible segfault due to missing lock
...
Change-Id: I61d411cd88494fa8c3c4197ec9e5a70a2231a325
7 years ago
Richard Fuchs
e0cdf74ac5
fix SRTP ROC syncing between kernel and userspace
...
also fixes spurious unkernelized rtcp-mux streams
fixes #495
Change-Id: I9ec86ec5ecfffeede367a9aab9168ac32b7a95f3
7 years ago
Richard Fuchs
ce44eaf1d3
fix RTP timestamps in G.729 decoder
...
also fixes SRTP auth tag passed to transcoder
closes #501
Change-Id: I2253d1372784d0332b8449f8fb8087a2f7e4c699
7 years ago
Richard Fuchs
14100b0b8a
use reference counting on SSRC objects
...
possibly fixes #488 and #482
Change-Id: Ib68e456b9322836b153c9fd0e59c3556378557ae
7 years ago
Richard Fuchs
0db5e226e5
fix payload type tracking for transcoding situations
...
closes #476
Change-Id: I6a038136e22b23efe422eb40caa0f3e10359e5d1
7 years ago
Richard Fuchs
165cb0cd4b
Merge branch 'extend-default-intf' of https://github.com/1and1/rtpengine
...
Change-Id: I187bc7c67146011a76acc17576cd4338e095c754
7 years ago
Richard Fuchs
e84fd8612b
fix incorrect DTLS context being used with ICE
...
fixes #451
Change-Id: I4db956bd9e8234862a7dd3ee492a6ed2778150d3
7 years ago
Richard Fuchs
60ce21245e
TT#28163 use a pointer cache to avoid hash table lookup
...
Change-Id: Idd7a48c547d156c4e68e4540e955ee99906b79e4
7 years ago
Claudiu Boriga
e8b40191fe
Enable round robin for default interface
7 years ago
Richard Fuchs
0636b083dc
TT#31700 implement payload-type specific passthrough kernel forwarding
...
Change-Id: I14d33b976933e8198720c1323e38af85f4f6eed7
7 years ago
Richard Fuchs
613f7afdb6
TT#31403 map and replace RTCP SSRCs when transcoding
...
Change-Id: I765f1972e4b4d10d48e10a9e14e451edd48ca836
7 years ago
Richard Fuchs
5d67605535
TT#31403 decouple RTCP AVPF filtering from crypto stuff
...
Change-Id: I99b2b5720f1012b59be90e110b6ed7902826a861
7 years ago
Richard Fuchs
159729ad0d
TT#31403 move SSRC mapping out of codec handler
...
Change-Id: Id5babcef6440f40e45e7e23afc54398a39093a3f
7 years ago
Richard Fuchs
55007a6897
TT#28163 prevent kernelization of transcoded stream
...
Change-Id: Ie99f4bee935f6018a525b51b00862b31576a9383
7 years ago
Richard Fuchs
cee94a5348
TT#28163 pass RTP packets to media decoder
...
Change-Id: Ie1cf4ed50a0dae0ee4bbe37918d3d2a86666d998
7 years ago
Richard Fuchs
b9206a49bc
TT#28163 abstractize SSRC hash
...
Change-Id: I2f28854070ad5a7567870ef7585e67729154b0e3
7 years ago
Richard Fuchs
8715d40242
TT#30405 codec matchup and handler functions
...
Change-Id: I506c0e8bfa4b6e64689f6debeb33fe69fce1722c
7 years ago
Richard Fuchs
fb729e3d12
TT#30405 create a packet handling context struct for convenience
...
Change-Id: I0f3e0f66bf138147f265f7ee8d95028d9301359b
7 years ago
Richard Fuchs
bc420cbdd0
TT#30405 split stream_packet() into smaller pieces
...
Change-Id: I89b46e02bfdbedffa63f71ef11b03cbf204ececa
7 years ago
Richard Fuchs
75056a8dd1
eliminate the callmaster struct
...
Change-Id: I9151dbe8f47b3bb9ab67d6fea2fc3783bdc558da
8 years ago
Richard Fuchs
c969ea1e57
move stats and statsps into global scope
...
Change-Id: I02d16e31f8980bd0ef3ff3a190b23dc61c087018
8 years ago
Richard Fuchs
cf3a8f9e16
move 'poller' member of callmaster into global scope
...
Change-Id: Ide88caff59529278e45ceef4f9664bfc07f67b3d
8 years ago
Richard Fuchs
dffbddb2d6
don't use g_ prefix for global variables
...
Change-Id: Ifd843b01d7fccf294f97fdf48308c71268e1b8ae
8 years ago
Richard Fuchs
1aa9944fe4
TT#27550 implement interface round-robin selection
...
Change-Id: Id5cf290cc9d044716b5f55cf416dc40b87f23f24
8 years ago
Dmitry Poroh
cc09f4d3de
Crash stream_packet in case of out_srtp is NULL is fixed
8 years ago
Richard Fuchs
e7d75bd275
TT#19350 add option to manage iptables rules directly
...
Change-Id: I8e2b47bf34206ed5cc369649bf8ef875ac271169
8 years ago
Richard Fuchs
a9d55c6fe7
always decrypt RTCP for SRTP<>SRTP session for stats purposes
...
fixes #366
Change-Id: Ie99766a3561d3adfcb06d75c465a9aa02c16b2ab
8 years ago
Richard Fuchs
f979159d0e
fix segfault when no SSRC pointer is present
...
fixes #370
Change-Id: If1e89b21a183acd79a6c84aee6e470849022e37c
8 years ago
Richard Fuchs
3f12517510
report last error when port could not be opened
...
Change-Id: I397101dc64c4e2f706fd604e524b27c86e51a6a5
8 years ago
Richard Fuchs
8f55dd17f1
fix pushing wrong SSRC to kernel module
...
fixes #360
Change-Id: I6051bc3e81b06e89e6b8d74dbff94363716369fe
8 years ago
Richard Fuchs
5c84a6f61c
TT#12800 limit size of SSRC hash table
...
Change-Id: I51ba759d1f328f08b03e14a2f8545453f6a8ade8
8 years ago
Richard Fuchs
868c3b64fe
TT#12800 add ssrc handling into packet_stream struct
...
Change-Id: I7da97a6435854a846d2782448b32c69327756ccf
8 years ago
Richard Fuchs
84e76e7cba
TT#12800 calculate MOS values from RTCP RR
...
Change-Id: Ie4ba70ae8290f497a4a5d756a369911b96205299
8 years ago
Richard Fuchs
c1711ea948
TT#12800 consolidate and combine RTCP parsing and logging
...
Change-Id: I8690b5d180b3eaf1c1b0b4295734609c5125a453
8 years ago
Richard Fuchs
b3583633e3
TT#12800 canonicalize ssrc handling
...
Change-Id: I481dd4062f044f9f7add65b4b82d276629f47ce8
8 years ago
Richard Fuchs
37a9521901
don't treat media socket write errors as fatal
...
closes #351
Change-Id: I36add0e8aca8856e053b10abdfffbfa63e134daa
8 years ago
Richard Fuchs
7182e751a1
abandon usage of random()
...
Change-Id: I870fd7963dc9148b496361892a2bfe2cc0f88690
8 years ago
Richard Fuchs
6594b2b884
fixes for coverity
...
Change-Id: I92eebf9a44fed8d826e0c2a207c05cd02c5ade0c
8 years ago
Richard Fuchs
e85759a3b8
fix some errors caught by coverity
...
Change-Id: I3f5bfc2df00ab9b031eef5a1c71b6ff3ba25e60c
8 years ago
Anthony Alba
d5cecc500f
Add AES-192, AES-256 CM to kernel SRTP
8 years ago
Frederic-Philippe Metz
14b37ebfe5
Removes multikey stuff
8 years ago
Frederic-Philippe Metz
749a7da7b0
Implements redis onekey concept
...
The redis onekey concepts is introduced to reduce traffic to redis
and redis notification traffic.
It modifies the current structure for one call in redis, which are
multiple keys with pre- and postfixes and the callid in between to
one key with the structure "json-<callid>". The value is a json
formatted string with the previous multi-key identifiers in it.
9 years ago
Richard Fuchs
7395f8bef1
TT#5566 recognize and ignore (for now) RTCP packets
...
Change-Id: Ife95c9506a652b5410380963dbc1cf98f4ace611
9 years ago
Richard Fuchs
d7fa0689f9
TT#5566 rudimentary wav file output
...
Change-Id: Icdc97a9dc849bba6ba6add12d0bdd17f8b7712cd
9 years ago
Richard Fuchs
984585a32c
TT#5003 implement kernel-side call recording
...
Squashed commit of the following:
commit 1af3efd464d9c86eb428aa29ca084ead67ba4cdc
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Mon Nov 7 11:10:22 2016 -0500
save and restore call recording status to/from redis
closes #254
Change-Id: If3cd34fcfd64fa8164521a86eb1d1aa0eb327f3b
commit 460053a2316ac77ebf2609af4e5bf73beac57643
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Fri Nov 4 14:09:08 2016 -0400
restore libcurl build dependency
Change-Id: Ia853f928caf9e443bb69c4015cbba805e6d24153
commit 5f5fd88fde67ffcd5a83f1a18e9134702f995686
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Fri Nov 4 11:22:27 2016 -0400
ensure we are always decrypting SRTP when recording
Change-Id: I2b75afefcadc55ebf1bf6a19a983134c87c41602
commit 69b4e9fa886c673bed6168c2092864fdff2619aa
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Fri Nov 4 09:56:47 2016 -0400
remove redundant ng result=ok logic
Change-Id: I84d7245f52dc12a4002b4dd2b736afea9ae733fa
commit 411213dd3d17c1e54eeb6813cb0473a706a10cee
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Thu Nov 3 16:04:54 2016 -0400
support the `start recording` command message
Change-Id: I316e90fd3fe34f01b20826936ef620bcff785397
commit ae1910c68d90d0c1f913bd09f9ecdee5579f53f4
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Thu Nov 3 15:01:57 2016 -0400
move logic for `record call` flag to where it belongs
Change-Id: I65a3b5d62f4360df4251faea1339b5a6355c0e6d
commit 217008d572d103ab4146cdcfb9c292610c869643
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Thu Nov 3 12:49:48 2016 -0400
support combining streams into one pcap in reference scripts
Change-Id: Id82936ae7ef1b406acf3b4d3429ecc1cb6e2356e
commit 3fcafd92750d20e07b9c522cd15df0f1745bd412
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Thu Nov 3 11:40:00 2016 -0400
output additional details to metafiles
Change-Id: I0539a0617aff51c9c499bbd9586d61c7e7ca7e7c
commit e81f413f3ba228f548931a234a1c18c13c62b135
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Wed Nov 2 16:18:28 2016 -0400
globalize kernel access variables
Change-Id: Ie07e0ebb8705189c8b1e49f596080ff8bcaef64f
commit 5e74609c7c3e5237fbd9995b90b29b2c456d2c04
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Wed Nov 2 12:20:55 2016 -0400
duplicate error messages to stderr when in foreground
Change-Id: Iaf9d8d1392946046846cb6f2c0fb928a96893911
commit 032077bed4a4b3610e88deab905f6a41616393e6
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Wed Nov 2 11:38:22 2016 -0400
eliminate dummy virtual function
Change-Id: I7cc2596f31350bf0d39253b3bd7e9fe1cec2b92d
commit 9177effc4e56b0fc26f44da525fe88d8aa3a6f05
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Wed Nov 2 11:30:58 2016 -0400
clean up recording code related to ng interface
Change-Id: I69c6d953f8467e5154f000979c94f2dc3a79918a
commit ac0ec6a5e7b4927af5294a6e86a129a8ffc90e7a
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Wed Nov 2 10:57:15 2016 -0400
output before/after sdp to metafiles
Change-Id: I1d3177e40591d6b4c4789eb6e18132743a9eda45
commit 68b27fa964455eef4c4acaf9540d19013b3df3e7
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Tue Nov 1 15:40:20 2016 -0400
fix header length problems
Change-Id: I896453f72df3ba146251f5d82ca1d02dd0ad08e9
commit ebbd942ad00b3a4eb74fbfcd915e82a263243d02
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Tue Nov 1 14:14:08 2016 -0400
support writing pcap files in reference intercept script
Change-Id: I53502ba416426e9012a68c35cdf4b457d7c3eb69
commit fe82efa40a5b0fee4bed2601bab7c1afa09b0ce1
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Tue Nov 1 13:35:47 2016 -0400
ensure we never make any calls that might sleep when holding locks
Change-Id: I1ce6aeced1f61715374b80f6fb1fbeafc987ae7f
commit be5316e804368fad28c2a0012ac2d60cb476b740
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Tue Nov 1 13:08:19 2016 -0400
fix math in auto_array_find_free_index
Change-Id: I39c786b03dbafe59b88a1945ac27964c3852c9eb
commit 183d4939ca8e1fc0f39271713435b016c055bfff
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Tue Nov 1 11:41:47 2016 -0400
adding rudimentary lock debugging
Change-Id: Iff541c58e5ea4c3fc2ec16e93396148f935bc4f3
commit 51a75c5022f96a23b8fff6738b5fa4ad7095a746
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Mon Oct 31 14:35:17 2016 -0400
handle read errors in reference intercept script
Change-Id: I047d763dbd498026a0d8db24c5532155c75fd6e6
commit 69a460de08c6dfe163f9d90dee478c72ea56a2fc
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Mon Oct 31 14:34:54 2016 -0400
changed locking semantics to avoid proc_clear deadlock
Change-Id: I70dbc07aa8af7b9860beca86b4b82d8180d8a0ae
commit 62eae1459a8dc116a0f965d014dd2962d9f2ece2
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Mon Oct 31 12:50:26 2016 -0400
additional debugging
Change-Id: I81c93c2dd9007ed6a0d6e0b147de0deb44b7b023
commit fd367947404c25f7122479dc805ca895346e3568
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Fri Oct 28 12:07:25 2016 -0400
adding reference implementation using inotify
Change-Id: Ibec73bdc4c7a576e4beaf5e749567dd2508be4df
commit f8fde6cc7308faf9aea5016d1b325fe54ace4f73
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Thu Oct 27 15:55:10 2016 -0400
add stream info to metadata files
Change-Id: I200df14a3e35c2c0077866444b96692de4303761
commit 5a8b4dd156d014756681c644549f481af941b294
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Thu Oct 27 14:47:49 2016 -0400
pass intercepted packets to kernel and tie in kernel idx
Change-Id: I33ff297c4a66276b05d0e5d537b0281f27116243
commit 0c0b97ea3940a34843375c58255d40cf4280bd5c
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Thu Oct 27 12:29:02 2016 -0400
abstractize fake packet header and support ipv6
Change-Id: I6c1ad1cccad306f3d306fb3387efcb033a3574b2
commit e1b648b9baea609cbe9836c81a5a2cd41ef464cb
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Thu Oct 27 09:32:40 2016 -0400
support creating kernel intercept streams
Change-Id: I1f9bdda61af52814f07f765a8b558a7491cfc0b9
commit b6737ec9635d2d7a8d0245bab7c51a077cd814d2
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Wed Oct 26 14:46:13 2016 -0400
get rid of call->record_call flag
Change-Id: I04dcba49b07fc669b0bb4bcea8ccc2b52cb76e02
commit 6ed362c120995d1e3fdff71f7e440e73737e7fcb
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Wed Oct 26 12:53:04 2016 -0400
add recorded call to /proc
Change-Id: I1fe64b9fb8fe3604bb7d432899c43e3e37ea6a4f
commit 62d2508ecf69fbdf9ba1faf3e2433fa6f717740a
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Wed Oct 26 10:10:05 2016 -0400
simplify some code
Change-Id: I2a27400e91f58aa8ea20d3e610a7509d2e9a0dfc
commit 0c811a8e91ded41487bf045e6df55fb31cce7671
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Tue Oct 25 16:12:59 2016 -0400
create separate ../tmp recording dir and clean up duplicate code
Change-Id: I94e0c19a1e8fed5a30212b79930987333f5e6786
commit 16592a92300b856084ebd5769ecae35788f0ad63
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Tue Oct 25 11:26:54 2016 -0400
remove explicit libcurl dependency
finally properly fixes #251
Change-Id: I3feafe2d0086f6dd789175e6ec0079c54edd487a
commit c78ac5bbb7e65609175753933f7e75d54ea21c30
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Tue Oct 25 10:48:50 2016 -0400
abstractize recording cleanup routine
Change-Id: Ib9fc46542f273bab53f611a1456f02d67edfc966
commit d8358c9a2c6cbd66e17d4bb08dba96a3b2e2d41a
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Tue Oct 25 10:07:44 2016 -0400
use shorthand for function pointers
Change-Id: Idf43949e20281a10317e22a5b68a6d133e398bd4
commit 9417437c1092770e36bde22b508f9d71078d4a1b
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Mon Oct 24 15:31:56 2016 -0400
abstractize individual recording functions
Change-Id: I0974696b6bb361fce39b24d6be91b5c052ee2b14
commit eb631cd876a0f941ed4fb6d47412a6892e019f1b
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Mon Oct 24 11:54:42 2016 -0400
abstractize call recording mechanism
Change-Id: If8672051227944544d9cf916d359c5db67235e3e
commit 70797ceb8f36c45593688652df98f19a5c1dd9f4
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Thu Jul 14 11:25:05 2016 -0400
combine two mallocs into one for user-generated packets
Change-Id: I585d129f10d379a5cb853382773f91a7cec9a98d
commit f62f71cee404893b3f5076489d6a3eb1ad6f69c0
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Wed Jul 13 14:22:18 2016 -0400
check for and avoid /proc file name collisions
Change-Id: Ie9eb9ceef8f32de8aba816f0121e768c57fa7402
commit ec6b3d22fcce8e7e2edd35704a559fe392406561
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Wed Jul 13 11:02:04 2016 -0400
implement free list
Change-Id: I3e7dc2325c937923d19ce6000f2cf1c011e51037
commit bd75a1cf254c484878d07ecceca7220cdbf1ddb3
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Wed Jul 13 09:30:36 2016 -0400
make number of packets retained per stream configurable
Change-Id: If1c87f80dd7367cbc274d13c15f94836ef9c8cb1
commit de259c3d646526bd200f619371668798ddae86b2
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Tue Jul 12 15:15:01 2016 -0400
facilitate passing packets from kernel module out to userspace
Change-Id: I2317a007084a1718e185ba04632c53a9ebe5f29d
commit 3aa88716fb86c62f96b6dfc7d0d9c9755fa1f389
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Mon Jul 11 10:45:10 2016 -0400
restructure calls and streams to global arrays
Change-Id: Icfca615b21f2e51b1abda4422c4eeb8f4ac70a9b
commit 6cf9980f3e61f1f1d44b5ce883298ca2726af1b2
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Fri Jul 8 11:53:32 2016 -0400
implement poll/select mechanism
Change-Id: Ic10c017250f0991f691a887b078e80f694bba853
commit d95829e07b2bf4d3352806c70b3393ae3a8609fb
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Fri Jul 8 10:44:38 2016 -0400
discard new/old packets as required
Change-Id: If73ce77dcbc24addb6ce0931b90de0f5efae9f51
commit be1d769e4454f1d98f0b75cc8301c128a40e980c
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Fri Jul 8 10:25:38 2016 -0400
implement EOF for stream readers
Change-Id: I858dc1fdd7df3b65283e1d96457d87e7452840f5
commit ed2d98d55a87ce428cdc66d9336035f3dc0cb5ae
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Thu Jul 7 15:02:58 2016 -0400
blocking and nonblocking reads - incomplete
Change-Id: I7cbfb09507ad8726773d6a28ddb98d5981decd04
commit 246709c7f4741e669c4a78b48c382497bf57c6be
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Thu Jul 7 13:55:41 2016 -0400
rudimentary packet reading/dequeuing
Change-Id: I1a924e5cb2ef4e4f16aeff1f1dd90d0746f91da5
commit 427749394995d2e6fb8ad7ddc23c876b1c8e11f1
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Thu Jul 7 12:40:31 2016 -0400
use kzalloc where appropriate
Change-Id: Icd6a109a69ab4f6dc9f7d35fd9e8fc9127f8e7e0
commit 5b07819217dfb47201a373e941aab185789484a9
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Thu Jul 7 09:07:54 2016 -0400
more module referencing
Change-Id: I2e34fe74f2edef9170a4558f6a24394240966d79
commit 1d8268f636c26ec21c3cfa2308bad91262e0768a
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Wed Jul 6 14:56:42 2016 -0400
store delivered packets in queue
Change-Id: Id349b75e06f9dd77c884196b7726027ac5cab7ae
commit 23c6a53f94c46ead7093b5402486799fc631e432
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Wed Jul 6 14:21:27 2016 -0400
implement call for packet delivery
Change-Id: Ibeb815bf2fedfdd644d324c65b58a24871d47d4a
commit c8fd855f325128b78f4e276bfb26b479ef189b11
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Wed Jul 6 10:28:18 2016 -0400
automatic cleanup of objects upon free/delete
Change-Id: If244905e2d074f491229316f3305c9b0b1451792
commit 282ef603a83637c9a8e33ed31d09268fa45a6301
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Wed Jul 6 09:47:29 2016 -0400
unify read/write functions
Change-Id: I78b0dd05cd730e16655034994c74cbe23be23fce
commit e74c62cc6f0dce85fea6534d8d72e2f51e0947d6
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Tue Jul 5 15:36:00 2016 -0400
rename _push to _put and _hold to _get
Change-Id: I9b0ff5038b541bd3cfb961657c15a26f26ccdfb2
commit d71ce17529d1938ce2439b122fb6017e29dd079b
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Tue Jul 5 15:33:07 2016 -0400
support creation and deletion of streams
Change-Id: I7df05d232b5971c54ca50adce8144b5f1646fba0
commit 8be4e2c7c49dd7b893335f14ca98776a1f3fb12f
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Tue Jul 5 11:54:39 2016 -0400
create functions for redundant code
Change-Id: Id3772f12294ee9891d22d833274e5935814cae0b
commit 47ce4ca8f5d694e50c98f73147ed2eb81f14ea8a
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Thu Jun 30 12:12:19 2016 -0400
support creation and deletion of calls objects
Change-Id: Ie5f9aa978bac21fc30909f14d6a438494848dfd5
commit 8dab54209d3e52d41f78d8f54956a4ed3dc15da3
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Wed Jun 29 14:20:23 2016 -0400
create /proc/.../calls directory
Change-Id: I682a4bf23edbb72772d64963e3ba2cab2a521ff4
commit 1401ae8db5f9e2a973c670f3bf72e9019c451276
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Wed Jun 29 14:02:11 2016 -0400
rename kernel message enum
Change-Id: I45d7aeae43df1fe6ecd6b6965dbd6ba7e7b715d8
commit ce44ff0dbe67a6687d5fb1bea9d31e21c9464907
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Wed Jun 29 14:00:32 2016 -0400
convert kernel message data to union
Change-Id: I7cfd9fe81623efae0a828ba457aa0a4b1380ff03
Change-Id: I4bb0b7f6d29c1c7a2144e4735ed59f3dc0e37094
9 years ago
Richard Fuchs
94e3c8f9cb
TT#3881 re-enable selective packet loop check
...
instead of outright rejecting local endpoints advertised by remote
clients (to allow for deliberately daisy chaining packet streams), we
flag them for checking against actual packet loops as we did before
Change-Id: I5652e86e12f3c1c5053ea70b01e8d128ebf47751
9 years ago
Richard Fuchs
2e5e2ec1b9
detect and ignore when local endpoints are advertised by remote clients
...
fixes #65
this also obsoletes the old loop detection
Change-Id: I850d81500c45828af2c4d50d80278ec2d599c2a0
(cherry picked from commit 3254278cfd55167fb881cc665328744183773728)
9 years ago
Eric Green
aea277dbbe
Add a mutex lock for recording to ensure thread safety when writing to pcap
9 years ago
Eric Green
04b71dd2b5
Add back free that fixes memory leak introduced by rebase
9 years ago
Dylan Mikus
fa8146f053
Fixes for recording packet counter
...
- The packet counter was accidentally a pointer, resulting in it
incrementing by 8 instead of 1. That is fixed.
- Use proper formatting macro for uint64_t printing.
- Start PCAP packet indexing at 1 since that is what Wireshark does.
9 years ago
Dylan Mikus
5fe68b9097
Link recording metadata SDP to RTP packet numbers
...
We write out what RTP packet number the SDP came before. When we receive
an SDP offer or answer, we write out the RTP packet number that the SDP
preceeded. This will let us split the RTP recording PCAP around SDP
renegotiation for things like hold/unhold.
Also write out whether the SDP was an offer or an answer.
9 years ago
Dylan Mikus
abd953812f
Fixes to match PCAP packets with SDP
...
We want to be able to match up the source and target <IP>:<PORT> with
the IP and port info sent in SDP. I adjusted the source and target
<IP>:<PORT> we write to the IP and UDP headers in the PCAP file.
I added the offer SDP (in addition to the already written answer SDP)
to the metadata file.
As a consequence of writing out the offer SDP, we will have empty PCAP
files and associated metadata files for calls that are never answered.
squash! Fixes to match PCAP packets with SDP
Added comments detailing the types of endpoint IP/port values we can
use.
9 years ago
Dylan Mikus
1cec331d1c
Only turn on or off recording if explicitly specified
...
When we receive an offer or an answer, we will only turn recording on if
it contains the "record-call=yes" flag. Likewise, we only turn recording
off if it contains the "record-call=no" flag. If no flag is specified,
the call keeps its current recording status. It used to be the case that
not specifying "record-call=yes" would turn off call recording.
This fix is necessary to account for SDP renegotiation during
hold/unhold. If the call system sends over another offer during SDP
renegotiation to hold and then unhold, we don't want to change recording
behavior unless the call system specifically says so.
9 years ago
Dylan Mikus
7acc3239d2
Write out unique ip:port pairs for all streams.
...
We should do some more checking to make sure we're using the correct values
for source and destination ip:port pairs.
9 years ago
Dylan Mikus
f516684ade
All RTP packet data for a call goes to one PCAP file.
...
This involved moving all code from fs.(c|h) to recording.(c|h).
We still spoof packets, so the UDP will look like all monologues are coming
over the same port and will probably look like they are all one stream if
you look at the PCAP file.
9 years ago
Dylan Mikus
8f6d7c0a16
Logging cleanup and added recording filesystem logging messages.
...
We log errors when filesystem operations fail, among other things.
9 years ago
Dylan Mikus
f36faef417
Code bug fixes and safety checks around error-possible code.
...
Fixes and changes:
- Only create the metadata file if the call is being recorded.
- Only write to the metadata file if we actually created it (NULL check).
- Make sure we have metadata before putting it on the call object
- Correctly overwrite recording metadata without leaking memory
- Set the no kernalization flag per call instead of for *every* packet.
- Logging cleanup.
9 years ago
Dylan Mikus
7c53e9f95b
Moved file system management and random string code to appropriate files.
...
File system code is now in fs.{h|c}. This includes:
- spool directory setup
- metadata file management
- pcap file creation and writing
Random hex string generation is now in str.h.
9 years ago
Dylan Mikus
7cc801931a
Added metadata string to call struct.
...
This will follow the call around until we destroy the call, at which point the
metadata string will be freed.
9 years ago
Dylan Mikus
a714fbc462
Record RTP in PCAP files in the /tmp directory.
...
RTP Engine creates PCAP files for recorded calls on offer answer instead
of initial offer.
We make up bogus values for the nonessential parts of the PCAP, UDP, and
IP headers. We might be able to pull these from other parts of the RTP
Engine, but that information was unnecessary for recording calls so they
can be recorded to audio files.
If you change the packet headers, be really careful about byte order and
datatype size!
9 years ago
Eric Green
70eb6b9e81
Record raw RTP to recording files on the filesystem.
...
Pass in "record-call" flag over `rtpengine_offer` or `rtpengine_answer`
message. RTP Engine tracks files used to record pcaps and send them back
in the response message.
Pipes call audio (unencrypted from both ends) to recording files.
Sets up file descriptors for local files to dump RTP recordings.
A file and a file descriptor per monologue in a call.
Recorded streams will be running in user daemon mode, not in kernel mode.
This removes first 12 octets from packet to record just the rtp.
9 years ago
Richard Fuchs
0206f09b93
fix obj-debug stuff
...
required moving includes/headers around to avoid circular dependencies
Change-Id: Ia43e3254f252f94ec387be6b9c85fce4e727b251
9 years ago
Richard Fuchs
29545e5434
MT#18599 use kernel socket receive timestamping
...
Change-Id: I6fde08be7942df7986eea39d2b233ce60d1fa862
9 years ago
Richard Fuchs
133e6304b3
MT#18599 support sending RTCP stats to Homer via HEP
...
Change-Id: Icaf28f28c910318726e446a1a2ad4c7ee5e79f85
9 years ago
Stefan Mititelu
a43996fe4a
Add 'unidirectional' attribute
...
In order to kernelize unidirectional streams.
9 years ago
Richard Fuchs
d8e1e9f86a
simplify redis CLI options
...
Removes the explicit redis-read-db configuration and reduces the option
to one redis DB and one redis write DB. If only the redis DB is
configured, then it will be used for all operations. If both are
configured, then the redis DB will be used for reading and the write DB
will be used for writing (updates).
Change-Id: I8d5a32c53c9416b514c98d69c3afe7c547e530ad
9 years ago
Richard Fuchs
725638bccb
remove redis-role redundancy
...
Change-Id: Id5a39d008169d4b01cd33a7d82bb0896983e47bc
9 years ago
Richard Fuchs
b82812260d
move advertised_address out of intf_spec into local_intf
...
supports aliasing a local interface multiple times with the same local
address for different advertised addresses
closes #216
Change-Id: I6f98d1a17290b0bb1831e48ad89fc61d8b2d7914
9 years ago
Richard Fuchs
b85a9e398c
fix two memory leaks
...
closes #210
Change-Id: I786345342f415a5fbe7fa361e2961e0399f55b67
9 years ago
Richard Fuchs
6d3865b971
Mass update - manual merge of rfuchs/socket-rework branch
...
This brings master up to date with branch `rfuchs/socket-rework` at
commit `b1bcc096b7`. The branches have diverged too much for a proper
merge, so this is a manual (squashed) merge.
The old master before this merge can be found in branch
`old-master-before-socket-rework` (commit `82199216b2`).
This is a complete rewrite of all socket handling routines. The most
important functional change is that sockets aren't indiscriminately
bound to INADDR_ANY (or rather in6addr_any), but instead are always
bound to their respective local interface address and with the correct
address family.
Side effects of this are that in multi-homed environments, multiple
sockets must be opened (one per interface address and family) which must
be taken into account when considering RLIMIT_NOFILE values. As a
benefit, this change allows rtpengine to utilize the full UDP port space
per interface address, instead of just one port space per machine.
The socket abstraction also makes it possible to support RTP over TCP in
the future.
Change-Id: If6cf4f42136229490186d2d2482fb4fc140c2b53
10 years ago