Skip to content
TriedDocs
Telephony

Contact centre platforms and PBXs

Connect Vonage, Avaya, Genesys Cloud, Five9 and Amazon Connect to Tried agents over SIP or the phone network.

A contact centre platform or PBX can hand calls to a Tried agent and take them back. The pattern is the same for every platform; only the menu names differ. Vendor menus change between releases, so check the vendor's current documentation for exact names.

The common pattern#

Create the number or trunk#

Import a number (or a dedicated routing number) with POST /import-phone-number, or create a shared trunk with POST /create-sip-trunk, using the platform's SIP host as termination_uri. See SIP trunking.

Allow the platform's addresses#

Add the platform's signalling IPs to allowed_inbound_addresses, or set inbound digest auth (inbound_auth_username, inbound_auth_password) on a shared trunk.

Route calls to the agent#

Send calls that should reach the agent to sip:<number>@<LIVEKIT_SIP_URI>. Use TLS where the platform supports it (transport: "TLS", media_encryption: "allowed" or "required").

Pass context in SIP headers#

X- headers on the INVITE become dynamic variables, and User-to-User is mapped too. On outbound calls, set custom_sip_headers. See SIP headers.

Hand calls back#

Give the agent a transfer tool that sends the call to a queue number or SIP URI on the platform: SIP REFER, or a new INVITE with a warm transfer.

Vonage#

  • Inbound: in the Vonage API dashboard, edit the number and forward it to the SIP URI sip:<number>@<LIVEKIT_SIP_URI>.
  • Outbound: Vonage's SIP endpoint is sip.nexmo.com (regional hosts such as sip-ap.nexmo.com exist). Import the number with termination_uri: "sip.nexmo.com", the Vonage API key as sip_trunk_auth_username and the API secret as sip_trunk_auth_password.
  • Vonage requests come from Vonage's published SIP signalling ranges. Add them to allowed_inbound_addresses.

Avaya#

Aura with Session Manager:

  • In System Manager, add a SIP Entity for the Tried SIP host (LIVEKIT_SIP_URI), an Entity Link (TLS 5061 recommended), a Routing Policy and a Dial Pattern that sends the agent's numbers to it.
  • Put an Avaya SBCE (Session Border Controller for Enterprise) in front when the trunk leaves your network. The SBCE's public address goes in allowed_inbound_addresses.

IP Office: add a SIP Line with the Tried host as ITSP domain and proxy, and an outgoing call route (ARS) for the agent's numbers.

Outbound and transfers back: import the number with the SBCE (or Session Manager) address as termination_uri. REFER must be allowed on the SIP entity or SBCE for sip_refer transfers. Otherwise use a warm transfer, which places a new call.

Genesys Cloud#

  • Use BYOC Cloud: Admin > Telephony > Trunks > External Trunks, and create a trunk of type BYOC Carrier. Set the outbound SIP server to LIVEKIT_SIP_URI (TLS 5061), add digest credentials if you set inbound auth, and note the inbound SIP termination identifier and host Genesys shows for your region.
  • Create a number plan and an outbound route (or a Site route) for the agent's numbers, then send calls from Architect with Transfer to Number (or Transfer to External).
  • Calls from Tried to Genesys: import the number with the Genesys BYOC inbound host as termination_uri. Allow Genesys's published BYOC signalling ranges for your region.

Five9#

  • Five9 does not offer a self-service BYOC trunk. The standard path is to transfer the call to the agent's phone number from an IVR script or skill (transfer to external number), and to transfer back to a Five9 DNIS.
  • A direct SIP connection (SIP transfer to an external SIP URI with your headers) is set up by Five9 support. Give them LIVEKIT_SIP_URI, the transport and the headers to send, and add Five9's signalling IPs to allowed_inbound_addresses.
  • Over the phone network, context travels only as the caller ID and the dialled number. Use a dialled number per use case, and look up the caller in the inbound call webhook.

Amazon Connect#

  • Phone network: in a contact flow, use Transfer to phone number to the agent's Tried number, and give Connect a claimed number for transfers back.
  • SIP: where Amazon Connect external voice transfer is available in your Region, create an external voice system connector with the Tried SIP host and use it from the contact flow. It can pass User-to-User Information, which Tried maps to the {{user-to-user}} dynamic variable.
  • Pass context over the phone network with a number per intent, or read the caller in the inbound call webhook.

Your own PBX#

Any PBX that can send SIP works the same way: import each number with the PBX as termination_uri, allow the PBX's address, and route the numbers to sip:<number>@<LIVEKIT_SIP_URI>. If the PBX should pick the agent per call instead of per number, use Register call.