M4 Source Transformation
Source Transformation rules
Source Transformation rules are used to manipulate the Source (CallerID) number (cut prefix, add prefix). The only number part of CallerID will be changed. Rules can be set in Termination Points or Origination Points Source Transformation input field. There are 3 different Source Transformation rules:
1. Add prefix
To add something to every number, just enter what to add.
2. Cut prefix
To cut something from a number, write - (minus) character and then what to cut. For example, -00 will cut 00 from the beginning of the number (only if the number starts with 00).
3. Replace prefix
To cut something from the number and add something else (replace), write - (minus) character followed by what to cut, then + (plus) character and what to add. For example, -00+8 will cut 00 from the beginning of the number and add the digit 8 in front (00 will be replaced by 8).
Multiple rules
It is possible to define multiple Source Transformation rules in one single line. It is done by separating rules with | character:
-A+B|-C+D|-X|Z
Rules are checked in the order they are written and the first matching rule will be applied. If one rule is applied, then other rules will be skipped. This means that some rules do not make sense, for example, 00|-6+370 rule will always add 00 in front of the number and the second rule will be skipped.
The number of rules is limited only by the length of the input field (255 characters).
Examples
Incoming Source Number | Source Transformation | Outgoing Source number | Comment |
+86123456789 | -\+ | 86123456789 | cut + in front of number |
86123456789 | 00 | 0086123456789 | simple rule just adds 00 in front of number |
003706123456789 | -00 | 3706123456789 | if the number starts with digits 00, then cut them |
003706123456789 or +3706123456789 | -\+|-00 | 3706123456789 | cut + or 00 in front of number |
86123456789 | -8+370 | 3706123456789 | cut number 8 and add 370. If the number does not start with 8, then nothing will be added |
03706123456789 | -00+370|-0 | 3706123456789 | Source Transformation contains multiple rules but the first rule is skipped because the number starts with 0 and not 00. The second rule is applied and 0 is cut from the number |
3706123456789 | -00+370|-0|+ | +3706123456789 | Source Transformation contains multiple rules but the first and second rules are skipped. The last rule simply adds + to the number |
86123456789 | -8+370|00 | 3706123456789 | Source Transformation contains multiple rules but the first rule is applied and other rules are skipped |
86123456789 | -8+\+370 | +3706123456789 | if the number starts with the digit 8, then cut it and add +370. Note that + is escaped by using \ character |
Regexp Rules
Number transformation can also be done using Regexp. More information: M4 Regexp Examples