The 3CX Integration requires Talkative Engineers to deploy changes to your environments infrastructure to support the SIP connections. Please let us know if you wish to use this in advance so we can support your deployment.
Obtaining your Trunk Details
Firstly, you will need to obtain your trunk details to setup within 3CX. These can be obtained by navigating to the Voice Routes page in Engage (https://eu.engage.app/voice-routes) and editing one of your Voice Routes:

This for will show your SIP Trunk Credentials which you will need to setup in your 3CX Admin.
Setting up your 3CX Trunk
In your 3CX Admin, navigate to “Voice & Chat” and then click “Add Trunk”

Depending on your license with 3CX, you may have access to a Generic Trunk option:

or, you may only have access to specific carriers. Fortunately, at the time of writing you can choose Fuse 2 as a carrier and enter your Talkative credentials allowing you to test this on a lower tier of 3CX:

Once you have selected the appropriate provider you will need to complete the form with the following details:
Form Entry | Value | Details |
Name | Talkative VAI | Enter a descriptive name for the trunk to identify it |
Default Route | The target return queue if you want to return the call to 3CX | This could be a queue or ring group. |
Main Trunk Number | 10000 | You can set this to any suitable value. This is required for using Voice Assist - your return Dial to the platform should target this main trunk number, it will then route to the default route specified above. |
Authentication ID | siptrunkuser | This is obtained from step 1 in this guide |
Authentication Password | {password} | This is your password obtain in step 1 in this guide |
Register/Server | {uuid}.sip.twilio.com | This is your trunk domain as retrieved in step 1 in this guide |
Port | 5060 | This may be 5061 if you have requested TLS connections |

Now, in the options tab, update the Caller ID Control section to use the “OriginatorCallerID”

Create outbound Rule for Voice AI
The outbound rule allows you to set numbers which will be mapped to a Voice AI Config. Navigate to “Outbound rules” and click “Add”:

Create an outbound rule and provide it a suitable name and provide a prefix. This prefix will be the number you will dial to initiate a call on the Talkative Trunk:

In this example, any number which is prefixed, 5000 will be routed to the Talkative SIP Trunk. This format allows us to dial numbers such as 50001, 50002 and then map each of these numbers to a specific voice bot in Engage, allowing for multiple Voice AI configs to be created to handle different scenarios.
You can now test your trunk connects by dialling one of the numbers in your softphone. The call should connect but inform you the endpoint has not yet been configured.
Configuring a Pseudo Voice AI User
To enable us to route calls to the bot we need to create a user which will receive the calls and subsequently forward them to the Voice AI config. You will require a user per bot.
It may be possible to configure the forwarding to the other trunk by other methods. This method provides a suitable route to evaluate on the free tier of 3CX. You may have an alternative preferred method which is acceptable.
Create a new user and then configure their call forwarding options to, in all circumstances, forward the call to the target extension:

As this user will never be online, and never be available, the calls will always forward to the extension which will trigger the Voice Bot.
Routing External Calls to the Voice AI
The following configuration will heavily depend on your desired workflow. In this example, we will be routing any calls to the external DDI to our Voice Bot. The voice bot will triage and if possible handle the call and then transfer the call back into the call centre.
In our Twilio Elastic SIP Trunk, we have the default route configured to hit the pseudo voice AI user created in the previous step:

This means when the DDI is called, the call will be transferred directly to the Voice AI bot.
Mapping the Incoming Route to a Voice AI Config
Navigate to https://eu.engage.app/voice-routes to load your voice routes (please substitute the region for your relevant region) and then edit the relevant bot config:

The endpoint will be comprised of the incoming extension, for example 50001 as we created in a previous step, @ and the trunk domain as provided in the first step. This will finally be suffixed by a : and the port. This port will be 5060 for UDP connections and 5061 for TLS connections.
After this has been configured, your bot will be triggered and will be able to handle the call.
Bot Handoff to Call Centre
To allow the call to be returned to the Call Centre, you should configure a transfer tool in your voice AI bot:

SIP Refer is the only supported method for 3CX at present. Please note, when a Voice Assist Config is selected, this becomes a SIP dial
You can target any queue, extension or ring group with a full SIP address, for example, this targets my personal extension:
sip:14610@pbxdomain.comEnabling Voice Assist
By default, the call is handed back to the call centre by doing a SIP refer, this allows the call to be handed back any any internal extension targeted. If you choose to use a Voice Assist you will need to target a DDI. When we setup the VAI Sip trunk, we set the main DDI number to be 10000 - we’d need to target this number which would then redirect the call to the default route:
sip:100000@pbxdomain.comWhen this is activated, the Voice AI remains with the call and will continue to transcribe the call until its end.
Screen Popping the Console
In the Integration section of the 3CX config, you can configure a popup window when the call is queued or accepted:

You can target the engage logs to load this call which will trigger a popup window with the interaction loaded, showing the transcript so far, any collected interaction data and if voice assist it configured, it will show the ongoing interaction transcript.
Full Integration Considerations
When implementing this in a full scale setup, you’d likely include the talkative console within your own CRM solution to load the console or history page depending on the state of the call - your own CRM would then be loaded with the talkative Engage console embedded with this.
Alternatively, if you need a bespoke integration to allow a CRM and our console to be popped, please contact your customer success manager who will organise a technical call with a senior engineer.