Skip to main content

What possibilities do I have using the number conversion table of a channel (config line 254 - 283)




With the ‘Kofax Communication Server’ (KCS) we have two ways to do number conversion:

  • Conversion via rr99, which is global for the whole system.
  • Conversion via the ‘number conversion table’ (config line 254 – 283) which is valid for the specific channel. For outgoing calls the number is firstly converted by the rr99, then by the number conversion table. After these two conversions the configured dial-out prefix (config line 131 – 133) will be applied.

For incoming calls, first the number conversion table comes into play, then the rr99.

Note: The “maximum length of an inbound DID number” (config line 236, 239) will be checked after the number conversion table, but before the rr99.

This article contains a summary of all possible commands of the number conversion table with a quick reference for the use of these commands. For more information or details on specific use cases please have a closer look at the manuals.

The UTF/UIF can modify any incoming number (via DID, DDI or DMTF) or outgoing number with a configured number conversion table before it’s interpreted as an in-/outbound number or command.

The received number is searched for in the conversion table starting with the first line. If a match is found the number will be converted according to the specified ‘replace string’ and all further lines are ignored. If no match is found the number remains unchanged.

Searching is done separately for all received number types, e.g. for an inbound call, searching is done for the received DDI number and also for the received caller ID.

Syntax of number conversion line:
    <number type><search string>=<replace string>

  • <number type>

A single character specifies the type of incoming number for which the conversion should be used. This allows for different handling for numbers received from different sources.

Number Type Conversion is used for
1 Received DID/DDI or MSN number
2 DTMF input
3 DID/DDI/MSN number and/or DTMF input. (It has the same effect as one line with type "1" and the same line with type "2")
4 Conversion of DID/DDI/MSN or DMTF number to fax CSI (Called Station Identification) (only inbound)
8 Outgoing fax or voice numbers
@ Calling party number (for incoming calls) converts received called ID before it is used as originator or for originator based routing
A Redirecting number (for incoming calls)
C Calling party number (for outgoing calls)
L Call Rerouting number (for Loop detection with outgoing calls)
  • <search string>

If the number type is ok, then the number will be compared with the search string. It may contain ‘?’ (question mark) or ‘~’ (tilde) as wildcard characters. The number of wildcards is not restricted.

Not all digits of the number must be taken into account in the search string e.g. it is possible to check only the first 3 digits of the number (see examples below).

Search String Description
? Replaces any single character
[?n] Named variable to store a different single character of the number ("n" represents any number between "0" and "9")

Replaces a variable number of characters (or none). If it is followed by any character sequence (until ‘?’, ‘~’ or ‘=’) all characters until the sequence are matched by the ‘~’. If the following sequence does not occur in the number the comparison will be continued with the next line in the number conversion table.

‘?’ or ‘~’ immediately after ‘~’ is not allowed.

Take care of the DDI timeout and length, configured in config line 285 (default 5 seconds and 16 digits)

[~n] Named variable to store different parts of the number ("n" represents any number between "0" and "9")
  • <replace string>

This may be any character sequence. There’s no restriction.

The matched parts of the search string are inserted at the ‘?’ of ‘~’ position in the replace string. (the nth wildcard in replace string is replaced by the nth matching part of the search string).

Replace string Direction Description



Replaces any single character



Named variable to replace a different single characters of the number ("n" represents any number between "0" and "9")



Replaces the variable part of the search string



Named variable to replace different parts of the number ("n" represents any number between "0" and "9")



Used as separator for own calling number LOOPTEST inbound Activates loop for Bit Error Rate Tests (BERT)



1 second pause (for 2 stage dialing)


4 seconds pause (for 2 stage dialing)


If the converted number contains an "R" character, its first occurrence will be replaced by the received redirecting number after applying the number conversion rules (type "A" with fallback to type "@") for the redirecting number.


Fax Sub Address

It should be used if your telephone line does not support DDI/DID/MSN. In that case the KCS will always receive the Fax Sub Address and use for inbound routing (using rr99).



An additional prompt for DMTF input will be used (default timeout 10s)



