Removing a prefix

I pretty much run Asterisk personally just to learn it, so I experiment with stuff, and If I break it it’s no big deal. I might have a few questions as I’m figuring things out.

Say, for instance I want to create a fake area code, such as 333 and prefix the number with 1-333, but, I want to remove the 1-333 when the number is dialed on a trunk. Like, if I were to dial 1-333-1308, but only 1308 is passed to the trunk. I used to know how to do this but I forget.

There are examples of this in the sample extensions.conf.

The ${EXTEN} variable properly has the syntax ${EXTEN : x : y } , where x is the starting position and y is the number of digits to return. Given the following dial string:


we can extract the following digit strings using the ${EXTEN:x : y } construct:

  • ${EXTEN:1:3} would contain 416
  • ${EXTEN:4:7} would contain 9671111
  • ${EXTEN:-4:4} would start four digits from the end and return four digits, giving us 1111
  • ${EXTEN:2:-4} would start two digits in and exclude the last four digits, giving us 16967
  • ${EXTEN:-6:-4} would start six digits from the end and exclude the last four digits, giving us 67
  • ${EXTEN:1} would give us everything after the first digit, or 4169671111 (if the number of digits to return is left blank, it will return the entire remaining string)
    Building an Interactive Dialplan

This really applies to the ${.....} operator, in general, whether used with variables, functions, or functions, like EXTEN, pretending to be variables.

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