Skip to main content
Version: 1.x.x

General

The general configuration affects your entire Routr instance. The general configuration can be provided using the file config/config.yml located at the root of your Routr installation.

General Configuration Parameters

PropertyDescriptionRequired
apiVersionIndicates the version of the resource (Not yet implemented)Yes
metadata.userAgentSets sip header User-Agent to the desired valueNo
spec.dataSource.providerDefines data provider. Defaults to files_data_providerNo
spec.dataSource.parametersData Source Parameters. Ex.: 'host=localhost,port=6379'No
spec.bindAddrDefault stack IP addressNo
spec.externAddrIP address to advertiseNo
spec.localnetsLocal networks. Use in combination with spec.externAddrNo
spec.recordRouteStay within the signaling pathNo
spec.transport.[*].bindAddrOverwrites spec.bindAddr for transport entryNo
spec.transport.[*].portTransport portYes
spec.transport.[*].protocolValid values are: tcp, udp, tls, sctp, ws, wssYes
spec.registrarIntfInternal causes the server to use the IP and port it "sees"(received & rport) from a device attempting to register. Defaults to ExternalNo
spec.accessControlList.deny.[*]Deny incoming traffic from network listNo
spec.accessControlList.allow.[*]Allow incoming traffic from network listNo
spec.restService.bindAddrRestful service listening addressNo
spec.restService.portRestful service port. Defaults to 4567No
spec.restService.minThreadsMinimum thread allocation. Defaults to 8No
spec.restService.maxThreadsMaximum thread allocation. Defaults to 200No
spec.restService.timeOutMillisWill reject requests that last more than this value. Defaults to 5000(5 seconds)No
spec.restService.unsecuredDisabled https for restful calls. Defaults to falseNo
spec.restService.keyStorePath to keyStoreNo
spec.restService.trueStorePath to trueStoreNo
spec.restService.keyStorePasswordPassword for keyStoreNo
spec.restService.trueStorePasswordPassword for trueStoreNo
spec.securityContext.keyStorePath to keyStoreYes
spec.securityContext.trustStorePath to trueStoreYes
spec.securityContext.keyStorePasswordPassword for keyStoreYes
spec.securityContext.keyStoreTypeKeyStore typeYes
spec.securityContext.client.authTypeType of client authentication. Defaults to DisabledAll. See https://goo.gl/1vKbXW for more optionsNo
spec.securityContext.client.protocols.[*]Accepted TLS protocols. Defaults to [TLSv1.2]No
spec.securityContext.debuggingTurns ON or OFF ssl debugging. Defaults to falseNo
spec.ex_rtpEngine.enabledIf enabled, it will send all media thru the RTPEngine. Defaults to falseNo
spec.ex_rtpEngine.protoReserved to allow for NG commands via http, https, and udp. Currently only http is supportedNo
spec.ex_rtpEngine.hostAddress for RTPEngineNo
spec.ex_rtpEngine.portPort for RTPEngineNo
spec.ex_convertTelToE164If enabled, it will convert the number on ingress calls to E164 format before routing the call. Defaults to falseNo
spec.ex_uniqueGatewayPerHostPortIf enabled, it will yield an error if a Gateway with the same host and port combination already exists. Defaults to falseNo

Variables prefixed with ex_ are experimental features and may be removed or renamed in the future.

Transport Configuration

Routr supports tcp, udp, tls, sctp, ws, and wss as transport protocols.

The server requires at least one transport protocol. To bind a transport protocol to a specific IP address, you can use the spec.transport.bindAddr or more generally spec.bindAddr.

Datasource Providers

Routr currently implements two data providers: redis_data_provider and files_data_provider. The default data provider is the files_data_provider.

The docker distribution of the server uses redis_data_provider by default

Redis Data Provider

The parameters for redis_data_provider are:

ParameterDescriptionRequired
hostRedis host. Defaults to 'localhost'No
portRedis port. The default port is 6379No
secretPassword to access databaseNo

Files Data Provider

The parameters for files_data_provider are:

ParameterDescriptionRequired
pathPath to configuration files. Defaults to the config folderNo

This implementation has the limitation that writes operations have to be performed manually on the files.

Configuring the server behind a NAT

The spec.externAddr and spec.localnets parameters help Routr identify the correct path for any given traffic. The spec.externAddr is typically the Internet facing IP address. The spec.localnets is an array with valid CIDR, IP/Mask, or single IP values. Here is quick example:

spec:
externAddr: 172.220.231.23
localnets: [172.17.0.2/16]

Access Control List

The Access Control List(ACL) provides with a security mechanism to disable network access from unwanted sources. ACL rules exist at general or Domain level. Here is an example, blocking all traffic except from IP address 192.168.0.1.

spec:
accessControlList:
deny: [0.0.0.0/1] # Deny all
allow: [192.168.0.1/31]

Basic Example

apiVersion: v1beta1
spec:
transport:
- protocol: tcp
port: 5060
- protocol: udp
port: 5060