Skip to content

installation updates#599

Merged
devopsec merged 10 commits intodOpensource:qafrom
devopsec:installation_updates
Nov 20, 2024
Merged

installation updates#599
devopsec merged 10 commits intodOpensource:qafrom
devopsec:installation_updates

Conversation

@devopsec
Copy link
Member

  • Allow Python Selection for hashCreds()
  • Fix HA Script Not Removing init Commands
  • Allow External RTPEngine to be Configured
  • Compartmentalize Mysql Portion of Installation
  • Fix Homer Updates in RTPEngine Config
  • Fix HEP Port Not Set In Some Cases
  • Support Remote RTPEngine Media Server

@devopsec devopsec added the pending-qa Awaiting QA Testing Approval label Sep 25, 2024
@devopsec devopsec self-assigned this Sep 25, 2024
@mackhendricks
Copy link
Member

@devopsec can you provide test cases for each one of these use cases. Check out this PR for an example: #590 (I need to be more detailed as well, but it's a start)

The Homer and RTPEngine commits will require a Homer server and a Remote RTPEngine Server. We need to have this setup in our Dev/QA environment so that @chelseatcarter can validate it works.

@devopsec
Copy link
Member Author

devopsec commented Sep 26, 2024

@mackhendricks I was considering what the quickest way to get that info out would be and I think I will give some quick instructions on the PRs , like in your example PR, rather than build out unit tests (that would have to be maintained) for each one.

@chelseatcarter below I will outline the tests I did for each patch during development.
The goal would be to validate that this entire patchset as a whole does not break other components or features (E2E).
You wouldn't need to test all the features in the testing spreadsheet but any that may have side effects.

Here we go:


Allow Python Selection for hashCreds()

Does dsiprouter resetpassword still correctly set the credentials?

Try logging in via the GUI using the credentials that the CLI printed.

Can they still be decrypted afterwards by the library?

source /opt/dsiprouter/dsiprouter/dsip_lib.sh
decryptConfigAttrib KAM_DB_PASS /etc/dsiprouter/gui/settings.py; echo '';

Fix HA Script Not Removing init Commands

After a cluster install with pacemaker does dsip-init.service get configured correctly?
Example cluster install:

## dsiprouter install: synchronized settings (all settings), active/passive routing/VIP, active/active DBs
./dsiprouter.sh clusterinstall -i ~/.ssh/dopensource-key.pem root@v0722-sbc01.test.dsiprouter.net root@v0722-sbc02.test.dsiprouter.net -- -all -dsipcsync 1
./HA/mysql/installAAGaleraReplication.sh -i ~/.ssh/dopensource-key.pem root@v0722-sbc01.test.dsiprouter.net root@v0722-sbc02.test.dsiprouter.net
./HA/pacemaker/installKamCluster.sh -vip 206.189.252.38 --do-token=dop_v1_... -i ~/.ssh/dopensource-key.pem root@v0722-sbc01.test.dsiprouter.net root@v0722-sbc02.test.dsiprouter.net

Then check to make sure the update* commands were removed:

grep 'dsiprouter update' /lib/systemd/system/dsip-init.service

Allow External RTPEngine to be Configured
Support Remote RTPEngine Media Server

Install rtpengine on node1:

git clone -b installation_updates https://github.com/devopsec/dsiprouter.git /opt/dsiprouter
/opt/dsiprouter/dsiprouter.sh install -rtp

Update RTPEngine on node1 to allow remote connections.
Edit rtpengine config (vim /etc/rtpengine/rtpengine.conf) and set listen-ng = 0.0.0.0:7722.
Add firewall rule:

firewall-cmd --zone=public --add-port=7722/udp --permanent
firewall-cmd --reload

Install dsiprouter with remote rtpengine connection on node2:

git clone -b installation_updates https://github.com/devopsec/dsiprouter.git /opt/dsiprouter
/opt/dsiprouter/dsiprouter.sh install --rtpengine-uri='udp:NODE1_IP:7722'

Create a test carrier group, endpoint group, and inbound route to that endpoint group.
Send a test call that hits the inbound route.
Do we still have audio?
Is the SDP c= parameter set to the ip address of node1 instead of node2? (viewable via network capture, such as in sngrep).


