Richard Fuchs
bdd66fe730
MT#55283 move JsonParser into ngbuf
...
Use ngbuf's free function to destroy the JSON parser instead of the
callback for the bencode_buffer object.
Change-Id: I7eccf7284f55b34ef1a4800017ea1a4519f42bbc
1 year ago
Richard Fuchs
b1a0aebab5
MT#55283 add abstract .dict_add_str_dup
...
Change-Id: I8b5e34379e49819f5050e3460e4398706fe20749
1 year ago
Richard Fuchs
8f6b8b206b
MT#55283 add abstract dict_add/list/list_add
...
Change-Id: Id0cfcfa1504135473b7e4d355bfe5e28d089a6d1
1 year ago
Richard Fuchs
2f82805f1d
MT#55283 add abstract .dict_add_int()
...
Change-Id: If3f84b11d6c0399b6d9c916f3956877af9ec22d0
1 year ago
Richard Fuchs
271c646d8d
MT#55283 add abstract .list_add_string()
...
Change-Id: I487a5c535fc5ccd0b409a6abbcf6ba05b1e63f49
1 year ago
Richard Fuchs
a1e01c6025
MT#55283 add abstract .list_add_dict()
...
Change-Id: I4dfc8c5a52ad9a8df3683788297d73cff0504fd4
1 year ago
Richard Fuchs
5ccdb6c804
MT#55283 add abstract .dict_add_list()
...
Change-Id: I6e4530701c760101fd4a07c220d7bf85119cf876
1 year ago
Richard Fuchs
af3459b85e
MT#55283 add abstract .dict_add_dict()
...
Change-Id: Ie942d6a43e070edc08cb4124d19f8ce54a164351
1 year ago
Richard Fuchs
24fbb4d8c0
MT#55283 add abstract .dict_add_str()
...
Change-Id: I996f92c81366741aa0207a74c825a3033db59d22
1 year ago
Richard Fuchs
dc19d892cd
MT#55283 add abstract .dict_add_string()
...
Change-Id: I33eb89241eaa8b29e2ea128bb5c9d34bc25be0e9
1 year ago
Richard Fuchs
a2c89d64df
MT#55283 add abstract dict_get_str()
...
Change-Id: Ibb453a18913803042ee0074cbfd5d4c19c30418b
1 year ago
Richard Fuchs
cc43740ce0
MT#55283 add abstract dict() method
...
Change-Id: I305f1fc3e4cab7961ca4d38c35fb8359c3a63856
1 year ago
Richard Fuchs
5f78fbfa02
MT#55283 refactor ng_sdp_attr_manipulations
...
using the new abstract dictionary/list iteration methods
Change-Id: I1b47fedb5a9fb05c207aa142879109cc8c903383
1 year ago
Richard Fuchs
425a3332b9
MT#55283 add bool return to dict_iter
...
to indicate success
Change-Id: Iaeaa41262a60d039b1e2d4b7ad2d30bb6c565c13
1 year ago
Richard Fuchs
2f367bf84a
MT#55283 add helper_arg to dict_iter
...
Change-Id: I0344a74c1d653a42b524612149857845b9815952
1 year ago
Richard Fuchs
ad1e051cb3
MT#55283 add get_int() method
...
Change-Id: I407783faac30bc911dafb7e69a73f0c52701cce5
1 year ago
Richard Fuchs
b826dbddd6
MT#55283 use list iterator for direction=
...
Change-Id: I797f1f7926eb177ff2d6ab3659415b91ead2d95f
1 year ago
Richard Fuchs
d007d9733a
MT#55283 add is_int() method
...
Change-Id: Ibcb1d1be415e85967eb5f3f87b91d79fa78eb4bb
1 year ago
Richard Fuchs
f50d5e7482
MT#55283 add list iteration method
...
Change-Id: Ib533a9faa942a12006271ec95dabe7e3cbdc0b9d
1 year ago
Richard Fuchs
a91bfc34e3
MT#55283 add abstract string/int parsing methods
...
Change-Id: I8acf3c1540a68ec2244a4a7768832855fed7937b
1 year ago
Richard Fuchs
f0eee2a75e
MT#55283 add abstract dictionary iterator
...
Change-Id: Ic41b41e533ffddda5c37ad5ea6155faa0100cada
1 year ago
Richard Fuchs
3f8f182119
MT#55283 introduce abstract parsing framework
...
Change-Id: I63ba6fc7e6278e989e87a3abdb66976084b403bc
1 year ago
Lucian Balaceanu
7905811c53
MT#55283 Adding support for NG trace to Homer
...
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
2 years ago
Richard Fuchs
72b388a7ce
MT#59038 add support for "plain" NG protocols
...
For convenience we provide extra HTTP and WS endpoints that accept a
cookie-less NG or JSON message string. Not all commands are sensitive to
retransmits and this makes it easier to query call status etc.
Change-Id: Iffbc4ef9a5fdf916a374dfdd4042c61b437d18c9
2 years ago
Richard Fuchs
c6a5b53912
MT#55283 use escaped command strings for Graphite
...
Graphite isn't able to deal with spaces in the metric names delivered to
it. Introduce special version of the command strings with spaces
replaced by underscores.
closes #1780
Change-Id: Ie8bcec5ca4f2d427e92901f6fa76b985df6e459e
2 years ago
Richard Fuchs
57a80b4513
MT#55283 use g_auto for ng_buffer
...
Change-Id: Ic79f4380dcb7cbf23b35ca1bfec70c1986ac4477
2 years ago
Richard Fuchs
575d86816f
MT#55283 turn ng_buffer into typedef
...
Change-Id: I278cb1b81d9c23074cf159901668221f52d239dd
2 years ago
Richard Fuchs
8684a1933a
MT#57977 use symmetric UDP
...
UDP packets sent in response to a UDP request should have the same
source address as the request's destination address.
This can be achieved with sockets bound to a specific address, but in
the case of ANY-bound sockets, we can use the PKTINFO mechanism to do
this.
Extend control_ng_process() to accept an extra socket address
corresponding to the local address to use. Extend the signature of the
callback function (to do the actual sending) accordingly.
Extend socket_sendiov() to be able to set the PKTINFO cmsg when sending
a packet.
Add socket_sendto_from() as a convenience wrapper.
Extend control_udp_incoming() to pass the address from
udp_buf->local_addr back to socket_sendiov().
Change-Id: Idd019fdcfd796098e7807427e6686d4b05de35d1
2 years ago
Richard Fuchs
267f965098
MT#55283 unify constructor signatures
...
All functions that create listener objects take a read-only endpoint, so
make them as const.
Remove the extra TOS argument to make all signatures the same.
Change-Id: I722c7665b192476d90dbf0ece200d0bfd34cb9eb
2 years ago
Richard Fuchs
73489fc556
MT#56374 obsolete non-global pollers
...
We have long switched to having a single primary global poller, so
there's no point in passing the poller pointer around and storing it in
associated objects. Remove all remnants of non-global pollers.
Change-Id: I5a3fd217d5de51e839e2b04fec7e23643ee83631
2 years ago
Richard Fuchs
066ecf0901
MT#56447 add ng_buffer_auto_release
...
Auto-cleanup wrapper for struct ng_buffer
Change-Id: I4aab4efb9b10d6380b0ef9f3f854130cee03d792
3 years ago
Richard Fuchs
a67aed73cd
MT#56447 add ng_buffer_new
...
Change-Id: I3650e847813964fde75d10790864eb2e6c4c265b
3 years ago
Richard Fuchs
b38131414a
MT#56447 remove pointless lock
...
This doesn't do anything at all
Change-Id: I4b71debe67c589034c832944c4888bbba4a8d809
3 years ago
Richard Fuchs
87ea144935
MT#56469 add pause_recording method
...
Change-Id: Iaffb2120be0ad4b7241913aacd7e7e68c9e666d2
3 years ago
Richard Fuchs
12f23b311c
TT#157801 shift handling of v4/v6 addresses
...
Handling of dual stack v4/v6 was previously done by the individual
listener objects for INADDR_ANY listening addresses. If listening on
INADDR_ANY was requested, then each listener would create two instances,
one for IPv4 and one for IPv6. This works fine for INADDR_ANY but fails
for listening on host names that resolve to multiple addresses, such as
`localhost`.
Solve this by relieving the listener objects from handling this and
instead handle it in the code setting up the listeners. If a host name
resolves to multiple addresses, then set up multiple listeners (up to
two supported currently). This allows us to listen on `localhost` by
default and have both 127.0.0.1 and ::1 active. INADDR_ANY is handled
specially by also setting up :: in that case.
Change-Id: I2a1e1d7090d7d23863c7a9bb1e89b85ad2ea44f4
4 years ago
Richard Fuchs
6563a5ac6f
TT#101150 move some header includes/defs around
...
Change-Id: I2507b1bb22d4ba10f632fe2fa794fde975734f99
4 years ago
Richard Fuchs
d4102280b2
TT#101150 obsolete struct request_time stats
...
Change-Id: Icf3e0648a0ba821bc66c6dd0e8f5ebc30576fb70
4 years ago
Richard Fuchs
30d91ecc63
TT#101150 add test script for stats output
...
Change-Id: I13cc172b082e78c3d52032bd72e0a2f5158c71ed
4 years ago
Richard Fuchs
f04332915b
TT#91151 add publish/subscribe commands
...
Change-Id: I1842b89efea7fa3af0bd4d045e49da31285cd0e1
4 years ago
Richard Fuchs
413798e43f
TT#132251 implement media silencing
...
Change-Id: I0902bd72e2733b96ff75bcf52856a58c51a750f6
4 years ago
Damir Nedžibović
2fc54462de
TT#14008 Squashed commit of the following:
...
closes #1180
commit 023f6cbc9e0b595d1d02116d38d39358fbb9ee49
Merge: ae82034d 86e287d1
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Mon Feb 1 11:16:04 2021 -0500
Merge branch 'control_ng_tcp' of https://github.com/enreached/rtpengine into enreached-control_ng_tcp
Change-Id: I628dcfd30e901dbee97b00bee0b6bba0cb29826f
commit 86e287d117
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Mon Feb 1 16:38:53 2021 +0100
Update the readme file.
commit 35f5d9e151
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Mon Feb 1 16:20:09 2021 +0100
Update docs.
commit 336deb4c67
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Mon Feb 1 14:28:07 2021 +0100
Replace hex values with chars.
commit 37c86a8fa0
Merge: 17a10b96 5cd53ef1
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Mon Feb 1 13:51:06 2021 +0100
Merge branch 'control_ng_tcp' of github.com:enreached/rtpengine into control_ng_tcp
commit 17a10b96ad
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Thu Jan 28 18:09:10 2021 +0100
Add missing include.
commit adfddefae3
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Thu Jan 28 18:05:44 2021 +0100
Implementation of control-ng via TCP.
commit 5cd53ef1c9
Merge: 1bd3a8fc b28ab075
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Mon Feb 1 13:49:50 2021 +0100
Merge branch 'control_ng_tcp' of github.com:enreached/rtpengine into control_ng_tcp
commit 1bd3a8fc6d
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Fri Jan 29 10:20:02 2021 -0500
TT#14008 fix AEAD kernel API for < 4.2
Untested whether it actually works
closes #1176
Change-Id: If6398632ac62525a673b844cfb4ce842a8aa0346
commit 71a222d7a8
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Fri Jan 29 13:07:25 2021 -0500
TT#14008 improve log output for stray packets
Change-Id: Ic4b03928b279aade761de3ba1646b5c27318e6a3
commit b28ab07532
Merge: 813a4f1c 6e4373af
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Fri Jan 29 09:21:31 2021 +0100
Merge branch 'control_ng_tcp' of github.com:enreached/rtpengine into control_ng_tcp
commit 813a4f1caa
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Thu Jan 28 18:09:10 2021 +0100
Add missing include.
commit 0c87a19c55
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Thu Jan 28 18:05:44 2021 +0100
Implementation of control-ng via TCP.
commit 6e4373affb
Merge: fbf74bfe 7799f23a
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Fri Jan 29 09:19:46 2021 +0100
Merge branch 'control_ng_tcp' of github.com:enreached/rtpengine into control_ng_tcp
commit fbf74bfe2d
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Wed Jan 27 10:18:14 2021 -0500
TT#14008 fix possible segfault
closes #1172
Change-Id: I94bb52c290c2032073e54528283660f03e694033
commit 1a5bcc0905
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Thu Jan 28 14:49:43 2021 -0500
TT#109251 fix redis restore segfault
Change-Id: I501a47b065e7b8ff28a3ac157c0ce567f228557f
commit b38b49fd60
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Thu Jan 28 13:44:44 2021 -0500
TT#102450 added tests for Ia9fa96cf
Change-Id: Ic9728e12a012335c30c5640ac0b5c88e39ad24ed
commit f33877bfe3
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Thu Jan 28 13:43:46 2021 -0500
TT#102450 fix some timestamping issues
Make sure G.722 rate multiplies is applied in the right places
Don't trust encoders to return proper timestamps, but instead track them
explicitly based on frame duration
Change-Id: Ia9fa96cf662da97159fa170c3a3f37516889e1bd
commit 39a25b954d
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Thu Jan 28 14:07:53 2021 -0500
TT#106101 mem leak fix for 554034eb7e
Change-Id: I9c410211580d8513a203a29f898970a78175d08b
commit 11d11aed90
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Thu Jan 28 13:41:28 2021 -0500
TT#14008 clean up some tests
Looks like packet order can be an issue in some cases
Change-Id: Ib8fb8c553c9d0f2919b24dda1e15e5a23832c619
commit 7799f23aa5
Merge: ba7ee9d6 e191e16c
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Fri Jan 29 09:18:24 2021 +0100
Merge branch 'master' of https://github.com/sipwise/rtpengine into control_ng_tcp
commit ba7ee9d6b1
Merge: f805d881 ffe187f1
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Thu Jan 28 18:15:58 2021 +0100
Merge branch 'control_ng_tcp' of github.com:enreached/rtpengine into control_ng_tcp
commit f805d881fa
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Thu Jan 28 18:09:10 2021 +0100
Add missing include.
commit c548a3ca4b
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Thu Jan 28 18:05:44 2021 +0100
Implementation of control-ng via TCP.
commit ffe187f116
Author: Damir Nedžibović <damir.nedzibovic@bad-team.net>
Date: Thu Jan 28 18:05:44 2021 +0100
Implementation of control-ng via TCP.
Change-Id: I2acf208fcff1fa9aa790c31f1097ad9b4b7c3238
5 years ago
Richard Fuchs
554034eb7e
TT#106101 also turn UDP/WS receive buffer into refcounted object
...
Change-Id: I81fa68b07af3a87e26d031a5722dcd103a1e620e
5 years ago
Richard Fuchs
28e0620c80
TT#106101 turn bencode buffer into shared refcounted object
...
Change-Id: I6d8e443d8b0fc7e9afe0a6f6b3cde3d1a85e42de
5 years ago
Richard Fuchs
5d895fb7be
TT#82405 add Prometheus stats exporter
...
Change-Id: Ic55b42a707e430a61c0422c65827ed2145511586
5 years ago
Richard Fuchs
e662b596f8
TT#91150 abstractise NG protocol handling
...
Change-Id: If00eede6803d9618c32dccbdcf82f5e41b64b2bf
5 years ago
Richard Fuchs
32d43fed4d
TT#91150 move to a global NG cookie cache
...
Change-Id: I8aa5275ffb4d53bb959acd6a8329e5a31f099000
5 years ago
Richard Fuchs
1589c29e28
TT#28300 add cleanup of poller related data
...
Change-Id: I64a38869ce3120d066fc818e3c76941a1c8186b7
6 years ago
Richard Fuchs
cdcf80c2c1
TT#82401 add statistics NG command
...
closes #992
Change-Id: I73284b8da6bc64c6e801f47cf6e00e52235b65ba
6 years ago
Richard Fuchs
b14f3b2b1c
TT#64259 support injecting DTMF tones and events
...
Change-Id: I07aa7690146db5b41be479a67aaafbd66aec4033
6 years ago
Richard Fuchs
7f5e16d3da
TT#50652 add stop_media call
...
Change-Id: I1b18a41d4b97ccbb83499873e50a797f846a8602
7 years ago