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

On-Air 2.0

On-Air Light

It has been about 2 years since I have been running the “on-air” light at my house. This is a life saver when working from home. It might have helped this guy on the BBC interview out: The idea is whenever my status in Jabber matches one of the keywords I defined, the light is turned on. Instead of the girls bursting into my office during a call, I can hear them whispering, “shhhh dad is on a call”.

I originally wrote this in python. Since I have be doing all my work in node.js I thought it was time to convert and document the code for others to use. Here is a link to the github repo: https://github.com/bdm1981/onair.

As soon as the Cisco Spark API is ready, I will be updating to support Spark!

web interface
Web Interface
On-Air Light
On-Air Light