<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://docs.telcobridges.com/mediawiki/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://docs.telcobridges.com/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ktrueman</id>
		<title>TBwiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://docs.telcobridges.com/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ktrueman"/>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/Special:Contributions/Ktrueman"/>
		<updated>2026-04-05T07:46:28Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.18.1</generator>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/RADIUS</id>
		<title>RADIUS</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/RADIUS"/>
				<updated>2010-11-11T19:21:09Z</updated>
		
		<summary type="html">&lt;p&gt;Ktrueman: /* References */ fixed name of web site&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Remote Authentication Dial In User Service, more popularly known as RADIUS, is used by telecom service providers for the purpose of authenticating, authorizing, and accounting for the use of services by subscribers. A RADIUS server is an application server that provides this functionality. It can take as input as well as output [[call detail record]] (CDR) data.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TelcoBridges and RADIUS==&lt;br /&gt;
Starting with release [[Version 2.3|v2.3]] of [[Toolpack]], explicit support for the accounting function of RADIUS is now offered. Previously, Toolpack stored [[call detail record]] (CDR) data in a local database. Starting with Toolpack v2.3, CDR data is stored on a dedicated, external server running an implementation of the RADIUS standard. Configuration of the location of the RADIUS server is performed through the Toolpack web portal. For this initial release, Toolpack only supports the Accounting functionality of RADIUS; it does not support the Administration or Authentication options. That type of functionality can be performed outside of RADIUS using Toolpack.'&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
In order to enable this function in Toolpack v2.3, you must have a RADIUS server already up and running. It is highly recommended that the RADIUS server software being running on a separate machine from the one running the Toolpack software. Before configuring Toolpack, you will need the names and IP address of the RADIUS server. You will need to specify a ‘secret key’ which will authenticate the Toolpack server so that it can send CDR data to the RADIUS server and the RADIUS server will accept it.&lt;br /&gt;
&lt;br /&gt;
=== Steps ===&lt;br /&gt;
Assuming that you have already set up and configured a RADIUS server, you will now need to configure Toolpack.&lt;br /&gt;
&lt;br /&gt;
*To configure RADIUS support in Toolpack, first go to '''Global &amp;gt; Gateway &amp;gt; Configurations'''. In the Configuration List, click on '''Create New Configuration'''. This is where you will create a RADIUS configuration.&lt;br /&gt;
*In the new configuration, click on '''Use CDR Behaviour'''. Up until now, this is the same approach you would use where CDRs are written to the Toolpack database.&lt;br /&gt;
*Now click on the '''CDR options''' section header, then click on '''Use RADIUS''' checkbox.&lt;br /&gt;
*Next, fill in the information in the '''RADIUS server parameters''' section. Please note that the '''port''' for the RADIUS Server must be set to 1813 (i.e., hostname:1813);. For the '''Server secret''' field, set it to the same authentication key that is configured on the RADIUS server.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Testing this feature ===&lt;br /&gt;
Testing this feature is as simple as activating the functionality in Toolpack and validating that CDR data is being properly received by the RADIUS server. If you have the ability to simulate calling data, you might find it worthwhile to gradually increase call volumes over time to identify and understand any limitations experienced with your RADIUS application server (see Known issues below for more on this.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Toolpack to Radius CDR attributes remapping ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
!width=&amp;quot;210&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; |Radius IETF param name&lt;br /&gt;
!width=&amp;quot;210&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; |Toolpack param&lt;br /&gt;
!width=&amp;quot;610&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; |Description&lt;br /&gt;
|-&lt;br /&gt;
| NAS-Identifier || Application Name || Application name of the CDR provider&lt;br /&gt;
|-&lt;br /&gt;
| Acct-Session-Id || Leg Id || Call Leg Identifier&lt;br /&gt;
|-&lt;br /&gt;
|Telcob-Other-Leg-Id || Other Leg Id || Call Leg Identifier of the other call leg joined with current call leg&lt;br /&gt;
|-&lt;br /&gt;
| h323-setup-time || Start Time || Represent the call leg setup time - Coordinated Universal Time (UTC)&lt;br /&gt;
|-&lt;br /&gt;
| Cisco-NAS-Port || NAP name || Network Access Point name for the call leg&lt;br /&gt;
|-&lt;br /&gt;
| Called-Sation-Id || Called Number || Called party number&lt;br /&gt;
|-&lt;br /&gt;
| Calling-Station-Id || Calling Number || Calling party number&lt;br /&gt;
|-&lt;br /&gt;
| h323-call-origin || Originator Name || &amp;quot;answer&amp;quot; for an outgoing leg - &amp;quot;originate&amp;quot; for an incoming leg&lt;br /&gt;
|-&lt;br /&gt;
| h323-connect-time || Answer Time || Represent the call leg answer time (connect time) - Coordinated Universal Time (UTC)&lt;br /&gt;
|-&lt;br /&gt;
| h323-conf-id || Unique Call Id || Unique call Identifier - Link Id formated as xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx (~Linkid ~Linkid&amp;lt;&amp;lt;4 ~Linkid&amp;lt;&amp;lt;12 ~Linkid&amp;lt;&amp;lt;20)&lt;br /&gt;
|-&lt;br /&gt;
| User-Name ||  -  || For now this value is hardcoded to &amp;quot;100&amp;quot;; this field was asked by portaOne&lt;br /&gt;
|-&lt;br /&gt;
| h323-call-type || Protocol Type  || If protocol is SIP the value is &amp;quot;VOIP&amp;quot;, otherwise it is &amp;quot;Telephony&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| h323-disconnect-time || Stop Time || Represent the call leg disconnect time - Coordinated Universal Time (UTC)&lt;br /&gt;
|-&lt;br /&gt;
| h323-disconnect-cause || Termination Reason || Q.931 disconnect (1 to 160) cause, TB Toolpack system cause (200 to 300) and SIP cause (400 to 600)&lt;br /&gt;
|-&lt;br /&gt;
| release-source || Termination Source || &amp;quot;localLeg&amp;quot; if this leg terminate the call or &amp;quot;connectedLeg&amp;quot; if its the connected leg - We use a Cisco string field with our own value definition&lt;br /&gt;
|-&lt;br /&gt;
| Acct-Status-Type ||  -  || Start or Stop&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Known issues ===&lt;br /&gt;
&lt;br /&gt;
*There appears to be a limit to the rate and quantity at which RADIUS accepts CDRs. Using a copy of FreeRADIUS on Windows XP Server, we are currently working to determine the maximum rate that RADIUS accepts CDRs for that specific configuration. While it may not be broadly representative—it is an open source solution compared to commercial software solutions—it should provide us with a benchmark or order of magnitude. &lt;br /&gt;
*Our experience with FreeRADIUS to date has shown that by the time you attain 110 calls/second for a duration of 3 seconds, the buffer in Toolpack is soon overflowed.&lt;br /&gt;
*Should RADIUS stop accepting CDRs (i.e., after a certain number per second (quantity / frequency)), Toolpack will then begin buffering to a maximum of 250 CDRs; over and above that buffer, Toolpack will drop CDR information&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
*[http://en.wikipedia.org/wiki/RADIUS Wikipedia article]&lt;br /&gt;
*[http://www.freeradius.net FreeRADIUS website]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category:Glossary]]&lt;/div&gt;</summary>
		<author><name>Ktrueman</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/File:DATA_SHEET_TM1000.pdf</id>
		<title>File:DATA SHEET TM1000.pdf</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/File:DATA_SHEET_TM1000.pdf"/>
				<updated>2010-11-10T18:23:22Z</updated>
		
		<summary type="html">&lt;p&gt;Ktrueman: uploaded a new version of &amp;quot;File:DATA SHEET TM1000.pdf&amp;quot;:&amp;amp;#32;revised to inlcude mention of Cross-Connect Wire with High-Z and Isolation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Data sheet for the TM1000&lt;/div&gt;</summary>
		<author><name>Ktrueman</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/File:Interoperability_report_-_Xener.pdf</id>
		<title>File:Interoperability report - Xener.pdf</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/File:Interoperability_report_-_Xener.pdf"/>
				<updated>2010-11-10T18:08:35Z</updated>
		
		<summary type="html">&lt;p&gt;Ktrueman: uploaded a new version of &amp;quot;File:Interoperability report - Xener.pdf&amp;quot;:&amp;amp;#32;changed site of Xener softswith&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Report summary the results of interoperability testing between TelcoBridges Tmedia VOIP gateway platform and Xener Systems softswitch.&lt;/div&gt;</summary>
		<author><name>Ktrueman</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/Interoperability:Vendors</id>
		<title>Interoperability:Vendors</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/Interoperability:Vendors"/>
				<updated>2010-11-10T15:46:29Z</updated>
		
		<summary type="html">&lt;p&gt;Ktrueman: clean up&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;TelcoBridges equipment has been successfully deployed by customers and partners in over 50 countries in a broad range of scenarios, involving hardware and software from other providers. While not exhaustive, here is a list of providers (in alphabetical order) of technology with which TelcoBridges' products have been deployed or certified: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Softswitch/Session Border Controllers (SBC)''' &lt;br /&gt;
*ALOE Systems (softswitch; [http://www.telcobridges.com/afficher02.aspx?page=800&amp;amp;langue=en&amp;amp;modeAffichage=0&amp;amp;forceMode=0 certified])&lt;br /&gt;
*Asterisk &lt;br /&gt;
*Denwa &lt;br /&gt;
*FreeSWITCH &lt;br /&gt;
*MetaSwitch&amp;lt;br&amp;gt;&lt;br /&gt;
*NetSapiens (softswitch) &lt;br /&gt;
*OpenMethods&lt;br /&gt;
*Phoenixsoft Cirrus (softswitch) &lt;br /&gt;
*PortaOne (softswitch; [http://www.telcobridges.com/afficher02.aspx?page=839&amp;amp;langue=en&amp;amp;modeAffichage=0&amp;amp;forceMode=0 certified]) &lt;br /&gt;
*Samsung&lt;br /&gt;
*Sansay (softswitch/SBC) &lt;br /&gt;
*Teles (softswitch; [http://www.telcobridges.com/afficher02.aspx?page=825&amp;amp;langue=en&amp;amp;modeAffichage=2 certified]) &lt;br /&gt;
*Xener Systems (softswitch; certification in progress as of July 2010)&lt;br /&gt;
*YATE&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Switches'''&lt;br /&gt;
*Alcatel-Lucent&lt;br /&gt;
**4ESS&lt;br /&gt;
**5ESS&lt;br /&gt;
**Various MSC models&lt;br /&gt;
*Ericsson&lt;br /&gt;
**various MSC models&lt;br /&gt;
*Huawei&lt;br /&gt;
*Nokia-Siemens&lt;br /&gt;
**various MSC models&lt;br /&gt;
*Nortel&lt;br /&gt;
**various DMS models&lt;br /&gt;
*Tekelec&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Media gateways / telecommunications hardware''' &lt;br /&gt;
*Adtran&lt;br /&gt;
**Various models&lt;br /&gt;
*AudioCodes &lt;br /&gt;
**Mediant 1000 &lt;br /&gt;
**Mediant 2000 &lt;br /&gt;
**Mediant 3000 &lt;br /&gt;
*Cisco &lt;br /&gt;
**AS5300 &lt;br /&gt;
**AS5400 &lt;br /&gt;
*Dialogic &lt;br /&gt;
**IMG1010&lt;br /&gt;
*Genband&lt;br /&gt;
**Various models&lt;br /&gt;
*Mediatrix&lt;br /&gt;
**Various models&lt;br /&gt;
*Squire Technologies&lt;br /&gt;
**Various models&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Other'''&lt;br /&gt;
*Faxback&lt;br /&gt;
*Interact SoftSPOT&lt;br /&gt;
*Voxpilot&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Needs_revising]]&lt;/div&gt;</summary>
		<author><name>Ktrueman</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/File:Interoperability_report_-_Xener.pdf</id>
		<title>File:Interoperability report - Xener.pdf</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/File:Interoperability_report_-_Xener.pdf"/>
				<updated>2010-11-10T14:54:09Z</updated>
		
		<summary type="html">&lt;p&gt;Ktrueman: Report summary the results of interoperability testing between TelcoBridges Tmedia VOIP gateway platform and Xener Systems softswitch.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Report summary the results of interoperability testing between TelcoBridges Tmedia VOIP gateway platform and Xener Systems softswitch.&lt;/div&gt;</summary>
		<author><name>Ktrueman</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/File:FINAL_-_DATA_SHEET_TMP7950.pdf</id>
		<title>File:FINAL - DATA SHEET TMP7950.pdf</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/File:FINAL_-_DATA_SHEET_TMP7950.pdf"/>
				<updated>2010-11-04T20:18:09Z</updated>
		
		<summary type="html">&lt;p&gt;Ktrueman: uploaded a new version of &amp;quot;File:FINAL - DATA SHEET TMP7950.pdf&amp;quot;:&amp;amp;#32;changed number of network ports to 3 from 2&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;data sheet for the TMP7950&lt;/div&gt;</summary>
		<author><name>Ktrueman</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/File:FINAL_-_DATA_SHEET_TMP5900.pdf</id>
		<title>File:FINAL - DATA SHEET TMP5900.pdf</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/File:FINAL_-_DATA_SHEET_TMP5900.pdf"/>
				<updated>2010-10-26T12:25:54Z</updated>
		
		<summary type="html">&lt;p&gt;Ktrueman: uploaded a new version of &amp;quot;File:FINAL - DATA SHEET TMP5900.pdf&amp;quot;:&amp;amp;#32;revised power requirements downward&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;data sheet for the TMP5900&lt;/div&gt;</summary>
		<author><name>Ktrueman</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/File:FINAL_-_DATA_SHEET_TMG5800.pdf</id>
		<title>File:FINAL - DATA SHEET TMG5800.pdf</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/File:FINAL_-_DATA_SHEET_TMG5800.pdf"/>
				<updated>2010-10-26T12:19:59Z</updated>
		
		<summary type="html">&lt;p&gt;Ktrueman: uploaded a new version of &amp;quot;File:FINAL - DATA SHEET TMG5800.pdf&amp;quot;:&amp;amp;#32;revised power requirements downward.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;TMG5800 data sheet - new&lt;/div&gt;</summary>
		<author><name>Ktrueman</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/File:DATA_SHEET_TMG8300.pdf</id>
		<title>File:DATA SHEET TMG8300.pdf</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/File:DATA_SHEET_TMG8300.pdf"/>
				<updated>2010-10-12T18:04:59Z</updated>
		
		<summary type="html">&lt;p&gt;Ktrueman: uploaded a new version of &amp;quot;File:DATA SHEET TMG8300.pdf&amp;quot;:&amp;amp;#32;fixed network schematic&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Data sheet for the TMG8300 H.323 Signaling Converter device&lt;/div&gt;</summary>
		<author><name>Ktrueman</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/File:DATA_SHEET_TMG8300.pdf</id>
		<title>File:DATA SHEET TMG8300.pdf</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/File:DATA_SHEET_TMG8300.pdf"/>
				<updated>2010-10-12T16:10:09Z</updated>
		
		<summary type="html">&lt;p&gt;Ktrueman: Data sheet for the TMG8300 H.323 Signaling Converter device&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Data sheet for the TMG8300 H.323 Signaling Converter device&lt;/div&gt;</summary>
		<author><name>Ktrueman</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/File:Product_brief_-_Tmedia_Call_Routing_Platform_v4.pdf</id>
		<title>File:Product brief - Tmedia Call Routing Platform v4.pdf</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/File:Product_brief_-_Tmedia_Call_Routing_Platform_v4.pdf"/>
				<updated>2010-10-06T14:57:45Z</updated>
		
		<summary type="html">&lt;p&gt;Ktrueman: uploaded a new version of &amp;quot;File:Product brief - Tmedia Call Routing Platform v4.pdf&amp;quot;:&amp;amp;#32;Corrected reference to the language used to provide CAS R2 scripting. That language is Lua and not Ruby.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Product brief describing the call routing functionality available with Tmedia and its Media Gateway Application. Discussion of both static and dynamic routing, including the new routeset routing approach introduced in Toolpack v2.5&lt;/div&gt;</summary>
		<author><name>Ktrueman</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/File:FINAL_-_DATA_SHEET_TMG5800.pdf</id>
		<title>File:FINAL - DATA SHEET TMG5800.pdf</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/File:FINAL_-_DATA_SHEET_TMG5800.pdf"/>
				<updated>2010-09-23T17:54:00Z</updated>
		
		<summary type="html">&lt;p&gt;Ktrueman: uploaded a new version of &amp;quot;File:FINAL - DATA SHEET TMG5800.pdf&amp;quot;:&amp;amp;#32;correct version of the data sheet&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;TMG5800 data sheet - new&lt;/div&gt;</summary>
		<author><name>Ktrueman</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/User_talk:Vince_Beskangy</id>
		<title>User talk:Vince Beskangy</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/User_talk:Vince_Beskangy"/>
				<updated>2010-09-20T15:50:41Z</updated>
		
		<summary type="html">&lt;p&gt;Ktrueman: Welcome!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Welcome to ''TBwiki''!''' We hope you will contribute much and well. &lt;br /&gt;
	You'll probably want to read [[TBwiki:Getting started|Getting started]]. Again, welcome and have fun! &lt;br /&gt;
	[[User:Ktrueman|Kenneth Trueman]] 15:50, 20 September 2010 (UTC)&lt;/div&gt;</summary>
		<author><name>Ktrueman</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/User:Vince_Beskangy</id>
		<title>User:Vince Beskangy</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/User:Vince_Beskangy"/>
				<updated>2010-09-20T15:50:41Z</updated>
		
		<summary type="html">&lt;p&gt;Ktrueman: Creating user page with biography of new user.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;20 yrs in Telcom industry as support engineer. Both SS7 and inbamnd signalling trunk groups and OSI architecture implimentation of ancillary systems. Specific to cellular indusrtry. CUrrently Senior SS7 network Enineer at Interop Technologies in Irving, Texas. Former employment 5 years at VeriSign corporation. Prior employer in Dallas Texas 15 years with NTC corporation.&lt;/div&gt;</summary>
		<author><name>Ktrueman</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/File:TMG8300_network_schematic_with_softswitch.jpg</id>
		<title>File:TMG8300 network schematic with softswitch.jpg</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/File:TMG8300_network_schematic_with_softswitch.jpg"/>
				<updated>2010-09-16T16:41:43Z</updated>
		
		<summary type="html">&lt;p&gt;Ktrueman: Network schematic showing TMG8300 in use with a softswitch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Network schematic showing TMG8300 in use with a softswitch&lt;/div&gt;</summary>
		<author><name>Ktrueman</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/File:TMG8300_network_schematic_voip_and_tdm.jpg</id>
		<title>File:TMG8300 network schematic voip and tdm.jpg</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/File:TMG8300_network_schematic_voip_and_tdm.jpg"/>
				<updated>2010-09-16T16:39:53Z</updated>
		
		<summary type="html">&lt;p&gt;Ktrueman: Network schematic showing TMG8300 in a VOIP-TDM converged network context&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Network schematic showing TMG8300 in a VOIP-TDM converged network context&lt;/div&gt;</summary>
		<author><name>Ktrueman</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/File:TMG8300_network_schematic_voip_only.jpg</id>
		<title>File:TMG8300 network schematic voip only.jpg</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/File:TMG8300_network_schematic_voip_only.jpg"/>
				<updated>2010-09-16T16:37:08Z</updated>
		
		<summary type="html">&lt;p&gt;Ktrueman: Network schematic showing TMG8300 in a VOIP-only context&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Network schematic showing TMG8300 in a VOIP-only context&lt;/div&gt;</summary>
		<author><name>Ktrueman</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/Call_routing</id>
		<title>Call routing</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/Call_routing"/>
				<updated>2010-09-15T14:00:29Z</updated>
		
		<summary type="html">&lt;p&gt;Ktrueman: added link to new product brief&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Call routing refers to the ability to route calls based on criteria such as origin, destination, time of day, service provider rates, etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TelcoBridges and Call routing ==&lt;br /&gt;
TelcoBridges supports call routing across all of its Tmedia and Tdev devices. It offers two approaches to routing. The first is via the Toolpack Media Gateway application where you can manually define [[Toolpack:Creating Called Number Routes|called number routes]]. The second approach, introduced in [[Version 2.3|version 2.3]] of [[Toolpack]], leverages the Ruby scripting language to provide a [[Scriptable Routing Engine|scriptable routing engine]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Related actions ==&lt;br /&gt;
*Creating called number routes (refer to the appropriate Toolpack release):&lt;br /&gt;
**[[Toolpack_v2.2:Creating_Called_Number_Routes|Toolpack v2.2]]&lt;br /&gt;
**[[Toolpack_v2.3:Creating_Called_Number_Routes|Toolpack v2.3]]&lt;br /&gt;
*[[Scriptable Routing Engine|Configure routing via the Toolpack scriptable routing engine]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
*[[Media:Product brief - Tmedia Call Routing Platform v4.pdf|Product brief]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category:Glossary]]&lt;br /&gt;
[[category:Needs revising]]&lt;/div&gt;</summary>
		<author><name>Ktrueman</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/File:Product_brief_-_Tmedia_Call_Routing_Platform_v4.pdf</id>
		<title>File:Product brief - Tmedia Call Routing Platform v4.pdf</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/File:Product_brief_-_Tmedia_Call_Routing_Platform_v4.pdf"/>
				<updated>2010-09-15T13:57:24Z</updated>
		
		<summary type="html">&lt;p&gt;Ktrueman: Product brief describing the call routing functionality available with Tmedia and its Media Gateway Application. Discussion of both static and dynamic routing, including the new routeset routing approach introduced in Toolpack v2.5&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Product brief describing the call routing functionality available with Tmedia and its Media Gateway Application. Discussion of both static and dynamic routing, including the new routeset routing approach introduced in Toolpack v2.5&lt;/div&gt;</summary>
		<author><name>Ktrueman</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/SNMP</id>
		<title>SNMP</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/SNMP"/>
				<updated>2010-09-13T14:26:11Z</updated>
		
		<summary type="html">&lt;p&gt;Ktrueman: updated information&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Simple Network Management Protocol (SNMP) is, according to Wikipedia, &amp;quot;used in network management systems to monitor network-attached devices for conditions that warrant administrative attention.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TelcoBridges and SNMP ==&lt;br /&gt;
TelcoBridges offers basic SNMP support (SNMP v1). Specifically, this is the ability to remotely poll or “GET” system variables known as Managed Objects, which are represented in files known as MIBs. TelcoBridges currently offers polling on a limited number of well-known MIBs (RTP, Sonet, Trunk etc.) as well as some proprietary MIBs (SW version, release, temperature sensors), etc.). However, SNMP 'traps' (i.e., alarms) are not supported in the current release, nor is the ability to 'SET' system variables (defined in SNMP v2).&lt;br /&gt;
&lt;br /&gt;
As of September 2010, TelcoBridges is actively investigating the implementation SNMP v2 support, including GET support as well as alarms/traps at the level of Toolpack.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Simple_Network_Management_Protocol Wikipedia article]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category:Glossary]]&lt;br /&gt;
[[category:Needs revising]]&lt;/div&gt;</summary>
		<author><name>Ktrueman</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/Interoperability:Vendors</id>
		<title>Interoperability:Vendors</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/Interoperability:Vendors"/>
				<updated>2010-09-10T19:53:44Z</updated>
		
		<summary type="html">&lt;p&gt;Ktrueman: updated with info from Marc.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;TelcoBridges equipment has been successfully deployed by customers and partners in over 50 countries in a broad range of scenarios, involving hardware and software from other providers. While not exhaustive, here is a list of providers (in alphabetical order) of technology with which TelcoBridges' products have been deployed or certified: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Softswitch/Session Border Controllers (SBC)''' &lt;br /&gt;
*ALOE Systems (softswitch; [http://www.telcobridges.com/afficher02.aspx?page=800&amp;amp;langue=en&amp;amp;modeAffichage=0&amp;amp;forceMode=0 certified] &lt;br /&gt;
*Asterisk &lt;br /&gt;
*Denwa &lt;br /&gt;
*FreeSWITCH &lt;br /&gt;
*MetaSwitch&amp;lt;br&amp;gt;&lt;br /&gt;
*NetSapiens (softswitch) &lt;br /&gt;
*OpenMethods&lt;br /&gt;
*Phoenixsoft Cirrus (softswitch) &lt;br /&gt;
*PortaOne (softswitch; [http://www.telcobridges.com/afficher02.aspx?page=839&amp;amp;langue=en&amp;amp;modeAffichage=0&amp;amp;forceMode=0 certified]) &lt;br /&gt;
*Samsung&lt;br /&gt;
*Sansay (softswitch/SBC) &lt;br /&gt;
*Teles (softswitch; [http://www.telcobridges.com/afficher02.aspx?page=825&amp;amp;langue=en&amp;amp;modeAffichage=2 certified]) &lt;br /&gt;
*Xener Systems (softswitch; certification in progress as of July 2010)&lt;br /&gt;
*YATE&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Switches'''&lt;br /&gt;
*Alcatel-Lucent&lt;br /&gt;
**4ESS&lt;br /&gt;
**5ESS&lt;br /&gt;
**Various MSC models&lt;br /&gt;
*Ericsson&lt;br /&gt;
**various MSC models&lt;br /&gt;
*Huawei&lt;br /&gt;
*Nokia-Siemens&lt;br /&gt;
**various MSC models&lt;br /&gt;
*Nortel&lt;br /&gt;
**various DMS models&lt;br /&gt;
*Tekelec&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Media gateways / telecommunications hardware''' &lt;br /&gt;
*Adtran&lt;br /&gt;
**Various models&lt;br /&gt;
*AudioCodes &lt;br /&gt;
**Mediant 1000 &lt;br /&gt;
**Mediant 2000 &lt;br /&gt;
**Mediant 3000 &lt;br /&gt;
*Cisco &lt;br /&gt;
**AS5300 &lt;br /&gt;
**AS5400 &lt;br /&gt;
*Dialogic &lt;br /&gt;
**IMG1010&lt;br /&gt;
*Genband&lt;br /&gt;
**Various models&lt;br /&gt;
*Mediatrix&lt;br /&gt;
**Various models&lt;br /&gt;
*Squire Technologies&lt;br /&gt;
**Various models&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Other'''&lt;br /&gt;
*Faxback&lt;br /&gt;
*Interact SoftSPOT&lt;br /&gt;
*Voxpilot&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Needs_revising]]&lt;/div&gt;</summary>
		<author><name>Ktrueman</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/EOL:chassis</id>
		<title>EOL:chassis</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/EOL:chassis"/>
				<updated>2010-09-10T18:55:14Z</updated>
		
		<summary type="html">&lt;p&gt;Ktrueman: initial content&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Previously, TelcoBridges offered a 2U CompactPCI chassis from Kaparel, a Canadian manufacturer that was bought by the another organization named Rittal. The Kaparel brand name and Canadian factory (located in Ontario) have since been wound down. All 2U chassis run under Rittal part number. Customers requiring parts or servicing for a Kaparel-brand chassis should contact [http://www.rittal.com/ Rittal Corp.].&lt;br /&gt;
&lt;br /&gt;
For customers requiring new CompactPCI chassis, TelcoBridges suggests one of the [http://www.cpcidintek.com.cn/photo/ShowPhoto.asp-PhotoID=25.htm 2U models] from [http://www.cpcidintek.com.cn/ DINTEK]&lt;/div&gt;</summary>
		<author><name>Ktrueman</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/End-of-Life_(EOL)_policy</id>
		<title>End-of-Life (EOL) policy</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/End-of-Life_(EOL)_policy"/>
				<updated>2010-09-10T18:48:38Z</updated>
		
		<summary type="html">&lt;p&gt;Ktrueman: updated dates and added link to Kaparel chassis&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
&lt;br /&gt;
TelcoBridges recognizes the desire of its business partners and their customers to both preserve their investments in TelcoBridges products and to reduce the uncertainty associated with new expenditures or with long-term planning.&lt;br /&gt;
&lt;br /&gt;
However, it is the nature of technology and of the marketplace for change to occur, resulting in the appearance of new products and conversely the eventual disappearance of older products. This change is not always in a predictable, linear fashion and can be disruptive to organizations as they plan their operations and investments.&lt;br /&gt;
&lt;br /&gt;
Recognizing this, TelcoBridges has developed an end-of-life (EOL) policy that is designed to provide the company’s business partners and their customers with predictability as well as peace of mind as one product life cycle ends and another begins. This end-of-life policy seeks to minimize and mitigate the effects of changes to product offerings and to assure business partners and their customers that they will be taken care of while availability and support for a given product are eventually phased out.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==TelcoBridges’ approach to managing technological change==&lt;br /&gt;
TelcoBridges’ commitment to preserve the investment that its partners and their customers have made in its products starts with an overall product design philosophy that is conscious of continuing changes in the marketplace.&lt;br /&gt;
&lt;br /&gt;
This is borne out by the choice of third-party components that are included in TelcoBridges’ hardware products during their design phase. While designing its products, TelcoBridges takes into account the susceptibility of such components to be subject to end-of-life announcements themselves, as well as the ability of TelcoBridges to secure functionally equivalent alternatives from the same or alternate suppliers, such that the underlying functionality of the company’s products could remain sensibly unchanged following a modification of components.&lt;br /&gt;
&lt;br /&gt;
Should it become necessary to declare end-of-life status for a TelcoBridges product, the company has developed an end-of-life policy that outlines the commitments that TelcoBridges’ business partners and their customers can expect. That elements and milestones of policy are described below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==End-of-Life process and phases==&lt;br /&gt;
&lt;br /&gt;
The TelcoBridges EOL policy generally follows the following process, as described in the table below. The process begins with the End of Life announcement, the date for which is indicated by the letter X. All subsequent milestones occur within the indicated number of calendar months from that date (X). Definitions of milestones are provided in the following section.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
!width=&amp;quot;70&amp;quot; style=&amp;quot;background:#efefef;&amp;quot;  |Milestone&lt;br /&gt;
!width=&amp;quot;120&amp;quot; |End-of-Life (EOL) announcement&lt;br /&gt;
!width=&amp;quot;120&amp;quot; |End of Sale (EOS) announcement&lt;br /&gt;
!width=&amp;quot;120&amp;quot; |End of production&lt;br /&gt;
!width=&amp;quot;120&amp;quot; |End of hardware (HW)  maintenance&lt;br /&gt;
!width=&amp;quot;120&amp;quot; |End of software (SW) maintenance&lt;br /&gt;
!width=&amp;quot;120&amp;quot; |End of service  contracts for EOL product(s)&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;70&amp;quot; style=&amp;quot;background:#efefef;&amp;quot;   |Date&lt;br /&gt;
!width=&amp;quot;120&amp;quot; |X&lt;br /&gt;
!width=&amp;quot;120&amp;quot; |X + 12 months&lt;br /&gt;
!width=&amp;quot;120&amp;quot; |X + 15 months&lt;br /&gt;
!width=&amp;quot;120&amp;quot; |X + 48 months&lt;br /&gt;
!width=&amp;quot;120&amp;quot; |X + 48 months&lt;br /&gt;
!width=&amp;quot;120&amp;quot; |X + 72 months&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Milestones and definitions==&lt;br /&gt;
&lt;br /&gt;
*'''End of Life (EOL) announcement:''' Date when a formal announcement is made by TelcoBridges and published on its web site at [http://www.telcobridges.com/ www.telcobridges.com]. The end of life announcement lists the product(s) that is (are) to be discontinued and outlines the milestones (or timeframes) for the availability of follow-on purchases, technical support, repairs, etc.&lt;br /&gt;
&lt;br /&gt;
*'''End of Sale (EOS) announcement:''' Date when EOL products are no longer orderable or visible on TelcoBridges’ price lists.&lt;br /&gt;
*'''End of production:''' Date when TelcoBridges no longer builds EOL products. The TelcoBridges customer support department will maintain stocks to fulfill Return Material Authorization (RMA) requirements.&lt;br /&gt;
*'''End of hardware (HW) maintenance:''' Date when TelcoBridges no longer provides bug fixes to hardware.&lt;br /&gt;
*'''End of software (SW) maintenance:''' Date when TelcoBridges no longer provides bug fixes to software.&lt;br /&gt;
*'''End of service contracts:''' Date when service contracts are no longer available for products covered by an EOL notice. Service contracts may be renewed to a period equivalent to the end-of-service contract milestone.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Applicability==&lt;br /&gt;
This policy applies to all TelcoBridges products from January 1, 2010 onwards.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Status==&lt;br /&gt;
As of September 2010, TelcoBridges has not declared end-of-life status on any of *its* products and has no intention to do so for the foreseeable future.&lt;br /&gt;
&lt;br /&gt;
While the company offers two core hardware platforms, based on CompactPCI and rackmount form factors, it remains committed to providing products based on both platforms to the marketplace.&lt;br /&gt;
&lt;br /&gt;
Though TelcoBridges has stated publicly that it is focused on rackmount hardware as its platform of choice for new product development--since only that platform allows TelcoBridges to deliver on its goals of performance and system density--the fact that the vast majority of rackmount system components are shared with the company’s CompactPCI-based devices is a strong argument for the continued availability of CompactPCI offerings from TelcoBridges.&lt;br /&gt;
&lt;br /&gt;
From a software application and development toolkit and perspective, both CompactPCI and rackmount platforms are equal citizens and will continue to benefit from advances made in the coming years. The company’s current software roadmap foresees the introduction of new features on both hardware platforms.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Notices ==&lt;br /&gt;
*[[EOL:chassis|Compact PCI Chassis (Kaparel)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
*[[media:TelcoBridges -- End of Life  Policy.pdf |PDF version]]&lt;/div&gt;</summary>
		<author><name>Ktrueman</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/File:FINAL_-_DATA_SHEET_TMP5900.pdf</id>
		<title>File:FINAL - DATA SHEET TMP5900.pdf</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/File:FINAL_-_DATA_SHEET_TMP5900.pdf"/>
				<updated>2010-09-10T15:59:03Z</updated>
		
		<summary type="html">&lt;p&gt;Ktrueman: uploaded a new version of &amp;quot;File:FINAL - DATA SHEET TMP5900.pdf&amp;quot;:&amp;amp;#32;updated with new product imagery&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;data sheet for the TMP5900&lt;/div&gt;</summary>
		<author><name>Ktrueman</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/File:DATA_SHEET_TMP6400.pdf</id>
		<title>File:DATA SHEET TMP6400.pdf</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/File:DATA_SHEET_TMP6400.pdf"/>
				<updated>2010-09-10T15:58:27Z</updated>
		
		<summary type="html">&lt;p&gt;Ktrueman: uploaded a new version of &amp;quot;File:DATA SHEET TMP6400.pdf&amp;quot;:&amp;amp;#32;updated with new product imagery&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Data sheet for the TMP6400&lt;/div&gt;</summary>
		<author><name>Ktrueman</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/File:DATA_SHEET_TMP6400.pdf</id>
		<title>File:DATA SHEET TMP6400.pdf</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/File:DATA_SHEET_TMP6400.pdf"/>
				<updated>2010-09-10T15:57:05Z</updated>
		
		<summary type="html">&lt;p&gt;Ktrueman: uploaded a new version of &amp;quot;File:DATA SHEET TMP6400.pdf&amp;quot;:&amp;amp;#32;updated with new product imagery&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Data sheet for the TMP6400&lt;/div&gt;</summary>
		<author><name>Ktrueman</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/File:DATA_SHEET_TMP800.pdf</id>
		<title>File:DATA SHEET TMP800.pdf</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/File:DATA_SHEET_TMP800.pdf"/>
				<updated>2010-09-10T15:56:15Z</updated>
		
		<summary type="html">&lt;p&gt;Ktrueman: uploaded a new version of &amp;quot;File:DATA SHEET TMP800.pdf&amp;quot;:&amp;amp;#32;updated with new product imagery&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;TMP800 data sheet&lt;/div&gt;</summary>
		<author><name>Ktrueman</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/File:FINAL_-_DATA_SHEET_TMG5800.pdf</id>
		<title>File:FINAL - DATA SHEET TMG5800.pdf</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/File:FINAL_-_DATA_SHEET_TMG5800.pdf"/>
				<updated>2010-09-10T15:55:03Z</updated>
		
		<summary type="html">&lt;p&gt;Ktrueman: uploaded a new version of &amp;quot;File:FINAL - DATA SHEET TMG5800.pdf&amp;quot;:&amp;amp;#32;updated with new product shots&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;TMG5800 data sheet - new&lt;/div&gt;</summary>
		<author><name>Ktrueman</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/File:DATA_SHEET_TMG800.pdf</id>
		<title>File:DATA SHEET TMG800.pdf</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/File:DATA_SHEET_TMG800.pdf"/>
				<updated>2010-09-10T15:53:05Z</updated>
		
		<summary type="html">&lt;p&gt;Ktrueman: uploaded a new version of &amp;quot;File:DATA SHEET TMG800.pdf&amp;quot;:&amp;amp;#32;updated&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Data sheet for TMG800&lt;/div&gt;</summary>
		<author><name>Ktrueman</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/File:DATA_SHEET_TMG3200.pdf</id>
		<title>File:DATA SHEET TMG3200.pdf</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/File:DATA_SHEET_TMG3200.pdf"/>
				<updated>2010-09-10T15:52:19Z</updated>
		
		<summary type="html">&lt;p&gt;Ktrueman: uploaded a new version of &amp;quot;File:DATA SHEET TMG3200.pdf&amp;quot;:&amp;amp;#32;updated&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Data sheet for the TMG3200&lt;/div&gt;</summary>
		<author><name>Ktrueman</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/Licensing</id>
		<title>Licensing</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/Licensing"/>
				<updated>2010-08-30T15:31:46Z</updated>
		
		<summary type="html">&lt;p&gt;Ktrueman: added spacing to make easier to read...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=TMG3200=&lt;br /&gt;
License options for the TMG3200 family.  Software upgrades consisting of installing a license key file on the system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Trunks==&lt;br /&gt;
=== 64 E1/T1/J1 TDM mezzanine ===&lt;br /&gt;
*E1/T1/J1: From 16 to 64 E1/T1/J1 in steps of 8 trunks, software upgradeable.&lt;br /&gt;
When upgrading over 32, installation of an additional patch panel is required.&lt;br /&gt;
&lt;br /&gt;
=== 16 RJ48 E1/T1/J1 TDM mezzanine ===&lt;br /&gt;
* E1/T1/J1: From 4 to 16  with 4 trunks steps, software upgradeable.&lt;br /&gt;
&lt;br /&gt;
=== STM1 TDM mezzanine ===&lt;br /&gt;
*T1/J1 : From 16 to 84 in steps of 8 trunks, software upgradeable.&lt;br /&gt;
*E1 : From 16 to 63 in steps of 8 trunks, software upgradeable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Signaling Protocol==&lt;br /&gt;
ISUP, SIP, R2, ISDN and SIGTRAN are all software upgradeable.&lt;br /&gt;
&lt;br /&gt;
===SS7 MTP2 Links===&lt;br /&gt;
From 1 to 64 links per TMG unit.  Up to 256 SS7 links per system.&lt;br /&gt;
&lt;br /&gt;
===SIGTRAN M3UA/M2PA/M2UA association===&lt;br /&gt;
*M3UA : From 1 to 20 associations, in step of 1 association, software upgradeable.&lt;br /&gt;
*M2UA : From 1 to 64 associations, in step of 1 association, software upgradeable.&lt;br /&gt;
*M2PA : From 1 to 64 associations, in step of 1 association, software upgradeable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==VoIP==&lt;br /&gt;
Hardware upgrades, field upgradable.&lt;br /&gt;
The TMG3200 have 4 VoIP mezzanine slots.&lt;br /&gt;
We have four different VoIP mezzanine capacity available:&lt;br /&gt;
* VoIP-1 equals 128 universal channels.&lt;br /&gt;
* VoIP-2 equals 256 universal channels.&lt;br /&gt;
* VoIP-3 equals 384 universal channels.&lt;br /&gt;
* VoIP-4 equals 512 universal channels. &lt;br /&gt;
Any mix of the different VoIP mezzanine is possible. We recommend the use of VoIP 4 to better protect the end-user investment (at least when using 32 E1 and more).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==IVR==&lt;br /&gt;
Hardware and software upgradeable, field upgradable.&lt;br /&gt;
We have four different IVR mezzanine capacity available:&lt;br /&gt;
* IVR-512: 512 IVR channels.&lt;br /&gt;
* IVR-1024: 1024 IVR channels, from 512 to 1024 channels, software upgradeable.&lt;br /&gt;
* IVR-1536: 1536 IVR channels, from 512 to 1536 channels, software upgradeable.&lt;br /&gt;
* IVR-2048: 2048 IVR channels, from 512 to 2048 channels, software upgradeable.&lt;/div&gt;</summary>
		<author><name>Ktrueman</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/Tmonitor</id>
		<title>Tmonitor</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/Tmonitor"/>
				<updated>2010-08-30T15:20:06Z</updated>
		
		<summary type="html">&lt;p&gt;Ktrueman: fixed image size&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Tmonitor is the trade name for TelcoBridges' family of products for [[Network monitoring|network monitoring]] (including [[GSM-R]]), [[Lawful intercept|lawful intercept]], and real-time [[Location-based services|location-based services]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following products are part of the Tmedia product line:&lt;br /&gt;
&lt;br /&gt;
*[[TM1000]]: A high-performance, non-intrusive voice and data traffic monitoring solution with support for TDM (T1/E1) and GSM networks&lt;br /&gt;
*[[TM2000]]: A high-capacity version of the TM-1000 with IVR support for audio recording&lt;br /&gt;
*[[TM3000]]: A high-performance, non-intrusive voice and data traffic monitoring and recording solution for TDM, GSM and ATM (OC3/STM-1) networks&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Comparison of the Tmonitor family of products'''&lt;br /&gt;
&lt;br /&gt;
[[Image:Comparison-tmonitor-family-of-products.jpg|550px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Other notes ==&lt;br /&gt;
*The TM1000 and the TM2000 both require the use the TelcoBridges-designed [[Isolation patch panel|isolation patch panel]] in order to connect non-intrusively to the networks to be monitored. &lt;br /&gt;
*The TM1000 and the TM2000 both require the use of a TelcoBridges-designed [[Monitoring patch panel|monitoring patch panel]] for higher capacity installations using T1/E1/J1 interfaces (up to 64 in all).&lt;/div&gt;</summary>
		<author><name>Ktrueman</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/Tmonitor</id>
		<title>Tmonitor</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/Tmonitor"/>
				<updated>2010-08-30T15:19:08Z</updated>
		
		<summary type="html">&lt;p&gt;Ktrueman: link to GSM-R&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Tmonitor is the trade name for TelcoBridges' family of products for [[Network monitoring|network monitoring]] (including [[GSM-R]]), [[Lawful intercept|lawful intercept]], and real-time [[Location-based services|location-based services]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following products are part of the Tmedia product line:&lt;br /&gt;
&lt;br /&gt;
*[[TM1000]]: A high-performance, non-intrusive voice and data traffic monitoring solution with support for TDM (T1/E1) and GSM networks&lt;br /&gt;
*[[TM2000]]: A high-capacity version of the TM-1000 with IVR support for audio recording&lt;br /&gt;
*[[TM3000]]: A high-performance, non-intrusive voice and data traffic monitoring and recording solution for TDM, GSM and ATM (OC3/STM-1) networks&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Comparison of the Tmonitor family of products'''&lt;br /&gt;
&lt;br /&gt;
[[Image:Comparison-tmonitor-family-of-products.jpg|450px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Other notes ==&lt;br /&gt;
*The TM1000 and the TM2000 both require the use the TelcoBridges-designed [[Isolation patch panel|isolation patch panel]] in order to connect non-intrusively to the networks to be monitored. &lt;br /&gt;
*The TM1000 and the TM2000 both require the use of a TelcoBridges-designed [[Monitoring patch panel|monitoring patch panel]] for higher capacity installations using T1/E1/J1 interfaces (up to 64 in all).&lt;/div&gt;</summary>
		<author><name>Ktrueman</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/GSM-R</id>
		<title>GSM-R</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/GSM-R"/>
				<updated>2010-08-30T15:17:15Z</updated>
		
		<summary type="html">&lt;p&gt;Ktrueman: /* References */ more reference links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GSM-Railway (or GSM-R) refers to a variant of GSM used with railways. Wikipedia describes it as &amp;quot;A sub-system of European Rail Traffic Management System (ERTMS), it is used for communication between train and railway regulation control centers. The system is based on GSM and EIRENE - MORANE specifications which guarantee performance at speeds up to 500 km/h (310 mph), without any communication loss.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TelcoBridges and GSM-R ==&lt;br /&gt;
TelcoBridges supports GSM-R with its [[Tmonitor]] line of network monitoring solutions. These have been adopted by various national railways in Europe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
*[http://en.wikipedia.org/wiki/GSM-R Wikipedia article]&lt;br /&gt;
*[http://www.gsm-rail.com/ GSM-R Industry Group]&lt;/div&gt;</summary>
		<author><name>Ktrueman</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/GSM-R</id>
		<title>GSM-R</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/GSM-R"/>
				<updated>2010-08-30T15:16:19Z</updated>
		
		<summary type="html">&lt;p&gt;Ktrueman: initial content&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GSM-Railway (or GSM-R) refers to a variant of GSM used with railways. Wikipedia describes it as &amp;quot;A sub-system of European Rail Traffic Management System (ERTMS), it is used for communication between train and railway regulation control centers. The system is based on GSM and EIRENE - MORANE specifications which guarantee performance at speeds up to 500 km/h (310 mph), without any communication loss.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TelcoBridges and GSM-R ==&lt;br /&gt;
TelcoBridges supports GSM-R with its [[Tmonitor]] line of network monitoring solutions. These have been adopted by various national railways in Europe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
*[http://en.wikipedia.org/wiki/GSM-R Wikipedia article]&lt;/div&gt;</summary>
		<author><name>Ktrueman</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/Suggested_articles</id>
		<title>Suggested articles</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/Suggested_articles"/>
				<updated>2010-08-30T15:12:09Z</updated>
		
		<summary type="html">&lt;p&gt;Ktrueman: misc fax questions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page contains suggestions for articles for the TelcoBridges Wiki. Please feel free to add your own suggestion to the bottom of the list; discussion of possible articles should take place via the 'discussion' tab at the top of the page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Suggested articles ==&lt;br /&gt;
The following ideas could become articles for the TelcoBridges wiki:&lt;br /&gt;
*[https://forums.telcobridges.com/viewtopic.php?f=13&amp;amp;t=239 Miscellaneous FAX questions]&lt;br /&gt;
*[https://forums.telcobridges.com/viewtopic.php?f=9&amp;amp;t=156 How to get routes from an external application]&lt;br /&gt;
*[http://forums.telcobridges.com/viewtopic.php?f=13&amp;amp;t=155 How to parse text CDRs]&lt;br /&gt;
*[http://forums.telcobridges.com/viewtopic.php?f=13&amp;amp;t=82 How to write an Alternative Routing Script]&lt;br /&gt;
*[https://forums.telcobridges.com/viewtopic.php?f=9&amp;amp;t=49 How to debug a live gateway application]&lt;br /&gt;
*[https://forums.telcobridges.com/viewtopic.php?f=12&amp;amp;t=43 How to set up a quick SIP gateway]&lt;br /&gt;
*[https://forums.telcobridges.com/viewtopic.php?f=9&amp;amp;t=36 How to provide states and statistics]&lt;br /&gt;
*[https://forums.telcobridges.com/viewtopic.php?f=13&amp;amp;t=63 Maximum capacity vs. licensed features]&lt;br /&gt;
*Soft-switches (definition and overview)&lt;br /&gt;
*Create an article for the Video use case, borrowing from the [[3G-324M]] page&lt;br /&gt;
*Interoperability (partners, results, configuration recommendations)&lt;br /&gt;
*SCTP&lt;br /&gt;
*Robbed bit&lt;br /&gt;
*Hairpinning (see article [http://searchunifiedcommunications.techtarget.com/sDefinition/0,,sid186_gci1037278,00.html here])&lt;br /&gt;
*USSD&lt;br /&gt;
*CAMEL&lt;br /&gt;
*Information Element (IE) in the context of SS7/ISDN&lt;br /&gt;
*A-Bis, and other GSM base station-related terms as well as terms for UMTS and their equivalents.&lt;br /&gt;
*Update and move contents of the Fax Server guide&lt;br /&gt;
*FAQ article about inability to run an application (see [https://forums.telcobridges.com/viewtopic.php?f=13&amp;amp;t=146 article])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please note that some links refer to content on the TelcoBridges [https://forums.telcobridges.com support forums], which requires that you be a registered user to access.&lt;/div&gt;</summary>
		<author><name>Ktrueman</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/ISUP:Specification</id>
		<title>ISUP:Specification</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/ISUP:Specification"/>
				<updated>2010-08-26T12:54:51Z</updated>
		
		<summary type="html">&lt;p&gt;Ktrueman: spelling error&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The ISUP protocol layer conforms to the following standards:&lt;br /&gt;
*Common Channel Signaling System N.7 (National), Singapore Telecom, 1988&lt;br /&gt;
*EN 300 356-1 v3.2.2, ISUP Version 3 for the International Interfaces Basic Services, 1998&lt;br /&gt;
*ETS 300 356 ISDN User Part (ISUP), Version 2 for the International Interface, 1995&lt;br /&gt;
*GR-317 -- CORE, Generic Requirement for Call Control Using ISDNUP. Issue 2, December 1997&lt;br /&gt;
*GR-394 -- CORE, Generic Requirement for ICI Using ISDNUP. Issue 2, December 1997. Revision 1, November 1998&lt;br /&gt;
*IS 7498 - Open Systems Interconnection - Basic Reference Model, ISO&lt;br /&gt;
*IS 7498 DAD 1 - Open Systems Interconnection - Basic Reference Model Addendum 1: Connectionless Data Transmission, ISO&lt;br /&gt;
*I.200 Guidance to the I.200 Series of Recommendations, ITU&lt;br /&gt;
*I.220 Common Dynamic Description of Basic Telecommunications Services, ITU&lt;br /&gt;
*I.221 Common Specific Characteristics of Services, ITU&lt;br /&gt;
*I.230 Definition of Bearer Service Categories, ITU&lt;br /&gt;
*I.231 Circuit Mode Bearer Service Categories, ITU&lt;br /&gt;
*I.232 Packet Mode Bearer Service Categories, ITU&lt;br /&gt;
*I.240 Definition of Teleservices, ITU&lt;br /&gt;
*I.250 Definition of Supplementary Services, ITU&lt;br /&gt;
*I.251 Number Identification Supplementary Services, ITU&lt;br /&gt;
*I.320 ISDN Protocol Reference Model, ITU&lt;br /&gt;
*Q.210 Principles of Telecommunication Services Supported by an ISDN and the Means to Describe Them, ITU&lt;br /&gt;
*Q.700 – Introduction to ITU Signaling System No. 7, 1993&lt;br /&gt;
*Q.730 - ISDN Supplementary Services, 1993&lt;br /&gt;
*Q.752 - Specifications of Signaling System No. 7 - Signaling System No. 7 Management, ITU&lt;br /&gt;
*Q.761 - Functional Description of the ISDN User Part of Signaling System No. 7, ITU, 1993 and 1997&lt;br /&gt;
*Q.762 - General Function of Messages and Signals, ITU, 1993 and 1997&lt;br /&gt;
*Q.763 - Formats and Codes, ITU, 1993 and 1997&lt;br /&gt;
*Q.763 - Formats and Codes, ITU, Addendum 1, 1998&lt;br /&gt;
*Q.764 - Signaling Procedures, ITU, 1993 and 1997&lt;br /&gt;
*Q.765 - Application Transport Mechanism, ISUP ASE Module, 1998&lt;br /&gt;
*Q.766 - Performance Objectives in the Integrated Services Digital Network Application, ITU&lt;br /&gt;
*Q.767 - Application of the ISUP of ITU SS7 for International ISDN Interconnections, ITU, 1991&lt;br /&gt;
*SS7 Integrated Services Digital Network User Part, ANSI T1.113.1-1995&lt;br /&gt;
*SS7 Integrated Services Digital Network User Part, ANSI T1.113.2-1995&lt;br /&gt;
*SS7 Integrated Services Digital Network User Part, ANSI T1.113.3-1995&lt;br /&gt;
*SS7 Integrated Services Digital Network User Part, ANSI T1.113.4-1995&lt;br /&gt;
*T1.113 - Signaling System Number 7 - Integrated Services Digital Network (ISDN) User Part, 1988&lt;br /&gt;
*T1.113 - Signaling System Number 7 - Integrated Services Digital Network (ISDN) User Part, 1992&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TelcoBridges' implementation of ISUP supports the following switch variants:&lt;br /&gt;
*ANSI 88, T1.113 (1998)&lt;br /&gt;
*ANSI 92, T1.113 (1992)&lt;br /&gt;
*ANSI 95, T1.113.1 – T1.113.4 (1995)&lt;br /&gt;
*ITU 92, Q.761 - Q.764 (1993)&lt;br /&gt;
*ITU 97, Q.761 – Q.764 (1997), Q.763 Addendum 1 (05/1998), Q.765 ISUP ASE module (05/1998)&lt;br /&gt;
*Q.767, ITU 1991&lt;br /&gt;
*Singapore Telecom, Common Channel Signaling System N.7, Singapore Telecom, 1988&lt;br /&gt;
*Telcordia 97, GR-317, GR-394&lt;br /&gt;
*CHINA ISUP - Technical Specification for national No. 7 Signalling - IntegratedService DigitalNetwork User Part (ISUP) - YDN038.1-1999&lt;br /&gt;
*CHINA ISUP - Technical Specification for national No. 7 Signalling – Integrated Service Digital Network User Part (ISUP) (supplementary) – Supplementary Amendment YDN 038-1997&lt;br /&gt;
*ETSIv2 - ETS 300 356 (1995)&lt;br /&gt;
*ETSIv3 - EN 300 356-1 V3.2.2 (1998)&lt;br /&gt;
*UK ISUP - ND 1007:2006/04 TSG/SPEC/007&lt;br /&gt;
*Others - Please contact TelcoBridges [mailto:support@telcobridges.com technical support] for variants not listed here&lt;/div&gt;</summary>
		<author><name>Ktrueman</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/ISUP:Specification</id>
		<title>ISUP:Specification</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/ISUP:Specification"/>
				<updated>2010-08-26T12:54:25Z</updated>
		
		<summary type="html">&lt;p&gt;Ktrueman: fixed spelling error and added e-mail link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The ISUP protocol layer conforms to the following standards:&lt;br /&gt;
*Common Channel Signaling System N.7 (National), Singapore Telecom, 1988&lt;br /&gt;
*EN 300 356-1 v3.2.2, ISUP Version 3 for the International Interfaces Basic Services, 1998&lt;br /&gt;
*ETS 300 356 ISDN User Part (ISUP), Version 2 for the International Interface, 1995&lt;br /&gt;
*GR-317 -- CORE, Generic Requirement for Call Control Using ISDNUP. Issue 2, December 1997&lt;br /&gt;
*GR-394 -- CORE, Generic Requirement for ICI Using ISDNUP. Issue 2, December 1997. Revision 1, November 1998&lt;br /&gt;
*IS 7498 - Open Systems Interconnection - Basic Reference Model, ISO&lt;br /&gt;
*IS 7498 DAD 1 - Open Systems Interconnection - Basic Reference Model Addendum 1: Connectionless Data Transmission, ISO&lt;br /&gt;
*I.200 Guidance to the I.200 Series of Recommendations, ITU&lt;br /&gt;
*I.220 Common Dynamic Description of Basic Telecommunications Services, ITU&lt;br /&gt;
*I.221 Common Specific Characteristics of Services, ITU&lt;br /&gt;
*I.230 Definition of Bearer Service Categories, ITU&lt;br /&gt;
*I.231 Circuit Mode Bearer Service Categories, ITU&lt;br /&gt;
*I.232 Packet Mode Bearer Service Categories, ITU&lt;br /&gt;
*I.240 Definition of Teleservices, ITU&lt;br /&gt;
*I.250 Definition of Supplementary Services, ITU&lt;br /&gt;
*I.251 Number Identification Supplementary Services, ITU&lt;br /&gt;
*I.320 ISDN Protocol Reference Model, ITU&lt;br /&gt;
*Q.210 Principles of Telecommunication Services Supported by an ISDN and the Means to Describe Them, ITU&lt;br /&gt;
*Q.700 – Introduction to ITU Signaling System No. 7, 1993&lt;br /&gt;
*Q.730 - ISDN Supplementary Services, 1993&lt;br /&gt;
*Q.752 - Specifications of Signaling System No. 7 - Signaling System No. 7 Management, ITU&lt;br /&gt;
*Q.761 - Functional Description of the ISDN User Part of Signaling System No. 7, ITU, 1993 and 1997&lt;br /&gt;
*Q.762 - General Function of Messages and Signals, ITU, 1993 and 1997&lt;br /&gt;
*Q.763 - Formats and Codes, ITU, 1993 and 1997&lt;br /&gt;
*Q.763 - Formats and Codes, ITU, Addendum 1, 1998&lt;br /&gt;
*Q.764 - Signaling Procedures, ITU, 1993 and 1997&lt;br /&gt;
*Q.765 - Application Transport Mechanism, ISUP ASE Module, 1998&lt;br /&gt;
*Q.766 - Performance Objectives in the Integrated Services Digital Network Application, ITU&lt;br /&gt;
*Q.767 - Application of the ISUP of ITU SS7 for International ISDN Interconnections, ITU, 1991&lt;br /&gt;
*SS7 Integrated Services Digital Network User Part, ANSI T1.113.1-1995&lt;br /&gt;
*SS7 Integrated Services Digital Network User Part, ANSI T1.113.2-1995&lt;br /&gt;
*SS7 Integrated Services Digital Network User Part, ANSI T1.113.3-1995&lt;br /&gt;
*SS7 Integrated Services Digital Network User Part, ANSI T1.113.4-1995&lt;br /&gt;
*T1.113 - Signaling System Number 7 - Integrated Services Digital Network (ISDN) User Part, 1988&lt;br /&gt;
*T1.113 - Signaling System Number 7 - Integrated Services Digital Network (ISDN) User Part, 1992&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TelcoBridges' implementation of ISUP supports the following switch variants:&lt;br /&gt;
*ANSI 88, T1.113 (1998)&lt;br /&gt;
*ANSI 92, T1.113 (1992)&lt;br /&gt;
*ANSI 95, T1.113.1 – T1.113.4 (1995)&lt;br /&gt;
*ITU 92, Q.761 - Q.764 (1993)&lt;br /&gt;
*ITU 97, Q.761 – Q.764 (1997), Q.763 Addendum 1 (05/1998), Q.765 ISUP ASE module (05/1998)&lt;br /&gt;
*Q.767, ITU 1991&lt;br /&gt;
*Singapore Telecom, Common Channel Signaling System N.7, Singapore Telecom, 1988&lt;br /&gt;
*Telcordia 97, GR-317, GR-394&lt;br /&gt;
*CHINA ISUP - Technical Specification for national No. 7 Signalling - IntegratedService DigitalNetwork User Part (ISUP) - YDN038.1-1999&lt;br /&gt;
*CHINA ISUP - Technical Specification for national No. 7 Signalling – Integrated Service Digital Network User Part (ISUP) (supplementary) – Supplementary Amendment YDN 038-1997&lt;br /&gt;
*ETSIv2 - ETS 300 356 (1995)&lt;br /&gt;
*ETSIv3 - EN 300 356-1 V3.2.2 (1998)&lt;br /&gt;
*UK ISUP - ND 1007:2006/04 TSG/SPEC/007&lt;br /&gt;
*Others - Please contact TelcoBridges [mailto:support@telcobridges.com technical support] or for variants not listed here&lt;/div&gt;</summary>
		<author><name>Ktrueman</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/Scriptable_Routing_Engine</id>
		<title>Scriptable Routing Engine</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/Scriptable_Routing_Engine"/>
				<updated>2010-08-25T12:27:32Z</updated>
		
		<summary type="html">&lt;p&gt;Ktrueman: clean up&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Toolpack]] [[Version 2.3|v2.3]] introduces a scriptable routing engine that complements the existing approach to building [[Call routing|call routes]]. This new approach is based on the [http://www.ruby-lang.org/en/ Ruby] programming language, which offers a high-level, natural language-like approach to programming known as [http://en.wikipedia.org/wiki/Scripting_language scripting]. With Ruby, no code compilation is required to use routing scripts; in fact, you write scripts within your web browser. A high-level overview of how to write scripts is available upon request by contacting the TelcoBridges [mailto:support@telcobridges.com support team].&lt;br /&gt;
&lt;br /&gt;
As part of the initial release, TelcoBridges is providing a number of ready-to-use scripts such as percentage routing, round-robin routing, least-cost routing, [[SIP trunking]], PRI reselling with over-subscription, etc., with additional scripts to be made available as we go forward. This new approach is meant to supplement the current approach to building routes. It should also make it possible for your service provider customers, once properly trained by you, to modify routing tables on their own.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
There is no additional software required to use the scriptable routing engine. All necessary software is installed by the [[Toolpack]] installer application. While the Ruby language is natural language-like and easily approachable, some understanding of programming or Ruby is required in order to modify existing scripts. The Ruby scripts provided with Toolpack essentially consist of a series of mini scripts or sub-scripts (akin to classes in C++); therefore creating a script from scratch does require more experience. Please see the [http://www.ruby-lang.org/ Ruby site] for additional information on Ruby. That site features a helpful tutorial called “Ruby in 20 minutes”. There is also a section called “Ruby from Other Languages” which will help you understand Ruby if your frame of reference is C++, Java, or a scripting language such as Perl, PHP, or Python.&lt;br /&gt;
&lt;br /&gt;
The Toolpack scriptable routing engine is based on the 1.8.x branch of Ruby.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Script routing overview ==&lt;br /&gt;
The Scriptable Routing Engine is asked, for every incoming call leg, to take a routing decision which indicates how the outgoing call leg must be created.&lt;br /&gt;
The script will match one or multiple routes based on information from the incoming call leg&lt;br /&gt;
*calling number&lt;br /&gt;
*called number&lt;br /&gt;
*NAP&lt;br /&gt;
Each route determines NAP to use to make outgoing call, and may modify some of the call parameters:&lt;br /&gt;
*calling number&lt;br /&gt;
*called number&lt;br /&gt;
*nature of address&lt;br /&gt;
*numbering plan&lt;br /&gt;
*calling presentation&lt;br /&gt;
*etc.&lt;br /&gt;
&lt;br /&gt;
Multiple routes can match a given incoming call, in which case routes can be sorted using various criteria:&lt;br /&gt;
*round robin&lt;br /&gt;
*least cost&lt;br /&gt;
*availability percent&lt;br /&gt;
*etc.&lt;br /&gt;
&lt;br /&gt;
An outgoing call will be made based on the first matching route.&lt;br /&gt;
If this call fails with that route (maximum capacity reached, network or protocol error), another outgoing call attempt will be made using the next matching route.&lt;br /&gt;
Note: This route retry feature is available only in Toolpack version 2.5 and up.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Steps ==&lt;br /&gt;
You access the Scriptable Routing Engine via the Toolpack [[Web Portal|web portal]]. After logging into the Toolpack web portal with your web browser, do the following steps to either modify or create a script and to then activate it.&lt;br /&gt;
&lt;br /&gt;
*To modify a bundled script or to create a script from scratch, go to '''Gateway &amp;gt; Routing Scripts''' in the navigation menu on the left hand side of the web page.&lt;br /&gt;
**Select '''Create New Script''' to generate a default script. Here you will name your script. There is a checkbox called ‘Create default script files’ that is checked by default. If left checked, it will add the default scripts elements to your script.&lt;br /&gt;
**In the '''Editing NAPS''' section, you are initially presented with a list of NAPS configured on the system. Via the '''Create New NAP Column''' item, you have the ability to add custom fields for the purposes of adding weights or other variables that your scripts should take into account.&lt;br /&gt;
***The list of available [[NAP|NAPs]] is accessed via '''Global &amp;gt; NAPS'''.&lt;br /&gt;
**In addition to authoring scripts in the web browser, Ruby scripts can be authored in any application that offers text editing functionality. Importing a Ruby script into Toolpack is as simple as copying it from the source application document and paste it in to the editing window of the web browser.&lt;br /&gt;
*To assign and activate a script, go to '''Gateway &amp;gt; Configurations''' at the bottom of the navigation menu on the left hand side of the web page. If you are already satisfied with your gateway configuration, then click on '''Edit Configuration''' to edit your existing gateway configuration. If you want to create a new gateway configuration, click on '''Create New Configuration'''. A new window will open. Locate the '''Use Script''' sub-menu underneath the '''Use script''' section. ('''''See Figure 1'''''). You then click on the pop-up menu and choose the script you want.&lt;br /&gt;
**The list of available scripts is determined via the Routing Scripts menu item we saw in the previous bullet. They are:&lt;br /&gt;
***base_routing&lt;br /&gt;
***simple_routing&lt;br /&gt;
***simple_least_cost_routing&lt;br /&gt;
***least_cost_routing&lt;br /&gt;
***simple_routing_selector&lt;br /&gt;
***percentage_routing&lt;br /&gt;
***asr_routing&lt;br /&gt;
***noa_npi_remap_routing_example&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Figure 1: Use Script sub-menu'''&lt;br /&gt;
&lt;br /&gt;
[[Image:script-sub-menu.jpg]]&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
*Once you have selected a script, you need to create routes and network access points (NAPs).&lt;br /&gt;
**The '''Editing Routes''' section is where you create new routes. In addition to the standard route parameters, you can add new custom parameters as well. These parameters and their values can be accessed in the scripts. &lt;br /&gt;
**The '''Editing Naps''' section is where you manage NAPs. In addition to the standard NAP parameters, you can add new custom parameters as well. These parameters and their values can be accessed in the scripts.&lt;br /&gt;
***This is used to add NAP-specific parameters to the routing scripts.&lt;br /&gt;
***The list of NAPs is always populated with the NAPs of your current configurations.&lt;br /&gt;
*In order to activate a new script or a modified script, you must force a reload of the gateway’s configuration. &lt;br /&gt;
**If you have created a new gateway configuration, you need to change the current configuration of the gateway instance. This can be done by accessing the Instance menu, editing the gateway instance and changing its configuration to your new one. If you have modified an existing gateway configuration, you do need to change anything. In both cases however, you need to activate the configuration in '''Global &amp;gt; Systems'''. There you select the system to which you want to apply the configuration, clicking '''Edit''' besides its name. In the new page that opens, click '''Activate''' in the '''Active Configuration''' section.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Tutorial guide ==&lt;br /&gt;
To learn how to use the Scriptable Routing Engine, click the following link to go to the [[routing_script_tutorial|Script Routing Tutorial]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mini development guide ==&lt;br /&gt;
To learn about the parameters available in for each object go read the [[Routing_script_tutorial:Mini_Development_Guide|Script Routing Mini Development Guide]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Testing this feature ==&lt;br /&gt;
To test this feature, you will want to modify some of the provided scripts by changing variables such as route costing or NAP targets.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Known limitations ==&lt;br /&gt;
The following are known limitations with the Scriptable Routing Engine as of version 2.5:&lt;br /&gt;
*Scripts (including script sub-components provided by TelcoBridges) are not updated when Toolpack is upgraded to new version (for example, to the release version of v2.3.0, v2.3.1, etc.). This means that if there is an update (bug fix) of the basic script, you will need to manually update any existing scripts.&lt;br /&gt;
*If you are using dynamic fields (using the '''Creating New Route Column '''or the '''Create New Nap Column''' option) with routing scripts and you plan to use NAP names, those NAP names need to be '''''all capital''''' letters (i.e.: not just the first letter needs to be capitalized.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
*[[Routing script tutorial]]&lt;/div&gt;</summary>
		<author><name>Ktrueman</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/Label_Routing</id>
		<title>Label Routing</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/Label_Routing"/>
				<updated>2010-08-24T20:51:11Z</updated>
		
		<summary type="html">&lt;p&gt;Ktrueman: /* Add the routeset definition NAP dynamic column */ clean-up&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Routeset Routing is an algorithm that combines&amp;amp;nbsp;[[Digit Analyzer|Digit Analyzer]] and the concept of [[RouteSet|RouteSet]]. It is implemented as a [[Scriptable Routing Engine|RoutingScript]]&amp;amp;nbsp;in Toolpack Gateway. &amp;amp;nbsp;This algorithm allows complex routing rules, as normally available with [[Scriptable Routing Engine|RoutingScript]], but on a very large number of destination numbers. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Concept  ==&lt;br /&gt;
&lt;br /&gt;
The concept behind routeset routing is quite simple.&lt;br /&gt;
&lt;br /&gt;
#A list of numbers (NPA-NXX) for a specific destination is assigned a [[RouteSet|RouteSet]] name. This list can be very large&lt;br /&gt;
##i.e., 514201,514202,514203, ... -&amp;amp;gt; &amp;quot;Montreal, Qc&amp;quot; &lt;br /&gt;
#The list of routes for the destination is assigned the same [[RouteSet|RouteSet]] name. This list usually is limited to the number of [[NAP|network access points (NAP)]] in the system.&lt;br /&gt;
##i.e., Bell, Rogers, Videotron -&amp;amp;gt; &amp;quot;Montreal, Qc&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note: No matter how many destination numbers lead to a given destination, only a limited list of routes are selected. At this point, complex, yet efficient, routing rules can take place.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Implementation  ==&lt;br /&gt;
&lt;br /&gt;
As previously mentioned, Routeset Routing is implemented as a [[Scriptable Routing Engine|RoutingScript]]. It was written as an optional filter, and can be used in any existing scripts. This filter is a before_filter, and reduces the amount of routes the routing script will work with.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Provisioning  ==&lt;br /&gt;
&lt;br /&gt;
Provisioning of large amounts of Routeset Definition and Routeset Digitmap is accomplished by importing [http://en.wikipedia.org/wiki/Comma-separated_values CSV] files using the WebPortal. &amp;amp;nbsp;Those files are being saved in the HA Database. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Routeset Definition  ===&lt;br /&gt;
&lt;br /&gt;
Each [[NAP]] in the system must be assigned a routesets_definition [http://en.wikipedia.org/wiki/Comma-separated_values CSV] file. A routesets_definition file gives the association between [[NAP|NAP]] and [[RouteSet|RouteSet]] names. The association between a [[NAP]] and a [[RouteSet|RouteSet]] name is in fact a route! ie: Rogers-&amp;amp;gt;&amp;quot;Montreal, Qc&amp;quot; Thus, for each [[RouteSet]] name&amp;amp;lt;-&amp;amp;gt;[[NAP]] association, a dynamic route entry gets created. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Routeset Definition file defines a list of [[RouteSet|RouteSet]] names, with optional attributes.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*One mandatory column: routeset_name &lt;br /&gt;
*Supplementary columns are used to provide optional and custom attributes to dynamically created routes&lt;br /&gt;
&lt;br /&gt;
  routeset_name,  cost,    custom_1&lt;br /&gt;
 &amp;quot;Montreal, Qc&amp;quot;, &amp;quot;0.24&amp;quot;,  &amp;quot;custom_val&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
In the above example, routes are created with custom attributes found in the second and third columns. Each custom attribute must be defined by adding a custom column in the gateway Route table. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;The [[NAP]] &amp;amp;lt;-&amp;amp;gt;&amp;amp;nbsp;Routeset Definition association is done&amp;amp;nbsp;by setting the [[NAP]] dynamic columns named 'routesets_definition'. &amp;amp;nbsp;More than one [[NAP]] can point to the same 'routesets_definition' file. This file must be imported in the database using the File Db view in the Toolpack Web Portal.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Add the routeset definition NAP dynamic column&amp;lt;br&amp;gt;  ====&lt;br /&gt;
&lt;br /&gt;
*Click the Gateway-&amp;amp;gt;Configurations-&amp;amp;gt;Naps menu&amp;lt;br&amp;gt; &lt;br /&gt;
*Click the 'Create New Nap Column' link&amp;lt;br&amp;gt; &lt;br /&gt;
*Complete the form as follows:&amp;lt;br&amp;gt; &lt;br /&gt;
**Name            = routesets_definition&amp;lt;br&amp;gt; &lt;br /&gt;
**Type attributes = dbfile&amp;lt;br&amp;gt; &lt;br /&gt;
**Default         = &amp;lt;br&amp;gt; &lt;br /&gt;
*Click 'Create' to save&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Routeset Digitmap  ===&lt;br /&gt;
&lt;br /&gt;
Each [[NAP]] in the system can be assigned a routesets_digitmap [http://en.wikipedia.org/wiki/Comma-separated_values CSV] file. It is usual that all NAP uses the same routesets_digitmap file. A routesets_digitmap file gives the association between numbers and [[RouteSet|RouteSet]] names. &lt;br /&gt;
&lt;br /&gt;
*Three mandatory columns: route_set_name, called and calling&lt;br /&gt;
&lt;br /&gt;
  called,calling,routeset_name&lt;br /&gt;
 403200,       ,&amp;quot;Calgary, AB&amp;quot;&lt;br /&gt;
 514201,       ,&amp;quot;Montreal, Qc&amp;quot;&lt;br /&gt;
 514202,       ,&amp;quot;Montreal, Qc&amp;quot;&lt;br /&gt;
 514203,       ,&amp;quot;Montreal, Qc&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The [[NAP]] &amp;amp;lt;-&amp;amp;gt;&amp;amp;nbsp;Routeset Digitmap association is done&amp;amp;nbsp;by setting the [[NAP]] dynamic columns named 'routesets_digitmap'. &amp;amp;nbsp; This file must be imported in the database using the File Db view in the Toolpack Web Portal. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Add the routesets digitmap NAP dynamic column&amp;lt;br&amp;gt;  ====&lt;br /&gt;
&lt;br /&gt;
*Click the Gateway-&amp;amp;gt;Configurations-&amp;amp;gt;Naps menu&amp;lt;br&amp;gt; &lt;br /&gt;
*Click the 'Create New Nap Column' link&amp;lt;br&amp;gt; &lt;br /&gt;
*Fill the form as follow:&amp;lt;br&amp;gt; &lt;br /&gt;
*Name            = routesets_digitmap&amp;lt;br&amp;gt; &lt;br /&gt;
*Type attributes = dbfile&amp;lt;br&amp;gt; &lt;br /&gt;
*Default         = &amp;lt;br&amp;gt; &lt;br /&gt;
*Click create to save&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Dynamic Routes  ==&lt;br /&gt;
&lt;br /&gt;
When provisioning is complete, dynamic routes can be generated by going in the Routetsets menu item, under Gateway menu Item. &lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;200&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | [[Image:Routesets.png|left]] &lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | [[Image:Generate routes.png|left]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Using routeset routing==&lt;br /&gt;
&lt;br /&gt;
RouteSet routing can be implemented by following these 3 simple steps: &lt;br /&gt;
&lt;br /&gt;
#Add a the following line on top of your script file: &lt;br /&gt;
#;&amp;lt;pre&amp;gt;require 'routesets_digit_analyzer'&amp;lt;/pre&amp;gt; &lt;br /&gt;
#Include the module in your routing class: &lt;br /&gt;
#;&amp;lt;pre&amp;gt;  class MyRoutingClass &amp;amp;lt; BaseRouting&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#;;include RoutesetsDigitAnalyzer &lt;br /&gt;
&lt;br /&gt;
#;;... &lt;br /&gt;
&lt;br /&gt;
#;;end  &lt;br /&gt;
#Add a before_filter with 'routesets_digit_analyzer' method: &lt;br /&gt;
#;&amp;lt;pre&amp;gt;before_filter&amp;amp;nbsp;:method =&amp;amp;gt;&amp;amp;nbsp;:routesets_digit_analyzer,&amp;amp;nbsp;:trie_order =&amp;amp;gt;&amp;amp;nbsp;:called&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Complete Example  ===&lt;br /&gt;
&amp;lt;pre&amp;gt;  require 'base_routing'&lt;br /&gt;
  require 'routesets_digit_analyzer'&lt;br /&gt;
&lt;br /&gt;
  class MyRoutingClass &amp;amp;lt; BaseRouting&lt;br /&gt;
    include RoutesetsDigitAnalyzer&lt;br /&gt;
  &lt;br /&gt;
    before_filter&amp;amp;nbsp;:method =&amp;amp;gt;&amp;amp;nbsp;:routesets_digit_analyzer,&amp;amp;nbsp;:trie_order =&amp;amp;gt;&amp;amp;nbsp;:called&lt;br /&gt;
&lt;br /&gt;
    route_match&amp;amp;nbsp;:call_field_name =&amp;amp;gt;&amp;amp;nbsp;:called&lt;br /&gt;
    route_match&amp;amp;nbsp;:call_field_name =&amp;amp;gt;&amp;amp;nbsp;:calling&lt;br /&gt;
    route_match&amp;amp;nbsp;:call_field_name =&amp;amp;gt;&amp;amp;nbsp;:nap&lt;br /&gt;
    route_match&amp;amp;nbsp;:method =&amp;amp;gt;&amp;amp;nbsp;:match_nap_availability&lt;br /&gt;
    route_remap&amp;amp;nbsp;:call_field_name =&amp;amp;gt;&amp;amp;nbsp;:called,&amp;amp;nbsp;:route_field_name =&amp;amp;gt;&amp;amp;nbsp;:remapped_called&lt;br /&gt;
    route_remap&amp;amp;nbsp;:call_field_name =&amp;amp;gt;&amp;amp;nbsp;:calling,&amp;amp;nbsp;:route_field_name =&amp;amp;gt;&amp;amp;nbsp;:remapped_calling&lt;br /&gt;
    route_remap&amp;amp;nbsp;:call_field_name =&amp;amp;gt;&amp;amp;nbsp;:nap,&amp;amp;nbsp;:route_field_name =&amp;amp;gt;&amp;amp;nbsp;:remapped_nap&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ktrueman</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/Label_Routing</id>
		<title>Label Routing</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/Label_Routing"/>
				<updated>2010-08-24T20:37:07Z</updated>
		
		<summary type="html">&lt;p&gt;Ktrueman: some more clean-up&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Routeset Routing is an algorithm that combines&amp;amp;nbsp;[[Digit Analyzer|Digit Analyzer]] and the concept of [[RouteSet|RouteSet]]. It is implemented as a [[Scriptable Routing Engine|RoutingScript]]&amp;amp;nbsp;in Toolpack Gateway. &amp;amp;nbsp;This algorithm allows complex routing rules, as normally available with [[Scriptable Routing Engine|RoutingScript]], but on a very large number of destination numbers. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Concept  ==&lt;br /&gt;
&lt;br /&gt;
The concept behind routeset routing is quite simple.&lt;br /&gt;
&lt;br /&gt;
#A list of numbers (NPA-NXX) for a specific destination is assigned a [[RouteSet|RouteSet]] name. This list can be very large&lt;br /&gt;
##i.e., 514201,514202,514203, ... -&amp;amp;gt; &amp;quot;Montreal, Qc&amp;quot; &lt;br /&gt;
#The list of routes for the destination is assigned the same [[RouteSet|RouteSet]] name. This list usually is limited to the number of [[NAP|network access points (NAP)]] in the system.&lt;br /&gt;
##i.e., Bell, Rogers, Videotron -&amp;amp;gt; &amp;quot;Montreal, Qc&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note: No matter how many destination numbers lead to a given destination, only a limited list of routes are selected. At this point, complex, yet efficient, routing rules can take place.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Implementation  ==&lt;br /&gt;
&lt;br /&gt;
As previously mentioned, Routeset Routing is implemented as a [[Scriptable Routing Engine|RoutingScript]]. It was written as an optional filter, and can be used in any existing scripts. This filter is a before_filter, and reduces the amount of routes the routing script will work with.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Provisioning  ==&lt;br /&gt;
&lt;br /&gt;
Provisioning of large amounts of Routeset Definition and Routeset Digitmap is accomplished by importing [http://en.wikipedia.org/wiki/Comma-separated_values CSV] files using the WebPortal. &amp;amp;nbsp;Those files are being saved in the HA Database. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Routeset Definition  ===&lt;br /&gt;
&lt;br /&gt;
Each [[NAP]] in the system must be assigned a routesets_definition [http://en.wikipedia.org/wiki/Comma-separated_values CSV] file. A routesets_definition file gives the association between [[NAP|NAP]] and [[RouteSet|RouteSet]] names. The association between a [[NAP]] and a [[RouteSet|RouteSet]] name is in fact a route! ie: Rogers-&amp;amp;gt;&amp;quot;Montreal, Qc&amp;quot; Thus, for each [[RouteSet]] name&amp;amp;lt;-&amp;amp;gt;[[NAP]] association, a dynamic route entry gets created. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Routeset Definition file defines a list of [[RouteSet|RouteSet]] names, with optional attributes.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*One mandatory column: routeset_name &lt;br /&gt;
*Supplementary columns are used to provide optional and custom attributes to dynamically created routes&lt;br /&gt;
&lt;br /&gt;
  routeset_name,  cost,    custom_1&lt;br /&gt;
 &amp;quot;Montreal, Qc&amp;quot;, &amp;quot;0.24&amp;quot;,  &amp;quot;custom_val&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
In the above example, routes are created with custom attributes found in the second and third columns. Each custom attribute must be defined by adding a custom column in the gateway Route table. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;The [[NAP]] &amp;amp;lt;-&amp;amp;gt;&amp;amp;nbsp;Routeset Definition association is done&amp;amp;nbsp;by setting the [[NAP]] dynamic columns named 'routesets_definition'. &amp;amp;nbsp;More than one [[NAP]] can point to the same 'routesets_definition' file. This file must be imported in the database using the File Db view in the Toolpack Web Portal.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Add the routeset definition NAP dynamic column&amp;lt;br&amp;gt;  ====&lt;br /&gt;
&lt;br /&gt;
*Click the Gateway-&amp;amp;gt;Configurations-&amp;amp;gt;Naps menu&amp;lt;br&amp;gt; &lt;br /&gt;
*Click the 'Create New Nap Column' link&amp;lt;br&amp;gt; &lt;br /&gt;
*Fill the form as follow:&amp;lt;br&amp;gt; &lt;br /&gt;
*Name            = routesets_definition&amp;lt;br&amp;gt; &lt;br /&gt;
*Type attributes = dbfile&amp;lt;br&amp;gt; &lt;br /&gt;
*Default         = &amp;lt;br&amp;gt; &lt;br /&gt;
*Click create to save&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Routeset Digitmap  ===&lt;br /&gt;
&lt;br /&gt;
Each [[NAP]] in the system can be assigned a routesets_digitmap [http://en.wikipedia.org/wiki/Comma-separated_values CSV] file. It is usual that all NAP uses the same routesets_digitmap file. A routesets_digitmap file gives the association between numbers and [[RouteSet|RouteSet]] names. &lt;br /&gt;
&lt;br /&gt;
*Three mandatory columns: route_set_name, called and calling&lt;br /&gt;
&lt;br /&gt;
  called,calling,routeset_name&lt;br /&gt;
 403200,       ,&amp;quot;Calgary, AB&amp;quot;&lt;br /&gt;
 514201,       ,&amp;quot;Montreal, Qc&amp;quot;&lt;br /&gt;
 514202,       ,&amp;quot;Montreal, Qc&amp;quot;&lt;br /&gt;
 514203,       ,&amp;quot;Montreal, Qc&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The [[NAP]] &amp;amp;lt;-&amp;amp;gt;&amp;amp;nbsp;Routeset Digitmap association is done&amp;amp;nbsp;by setting the [[NAP]] dynamic columns named 'routesets_digitmap'. &amp;amp;nbsp; This file must be imported in the database using the File Db view in the Toolpack Web Portal. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Add the routesets digitmap NAP dynamic column&amp;lt;br&amp;gt;  ====&lt;br /&gt;
&lt;br /&gt;
*Click the Gateway-&amp;amp;gt;Configurations-&amp;amp;gt;Naps menu&amp;lt;br&amp;gt; &lt;br /&gt;
*Click the 'Create New Nap Column' link&amp;lt;br&amp;gt; &lt;br /&gt;
*Fill the form as follow:&amp;lt;br&amp;gt; &lt;br /&gt;
*Name            = routesets_digitmap&amp;lt;br&amp;gt; &lt;br /&gt;
*Type attributes = dbfile&amp;lt;br&amp;gt; &lt;br /&gt;
*Default         = &amp;lt;br&amp;gt; &lt;br /&gt;
*Click create to save&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Dynamic Routes  ==&lt;br /&gt;
&lt;br /&gt;
When provisioning is complete, dynamic routes can be generated by going in the Routetsets menu item, under Gateway menu Item. &lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;200&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | [[Image:Routesets.png|left]] &lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | [[Image:Generate routes.png|left]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Using routeset routing==&lt;br /&gt;
&lt;br /&gt;
RouteSet routing can be implemented by following these 3 simple steps: &lt;br /&gt;
&lt;br /&gt;
#Add a the following line on top of your script file: &lt;br /&gt;
#;&amp;lt;pre&amp;gt;require 'routesets_digit_analyzer'&amp;lt;/pre&amp;gt; &lt;br /&gt;
#Include the module in your routing class: &lt;br /&gt;
#;&amp;lt;pre&amp;gt;  class MyRoutingClass &amp;amp;lt; BaseRouting&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#;;include RoutesetsDigitAnalyzer &lt;br /&gt;
&lt;br /&gt;
#;;... &lt;br /&gt;
&lt;br /&gt;
#;;end  &lt;br /&gt;
#Add a before_filter with 'routesets_digit_analyzer' method: &lt;br /&gt;
#;&amp;lt;pre&amp;gt;before_filter&amp;amp;nbsp;:method =&amp;amp;gt;&amp;amp;nbsp;:routesets_digit_analyzer,&amp;amp;nbsp;:trie_order =&amp;amp;gt;&amp;amp;nbsp;:called&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Complete Example  ===&lt;br /&gt;
&amp;lt;pre&amp;gt;  require 'base_routing'&lt;br /&gt;
  require 'routesets_digit_analyzer'&lt;br /&gt;
&lt;br /&gt;
  class MyRoutingClass &amp;amp;lt; BaseRouting&lt;br /&gt;
    include RoutesetsDigitAnalyzer&lt;br /&gt;
  &lt;br /&gt;
    before_filter&amp;amp;nbsp;:method =&amp;amp;gt;&amp;amp;nbsp;:routesets_digit_analyzer,&amp;amp;nbsp;:trie_order =&amp;amp;gt;&amp;amp;nbsp;:called&lt;br /&gt;
&lt;br /&gt;
    route_match&amp;amp;nbsp;:call_field_name =&amp;amp;gt;&amp;amp;nbsp;:called&lt;br /&gt;
    route_match&amp;amp;nbsp;:call_field_name =&amp;amp;gt;&amp;amp;nbsp;:calling&lt;br /&gt;
    route_match&amp;amp;nbsp;:call_field_name =&amp;amp;gt;&amp;amp;nbsp;:nap&lt;br /&gt;
    route_match&amp;amp;nbsp;:method =&amp;amp;gt;&amp;amp;nbsp;:match_nap_availability&lt;br /&gt;
    route_remap&amp;amp;nbsp;:call_field_name =&amp;amp;gt;&amp;amp;nbsp;:called,&amp;amp;nbsp;:route_field_name =&amp;amp;gt;&amp;amp;nbsp;:remapped_called&lt;br /&gt;
    route_remap&amp;amp;nbsp;:call_field_name =&amp;amp;gt;&amp;amp;nbsp;:calling,&amp;amp;nbsp;:route_field_name =&amp;amp;gt;&amp;amp;nbsp;:remapped_calling&lt;br /&gt;
    route_remap&amp;amp;nbsp;:call_field_name =&amp;amp;gt;&amp;amp;nbsp;:nap,&amp;amp;nbsp;:route_field_name =&amp;amp;gt;&amp;amp;nbsp;:remapped_nap&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ktrueman</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/Label_Routing</id>
		<title>Label Routing</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/Label_Routing"/>
				<updated>2010-08-24T20:35:43Z</updated>
		
		<summary type="html">&lt;p&gt;Ktrueman: /* Concept */ clean up&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Routeset Routing is an algorithm that combines&amp;amp;nbsp;[[Digit Analyzer|Digit Analyzer]] and the concept of [[RouteSet|RouteSet]]. It is implemented as a [[Scriptable Routing Engine|RoutingScript]]&amp;amp;nbsp;in Toolpack Gateway. &amp;amp;nbsp;This algorithm allows complex routing rules, as normally available with [[Scriptable Routing Engine|RoutingScript]], but on a very large number of destination numbers. &lt;br /&gt;
&lt;br /&gt;
== Concept  ==&lt;br /&gt;
&lt;br /&gt;
The concept behind routeset routing is quite simple.&lt;br /&gt;
&lt;br /&gt;
#A list of numbers (NPA-NXX) for a specific destination is assigned a [[RouteSet|RouteSet]] name. This list can be very large&lt;br /&gt;
##i.e., 514201,514202,514203, ... -&amp;amp;gt; &amp;quot;Montreal, Qc&amp;quot; &lt;br /&gt;
#The list of routes for the destination is assigned the same [[RouteSet|RouteSet]] name. This list usually is limited to the number of [[NAP|network access points (NAP)]] in the system.&lt;br /&gt;
##i.e., Bell, Rogers, Videotron -&amp;amp;gt; &amp;quot;Montreal, Qc&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note: No matter how many destination numbers lead to a given destination, only a limited list of routes are selected. At this point, complex, yet efficient, routing rules can take place.&lt;br /&gt;
&lt;br /&gt;
== Implementation  ==&lt;br /&gt;
&lt;br /&gt;
As previously mentioned, Routeset Routing is implemented as a [[Scriptable Routing Engine|RoutingScript]]. It was written as an optional filter, and can be used in any existing scripts. This filter is a before_filter, and reduces the amount of routes the routing script will work with.&lt;br /&gt;
&lt;br /&gt;
== Provisioning  ==&lt;br /&gt;
&lt;br /&gt;
Provisioning of large amounts of Routeset Definition and Routeset Digitmap is accomplished by importing [http://en.wikipedia.org/wiki/Comma-separated_values CSV] files using the WebPortal. &amp;amp;nbsp;Those files are being saved in the HA Database. &lt;br /&gt;
&lt;br /&gt;
=== Routeset Definition  ===&lt;br /&gt;
&lt;br /&gt;
Each [[NAP]] in the system must be assigned a routesets_definition [http://en.wikipedia.org/wiki/Comma-separated_values CSV] file. A routesets_definition file gives the association between [[NAP|NAP]] and [[RouteSet|RouteSet]] names. The association between a [[NAP]] and a [[RouteSet|RouteSet]] name is in fact a route! ie: Rogers-&amp;amp;gt;&amp;quot;Montreal, Qc&amp;quot; Thus, for each [[RouteSet]] name&amp;amp;lt;-&amp;amp;gt;[[NAP]] association, a dynamic route entry gets created. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The Routeset Definition file defines a list of [[RouteSet|RouteSet]] names, with optional attributes.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*One mandatory column: routeset_name &lt;br /&gt;
*Supplementary columns are used to provide optional and custom attributes to dynamically created routes&lt;br /&gt;
&lt;br /&gt;
  routeset_name,  cost,    custom_1&lt;br /&gt;
 &amp;quot;Montreal, Qc&amp;quot;, &amp;quot;0.24&amp;quot;,  &amp;quot;custom_val&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
In the above example, routes are created with custom attributes found in the second and third columns. Each custom attribute must be defined by adding a custom column in the gateway Route table. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;The [[NAP]] &amp;amp;lt;-&amp;amp;gt;&amp;amp;nbsp;Routeset Definition association is done&amp;amp;nbsp;by setting the [[NAP]] dynamic columns named 'routesets_definition'. &amp;amp;nbsp;More than one [[NAP]] can point to the same 'routesets_definition' file. This file must be imported in the database using the File Db view in the Toolpack Web Portal.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==== Add the routeset definition NAP dynamic column&amp;lt;br&amp;gt;  ====&lt;br /&gt;
&lt;br /&gt;
*Click the Gateway-&amp;amp;gt;Configurations-&amp;amp;gt;Naps menu&amp;lt;br&amp;gt; &lt;br /&gt;
*Click the 'Create New Nap Column' link&amp;lt;br&amp;gt; &lt;br /&gt;
*Fill the form as follow:&amp;lt;br&amp;gt; &lt;br /&gt;
*Name            = routesets_definition&amp;lt;br&amp;gt; &lt;br /&gt;
*Type attributes = dbfile&amp;lt;br&amp;gt; &lt;br /&gt;
*Default         = &amp;lt;br&amp;gt; &lt;br /&gt;
*Click create to save&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Routeset Digitmap  ===&lt;br /&gt;
&lt;br /&gt;
Each [[NAP]] in the system can be assigned a routesets_digitmap [http://en.wikipedia.org/wiki/Comma-separated_values CSV] file. It is usual that all NAP uses the same routesets_digitmap file. A routesets_digitmap file gives the association between numbers and [[RouteSet|RouteSet]] names. &lt;br /&gt;
&lt;br /&gt;
*Three mandatory columns: route_set_name, called and calling&lt;br /&gt;
&lt;br /&gt;
  called,calling,routeset_name&lt;br /&gt;
 403200,       ,&amp;quot;Calgary, AB&amp;quot;&lt;br /&gt;
 514201,       ,&amp;quot;Montreal, Qc&amp;quot;&lt;br /&gt;
 514202,       ,&amp;quot;Montreal, Qc&amp;quot;&lt;br /&gt;
 514203,       ,&amp;quot;Montreal, Qc&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The [[NAP]] &amp;amp;lt;-&amp;amp;gt;&amp;amp;nbsp;Routeset Digitmap association is done&amp;amp;nbsp;by setting the [[NAP]] dynamic columns named 'routesets_digitmap'. &amp;amp;nbsp; This file must be imported in the database using the File Db view in the Toolpack Web Portal. &lt;br /&gt;
&lt;br /&gt;
==== Add the routesets digitmap NAP dynamic column&amp;lt;br&amp;gt;  ====&lt;br /&gt;
&lt;br /&gt;
*Click the Gateway-&amp;amp;gt;Configurations-&amp;amp;gt;Naps menu&amp;lt;br&amp;gt; &lt;br /&gt;
*Click the 'Create New Nap Column' link&amp;lt;br&amp;gt; &lt;br /&gt;
*Fill the form as follow:&amp;lt;br&amp;gt; &lt;br /&gt;
*Name            = routesets_digitmap&amp;lt;br&amp;gt; &lt;br /&gt;
*Type attributes = dbfile&amp;lt;br&amp;gt; &lt;br /&gt;
*Default         = &amp;lt;br&amp;gt; &lt;br /&gt;
*Click create to save&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Dynamic Routes  ==&lt;br /&gt;
&lt;br /&gt;
When provisioning is complete, dynamic routes can be generated by going in the Routetsets menu item, under Gateway menu Item. &lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;200&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | [[Image:Routesets.png|left]] &lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | [[Image:Generate routes.png|left]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Using  ==&lt;br /&gt;
&lt;br /&gt;
Using RouteSet Routing is done by following the 3 simple steps: &lt;br /&gt;
&lt;br /&gt;
#Add a the following line on top of your script file: &lt;br /&gt;
#;&amp;lt;pre&amp;gt;require 'routesets_digit_analyzer'&amp;lt;/pre&amp;gt; &lt;br /&gt;
#Include the module in your routing class: &lt;br /&gt;
#;&amp;lt;pre&amp;gt;  class MyRoutingClass &amp;amp;lt; BaseRouting&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#;;include RoutesetsDigitAnalyzer &lt;br /&gt;
&lt;br /&gt;
#;;... &lt;br /&gt;
&lt;br /&gt;
#;;end  &lt;br /&gt;
#Add a before_filter with 'routesets_digit_analyzer' method: &lt;br /&gt;
#;&amp;lt;pre&amp;gt;before_filter&amp;amp;nbsp;:method =&amp;amp;gt;&amp;amp;nbsp;:routesets_digit_analyzer,&amp;amp;nbsp;:trie_order =&amp;amp;gt;&amp;amp;nbsp;:called&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Complete Example  ===&lt;br /&gt;
&amp;lt;pre&amp;gt;  require 'base_routing'&lt;br /&gt;
  require 'routesets_digit_analyzer'&lt;br /&gt;
&lt;br /&gt;
  class MyRoutingClass &amp;amp;lt; BaseRouting&lt;br /&gt;
    include RoutesetsDigitAnalyzer&lt;br /&gt;
  &lt;br /&gt;
    before_filter&amp;amp;nbsp;:method =&amp;amp;gt;&amp;amp;nbsp;:routesets_digit_analyzer,&amp;amp;nbsp;:trie_order =&amp;amp;gt;&amp;amp;nbsp;:called&lt;br /&gt;
&lt;br /&gt;
    route_match&amp;amp;nbsp;:call_field_name =&amp;amp;gt;&amp;amp;nbsp;:called&lt;br /&gt;
    route_match&amp;amp;nbsp;:call_field_name =&amp;amp;gt;&amp;amp;nbsp;:calling&lt;br /&gt;
    route_match&amp;amp;nbsp;:call_field_name =&amp;amp;gt;&amp;amp;nbsp;:nap&lt;br /&gt;
    route_match&amp;amp;nbsp;:method =&amp;amp;gt;&amp;amp;nbsp;:match_nap_availability&lt;br /&gt;
    route_remap&amp;amp;nbsp;:call_field_name =&amp;amp;gt;&amp;amp;nbsp;:called,&amp;amp;nbsp;:route_field_name =&amp;amp;gt;&amp;amp;nbsp;:remapped_called&lt;br /&gt;
    route_remap&amp;amp;nbsp;:call_field_name =&amp;amp;gt;&amp;amp;nbsp;:calling,&amp;amp;nbsp;:route_field_name =&amp;amp;gt;&amp;amp;nbsp;:remapped_calling&lt;br /&gt;
    route_remap&amp;amp;nbsp;:call_field_name =&amp;amp;gt;&amp;amp;nbsp;:nap,&amp;amp;nbsp;:route_field_name =&amp;amp;gt;&amp;amp;nbsp;:remapped_nap&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ktrueman</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/RouteLabel</id>
		<title>RouteLabel</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/RouteLabel"/>
				<updated>2010-08-24T20:30:42Z</updated>
		
		<summary type="html">&lt;p&gt;Ktrueman: clean up&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A RouteSet is a group of possible routes for a given destination. Routes are associated with a RouteSet by referring to its name. And each route in the RouteSet refers to a different [[NAP]] that can be used to reach the destination. Here is an example: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;200&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Nap &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | RouteSet&lt;br /&gt;
|-&lt;br /&gt;
| Bell &lt;br /&gt;
| Montreal, Qc&lt;br /&gt;
|-&lt;br /&gt;
| Videotron &lt;br /&gt;
| Montreal, Qc&lt;br /&gt;
|-&lt;br /&gt;
| Rogers &lt;br /&gt;
| Montreal, Qc&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In this routing table, we have three routes in a RouteSet named &amp;quot;Montreal, Qc&amp;quot;. In order words, we have three routes for Montreal, Qc. &lt;br /&gt;
&lt;br /&gt;
With the routing table in place, the association between a called number and a destination is done by the [[Digit Analyzer]].&lt;/div&gt;</summary>
		<author><name>Ktrueman</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/Routing_script_tutorial:Mini_Development_Guide</id>
		<title>Routing script tutorial:Mini Development Guide</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/Routing_script_tutorial:Mini_Development_Guide"/>
				<updated>2010-08-24T20:28:21Z</updated>
		
		<summary type="html">&lt;p&gt;Ktrueman: /* Reason values */ clean up&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Call object  ==&lt;br /&gt;
&lt;br /&gt;
=== Get ===&lt;br /&gt;
 &lt;br /&gt;
Those function are used to get the call parameters. The possible parameters are described in the section &amp;quot;Call parameters&amp;quot;&lt;br /&gt;
  called_number = caf_call.get :called&lt;br /&gt;
&lt;br /&gt;
=== List_params  ===&lt;br /&gt;
&lt;br /&gt;
This function is used to retrieve the list of supported call parameters. For example to extract all the possible call params from the the call object and put it in hash.&lt;br /&gt;
  caf_call.list_params.each {|param| call[param] = caf_call.get param }&lt;br /&gt;
&lt;br /&gt;
=== Accept  ===&lt;br /&gt;
&lt;br /&gt;
This function is used to accept a call. It takes 2 arguments, the call parameters (hash) and the route parameters (hash).&lt;br /&gt;
&lt;br /&gt;
Apply route remapping rules&lt;br /&gt;
  caf_call.accept out_call, route&lt;br /&gt;
&lt;br /&gt;
=== Refuse  ===&lt;br /&gt;
&lt;br /&gt;
This function is used to refuse a call with a reason code argument parameters : &lt;br /&gt;
  caf_call.refuse :reason =&amp;gt; :temporary_failure&lt;br /&gt;
&lt;br /&gt;
The supported values are described in the section &amp;quot;Reason values&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
== Call parameters ==&lt;br /&gt;
&lt;br /&gt;
The following call parameters are available in the call object:&lt;br /&gt;
&lt;br /&gt;
* calling&lt;br /&gt;
* calling_noa&lt;br /&gt;
* calling_npi&lt;br /&gt;
* calling_display_type&lt;br /&gt;
* calling_display&lt;br /&gt;
* calling_presentation&lt;br /&gt;
* calling_screening&lt;br /&gt;
* called&lt;br /&gt;
* called_noa&lt;br /&gt;
* called_npi&lt;br /&gt;
* nap&lt;br /&gt;
&lt;br /&gt;
'''Notice:''' All values are documented in the '''noa_npi_remap.rb''' script and may change between major release.&lt;br /&gt;
&lt;br /&gt;
=== Noa values ===&lt;br /&gt;
* &amp;lt;tt&amp;gt;unknown_number&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;international_number&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;national_number&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;subscriber_number&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;network_specific&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;network_routing_national_format&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;network_routing_international_format&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;abbreviated_number&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;subscriber_number_operator_requested&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;national_number_operator_requested&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;international_number_operator_requested&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;no_number_present_operator_requested&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;no_number_present_cut_through_call_to_carrier&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;test_line_test_code&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;non_unique_subscriber_number&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;non_unique_national_number&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;non_unique_international_number&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;call_950_number&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Those values will be remapped to the protocol specific NOA value. To provide protocol specific value:&lt;br /&gt;
* &amp;lt;tt&amp;gt;call_params[:called_noa] = 0x70&amp;lt;/tt&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
* &amp;lt;tt&amp;gt;call_params[:called_noa] = 112&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Npi values ===&lt;br /&gt;
* &amp;lt;tt&amp;gt;unknown_number&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;isdn&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;telephony&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;private&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;data&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;telex&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;national&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Calling Display Type values ===&lt;br /&gt;
* &amp;lt;tt&amp;gt;unspecified&amp;lt;/tt&amp;gt; =&amp;gt; Type is unspecified.&lt;br /&gt;
* &amp;lt;tt&amp;gt;calling_party_name&amp;lt;/tt&amp;gt; =&amp;gt; Type is 0xB1.&lt;br /&gt;
&lt;br /&gt;
Those values will be remapped to the protocol specific  Display Information Type value. To provide protocol specific value:&lt;br /&gt;
* &amp;lt;tt&amp;gt;call_params[:calling_display_type] = 0xB1&amp;lt;/tt&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
* &amp;lt;tt&amp;gt;call_params[:calling_display_type] = 177&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Calling Display value ===&lt;br /&gt;
* &amp;lt;tt&amp;gt;call_params[:calling_display] = &amp;quot;Roger Fluffy&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Calling Presentation values ===&lt;br /&gt;
* &amp;lt;tt&amp;gt;unspecified&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;not_available&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;allowed&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;restricted&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;addr_restricted&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;name_restricted&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Calling Screening values ===&lt;br /&gt;
* &amp;lt;tt&amp;gt;unspecified&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;no&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;pass&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;fail&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;network_provided&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Route parameters  ==&lt;br /&gt;
&lt;br /&gt;
All route may have these parameters: &lt;br /&gt;
&lt;br /&gt;
*calling &lt;br /&gt;
*called &lt;br /&gt;
*nap &lt;br /&gt;
*remapped_calling &lt;br /&gt;
*remapped_called &lt;br /&gt;
*remapped_nap &lt;br /&gt;
*remapped_profile&lt;br /&gt;
&lt;br /&gt;
Additionally it is possible to add dynamic route attributes in the web portal. These can be referenced by their name.&lt;br /&gt;
&lt;br /&gt;
== Reason values  ==&lt;br /&gt;
&lt;br /&gt;
All CMC reason codes are available for use by the routing scripts. See the TBCMC_CALL_REASON_CODE enum in the tbcmc_call.h file.&lt;br /&gt;
&lt;br /&gt;
'''Notice:''' These values may change between major release. &lt;br /&gt;
&lt;br /&gt;
  /* isdn/ss7 reason code style */&lt;br /&gt;
  /* Toolpack engine will convert reason code from sip to isdn/ss7 or isdn/ss7 to sip according to RFC3398 */&lt;br /&gt;
  UNALLOCATED_NUMBER&lt;br /&gt;
  NO_ROUTE_TO_NETWORK&lt;br /&gt;
  NO_ROUTE_TO_DESTINATION&lt;br /&gt;
  SEND_SPECIAL_TONE&lt;br /&gt;
  MISDIALLED_TRUNK_PREFIX&lt;br /&gt;
  CHANNEL_UNACCEPTABLE&lt;br /&gt;
  CALL_AWARDED_IN_ESTABLISHED_CHANNEL&lt;br /&gt;
  PREEMPTION&lt;br /&gt;
  REATTEMPT&lt;br /&gt;
  NORMAL_CALL_CLEARING&lt;br /&gt;
  USER_BUSY&lt;br /&gt;
  NO_USER_RESPONDING&lt;br /&gt;
  NO_ANSWER_FROM_USER&lt;br /&gt;
  SUBSCRIBER_ABSENT&lt;br /&gt;
  CALL_REJECTED&lt;br /&gt;
  NUMBER_CHANGED&lt;br /&gt;
  REDIRECTION&lt;br /&gt;
  EXCHANGE_ROUTING_ERROR&lt;br /&gt;
  NON_SELECTED_USER_CLEARING&lt;br /&gt;
  DESTINATION_OUT_OF_ORDER&lt;br /&gt;
  ADDRESS_INCOMPLETE&lt;br /&gt;
  FACILITY_REJECTED&lt;br /&gt;
  RESPONSE_TO_STATUS_ENQUIRY&lt;br /&gt;
  NORMAL_UNSPECIFIED&lt;br /&gt;
  NO_CIRCUIT_AVAILABLE&lt;br /&gt;
  NETWORK_OUT_OF_ORDER&lt;br /&gt;
  FRAME_MODE_OUT_OF_SERVICE&lt;br /&gt;
  FRAME_MODE_CONN_OPERATIONAL&lt;br /&gt;
  TEMPORARY_FAILURE&lt;br /&gt;
  SWITCHING_EQUIP_CONGESTION&lt;br /&gt;
  ACCESS_INFO_DISCARDED&lt;br /&gt;
  REQUESTED_CIRCUIT_NOT_AVAILABLE&lt;br /&gt;
  PRECEDENCE_CALL_BLOCKED&lt;br /&gt;
  RESOURCE_UNAVAILABLE&lt;br /&gt;
  QOS_NOT_AVAILABLE&lt;br /&gt;
  REQUESTED_FACILITY_NOT_SUBSCRIBED&lt;br /&gt;
  OUTGOING_CALLS_BARRED&lt;br /&gt;
  OUTGOING_CALLS_BARRED_WITHIN_CUG&lt;br /&gt;
  INCOMING_CALLS_BARRED&lt;br /&gt;
  INCOMING_CALLS_BARRED_WITHIN_CUG&lt;br /&gt;
  BEARER_CAP_NOT_AUTHORIZED&lt;br /&gt;
  BEARER_CAP_NOT_AVAILABLE&lt;br /&gt;
  INCONSISTENCY_ACCESS_INFO&lt;br /&gt;
  SERVICE_NOT_AVAILABLE&lt;br /&gt;
  BEARER_CAP_NOT_IMPLEMENTED&lt;br /&gt;
  CHANNEL_TYPE_NOT_IMPLEMENTED&lt;br /&gt;
  REQUESTED_FACILITY_NOT_IMPLEMENTED&lt;br /&gt;
  ONLY_RESTRICTED_DIGITAL_INFO&lt;br /&gt;
  SERVICE_NOT_IMPLEMENTED&lt;br /&gt;
  INVALID_CALL_REFERENCE&lt;br /&gt;
  CHANNEL_DOES_NOT_EXIST&lt;br /&gt;
  CALL_IDENTITY_DOES_NOT_EXIST&lt;br /&gt;
  CALL_IDENTITY_IN_USE&lt;br /&gt;
  NO_CALL_SUSPENDED&lt;br /&gt;
  CALL_HAS_BEEN_CLEARED&lt;br /&gt;
  USER_NOT_MEMBER_OF_CUG&lt;br /&gt;
  INCOMPATIBLE_DESTINATION&lt;br /&gt;
  NON_EXISTANT_CUG&lt;br /&gt;
  INVALID_TRANSIT_NETWORK&lt;br /&gt;
  INVALID_MESSAGE_UNSPECIFIED&lt;br /&gt;
  MANDATORY_IE_MISSING&lt;br /&gt;
  MESSAGE_TYPE_NON_EXISTENT&lt;br /&gt;
  MESSAGE_NOT_COMPATIBLE_WITH_CALL_STATE&lt;br /&gt;
  IE_NON_EXISTENT&lt;br /&gt;
  INVALID_IE_CONTENT&lt;br /&gt;
  MSG_NOT_COMPATIBLE_WITH_CALL_STATE&lt;br /&gt;
  RECOVERY_ON_TIMER_EXPIRY&lt;br /&gt;
  PARAMETER_NON_EXISTENT_PASSED_ON&lt;br /&gt;
  MESSAGE_WITH_NON_RECOGNIZED_PARAMETERS_DISCARDED&lt;br /&gt;
  PROTOCOL_ERROR&lt;br /&gt;
  INTERWORKING_UNSPECIFIED&lt;br /&gt;
  &lt;br /&gt;
  /* Toolpack specific errors */&lt;br /&gt;
  NORMAL&lt;br /&gt;
  RESOURCE_ERROR&lt;br /&gt;
  TIMEOUT&lt;br /&gt;
  NO_ROUTE&lt;br /&gt;
  CALL_COLLISION&lt;br /&gt;
  SYNC_DROP&lt;br /&gt;
  SIGNALING_ERROR&lt;br /&gt;
  LOCALLY_REJECTED&lt;br /&gt;
  INTERFACE_NOT_AVAILABLE&lt;br /&gt;
  RESET_IN_PROGRESS&lt;br /&gt;
  ADAPTER_REJECT&lt;br /&gt;
  MISSING_INVALID_IE&lt;br /&gt;
  INCOMING_ONLY&lt;br /&gt;
  SYSTEM_CONFIGURATION_CHANGED&lt;br /&gt;
  RESOURCE_NO_MORE_AVAILABLE&lt;br /&gt;
  INCOMPATIBLE_MEDIA&lt;br /&gt;
  RES_ALLOC_FAILED&lt;br /&gt;
  DATA_PATH_NOT_AVAILABLE&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Nap status  ==&lt;br /&gt;
&lt;br /&gt;
All the status fields of the NAPs are provided for use by the routing scripts. See the nap status provider for more details on which fields are available in the CEngineStatTransNap.hpp file. &lt;br /&gt;
&lt;br /&gt;
'''Notice:''' These values may change between major release. &lt;br /&gt;
&lt;br /&gt;
  #define NAP_STATS_FIELDS \&lt;br /&gt;
    /* Field,                                 szName,                            szDescription,                                        szOptions */ \&lt;br /&gt;
    ( SIGNALING_TYPE,                         &amp;quot;signaling_type&amp;quot;,                  &amp;quot;Signaling type.&amp;quot;,                                    &amp;quot;&amp;quot; ) \&lt;br /&gt;
    ( INCOMING_CALL_CNT,                      &amp;quot;inst_incoming_call_cnt&amp;quot;,          &amp;quot;Instantaneous Count of incoming calls.&amp;quot;,             &amp;quot;&amp;quot; ) \&lt;br /&gt;
    ( OUTGOING_CALL_CNT,                      &amp;quot;inst_outgoing_call_cnt&amp;quot;,          &amp;quot;Instantaneous Count of outgoing calls.&amp;quot;,             &amp;quot;&amp;quot; ) \&lt;br /&gt;
    ( AVAILABLE_CNT,                          &amp;quot;available_cnt&amp;quot;,                   &amp;quot;Number of available circuits or channels.&amp;quot;,          &amp;quot;&amp;quot; ) \&lt;br /&gt;
    ( UNAVAILABLE_CNT,                        &amp;quot;unavailable_cnt&amp;quot;,                 &amp;quot;Number of unavailable circuits or channels.&amp;quot;,        &amp;quot;&amp;quot; ) \&lt;br /&gt;
    ( AVAILABILITY_PCT,                       &amp;quot;availability_percent&amp;quot;,            &amp;quot;Percentage of available circuits or channels.&amp;quot;,      &amp;quot;&amp;quot; ) \&lt;br /&gt;
    ( USAGE_PCT,                              &amp;quot;usage_percent&amp;quot;,                   &amp;quot;Percentage of used circuits or channels.&amp;quot;,           &amp;quot;&amp;quot; ) \&lt;br /&gt;
    ( TOTAL_INCOMING_CALL_CNT,                &amp;quot;total_incoming_call_cnt&amp;quot;,         &amp;quot;Total Count of incoming calls.&amp;quot;,                     &amp;quot;&amp;quot; ) \&lt;br /&gt;
    ( ASR_STRUCT,                             &amp;quot;asr_statistics_struct&amp;quot;,           &amp;quot;Detailed Answer-Seizure Rate Statistics.&amp;quot;,           &amp;quot;&amp;quot; ) \&lt;br /&gt;
      ( GLOBAL_ASR_PCT,                       &amp;quot;global_asr_percent&amp;quot;,              &amp;quot;Global calculated ASR percentage.&amp;quot;,                  &amp;quot;&amp;quot; ) \&lt;br /&gt;
      ( TOTAL_OUTGOING_CALL_CNT,              &amp;quot;total_outgoing_call_cnt&amp;quot;,         &amp;quot;Total Count of outgoing calls.&amp;quot;,                     &amp;quot;&amp;quot; ) \&lt;br /&gt;
      ( LAST_24H_ASR_PCT,                     &amp;quot;last_24h_asr_percent&amp;quot;,            &amp;quot;Last 24 hours calculated ASR percentage.&amp;quot;,           &amp;quot;&amp;quot; ) \&lt;br /&gt;
      ( LAST_24H_OUTGOING_CALL_CNT,           &amp;quot;last_24h_outgoing_call_cnt&amp;quot;,      &amp;quot;Last 24 hours outgoing calls.&amp;quot;,                      &amp;quot;&amp;quot; ) \&lt;br /&gt;
      ( HOUR_ASR_PCT,                         &amp;quot;current_hour_asr_percent&amp;quot;,        &amp;quot;Current hour calculated ASR percentage.&amp;quot;,            &amp;quot;&amp;quot; ) \&lt;br /&gt;
      ( HOUR_OUTGOING_CALL_CNT,               &amp;quot;current_hour_outgoing_call_cnt&amp;quot;,  &amp;quot;Current hour outgoing calls.&amp;quot;,                       &amp;quot;&amp;quot; ) \&lt;br /&gt;
      ( LAST_HOUR_ASR_PCT,                    &amp;quot;last_hour_asr_percent&amp;quot;,           &amp;quot;Last hour calculated ASR percentage.&amp;quot;,               &amp;quot;&amp;quot; ) \&lt;br /&gt;
       ( LAST_HOUR_OUTGOING_CALL_CNT,         &amp;quot;last_hour_outgoing_call_cnt&amp;quot;,     &amp;quot;Last hour outgoing calls.&amp;quot;,                          &amp;quot;&amp;quot; ) \&lt;br /&gt;
    ( AVAILABILITY_DETECTION_STRUCT,          &amp;quot;availability_detection_struct&amp;quot;,   &amp;quot;Detailed availibility detection Statistics&amp;quot;,         &amp;quot;&amp;quot; ) \&lt;br /&gt;
      ( POLL_REMOTE_PROXY,                    &amp;quot;poll_remote_proxy&amp;quot;,               &amp;quot;Remote proxy polling enabled&amp;quot;,                       &amp;quot;&amp;quot; ) \&lt;br /&gt;
      ( IS_AVAILABLE,                         &amp;quot;is_available&amp;quot;,                    &amp;quot;Remote proxy actually available or not&amp;quot;,             &amp;quot;&amp;quot; ) \&lt;br /&gt;
      ( TIME_SINCE_POLLING,                   &amp;quot;time_since_polling&amp;quot;,              &amp;quot;Time since the last availibility polling&amp;quot;,           &amp;quot;&amp;quot; ) \&lt;br /&gt;
      ( TIME_AVAILABLE_SECONDS,               &amp;quot;time_available_seconds&amp;quot;,          &amp;quot;Number of seconds since the NAP is available&amp;quot;,       &amp;quot;x&amp;quot; ) \&lt;br /&gt;
      ( TIME_UNAVAILABLE_SECONDS,             &amp;quot;time_unavailable_seconds&amp;quot;,        &amp;quot;Number of seconds since the NAP is unavailable&amp;quot;,     &amp;quot;x&amp;quot; ) \&lt;br /&gt;
    ( REGISTRATION_STRUCT,                    &amp;quot;registration_struct&amp;quot;,             &amp;quot;Detailed registration Statistics&amp;quot;,                   &amp;quot;&amp;quot; ) \&lt;br /&gt;
      ( REGISTER_TO_PROXY,                    &amp;quot;register_to_proxy&amp;quot;,               &amp;quot;Register to proxy enabled&amp;quot;,                          &amp;quot;&amp;quot; ) \&lt;br /&gt;
      ( IS_REGISTERED,                        &amp;quot;registered&amp;quot;,                      &amp;quot;Actually registered or not&amp;quot;,                         &amp;quot;&amp;quot; ) \&lt;br /&gt;
      ( TIME_SINCE_REFRESH,                   &amp;quot;time_since_refresh&amp;quot;,              &amp;quot;Time since the last refresh&amp;quot;,                        &amp;quot;&amp;quot; ) \&lt;br /&gt;
      ( TIME_REGISTERED_SECONDS,              &amp;quot;time_registered_seconds&amp;quot;,         &amp;quot;Number of seconds since the NAP is registered&amp;quot;,      &amp;quot;x&amp;quot; ) \&lt;br /&gt;
      ( TIME_NOT_REGISTERED_SECONDS,          &amp;quot;time_not_registered_seconds&amp;quot;,     &amp;quot;Number of seconds since the NAP is not registered&amp;quot;,  &amp;quot;x&amp;quot; ) \&lt;br /&gt;
    /*!&amp;amp;lt; Nap Status Fields */&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; If the nap status is part of a substructure, it's name in the routing scripts must be composed of the structure name appended by an underscore and the field name. &lt;br /&gt;
&lt;br /&gt;
For example the name to use for the global [[ASR]] percentage is: &lt;br /&gt;
&lt;br /&gt;
  asr_statistics_struct_global_asr_percent&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; It is also possible to add dynamic nap attributes in the web portal. These can be referenced by their name.&lt;br /&gt;
&lt;br /&gt;
== Test parameters  ==&lt;br /&gt;
&lt;br /&gt;
=== @call_params  ===&lt;br /&gt;
&lt;br /&gt;
That variable should contain a hash of call parameters that will passed to the routing script. This is equivalent to the incoming call parameters. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== @nap_list  ===&lt;br /&gt;
&lt;br /&gt;
A list of hash containing the nap statuses. This is equivalent to the nap statuses at the time the call is to be routed. &lt;br /&gt;
&lt;br /&gt;
'''The nap list is hashed by the nap names in UPPERCASE.''' It is important to consider this when creating new dynamic route or nap attributes that may nap names that will be used to fetch a status. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Back to [[Routing script tutorial|Routing Script Tutorial]].&lt;/div&gt;</summary>
		<author><name>Ktrueman</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/Routing_script_tutorial:Mini_Development_Guide</id>
		<title>Routing script tutorial:Mini Development Guide</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/Routing_script_tutorial:Mini_Development_Guide"/>
				<updated>2010-08-24T20:27:25Z</updated>
		
		<summary type="html">&lt;p&gt;Ktrueman: /* Route parameters */ fixed spelling&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Call object  ==&lt;br /&gt;
&lt;br /&gt;
=== Get ===&lt;br /&gt;
 &lt;br /&gt;
Those function are used to get the call parameters. The possible parameters are described in the section &amp;quot;Call parameters&amp;quot;&lt;br /&gt;
  called_number = caf_call.get :called&lt;br /&gt;
&lt;br /&gt;
=== List_params  ===&lt;br /&gt;
&lt;br /&gt;
This function is used to retrieve the list of supported call parameters. For example to extract all the possible call params from the the call object and put it in hash.&lt;br /&gt;
  caf_call.list_params.each {|param| call[param] = caf_call.get param }&lt;br /&gt;
&lt;br /&gt;
=== Accept  ===&lt;br /&gt;
&lt;br /&gt;
This function is used to accept a call. It takes 2 arguments, the call parameters (hash) and the route parameters (hash).&lt;br /&gt;
&lt;br /&gt;
Apply route remapping rules&lt;br /&gt;
  caf_call.accept out_call, route&lt;br /&gt;
&lt;br /&gt;
=== Refuse  ===&lt;br /&gt;
&lt;br /&gt;
This function is used to refuse a call with a reason code argument parameters : &lt;br /&gt;
  caf_call.refuse :reason =&amp;gt; :temporary_failure&lt;br /&gt;
&lt;br /&gt;
The supported values are described in the section &amp;quot;Reason values&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
== Call parameters ==&lt;br /&gt;
&lt;br /&gt;
The following call parameters are available in the call object:&lt;br /&gt;
&lt;br /&gt;
* calling&lt;br /&gt;
* calling_noa&lt;br /&gt;
* calling_npi&lt;br /&gt;
* calling_display_type&lt;br /&gt;
* calling_display&lt;br /&gt;
* calling_presentation&lt;br /&gt;
* calling_screening&lt;br /&gt;
* called&lt;br /&gt;
* called_noa&lt;br /&gt;
* called_npi&lt;br /&gt;
* nap&lt;br /&gt;
&lt;br /&gt;
'''Notice:''' All values are documented in the '''noa_npi_remap.rb''' script and may change between major release.&lt;br /&gt;
&lt;br /&gt;
=== Noa values ===&lt;br /&gt;
* &amp;lt;tt&amp;gt;unknown_number&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;international_number&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;national_number&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;subscriber_number&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;network_specific&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;network_routing_national_format&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;network_routing_international_format&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;abbreviated_number&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;subscriber_number_operator_requested&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;national_number_operator_requested&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;international_number_operator_requested&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;no_number_present_operator_requested&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;no_number_present_cut_through_call_to_carrier&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;test_line_test_code&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;non_unique_subscriber_number&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;non_unique_national_number&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;non_unique_international_number&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;call_950_number&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Those values will be remapped to the protocol specific NOA value. To provide protocol specific value:&lt;br /&gt;
* &amp;lt;tt&amp;gt;call_params[:called_noa] = 0x70&amp;lt;/tt&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
* &amp;lt;tt&amp;gt;call_params[:called_noa] = 112&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Npi values ===&lt;br /&gt;
* &amp;lt;tt&amp;gt;unknown_number&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;isdn&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;telephony&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;private&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;data&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;telex&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;national&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Calling Display Type values ===&lt;br /&gt;
* &amp;lt;tt&amp;gt;unspecified&amp;lt;/tt&amp;gt; =&amp;gt; Type is unspecified.&lt;br /&gt;
* &amp;lt;tt&amp;gt;calling_party_name&amp;lt;/tt&amp;gt; =&amp;gt; Type is 0xB1.&lt;br /&gt;
&lt;br /&gt;
Those values will be remapped to the protocol specific  Display Information Type value. To provide protocol specific value:&lt;br /&gt;
* &amp;lt;tt&amp;gt;call_params[:calling_display_type] = 0xB1&amp;lt;/tt&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
* &amp;lt;tt&amp;gt;call_params[:calling_display_type] = 177&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Calling Display value ===&lt;br /&gt;
* &amp;lt;tt&amp;gt;call_params[:calling_display] = &amp;quot;Roger Fluffy&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Calling Presentation values ===&lt;br /&gt;
* &amp;lt;tt&amp;gt;unspecified&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;not_available&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;allowed&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;restricted&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;addr_restricted&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;name_restricted&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Calling Screening values ===&lt;br /&gt;
* &amp;lt;tt&amp;gt;unspecified&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;no&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;pass&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;fail&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;network_provided&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Route parameters  ==&lt;br /&gt;
&lt;br /&gt;
All route may have these parameters: &lt;br /&gt;
&lt;br /&gt;
*calling &lt;br /&gt;
*called &lt;br /&gt;
*nap &lt;br /&gt;
*remapped_calling &lt;br /&gt;
*remapped_called &lt;br /&gt;
*remapped_nap &lt;br /&gt;
*remapped_profile&lt;br /&gt;
&lt;br /&gt;
Additionally it is possible to add dynamic route attributes in the web portal. These can be referenced by their name.&lt;br /&gt;
&lt;br /&gt;
== Reason values  ==&lt;br /&gt;
&lt;br /&gt;
All the CMC reason code are provide for use by the routing scripts . See the TBCMC_CALL_REASON_CODE enum in the tbcmc_call.h file.&lt;br /&gt;
&lt;br /&gt;
'''Notice:''' These values may change between major release. &lt;br /&gt;
&lt;br /&gt;
  /* isdn/ss7 reason code style */&lt;br /&gt;
  /* Toolpack engine will convert reason code from sip to isdn/ss7 or isdn/ss7 to sip according to RFC3398 */&lt;br /&gt;
  UNALLOCATED_NUMBER&lt;br /&gt;
  NO_ROUTE_TO_NETWORK&lt;br /&gt;
  NO_ROUTE_TO_DESTINATION&lt;br /&gt;
  SEND_SPECIAL_TONE&lt;br /&gt;
  MISDIALLED_TRUNK_PREFIX&lt;br /&gt;
  CHANNEL_UNACCEPTABLE&lt;br /&gt;
  CALL_AWARDED_IN_ESTABLISHED_CHANNEL&lt;br /&gt;
  PREEMPTION&lt;br /&gt;
  REATTEMPT&lt;br /&gt;
  NORMAL_CALL_CLEARING&lt;br /&gt;
  USER_BUSY&lt;br /&gt;
  NO_USER_RESPONDING&lt;br /&gt;
  NO_ANSWER_FROM_USER&lt;br /&gt;
  SUBSCRIBER_ABSENT&lt;br /&gt;
  CALL_REJECTED&lt;br /&gt;
  NUMBER_CHANGED&lt;br /&gt;
  REDIRECTION&lt;br /&gt;
  EXCHANGE_ROUTING_ERROR&lt;br /&gt;
  NON_SELECTED_USER_CLEARING&lt;br /&gt;
  DESTINATION_OUT_OF_ORDER&lt;br /&gt;
  ADDRESS_INCOMPLETE&lt;br /&gt;
  FACILITY_REJECTED&lt;br /&gt;
  RESPONSE_TO_STATUS_ENQUIRY&lt;br /&gt;
  NORMAL_UNSPECIFIED&lt;br /&gt;
  NO_CIRCUIT_AVAILABLE&lt;br /&gt;
  NETWORK_OUT_OF_ORDER&lt;br /&gt;
  FRAME_MODE_OUT_OF_SERVICE&lt;br /&gt;
  FRAME_MODE_CONN_OPERATIONAL&lt;br /&gt;
  TEMPORARY_FAILURE&lt;br /&gt;
  SWITCHING_EQUIP_CONGESTION&lt;br /&gt;
  ACCESS_INFO_DISCARDED&lt;br /&gt;
  REQUESTED_CIRCUIT_NOT_AVAILABLE&lt;br /&gt;
  PRECEDENCE_CALL_BLOCKED&lt;br /&gt;
  RESOURCE_UNAVAILABLE&lt;br /&gt;
  QOS_NOT_AVAILABLE&lt;br /&gt;
  REQUESTED_FACILITY_NOT_SUBSCRIBED&lt;br /&gt;
  OUTGOING_CALLS_BARRED&lt;br /&gt;
  OUTGOING_CALLS_BARRED_WITHIN_CUG&lt;br /&gt;
  INCOMING_CALLS_BARRED&lt;br /&gt;
  INCOMING_CALLS_BARRED_WITHIN_CUG&lt;br /&gt;
  BEARER_CAP_NOT_AUTHORIZED&lt;br /&gt;
  BEARER_CAP_NOT_AVAILABLE&lt;br /&gt;
  INCONSISTENCY_ACCESS_INFO&lt;br /&gt;
  SERVICE_NOT_AVAILABLE&lt;br /&gt;
  BEARER_CAP_NOT_IMPLEMENTED&lt;br /&gt;
  CHANNEL_TYPE_NOT_IMPLEMENTED&lt;br /&gt;
  REQUESTED_FACILITY_NOT_IMPLEMENTED&lt;br /&gt;
  ONLY_RESTRICTED_DIGITAL_INFO&lt;br /&gt;
  SERVICE_NOT_IMPLEMENTED&lt;br /&gt;
  INVALID_CALL_REFERENCE&lt;br /&gt;
  CHANNEL_DOES_NOT_EXIST&lt;br /&gt;
  CALL_IDENTITY_DOES_NOT_EXIST&lt;br /&gt;
  CALL_IDENTITY_IN_USE&lt;br /&gt;
  NO_CALL_SUSPENDED&lt;br /&gt;
  CALL_HAS_BEEN_CLEARED&lt;br /&gt;
  USER_NOT_MEMBER_OF_CUG&lt;br /&gt;
  INCOMPATIBLE_DESTINATION&lt;br /&gt;
  NON_EXISTANT_CUG&lt;br /&gt;
  INVALID_TRANSIT_NETWORK&lt;br /&gt;
  INVALID_MESSAGE_UNSPECIFIED&lt;br /&gt;
  MANDATORY_IE_MISSING&lt;br /&gt;
  MESSAGE_TYPE_NON_EXISTENT&lt;br /&gt;
  MESSAGE_NOT_COMPATIBLE_WITH_CALL_STATE&lt;br /&gt;
  IE_NON_EXISTENT&lt;br /&gt;
  INVALID_IE_CONTENT&lt;br /&gt;
  MSG_NOT_COMPATIBLE_WITH_CALL_STATE&lt;br /&gt;
  RECOVERY_ON_TIMER_EXPIRY&lt;br /&gt;
  PARAMETER_NON_EXISTENT_PASSED_ON&lt;br /&gt;
  MESSAGE_WITH_NON_RECOGNIZED_PARAMETERS_DISCARDED&lt;br /&gt;
  PROTOCOL_ERROR&lt;br /&gt;
  INTERWORKING_UNSPECIFIED&lt;br /&gt;
  &lt;br /&gt;
  /* Toolpack specific errors */&lt;br /&gt;
  NORMAL&lt;br /&gt;
  RESOURCE_ERROR&lt;br /&gt;
  TIMEOUT&lt;br /&gt;
  NO_ROUTE&lt;br /&gt;
  CALL_COLLISION&lt;br /&gt;
  SYNC_DROP&lt;br /&gt;
  SIGNALING_ERROR&lt;br /&gt;
  LOCALLY_REJECTED&lt;br /&gt;
  INTERFACE_NOT_AVAILABLE&lt;br /&gt;
  RESET_IN_PROGRESS&lt;br /&gt;
  ADAPTER_REJECT&lt;br /&gt;
  MISSING_INVALID_IE&lt;br /&gt;
  INCOMING_ONLY&lt;br /&gt;
  SYSTEM_CONFIGURATION_CHANGED&lt;br /&gt;
  RESOURCE_NO_MORE_AVAILABLE&lt;br /&gt;
  INCOMPATIBLE_MEDIA&lt;br /&gt;
  RES_ALLOC_FAILED&lt;br /&gt;
  DATA_PATH_NOT_AVAILABLE&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Nap status  ==&lt;br /&gt;
&lt;br /&gt;
All the status fields of the NAPs are provided for use by the routing scripts. See the nap status provider for more details on which fields are available in the CEngineStatTransNap.hpp file. &lt;br /&gt;
&lt;br /&gt;
'''Notice:''' These values may change between major release. &lt;br /&gt;
&lt;br /&gt;
  #define NAP_STATS_FIELDS \&lt;br /&gt;
    /* Field,                                 szName,                            szDescription,                                        szOptions */ \&lt;br /&gt;
    ( SIGNALING_TYPE,                         &amp;quot;signaling_type&amp;quot;,                  &amp;quot;Signaling type.&amp;quot;,                                    &amp;quot;&amp;quot; ) \&lt;br /&gt;
    ( INCOMING_CALL_CNT,                      &amp;quot;inst_incoming_call_cnt&amp;quot;,          &amp;quot;Instantaneous Count of incoming calls.&amp;quot;,             &amp;quot;&amp;quot; ) \&lt;br /&gt;
    ( OUTGOING_CALL_CNT,                      &amp;quot;inst_outgoing_call_cnt&amp;quot;,          &amp;quot;Instantaneous Count of outgoing calls.&amp;quot;,             &amp;quot;&amp;quot; ) \&lt;br /&gt;
    ( AVAILABLE_CNT,                          &amp;quot;available_cnt&amp;quot;,                   &amp;quot;Number of available circuits or channels.&amp;quot;,          &amp;quot;&amp;quot; ) \&lt;br /&gt;
    ( UNAVAILABLE_CNT,                        &amp;quot;unavailable_cnt&amp;quot;,                 &amp;quot;Number of unavailable circuits or channels.&amp;quot;,        &amp;quot;&amp;quot; ) \&lt;br /&gt;
    ( AVAILABILITY_PCT,                       &amp;quot;availability_percent&amp;quot;,            &amp;quot;Percentage of available circuits or channels.&amp;quot;,      &amp;quot;&amp;quot; ) \&lt;br /&gt;
    ( USAGE_PCT,                              &amp;quot;usage_percent&amp;quot;,                   &amp;quot;Percentage of used circuits or channels.&amp;quot;,           &amp;quot;&amp;quot; ) \&lt;br /&gt;
    ( TOTAL_INCOMING_CALL_CNT,                &amp;quot;total_incoming_call_cnt&amp;quot;,         &amp;quot;Total Count of incoming calls.&amp;quot;,                     &amp;quot;&amp;quot; ) \&lt;br /&gt;
    ( ASR_STRUCT,                             &amp;quot;asr_statistics_struct&amp;quot;,           &amp;quot;Detailed Answer-Seizure Rate Statistics.&amp;quot;,           &amp;quot;&amp;quot; ) \&lt;br /&gt;
      ( GLOBAL_ASR_PCT,                       &amp;quot;global_asr_percent&amp;quot;,              &amp;quot;Global calculated ASR percentage.&amp;quot;,                  &amp;quot;&amp;quot; ) \&lt;br /&gt;
      ( TOTAL_OUTGOING_CALL_CNT,              &amp;quot;total_outgoing_call_cnt&amp;quot;,         &amp;quot;Total Count of outgoing calls.&amp;quot;,                     &amp;quot;&amp;quot; ) \&lt;br /&gt;
      ( LAST_24H_ASR_PCT,                     &amp;quot;last_24h_asr_percent&amp;quot;,            &amp;quot;Last 24 hours calculated ASR percentage.&amp;quot;,           &amp;quot;&amp;quot; ) \&lt;br /&gt;
      ( LAST_24H_OUTGOING_CALL_CNT,           &amp;quot;last_24h_outgoing_call_cnt&amp;quot;,      &amp;quot;Last 24 hours outgoing calls.&amp;quot;,                      &amp;quot;&amp;quot; ) \&lt;br /&gt;
      ( HOUR_ASR_PCT,                         &amp;quot;current_hour_asr_percent&amp;quot;,        &amp;quot;Current hour calculated ASR percentage.&amp;quot;,            &amp;quot;&amp;quot; ) \&lt;br /&gt;
      ( HOUR_OUTGOING_CALL_CNT,               &amp;quot;current_hour_outgoing_call_cnt&amp;quot;,  &amp;quot;Current hour outgoing calls.&amp;quot;,                       &amp;quot;&amp;quot; ) \&lt;br /&gt;
      ( LAST_HOUR_ASR_PCT,                    &amp;quot;last_hour_asr_percent&amp;quot;,           &amp;quot;Last hour calculated ASR percentage.&amp;quot;,               &amp;quot;&amp;quot; ) \&lt;br /&gt;
       ( LAST_HOUR_OUTGOING_CALL_CNT,         &amp;quot;last_hour_outgoing_call_cnt&amp;quot;,     &amp;quot;Last hour outgoing calls.&amp;quot;,                          &amp;quot;&amp;quot; ) \&lt;br /&gt;
    ( AVAILABILITY_DETECTION_STRUCT,          &amp;quot;availability_detection_struct&amp;quot;,   &amp;quot;Detailed availibility detection Statistics&amp;quot;,         &amp;quot;&amp;quot; ) \&lt;br /&gt;
      ( POLL_REMOTE_PROXY,                    &amp;quot;poll_remote_proxy&amp;quot;,               &amp;quot;Remote proxy polling enabled&amp;quot;,                       &amp;quot;&amp;quot; ) \&lt;br /&gt;
      ( IS_AVAILABLE,                         &amp;quot;is_available&amp;quot;,                    &amp;quot;Remote proxy actually available or not&amp;quot;,             &amp;quot;&amp;quot; ) \&lt;br /&gt;
      ( TIME_SINCE_POLLING,                   &amp;quot;time_since_polling&amp;quot;,              &amp;quot;Time since the last availibility polling&amp;quot;,           &amp;quot;&amp;quot; ) \&lt;br /&gt;
      ( TIME_AVAILABLE_SECONDS,               &amp;quot;time_available_seconds&amp;quot;,          &amp;quot;Number of seconds since the NAP is available&amp;quot;,       &amp;quot;x&amp;quot; ) \&lt;br /&gt;
      ( TIME_UNAVAILABLE_SECONDS,             &amp;quot;time_unavailable_seconds&amp;quot;,        &amp;quot;Number of seconds since the NAP is unavailable&amp;quot;,     &amp;quot;x&amp;quot; ) \&lt;br /&gt;
    ( REGISTRATION_STRUCT,                    &amp;quot;registration_struct&amp;quot;,             &amp;quot;Detailed registration Statistics&amp;quot;,                   &amp;quot;&amp;quot; ) \&lt;br /&gt;
      ( REGISTER_TO_PROXY,                    &amp;quot;register_to_proxy&amp;quot;,               &amp;quot;Register to proxy enabled&amp;quot;,                          &amp;quot;&amp;quot; ) \&lt;br /&gt;
      ( IS_REGISTERED,                        &amp;quot;registered&amp;quot;,                      &amp;quot;Actually registered or not&amp;quot;,                         &amp;quot;&amp;quot; ) \&lt;br /&gt;
      ( TIME_SINCE_REFRESH,                   &amp;quot;time_since_refresh&amp;quot;,              &amp;quot;Time since the last refresh&amp;quot;,                        &amp;quot;&amp;quot; ) \&lt;br /&gt;
      ( TIME_REGISTERED_SECONDS,              &amp;quot;time_registered_seconds&amp;quot;,         &amp;quot;Number of seconds since the NAP is registered&amp;quot;,      &amp;quot;x&amp;quot; ) \&lt;br /&gt;
      ( TIME_NOT_REGISTERED_SECONDS,          &amp;quot;time_not_registered_seconds&amp;quot;,     &amp;quot;Number of seconds since the NAP is not registered&amp;quot;,  &amp;quot;x&amp;quot; ) \&lt;br /&gt;
    /*!&amp;amp;lt; Nap Status Fields */&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; If the nap status is part of a substructure, it's name in the routing scripts must be composed of the structure name appended by an underscore and the field name. &lt;br /&gt;
&lt;br /&gt;
For example the name to use for the global [[ASR]] percentage is: &lt;br /&gt;
&lt;br /&gt;
  asr_statistics_struct_global_asr_percent&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; It is also possible to add dynamic nap attributes in the web portal. These can be referenced by their name.&lt;br /&gt;
&lt;br /&gt;
== Test parameters  ==&lt;br /&gt;
&lt;br /&gt;
=== @call_params  ===&lt;br /&gt;
&lt;br /&gt;
That variable should contain a hash of call parameters that will passed to the routing script. This is equivalent to the incoming call parameters. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== @nap_list  ===&lt;br /&gt;
&lt;br /&gt;
A list of hash containing the nap statuses. This is equivalent to the nap statuses at the time the call is to be routed. &lt;br /&gt;
&lt;br /&gt;
'''The nap list is hashed by the nap names in UPPERCASE.''' It is important to consider this when creating new dynamic route or nap attributes that may nap names that will be used to fetch a status. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Back to [[Routing script tutorial|Routing Script Tutorial]].&lt;/div&gt;</summary>
		<author><name>Ktrueman</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/Talk:Call_routing</id>
		<title>Talk:Call routing</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/Talk:Call_routing"/>
				<updated>2010-08-24T20:13:59Z</updated>
		
		<summary type="html">&lt;p&gt;Ktrueman: mentioned product brief&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Not sure what to do with the following items:&lt;br /&gt;
*Route selection&lt;br /&gt;
*Using Network Access Point (NAP)&lt;br /&gt;
*Using ANI with regular expressions (libpcre)&lt;br /&gt;
*Using DNIS with regular expressions&lt;br /&gt;
*Post-routing modification to ANI and DNIS with regular expressions&lt;br /&gt;
*Enhance routing using scripts&lt;br /&gt;
*Programmable&lt;br /&gt;
*Pre-design script for %, sequential and ASR&lt;br /&gt;
[[User:Ktrueman|Kenneth Trueman]] 14:40, 17 July 2009 (EDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We should look at combining these two pages together&lt;br /&gt;
http://docs.telcobridges.com/mediawiki/index.php/CallRouting&lt;br /&gt;
[[User:Ktrueman|Kenneth Trueman]] 20:10, 24 August 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We also need to update to take into account new routing functionality introduced with v2.5 of Toolpack. I will provide some content from my upcoming product brief... [[User:Ktrueman|Kenneth Trueman]] 20:13, 24 August 2010 (UTC)&lt;/div&gt;</summary>
		<author><name>Ktrueman</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/Talk:Call_routing</id>
		<title>Talk:Call routing</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/Talk:Call_routing"/>
				<updated>2010-08-24T20:10:12Z</updated>
		
		<summary type="html">&lt;p&gt;Ktrueman: combining call routing content&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Not sure what to do with the following items:&lt;br /&gt;
*Route selection&lt;br /&gt;
*Using Network Access Point (NAP)&lt;br /&gt;
*Using ANI with regular expressions (libpcre)&lt;br /&gt;
*Using DNIS with regular expressions&lt;br /&gt;
*Post-routing modification to ANI and DNIS with regular expressions&lt;br /&gt;
*Enhance routing using scripts&lt;br /&gt;
*Programmable&lt;br /&gt;
*Pre-design script for %, sequential and ASR&lt;br /&gt;
[[User:Ktrueman|Kenneth Trueman]] 14:40, 17 July 2009 (EDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We should look at combining these two pages together&lt;br /&gt;
http://docs.telcobridges.com/mediawiki/index.php/CallRouting&lt;br /&gt;
[[User:Ktrueman|Kenneth Trueman]] 20:10, 24 August 2010 (UTC)&lt;/div&gt;</summary>
		<author><name>Ktrueman</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/CallRouting</id>
		<title>CallRouting</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/CallRouting"/>
				<updated>2010-08-24T20:07:34Z</updated>
		
		<summary type="html">&lt;p&gt;Ktrueman: added category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Routing is important for gateway applications in general. The routing block is in charge of giving routes for incoming&lt;br /&gt;
call attributes and/or depending on external factors like the time of the day or congestion. The routes are responsible&lt;br /&gt;
of providing call attributes for incoming and outgoing legs; they contain common routing information like the called&lt;br /&gt;
number, the calling number and the network access point.&lt;br /&gt;
&lt;br /&gt;
The media profile may be changed by a route so that a route can also change the media of a leg. This can be used&lt;br /&gt;
to force specific codecs to be used for certain routes or to specify the transcoding type. The transcoding type is only&lt;br /&gt;
important for VOIP calls since it indicates when the adapter should include itself in the media path. Transcoding is&lt;br /&gt;
limited limited to the following type:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Forced: always transcode.&lt;br /&gt;
&amp;lt;li&amp;gt;Only as a fallback: to try to save hardware resources.&lt;br /&gt;
&amp;lt;li&amp;gt;Disabled: if the the hardware resources are not available.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
The default routing implementation routes on only three optional criteria (there must be at least one per rule):&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Called number.&lt;br /&gt;
&amp;lt;li&amp;gt;Calling number.&lt;br /&gt;
&amp;lt;li&amp;gt;Incoming network access point.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When it finds a route matching the call attribute’s criteria, it applies remapping on the desired fields and creates a&lt;br /&gt;
route that is returned to the application. Remapping can be done on:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Called number&lt;br /&gt;
&amp;lt;li&amp;gt;Calling number&lt;br /&gt;
&amp;lt;li&amp;gt;Destination network access point&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the default route implementation, the media profile is also changed depending on the transcoding type. This is done&lt;br /&gt;
by the route in GetIncomingAttributes and GetOutgoingAttributes which will instantiate the attribute based on the&lt;br /&gt;
transcoding type. This works fine for this initial profile but the leg’s profile may be changed during the call’s life and&lt;br /&gt;
that change must be handled depending on the transcoding type. The attribute class is the one that is aware of the&lt;br /&gt;
transcoding type because it is stored in the leg, and will be queried (through SetMediaProfile) when a profile change&lt;br /&gt;
occurs.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
     {&lt;br /&gt;
        switch( mRoutingEntry.TranscodingType )&lt;br /&gt;
        {&lt;br /&gt;
            case TBCAF_ROUTING_TRANSCODING_TYPE_NORMAL:&lt;br /&gt;
            {&lt;br /&gt;
              pAttributes = tbnew CTBCMC_CALL_LEG_ATTRIBUTE;&lt;br /&gt;
            }break;&lt;br /&gt;
            case TBCAF_ROUTING_TRANSCODING_TYPE_FORCED:&lt;br /&gt;
            {&lt;br /&gt;
              pAttributes = tbnew CTBCMC_CALL_LEG_FT_ATTRIBUTE;&lt;br /&gt;
            }break;&lt;br /&gt;
            case TBCAF_ROUTING_TRANSCODING_TYPE_NEVER:&lt;br /&gt;
            {&lt;br /&gt;
              pAttributes = tbnew CTBCMC_CALL_LEG_NT_ATTRIBUTE;&lt;br /&gt;
            }break;&lt;br /&gt;
            &lt;br /&gt;
            default:&lt;br /&gt;
            {&lt;br /&gt;
              TBX_EXIT_ERROR( TBX_RESULT_INVALID_STATE, 0, &amp;quot;Invalid transcoding type.&amp;quot; );&lt;br /&gt;
            }&lt;br /&gt;
         }&lt;br /&gt;
      }&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Caveats ==&lt;br /&gt;
For now only forced transcoding is supported by the CMC server but this might change in the future. Video support in CMC might force the issue because video transcoding is not cheap.&lt;br /&gt;
&lt;br /&gt;
[[category: Needs revising]]&lt;/div&gt;</summary>
		<author><name>Ktrueman</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/Main_Page</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/Main_Page"/>
				<updated>2010-08-20T14:37:36Z</updated>
		
		<summary type="html">&lt;p&gt;Ktrueman: /* Using TBwiki */ fixed spelling&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NoToC__'''Welcome to TBwiki, the [http://www.telcobridges.com TelcoBridges] wiki.'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
&lt;br /&gt;
!width=&amp;quot;210&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; |SOFTWARE&lt;br /&gt;
!width=&amp;quot;210&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; |HARDWARE&lt;br /&gt;
!width=&amp;quot;210&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; |USE CASES&lt;br /&gt;
!width=&amp;quot;210&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; |OTHER&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | '''[[Toolpack]]'''&lt;br /&gt;
&lt;br /&gt;
*[[Web Portal]]&lt;br /&gt;
*[[Toolpack API]]&lt;br /&gt;
*[[Application components]]&lt;br /&gt;
*[[Supported operating systems]]&lt;br /&gt;
*[[Toolpack version history|Version history]]&lt;br /&gt;
*[[Toolpack: Architecture, philosophy and evolution|Architecture, philosophy and evolution]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Using Toolpack'''&lt;br /&gt;
*[[Installing Toolpack]]&lt;br /&gt;
*[[Upgrading Toolpack]]&lt;br /&gt;
*[[Troubleshooting Toolpack]]&lt;br /&gt;
*[[Develop Using Toolpack]]&lt;br /&gt;
*[[Best practices]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Other'''&lt;br /&gt;
*TB Media Gateway&lt;br /&gt;
*[[TB StreamServer]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | '''[[Tmedia]] VOIP gateways'''&lt;br /&gt;
*[[TMG800]] series&lt;br /&gt;
*[[TMG3200]] series&lt;br /&gt;
*[[TMG5800]] series&lt;br /&gt;
*[[TMG7800]] series&lt;br /&gt;
*[[TMG8300|TMG8300: H.323 Signaling Converter]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''[[Tdev]] development platforms'''&lt;br /&gt;
*[[TMP800]] series&lt;br /&gt;
*[[TMP5900]] series&lt;br /&gt;
*[[TMP6400]] series&lt;br /&gt;
*[[TMP7900]] series&lt;br /&gt;
*[[TMP7950]]&lt;br /&gt;
*[[TMS1600]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''[[Tmonitor]] network monitoring'''&lt;br /&gt;
*[[TM1000]] series&lt;br /&gt;
*[[TM2000]] series&lt;br /&gt;
*[[TM3000]] series&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''[http://docs.telcobridges.com/mediawiki/index.php/Category:Hardware All hardware]'''&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | '''Tmedia and Tdev'''&lt;br /&gt;
*Background music injection&lt;br /&gt;
*[[Call routing]]&lt;br /&gt;
*[[Conferencing]]&lt;br /&gt;
*[[Fax over IP]]&lt;br /&gt;
*[[Prepaid &amp;amp; postpaid calling]]&lt;br /&gt;
*[[Ringback tones]]&lt;br /&gt;
*Signaling gateway&lt;br /&gt;
*[[Tandem switching]]&lt;br /&gt;
*[[Transcoding]]&lt;br /&gt;
*[[Trunking]]&lt;br /&gt;
*[[Unified communications]]&lt;br /&gt;
*[[Video]]&lt;br /&gt;
*Voicemail&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Tmonitor'''&lt;br /&gt;
*[[Network monitoring]]&lt;br /&gt;
*[[Lawful intercept]]&lt;br /&gt;
*[[Location-based services|Location-based services (LBS)]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | '''Technical support'''&lt;br /&gt;
*[[Support:Contacting TelcoBridges technical support|Contacting support]]&lt;br /&gt;
*[http://docs.telcobridges.com/mediawiki/index.php/Category:FAQ Frequently Asked Questions]&lt;br /&gt;
*[[Troubleshooting]]&lt;br /&gt;
*[http://forums.telcobridges.com Support forums]&lt;br /&gt;
*[[Support:How To Submit A Problem|Submitting a problem]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Repairs and replacements'''&lt;br /&gt;
*[[RMA process]]&lt;br /&gt;
*[[Warranty]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Interoperability'''&lt;br /&gt;
*[[Interoperability:Deployments|Deployments]]&lt;br /&gt;
*[[Interoperability:Certifications|Certifications]]&lt;br /&gt;
*[[Partners]]&lt;br /&gt;
*Best interoperability practices&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Other'''&lt;br /&gt;
*[[End-of-Life (EOL)  policy]]&lt;br /&gt;
*[[Regulatory compliance]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Using TBwiki ==&lt;br /&gt;
*Please note that TBwiki is, by its nature, a 'living document' thus navigation and naming conventions are apt to evolve over time&lt;br /&gt;
*While we have provided a table above that categorizes content, you may want to consult the [http://docs.telcobridges.com/mediawiki/index.php/Category:Glossary glossary] which is where to find information on specific industry standards supported (or not) by TelcoBridges. A link to the glossary is available on all pages in the navigation bar on the left-hand side of the page&lt;br /&gt;
*The 'Search' box on the left hand-side of this page should enable you to efficiently locate content at all times. Clicking 'Go' will attempt to locate an article of the same name as your search term or one containing that term in the article name; clicking 'Search' will take a broader approach, looking for the presence of your term in all article contents&lt;br /&gt;
&lt;br /&gt;
== Contributing to TBwiki ==&lt;br /&gt;
*TelcoBridges employees, partners, and customers, are invited to '''[[TBwiki:Getting started|contribute]]''' so as to expand and improve the content of TBwiki. There is a list of [http://docs.telcobridges.com/mediawiki/index.php/Special:Wantedpages wanted pages], which refers to empty pages requiring content, as well as a page for [[Suggested articles|suggesting new articles]]. Finally, there is a list of [http://docs.telcobridges.com/mediawiki/index.php/Category:Needs_revising articles requiring revision].&lt;br /&gt;
*Please note that anonymous editing has been disabled on this site. You must therefore [http://docs.telcobridges.com/mediawiki/index.php/Special:RequestAccount register] before you can edit any content. A 'log in / register' link can be found at the top of each page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Disclaimer ==&lt;br /&gt;
*The information on the TBwiki web site is subject to change without notice. No part of this web site may be reproduced or transmitted in any form or by any means, electronic or mechanical, for any purpose, without the express written permission of TelcoBridges Inc. TelcoBridges may have patents or pending patent applications, trademarks, copyrights, or other intellectual property rights covering subject matter in this web site or associated documents. The furnishing of access to this web site does not give you license to these patents, trademarks, copyrights, or other intellectual property except as expressly provided in any written license agreement from TelcoBridges.&lt;br /&gt;
*The information provided in this web site is intended as a guide only. No responsibility is implied and the terms of your license agreement with TelcoBridges will continue to claim precedence. For the latest detailed engineering specifications, please contact your TelcoBridges Application Engineer. TelcoBridges is committed to continually improving product designs, as a result, product specifications may be subject to change without notification.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
*This web site and its content, as well as any external links to content on TelcoBridges servers, is ©2003-2010 TelcoBridges Inc. All rights reserved.&lt;/div&gt;</summary>
		<author><name>Ktrueman</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/Routing_script_tutorial:Mini_Development_Guide</id>
		<title>Routing script tutorial:Mini Development Guide</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/Routing_script_tutorial:Mini_Development_Guide"/>
				<updated>2010-08-20T14:23:22Z</updated>
		
		<summary type="html">&lt;p&gt;Ktrueman: /* @nap_list */ clean up&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Call object  ==&lt;br /&gt;
&lt;br /&gt;
=== Get ===&lt;br /&gt;
 &lt;br /&gt;
Those function are used to get the call parameters. The possible parameters are described in the section &amp;quot;Call parameters&amp;quot;&lt;br /&gt;
  called_number = caf_call.get :called&lt;br /&gt;
&lt;br /&gt;
=== List_params  ===&lt;br /&gt;
&lt;br /&gt;
This function is used to retrieve the list of supported call parameters. For example to extract all the possible call params from the the call object and put it in hash.&lt;br /&gt;
  caf_call.list_params.each {|param| call[param] = caf_call.get param }&lt;br /&gt;
&lt;br /&gt;
=== Accept  ===&lt;br /&gt;
&lt;br /&gt;
This function is used to accept a call. It takes 2 arguments, the call parameters (hash) and the route parameters (hash).&lt;br /&gt;
&lt;br /&gt;
Apply route remapping rules&lt;br /&gt;
  caf_call.accept out_call, route&lt;br /&gt;
&lt;br /&gt;
=== Refuse  ===&lt;br /&gt;
&lt;br /&gt;
This function is used to refuse a call with a reason code argument parameters : &lt;br /&gt;
  caf_call.refuse :reason =&amp;gt; :temporary_failure&lt;br /&gt;
&lt;br /&gt;
The supported values are described in the section &amp;quot;Reason values&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
== Call parameters ==&lt;br /&gt;
&lt;br /&gt;
The following call parameters are available in the call object:&lt;br /&gt;
&lt;br /&gt;
* calling&lt;br /&gt;
* calling_noa&lt;br /&gt;
* calling_npi&lt;br /&gt;
* calling_display_type&lt;br /&gt;
* calling_display&lt;br /&gt;
* calling_presentation&lt;br /&gt;
* calling_screening&lt;br /&gt;
* called&lt;br /&gt;
* called_noa&lt;br /&gt;
* called_npi&lt;br /&gt;
* nap&lt;br /&gt;
&lt;br /&gt;
'''Notice:''' All values are documented in the '''noa_npi_remap.rb''' script and may change between major release.&lt;br /&gt;
&lt;br /&gt;
=== Noa values ===&lt;br /&gt;
* &amp;lt;tt&amp;gt;unknown_number&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;international_number&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;national_number&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;subscriber_number&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;network_specific&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;network_routing_national_format&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;network_routing_international_format&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;abbreviated_number&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;subscriber_number_operator_requested&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;national_number_operator_requested&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;international_number_operator_requested&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;no_number_present_operator_requested&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;no_number_present_cut_through_call_to_carrier&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;test_line_test_code&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;non_unique_subscriber_number&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;non_unique_national_number&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;non_unique_international_number&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;call_950_number&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Those values will be remapped to the protocol specific NOA value. To provide protocol specific value:&lt;br /&gt;
* &amp;lt;tt&amp;gt;call_params[:called_noa] = 0x70&amp;lt;/tt&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
* &amp;lt;tt&amp;gt;call_params[:called_noa] = 112&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Npi values ===&lt;br /&gt;
* &amp;lt;tt&amp;gt;unknown_number&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;isdn&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;telephony&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;private&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;data&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;telex&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;national&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Calling Display Type values ===&lt;br /&gt;
* &amp;lt;tt&amp;gt;unspecified&amp;lt;/tt&amp;gt; =&amp;gt; Type is unspecified.&lt;br /&gt;
* &amp;lt;tt&amp;gt;calling_party_name&amp;lt;/tt&amp;gt; =&amp;gt; Type is 0xB1.&lt;br /&gt;
&lt;br /&gt;
Those values will be remapped to the protocol specific  Display Information Type value. To provide protocol specific value:&lt;br /&gt;
* &amp;lt;tt&amp;gt;call_params[:calling_display_type] = 0xB1&amp;lt;/tt&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
* &amp;lt;tt&amp;gt;call_params[:calling_display_type] = 177&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Calling Display value ===&lt;br /&gt;
* &amp;lt;tt&amp;gt;call_params[:calling_display] = &amp;quot;Roger Fluffy&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Calling Presentation values ===&lt;br /&gt;
* &amp;lt;tt&amp;gt;unspecified&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;not_available&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;allowed&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;restricted&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;addr_restricted&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;name_restricted&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Calling Screening values ===&lt;br /&gt;
* &amp;lt;tt&amp;gt;unspecified&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;no&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;pass&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;fail&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;network_provided&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Route parameters  ==&lt;br /&gt;
&lt;br /&gt;
All route may have these parameters: &lt;br /&gt;
&lt;br /&gt;
*calling &lt;br /&gt;
*called &lt;br /&gt;
*nap &lt;br /&gt;
*remapped_calling &lt;br /&gt;
*remapped_called &lt;br /&gt;
*remapped_nap &lt;br /&gt;
*remapped_profile&lt;br /&gt;
&lt;br /&gt;
Additionnaly it is possible to add dynamic route attributes in the web portal. These can be referenced by their name. &lt;br /&gt;
&lt;br /&gt;
== Reason values  ==&lt;br /&gt;
&lt;br /&gt;
All the CMC reason code are provide for use by the routing scripts . See the TBCMC_CALL_REASON_CODE enum in the tbcmc_call.h file.&lt;br /&gt;
&lt;br /&gt;
'''Notice:''' These values may change between major release. &lt;br /&gt;
&lt;br /&gt;
  /* isdn/ss7 reason code style */&lt;br /&gt;
  /* Toolpack engine will convert reason code from sip to isdn/ss7 or isdn/ss7 to sip according to RFC3398 */&lt;br /&gt;
  UNALLOCATED_NUMBER&lt;br /&gt;
  NO_ROUTE_TO_NETWORK&lt;br /&gt;
  NO_ROUTE_TO_DESTINATION&lt;br /&gt;
  SEND_SPECIAL_TONE&lt;br /&gt;
  MISDIALLED_TRUNK_PREFIX&lt;br /&gt;
  CHANNEL_UNACCEPTABLE&lt;br /&gt;
  CALL_AWARDED_IN_ESTABLISHED_CHANNEL&lt;br /&gt;
  PREEMPTION&lt;br /&gt;
  REATTEMPT&lt;br /&gt;
  NORMAL_CALL_CLEARING&lt;br /&gt;
  USER_BUSY&lt;br /&gt;
  NO_USER_RESPONDING&lt;br /&gt;
  NO_ANSWER_FROM_USER&lt;br /&gt;
  SUBSCRIBER_ABSENT&lt;br /&gt;
  CALL_REJECTED&lt;br /&gt;
  NUMBER_CHANGED&lt;br /&gt;
  REDIRECTION&lt;br /&gt;
  EXCHANGE_ROUTING_ERROR&lt;br /&gt;
  NON_SELECTED_USER_CLEARING&lt;br /&gt;
  DESTINATION_OUT_OF_ORDER&lt;br /&gt;
  ADDRESS_INCOMPLETE&lt;br /&gt;
  FACILITY_REJECTED&lt;br /&gt;
  RESPONSE_TO_STATUS_ENQUIRY&lt;br /&gt;
  NORMAL_UNSPECIFIED&lt;br /&gt;
  NO_CIRCUIT_AVAILABLE&lt;br /&gt;
  NETWORK_OUT_OF_ORDER&lt;br /&gt;
  FRAME_MODE_OUT_OF_SERVICE&lt;br /&gt;
  FRAME_MODE_CONN_OPERATIONAL&lt;br /&gt;
  TEMPORARY_FAILURE&lt;br /&gt;
  SWITCHING_EQUIP_CONGESTION&lt;br /&gt;
  ACCESS_INFO_DISCARDED&lt;br /&gt;
  REQUESTED_CIRCUIT_NOT_AVAILABLE&lt;br /&gt;
  PRECEDENCE_CALL_BLOCKED&lt;br /&gt;
  RESOURCE_UNAVAILABLE&lt;br /&gt;
  QOS_NOT_AVAILABLE&lt;br /&gt;
  REQUESTED_FACILITY_NOT_SUBSCRIBED&lt;br /&gt;
  OUTGOING_CALLS_BARRED&lt;br /&gt;
  OUTGOING_CALLS_BARRED_WITHIN_CUG&lt;br /&gt;
  INCOMING_CALLS_BARRED&lt;br /&gt;
  INCOMING_CALLS_BARRED_WITHIN_CUG&lt;br /&gt;
  BEARER_CAP_NOT_AUTHORIZED&lt;br /&gt;
  BEARER_CAP_NOT_AVAILABLE&lt;br /&gt;
  INCONSISTENCY_ACCESS_INFO&lt;br /&gt;
  SERVICE_NOT_AVAILABLE&lt;br /&gt;
  BEARER_CAP_NOT_IMPLEMENTED&lt;br /&gt;
  CHANNEL_TYPE_NOT_IMPLEMENTED&lt;br /&gt;
  REQUESTED_FACILITY_NOT_IMPLEMENTED&lt;br /&gt;
  ONLY_RESTRICTED_DIGITAL_INFO&lt;br /&gt;
  SERVICE_NOT_IMPLEMENTED&lt;br /&gt;
  INVALID_CALL_REFERENCE&lt;br /&gt;
  CHANNEL_DOES_NOT_EXIST&lt;br /&gt;
  CALL_IDENTITY_DOES_NOT_EXIST&lt;br /&gt;
  CALL_IDENTITY_IN_USE&lt;br /&gt;
  NO_CALL_SUSPENDED&lt;br /&gt;
  CALL_HAS_BEEN_CLEARED&lt;br /&gt;
  USER_NOT_MEMBER_OF_CUG&lt;br /&gt;
  INCOMPATIBLE_DESTINATION&lt;br /&gt;
  NON_EXISTANT_CUG&lt;br /&gt;
  INVALID_TRANSIT_NETWORK&lt;br /&gt;
  INVALID_MESSAGE_UNSPECIFIED&lt;br /&gt;
  MANDATORY_IE_MISSING&lt;br /&gt;
  MESSAGE_TYPE_NON_EXISTENT&lt;br /&gt;
  MESSAGE_NOT_COMPATIBLE_WITH_CALL_STATE&lt;br /&gt;
  IE_NON_EXISTENT&lt;br /&gt;
  INVALID_IE_CONTENT&lt;br /&gt;
  MSG_NOT_COMPATIBLE_WITH_CALL_STATE&lt;br /&gt;
  RECOVERY_ON_TIMER_EXPIRY&lt;br /&gt;
  PARAMETER_NON_EXISTENT_PASSED_ON&lt;br /&gt;
  MESSAGE_WITH_NON_RECOGNIZED_PARAMETERS_DISCARDED&lt;br /&gt;
  PROTOCOL_ERROR&lt;br /&gt;
  INTERWORKING_UNSPECIFIED&lt;br /&gt;
  &lt;br /&gt;
  /* Toolpack specific errors */&lt;br /&gt;
  NORMAL&lt;br /&gt;
  RESOURCE_ERROR&lt;br /&gt;
  TIMEOUT&lt;br /&gt;
  NO_ROUTE&lt;br /&gt;
  CALL_COLLISION&lt;br /&gt;
  SYNC_DROP&lt;br /&gt;
  SIGNALING_ERROR&lt;br /&gt;
  LOCALLY_REJECTED&lt;br /&gt;
  INTERFACE_NOT_AVAILABLE&lt;br /&gt;
  RESET_IN_PROGRESS&lt;br /&gt;
  ADAPTER_REJECT&lt;br /&gt;
  MISSING_INVALID_IE&lt;br /&gt;
  INCOMING_ONLY&lt;br /&gt;
  SYSTEM_CONFIGURATION_CHANGED&lt;br /&gt;
  RESOURCE_NO_MORE_AVAILABLE&lt;br /&gt;
  INCOMPATIBLE_MEDIA&lt;br /&gt;
  RES_ALLOC_FAILED&lt;br /&gt;
  DATA_PATH_NOT_AVAILABLE&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Nap status  ==&lt;br /&gt;
&lt;br /&gt;
All the status fields of the NAPs are provided for use by the routing scripts. See the nap status provider for more details on which fields are available in the CEngineStatTransNap.hpp file. &lt;br /&gt;
&lt;br /&gt;
'''Notice:''' These values may change between major release. &lt;br /&gt;
&lt;br /&gt;
  #define NAP_STATS_FIELDS \&lt;br /&gt;
    /* Field,                                 szName,                            szDescription,                                        szOptions */ \&lt;br /&gt;
    ( SIGNALING_TYPE,                         &amp;quot;signaling_type&amp;quot;,                  &amp;quot;Signaling type.&amp;quot;,                                    &amp;quot;&amp;quot; ) \&lt;br /&gt;
    ( INCOMING_CALL_CNT,                      &amp;quot;inst_incoming_call_cnt&amp;quot;,          &amp;quot;Instantaneous Count of incoming calls.&amp;quot;,             &amp;quot;&amp;quot; ) \&lt;br /&gt;
    ( OUTGOING_CALL_CNT,                      &amp;quot;inst_outgoing_call_cnt&amp;quot;,          &amp;quot;Instantaneous Count of outgoing calls.&amp;quot;,             &amp;quot;&amp;quot; ) \&lt;br /&gt;
    ( AVAILABLE_CNT,                          &amp;quot;available_cnt&amp;quot;,                   &amp;quot;Number of available circuits or channels.&amp;quot;,          &amp;quot;&amp;quot; ) \&lt;br /&gt;
    ( UNAVAILABLE_CNT,                        &amp;quot;unavailable_cnt&amp;quot;,                 &amp;quot;Number of unavailable circuits or channels.&amp;quot;,        &amp;quot;&amp;quot; ) \&lt;br /&gt;
    ( AVAILABILITY_PCT,                       &amp;quot;availability_percent&amp;quot;,            &amp;quot;Percentage of available circuits or channels.&amp;quot;,      &amp;quot;&amp;quot; ) \&lt;br /&gt;
    ( USAGE_PCT,                              &amp;quot;usage_percent&amp;quot;,                   &amp;quot;Percentage of used circuits or channels.&amp;quot;,           &amp;quot;&amp;quot; ) \&lt;br /&gt;
    ( TOTAL_INCOMING_CALL_CNT,                &amp;quot;total_incoming_call_cnt&amp;quot;,         &amp;quot;Total Count of incoming calls.&amp;quot;,                     &amp;quot;&amp;quot; ) \&lt;br /&gt;
    ( ASR_STRUCT,                             &amp;quot;asr_statistics_struct&amp;quot;,           &amp;quot;Detailed Answer-Seizure Rate Statistics.&amp;quot;,           &amp;quot;&amp;quot; ) \&lt;br /&gt;
      ( GLOBAL_ASR_PCT,                       &amp;quot;global_asr_percent&amp;quot;,              &amp;quot;Global calculated ASR percentage.&amp;quot;,                  &amp;quot;&amp;quot; ) \&lt;br /&gt;
      ( TOTAL_OUTGOING_CALL_CNT,              &amp;quot;total_outgoing_call_cnt&amp;quot;,         &amp;quot;Total Count of outgoing calls.&amp;quot;,                     &amp;quot;&amp;quot; ) \&lt;br /&gt;
      ( LAST_24H_ASR_PCT,                     &amp;quot;last_24h_asr_percent&amp;quot;,            &amp;quot;Last 24 hours calculated ASR percentage.&amp;quot;,           &amp;quot;&amp;quot; ) \&lt;br /&gt;
      ( LAST_24H_OUTGOING_CALL_CNT,           &amp;quot;last_24h_outgoing_call_cnt&amp;quot;,      &amp;quot;Last 24 hours outgoing calls.&amp;quot;,                      &amp;quot;&amp;quot; ) \&lt;br /&gt;
      ( HOUR_ASR_PCT,                         &amp;quot;current_hour_asr_percent&amp;quot;,        &amp;quot;Current hour calculated ASR percentage.&amp;quot;,            &amp;quot;&amp;quot; ) \&lt;br /&gt;
      ( HOUR_OUTGOING_CALL_CNT,               &amp;quot;current_hour_outgoing_call_cnt&amp;quot;,  &amp;quot;Current hour outgoing calls.&amp;quot;,                       &amp;quot;&amp;quot; ) \&lt;br /&gt;
      ( LAST_HOUR_ASR_PCT,                    &amp;quot;last_hour_asr_percent&amp;quot;,           &amp;quot;Last hour calculated ASR percentage.&amp;quot;,               &amp;quot;&amp;quot; ) \&lt;br /&gt;
       ( LAST_HOUR_OUTGOING_CALL_CNT,         &amp;quot;last_hour_outgoing_call_cnt&amp;quot;,     &amp;quot;Last hour outgoing calls.&amp;quot;,                          &amp;quot;&amp;quot; ) \&lt;br /&gt;
    ( AVAILABILITY_DETECTION_STRUCT,          &amp;quot;availability_detection_struct&amp;quot;,   &amp;quot;Detailed availibility detection Statistics&amp;quot;,         &amp;quot;&amp;quot; ) \&lt;br /&gt;
      ( POLL_REMOTE_PROXY,                    &amp;quot;poll_remote_proxy&amp;quot;,               &amp;quot;Remote proxy polling enabled&amp;quot;,                       &amp;quot;&amp;quot; ) \&lt;br /&gt;
      ( IS_AVAILABLE,                         &amp;quot;is_available&amp;quot;,                    &amp;quot;Remote proxy actually available or not&amp;quot;,             &amp;quot;&amp;quot; ) \&lt;br /&gt;
      ( TIME_SINCE_POLLING,                   &amp;quot;time_since_polling&amp;quot;,              &amp;quot;Time since the last availibility polling&amp;quot;,           &amp;quot;&amp;quot; ) \&lt;br /&gt;
      ( TIME_AVAILABLE_SECONDS,               &amp;quot;time_available_seconds&amp;quot;,          &amp;quot;Number of seconds since the NAP is available&amp;quot;,       &amp;quot;x&amp;quot; ) \&lt;br /&gt;
      ( TIME_UNAVAILABLE_SECONDS,             &amp;quot;time_unavailable_seconds&amp;quot;,        &amp;quot;Number of seconds since the NAP is unavailable&amp;quot;,     &amp;quot;x&amp;quot; ) \&lt;br /&gt;
    ( REGISTRATION_STRUCT,                    &amp;quot;registration_struct&amp;quot;,             &amp;quot;Detailed registration Statistics&amp;quot;,                   &amp;quot;&amp;quot; ) \&lt;br /&gt;
      ( REGISTER_TO_PROXY,                    &amp;quot;register_to_proxy&amp;quot;,               &amp;quot;Register to proxy enabled&amp;quot;,                          &amp;quot;&amp;quot; ) \&lt;br /&gt;
      ( IS_REGISTERED,                        &amp;quot;registered&amp;quot;,                      &amp;quot;Actually registered or not&amp;quot;,                         &amp;quot;&amp;quot; ) \&lt;br /&gt;
      ( TIME_SINCE_REFRESH,                   &amp;quot;time_since_refresh&amp;quot;,              &amp;quot;Time since the last refresh&amp;quot;,                        &amp;quot;&amp;quot; ) \&lt;br /&gt;
      ( TIME_REGISTERED_SECONDS,              &amp;quot;time_registered_seconds&amp;quot;,         &amp;quot;Number of seconds since the NAP is registered&amp;quot;,      &amp;quot;x&amp;quot; ) \&lt;br /&gt;
      ( TIME_NOT_REGISTERED_SECONDS,          &amp;quot;time_not_registered_seconds&amp;quot;,     &amp;quot;Number of seconds since the NAP is not registered&amp;quot;,  &amp;quot;x&amp;quot; ) \&lt;br /&gt;
    /*!&amp;amp;lt; Nap Status Fields */&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; If the nap status is part of a substructure, it's name in the routing scripts must be composed of the structure name appended by an underscore and the field name. &lt;br /&gt;
&lt;br /&gt;
For example the name to use for the global [[ASR]] percentage is: &lt;br /&gt;
&lt;br /&gt;
  asr_statistics_struct_global_asr_percent&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; It is also possible to add dynamic nap attributes in the web portal. These can be referenced by their name.&lt;br /&gt;
&lt;br /&gt;
== Test parameters  ==&lt;br /&gt;
&lt;br /&gt;
=== @call_params  ===&lt;br /&gt;
&lt;br /&gt;
That variable should contain a hash of call parameters that will passed to the routing script. This is equivalent to the incoming call parameters. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== @nap_list  ===&lt;br /&gt;
&lt;br /&gt;
A list of hash containing the nap statuses. This is equivalent to the nap statuses at the time the call is to be routed. &lt;br /&gt;
&lt;br /&gt;
'''The nap list is hashed by the nap names in UPPERCASE.''' It is important to consider this when creating new dynamic route or nap attributes that may nap names that will be used to fetch a status. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Back to [[Routing script tutorial|Routing Script Tutorial]].&lt;/div&gt;</summary>
		<author><name>Ktrueman</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/Routing_script_tutorial:Mini_Development_Guide</id>
		<title>Routing script tutorial:Mini Development Guide</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/Routing_script_tutorial:Mini_Development_Guide"/>
				<updated>2010-08-20T14:22:57Z</updated>
		
		<summary type="html">&lt;p&gt;Ktrueman: link to ASR&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Call object  ==&lt;br /&gt;
&lt;br /&gt;
=== Get ===&lt;br /&gt;
 &lt;br /&gt;
Those function are used to get the call parameters. The possible parameters are described in the section &amp;quot;Call parameters&amp;quot;&lt;br /&gt;
  called_number = caf_call.get :called&lt;br /&gt;
&lt;br /&gt;
=== List_params  ===&lt;br /&gt;
&lt;br /&gt;
This function is used to retrieve the list of supported call parameters. For example to extract all the possible call params from the the call object and put it in hash.&lt;br /&gt;
  caf_call.list_params.each {|param| call[param] = caf_call.get param }&lt;br /&gt;
&lt;br /&gt;
=== Accept  ===&lt;br /&gt;
&lt;br /&gt;
This function is used to accept a call. It takes 2 arguments, the call parameters (hash) and the route parameters (hash).&lt;br /&gt;
&lt;br /&gt;
Apply route remapping rules&lt;br /&gt;
  caf_call.accept out_call, route&lt;br /&gt;
&lt;br /&gt;
=== Refuse  ===&lt;br /&gt;
&lt;br /&gt;
This function is used to refuse a call with a reason code argument parameters : &lt;br /&gt;
  caf_call.refuse :reason =&amp;gt; :temporary_failure&lt;br /&gt;
&lt;br /&gt;
The supported values are described in the section &amp;quot;Reason values&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
== Call parameters ==&lt;br /&gt;
&lt;br /&gt;
The following call parameters are available in the call object:&lt;br /&gt;
&lt;br /&gt;
* calling&lt;br /&gt;
* calling_noa&lt;br /&gt;
* calling_npi&lt;br /&gt;
* calling_display_type&lt;br /&gt;
* calling_display&lt;br /&gt;
* calling_presentation&lt;br /&gt;
* calling_screening&lt;br /&gt;
* called&lt;br /&gt;
* called_noa&lt;br /&gt;
* called_npi&lt;br /&gt;
* nap&lt;br /&gt;
&lt;br /&gt;
'''Notice:''' All values are documented in the '''noa_npi_remap.rb''' script and may change between major release.&lt;br /&gt;
&lt;br /&gt;
=== Noa values ===&lt;br /&gt;
* &amp;lt;tt&amp;gt;unknown_number&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;international_number&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;national_number&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;subscriber_number&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;network_specific&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;network_routing_national_format&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;network_routing_international_format&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;abbreviated_number&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;subscriber_number_operator_requested&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;national_number_operator_requested&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;international_number_operator_requested&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;no_number_present_operator_requested&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;no_number_present_cut_through_call_to_carrier&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;test_line_test_code&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;non_unique_subscriber_number&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;non_unique_national_number&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;non_unique_international_number&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;call_950_number&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Those values will be remapped to the protocol specific NOA value. To provide protocol specific value:&lt;br /&gt;
* &amp;lt;tt&amp;gt;call_params[:called_noa] = 0x70&amp;lt;/tt&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
* &amp;lt;tt&amp;gt;call_params[:called_noa] = 112&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Npi values ===&lt;br /&gt;
* &amp;lt;tt&amp;gt;unknown_number&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;isdn&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;telephony&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;private&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;data&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;telex&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;national&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Calling Display Type values ===&lt;br /&gt;
* &amp;lt;tt&amp;gt;unspecified&amp;lt;/tt&amp;gt; =&amp;gt; Type is unspecified.&lt;br /&gt;
* &amp;lt;tt&amp;gt;calling_party_name&amp;lt;/tt&amp;gt; =&amp;gt; Type is 0xB1.&lt;br /&gt;
&lt;br /&gt;
Those values will be remapped to the protocol specific  Display Information Type value. To provide protocol specific value:&lt;br /&gt;
* &amp;lt;tt&amp;gt;call_params[:calling_display_type] = 0xB1&amp;lt;/tt&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
* &amp;lt;tt&amp;gt;call_params[:calling_display_type] = 177&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Calling Display value ===&lt;br /&gt;
* &amp;lt;tt&amp;gt;call_params[:calling_display] = &amp;quot;Roger Fluffy&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Calling Presentation values ===&lt;br /&gt;
* &amp;lt;tt&amp;gt;unspecified&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;not_available&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;allowed&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;restricted&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;addr_restricted&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;name_restricted&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Calling Screening values ===&lt;br /&gt;
* &amp;lt;tt&amp;gt;unspecified&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;no&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;pass&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;fail&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;network_provided&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Route parameters  ==&lt;br /&gt;
&lt;br /&gt;
All route may have these parameters: &lt;br /&gt;
&lt;br /&gt;
*calling &lt;br /&gt;
*called &lt;br /&gt;
*nap &lt;br /&gt;
*remapped_calling &lt;br /&gt;
*remapped_called &lt;br /&gt;
*remapped_nap &lt;br /&gt;
*remapped_profile&lt;br /&gt;
&lt;br /&gt;
Additionnaly it is possible to add dynamic route attributes in the web portal. These can be referenced by their name. &lt;br /&gt;
&lt;br /&gt;
== Reason values  ==&lt;br /&gt;
&lt;br /&gt;
All the CMC reason code are provide for use by the routing scripts . See the TBCMC_CALL_REASON_CODE enum in the tbcmc_call.h file.&lt;br /&gt;
&lt;br /&gt;
'''Notice:''' These values may change between major release. &lt;br /&gt;
&lt;br /&gt;
  /* isdn/ss7 reason code style */&lt;br /&gt;
  /* Toolpack engine will convert reason code from sip to isdn/ss7 or isdn/ss7 to sip according to RFC3398 */&lt;br /&gt;
  UNALLOCATED_NUMBER&lt;br /&gt;
  NO_ROUTE_TO_NETWORK&lt;br /&gt;
  NO_ROUTE_TO_DESTINATION&lt;br /&gt;
  SEND_SPECIAL_TONE&lt;br /&gt;
  MISDIALLED_TRUNK_PREFIX&lt;br /&gt;
  CHANNEL_UNACCEPTABLE&lt;br /&gt;
  CALL_AWARDED_IN_ESTABLISHED_CHANNEL&lt;br /&gt;
  PREEMPTION&lt;br /&gt;
  REATTEMPT&lt;br /&gt;
  NORMAL_CALL_CLEARING&lt;br /&gt;
  USER_BUSY&lt;br /&gt;
  NO_USER_RESPONDING&lt;br /&gt;
  NO_ANSWER_FROM_USER&lt;br /&gt;
  SUBSCRIBER_ABSENT&lt;br /&gt;
  CALL_REJECTED&lt;br /&gt;
  NUMBER_CHANGED&lt;br /&gt;
  REDIRECTION&lt;br /&gt;
  EXCHANGE_ROUTING_ERROR&lt;br /&gt;
  NON_SELECTED_USER_CLEARING&lt;br /&gt;
  DESTINATION_OUT_OF_ORDER&lt;br /&gt;
  ADDRESS_INCOMPLETE&lt;br /&gt;
  FACILITY_REJECTED&lt;br /&gt;
  RESPONSE_TO_STATUS_ENQUIRY&lt;br /&gt;
  NORMAL_UNSPECIFIED&lt;br /&gt;
  NO_CIRCUIT_AVAILABLE&lt;br /&gt;
  NETWORK_OUT_OF_ORDER&lt;br /&gt;
  FRAME_MODE_OUT_OF_SERVICE&lt;br /&gt;
  FRAME_MODE_CONN_OPERATIONAL&lt;br /&gt;
  TEMPORARY_FAILURE&lt;br /&gt;
  SWITCHING_EQUIP_CONGESTION&lt;br /&gt;
  ACCESS_INFO_DISCARDED&lt;br /&gt;
  REQUESTED_CIRCUIT_NOT_AVAILABLE&lt;br /&gt;
  PRECEDENCE_CALL_BLOCKED&lt;br /&gt;
  RESOURCE_UNAVAILABLE&lt;br /&gt;
  QOS_NOT_AVAILABLE&lt;br /&gt;
  REQUESTED_FACILITY_NOT_SUBSCRIBED&lt;br /&gt;
  OUTGOING_CALLS_BARRED&lt;br /&gt;
  OUTGOING_CALLS_BARRED_WITHIN_CUG&lt;br /&gt;
  INCOMING_CALLS_BARRED&lt;br /&gt;
  INCOMING_CALLS_BARRED_WITHIN_CUG&lt;br /&gt;
  BEARER_CAP_NOT_AUTHORIZED&lt;br /&gt;
  BEARER_CAP_NOT_AVAILABLE&lt;br /&gt;
  INCONSISTENCY_ACCESS_INFO&lt;br /&gt;
  SERVICE_NOT_AVAILABLE&lt;br /&gt;
  BEARER_CAP_NOT_IMPLEMENTED&lt;br /&gt;
  CHANNEL_TYPE_NOT_IMPLEMENTED&lt;br /&gt;
  REQUESTED_FACILITY_NOT_IMPLEMENTED&lt;br /&gt;
  ONLY_RESTRICTED_DIGITAL_INFO&lt;br /&gt;
  SERVICE_NOT_IMPLEMENTED&lt;br /&gt;
  INVALID_CALL_REFERENCE&lt;br /&gt;
  CHANNEL_DOES_NOT_EXIST&lt;br /&gt;
  CALL_IDENTITY_DOES_NOT_EXIST&lt;br /&gt;
  CALL_IDENTITY_IN_USE&lt;br /&gt;
  NO_CALL_SUSPENDED&lt;br /&gt;
  CALL_HAS_BEEN_CLEARED&lt;br /&gt;
  USER_NOT_MEMBER_OF_CUG&lt;br /&gt;
  INCOMPATIBLE_DESTINATION&lt;br /&gt;
  NON_EXISTANT_CUG&lt;br /&gt;
  INVALID_TRANSIT_NETWORK&lt;br /&gt;
  INVALID_MESSAGE_UNSPECIFIED&lt;br /&gt;
  MANDATORY_IE_MISSING&lt;br /&gt;
  MESSAGE_TYPE_NON_EXISTENT&lt;br /&gt;
  MESSAGE_NOT_COMPATIBLE_WITH_CALL_STATE&lt;br /&gt;
  IE_NON_EXISTENT&lt;br /&gt;
  INVALID_IE_CONTENT&lt;br /&gt;
  MSG_NOT_COMPATIBLE_WITH_CALL_STATE&lt;br /&gt;
  RECOVERY_ON_TIMER_EXPIRY&lt;br /&gt;
  PARAMETER_NON_EXISTENT_PASSED_ON&lt;br /&gt;
  MESSAGE_WITH_NON_RECOGNIZED_PARAMETERS_DISCARDED&lt;br /&gt;
  PROTOCOL_ERROR&lt;br /&gt;
  INTERWORKING_UNSPECIFIED&lt;br /&gt;
  &lt;br /&gt;
  /* Toolpack specific errors */&lt;br /&gt;
  NORMAL&lt;br /&gt;
  RESOURCE_ERROR&lt;br /&gt;
  TIMEOUT&lt;br /&gt;
  NO_ROUTE&lt;br /&gt;
  CALL_COLLISION&lt;br /&gt;
  SYNC_DROP&lt;br /&gt;
  SIGNALING_ERROR&lt;br /&gt;
  LOCALLY_REJECTED&lt;br /&gt;
  INTERFACE_NOT_AVAILABLE&lt;br /&gt;
  RESET_IN_PROGRESS&lt;br /&gt;
  ADAPTER_REJECT&lt;br /&gt;
  MISSING_INVALID_IE&lt;br /&gt;
  INCOMING_ONLY&lt;br /&gt;
  SYSTEM_CONFIGURATION_CHANGED&lt;br /&gt;
  RESOURCE_NO_MORE_AVAILABLE&lt;br /&gt;
  INCOMPATIBLE_MEDIA&lt;br /&gt;
  RES_ALLOC_FAILED&lt;br /&gt;
  DATA_PATH_NOT_AVAILABLE&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Nap status  ==&lt;br /&gt;
&lt;br /&gt;
All the status fields of the NAPs are provided for use by the routing scripts. See the nap status provider for more details on which fields are available in the CEngineStatTransNap.hpp file. &lt;br /&gt;
&lt;br /&gt;
'''Notice:''' These values may change between major release. &lt;br /&gt;
&lt;br /&gt;
  #define NAP_STATS_FIELDS \&lt;br /&gt;
    /* Field,                                 szName,                            szDescription,                                        szOptions */ \&lt;br /&gt;
    ( SIGNALING_TYPE,                         &amp;quot;signaling_type&amp;quot;,                  &amp;quot;Signaling type.&amp;quot;,                                    &amp;quot;&amp;quot; ) \&lt;br /&gt;
    ( INCOMING_CALL_CNT,                      &amp;quot;inst_incoming_call_cnt&amp;quot;,          &amp;quot;Instantaneous Count of incoming calls.&amp;quot;,             &amp;quot;&amp;quot; ) \&lt;br /&gt;
    ( OUTGOING_CALL_CNT,                      &amp;quot;inst_outgoing_call_cnt&amp;quot;,          &amp;quot;Instantaneous Count of outgoing calls.&amp;quot;,             &amp;quot;&amp;quot; ) \&lt;br /&gt;
    ( AVAILABLE_CNT,                          &amp;quot;available_cnt&amp;quot;,                   &amp;quot;Number of available circuits or channels.&amp;quot;,          &amp;quot;&amp;quot; ) \&lt;br /&gt;
    ( UNAVAILABLE_CNT,                        &amp;quot;unavailable_cnt&amp;quot;,                 &amp;quot;Number of unavailable circuits or channels.&amp;quot;,        &amp;quot;&amp;quot; ) \&lt;br /&gt;
    ( AVAILABILITY_PCT,                       &amp;quot;availability_percent&amp;quot;,            &amp;quot;Percentage of available circuits or channels.&amp;quot;,      &amp;quot;&amp;quot; ) \&lt;br /&gt;
    ( USAGE_PCT,                              &amp;quot;usage_percent&amp;quot;,                   &amp;quot;Percentage of used circuits or channels.&amp;quot;,           &amp;quot;&amp;quot; ) \&lt;br /&gt;
    ( TOTAL_INCOMING_CALL_CNT,                &amp;quot;total_incoming_call_cnt&amp;quot;,         &amp;quot;Total Count of incoming calls.&amp;quot;,                     &amp;quot;&amp;quot; ) \&lt;br /&gt;
    ( ASR_STRUCT,                             &amp;quot;asr_statistics_struct&amp;quot;,           &amp;quot;Detailed Answer-Seizure Rate Statistics.&amp;quot;,           &amp;quot;&amp;quot; ) \&lt;br /&gt;
      ( GLOBAL_ASR_PCT,                       &amp;quot;global_asr_percent&amp;quot;,              &amp;quot;Global calculated ASR percentage.&amp;quot;,                  &amp;quot;&amp;quot; ) \&lt;br /&gt;
      ( TOTAL_OUTGOING_CALL_CNT,              &amp;quot;total_outgoing_call_cnt&amp;quot;,         &amp;quot;Total Count of outgoing calls.&amp;quot;,                     &amp;quot;&amp;quot; ) \&lt;br /&gt;
      ( LAST_24H_ASR_PCT,                     &amp;quot;last_24h_asr_percent&amp;quot;,            &amp;quot;Last 24 hours calculated ASR percentage.&amp;quot;,           &amp;quot;&amp;quot; ) \&lt;br /&gt;
      ( LAST_24H_OUTGOING_CALL_CNT,           &amp;quot;last_24h_outgoing_call_cnt&amp;quot;,      &amp;quot;Last 24 hours outgoing calls.&amp;quot;,                      &amp;quot;&amp;quot; ) \&lt;br /&gt;
      ( HOUR_ASR_PCT,                         &amp;quot;current_hour_asr_percent&amp;quot;,        &amp;quot;Current hour calculated ASR percentage.&amp;quot;,            &amp;quot;&amp;quot; ) \&lt;br /&gt;
      ( HOUR_OUTGOING_CALL_CNT,               &amp;quot;current_hour_outgoing_call_cnt&amp;quot;,  &amp;quot;Current hour outgoing calls.&amp;quot;,                       &amp;quot;&amp;quot; ) \&lt;br /&gt;
      ( LAST_HOUR_ASR_PCT,                    &amp;quot;last_hour_asr_percent&amp;quot;,           &amp;quot;Last hour calculated ASR percentage.&amp;quot;,               &amp;quot;&amp;quot; ) \&lt;br /&gt;
       ( LAST_HOUR_OUTGOING_CALL_CNT,         &amp;quot;last_hour_outgoing_call_cnt&amp;quot;,     &amp;quot;Last hour outgoing calls.&amp;quot;,                          &amp;quot;&amp;quot; ) \&lt;br /&gt;
    ( AVAILABILITY_DETECTION_STRUCT,          &amp;quot;availability_detection_struct&amp;quot;,   &amp;quot;Detailed availibility detection Statistics&amp;quot;,         &amp;quot;&amp;quot; ) \&lt;br /&gt;
      ( POLL_REMOTE_PROXY,                    &amp;quot;poll_remote_proxy&amp;quot;,               &amp;quot;Remote proxy polling enabled&amp;quot;,                       &amp;quot;&amp;quot; ) \&lt;br /&gt;
      ( IS_AVAILABLE,                         &amp;quot;is_available&amp;quot;,                    &amp;quot;Remote proxy actually available or not&amp;quot;,             &amp;quot;&amp;quot; ) \&lt;br /&gt;
      ( TIME_SINCE_POLLING,                   &amp;quot;time_since_polling&amp;quot;,              &amp;quot;Time since the last availibility polling&amp;quot;,           &amp;quot;&amp;quot; ) \&lt;br /&gt;
      ( TIME_AVAILABLE_SECONDS,               &amp;quot;time_available_seconds&amp;quot;,          &amp;quot;Number of seconds since the NAP is available&amp;quot;,       &amp;quot;x&amp;quot; ) \&lt;br /&gt;
      ( TIME_UNAVAILABLE_SECONDS,             &amp;quot;time_unavailable_seconds&amp;quot;,        &amp;quot;Number of seconds since the NAP is unavailable&amp;quot;,     &amp;quot;x&amp;quot; ) \&lt;br /&gt;
    ( REGISTRATION_STRUCT,                    &amp;quot;registration_struct&amp;quot;,             &amp;quot;Detailed registration Statistics&amp;quot;,                   &amp;quot;&amp;quot; ) \&lt;br /&gt;
      ( REGISTER_TO_PROXY,                    &amp;quot;register_to_proxy&amp;quot;,               &amp;quot;Register to proxy enabled&amp;quot;,                          &amp;quot;&amp;quot; ) \&lt;br /&gt;
      ( IS_REGISTERED,                        &amp;quot;registered&amp;quot;,                      &amp;quot;Actually registered or not&amp;quot;,                         &amp;quot;&amp;quot; ) \&lt;br /&gt;
      ( TIME_SINCE_REFRESH,                   &amp;quot;time_since_refresh&amp;quot;,              &amp;quot;Time since the last refresh&amp;quot;,                        &amp;quot;&amp;quot; ) \&lt;br /&gt;
      ( TIME_REGISTERED_SECONDS,              &amp;quot;time_registered_seconds&amp;quot;,         &amp;quot;Number of seconds since the NAP is registered&amp;quot;,      &amp;quot;x&amp;quot; ) \&lt;br /&gt;
      ( TIME_NOT_REGISTERED_SECONDS,          &amp;quot;time_not_registered_seconds&amp;quot;,     &amp;quot;Number of seconds since the NAP is not registered&amp;quot;,  &amp;quot;x&amp;quot; ) \&lt;br /&gt;
    /*!&amp;amp;lt; Nap Status Fields */&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; If the nap status is part of a substructure, it's name in the routing scripts must be composed of the structure name appended by an underscore and the field name. &lt;br /&gt;
&lt;br /&gt;
For example the name to use for the global [[ASR]] percentage is: &lt;br /&gt;
&lt;br /&gt;
  asr_statistics_struct_global_asr_percent&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; It is also possible to add dynamic nap attributes in the web portal. These can be referenced by their name.&lt;br /&gt;
&lt;br /&gt;
== Test parameters  ==&lt;br /&gt;
&lt;br /&gt;
=== @call_params  ===&lt;br /&gt;
&lt;br /&gt;
That variable should contain a hash of call parameters that will passed to the routing script. This is equivalent to the incoming call parameters. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== @nap_list  ===&lt;br /&gt;
&lt;br /&gt;
A list of hash containing the nap statuses. This is equivalent to the nap statuses at the time the call is to be routed. &lt;br /&gt;
&lt;br /&gt;
'''The nap list is hashed by the nap names in UPPERCASE.''' It is important to consider this when creating new dynamic route or nap attributes that may nap names that will be used to fetch a status. &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Back to [[Routing script tutorial|Routing Script Tutorial]].&lt;/div&gt;</summary>
		<author><name>Ktrueman</name></author>	</entry>

	</feed>