Pass inbound CID to Outbound Misc Destination

I’m running a system for a volunteer organization whose volunteers work from home on their own telephones. Ive implemented an IVR system for callers to hear various information and hopefully answer their questions. If they do want to speak to someone the call is forwarded out via Misc. Destinations, but the outbound caller ID is coming from the system. Is there a way to pass the inbound CID to the outbound call?

That would depend on how you are sending the calls back out. Are your Trunks POTS lines, PRI or Sip. If they’re POTS it probably can’t be done. If you’re using PRI or SIP, the answer depends on how your provider has things configured.


Sorry - I’m using VoicePulse. The calls come in over SIP and go back out over a SIP trunk.

I don’t use VoicePulse, but a few things to look at:

Do you use DID for each extension? If so, do you have the CID for the extension set to the DID. Does that work correctly.

Again, Does VoicePulse allow you to set the CLID?


I’m not using DID for extensions. VoicePulse does allow me to set the outgoing CID. The incoming call is going to an IVR. If the caller presses ‘0’ they are transferred to a Misc. Destination which forwards the call to an external phone number. Instead of showing the caller ID of the system on that external extension, I’d like the caller’s incoming CID to be passed to the outbound call.

You’ve just answered your own question: “VoicePulse does allow me to set the outgoing CID.” You must be able to set CID for this to work.

Our provider does allow us to set CID and the scenario you describe works well.


I’m thinking you read “doesn’t” in there. I can pass whatever CID I want to VoicePulse. Made for a pretty good prank on my brother when he got a call from his empty house. Anyway…

When a call is forwarded to the volunteer’s phone number I’d like their telephone to see the original caller’s phone number instead of the system’s phone number. It’s sounding like this is possible now. I just have no clue how to implement such a feature.

Sorry…I guess my Eyes got crossed…

We’re using a PRI, and the feature required no special setup.


The first thing I would do, is to enable more debugging (asterisk -rvvvvvvvvvvvvv )
and simulate your situation.

What exactly is happening (feel free to submit logs, sanitized for the security conscious of course) to see what EXACTLY is happening.

I am doing something like this currently, using a SIP provider, and have no issues, and required no special setup (that I recall at the moment).

The logs have the answer (or at least the next step to figure out the issue).

Also, are your SURE the incoming callerID is working correctly (again, logs).
Have you tried setting up an extension, and using follow-me to your cell phone instead of a misc destination (or setting SIP/TRUNKNAME/tendigcell# in a custom extension setup?
(this would also allow you to easily record the calls if you desired)

We are happy to help, but let’s take this to the basics (since it’s easy to get logs) and see exactly what is happenning, and at what point.

** Last minute thought (which we probably would have found by looking at logs)…
Do you have a outgoing caller ID setup in your Trunk configuration? This could be what is override the other callerid’s up to that point… just a thought - I did have one system that had this issue, and that is what we found when log researching and watching the call progress…

Anyway… hopefully I either solved it, or you get some logs that help us help you figure it out.

Incoming caller ID is working correctly. Additionally, I have a DISA setup for calls from my cellphone with no CID programmed. When I call into the system and make an external call it passes my cell phone’s number to the called party, not the trunk’s CID.

I’ve never used the follow-me feature before. I’m going to set up a dummy extension for the IVR with follow-me to send the call to the external number and see which CID it sends.

Well the IVR to a follow-me extension sent the system CID. I called the DISA with my cellphone, dialed the same number the follow-me is forwarding to and it displayed my cellphone CID. Here are what I believe to be relevant parts of the copious log file.

My cellphone is shown as 8639876543
The external number calls are being sent to is 9411234567

Outbound via DISA from Cellphone

[Nov 26 22:20:31] VERBOSE[15781] logger.c: – Executing [[email protected]:1] NoOp(“SIP/Xec47NuZ72-b7605f90”, “called 9411234567 in from-internal by disa|3|newcall”) in new stack
[Nov 26 22:20:31] VERBOSE[15781] logger.c: – Executing [[email protected]:2] Dial(“SIP/Xec47NuZ72-b7605f90”, “Local/[email protected]|300|Hg”) in new stack
[Nov 26 22:20:31] VERBOSE[15781] logger.c: – Called [email protected]
[Nov 26 22:20:31] VERBOSE[15782] logger.c: – Executing [[email protected]:1] Macro(“Local/[email protected],2”, “user-callerid|SKIPTTL|”) in new stack
[Nov 26 22:20:31] VERBOSE[15782] logger.c: – Executing [[email protected]:1] Set(“Local/[email protected],2”, “AMPUSER=8639876543”) in new stack

Outbound via IVR to extension with Follow-Me:

[Nov 26 22:14:49] VERBOSE[15740] logger.c: dialparties.agi: Caller ID name is ‘My Cellphone Name’ number is ‘8639876543’
[Nov 26 22:14:49] VERBOSE[15740] logger.c: dialparties.agi: Methodology of ring is ‘ringall’
[Nov 26 22:14:49] VERBOSE[15740] logger.c: – Executing [[email protected]:7] Dial(“Local/FMGL-9411234567#@from-internal-64cb,2”, “Local/[email protected]/n|20|trwM(auto-blkvm)”) in new stack
[Nov 26 22:14:49] VERBOSE[15740] logger.c: – Called [email protected]/n
[Nov 26 22:14:49] VERBOSE[15735] logger.c: – Local/FMGL-9411234567#@from-internal-64cb,1 is ringing
[Nov 26 22:14:49] VERBOSE[15745] logger.c: – Executing [[email protected]:1] Macro(“Local/[email protected],2”, “user-callerid|SKIPTTL|”) in new stack
[Nov 26 22:14:49] VERBOSE[15745] logger.c: – Executing [[email protected]:1] Set(“Local/[email protected],2”, “AMPUSER=8639876543”) in new stack

Ok, I removed the outbound CID from the trunks and moved it to each internal extension’s outbound CID. Now the correct caller ID is passed to the external number when the IVR goes to the follow-on extension. Thanks for helping me work through this!