How to efficiently handle multiple DIDs?


I’m in the process of converting from Trixbox to FreePBX and I have a question regarding the best way of handling my hundreds of DIDs.

I have a few hundred DIDs that come down my T1. On my current (Trixbox) system, a caller is immediately dropped into a queue, hears a pre-recorded message, and then hold music for 30 seconds before rejoining the queue. This repeats until the call is answered.

Currently, I have a separate queue for each DID so I can preserve and present the DID on my phones so my operators know how to answer each call. This seems unwieldy and is horribly inefficient.

Does there exist a way for me to have all my DIDs enter the same queue and still pass along the individual DID to the phone?

Thanks in advance!

I haven’t tested it with queues, but couldn’t you just set the CallerID prefix on each inbound route to be some kind of identifier (or heck even the DID itself?). That way when the call shows up to the agent phone you’d know where it came from. We use this approach with ring groups all the time, works nicely as long as your prefix isn’t too long…

i.e. Prefix = “Sales:”, then when the call rings on the phone the screen shows “Sales: some caller” etc.

Hi jolouis. Thanks for your response.

I will try your suggestion. I believe I tried the same thing with Trixbox and it had no effect. Perhaps FreePBX handles it differently.


Just did some testing…

If you put ${FROM_DID} as your CID Prepend in queues it will take it and if the call came in on a DID that will be set and you will get the DID.

Inbound routes says that’s an invalid CID, which means maybe we are being a bit too restrictive so feel free to file a bug as a reminder against inbound routes that we should consider loosening how restrictive we are since … if I override that it works fine on inbound routes also. Just keep in mind that if you have 10 digit DIDs, they may get a bit long though … if you use notation like this: ${FROM_DID:6:4} on a DID that comes in as 10 digits, you would get the last 4 digits for example so that may work as well.

For your case you can do all this on the Queue already, though do feel free to add a ticket for Inbound Routes.