Dieses Dokument enthält eine Beispielkonfiguration für die Erstellung skalierbarer Wählpläne für ein VoIP-Netzwerk mithilfe von IOS-Übersetzungsregeln. Häufig tritt bei der Installation integrierter Sprach- und Datennetzwerke das Problem auf, wie die Nummernpläne der einzelnen Bereiche an verschiedenen Standorten verwaltet werden. Je nach Art der Vermittlung, Signalisierungsprotokollstandards und sogar Standort kann der Service Provider ähnliche Nummernbereiche an die Teilnehmergeräte an jedem Remote-Standort weitergeben. Wenn diese Anrufe an einen zentralen Standort zurückgeleitet werden, kann es zu Überschneidungen bei den angerufenen Nummern kommen, die von jedem der Remote-Standorte ausgehen. Da das PBX die Weiterleitungsentscheidung auf der Grundlage eindeutiger angerufener Nummern trifft, kann dies zu Problemen mit den ACD-Warteschlangen (Automatic Call Distribution) auf PBX-Systemen führen. Beispielsweise müssen Anrufe von jedem Standort aus möglicherweise an bestimmte Telefonisten weitergeleitet werden, die die lokale Sprache sprechen, von der der Anruf ausging. Wenn sich die angerufenen Nummern der Standorte überschneiden, gibt es keine Möglichkeit, den Ursprung eines Anrufs zu identifizieren. Daher kann das PBX-System den Anruf nicht an die richtige ACD-Warteschlange weiterleiten.
Einige entfernte Standorte verfügen über einen zweistelligen Bereich für individuelle Nummern, während andere Standorte einen 3- oder 4-stelligen Bereich für individuelle Nummern haben. Die angerufenen Nummern können also zwischen [00 - 99] und [0000 - 9999] liegen. Bei diesen Nummernbereichen würde der Router am Hauptstandort Konfigurationen für 2-, 3- und 4-stellige Nummernpläne benötigen. Dies könnte die Router-Konfiguration komplexer machen.
Die Lösung für dieses Problem besteht darin, an jedem Remote-Standort IOS-Ziffernübersetzungsregeln zu verwenden, um Ziffern dem Nummernbereich vorzustellen, der vom Telefonnetzwerk empfangen wird. Auf diese Weise wird ein standardmäßiger Nummernplan für das Kundennetzwerk erstellt, und neue Standorte können nach und nach hinzugefügt werden, ohne dass größere Änderungen am Rest des Netzwerks erforderlich sind.
Hinweis: Mit Cisco IOS-Ziffernübersetzungsregeln können Benutzer die automatischen Nummern zur Rufnummernerkennung (Automatic Number Identification, ANI) eines Anrufs, d. h. die anrufende Nummer, oder die DNIS-Ziffern (Dialed Number Identification Service, gewählte Nummer) eines Anrufs, d. h. die angerufene Nummer, bearbeiten. Optional können die Nummerierungsarten dieser Felder auch mithilfe der Übersetzungsregeln geändert werden.
In der in diesem Dokument vorgestellten Fallstudie wird das Ziel verfolgt, den Nummernplan zu standardisieren. Vorschläge:
Verwenden Sie einen Trunk-Zugriffscode.
Verwenden Sie eine Standort- (Ortsvorwahl). Dies ist eine einfache Methode zur Erstellung eines eindeutigen Standortcodes, um die lokale PSTN-Ortsvorwahl des Remote-Standorts zu verwenden.
Erweitern (ausblenden) Sie die ursprünglich angerufene Nummer mit führenden Nullen, um eine vierstellige Durchwahlnummer zu erhalten.
Die Leser müssen über folgende Kenntnisse verfügen:
Konfigurieren von Voice und Port-Dial-Peer
Die Informationen in diesem Dokument basierend auf folgenden Software- und Hardware-Versionen:
Cisco 3660- und 7206VXR-Router mit IOS-Version 12.3(4)
IOS-Übersetzungsregeln wurden in IOS-Version 12.07XK1 eingeführt und sind auf allen Cisco Plattformen verfügbar, die Sprach-Ports unterstützen.
Die Informationen in diesem Dokument beziehen sich auf Geräte in einer speziell eingerichteten Testumgebung. Alle Geräte, die in diesem Dokument benutzt wurden, begannen mit einer gelöschten (Nichterfüllungs) Konfiguration. Wenn sich Ihr Netzwerk in der Produktionsumgebung befindet, müssen Sie sich bei jedem Befehl zunächst dessen potenzielle Auswirkungen vor Augen führen.
Weitere Informationen zu Dokumentkonventionen finden Sie unter Cisco Technical Tips Conventions (Technische Tipps von Cisco zu Konventionen).
In diesem Abschnitt wird die Implementierung der Übersetzungsregeln anhand des Beispiels "Kalkutta (entfernter Standort)" erläutert. Weitere Informationen finden Sie im Netzwerkdiagramm.
In unserem Beispiel verfügt der Remote-Standort (Kalkutta) über einen E1-Trunk, der eine dreistellige Wählzeichenfolge im Bereich von 000 bis 999 weiterleitet. Der Router am Hauptstandort akzeptiert Anrufe von mehreren Remote-Standorten, die auch den Bereich von 000 bis 999 abdecken können.
Übersetzungsregeln werden im Calcutta-Router verwendet, um einen Standortcode vorzustellen, der Anrufe von Calcutta (basierend auf der angerufenen Nummer) an die PBX des Hauptstandorts eindeutig identifiziert. Als Standortcode wird beispielsweise die Ortsvorwahl-Ziffernfolge "033" verwendet. Darüber hinaus wird eine Trunk-Zugriffscodeziffer hinzugefügt, um die Auswahl bestimmter Trunks am Zielrouter des Hauptstandorts zu ermöglichen. Diese Anweisungen veranschaulichen den Übersetzungsprozess im Calcutta-Router:
Ursprüngliche angerufene Nummer (3 beliebige Ziffern im Bereich von 000 bis 999): " ... "
Angerufene Nummer - "1033... "Ziffer "1": Trunk-Zugriffscode, Ziffern "033": Standortcode
Wenn ein Anruf von der Kalkutta-Site getätigt wird, wendet der Kalkutta-Router die Übersetzungsregel an, die auf seinen POTS-Sprach-Port angewendet wird. Dies können Sie in der Voice-Port 1/0:1-Konfiguration des Routers in Kalkutta überprüfen.
Die Übersetzungsregel wird auf den Sprach-Port angewendet, über den der Anruf beim Router eingeht. Wenn ein Anruf vom Telefonnetzwerk zum Router eingeht, wird die angerufene Nummer umgewandelt, bevor sie mit anderen DFÜ-Peers abgeglichen wird.
Die Übersetzungsregel wird für die Kalkutta-Site für die gewählte Nummer 987 zum Hauptstandort wie folgt angewendet.
Bei der angerufenen dreistelligen Zahl 987 wird die erste Ziffer 9 vom LHS (linke Seite) genommen und in der Übersetzungsregel zum Ersetzen der Ziffern verglichen.
Die Ersetzungsnummer für 9 in der Übersetzungsregel ist - 103309. Diese Nummer wird für die erste Ziffer 9 ersetzt.
Nach dem Ersetzen der ersten Ziffer 9 durch 103309 werden die verbleibenden 2 Ziffern - 87 der ersetzten Ziffer 103309 vorangestellt, die zu 10330987 wird, und der Anruf wird an den VoIP-Dial-Peer weitergeleitet, wenn das Zielmuster - 10330... übereinstimmt.
Zwei weitere Remote-Standorte müssen in das Netzwerk integriert werden. Der Standort Neu-Delhi verwendet einen zweistelligen indischen Bereich, während der Standort Chennai einen vierstelligen indischen Bereich verwendet. Wenn Sie der angerufenen Nummer einen Trunk-Zugriffscode und einen Standortcode voranstellen, haben Sie jetzt folgenden Wählplan:
Dieser Trunk-Zugriffs-/Standortcode... | ...stellt diesen Wählplan dar. |
---|---|
" 1011. " | 2-stellige Ziffer mit der Ortsvorwahl 011 |
" 1033... " | 3-stellige Ziffer mit der Ortsvorwahl 033 |
1044 .... | 4-stellige Ziffer mit der Ortsvorwahl 044 |
Dieser Wählplan besteht aus 6-, 7- und 8-stelligen Nummern und kann daher standardisiert werden, indem die ursprünglich angerufenen Nummern mit führenden Nullen aufgefüllt werden, um einen 1-stelligen Zugriffscode, einen 3-stelligen Standortcode und eine 4-stellige Durchwahl zu erhalten:
Dieser Trunk-Zugriffs-/Standortcode... | ...wird übersetzt in |
---|---|
" 1011. " | " 101100. " |
" 1033... " | " 10330... " |
1044 .... | " 1044...." |
Der Nummernplan am Gateway/Router des Hauptstandorts umfasst nun acht konsistente Ziffern: (1-stelliger Trunk-Zugriffscode, 3-stelliger Standortcode und 4-stellige angerufene Nummer, aufgefüllt mit führenden Nullen). Sobald der Anruf das Gateway/den Router am Hauptstandort erreicht, wird der Zugriffscode entfernt, und die folgenden sieben Ziffern werden an die Telefonanlage gesendet.
In diesem Anwenderbericht gibt es drei Remote-Standorte (Neu Delhi, Kalkutta und Chennai), die VoIP-Anrufe an das Call Center des Hauptstandorts weiterleiten. Der Kunde benötigt ein System, das Anrufe nur von entfernten Standorten an den Hauptstandort weiterleitet. Rückrufe vom Hauptstandort zu den Remote-Standorten sind nicht vorgesehen. Das Gateway/der Router am Hauptstandort verfügt über 4 Trunks, die mit der Callcenter-PBX-Anlage verbunden sind.
Hinweis: Verwenden Sie das Tool für die Suche nach Befehlen (nur für registrierte Kunden), um weitere Informationen zu den in diesem Abschnitt verwendeten Befehlen zu erhalten.
In diesem Dokument wird die Netzwerkkonfiguration verwendet, die in der folgenden Abbildung dargestellt ist:
In diesem Dokument werden die folgenden Konfigurationen verwendet:
Neu-Delhi (zweistelliger Anfangsbereich) |
---|
!--- Only relevant "IOS translation rule" output is presented ! translation-rule 1 !-- The "1" above is the tag for the set. rule 0 ^0. 1011000 rule 1 ^1. 1011001 rule 2 ^2. 1011002 rule 3 ^3. 1011003 rule 4 ^4. 1011004 rule 5 ^5. 1011005 rule 6 ^6. 1011006 rule 7 ^7. 1011007 rule 8 ^8. 1011008 rule 9 ^9. 1011009 ! !-- These rules replace the first digit of a 2-digit number with the corresponding !-- translation. The router looks for a 2-digit number starting with a leading [0-9]. !-- The caret, "^" ensures the match only happens at the start of the digit string !-- rather than any occurrence in a digit string. This ensures the router makes the !-- translation only for the leading digits. By default, if an explicit match is made !-- on a digit (in this case the first digit) the router replaces it with the new !-- digits. Therefore, to keep the original numbering, the matched digit needs to be !-- replaced with the same digit at the end of the modified string. Once the call !-- comes in, the called number prepended with 101100 followed by the !-- original 2 digits. ! voice-port 1/0:1 translate called 1 cptone IN compand-type a-law ! !-- The translation rule is applied to the voice port where the !-- call comes in to the router. When a call comes in from the !-- telephone network towards the router, the called number !-- is translated before it is matched on any dial peers. ! dial-peer voice 100 voip destination-pattern 101100.. session target ipv4:main site IP address ip precedence 5 dtmf-relay h245-alphanumeric ! !-- The VoIP dial peer needs to be configured to match on the new numbering plan |
Kalkutta (3-stelliger individueller Bereich) |
---|
!--- Only relevant output is presented ! translation-rule 1 rule 0 ^0.. 103300 rule 1 ^1.. 103301 rule 2 ^2.. 103302 rule 3 ^3.. 103303 rule 4 ^4.. 103304 rule 5 ^5.. 103305 rule 6 ^6.. 103306 rule 7 ^7.. 103307 rule 8 ^8.. 103308 rule 9 ^9.. 103309 ! !-- The router looks for a 3-digit called number in the range 000 - 999. It !-- then prepends 10330 to this number before making a match on any other dial peers. !-- Note: rules are executed before incoming POTS dial peer matching takes place. ! voice-port 1/0:1 translate called 1 !-- The translation rule is applied to the voice port: cptone IN compand-type a-law ! dial-peer voice 100 voip destination-pattern 10330... session target ipv4:main site IP address ip precedence 5 dtmf-relay h245-alphanumeric ! !-- The VoIP dial peer needs to be configured to match on the new numbering plan. |
Chennai (4-stelliger Anfangsbereich) |
---|
! translation-rule 11 rule 0 ^0... 10440 rule 1 ^1... 10441 rule 2 ^2... 10442 rule 3 ^3... 10443 rule 4 ^4... 10444 rule 5 ^5... 10445 rule 6 ^6... 10446 rule 7 ^7... 10447 rule 8 ^8... 10448 rule 9 ^9... 10449 ! !-- The router looks for a 4-digit called !-- number in the range 0000 - 9999. !-- It then prepends 1044 to this number !-- before making a match on any other dial peers. ! voice-port 1/0:1 translate called 1 cptone IN compand-type a-law ! !-- The translation rule is applied to the voice port: dial-peer voice 100 voip destination-pattern 1044…. session target ipv4:main site IP address ip precedence 5 dtmf-relay h245-alphanumeric ! !-- The VoIP dial peer needs to be configured to match on the new numbering plan |
Hauptstandort |
---|
!-- By default, in POTS dial peers, matched digits get stripped off after a dial !-- peer is matched. Then, the remaining digits are outputed to the PSTN/PBX. dial-peer voice 20 pots description - Call Center voice port 2/0 destination-pattern 1....... port 2/0:1 ! dial-peer voice 21 pots description - Call Center voice port 2/1 destination-pattern 1....... port 2/1:1 ! dial-peer voice 30 pots description - Call Center voice port 3/0 destination-pattern 1....... port 3/0:1 ! dial-peer voice 31 pots description - Call Center voice port 3/1 destination-pattern 1....... port 3/1:1 ! !-- The trunk access code (leading 1) can be used to route the call out the Main Site !-- router towards the Call-Center PBX. This digit is stripped off and the following !-- 7 digits are sent to the external PBX. A single dial peer for each active voice !-- port on the main site gateway router directs calls from the remote sites to !-- the PBX. |
Hinweis: Da für das PBX-System am Hauptstandort kein Trunk-Zugriffscode erforderlich ist, würde der Router am Hauptstandort diesen entfernen. Aus diesem Grund wird der Anruf beim PBX-System des Hauptstandorts durch einen dreistelligen Standortcode und die vierstellige Durchwahl identifiziert. Das PBX-System würde einige Konfigurationsänderungen benötigen, um diesem Nummernplan zu entsprechen. Der Vorteil besteht jedoch darin, dass es den Standortcode der angerufenen Nummer erkennen und den Anruf an eine bestimmte ACD-Warteschlange weiterleiten kann, die für jeden Standort eingerichtet wurde. Wenn ein Anruf aus einer bestimmten Region eingeht, wird er an Mitarbeiter weitergeleitet, die die Landessprache sprechen.
Hinweis: Weitere Informationen zu Befehlen finden Sie im Command Lookup Tool (nur registrierte Kunden) .
Diese Abschnitt enthält Informationen, mit denen Sie überprüfen können, ob Ihre Konfiguration ordnungsgemäß funktioniert.
Einige Befehle des Typs show werden vom Tool Output Interpreter unterstützt (nur für registrierte Kunden), mit dem sich Analysen der Ausgabe von Befehlen des Typs show abrufen lassen.
test translation-rule name-tag input-number - Wird verwendet, um die Ausführung der Übersetzungsregeln für ein bestimmtes Namensschild zu testen. Die Syntax für diesen Befehl wird in der folgenden Tabelle beschrieben:
Syntax | Beschreibung |
---|---|
name-tag
|
Die Tag-Nummer, mit der auf den Regelsatz verwiesen wird. |
input-number
|
Die Eingabezeichenfolge von Ziffern, für die eine Mustervergleich durchgeführt wird. |
show translation-rule [name-tag] - Dient zum Anzeigen des Inhalts der Regeln, die für einen bestimmten Übersetzungsnamen konfiguriert wurden. Die Syntax für diesen Befehl wird in der folgenden Tabelle beschrieben:
Syntax | Beschreibung |
---|---|
name-tag
|
(Optional) Die Tag-Nummer, mit der auf den Regelsatz verwiesen wird |
Diese Ausgabe wurde vom NewDelhi-Router erfasst, der die Übersetzungsregeln anzeigt, die beim Wählen von der NewDelhi-Website angewendet wurden.
NewDelhi - Ausgabe |
---|
!-- It is possible to confirm the translation rules are working: ! ! NewDelhi# test translation-rule 1 99 !-- Original called number is "99" The replaced number: 10110099 !-- Translated to 8 digits NewDelhi# show translation-rule 1 Translation rule address: 0x64ADC2A8 Tag name: 1 Translation rule in_used 1 **** Xrule rule table ******* Rule : 0 in_used state: 1 Match pattern: ^0. Sub pattern: 1011000 **** Xrule rule table ******* Rule : 1 in_used state: 1 Match pattern: ^1. Sub pattern: 1011001 **** Xrule rule table ******* Rule : 2 in_used state: 1 Match pattern: ^2. Sub pattern: 1011002 **** Xrule rule table ******* Rule : 3 in_used state: 1 Match pattern: ^3. Sub pattern: 1011003 **** Xrule rule table ******* Rule : 4 in_used state: 1 Match pattern: ^4. Sub pattern: 1011004 **** Xrule rule table ******* Rule : 5 in_used state: 1 Match pattern: ^5. Sub pattern: 1011005 **** Xrule rule table ******* Rule : 6 in_used state: 1 Match pattern: ^6. Sub pattern: 1011006 **** Xrule rule table ******* Rule : 7 in_used state: 1 Match pattern: ^7. Sub pattern: 1011007 **** Xrule rule table ******* Rule : 8 in_used state: 1 Match pattern: ^8. Sub pattern: 1011008 **** Xrule rule table ******* Rule : 9 in_used state: 1 Match pattern: ^9. Sub pattern: 1011009 NewDelhi# |
In diesem Abschnitt finden Sie Informationen zur Behebung von Fehlern in Ihrer Konfiguration.
Hinweis: Bevor Sie Debug-Befehle ausgeben, lesen Sie Wichtige Informationen zu Debug-Befehlen.
debug translation {detail | min} - Wird zum Debuggen von Zahlenübersetzungsabläufen mit den in dieser Tabelle beschriebenen Optionen verwendet:
Option | Beschreibung |
---|---|
detail |
Aktiviert eine detaillierte Debugablaufverfolgung. |
min |
Aktiviert eine minimale Debugablaufverfolgung. |
NewDelhi - Ausgabe |
---|
NewDelhi#debug translation detail xrule detail tracing is enabled *Apr 4 04:52:57.124: xrule_checking *Apr 4 04:52:57.124: xrule_checking calling , called *Apr 4 04:52:57.124: xrule_checking peer_tag 0, direction 1, protocol 6 *Apr 4 04:52:57.124: xrule_translation *Apr 4 04:52:57.124: xrule_translation callednumber , strlen 0 *Apr 4 04:52:57.124: xrule_translation callednumber null xruleCalledTag=1 *Apr 4 04:52:57.124: xrule_translation called Callparms Numpertype 0x81, match_type 0x0 *Apr 4 04:52:57.124: xrule_translation Xrule index 0, Numpertype 0x9 *Apr 4 04:52:57.124: dpMatchString, target_number null, match_number ^0. *Apr 4 04:52:57.124: dpMatchString match_tmp 0, match_len 1 *Apr 4 04:52:57.124: dpMatchString beginning_replace 1, match_tmp 0,target null *Apr 4 04:52:57.124: dpMatchString: len 4 *Apr 4 04:52:57.124: xrule_translation there was no match index 0 *Apr 4 04:52:57.124: xrule_translation called Callparms Numpertype 0x81, match_type 0x0 *Apr 4 04:52:57.124: xrule_translation Xrule index 1, Numpertype 0x9 *Apr 4 04:52:57.124: dpMatchString, target_number null, match_number ^1. *Apr 4 04:52:57.124: dpMatchString match_tmp 1, match_len 1 *Apr 4 04:52:57.124: dpMatchString beginning_replace 1, match_tmp 1,target null *Apr 4 04:52:57.124: dpMatchString: len 4 *Apr 4 04:52:57.124: xrule_translation there was no match index 1 *Apr 4 04:52:57.124: xrule_translation called Callparms Numpertype 0x81, match_type 0x0 *Apr 4 04:52:57.124: xrule_translation Xrule index 2, Numpertype 0x9 *Apr 4 04:52:57.124: dpMatchString, target_number null, match_number ^2. *Apr 4 04:52:57.124: dpMatchString match_tmp 2, match_len 1 *Apr 4 04:52:57.124: dpMatchString beginning_replace 1, match_tmp 2,target null *Apr 4 04:52:57.124: dpMatchString: len 4 *Apr 4 04:52:57.124: xrule_translation there was no match index 2 *Apr 4 04:52:57.124: xrule_translation called Callparms Numpertype 0x81, match_type 0x0 *Apr 4 04:52:57.124: xrule_translation Xrule index 3, Numpertype 0x9 *Apr 4 04:52:57.124: dpMatchString, target_number null, match_number ^3. *Apr 4 04:52:57.124: dpMatchString match_tmp 3, match_len 1 *Apr 4 04:52:57.124: dpMatchString beginning_replace 1, match_tmp 3,target null *Apr 4 04:52:57.124: dpMatchString: len 4 *Apr 4 04:52:57.124: xrule_translation there was no match index 3 *Apr 4 04:52:57.124: xrule_translation called Callparms Numpertype 0x81, match_type 0x0 *Apr 4 04:52:57.124: xrule_translation Xrule index 4, Numpertype 0x9 *Apr 4 04:52:57.124: dpMatchString, target_number null, match_number ^4. *Apr 4 04:52:57.124: dpMatchString match_tmp 4, match_len 1 *Apr 4 04:52:57.124: dpMatchString beginning_replace 1, match_tmp 4,target null *Apr 4 04:52:57.124: dpMatchString: len 4 *Apr 4 04:52:57.124: xrule_translation there was no match index 4 *Apr 4 04:52:57.124: xrule_translation called Callparms Numpertype 0x81, match_type 0x0 *Apr 4 04:52:57.124: xrule_translation Xrule index 5, Numpertype 0x9 *Apr 4 04:52:57.124: dpMatchString, target_number null, match_number ^5. *Apr 4 04:52:57.124: dpMatchString match_tmp 5, match_len 1 *Apr 4 04:52:57.124: dpMatchString beginning_replace 1, match_tmp 5,target null *Apr 4 04:52:57.124: dpMatchString: len 4 *Apr 4 04:52:57.124: xrule_translation there was no match index 5 *Apr 4 04:52:57.124: xrule_translation called Callparms Numpertype 0x81, match_type 0x0 *Apr 4 04:52:57.124: xrule_translation Xrule index 6, Numpertype 0x9 *Apr 4 04:52:57.124: dpMatchString, target_number null, match_number ^6. *Apr 4 04:52:57.124: dpMatchString match_tmp 6, match_len 1 *Apr 4 04:52:57.124: dpMatchString beginning_replace 1, match_tmp 6,target null *Apr 4 04:52:57.124: dpMatchString: len 4 *Apr 4 04:52:57.124: xrule_translation there was no match index 6 *Apr 4 04:52:57.124: xrule_translation called Callparms Numpertype 0x81, match_type 0x0 *Apr 4 04:52:57.124: xrule_translation Xrule index 7, Numpertype 0x9 *Apr 4 04:52:57.124: dpMatchString, target_number null, match_number ^7. *Apr 4 04:52:57.124: dpMatchString match_tmp 7, match_len 1 *Apr 4 04:52:57.124: dpMatchString beginning_replace 1, match_tmp 7,target null *Apr 4 04:52:57.124: dpMatchString: len 4 *Apr 4 04:52:57.124: xrule_translation there was no match index 7 *Apr 4 04:52:57.124: xrule_translation called Callparms Numpertype 0x81, match_type 0x0 *Apr 4 04:52:57.124: xrule_translation Xrule index 8, Numpertype 0x9 *Apr 4 04:52:57.124: dpMatchString, target_number null, match_number ^8. *Apr 4 04:52:57.124: dpMatchString match_tmp 8, match_len 1 *Apr 4 04:52:57.124: dpMatchString beginning_replace 1, match_tmp 8,target null *Apr 4 04:52:57.124: dpMatchString: len 4 *Apr 4 04:52:57.124: xrule_translation there was no match index 8 *Apr 4 04:52:57.124: xrule_translation called Callparms Numpertype 0x81, match_type 0x0 *Apr 4 04:52:57.124: xrule_translation Xrule index 9, Numpertype 0x9 *Apr 4 04:52:57.124: dpMatchString, target_number null, match_number ^9. *Apr 4 04:52:57.124: dpMatchString match_tmp 9, match_len 1 *Apr 4 04:52:57.124: dpMatchString beginning_replace 1, match_tmp 9,target null *Apr 4 04:52:57.124: dpMatchString: len 4 *Apr 4 04:52:57.124: xrule_translation there was no match index 9 *Apr 4 04:52:57.124: xrule_translation Return rc = -4 any_match 0 *Apr 4 04:52:57.124: xrule_checking Return rc = -4 *Apr 4 04:52:59.396: xrule_checking *Apr 4 04:52:59.396: xrule_checking calling , called 9 *Apr 4 04:52:59.396: xrule_checking peer_tag 0, direction 1, protocol 6 *Apr 4 04:52:59.396: xrule_translation *Apr 4 04:52:59.396: xrule_translation callednumber 9, strlen 1 *Apr 4 04:52:59.396: xrule_translation callednumber 9 xruleCalledTag=1 *Apr 4 04:52:59.396: xrule_translation called Callparms Numpertype 0x0, match_type 0x0 *Apr 4 04:52:59.396: xrule_translation Xrule index 0, Numpertype 0x9 *Apr 4 04:52:59.396: dpMatchString, target_number 9, match_number ^0. *Apr 4 04:52:59.396: dpMatchString match_tmp 0, match_len 1 *Apr 4 04:52:59.396: dpMatchString beginning_replace 1, match_tmp 0,target 9 *Apr 4 04:52:59.396: dpMatchString: len 1 *Apr 4 04:52:59.396: xrule_translation there was no match index 0 *Apr 4 04:52:59.396: xrule_translation called Callparms Numpertype 0x0, match_type 0x0 *Apr 4 04:52:59.396: xrule_translation Xrule index 1, Numpertype 0x9 *Apr 4 04:52:59.396: dpMatchString, target_number 9, match_number ^1. *Apr 4 04:52:59.396: dpMatchString match_tmp 1, match_len 1 *Apr 4 04:52:59.396: dpMatchString beginning_replace 1, match_tmp 1,target 9 *Apr 4 04:52:59.396: dpMatchString: len 1 *Apr 4 04:52:59.396: xrule_translation there was no match index 1 *Apr 4 04:52:59.396: xrule_translation called Callparms Numpertype 0x0, match_type 0x0 *Apr 4 04:52:59.396: xrule_translation Xrule index 2, Numpertype 0x9 *Apr 4 04:52:59.396: dpMatchString, target_number 9, match_number ^2. *Apr 4 04:52:59.396: dpMatchString match_tmp 2, match_len 1 *Apr 4 04:52:59.396: dpMatchString beginning_replace 1, match_tmp 2,target 9 *Apr 4 04:52:59.396: dpMatchString: len 1 *Apr 4 04:52:59.396: xrule_translation there was no match index 2 *Apr 4 04:52:59.396: xrule_translation called Callparms Numpertype 0x0, match_type 0x0 *Apr 4 04:52:59.396: xrule_translation Xrule index 3, Numpertype 0x9 *Apr 4 04:52:59.396: dpMatchString, target_number 9, match_number ^3. *Apr 4 04:52:59.396: dpMatchString match_tmp 3, match_len 1 *Apr 4 04:52:59.396: dpMatchString beginning_replace 1, match_tmp 3,target 9 *Apr 4 04:52:59.396: dpMatchString: len 1 *Apr 4 04:52:59.396: xrule_translation there was no match index 3 *Apr 4 04:52:59.396: xrule_translation called Callparms Numpertype 0x0, match_type 0x0 *Apr 4 04:52:59.396: xrule_translation Xrule index 4, Numpertype 0x9 *Apr 4 04:52:59.396: dpMatchString, target_number 9, match_number ^4. *Apr 4 04:52:59.396: dpMatchString match_tmp 4, match_len 1 *Apr 4 04:52:59.396: dpMatchString beginning_replace 1, match_tmp 4,target 9 *Apr 4 04:52:59.396: dpMatchString: len 1 *Apr 4 04:52:59.396: xrule_translation there was no match index 4 *Apr 4 04:52:59.396: xrule_translation called Callparms Numpertype 0x0, match_type 0x0 *Apr 4 04:52:59.396: xrule_translation Xrule index 5, Numpertype 0x9 *Apr 4 04:52:59.396: dpMatchString, target_number 9, match_number ^5. *Apr 4 04:52:59.396: dpMatchString match_tmp 5, match_len 1 *Apr 4 04:52:59.396: dpMatchString beginning_replace 1, match_tmp 5,target 9 *Apr 4 04:52:59.396: dpMatchString: len 1 *Apr 4 04:52:59.396: xrule_translation there was no match index 5 *Apr 4 04:52:59.400: xrule_translation called Callparms Numpertype 0x0, match_type 0x0 *Apr 4 04:52:59.400: xrule_translation Xrule index 6, Numpertype 0x9 *Apr 4 04:52:59.400: dpMatchString, target_number 9, match_number ^6. *Apr 4 04:52:59.400: dpMatchString match_tmp 6, match_len 1 *Apr 4 04:52:59.400: dpMatchString beginning_replace 1, match_tmp 6,target 9 *Apr 4 04:52:59.400: dpMatchString: len 1 *Apr 4 04:52:59.400: xrule_translation there was no match index 6 *Apr 4 04:52:59.400: xrule_translation called Callparms Numpertype 0x0, match_type 0x0 *Apr 4 04:52:59.400: xrule_translation Xrule index 7, Numpertype 0x9 *Apr 4 04:52:59.400: dpMatchString, target_number 9, match_number ^7. *Apr 4 04:52:59.400: dpMatchString match_tmp 7, match_len 1 *Apr 4 04:52:59.400: dpMatchString beginning_replace 1, match_tmp 7,target 9 *Apr 4 04:52:59.400: dpMatchString: len 1 *Apr 4 04:52:59.400: xrule_translation there was no match index 7 *Apr 4 04:52:59.400: xrule_translation called Callparms Numpertype 0x0, match_type 0x0 *Apr 4 04:52:59.400: xrule_translation Xrule index 8, Numpertype 0x9 *Apr 4 04:52:59.400: dpMatchString, target_number 9, match_number ^8. *Apr 4 04:52:59.400: dpMatchString match_tmp 8, match_len 1 *Apr 4 04:52:59.400: dpMatchString beginning_replace 1, match_tmp 8,target 9 *Apr 4 04:52:59.400: dpMatchString: len 1 *Apr 4 04:52:59.400: xrule_translation there was no match index 8 *Apr 4 04:52:59.400: xrule_translation called Callparms Numpertype 0x0, match_type 0x0 *Apr 4 04:52:59.400: xrule_translation Xrule index 9, Numpertype 0x9 *Apr 4 04:52:59.400: dpMatchString, target_number 9, match_number ^9. *Apr 4 04:52:59.400: dpMatchString match_tmp 9, match_len 1 *Apr 4 04:52:59.400: dpMatchString beginning_replace 1, match_tmp 9,target 9 *Apr 4 04:52:59.400: dpMatchString 0. target 9,match_tmp 9,match_len 1 *Apr 4 04:52:59.400: replace_string *Apr 4 04:52:59.400: replace_string match ^9., replace 1011009 *Apr 4 04:52:59.400: translation_format replace_rule ^9., strip_proceeding 0 *Apr 4 04:52:59.400: replace_string match_tmp ^9., strip_proceeding 0 *Apr 4 04:52:59.400: replace_string match_tmp 9 *Apr 4 04:52:59.400: replace_string direction 1, callparty 2 *Apr 4 04:52:59.400: replace_string direction 1, callparty 2, target 9 *Apr 4 04:52:59.400: replace_string match_tmp 9,replace 1011009 *Apr 4 04:52:59.400: replace_string0.replace19,target,current,match_tmp *Apr 4 04:52:59.400: replace_string0.1 compare_len 1,match_len 1 *Apr 4 04:52:59.400: replace_string 3. replace1 9, compare_len 1 *Apr 4 04:52:59.400: replace_string 4. replace1 1,compare_len 0,replace 011009 *Apr 4 04:52:59.400: replace_string 4. replace1 10,compare_len -1,replace 11009 *Apr 4 04:52:59.400: replace_string 4. replace1 101,compare_len -2,replace 1009 *Apr 4 04:52:59.400: replace_string 4. replace1 1011,compare_len -3,replace 009 *Apr 4 04:52:59.400: replace_string 4. replace1 10110,compare_len -4,replace 09 *Apr 4 04:52:59.400: replace_string 4. replace1 101100,compare_len -5,replace 9 *Apr 4 04:52:59.400: replace_string 4. replace1 1011009,compare_len -6,replace *Apr 4 04:52:59.400: replace_string 5. replace1 1011009, compare_len -6,match_l en 1 *Apr 4 04:52:59.400: replace_string 6. replace1 1011009,compare_len -6,current *Apr 4 04:52:59.400: replace_string buffer 1011009 *Apr 4 04:52:59.400: xrule_translation index 9,xrule_number 1011009, callparty 2 *Apr 4 04:52:59.400: xrule_translation Return rc = 0 any_match 0 *Apr 4 04:52:59.400: xrule_checking Return rc = 0 *Apr 4 04:53:00.156: xrule_checking *Apr 4 04:53:00.156: xrule_checking calling 4444, called 10110099 *Apr 4 04:53:00.156: xrule_checking peer_tag 100, direction 2, protocol 0 *Apr 4 04:53:00.156: xrule_checking Return rc = -5 NewDelhi#debug translation min *Apr 4 02:37:17.045: xrule_checking *Apr 4 02:37:17.045: xrule_translation *Apr 4 02:37:17.045: xrule_translation callednumber , strlen 0 *Apr 4 02:37:17.045: xrule_translation callednumber null xruleCalledTag=1 *Apr 4 02:37:19.457: xrule_checking *Apr 4 02:37:19.457: xrule_translation *Apr 4 02:37:19.457: xrule_translation callednumber 9, strlen 1 *Apr 4 02:37:19.457: xrule_translation callednumber 9 xruleCalledTag=1 *Apr 4 02:37:19.457: dpMatchString 0. target 9,match_tmp 9,match_len 1 *Apr 4 02:37:19.457: replace_string *Apr 4 02:37:19.461: replace_string0.replace19,target,current,match_tmp *Apr 4 02:37:19.461: replace_string0.1 compare_len 1,match_len 1 *Apr 4 02:37:19.461: replace_string 3. replace1 9, compare_len 1 *Apr 4 02:37:19.461: replace_string 4. replace1 1,compare_len 0,replace 011009 *Apr 4 02:37:19.461: replace_string 4. replace1 10,compare_len -1,replace 11009 *Apr 4 02:37:19.461: replace_string 4. replace1 101,compare_len -2,replace 1009 *Apr 4 02:37:19.461: replace_string 4. replace1 1011,compare_len -3,replace 009 *Apr 4 02:37:19.461: replace_string 4. replace1 10110,compare_len -4,replace 09 *Apr 4 02:37:19.461: replace_string 4. replace1 101100,compare_len -5,replace 9 *Apr 4 02:37:19.461: replace_string 4. replace1 1011009,compare_len -6,replace *Apr 4 02:37:19.461: replace_string 5. replace1 1011009, compare_len -6,match_l en 1 *Apr 4 02:37:19.461: replace_string 6. replace1 1011009,compare_len -6,current *Apr 4 02:37:19.461: replace_string buffer 1011009 *Apr 4 02:37:19.461: xrule_translation index 9,xrule_number 1011009, callparty 2 *Apr 4 02:37:19.841: xrule_checking |