The main mode of operation of Zoon agents in the phone channel mode is answering incoming calls and having an AI agent have a conversation with the caller. The Zoon agents are also capable of transferring the caller to a new destination. There are multiple integration options to make inbound calls and outbound transfers possible.

Custom SIP integration

Syllable maintains a fleet of public-facing SIP servers for user systems to interact with. 

To make inbound calls work, users can point their SIP systems to forward inbound calls to Syllable by sending SIP Invite requests to the Syllable SIP servers. These SIP servers support communication over TLS for signaling and SRTP for media.

To make transfers work, users should expect SIP Invite requests from Syllable SIP servers. To facilitate this, the user should allow signaling and media traffic access on their firewalls, on dedicated ports and from Syllable source IP addresses. By default, Syllable sends the outgoing Invite request to the IP address from which the inbound call is received, using the port and protocol specified in the SIP Via header on the incoming SIP Invite request. With this transfer mode, Syllable is the pivot point for the transfer, and is a party to the call both before and after the transfer, and can record the complete call.

Optionally, Syllable also supports dropping out of the call after transfer. In this mode, Syllable SIP servers send a SIP Refer request to the user SIP servers for transfers, and drop out of the call after a successful transfer. In this mode, Syllable only records the agent portion of the call. For Syllable to work in this mode, the following SIP header should be sent as part of the SIP Invite request for the inbound call:X-Syllable-TransferMode: refer

Twilio

Using an external Twilio account

For users with their own Twilio accounts, the calls can be forwarded to Syllable using the Elastic Sip Trunking product of Twilio. For this, the following needs to be in place:

  • A Twilio SIP Trunk pointing to Syllable SIP servers

    • Secure Trunking option should be enabled

    • Syllable SIP Server addresses should be entered as Origination URIs

    • The trunk should be configured with an IP Access Control List that allows access from Syllable SIP Servers

For transfers, Syllable’s own Twilio account will be used. Transfers will be PSTN calls originating from Syllable’s Twilio account targeted to destination numbers.

Using Syllable’s Twilio account

Syllable also supports serving calls from phone numbers on its own Twilio account. No integration is necessary in this mode, apart from allocating phone numbers for agents in the Syllable console.

Information Exchange

With the Custom SIP Integration mode described above, Syllable supports receiving arbitrary information with each incoming call and making it available to the agent. Additionally, Syllable also supports sending out information related to the call back to the customer, with outgoing Sip Invite or Sip Refer requests for transfers.

Inbound

Users can make arbitrary information available to Syllable agents in one of two ways:

  • X-Syllable-headers: For any SIP header starting with the prefix X-Syllable, the value is made available to the agent. Example:

X-Syllable-CallerFirstName: John

X-Syllable-CallerLastName: Doe

  • A single X- header containing multiple semicolon-delimited key-value pairs, where keys start with the prefix X-Syllable. Example:

X-Syllable-User-to-User: X-Syllable-CallerFirstName=John;X-Syllable-CallerLastName=Doe

In both of these examples, the following information is made available to the agent:

  • CallerFirstName: John

  • CallerLastName: Doe

Outbound

For every transfer call, either with an Invite or a Refer, Syllable sends the SIP header X-Syllable-CallInfo that contains semicolon-delimited key-value pairs, with the following information:

  • ani: Caller number

  • dnis: Destination number

  • lang: (Optional) language of the call

  • ci: (Optional) name of the destination in Syllable Contact Directory

  • id: (Optional) SIP Call Id of the incoming SIP Invite

Example:

X-Syllable-CallInfo: ani:+1234567890;dnis:+1234567891;lang=en;ci=Operator;id=123