Who is calling???

Twilio Elastic SIP Trunking

1/27/19 – Update: Elastic SIP trunks now support CNAM. This method outlined below is still useful for passing caller name with programmable voice.

A couple months ago I switched my Dad’s business over to Twilio Elastic SIP trunks. I have been very happy with the service. Not only was it really easy to deploy, but the service has been rock solid. The only downside that I discovered during my initial testing was that Twilio doesn’t deliver the caller name in the SIP header! Twilio offers a service for lookups and there are a couple add-ons that will do caller name lookups, however, they don’t alter the SIP headers. In the solution below, I am using the addOn OpenCNAM by telo. This will work with Twilio’s lookup service, but the function will need to be altered to capture the correct data.  I found OpenCNAM to be more accurate. It took me a bit of trial and error, but I finally figured out a solution!  In order to make this work, follow the steps below.

  1. Twilio Function: Here we will send the caller name as a custom SIP header
  2. CUBE SIP Profile: Using SIP Profiles on the Cisco Unified Border Element, we can insert the customer header containing the Caller Name into the P-Asserted-Identity SIP header

Twilio Function:


A handful of things need to be done on CUBE. First a sip-copylist and sip-profile will need to be created.



Once the copylist and profile have been created, they will be applied to an inbound and outbound dial-peer.

dial-peer example

The final step is to point the phone number at the Twilio Function. You should now see caller name on inbound calls!

Hopefully this will save some time for the next person trying to figure this out!


– Brad