Compartmentalize Mysql Portion of Installation

Does mysql still install correctly with dsiprouter.sh install -all?
Can mysql be installed separately using dsiprouter.sh install -mysql?


Fix Homer Updates in RTPEngine Config
Fix HEP Port Not Set In Some Cases

On an install with homer provided, are the settings passed down to kamailio and rtpengine configs?
Note that homer does not really need to exist on a separate server to test this.

git clone -b installation_updates https://github.com/devopsec/dsiprouter.git /opt/dsiprouter
/opt/dsiprouter/dsiprouter.sh install -all -homer '127.0.0.1:9060'

grep HOMER /etc/rtpengine/rtpengine.conf
grep HOMER /etc/kamailio/kamailio.cfg

Do the same updates get applied correctly when the settings are changes and configure* commands are run?
First update HOMER_HEP_HOST and HOMER_HEP_PORT in /etc/dsiprouter/gui/settings.py:

HOMER_HEP_HOST = '127.0.0.1'
HOMER_HEP_PORT = 9999

Run the configure commands and check rtpengine / kamailio configs:

dsiprouter configurertp
dsiprouter configurekam

grep HOMER /etc/rtpengine/rtpengine.conf
grep HOMER /etc/kamailio/kamailio.cfg

My recommendation for OS selection would be to test stable supported OS as listed in the docs and dsiprouter.sh.

  - this will allow us to remove the system python package after installation
  - add support for specifying remote rtpengine uri during install
  - add settings to allow changing the above later on
  - fix typos in `dsip_lib.sh`
  - update DB URI parsing func to not rely on system python
  - mariadb server now installs with `-all` or explicitly with `-mysql`
  - move dev/lib package installs to the rtpengine installation scripts
  - get default values from `settings.py` when running `dsiprouter updatertpconfig`
  - remove HEP port from static variables in CLI
  - make dynamic lookups for homer variables more reliable
  - add support for media proxy through a remote RTPEngine instance
  - add capability for rtpengine service to be dynamically disabled
  - update RHEL-based distros rtpengine installs
  - add CLI option `--rtpengine-uri=` to `install` subcommand
  - improve local host check for services that can be either remote or local
@devopsec devopsec force-pushed the installation_updates branch from 98e2d27 to 69fdb7f Compare November 5, 2024 17:13
  - run UltraDict install separate to workaround hanging install
  - centos7 --> deprecated
  - centos9 stability fixes
  - rhel9 --> alpha
  - rhel8 --> beta
  - alma8 --> alpha
  - alma8 --> beta
  - rocky9 --> alpha
  - rocky8 --> beta
  - ubuntu 24.04  --> beta
  - debian 10/11/12 pinned kamailio to 5.8.3
  - debian 9 pinned kamailio to 5.5.7
  - centos 8/9 pinned kamailio to 5.8.3
  - centos7 pinned kamailio to 5.7.6
  - amazn2 pinned kamailo to 5.7.6
  - ubuntu 24.04 pinned kamailio to 5.8.4 / rtpengine to mr11.5.1.11
  - ubuntu 22.04 pinned kamailio to 5.8.3 / rtpengine to mr11.5.1.11
  - ubuntu 20.04 pinned kamailio to 5.8.3
  - rhel8/9 pinned kamailio to 5.8.3
  - alma 8/9 pinned kamalio to 5.8.3 / rtpengine to mr11.5.1.11
  - rocky 8/9 pinned kamalio to 5.8.3 / rtpengine to mr11.5.1.11
  - add back in swap file for low memory systems (2GB)
  - update OS support in docs
  - fix `RTPENGINE_URI` missing from `dsip_settings` python interfaces
@devopsec
Copy link
Member Author

merging current changes.
will open a new PR for STABLE release review when ready

@devopsec devopsec merged commit 3408b9a into dOpensource:qa Nov 20, 2024
@devopsec devopsec deleted the installation_updates branch November 20, 2024 19:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pending-qa Awaiting QA Testing Approval

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants