Richard Fuchs
9491a81ec6
MT#55283 simplify call2_get
...
Change-Id: I92407ea9ed9ab794e22e00cfa43a61599d768f48
3 months ago
Richard Fuchs
a5d067f4cc
MT#55283 use medias_q instead of subscriptions
...
Change-Id: I7bb2bbc79b2da7fa7e7d9d4158de20e3afb9aa11
3 months ago
Richard Fuchs
ef817fccef
MT#55283 support individual unsubscribe action
...
Change-Id: Id4ea984ce8109b6a962edb52d0e81532bbfbd701
3 months ago
Richard Fuchs
320b293dd5
MT#55283 add "create" method
...
Change-Id: I626996028a6c5a9ee296efdeba8f301411b74ec7
3 months ago
Richard Fuchs
07c061380c
MT#55283 refactor c_s_synth
...
Change-Id: I971b7225eaef13df0880885462aa48d8ad82cedf
3 months ago
Richard Fuchs
c17a48d5e8
MT#55283 annotate functions & const qualify
...
Change-Id: I7b6a47c01765a8021bd811e311c9901f075d67c6
3 months ago
Richard Fuchs
e59ee48a06
MT#55283 update unsubscribed subs as well
...
Change-Id: I9d4e0c06186d97a8bf34ca8103ac2b628109d796
3 months ago
Richard Fuchs
fd48c1f126
MT#55283 move type definition
...
Change-Id: Ib5480e94e1d4b25bfb46029a80aa3bd91e323b2e
3 months ago
Richard Fuchs
0a9e85e8a3
MT#55283 refactor update_all functions
...
Change-Id: Ica0a9f5f76bf8edf194813e18d71437d6756280b
3 months ago
Richard Fuchs
12f935db9c
MT#55283 support bidirectional publish
...
Change-Id: I530dbe297e839560055da94911a73e7c14e08dc0
4 months ago
Richard Fuchs
d8915abc79
MT#55283 rename SDP origin fields
...
and integrate them into the main struct
Change-Id: Ie5c0ed8e98bce4e20c801ff0413ff3245b0c9792
4 months ago
Richard Fuchs
9a65ab0335
MT#55283 parse a=label
...
This is needed to correctly print media labels for SIPREC in case the
input SDPs already had media labels.
Change-Id: I021f44ba28a3648ceb62db12425ddf545de42a96
4 months ago
Richard Fuchs
0f7774dbfa
MT#55283 set media label only for out direction
...
Change-Id: I316ebc34f51adf56d3df715c910e3102ab6e4a86
4 months ago
Richard Fuchs
c27ecf4828
MT#55283 facilitate media reuse for updated subs
...
For a repeated subscribe-request on an existing monologue, make sure
that existing media sections are re-used for the same subscriptions as
they were previously, and only create new ones in an append-only fashion
for media subs which didn't previously exist.
Change-Id: I410c6af17eb31a5c5c43c78a7f82ba867f8480b7
4 months ago
Richard Fuchs
b9c24cbf99
MT#55283 rename macro
...
Change-Id: I7ee697e3fb63226a304a1150c51ef2603294be80
4 months ago
Nikolay Feshenko
352bda7035
MT#55283 add inject start/stop commands for one-way audio injection
...
New NG protocol commands that mix audio from a source participant
into a destination participant's stream without a full offer/answer
exchange.
- inject start: creates one-way subscription with audio_player mixing
- inject stop: removes injection and restores original codec routing
- Supports cross-call injection via source-call-id (merges calls internally)
- inject attribute persisted through Redis for HA failover
- Audio-only; matches media by media-id, index, then type fallback
Closes #2082
Change-Id: Ib88113b021a4b76bf98892eb1af60c0b36c0d6d3
4 months ago
Richard Fuchs
76d5e6d439
MT#55283 support from-tag aliases
...
Change-Id: Iffd87cc821e35d3d775a5bde1986c2d7dd0192ee
4 months ago
Richard Fuchs
8866c42078
MT#55283 extend arena strcpy/ref usage
...
Change-Id: I94488116f9dc46ea31b3d937df6813c323fef856
4 months ago
Richard Fuchs
5926aacf9b
MT#55283 combine identical HT types
...
Change-Id: I49b1a1952ede3b34442e9982c91f0218024259d8
4 months ago
Hossein Yavari
0b726872b7
MT#55283 Add configurable HTTP idle (keepalive) timeout
...
- Add --http-idle-timeout option (seconds; 0 = libwebsockets default, 5s for HTTP/1.1)
- Pass keepalive_timeout to libwebsockets when creating HTTP and HTTPS vhosts
- Reject negative values; default 0 preserves existing behaviour
- Document in docs/rtpengine.md and etc/rtpengine.conf
- Extend auto-daemon-tests-http.pl to run with --http-idle-timeout=5
Closes #2077
Change-Id: I134bd08a0b82aa95e8e7c28e75a65ca783cb91d9
4 months ago
Richard Fuchs
cfe9a588fa
MT#55283 extend "answer only" logic
...
Provide an extra codec-store for the lookup of the answer codec. This is
needed for codec switches during an extra answer, as the original codecs
are kept in a different codec-store.
Closes #2073
Change-Id: I7e2efc434789ecc8d3b5fcf97240e5c3f7c84652
4 months ago
Richard Fuchs
4ea7873ca7
MT#55283 update memory arena logic
...
Use a pointer to the arena plus a comparison test to determine whether
to ref or to dup the string, instead of a function pointer. The function
pointer alone wasn't enough as there can be multiple arenas.
Change-Id: Icd317e524fc2e5842f90d172ef7089d2cb0a5a28
5 months ago
Richard Fuchs
62f5076690
MT#55283 save per-media stream_params
...
instead of the full list of stream params per monologue
Change-Id: I5fbee96bbd14525ea93b059a15f2199108b30bf1
5 months ago
Richard Fuchs
cdba96c09d
MT#55283 switch subscriptions to intrusive list
...
Change-Id: I4b8839e4d23742f082cb02d4db239d2604d5585e
5 months ago
Denys Pozniak
1542f8f549
MT#55283 Add no-tls-id flag to disable a=tls-id SDP attribute generation
...
Closes #2064
Change-Id: I9f133777ab8c6078e182f20c702fe77be9c5ec8d
5 months ago
Richard Fuchs
fe06c5c1ef
MT#55283 track usage of rtpp-flags parsing
...
Change-Id: I1db41e06e3765d4af382b42f976118f88962f503
5 months ago
Richard Fuchs
b1ac55c844
MT#55283 add str_dup_dup helper function
...
Change-Id: Ieacb147e3a98b5f31a8e45fb709df73636347cc0
5 months ago
Richard Fuchs
65b94a73a9
MT#55283 return success from add_stream
...
Change-Id: I0d507432993725085671ed19f7a98e69c23c84e3
6 months ago
Richard Fuchs
d813453a56
MT#55283 avoid implicit memcpy
...
Change-Id: I282c922b7866d5c7d837205ba9f91166a00e21aa
6 months ago
Richard Fuchs
c82d9ff2e6
MT#55283 update return type
...
Change-Id: Ia4fc6e186a9cb0ca6cee9ecd53118362233b1f09
6 months ago
Richard Fuchs
8b4219f739
MT#55283 introduce stream_fd lock
...
Required to avoid races over the "kernelized" flag
Change-Id: I316cc82d57a51e8778be4562a46a262804a7197f
6 months ago
Richard Fuchs
645b5e1319
MT#55283 return flexible error strings
...
Change-Id: I0d6dee21901f85be1bfffaabe9c94e66073b99ba
7 months ago
Richard Fuchs
b9d1509244
MT#55283 rename module
...
Change-Id: I81f5370655af00d3a99593eb17cb1d62d961370c
7 months ago
Richard Fuchs
b324647699
MT#55283 create and delete native nftables rule
...
Adds option to fall back to legacy XT target.
Change-Id: Ieda628313d42159df9a6e6281a50d4b289ab8a0c
7 months ago
Matteo Brancaleoni
e9fd1f89e3
MT#55283 Add inbound-peer, outbound-peer and peer flags for automatic interface selection
...
Introduce three new NG protocol flags that automatically select the matching
configured rtpengine interface based on the system's routing table:
- inbound-peer=<ip>: resolves to interface for inbound (from) direction
- outbound-peer=<ip>: resolves to interface for outbound (to) direction
- peer=<ip> resolves to interface when only one interface is required
When these flags are used, the system:
- Uses a temporary UDP socket to determine the local address assigned by routing
- Finds the first configured rtpengine interface matching that local address
- Uses that interface for the media stream
This allows dynamic interface selection based on network topology without
requiring explicit interface names in the signaling.
Closes #2033
Change-Id: I211806b9cef9d028fdb689d90ea3fe627bdf5d0d
7 months ago
Richard Fuchs
d279b14a99
MT#55283 export poller thread stats
...
Change-Id: I5b8b2e6c791d27a1d29e982c72005aff38e7cd6d
7 months ago
Harsh Daga
d45a29e3cd
MT#55283 adaptive jitter buffer
...
closes #2018
Change-Id: I94d4eb08e96fe33e149a03a647c6b13c814d7469
8 months ago
Richard Fuchs
15682312b7
MT#55283 convert extmap to iqueue
...
Change-Id: Ib2cd22fe5e004fadd30d44d91fd9ad344e4b9b74
8 months ago
Richard Fuchs
f68e614709
MT#55283 convert slp to iqueue
...
Change-Id: I7afc869810917f05a08d0147b225d3162720e430
8 months ago
Richard Fuchs
ef8967dafe
MT#55283 convert packets_out to iqueue
...
Change-Id: Iff72ab45cd3d4f6579180b5ed121a1779ee8285b
8 months ago
Richard Fuchs
914f6dfa1a
MT#55283 use intrusive list
...
Change-Id: I53c561dcc781f5cbd367ccb0df7b6900241f5e24
8 months ago
Richard Fuchs
4f5d013640
MT#55283 introduce socket use counter
...
Change-Id: I2468f4faedd195c9ea52d6ee6c99eabf37b7e73e
8 months ago
Richard Fuchs
1fdf5cf2ea
MT#55283 add TCP keepalives for Redis connections
...
Change-Id: Id16f7f0f547f45cbef95bc98ede67a30f01cf3b9
8 months ago
Richard Fuchs
6b785e77a2
MT#55283 make arg non null
...
Change-Id: Ia30ab70c0a520b6469146bdb60fcd112f56673b3
8 months ago
Richard Fuchs
37813ddf86
MT#63317 rework port opening mechanics
...
Instead of opening local sockets directly during call setup, just create
the appropriate objects first, and then open the actual sockets in a
second step.
Move the opening step down, after the bundle logic has run. This way we
can avoid opening sockets that aren't needed.
Removes an intermediate step of obtaining consecutive ports.
Change-Id: Ib94c871ed6b3a433872afd23cb1aebbd9910b33e
9 months ago
Richard Fuchs
0ea27e9193
MT#63317 split apart ICE startup
...
Gather candidates in one step, and create candidate pairings against
local sockets in a second step.
Change-Id: I85bba7fe95af14d7f77a14d5baad4ea072a83bd3
9 months ago
Richard Fuchs
0ebc75d229
MT#63317 rework endpoint_map hunting
...
Store the current (last) used endpoint map in the media object. This can
then be directly used when port latching is requested.
Remove and close sockets from endpoint map if fewer ports are needed.
Change-Id: I58aab82f82ecc3b0a7fc7a781394c8d77e715ecf
9 months ago
Richard Fuchs
ec61501298
MT#63317 amend WebRTC flag with BUNDLE option
...
Change-Id: I01eaa8a9e23a72e98be70091706ef367285ae08d
9 months ago
Richard Fuchs
a3f5246bdb
MT#63317 separate ICE init from ICE start
...
Change-Id: Idf600bce7306b2e0f808b14c3b853fb93fd05d4a
9 months ago
Richard Fuchs
e1cfefc07e
MT#55283 disable kernel RTCP FW if filtering
...
Change-Id: I9488b444d413d227153b2e73a3efe2facce98d26
10 months ago
Richard Fuchs
4aa3641cad
MT#63317 avoid mismatched extmap IDs
...
Change-Id: I7489ebaf9dbcb4ebb0c0bf469872433c25a0acb4
10 months ago
Richard Fuchs
429c7b5c71
MT#63317 support bundle offer
...
Change-Id: Ibb271535c38654c4fa4d52026d6a4ce41535e3cb
10 months ago
Richard Fuchs
44deb79faa
MT#63317 remove unused hash table
...
Not needed as it turns out
Change-Id: I5236d32b6a0a6c0d51e3e0e9445dd5efeca73536
10 months ago
Richard Fuchs
4c78949654
MT#63317 associate SSRC with media
...
Change-Id: I0fba8f0a2c98c4b80b1688c85768efdf4410abe8
10 months ago
Richard Fuchs
cc48a89c41
MT#63317 set correct output media w bundle
...
Change-Id: I8e4e2514a6f779d9fcedfe1593b228d336cf5c2a
10 months ago
Richard Fuchs
3b0496979a
MT#63317 extmap parsing in kernel
...
Change-Id: I2d4b0f0ba08d0dd793bd4e9716731dfe96ee155a
10 months ago
Richard Fuchs
7ce5b7660e
MT#63317 typedef for kernelize_state
...
Change-Id: I1b712ccc049b13bc6e1aef41ef2cd13dafddc99d
10 months ago
Richard Fuchs
8cf038e4fa
MT#63317 rework kernel output grouping
...
Change-Id: I3e798e5f1e5ae2f4af247819e3d323cdbf56b36b
10 months ago
Richard Fuchs
78f9c0147a
MT#63317 generalise functions
...
Change-Id: I4ed802c755b6faab0fcba311b7b1fe617e2dd669
10 months ago
Richard Fuchs
12f69abbc3
MT#63317 share ports/sockets among bundle groups
...
Change-Id: I951f3690e7b795fdc08f0e37a1efb48a1a2630ca
10 months ago
Richard Fuchs
871c4c0579
MT#63317 support BUNDLE flags
...
Change-Id: Iddc7f5b8394cdd2c2543775163f8867a1d88b14a
10 months ago
Richard Fuchs
3ef034a675
MT#63317 track extensions by known ID
...
Change-Id: I17f20bc8be60d779d1a3d18616bb518062f74e6b
10 months ago
Richard Fuchs
774834d0c7
MT#63317 set media from RTP ext
...
Change-Id: Id71e219a57decd409f4e8a7620c9809c9b577ae7
10 months ago
Richard Fuchs
bc779d0913
MT#63317 PT tracking
...
Change-Id: Ic354f62cef4cb37e3d65648a2f953cf9995e60b2
10 months ago
Richard Fuchs
1f91ce4c37
MT#63317 support bundle groups
...
Change-Id: Iff961283f77986c6df7147149e058286fbc91ca6
10 months ago
Richard Fuchs
16780ac17d
MT#63317 support multiple a=group attrs
...
Change-Id: Icb2c00e1ca46fafbc8862fe6b9cf2aae4a62fbfa
10 months ago
Richard Fuchs
5853dcb41b
MT#63317 move confirmed/kernel flags to stream_fd
...
The key for an in-kernel stream is a local port, so it is really the
socket (port) that gets pushed into the kernel, not the packet_stream.
Similar to the "confirmed" state, as we expect each socket to only have
one peer address/port.
Change-Id: I34fef771cd8b01701196ffb77e17fcd229c86550
10 months ago
Richard Fuchs
de6e8e3763
MT#55283 use embedded array
...
Change-Id: I85330fb38b041d83a93e3c329cc3fc592290fdf3
10 months ago
Richard Fuchs
61103a2ac5
MT#63317 remove unused struct member
...
Change-Id: I2e0fa7ad49e8e0280bc2c7b1b305fcc7d6c8c5e8
10 months ago
Richard Fuchs
1b05cb043e
MT#63317 support ext filter in kernel
...
Change-Id: Ic98dde266c7707dd3350d651032d989511ee3bee
10 months ago
Richard Fuchs
ab8c7a82cb
MT#63317 support sending mixed rtpext
...
Change-Id: Ic504cfd9dea09eeccfc07e524aad14f87ca72692
10 months ago
Richard Fuchs
a87889b35a
MT#63317 initial support for allow-mixed
...
Adapt affected tests
Change-Id: I2a5dc1249a9a7dbab20b6022e20572a36d9520a9
10 months ago
Richard Fuchs
f934f7737d
MT#63317 support long form extension printing
...
Change-Id: Ib1f1d51dcf6ac0c74fdeb92311bd04d72bf7e7c2
10 months ago
Richard Fuchs
5c03188d5b
MT#63317 abstract extmap printing
...
Change-Id: Ia1d8622a1c5ccf358ee573fb8747f3129dc790e8
10 months ago
Richard Fuchs
57bc6b1e95
MT#63317 abstract packet copy
...
Change-Id: I0ea082a4fad138c25cd710dd82020d4f4d192485
10 months ago
Richard Fuchs
8828b176c8
MT#63317 introduce extmap_ops abstraction
...
Change-Id: Icffa6f618270d2e7c10695bf1bade00ad8a49894
10 months ago
Richard Fuchs
4fbef39425
MT#63317 add rtpext printing abstraction
...
Change-Id: I50b4bc3feef4445ccd87f4296504ec196bb8083a
10 months ago
Richard Fuchs
c216b51260
MT#63317 parse out extensions
...
Change-Id: I33965782836782790e6b0872b97818717f2b9949
10 months ago
Richard Fuchs
dba2386c60
MT#63317 support extmap-mask
...
Change-Id: Ib8ca6d4ada4a0bc1e67f5c02522eb9fe7f6ba2ce
10 months ago
Richard Fuchs
b98e14631d
MT#63317 update marker flags to bool
...
Use a struct to pass marker flags to functions
Change-Id: I05b0fe0f9f37e9ff3675f59c7cb98abda3cfe300
10 months ago
Richard Fuchs
b2721c5abc
MT#63317 update payload lengths to size_t
...
Change-Id: Ib00570198103f93416c1b639777e30755a93646c
10 months ago
Richard Fuchs
42f7e40545
MT#63317 support extmap-strip for SDP
...
Change-Id: Iaa38fa3c24d69abbfdb8f0e457d406ccf0c6d5bd
10 months ago
Richard Fuchs
3de7902087
MT#63317 add sink_handler to media_player
...
Change-Id: I78bb3d486db6df24a556b68686ecd96c6b13a3ee
10 months ago
Richard Fuchs
82f5158775
MT#63317 add sink_handler_set_generic
...
Change-Id: Ibef8d6a6b3c868c2b4f844c3bf1e095be23cae30
10 months ago
Richard Fuchs
acb0e47a1a
MT#63317 rename determine_sink_handler
...
and annotate some functions
Change-Id: I26cfe17f9bb93c1cc87b8365b3eed10fc03956f4
10 months ago
Richard Fuchs
d5c1fa418e
MT#63317 keep rtpext names in table
...
Change-Id: I9a2904ff22dc6235c2bfa8f4af5bd72f49ba37fe
10 months ago
Richard Fuchs
64d3c7646c
MT#63317 parse out RTP header extensions
...
Stub function for now.
Change-Id: I7ad2a203f42fb118e50273a57772cac4fbd1738f
10 months ago
Richard Fuchs
c525cb9e09
MT#63317 remove duplicate header parsing
...
Pass down RTP/RTCP header to crypto functions so that they don't need to
parse it out again.
Change-Id: I551ab6a668cc99c903cde8807f6f9c10fc0cf6d5
10 months ago
Richard Fuchs
35bcdd5570
MT#63317 keep extmap in tables
...
Change-Id: I540c7d325488c3015b72901ab0d9f25c3e913ea1
10 months ago
Richard Fuchs
fc9cb21d8a
MT#63317 store extmap entries in media object
...
Change-Id: Ia673ae3049f5c6ce8dd8516b5becc0a9322559d8
10 months ago
Richard Fuchs
eddff91357
MT#63317 annotate rtcp_payload
...
Change-Id: I2a08441c0c7e262d3d7a43e8fabc0a5766de7c7f
10 months ago
Richard Fuchs
6a893b1a83
MT#63317 update return type to bool
...
Change-Id: I95de33bcd2eecfcd0bb3229c7897c048f8ad1404
10 months ago
Richard Fuchs
65e591bf99
MT#63317 revamp SDP printing
...
Change-Id: I0079cc8ec59a604048a11167cd576e49fc144a6a
10 months ago
Richard Fuchs
271b3b1520
MT#55283 store sfd in fsin in dtls_connection
...
This makes it possible for the BIO callback to access these values,
instead of obtaining possibly mismatched values from packet_stream.
Restores behaviour prior to 5331506
Closes #1996
Change-Id: I74ccb82f1739ca98eb033e68df4e27619ca7e46a
10 months ago
Richard Fuchs
afdeea876a
MT#55283 more specific callback arg name
...
Change-Id: I79adcb7f5c93dabe8db53b6203f64fc7f8cb7719
10 months ago
Richard Fuchs
a7e9d52776
MT#55283 remove sp->desired_family
...
doesn't really belong there
Change-Id: Ia5a5be897404a5ebc34bc499d08c14323229cb14
11 months ago
Richard Fuchs
cec0afa25e
MT#55283 clean up RTCP send locking
...
Fixes regression from Ib4285e7aae
RTCP multiplexing requires the RTCP sender to maybe lock the same output
stream, maybe lock some other one. Allow for both.
Change-Id: I6fcef32e656f8f0de46ad777f11a19c259ce35c7
11 months ago
Richard Fuchs
e03f814855
MT#55283 combine in/out_lock
...
With selected_sfd being protected by in_lock, we pretty much have to
hold at least in_lock everywhere, and end up requiring both locks in
many places. The distinction has become pointless.
Change-Id: Ic0ad976c2d68d9639b9434da7f0e6e9c0d84c185
11 months ago
Richard Fuchs
b6bd9804a0
MT#55283 upgrade xmlrpc_callback to string
...
Simply take the xmlrpc-callback address as string and don't try to parse
it out. Store it in the call object as string as well.
Obsolete `created_from_addr`. The string form `created_from` is all we
need.
Change `created_from` to `str` as well.
Change-Id: Ib67b57b1d2d474d7b033f56ef8be59f71e44641b
11 months ago
Richard Fuchs
6a72ce30db
MT#55283 move Redis macros
...
These are private to redis.c
Change-Id: I19da8eec6cb5625375906d1eae047b43850dd591
11 months ago