Browse Source

TT#71950 Unify rtpengine wording

There's a mixture of RTPengine and RTPEngine, though we lowercase it
entirely most of the time, so let's stick to this and unify its style.

While at it remove the "the" article for rtpengine as well,
where applicable.

Change-Id: Idbad9313499942ad12ade2c9ce76fe3ec4cd2762
pull/1640/head
Michael Prokop 3 years ago
parent
commit
dfc705d9b0
10 changed files with 37 additions and 37 deletions
  1. +1
    -1
      README.md
  2. +1
    -1
      daemon/media_socket.c
  3. +3
    -3
      docs/architecture.md
  4. +2
    -2
      docs/conf.py
  5. +1
    -1
      docs/glossary.md
  6. +3
    -3
      docs/index.rst
  7. +8
    -8
      docs/ng_control_protocol.md
  8. +9
    -9
      docs/tests.md
  9. +8
    -8
      docs/troubleshooting.md
  10. +1
    -1
      utils/rtpengine-ctl

+ 1
- 1
README.md View File

@ -96,4 +96,4 @@ Documentation stored in the GitHub (for development):
# Contribution
Every bit matters. Join us. Make RTPEngine community stronger.
Every bit matters. Join us. Make the rtpengine community stronger.

+ 1
- 1
daemon/media_socket.c View File

