Sip diversion to set Caller with Verizon

How do i craft a sip diversion header for verizon Sip trunks. I have a toll free numbers with them but the only thing I can set is a local number and want to set the caller id to be a Toll free number.

Did you try CALLERID function in Asterisk ?

That doesn’t work to set a non VZ number for example

That’s going to be a policy restriction. You will need to find a service without that restriction.

I believe if you use a sip diversion header to authenticate, you can then set caller id to any number.

Diversion headers tell the caller that the destination has changed, they don’t affect the caller ID seen by the callee.

So it used on cisco like a below senerio

I have read so many articles on how to fix this and none resolve my situation. The problem is we recently started to send local traffic to a SIP trunk using Verizon services. When we did that we noticed that any calls forwarded from IP Phones or from the IVR fail. In the debug we see the diversion header is the 4 digit number of the phone or the IVR port.

I opened a ticket with Verizon and they stated the Diversion header info was wrong. When I fixed that on my CUBE calls continue to fail. I opened a case with TAC and they stated it is NOT possible to forward calls to Verizon SIP trunk and maintain the calling party number. I keep reading everywhere how people have successfully did this and I’m confused on how they all have gotten it to work when TAC states it is not possible. Perhaps I’m not reading the articles correctly.

We run UCM 7.1.3 and the CUBE is 12.4(20)T4

Person A calls Person B and person B has their phone forwarded to Person C. I need Person C to see the caller ID of person A. I was under the assumption I could do this by adding this on my cube:

voice service voip


sip-profiles 1

voice class sip-profiles 1

request INVITE sip-header Diversion modify “sip:(.*)@(.*)” “<sip:8306265600@verizon address>”

When I do that the calls do in fact change the diversion header but continue to fail. I have read that by changing the diversion message Verizon uses the diversion field to authenticate the call so the original caller id remains intact.

Has ANYONE really gotten this to work as described above using Verizon as the provider? I’d love to speak directly or through here on the matter.

Solved! Go to Solution.

I have this problem too

0 Helpful



Ayodeji Okanlawon

VIP Mentor Ayodeji Okanlawon VIP Mentor

VIP Mentor

‎02-12-2013 11:05 PM

Re:Calls forwarding to Verizon SIP Trunk fail from UCM


I work for Verizon in the UK and we use the Verizon sip trunk solution. And yes diversion works for us. We use sip profiles to authenticate as well.

From the was you have described your sip profile config, looks like its not correctly configured. The @address** should address if your cube, cos call is coming from the cube.

Can you send me full debug ccsip messages, the calling and called number.

Sent from Cisco Technical Support Android App

As to redirecting numbers in diversion headers, they usually must be from diapasones that are allowed by your provider. The policy is usually as follows: in case of a direct calling calling party numbers (CPN’s )must be from diapasones owned by your asterisk; if you redirect calls, CPN’s must be any numbers, but redirecting numbers (those that pay for calls), must be from diapasones, assigned to your asterisk by the provider. If you need to set a toll free number as a redirecting number, your provider must allow to use it as your number. For example, I have in Russia a toll free number, that is, all incoming calls from it are redirected to my asterisk. But that does not mean that telecom operators have made routes of this toll-free number directly to my equipment. They route calls to the equipment this number is assigned to, and then, after the call has reached this equipment, it is redirected to my asterisk. In this case I am not allowed to use it as a redirecting number.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.