QSS trunk service

Service name

  • service name: SippoAS.qss.trunk

  • Service hierarchy: sippoas/qss/lib/services/trunk

Functionality

The trunk service is in charge of handling SIP communications together an external network. It manages everything related to WebRTC-SIP calls like call establishment, call lifetime, transfers, etc. This service will register itself in the qss.registry service, creating a special registry entry, with “trunk” set to true, and “type” set to PSTN.

For establishing a WebRTC to SIP call, the qss.invites service will add the PSTN registry entry in the invite. Then, the qss.Peer service will send the Invite to qss.trunk, and finally qss.trunk will use the required audiomixer to create a SIP call.

The call process from SIP to WebRTC is analogous. The Audiomixer will notify qss.trunk of a new incoming call, then qss.trunk will resolve the system user associated with the SIP user using SipMappings, after that it will tell qss.invites to create a new invite to that user. Once a WebRTC to SIP or SIP to WebRTC call is established, the qss.trunk service will be the one if charge of putting the two audio streams into the same audiomixer Confbridge, enabling that way audio communication between the users.

In addition, The qss.trunk service manages most of the Parallel SIP functionality, most of the issues that end having to modify code in the Trunk service have to deal with Parallel SIP.

Configuration

The parameter trunk.match defines which calls are routed to the trunk destination. It’s set by default to “*” so every call not routed to a system user will be routed via this trunk. This parameter accepts a regex rule that will be used to match which destinations are routed to the trunk (the ones that match will be routed, the rest will be rejected).