Richard Fuchs
413798e43f
TT#132251 implement media silencing
...
Change-Id: I0902bd72e2733b96ff75bcf52856a58c51a750f6
4 years ago
Richard Fuchs
99fbff408e
TT#14008 fix call iterator dead lock
...
... almost there ...
Change-Id: I3261ec91ac7481bb275bbb4f9841747938706e61
4 years ago
Richard Fuchs
0266886487
TT#37394 support SO_INCOMING_CPU
...
Change-Id: I8017929519cc3b721272cc122bee4fdc36c7317a
4 years ago
Richard Fuchs
cda67ac5ac
TT#14008 fix call iterator race condition
...
The contents of the ->next element cannot be accessed completely lock
free as they're zeroed out during call removal. Instead grab a reference
to the linked next call before releasing the lock, and also lock the
next element before moving on. This requires a more granular locking as
not to interfere with call removal: One lock to protect the contained
call and the ->next, and another to protect the ->prev
Change-Id: I5474ea3f88e3276f93ba62a952b3be13c0c182e9
4 years ago
Richard Fuchs
5c519ec2db
TT#89352 allow create-only mode for call_get_*
...
Change-Id: I4dd760b14ef1c91d463a2390ff3c52d71acedf4a
4 years ago
Richard Fuchs
765b1e3bca
TT#89352 use bool type for foreign call functions
...
Change-Id: If8d5e28db534e6aeaaffb885e732e2bdd7338831
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
00c6dfb204
TT#91151 add function to create synthetic SDP
...
Change-Id: I7c4698a61c380efc8043444e255f8d5a1c7f0c6d
4 years ago
Richard Fuchs
ffaed806c3
TT#91151 save raw protocol string
...
Change-Id: I21bee5b28522ef01fa5902c0b1fc69e2cade8434
4 years ago
Richard Fuchs
d0c6919923
TT#91151 save last input SDP w/ parsed
...
Change-Id: I561371fe83b1aea65e3ae3f8b60ceb9250923a23
4 years ago
Richard Fuchs
92fb330a46
TT#91151 implement one-to-many forwarding
...
Change-Id: I80fd35da680d4ad1f4d3d21f14f11363106b9917
4 years ago
Richard Fuchs
3b3979586f
TT#91151 move `num_ports` into stream_params
...
Change-Id: I8f20f07f092204a70917c3d180adc13fb7b44da1
4 years ago
Richard Fuchs
1d387b98ef
TT#112700 rework codec offer/answer routine
...
Complete overhaul of the codec handling code:
*) obsolete flags `asymmetric codecs`, `symmetric codecs`, `reorder
codecs`
*) support proper codec offer/answer
*) split codec manipulation (strip/offer/accept/etc) into separate
functions for clarity and better code maintenance
*) fully update codec handlers in both directions after an answer
*) explicit allocation and handling of codecs and payload types in a
codec_store object
*) improve codec matchup logic during answer
*) more explicit handling of supplemental codecs (CN/DTMF)
*) remove now obsolete hacks for handling certain use cases
Change-Id: I996705ba8fe339524c2f70e6bb0fd854f9a1f4fb
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
dd58a1a42d
TT#14008 reset SRTP index on endpoint change
...
closes #1277
Change-Id: If951bc8abdfb1cec88abf5fc6e36d48aff575e98
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
95a30674ac
TT#14008 implement lock-light global call iterators
...
Change-Id: Ie01eb06262267a1aa0b69f632a515d5271bafb52
4 years ago
Richard Fuchs
5c50ec2bbe
TT#14008 convert RTCP timer and DTX to regular timer
...
Change-Id: I7f9e1e586e237d6b40ee250ed149cb21eae87f95
4 years ago
Richard Fuchs
0e2bddb6c8
TT#14008 add `pierce-NAT` flag
...
Change-Id: I1ec9b0ba152939cb6dc079e0047040da862945dc
4 years ago
Richard Fuchs
a009f76456
TT#14008 support media echo and blackhole
...
Change-Id: I9df4680188709867db2b61d97cc5f1e30c59e0d7
4 years ago
Richard Fuchs
87e5efc7d4
TT#111150 fix mem leaks in test-transcode
...
Change-Id: I3a796184e64b1fc1f760b53fe7d1855997ab8b72
4 years ago
Richard Fuchs
a8d5076065
TT#119502 correctly restore calls from both Redis instances
...
Change-Id: I713d7e8ba0a7d14f5ef9016d33619df91ce6ec32
4 years ago
Richard Fuchs
a86d98f8d1
TT#118902 add support for per-call debugging
...
Change-Id: I9b0eab21ff4e5c241ff045049ccd37f6044d5707
4 years ago
Stefan Mititelu
482e2d0d2b
Add stats for ipv4/ipv6/mixed media calls
...
Also Send stats for ipv4/ipv6/mixed media calls to graphite
4 years ago
Richard Fuchs
8029a4d1cd
TT#113750 don't auto switch from an already selected fingerprint
...
If we receive an SDP with a DTLS fingerprint, by default we adopt the
hash function used for that fingerprint in subsequent communication with
that peer. However, if the SDP is an answer, and we previously used a
different hash function in the offer towards that peer, then a later
re-invite offer would be sent with a different fingerprint, causing an
unexpected DTLS restart. Instead, make sure we don't change fingerprints
if one was already sent.
Change-Id: I603bb86ce2d7121556c161749ed08128dd0b63b2
4 years ago
Richard Fuchs
3791b8f595
TT#107565 add `replace-session-name` option
...
Change-Id: I10d89f3bf8e88fb953cc7cc7fffae056bf0092c3
4 years ago
Richard Fuchs
fc83f64575
TT#107565 add `replace-username` option
...
Change-Id: I89dd560789adde4d96fa6a6f314b1c3c81a5a47b
4 years ago
Guillem Jover
68797f4195
TT#111150 Mark bit-fields explicitly with as unsigned
...
Whether a bit-field is signed or unsigned is implementation specific, so
we should be explicit about this.
Change-Id: I744df3d24bc08e95fa816ba4135f19cd3a5dcb17
Warned-by: lgtm
4 years ago
Richard Fuchs
76d5828c82
TT#91151 explicitly keep track of zero endpoint addresses
...
Change-Id: I6044cddc7d997848715df6701fd8a61a1e0bf289
4 years ago
Richard Fuchs
36273e1f5d
TT#107565 add option to track SDP version
...
Change-Id: Ifb3ca589742a4ad0cc83982d6e42bf692a2c98db
4 years ago
balajeesv
ffc9e34e14
TT#14008 Squashed commit of the following:
...
closes #1134
commit 1cdf8d50844baa27513c51a552504a8406ca17a4
Merge: 2fc54462
cc4d049f
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Mon Feb 1 11:19:43 2021 -0500
Merge branch 'jb_disable' of https://github.com/balajeesv/rtpengine into balajeesv-jb_disable
Change-Id: Ic01bbeb776d8ac0f3ebb46ae0a263243828443bb
commit cc4d049fab
Merge: 2f935206
9deedea1
Author: balajeesv <balajee.sv@gmail.com>
Date: Fri Dec 11 23:15:48 2020 +0530
Merge branch 'jb_disable' of https://github.com/balajeesv/rtpengine into jb_disable
commit 2f935206de
Merge: f553a9e5
7c3d2e01
Author: Balajee SV <41125423+balajeesv@users.noreply.github.com>
Date: Fri Dec 11 23:12:27 2020 +0530
Merge branch 'master' into jb_disable
commit 9deedea1c4
Merge: f553a9e5
7c3d2e01
Author: Balajee SV <41125423+balajeesv@users.noreply.github.com>
Date: Fri Dec 11 23:12:27 2020 +0530
Merge branch 'master' into jb_disable
commit f553a9e582
Author: balajeesv <balajee.sv@gmail.com>
Date: Fri Dec 11 22:47:46 2020 +0530
rtpengine: Disable jitter-buffer per call in offer
Change-Id: Ib4443a0d66c78749e24f3d2cb48c991e408e21fd
4 years ago
Richard Fuchs
97a1c218fa
TT#106101 handle out-of-order ICE fragments
...
Change-Id: I6b16474d505a40055b06d215e4cc6c5391214613
4 years ago
Richard Fuchs
ba66e5fa3a
TT#99621 support RTCP generation
...
Change-Id: Iff832eaa4148cce4d87d24d4dc3b908dfa361770
4 years ago
Richard Fuchs
260a170524
TT#81212 add trigger to set all calls to own or foreign
...
Change-Id: I9ee69680bccd79bae19332189a8531eaa2f6950b
4 years ago
Richard Fuchs
c9140f9f66
TT#81212 add function to change call state (own/foreign)
...
Change-Id: Ia9010c270839832abbb0d7b7742a4bf8cda1d538
4 years ago
Richard Fuchs
1d34c40276
TT#101201 support optional ICE-lite mode
...
closes #1106
Change-Id: I4a83ed2630889d8b17a0c40d971ec7946c1ed3a2
5 years ago
Richard Fuchs
8d7badcf02
TT#101201 rename ICE_LITE flag
...
Change-Id: Icc5a74b53572f1eb26689a23b31d37ee2891ecef
5 years ago
Richard Fuchs
68ccc52b2b
TT#92250 postpone codec_tracker to final stage
...
Change-Id: I222f705e53fc95f56da40cf927197afcb2ee5107
5 years ago
Richard Fuchs
6fc9459016
TT#91003 handle AMR CMR
...
Change-Id: I9fdb58359c25b3fcedf25872c98ac8ff582fa488
5 years ago
Richard Fuchs
5001a02d44
TT#88750 fix SRTP not working after Redis restart
...
Change-Id: I40a20b2cd2668480d4b85de7a19c39f606b2eada
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
8e22c9a414
TT#85701 improve branch handling with delete-delay=0
...
Initially created branches don't have a tag associated with them, so
they don't appear in `other_tags`. We need to keep track of which
branches were created from a single from-tag through their via-branch
values so we know when all branches have been deleted.
closes #1037
Change-Id: I4c6ce602b99a9104de98098cd06ca399eb28e1b2
5 years ago
Richard Fuchs
e01b3b421c
TT#28300 add cleanup of calls structs
...
Change-Id: I9e95fc9075645a7364bf62a9ca6f193dc6952ce1
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
d872802ba2
TT#76711 T.38 <> audio gateway
...
Change-Id: I4552e07eee632fa730745410b08c3bf70ab67ab2
5 years ago
Richard Fuchs
6792cde8b6
TT#76711 add custom SDP attributes capability
...
Change-Id: Iaf924938af1ef32a5a7eb961951c0debe7351ee5
5 years ago
Richard Fuchs
a68a59fbf5
TT#76711 keep track of the raw SDP format string
...
Change-Id: I7f20dbff3237e39cea700c984a4f41016a2264fc
5 years ago
Richard Fuchs
2d78c36338
TT#76711 allow update of media type
...
Change-Id: I3e860fe8683be2d7b0cd3cc70d4f7e4b39a0e147
5 years ago
Richard Fuchs
0308ee43ec
TT#14008 fix compiler warnings
...
Change-Id: I56001a5db58c6755584e49496b41e11c6a5f8aeb
5 years ago
Richard Fuchs
ab53fdc6f6
Merge branch 'jb_new' of https://github.com/balajeesv/rtpengine
...
Change-Id: I73fc3529938bf65e40f86a4e526c8bf77e199492
5 years ago
Richard Fuchs
7e0b2c4ac3
TT#75352 add a storage container for codec handlers
...
The hash table cannot be used for storage any more as entries can be
removed on demand (64e56d7
) but can be cached in packet->handler at the
same time.
Possibly fixes #915
Change-Id: Ic74703b1a57294bfd704b6cddcd666d6063f510a
5 years ago
Richard Fuchs
ef0d6a3a80
TT#74301 merge jitter buffer PR #834
...
refactored
closes #834
Change-Id: I174cc6e365af54fb66d2dd78be02c601c5d5d645
5 years ago
Richard Fuchs
61ac7e9656
TT#72000 add different endpoint detection algorithms
...
Change-Id: I791dba23450cab31bc5744a6156965afbb8a3b5c
5 years ago
Richard Fuchs
b14f3b2b1c
TT#64259 support injecting DTMF tones and events
...
Change-Id: I07aa7690146db5b41be479a67aaafbd66aec4033
6 years ago
Richard Fuchs
910c03fa62
TT#58660 PCM to RFC DTMF transcoding
...
Change-Id: Iea6a11c0caad1f5e7dcca966101e2969d3516b6f
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
357474df6f
TT#50652 add label= option to match call participants
...
Change-Id: Ifc6cf8f630e9e5eb8cfb9b284e671a5ce4470963
6 years ago
Richard Fuchs
fb76ef74f8
TT#54800 fix ptime overrides
...
Adds a new option ptime-reverse to complement setting of ptime towards
the offerer. This and ptime setting are now ignored in answers.
Change-Id: Icbc04f191cbc194b75b72a97832fcaba58feb10e
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
83965bdb1f
TT#50652 infrastructure to support reading/playing of media files
...
Change-Id: I8212f5c74bcb9557d41f80ef3a1595f53bafde8a
6 years ago
Richard Fuchs
3b28460507
TT#52651 Squashed commit of the following:
...
commit 2029144368
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Thu Feb 21 13:12:50 2019 -0500
TT#52651 switch TCP to TLS
Change-Id: Iab6b05d3b5c88553cbd6f531f3189084d9e71995
commit b28e718ee4
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Fri Feb 22 09:20:54 2019 -0500
TT#52651 generalise streambuf interface
Change-Id: I7d5ab8ffe13e52d4dbb1901531cc13fcc173d60d
commit cb2dbd2a92
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Tue Feb 19 09:32:56 2019 -0500
TT#52651 add start/stop forwarding commands and party selection logic
Change-Id: I8ef7e288d3a3e485bd2fa14e1a2407a0c8d94bac
commit 442c48f627
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Thu Feb 14 15:43:23 2019 -0500
TT#52651 produce output for TCP forwarding feature
Change-Id: I18543921577faf655679829684f5af46c0af5054
commit 2ef8028eb2
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Thu Feb 14 10:18:21 2019 -0500
TT#52651 make recording to output files optional
Change-Id: I12c288b965641352658ce3b499c2ee90593e1322
commit 10a58cd7a0
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Wed Feb 13 16:02:16 2019 -0500
TT#52651 strip streambuf into lib and include in recording daemon
Change-Id: I1f6638961e9e767063e0b4e6b5d55d88799366d3
commit 9d3bb5bffc
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Wed Feb 13 15:40:12 2019 -0500
TT#52651 extract/move unrelated old legacy decoder struct members
Change-Id: Iffd79b43180c30a9e128a460f7ba85ba49dedeaf
commit 1bc38e4201
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Tue Feb 12 16:43:42 2019 -0500
TT#52651 config options for forwarding option
Change-Id: Ieaa2ee0e55a0c531158174bc6a534738a64dbee6
commit 06d61cd3dd
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Tue Feb 12 16:29:52 2019 -0500
TT#52651 move socket.[ch] into lib/
includes necessary re-shuffling of additional code pieces
Change-Id: I74b314ab5936ac8a0eeaff94e084617b59b28d79
Change-Id: I025e8ec86b90ede79565542dff57ec1559d04200
6 years ago
Richard Fuchs
e1fbe25b89
TT#45472 keep track of media IDs in a hash table
...
Change-Id: I66d2a5aff29447a60f4f3961165bfb6c0392a38e
7 years ago
Richard Fuchs
3c50130c7b
TT#45472 process and retain media ID strings (a=mid)
...
Change-Id: Icf7219f407ed660c009ffde838c942e13aad40ce
7 years ago
Richard Fuchs
326c6a5818
TT#43557 augment DTMF blocking to support directional blocking
...
Change-Id: I5d77b437fe746ac5f3b6c15d327755f9349b61d8
7 years ago
Richard Fuchs
04a83027a0
TT#43557 implement media blocking
...
Change-Id: I336cf7203c1236b3e596310690a89ce1c3fd8bf4
7 years ago
Richard Fuchs
e67b9c40da
TT#43556 support blocking of DTMF event packets
...
Change-Id: I7ef43ddb254b1583c2dc69b44a13b978eff15510
7 years ago
Richard Fuchs
cab9d895b2
TT#42500 fix only one crypto suite being offered.
...
We should offer all crypto suites that we support. If passing through
SDES, we should amend the list of crypto suites with all additional ones
that we support that weren't included in the received offer.
closes #577
Change-Id: I9b6c16e8eadecf01cdbc8043bd8361e0f683e456
7 years ago
Richard Fuchs
0aeb06f613
TT#40900 store metadata in call struct instead of recording struct
...
makes it possible to set the metadata before recording has been started
closes #579
Change-Id: I885a39fbc53345a4e9f2459f3cd972cb1198c210
7 years ago
Richard Fuchs
3b3e964c83
short lock duration for faster calls iteration in the timer
...
Change-Id: I1d2d40e1a5fcdaaf8384eeb841d3e99690185d7f
7 years ago
Richard Fuchs
db2882ca78
integrate AES unit test into main build framework
...
Required addition of include/ directory for headers shared between
daemon and tests
Change-Id: Ib25504f4d7f4baa917efcdc0ef78b6cc89439827
7 years ago