Only increase the SRTCP index when encrypted SRTCP is actually in use.
This would be apparent when a stream is switched from RTCP to SRTCP.
Change-Id: I3a31377b89c5124035152d504e7d99f8cf1d96a1
With hf-only=0 set and cmr=1 also set, we send a blank CMR with each
packet, which forces use of HF format packets. This in turn can lead to
size collisions (e.g. mode 1 = 18 bytes, + CMR + TOC = 20 bytes, which
is the same as mode 2) which can confuse the decoder. Add the required
size collision logic.
Change-Id: Icd540cfb321b4eaf77a0ed7d08be06d8681b6214
Support is desired for Kamailio/Rtpengine traffic via UDP.
Adding homer-disable-rtcp-stats and homer-enable-ng config params to
separately control sending to Homer each traffic type. By default rtcp
is `on` when homer parameter is configured. NG is by default disabled.
closes#1802
Change-Id: Ib68fb133cffc5d8945f9b6bf60bab3e80fab9630
This has been broken for a while and nobody seems to be using it since
nobody complained. Remove it.
Change-Id: I114e7b1859ecd1982338c625f4523f372af3bbe8
This allows usage of refcounted objects using custom allocators or
static storage. Use the magic size of -1 to indicate that the internal
free function should not be called.
Change-Id: I64b7581d15c120d030c13d6cb03e8ada26f46bdf
Keep the default case for the `call_ng_flags_flags()` more
accurate, which makes it easier for reading.
Change-Id: I317656ab964503389f2c84e835dd9db69cc70c3e
Deprecate a usage of intermediate dictionary for parsing
of rtpp flags. Just use the `call_ng_main_flags()` function
directly with a given `bencode_buffer_t` buffer.
Change-Id: I0bea13b94b6e0016799dd07a50061e1367131106
Switch the rest of flags (with non-specific processing)
to direct parsing or deprecate specific parsing at all
and let it be parsed as generic one (key/val).
Deprecated for:
- `TOS`
- `to-tag`
- `call-id`
- `via-branch`
Left for:
- `from-tag` (requires directional flag setting)
- `delete-delay` (uses int bencode object, because the
`call_delete_ng()` requires it in this format)
Change-Id: I0c5cb173bae09064f8177298aef3d070132f84cf
Deprecate parsing of generic flags using `new_list_to_dict()`.
Leaving it only for `received-from` as it requires special
handling. Function signature is adopted accordingly.
The funciton itself calls the `call_ng_main_flags()` directly,
without really using intermediate bencode objects.
Change-Id: I320761a4b84da0128981f9b65e3ba69e9b4018ac
Direction parsing.
Instead of adding key/val flags to the dictionary for
further parsing later via iteration in `call_ng_main_flags()`,
just call the `call_ng_main_flags()` directly.
Change-Id: Ide137aed12a6ba416b59a307a0a11a934f78a858
Codec related flags parsing.
A bencode list for codec related flags keeping (while
parsing in `parse_rtpp_flags()` ), is removed due to no need.
Instead of adding key/val flags to the dictionary for
further parsing later via iteration in `call_ng_main_flags()`,
just call the `call_ng_codec_flags()` directly.
Change-Id: I1adcea84e9254ae35e6480d61426f1434513e779
Transport parsing.
Instead of adding key/val flags to the dictionary for
further parsing later via iteration in `call_ng_main_flags()`,
just call the `call_ng_main_flags()` directly.
Change-Id: I86a2d6855bcd94edb206c632d8288dd769e94ba8
Instead of adding key/val flags to the dictionary for
further parsing later via iteration in `call_ng_main_flags()`,
just call the `call_ng_main_flags()` directly.
Change-Id: Ia893a6b50db7a0659a42c09463169f2c0f5e595e
These don't actually do anything right now as these function don't do an
early return, but having these in place will make things more future
proof.
Change-Id: I05b82a4366847e0eff1d1392885cf086516df053
NFTNL_EXPR_TG_INFO actually expects the info data to be heap allocated
via malloc(), as it will free() it when the expression is freed via
nftnl_expr_free().
No symbol table info available.
No symbol table info available.
No symbol table info available.
No locals.
No locals.
r = 0x55e087c75130
err = <optimized out>
err = <optimized out>
args=args@entry=0x7ffc80943460) at ./nftables.c:593
err = <optimized out>
nl = 0x55e087c4add0
seq = 1711621092
err = 0x0
nl = <optimized out>
seq = <optimized out>
err = <optimized out>
No locals.
Log:
rtpengine[269176]: INFO: [crypto] Generating new DTLS certificate
rtpengine[269176]: DEBUG: [crypto] Using EC-prime256v1 key for DTLS certificate
rtpengine[269176]: free(): invalid pointer
rtpengine[269792]: INFO: [crypto] Generating new DTLS certificate
rtpengine[269792]: DEBUG: [crypto] Using EC-prime256v1 key for DTLS certificate
rtpengine[269792]: free(): invalid pointer
rtpengine[270372]: INFO: [crypto] Generating new DTLS certificate
rtpengine[270372]: DEBUG: [crypto] Using EC-prime256v1 key for DTLS certificate
rtpengine[270372]: free(): invalid pointer
rtpengine[2487]: INFO: [crypto] Generating new DTLS certificate
rtpengine[2487]: DEBUG: [crypto] Using EC-prime256v1 key for DTLS certificate
rtpengine[2487]: free(): invalid pointer
Change-Id: Id67a4bb4cd3627d7ea6aed1b9f7d73b80ed676c8
Since the generic flags parsing is done (from now on) directly
in the `parse_rtpp_flags()`, there is no need to keep a separate
bencode list object to store them, which was originally intended
to be used later for parsing in `call_ng_flags_flags()`,
but not the case anymore.
Change-Id: I7898e29cabecfd6e8429c064d7b5904d94c50513
Introduced by d7b8ebbc68
*** CID 1584501: Control flow issues (MISSING_BREAK)
/daemon/call_interfaces.c: 1825 in call_ng_main_flags()
1819 call_ng_flags_str_list(out, value, call_ng_flags_replace, NULL);
1820 break;
1821 case CSH_LOOKUP("rtcp-mux"):
1822 case CSH_LOOKUP("RTCP-mux"):
1823 call_ng_flags_str_list(out, value, call_ng_flags_rtcp_mux, NULL);
1824 break;
>>> CID 1584501: Control flow issues (MISSING_BREAK)
>>> The case for value "324" is not terminated by a "break" statement.
1825 case CSH_LOOKUP("rtpp-flags"):;
1826 case CSH_LOOKUP("rtpp_flags"):;
1827 /* new dictionary to store rtpp_flags */
1828 bencode_item_t * dict;
1829 dict = bencode_dictionary(value->buffer);
1830 assert(dict != NULL);
Change-Id: Iaa1d9b3bd31d32e48451c3a47f8e99fa3c755e63
having injected events on the recv list can cause out of order TS
values which results in is_in_dtmf incorrectly returning NULL and
letting the transcoded PCM frames through.
It also doesn't make sense to add DTMF to the send list unless they're
actually being sent, so injected delayed or unblocked
Change-Id: I07e2a35e27142715a5257f199326b7a3d133e2a8
now that the returned last_event_ts is always that of the previous
DTMF, we can ensure that the next one isn't transmitted until that
time plus the required pause.
Like the num_samples calculation, the actual time needs to be
increased by 1 packets worth of samples so tha pause lasts the
full duration required
Change-Id: I6da1dd7cbcf49f7f0431a5123df2cdc382fe3dba
this function is used to determine if a pause is needed on a new
injected DTMF's start ts to ensure a gap between the events. However,
if an inject request comes in after the end of the previous event
but before it would have been offset due to pause, no pause is added
This change returns the ts value from dtmf_state if the queue is
empty as that will always be the ts of the last DTMF transmitted
Change-Id: I4f3cf5115d1a8e26c0ca1bc9570c46e29391e0d0