@ -2404,7 +2404,7 @@ static int stream_packet(struct packet_handler_ctx *phc) {
* - sh->sink->selected_sfd->socket.local: the local source IP/port for the
* outgoing packet (same way it gets sinks from phc->sinks)
*
* If the rtpengine runs behind a NAT and local addresses are configured with
* If rtpengine runs behind a NAT and local addresses are configured with
* different advertised endpoints, the SDP would not contain the address from
* `...->socket.local.address`, but rather from `...->local_intf->advertised_address.addr`
* (of type `sockaddr_t`). The port will be the same.


+ 3
- 3
docs/architecture.md View File

@ -45,7 +45,7 @@ As for setting up the kernel's forwarding chain: It's basically the same process
`sfd->stream->selected_sfd->socket.local`: the local source IP/port for the outgoing packet
**Handling behind the NAT**:\
If the RTPengine runs behind the NAT and local addresses are configured with different advertised endpoints,\
If rtpengine runs behind the NAT and local addresses are configured with different advertised endpoints,\
the SDP would not contain the address from `...->socket.local`, but rather from `sfd->local_intf->spec->address.advertised` (of type `sockaddr_t`).\
The port will be the same.
@ -120,7 +120,7 @@ This populates the list of `rtp_sinks` and `rtcp_sinks` for each packet stream.
Flags and attributes from the `call_subscription` objects are copied into the according sink_handler object(s).\
During actual packet handling and forwarding, only the `sink_handler` objects (and the packet_stream objects they related to) are used, not the `call_subscription` objects.
Processing of signaling event (offer/answer) to the RTPEngine,\
Processing of signaling event (offer/answer) to rtpengine,\
in terms of using functionality looks as following (for one `call_monologue`):
* signaling event begins (offer / answer)
@ -241,7 +241,7 @@ The tag value will taken:
Things are getting slightly more complicated, when there is a branched call.\
In this situation, the same offer is sent to multiple receivers, possibly with different options.\
At this point of time, multiple monologues are created in the RTPEngine and all of them without a known tag value\
At this point of time, multiple monologues are created in rtpengine and all of them without a known tag value\
(essentially without To-tag).
At this point they all are distinguished by the via-branch value.\


+ 2
- 2
docs/conf.py View File

@ -6,7 +6,7 @@
# -- Project information -----------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information
project = 'RTPEngine'
project = 'rtpengine'
copyright = '2023, Sipwise'
author = 'Sipwise'
release = 'master'
@ -28,5 +28,5 @@ master_doc = 'index'
html_theme = 'default'
html_static_path = ['_static']
htmlhelp_basename = 'RTPEnginedoc'
htmlhelp_basename = 'rtpenginedoc'

+ 1
- 1
docs/glossary.md View File

@ -1,7 +1,7 @@
Glossary
========
This is the page, which gives a clue regarding abbreviations and specific words used in the RTPEngine project.
This is the page, which gives a clue regarding abbreviations and specific words used in the rtpengine project.
---


+ 3
- 3
docs/index.rst View File

@ -1,11 +1,11 @@
.. _RTPEngine: https://github.com/sipwise/rtpengine
.. _rtpengine: https://github.com/sipwise/rtpengine
.. _Sipwise: https://www.sipwise.com
.. _Kamailio: https://www.kamailio.org/
What is RTPEngine?
What is rtpengine?
=====================================
The `Sipwise`_ NGCP RTPEngine is a proxy for RTP traffic and other UDP based media traffic.
The `Sipwise`_ NGCP rtpengine is a proxy for RTP traffic and other UDP based media traffic.
It's meant to be used with the `Kamailio`_ SIP proxy and forms a drop-in replacement for any of the other available RTP and media proxies.
Currently the only supported platform is GNU/Linux.


+ 8
- 8
docs/ng_control_protocol.md View File

@ -464,7 +464,7 @@ Optionally included keys are:
* `record call`
Contains one of the strings `yes`, `no`, `on` or `off`. This tells the rtpengine
Contains one of the strings `yes`, `no`, `on` or `off`. This tells rtpengine
whether or not to record the call to PCAP files. If the call is recorded, it
will generate PCAP files for each stream and a metadata file for each call.
Note that rtpengine *will not* force itself into the media path, and other
@ -555,7 +555,7 @@ Optionally included keys are:
suite was not present in the received offer, it will not be added to it.
*Remark: if after applying the policies to the processed offer, there are no crypto suites left,*
*which can be used later in the answer towards the offerer, then RTPEngine will intentionally*
*which can be used later in the answer towards the offerer, then rtpengine will intentionally*
*leave the top most one offered, for the answer towards the originator.*
*However it will be not used for the recipient.*
@ -571,14 +571,14 @@ Optionally included keys are:
will be dropped/not added.
*Remark: if after applying the policies to the processed offer, there are no crypto suites left,*
*which can be used later in the answer towards the offerer, then RTPEngine will intentionally*
*which can be used later in the answer towards the offerer, then rtpengine will intentionally*
*leave the top most one offered, for the answer towards the originator.*
*However it will be not used for the recipient.*
- `nonew`
Don't add any new crypto suites into the offer. This means, offered SDES crypto suites
will be accepted, meanwhile no new are going to be generated by RTPEngine.
will be accepted, meanwhile no new are going to be generated by rtpengine.
It takes precedence over the `SDES-no` and `SDES-only` flags, if used in combination.
- `order:`*SUITES LIST*
@ -1202,11 +1202,11 @@ attributes (`a=` lines). With help of which, it's possible to add and remove
specific attribute lines.
This does affect an outgoing SDP offer. So it's meant to manipulate body attributes,
which RTPEngine generates during the offer processing. In other words, it manipulates
what has been already prepared by the RTPEngine on its own, taking into account received offer.
which rtpengine generates during the offer processing. In other words, it manipulates
what has been already prepared by rtpengine on its own, taking into account received offer.
Furthermore, it's quite important to remember, that the changes, which have been
applied to SDP body attributes, will be not quite taken into account by the RTPEngine.
applied to SDP body attributes, will be not quite taken into account by rtpengine.
This means, it's not the same, as if they would be originally given by the session originator.
It's just a text manipulation.
@ -1285,7 +1285,7 @@ Description:
No wild-cards and regex expressions accepted. Only a whole value is allowed.
One should remember that some attributes are allowed to be present multiple times,
as for example `a=ssrc:`. Therefore the RTPEngine does not expect specified `a=` lines
as for example `a=ssrc:`. Therefore rtpengine does not expect specified `a=` lines
to be unique within concerned media scope (global, audio or video).
This leads to the next point — `remove` and `substitute` commands can affect just


+ 9
- 9
docs/tests.md View File

@ -1,11 +1,11 @@
Unit-tests
==========
This is the page, which describes how to prepare unit tests for newly introduced features in the RTPEngine.
This is the page, which describes how to prepare unit tests for newly introduced features in rtpengine.
---
Adding of new tests is a required procedure, which allows us to cover fixes/changes/feature being added into the RTPEngine.\
Adding of new tests is a required procedure, which allows us to cover fixes/changes/feature being added into rtpengine.\
They make sure, that:
* first, new changes being added are reflecting the intention of these change, and hence give expected results
* second, they will make sure, that this expected behavior (in this very scope) won’t get broken in the future, by newer changes. And even if, we will notice that and will make sure to fix it.
@ -16,14 +16,14 @@ Here there is a bunch of files written in Perl, Python and C, dedicated for diff
_NOTE: They are being run with `make check` and during packaging._
_Nevertheless, not everything in that directory is actually run as part of `make check` (some are for manual testing)._
These tests actually spawn a real RTPengine process in a fake network environment (see `tests-preload.c` and its invocation in the `makefile`, and also the command-line options given at the start of each of these scripts) and then facilitate real SDP offer/answer exchanges and test real RTP forwarding against it.
These tests actually spawn a real rtpengine process in a fake network environment (see `tests-preload.c` and its invocation in the `makefile`, and also the command-line options given at the start of each of these scripts) and then facilitate real SDP offer/answer exchanges and test real RTP forwarding against it.
This is the closest possible way to simulate real SIP calls. The code supporting these tests is written using a few Perl libraries stored in `perl/` folder of the project, which are able to do the signalling, SRTP, ICE, etc.
Most importantly, there are some unit tests (e.g. `aead-aes-crypt` or `test-transcode`), but the most comprehensive test scripts are the ones called `auto-daemon-tests`.
Let’s take as an example the: `auto-daemon-tests.pl` \
This one has a huge amount of basic tests related to mostly general things RTPEngine does.
This one has a huge amount of basic tests related to mostly general things rtpengine does.
Let’s have a look into one of the tests, in this case ‘SDP version force increase':
@ -99,21 +99,21 @@ The syntax here is:
* `new_call;` - start a new test procedure, kinda new call
* `'SDP version force increase'` - is a test’s name
* `replace => ['force-increment-sdp-ver']` - is a given flag (emulates as if we would add this flag, when calling the `rtpengine_offer()`)
* first instance of the SDP (so before `----------------------------`) - is what we hand to the RTPEngine
* second instance after that, is what we expect RTPEngine to generate for us (as result)
* first instance of the SDP (so before `----------------------------`) - is what we hand to rtpengine
* second instance after that, is what we expect rtpengine to generate for us (as result)
* `SDP` - is an end of given SDPs for this sub-test
_NOTE: Every new test (new_call) can have many sub-tests included. So you can wrap into that something within one big scope, such as tests related to the SDP session version._
Generally said, if there is a new thing/feature being added into the RTPEngine, and this can potentially affect the behavior (even under some really specific circumstances), it’s important to cover this change with tests. For example: to emulate the call with a newly given flag and see that the expected results is given.
Generally said, if there is a new thing/feature being added into rtpengine, and this can potentially affect the behavior (even under some really specific circumstances), it’s important to cover this change with tests. For example: to emulate the call with a newly given flag and see that the expected results is given.
_NOTE: make `daemon-tests-main` inside of `/t` can be used to run the tests manually._
Individually the unit tests can be executed normally, but the `auto-daemon-tests` need special instrumentation. Either use `make daemon-tests-X` from within `t/`, or if there is a need to execute the test script manually and separately from RTPengine:
Individually the unit tests can be executed normally, but the `auto-daemon-tests` need special instrumentation. Either use `make daemon-tests-X` from within `t/`, or if there is a need to execute the test script manually and separately from rtpengine:
* Make sure `tests-preload.so` exists (`make -C t tests-preload.so`)
* In one shell: `LD_PRELOAD=t/tests-preload.so daemon/rtpengine --config-file=none -t -1 -i 203.0.113.1 ...` (CLI options taken from respective test script)
* In another shell: `LD_PRELOAD=t/tests-preload.so RTPE_TEST_NO_LAUNCH=1 perl -Iperl t/auto-daemon-tests.pl`
This even works with RTPengine running under a debugger or valgrind.
This even works with rtpengine running under a debugger or valgrind.
Another set of tests that is included is to run all of the `make check` tests under libasan. The top-level `make asan-check` target exists for that purpose and requires an initially clean source directory to execute properly.

+ 8
- 8
docs/troubleshooting.md View File

@ -1,7 +1,7 @@
Troubleshooting Overview
========================
This is the page, which describes troubleshooting aspects of the RTPEngine project.
This is the page, which describes troubleshooting aspects of the rtpengine project.
---
@ -36,7 +36,7 @@ cd t/
make tests-preload.so
```
And then, the command to launch the RTPEngine via the valgrind is as following:
And then, the command to launch rtpengine via the valgrind is as following:
```
LD_PRELOAD=../t/tests-preload.so G_SLICE=always-malloc valgrind --leak-check=full ./rtpengine --config-file=none -t -1 -i 203.0.113.1 -i 2001:db8:4321::1 -n 2223 -c 12345 -f -L 7 -E -u 2222 --silence-detect=1
```
@ -48,16 +48,16 @@ Important thing is to always point the `G_SLICE=always-malloc` environment varia
Other than that, the valgrind option `--leak-check=full` is also quite important thing to have, since it tells where exactly the memory leak is.
At this point the RTPEngine is up and running. It’s time to launch, in a separate terminal, tests themselves (those tests, which were prepared to cover a new feature, or just common tests, if there is no new feature and it was a bug fix).
At this point rtpengine is up and running. It’s time to launch, in a separate terminal, tests themselves (those tests, which were prepared to cover a new feature, or just common tests, if there is no new feature and it was a bug fix).
For that to work, the option telling that RTPEngine is already running, must be given:
For that to work, the option telling that rtpengine is already running, must be given:
```
RTPE_TEST_NO_LAUNCH=1 LD_PRELOAD=./tests-preload.so perl -I../perl auto-daemon-tests.pl
```
This has been launched from the t/ folder. And the ‘RTPE_TEST_NO_LAUNCH=1’ tells the auto tests that the RTPEngine is already running and there is no need to launch another one.
This has been launched from the t/ folder. And the ‘RTPE_TEST_NO_LAUNCH=1’ tells the auto tests that rtpengine is already running and there is no need to launch another one.
_NOTE: Alternatively it’s possible to run tests with any other way sending commands to the RTPEngine, to let it do some work in the concerned scope._
_NOTE: Alternatively it’s possible to run tests with any other way sending commands to rtpengine, to let it do some work in the concerned scope._
After tests are finished, it’s time to collect the report from the valgrind.\
Ctrl+C the terminal, where the binary has been launched before, and if there are no issues, the report must look something like that:
@ -88,7 +88,7 @@ Running one particular test under the valgrind.\
In case there is a demand to run only one of those auto-daemon-tests under the valgrind, it’s possible to do so, just by editing the auto-daemon-tests.pl (or any other targeted test file indeed).
This detailed way of running one test, gives a list of advantages:
* there is the RTPEngine log file in the end (usually in the /tmp folder)
* there is the rtpengine log file in the end (usually in the /tmp folder)
* less time waiting, till test is finished
* for debugging memory issues, one can exactly see amount of bytes left not freed for this particular test (so no other tests will contribute here with not freed memory). Hence simpler to find the place triggering this memory leak.
@ -99,7 +99,7 @@ Then, after the definition of the test, it’s just required to place this row:
done_testing;NGCP::Rtpengine::AutoTest::terminate('f00');exit;
```
Which will tell the auto tests to stop running and generate a log file in the end. Furthermore, in a such way of running, it’s even possible to get the coredump. The folder for storing that will be selected according to defaults of the environment, where the RTPEngine was run. For example, in the Ubuntu 22.04, by default coredumps are being stored in the: `/var/lib/apport/coredump`
Which will tell the auto tests to stop running and generate a log file in the end. Furthermore, in a such way of running, it’s even possible to get the coredump. The folder for storing that will be selected according to defaults of the environment, where rtpengine was run. For example, in the Ubuntu 22.04, by default coredumps are being stored in the: `/var/lib/apport/coredump`
### Address Sanitizer ###


+ 1
- 1
utils/rtpengine-ctl View File

@ -56,7 +56,7 @@ my $socket = new IO::Socket::INET (
PeerPort => $port,
Proto => 'tcp',
);
die "Cannot connect to the rtpengine $!\n" unless $socket;
die "Cannot connect to rtpengine $!\n" unless $socket;
$socket->autoflush(1);


Loading…
Cancel
Save