Inbound Call Routing, european Style

I’d like to know if there is a way to get freepbx to do DID inbound routing “european style”. Let me explain:

  • Currently supported US Style: Phone Numbers have a well defined format and length; For DID you get a seperate number from your provider and add an inbound route that matches this number to one ouf your internal extensions. CID Lookup, Blacklist etc. can be entered in these inbound routes.

  • European style: There is no fixed format or length for phone numbers. Your provider assigns just one single phone number for multiple inbound lines; However, you can append one or more digits to this assigned number. these appended digits are passed to the Freepbx system as a DID; the obvious setup is to have a 1:1 match for internal extension to appended digits, i.e all internal extensions are reachable via DID just by appending the extension number to the provider assigned number. Again, handling of these appended digits is not done inside Asterisk/Freepbx by an IVR but by the provider.

What I’d like to be able to do: define a single inbound route, specify CID Lookup etc. for this route but not have a SINGE extension/ringgroup/ivr/whatever as destination but instead be able to reach all internal extensions as dialed by the caller.

Thanks for any hints, also please correct my if my assumptions on what’s currently supported is wrong.

Btw, dialing in currently works mostly as expected: inclomming call lands in from-pstn context and get access to local extensions via
from-pstn => from-did-direct => ext-local but. However, I’m missing out on the features specified on the inbound route, esp. CID Lookup in my case.

Thanks, Martin

Obviously I haven’t been clear enough on what I actually want since you did misunderstand my requirements;

lets have an example:

  • One assigned numer from provider - 112233, full intl. format +43 (316) 112233
  • 50 internal extensions, excerpt: 103->fax, 222->user1, 225->user2, 240->user3 and so on;
  • provider will pass any number of digits dialed after the assigned number as DID.
  • desired bheaviour:
  • let IVR answer calls to +43 (316) 112233 or +43 (316) 112233-0
  • ring the dialed extension for +43 (316) 112233-xxx, xxx being one of the 50 internal extensions.
  • additional hint: if a caller dials +43(316)112233xxx the provider passes just the xxx as DID.

Now I’d like to have two inbound routes:

  • one catchall DID/CID=any/any for +43 (316) 112233 or +43 (316) 112233-0.
  • one “wildcard” route for +43(316)112233xxx ==> Extension xxx

the first one is hat inbound routes can currently do, the 2nd one currently can’t be configured using freepbx gui.

I can actually get freepbx to do what I want by having 50 inbound routes, each matching a (3-digit)DID to the identical (3-digit) extension; this doesn’t seem to be a particularely efficient configuration however.

The solution I’m currently using utilizes custom extensions.conf:

  • set context to “from-pstn-dialin-custom” for inbound calls (in chan_dahdi.conf in my case) and define have that context provide the same functionality a generated inbound route would provide

exten => _.,1,Set(__FROM_DID=${EXTEN})
exten => _.,n,Gosub(app-blacklist-check,s,1)
exten => _.,n,Gosub(cidlookup,cidlookup_2,1)
exten => _.,n,ExecIf($[ “${CALLERID(name)}” = “” ] ?Set(CALLERID(name)=${CALLERID(num)}))
exten => _.,n,SetMusicOnHold(none)
exten => _.,n,Set(__MOHCLASS=none)
exten => _.,n,Goto(from-trunk,${EXTEN},1)

An INBOUND ROUTE may be specified as a pattern match. For example,


Will match the ten (10) DIDs in the range of 12340, 12341, 12343, …, through 12349, inclusive. Do NOT forget the leading underscore ("_") character; it triggers pattern matching.

I’m not sure I understand this part of your question. If you want ALL the DIDs to ring, regardless of the exact DID dialed, then this can be done by a RING GROUP.

Sorry if I’ve misunderstood the second part of your question.