FreePBX and Asterisk
Your PBX keeps its carrier and numbers, and passes the calls you choose to Reception.ai over a SIP trunk. You add a second trunk on the PBX that points at Reception.ai, then route a DID, a time condition, or an IVR option to it.
Before you start
- FreePBX 15 or later, or Asterisk with PJSIP, reachable from the internet.
- A static public IP address for the PBX. Reception.ai only accepts calls from addresses you allow.
- Someone comfortable with your PBX’s trunks, routes and firewall.
Setup
Add the SIP trunk in Reception.ai
Go to Integrations, select Add integration, and choose SIP Trunk. Under Inbound allowed addresses, add your PBX’s public IP address. If you also set an inbound username and password, use the same pair on the PBX trunk below.
Add the number
Go to Receptionists, select the Phone tile, enter the number callers dial, with its country code, and select Add SIP Trunk number. Reception.ai shows the SIP server host and the request URI to use.
Turn on TCP in FreePBX
Reception.ai doesn’t accept UDP. In FreePBX, go to Settings → Asterisk SIP Settings → SIP Settings [chan_pjsip], set the tcp transport to Yes, and select Submit and Apply Config. Restart Asterisk so the new transport loads. TLS also works if you’ve set up a certificate in Certificate Management.
Create the trunk to Reception.ai
Go to Connectivity → Trunks → Add Trunk → Add SIP (chan_pjsip) Trunk. On the General tab, enter a Trunk Name, such as reception. Set CID Options to Allow Any CID, so the receptionist sees each caller’s own number. On the pjsip Settings tab:
Add an outbound route that sends +E.164
Go to Connectivity → Outbound Routes and add a route named Reception that uses only the reception trunk. Add a dial pattern with an unused prefix, such as 88, a match pattern of X., and a prepend of +. A call to 8814155550123 then leaves the trunk as +14155550123, which is the format Reception.ai requires.
Send the DID to Reception.ai
Go to Applications → Misc Destinations and add one that dials 88 followed by the number in E.164 format without +, for example 8814155550123. Then go to Connectivity → Inbound Routes, open the route for your DID, and set its destination to that misc destination. You can also use it as the destination of a time condition, ring group failover or IVR option.
Plain Asterisk
On Asterisk without FreePBX, the same setup in pjsip.conf looks like this. Replace SIP_SERVER with the host Reception.ai shows.
In the dialplan, send the call with the number in E.164 format:
If you set inbound credentials in Reception.ai, add a type=auth section with them and reference it with outbound_auth= on the endpoint.
Limitations
- Transfers. Your receptionist transfers calls by placing a new call to the Outbound SIP address. Point it at your SIP carrier, using a carrier account that accepts a username and password. Routing transfers back into the PBX isn’t covered here: Reception.ai calls from a changing pool of addresses, so the PBX can’t match those calls to a trunk by IP.
- Your PBX carries every call twice, once from the carrier and once to Reception.ai, so it needs a free channel for each leg.