Orgad Shaneh
2d5565738f
MT#55283 add timestamp markers to recording metadata for pause/resume events
Write human-readable timestamp markers to the metadata file whenever
recording is paused or resumed via control protocol commands.
Include ISO-format timestamps with millisecond precision that aid in
tracking changes in recording state.
Example metadata output:
Recording paused at: 2025-07-29T15:30:45 (1234567.890 ms)
Recording resumed at: 2025-07-29T15:31:20 (1234598.123 ms)
🤖 Generated with [Claude Code](https://claude.ai/code )
Closes #1982
Change-Id: Id92c14900a29f53ba0ee00b3d0f53132bb11cff7
Co-Authored-By: Claude <noreply@anthropic.com>
5 months ago
Orgad Shaneh
fa7b4667d0
MT#55283 respect pause recording command
The command was accepted, but recording continued as usual.
Closes #1981
Change-Id: I994a9ebf75bc2d0d0ce5c601c29843c4bc0e9d0d
5 months ago
wangduanduan
ec6d07d7c5
MT#55283 dtls: add handshake type log
closes #1980
Change-Id: I4336ab567eaad77f6db9f9e32969808880d16494
5 months ago
Richard Fuchs
16ab6ffa1f
MT#55283 extend test
Change-Id: I12d02233cb0190578be865d22a7f7afee52f0c5d
5 months ago
Richard Fuchs
a9d48c0b48
MT#55283 update codec getter for jitter buffer
closes #1978
Change-Id: Id7e7e0aba9020f212b275cef028526bf0403246a
5 months ago
Richard Fuchs
8f92c6e5c2
MT#55283 update test
Change-Id: I2e06f2338cb7d1f9f32d2497bdf01b1be3048714
5 months ago
Richard Fuchs
ab48284de5
MT#55283 allow null logical_intf
closes #1977
Change-Id: Ib8bd32d24cc4c72a8fe7c6133bbfddc76666e6df
5 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
5 months ago
Richard Fuchs
7fbc61253d
MT#55283 add keyspace notification test
Change-Id: I39afe810d2f269550c565197c7ea824d287ecd25
5 months ago
Richard Fuchs
052f16da56
MT#55283 allow allocation of out-of-pool ports
Different instances of rtpengine may be configured with different port
ranges. If HA requests usage of a port not part of our pool, allow it.
Change-Id: Ib4ace6c4facac35ea44948720fa46bcbdaf441d3
5 months ago
Richard Fuchs
6a72ce30db
MT#55283 move Redis macros
These are private to redis.c
Change-Id: I19da8eec6cb5625375906d1eae047b43850dd591
5 months ago
Richard Fuchs
116fc223d3
MT#55283 move subscribe-keyspace option
Put it together with the other Redis options for consistency.
Change-Id: Ic83da4f14717a302be94f23e45fa0a4bab9b986d
5 months ago
Richard Fuchs
98a78a335e
MT#55283 update condition to test for socket
Change-Id: I0075eea1bbcb43dda86a38d5e328a5b2ec503653
5 months ago
Richard Fuchs
589bf0b22d
MT#55283 split up reserve_port
Use different function to get a port from a pool and return it, and
reserve a port in a pool permanently during startup.
Change-Id: I030dc2ebbe30c9b47252669717f235177f15219d
5 months ago
Richard Fuchs
215500bf4a
MT#55283 add port_is_in_range helper
Change-Id: I65ff5f7efdb67ce4db447d3c4cfdc4ccd3613143
5 months ago
Richard Fuchs
3118b1e258
MT#55283 update function to bool
Change-Id: I290fc3b803db4ac0b5d95ef9609c158dff303af5
5 months ago
Richard Fuchs
8f13d83d2b
MT#55283 fix num_ports not being set
Change-Id: I98b11a011063ae334118d977adc7b06fb9bff9c3
5 months ago
Richard Fuchs
ffc539c0d8
MT#55283 locking updates
Protect selected_sfd with in_lock.
Protect RTCP sending with in_lock and out_lock as appropriate.
Has the odd side effect of RTCP reports expected in tests to be sent one
packet later than before.
Closes #1966
Probably fixes #1927
Change-Id: I225b43dff8e8fbb938d3be6aad50249997615d77
5 months ago
Richard Fuchs
1b077c300a
MT#55283 use auto lock in a few more places
Change-Id: Ibf34fa6e8cdcbf122e548475ba086101a6757a66
5 months ago
Richard Fuchs
7ac4c3eb1d
MT#55283 whitespace fixes
Change-Id: Iebf2e20d6cbb6633904111af4a9958e2ecaba34d
5 months ago
wangduanduan
16ccd39a2e
MT#55283 log: dtls log add src ip
closes #1975
Change-Id: Iff8ee0231be3d411249448582806cb8cf0e1ac86
5 months ago
Richard Fuchs
799830902e
MT#55283 ignore G.729 fmtp
closes #1971
Change-Id: Ide2577b76de1f26844a9c73e169bcad96ee2a90e
5 months ago
Richard Fuchs
9c83de9ce6
MT#55283 update format_parse to bool
Change-Id: If0f8740afa5f159e1649db023a2c340093f3d145
5 months ago
Richard Fuchs
e2e5e22d04
MT#55283 add tests for Ib118cd2ce/Ib36b36bb
Change-Id: I5e45e473ea1d747d54477fb12f0d8fb7f4133c6f
5 months ago
Richard Fuchs
daa769fea5
MT#55283 distinguish player cache ptimes
Add the ptime into the hash function so that cached player using
different ptimes use distinct entries.
Closes #1963
Change-Id: Ib118cd2ce14525d524a2d63c0506af8ae8ae929f
5 months ago
Richard Fuchs
3ca99417f1
MT#55283 add ptime to logging in a few places
Change-Id: I38180c44d4afb690d7dadb3710516b16b983f600
5 months ago
Richard Fuchs
fa8123e1c2
MT#55283 explicitly return PTS/duration
... from packetizer function instead of putting it into the AVPacket.
Remove AVPacket from callback function arguments.
Fix up PTS/duration adjustments where they were missing.
Closes #1963
Change-Id: Ib36b36bb6648b0579dd83155c7217317dda29cc3
5 months ago
Richard Fuchs
7b7580dcbf
MT#55283 fix typo
Change-Id: I08ec1c2958662c7d78c659e59c6e777119e09d5a
5 months ago
Richard Fuchs
62b216646b
MT#55283 test for Ia69cbb69a82
Change-Id: Idff08b9935828e9bb1f45d1ebe76cbde0c019b18
5 months ago
Richard Fuchs
fe39a7927b
MT#55283 fix clashing PT numbers
closes #1960
Change-Id: Ia69cbb69a826141b85a65cd7487a655e047e88d2
5 months ago
wangduanduan
7b5235b4bf
MT#55283 test: add test for unknown fmtp
closes #1968
Change-Id: I71d2f7947f0495ea08d000568c40915e86d034d8
5 months ago
Aki Huolman
2abda66667
MT#55283 Add documentation for MySQL database schema
closes #1967
Change-Id: I0e839ce0dd6c2e13f6f35d1ec006d1c1e904b40e
5 months ago
Donat Zenichev
03e6b84ebc
MT#61856 recording-daemon: output.c make some of funcs static
Just because of only local usage, keep them static.
Change-Id: I0bd3badd3abb6166a7d16aab07a943d7b36594b3
5 months ago
Donat Zenichev
2fd148032c
MT#61856 recording-daemon: update const qualifiers
Don't use const in:
- output_avio_mem_write()
- output_avio_write()
`avio_alloc_context()` of avio.h lib wants buf
to be non-constant.
Also it's the only usage of locally defined funcs,
moreover:
- output_avio_write() has fwrite() that protects buf with const
- output_avio_mem_write() casts given buf to `const char*`
Fixes:
output.c: In function ‘output_config’:
output.c:405:39: warning: passing argument 6 of ‘avio_alloc_context’ from incompatible pointer type [-Wincompatible-pointer-types]
405 | NULL, output_avio_write, output_avio_seek);
| ^~~~~~~~~~~~~~~~~
| |
| int (*)(void *, const uint8_t *, int) {aka int (*)(void *, const unsigned char *, int)}
In file included from /usr/include/x86_64-linux-gnu/libavformat/avformat.h:316,
from types.h:9,
from output.h:4,
from output.c:1:
/usr/include/x86_64-linux-gnu/libavformat/avio.h:468:25: note: expected ‘int (*)(void *, uint8_t *, int)’
{aka ‘int (*)(void *, unsigned char *, int)’} but argument is of type
‘int (*)(void *, const uint8_t *, int)’ {aka ‘int (*)(void *, const unsigned char *, int)’}
468 | int (*write_packet)(void *opaque, uint8_t *buf, int buf_size),
| ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
int (*)(void *, const uint8_t *, int) {aka int (*)(void *, const unsigned char *, int)}
int (*)(void *, const uint8_t *, int)
output.c:409:39: warning: passing argument 6 of ‘avio_alloc_context’ from incompatible pointer type [-Wincompatible-pointer-types]
409 | NULL, output_avio_mem_write, output_avio_mem_seek);
| ^~~~~~~~~~~~~~~~~~~~~
| |
| int (*)(void *, const uint8_t *, int) {aka int (*)(void *, const unsigned char *, int)}
In file included from /usr/include/x86_64-linux-gnu/libavformat/avformat.h:316,
from types.h:9,
from output.h:4,
from output.c:1:
/usr/include/x86_64-linux-gnu/libavformat/avio.h:468:25: note: expected ‘int (*)(void *, uint8_t *, int)’
{aka ‘int (*)(void *, unsigned char *, int)’} but argument is of type
‘int (*)(void *, const uint8_t *, int)’ {aka ‘int (*)(void *, const unsigned char *, int)’}
468 | int (*write_packet)(void *opaque, uint8_t *buf, int buf_size),
| ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
make[2]: Leaving directory '/home/donat/git/sipwise/rtpengine/recording-daemon'
Change-Id: Ied4936fe24d55c241a3f72550e643368a014c181
5 months ago
Donat Zenichev
856ab5815c
MT#61856 parse_attribute_crypto: initialize `err` at least to something
Fixes:
../lib/loglib.h:54:17: warning: ‘err’ may be used uninitialized in this function [-Wmaybe-uninitialized]
54 | __ilog(prio, "[%s] " fmt, log_level_names[system], ##__VA_ARGS__); \
| ^~~~~~
sdp.c:613:21: note: ‘err’ was declared here
613 | const char *err;
| ^~~
sdp.c:734:9: warning: ‘err’ may be used uninitialized in this function [-Wmaybe-uninitialized]
734 | ilog(LOG_ERROR, "Failed to parse a=crypto attribute, ignoring: %s", err);
| ^
sdp.c:613:21: note: ‘err’ was declared here
613 | const char *err;
| ^
Change-Id: I18c3c1d6f2d6d5643a61ef864116e1f3d5e1db95
5 months ago
Richard Fuchs
2845bb1efa
MT#62571 streamline resampling
Move destination format information into the sink object.
Decode each codec directly to its matching output format and leave
resampling to the sinks.
Move managing of the adjusted multi-channel output format into the mix
context.
Make sure all inputs to a mix outputs use the same audio format.
Change-Id: Ib9f334443bfee26d59f2ede6e13ac80c66c1b57e
5 months ago
Richard Fuchs
ef3b1c2956
MT#62571 support mixed TLS/TCP output
Change-Id: I8f2b6372e9379d1845245f95bb69498661fbebf9
6 months ago
Richard Fuchs
549e98e3dc
MT#62571 generalise tls_fwd_new
Change-Id: Icfb9487e98bb8c4dfbb728299373327c5693330d
6 months ago
Richard Fuchs
6476b8156e
MT#62571 generic mix sink
Change-Id: Ia02ed34cd7d8ddb39b4e3c6f8c051ab92abb355f
6 months ago
Richard Fuchs
15465d0878
MT#62571 allow creation of mix after streams
Change-Id: I98a45fb7394e561010a36772e9c56395e80ca26e
5 months ago
Richard Fuchs
7dfe1e30f5
MT#62571 support sending multi channel audio
Change-Id: I8e79b7b873308f9ed2bedbe18a4f61a6e7c3ae93
5 months ago
Richard Fuchs
a14c20d04e
MT#62571 turn tls_fwd into sink
Change-Id: Ic859d0dd65156761007641ccd3f4e710d7e7fa9f
6 months ago
Richard Fuchs
aa627d78ec
MT#62571 further encapsulate tls_fwd
Change-Id: I790ac03ee4f51027d080b9152a4cae8c995e93c1
6 months ago
Richard Fuchs
5ebd94d742
MT#62571 turn tls_fwd into allocated obj
Change-Id: Ie766b483a51bca7f2677f7ccf029379302437067
6 months ago
Richard Fuchs
ad063360bd
MT#62571 encapsulate tls_fwd
Change-Id: I06b925e2eb2bbdb7a4741a93a64701f495409616
6 months ago
Richard Fuchs
06c89206c1
MT#62571 turn mix output into sink
Change-Id: I59140d641679b84ce3831ba1dcad07e38deda46f
6 months ago
Richard Fuchs
316161f6aa
MT#62571 add sink to decode_t
Unused at this point except for the resampler
Change-Id: I093d7924c0bcc42a9a5162e1f02a374ea97e1bf3
6 months ago
Richard Fuchs
293b393177
MT#62571 remove output_config from decoder_new
Change-Id: I7a15c7657bc3a3492a3e7659b9c3473bb07f5e9a
6 months ago
Richard Fuchs
fb2b6986bb
MT#62571 add sink resampling stage
Change-Id: Ifcd25ea9ed71f913e44ebb34a8fe63ae92f748f0
6 months ago
Richard Fuchs
98db2ba250
MT#62571 add sink config method
Change-Id: Ia10636ec7090b8dbe976bb8b91defde8b3a34395
6 months ago