An additional prompt for DMTF input will be used, where xx is timeout in seconds



Separator for 2nd dialing stage, subsequent number sent after an alert message (other side ringing)



Separator for 2nd dialing stage, subsequent number sent after the connection to distant station is established



activates binary trace


Enable channel for voice calls (must be on first position after ‘=’)

See attached pdf.

Trace number conversions

To activate a TCOSS trace for number conversion, activate the ISDN signaling and number conversion trace by setting registry key


where xxx is the number of the Lanlink configured for this channel. Changing only the traceflag does not require a TCOSS restart to be activated, it is updated automatically within 60 seconds.

Special use cases

Binary Trace for Specific Originators

If you e.g. have a non-reproducible reception problem on an ISDN line (with many channels) it is recommended to selectively activate the binary trace depending on the DDI/MSN number or caller ID.



(Config line 242 pos 5 and 6 set to 00 otherwise binary trace is activated for all messages)

The received number or the caller ID of incoming fax calls must be converted to a number that ends with the string “<T>“, this activates the binary trace.

The “<T>“-switch will be removed from the converted number before the number is used for e.g. inbound routing.

An example number conversion table is shown below:

256: '183=83<T> ,
257: '@~41=~41<T> ,

Line 256 activates the binary trace for all incoming fax calls with DDI/MSN/DID number 83. Line 257 activates the binary trace for all incoming fax calls where the caller ID ends with 41.



Optionally the modification in the number conversion table should be changed back.

Note: to activate the binary trace for outgoing faxes, route the fax to a specific channel (via rr99) where binary traces are activated (config line 232 and 242).

Bit Error Rate Testing:

To activate BER testing the incoming number has to be converted with the number conversion table in the fax module to the string “LOOPTEST”. When dialling the “LOOPTEST” number, a loop test confirmation prompt (1s 880Hz followed by 1s 700Hz) will be played and afterwards the LS1 will echo all received data on this channel without modification.

Convert an incoming number to the string “LOOPTEST”

Example of number conversion table:

’199=LOOPTEST60 ,

If number “00” is called a test loop with the default time-out (=4000s) is activated. If number “99” is called a test loop with a time-out of 60s (1min) is activated.

If you do not have any free DDI/MSN number you can configure a DTMF Prompt and you can define any DTMF number that activates the Loop test.

Example for loop test activation via extra DTMF prompt:
        ’100=T10 ,
        ’24711=LOOPTEST ,

If you make an incoming call to number “00” you will get a DTMF prompt. If you then enter the number “4711” a loop test will be started.

Configuring Own Telephone Number

If you want to use a user-independent calling party number, the special rr99 routing directory is not necessary.

You just need two lines in the number conversion table as shown in the example below:

This is especially used for dial peer matching in FoIP. 

‘8I~=I839%~ ,Calling Party number = 839 for internal calls
‘8~=839%~ ,Calling Party number = 839 for external calls

Inbound routing according to length of number

If you want to route a call according to the length of the inbound number, the order of the conversion lines is important:

‘3?????~=V900 , 254
‘3?????=V500 , 255
‘3????=V400 , 256
‘3???=V300 , 257

An incoming call with 6 or more digits will match in all lines, but as the rule says “first match first win”, line 254 will convert the number to V900. A number with 5 digits will first match with line 255 and so on.

Redirecting number for Message Wait Indication (MWI)

Assume the following (complex) scenario: customer is using TC/VoiceAccess running via a LS1 server, but the PBX does not support QSIG MWI signalling (like Alcatel OmniPCX 4400 3.2/4.2/5.0). Therefore a dedicated TC20 HW-based line server sends MWI messages via a/b line (with extension „1234”) towards the PBX (using DTMF signalling).

For such a scenario we need to convert the redirecting number „1234” to the VoiceAccess number „9999” (without the „V” prefix):

’A1234=9999 ,254 convert the redirecting number
’19999=V9999 ,255 identify call to 9999 as voice calls

Applies to

Keywords: RR99, ARR99, config, line, Routing, number conversion