Skip to main content

Security

Server

Components used

The backend part of UCS is programmed in Python3. Communication with the frontend part is strictly separated by an XML-RPC API interface that is accessible via NGINX reverse proxy. Asterisk is used to connect calls, which communicates protocol SIP (signaling) and RTP (voice streams).

ComponentPurpose
asteriskCall processing, SIP signaling, RTP streams
isc-dhcp-serverProviding IP addresses to phones
nginxInput reverse proxy for UCS components
ntpTime synchronization
opensslEncryption
openvpnVPN for remote user access and IP phones
postgresqlDatabase (configuration, calls, statistics, etc.
python3-bleachSanitization of incoming emails to UCS
python3-cryptographyInternal UCS Certification Authority
python3-gnupgLicensing
python3-gssapiSSO for Microsoft Active Directory
python3-ldapSSO for MSAD and contact lookup for calls
python3-messagingProcessing of SMS messages
python3-mysqldbDriver for MySQL database
python3-openpyxlCreating XLSX reports
python3-pygresqlDriver for PostgreSQL satabase
python3-pymssqlDriver for MSSQL database
python3-serialCommunication with SMS gateway
python3-watchdogInternal monitoring of log files
soxMixing recordings and converting to MP3
stuntman-serverSTUN/ICE for Web Softphones
tftpd-hpaProviding configuration for IP phones

SIP

The PBX contains a Session Border Controller (SBC). Calls from trunks (public telephone networks) are terminated at the SIP level and into the private network, in where IP phones are located, a new SIP dialog is established. SIP messages from public networks are therefore terminated at the PBX and cannot reach the IP phones. The internal topology is not visible from external networks.

Trunk security between the ITSP and the PBX is based on resource constraints and destination IP addresses and/or SIP registration and authentication using the SIP algorithm Digest authentication (RFC-2617).

Only the listed audio codecs and na The PBX performs an RTP integrity check. Repackaging is done, it is only preserved voice payload.

All IP phones are registered to the PBX using a unique name and password. Names do not contain a line number, passwords are strong, randomly generated, and users they don't know them. Authentication is required for both registration and call setup SIP Digest authentication algorithm.