<?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=Luc+Morissette</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=Luc+Morissette"/>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/Special:Contributions/Luc_Morissette"/>
		<updated>2026-05-15T14:40:49Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.18.1</generator>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/FreeSBC:Baremetal:Installation_A</id>
		<title>FreeSBC:Baremetal:Installation A</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/FreeSBC:Baremetal:Installation_A"/>
				<updated>2021-04-26T17:53:39Z</updated>
		
		<summary type="html">&lt;p&gt;Luc Morissette: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:SBC:Baremetal:Installation}}&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
Minimal server requirements:&lt;br /&gt;
* 64-bit server&lt;br /&gt;
* Optical disk drive (or USB key)&lt;br /&gt;
* One or more SBC (LAN/WAN) ethernet interfaces. Must be in the [[Supported_NICs|List of supported NICs]]&lt;br /&gt;
* One management Ethernet&lt;br /&gt;
* Two ethernet interfaces, if a 1+1 configuration is required&lt;br /&gt;
* Console access through serial port or keyboard/monitor ports&lt;br /&gt;
* Must support BIOS (and not UEFI)&lt;br /&gt;
* BIOS setup for maximum performance (no dynamic CPU throttling)&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;5&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! width=&amp;quot;150&amp;quot; style=&amp;quot;background: none repeat scroll 0% 0% rgb(239, 239, 239); -moz-background-inline-policy: continuous;&amp;quot; | Sessions&lt;br /&gt;
! width=&amp;quot;100&amp;quot; style=&amp;quot;background: none repeat scroll 0% 0% rgb(239, 239, 239); -moz-background-inline-policy: continuous;&amp;quot; | CPU cores&lt;br /&gt;
! width=&amp;quot;100&amp;quot; style=&amp;quot;background: none repeat scroll 0% 0% rgb(239, 239, 239); -moz-background-inline-policy: continuous;&amp;quot; | RAM&lt;br /&gt;
! width=&amp;quot;100&amp;quot; style=&amp;quot;background: none repeat scroll 0% 0% rgb(239, 239, 239); -moz-background-inline-policy: continuous;&amp;quot; | Disk Space (SSD)&lt;br /&gt;
! width=&amp;quot;200&amp;quot; style=&amp;quot;background: none repeat scroll 0% 0% rgb(239, 239, 239); -moz-background-inline-policy: continuous;&amp;quot; | LAN/WAN SBC Ethernet ports***&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
Up to 5,000&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
2&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
4 Gb&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
40 Gb&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
1 Gbps&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
5,000-20,000&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
4&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
8 Gb&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
60 Gb&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
4 X 1 Gbps or&lt;br /&gt;
1 X 10 Gbps&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
20,000-50,000&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
4**&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
16 Gb&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
80 Gb&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
1 X 10 Gbps&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
Above 50,000&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
6**&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
24+ Gb&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
100 Gb&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
Multiple 10 Gbps&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;nowiki&amp;gt;**&amp;lt;/nowiki&amp;gt; The CPU number is based on Dell R630 with Intel Xeon E5-2643. Double the CPUs number if your server is from an earlier generation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;***&amp;lt;/nowiki&amp;gt; See list of supported Network Interface Cards (NICs) here: [[Supported_NICs|List of supported NICs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
More details on HW/CPU/NIC requirements can be found here: [[FreeSBC:RequirementsMatrix|Requirements Matrix]] &amp;lt;br&amp;gt;&lt;br /&gt;
Check here for a list of certified hardware platforms: [[SBC:CertifiedHardware|SBC Certified Hardware]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In most cases, a standard configuration will provide sufficient performance. To get maximum performance from a system, please contact [mailto:support@telcobridges.com support@telcobridges.com] .&lt;br /&gt;
&lt;br /&gt;
== Getting the ISO ==&lt;br /&gt;
Please go to our [http://www2.telcobridges.com/ProSBCDownload ProSBC Download site]  to get a copy of the latest SBC ISO.&lt;br /&gt;
&lt;br /&gt;
== Installing the ISO ==&lt;br /&gt;
The installation process will &amp;lt;u&amp;gt;reformat&amp;lt;/u&amp;gt; the server's disks and install all the necessary software.&lt;br /&gt;
&lt;br /&gt;
=== Installing using the ISO burned onto a bootable USB flash drive ===&lt;br /&gt;
Use a software application to burn the ISO onto a USB flash drive. On Windows, [https://rufus.akeo.ie/ Rufus] is known to work with the SBC ISO.&lt;br /&gt;
But generally any similar application should work. Make sure to set the volume label to &amp;quot;'''CENTOS 7 X8'''&amp;quot; and to format the drive in the FAT32 file system format.&lt;br /&gt;
&lt;br /&gt;
=== Physical installation steps ===&lt;br /&gt;
# Identify which Ethernet networks you need and connect them to your server.  Refer to [[TSBC-SW:Networking|Networking]] for more information. For ProSBC Transcoding and associated network setup, please also refer to [[FreeSBC:Transcoding and Network Setup|ProSBC:Transcoding and Network Setup]].&lt;br /&gt;
# Burn the ISO onto a DVD or a USB flash drive&lt;br /&gt;
# Get access to the console of the server.  Usually, this is achieved by connecting a keyboard and screen to the server.&lt;br /&gt;
# Insert the DVD in the optical drive of your server and boot from the DVD drive.&lt;br /&gt;
#* Alternatively, plug in your USB flash drive and boot from that drive.&lt;br /&gt;
# The &amp;quot;Virtual Appliance Installer&amp;quot; menu should be displayed: &amp;lt;br /&amp;gt; [[File:ISO_install_prompt.jpg|600px]]&lt;br /&gt;
# Press the 'R' key followed by the 'ENTER' key to start the installation&amp;lt;br /&amp;gt; [[File:ISO_installing.jpg|600px]]&lt;br /&gt;
# Wait for the installation process to complete.  When the installation is complete, the server will automatically reboot.&lt;br /&gt;
#*  Important: Make sure to remove the DVD from the drive while the server is rebooting.  If you get back to &amp;quot;Virtual Appliance Installer&amp;quot;, just eject the CD or remove the USB flash drive and reboot again.&lt;br /&gt;
#  It may take a couple of minutes for the system to be brought up after the first reboot.  Until the Web Portal is accessible, you must '''not''' reboot the newly created machine to allow the installation to complete properly.&lt;br /&gt;
&lt;br /&gt;
=== Assigning IP address ===&lt;br /&gt;
By default, all detected network interfaces will have DHCP enabled.  This means, the server might already have an IP address assigned, if the network has a DHCP server running.  In this case, you can display and use it to access the web portal configuration panel.&lt;br /&gt;
&lt;br /&gt;
# Retrieve an IP address assigned by DHCP&lt;br /&gt;
  # ifconfig&lt;br /&gt;
&lt;br /&gt;
If you want to assign a static IP address, or there is no DHCP on your network, you will need to configure it manually.&lt;br /&gt;
&lt;br /&gt;
# Use the '''tbchangeip''' shell command and answer the questions to change your Ethernet interface address:&lt;br /&gt;
  # tbchangeip&lt;br /&gt;
&lt;br /&gt;
=== Accessing the SBC web portal ===&lt;br /&gt;
# Open a web browser to the IP of your server, on port 12358.  Example if your server address is 192.168.178.30, the URL would be: &amp;lt;br/&amp;gt; http://192.168.178.30:12358&lt;br /&gt;
# The SBC Configuration Wizard is displayed&amp;lt;br/&amp;gt; [[File:TSBC_WebPortal_Configuration_wizard.jpg|350px]]&lt;br /&gt;
&lt;br /&gt;
From here, you can go to [[TSBC-SW:WebPortal:Initial Configuration|Web Portal Initial Configuration Guide]] to continue the installation, and/or [[TSBC-SW:Baremetal:Optimizations|optimize ]] your server to get the maximum out of your server.&lt;br /&gt;
&lt;br /&gt;
== Web Portal Initial Configuration ==&lt;br /&gt;
Click on the following link to pursue installation from the web portal:&lt;br /&gt;
[[TSBC-SW:WebPortal:Initial Configuration|Web Portal Initial Configuration]]&lt;/div&gt;</summary>
		<author><name>Luc Morissette</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/SBC:CertifiedHardware</id>
		<title>SBC:CertifiedHardware</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/SBC:CertifiedHardware"/>
				<updated>2021-04-26T14:47:05Z</updated>
		
		<summary type="html">&lt;p&gt;Luc Morissette: Added support for BIOS&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:SBC Certified Hardware}}&lt;br /&gt;
&lt;br /&gt;
== List of certified baremetal servers ==&lt;br /&gt;
'''Note:''' Baremetal servers must support BIOS (and not UEFI)&lt;br /&gt;
*[[SBC:TSBC-HW-SRV-HIGH|Dell high performance server for 60,000 sessions]]&lt;br /&gt;
*[[SBC:TSBC-HW-SRV-MID|Dell medium performance server for 30,000 sessions]]&lt;br /&gt;
*[[SBC:Ciena|Ciena Virtual Network Function (VNF) Customer Premises Equipment (CPE) for less than 10,000 sessions]]&lt;br /&gt;
*[[SBC:Qotom|Qotom Barebone server Customer Premises Equipment (CPE) for less than 5,000 sessions]]&lt;br /&gt;
*[[SBC:Lanner|Lanner Barebone server Customer Premises Equipment (CPE) for less than 5,000 sessions]]&lt;br /&gt;
*[[SBC:TelcoSystems|TelcoSystems Virtual Network Function (VNF) Universal Customer Premises Equipment (uCPE) for less than 4,000 sessions]]&lt;/div&gt;</summary>
		<author><name>Luc Morissette</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/Support:License_server</id>
		<title>Support:License server</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/Support:License_server"/>
				<updated>2021-04-20T14:31:05Z</updated>
		
		<summary type="html">&lt;p&gt;Luc Morissette: Changes license link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:TelcoBridges License Server}}&lt;br /&gt;
&lt;br /&gt;
Our partners can view the list of units they have from TelcoBridges on the license server. For each unit it shows the '''license expiration''' date (if it is a temporary license), and the '''warranty expiration''' date for this unit.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Our partners can generate licenses from the license server at this URL: &lt;br /&gt;
&lt;br /&gt;
https://licenses.telcobridges.com &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For partners who do not have a login for the above site, please contact [mailto:support@telcobridges.com TelcoBridges TB Support].&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Retrieve a license  ==&lt;br /&gt;
&lt;br /&gt;
For more details use one of these links: &lt;br /&gt;
*[[Toolpack:Retreiving_a_License_A|Retrieving a license for TMG units]]&lt;br /&gt;
&amp;lt;section begin=TSBC-SW-RETREIVE-A-LICENSE/&amp;gt;&lt;br /&gt;
*[[Toolpack:Retreiving_a_License_SBC_A|Retrieving a license for FreeSBC and ProSBC units]]&lt;br /&gt;
&amp;lt;section end=TSBC-SW-RETREIVE-A-LICENSE/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Upload a license on the system  ==&lt;br /&gt;
&lt;br /&gt;
2.8 and onward: [[Toolpack:Uploading_a_License_B|Upload a license]]&amp;lt;br&amp;gt;&lt;br /&gt;
2.7 and previous release: [[Toolpack:Uploading_a_License_A|Upload a license 2.7]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Revise on Major]]&lt;/div&gt;</summary>
		<author><name>Luc Morissette</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/ProSBC:Youmail</id>
		<title>ProSBC:Youmail</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/ProSBC:Youmail"/>
				<updated>2021-04-09T20:18:06Z</updated>
		
		<summary type="html">&lt;p&gt;Luc Morissette: Added link to Youmail video&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:ProSBC:Integration with YouMail Fraud detection service}}&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
This configuration note describes how to set up Telcobridges ProSBC for adding YouMail fraud protection service to any system.&lt;br /&gt;
&lt;br /&gt;
==Prerequisites==&lt;br /&gt;
*[[ProSBC]] devices must be installed with release 3.1.113 or later. Here is a link to the [[Product_Installation_SBC|installation guides]].&lt;br /&gt;
*Need to have an account at [https://www.youmail.com/ YouMail] to get a Security ID (SID) and an API key. Trial accounts are available. &lt;br /&gt;
*[[ProSBC]] must be configured in one of the [[FreeSBC_Use_Cases|ProSBC use cases]]. This script will be an addon to the rest of the configuration.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Example Environment for Fraud Protection with YouMail==&lt;br /&gt;
Calls received on [[ProSBC]] will systematically send a HTTPS request to the YouMail service running on the cloud.&amp;lt;br&amp;gt;&lt;br /&gt;
The calling number (ANI) will be verified by the YouMail service and will return a response to the [[ProSBC]] with a level.&amp;lt;br&amp;gt;&lt;br /&gt;
Call Routes can be configured to pass valid numbers (level 0), pass or block potential spam numbers (level 1), and block fraudulous calls (level 2)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:Fraud call with youmail overview.png|800px]]&lt;br /&gt;
&lt;br /&gt;
==Example Configuration==&lt;br /&gt;
The configuration is mainly adding a script to the [[ProSBC]]. &lt;br /&gt;
See [[Adding_YouMail_script_to_Routing_scripts|Adding the YouMail Script]]&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;5&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! width=&amp;quot;200&amp;quot; style=&amp;quot;background: rgb(239, 239, 239) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;&amp;quot; | Call Trace&lt;br /&gt;
! width=&amp;quot;200&amp;quot; style=&amp;quot;background: rgb(239, 239, 239) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;&amp;quot; | Test Call&lt;br /&gt;
! width=&amp;quot;200&amp;quot; style=&amp;quot;background: rgb(239, 239, 239) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;&amp;quot; | TBReport&lt;br /&gt;
! width=&amp;quot;200&amp;quot; style=&amp;quot;background: rgb(239, 239, 239) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;&amp;quot; | Advanced Troubleshooting of FreeSBC&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
*[[Toolpack:Configuring_Call_Trace_D|Configure call trace]]&lt;br /&gt;
*[[Toolpack:Retrieving_Call_Trace_C|Retrieve call trace]]&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
*[[Creating_A_Test_Call_B|Creating a Test Call]]&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
*[[TBReport|Capture a report of the system]]&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
*[[FreeSBC_Troubleshooting|Advanced Troubleshooting of ProSBC]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Video guide==&lt;br /&gt;
We also have a video guide if you prefer: [https://youtu.be/_7Egw3nd6nwtraining Youmail configuration video]&lt;/div&gt;</summary>
		<author><name>Luc Morissette</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/ProSBC:Cisco_UCM</id>
		<title>ProSBC:Cisco UCM</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/ProSBC:Cisco_UCM"/>
				<updated>2021-04-09T18:53:30Z</updated>
		
		<summary type="html">&lt;p&gt;Luc Morissette: /* Troubleshooting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:ProSBC:Cisco UCM 12 with ProSBC}}&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
This Configuration Note describes how to set up Telcobridges ProSBC for interworking with Cisco Unified Telecommunications Manager 12.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Prerequisites==&lt;br /&gt;
*[[ProSBC|ProSBC]] devices must be installed as described in their respective with release 3.0.x/3.1.x. Release 3.0.x is not supported for TCP connections [[Product_Installation_SBC|installation guides]].&lt;br /&gt;
*Cisco Unified Communications Manager 12. For additional information on Cisco UCM, visit [https://www.cisco.com/c/en/us/support/unified-communications/unified-communications-manager-version-12-0/model.html Cisco Support].&lt;br /&gt;
&lt;br /&gt;
==Example Environments for SIP Trunking with Cisco UCM==&lt;br /&gt;
&lt;br /&gt;
[[Image:Cisco_ucm.png|800px| ]]&lt;br /&gt;
&lt;br /&gt;
==Example Configuration==&lt;br /&gt;
&lt;br /&gt;
Step by step example SIP Trunk configuration.&lt;br /&gt;
*[[ProSBC:Cisco SIP Trunk Configuration:Cisco_UCM_Trunk|Adding ProSBC as a SIP Trunk in Cisco UCM]] &lt;br /&gt;
*[[ProSBC:Cisco SIP Trunk:Configuration_A|SIP Trunk Configuration Instruction with Cisco UCM]]&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;5&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! width=&amp;quot;200&amp;quot; style=&amp;quot;background: rgb(239, 239, 239) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;&amp;quot; | Call Trace&lt;br /&gt;
! width=&amp;quot;200&amp;quot; style=&amp;quot;background: rgb(239, 239, 239) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;&amp;quot; | Test Call&lt;br /&gt;
! width=&amp;quot;200&amp;quot; style=&amp;quot;background: rgb(239, 239, 239) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;&amp;quot; | TBReport&lt;br /&gt;
! width=&amp;quot;200&amp;quot; style=&amp;quot;background: rgb(239, 239, 239) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;&amp;quot; | Advanced Troubleshooting of ProSBC&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
*[[Toolpack:Configuring_Call_Trace_D|Configure call trace]]&lt;br /&gt;
*[[Toolpack:Retrieving_Call_Trace_C|Retrieve call trace]]&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
*[[Creating_A_Test_Call_B|Creating a Test Call]]&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
*[[TBReport|Capture a report of the system]]&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
*[[FreeSBC_Troubleshooting|Advanced Troubleshooting of ProSBC]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Luc Morissette</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/ProSBC:Avaya_IP_Office</id>
		<title>ProSBC:Avaya IP Office</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/ProSBC:Avaya_IP_Office"/>
				<updated>2021-04-09T18:53:19Z</updated>
		
		<summary type="html">&lt;p&gt;Luc Morissette: /* Troubleshooting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:ProSBC:Avaya IP Office with ProSBC}}&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
This Configuration Note describes how to set up Telcobridges ProSBC for interworking with Avaya IP Office.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Prerequisites==&lt;br /&gt;
*[[ProSBC|ProSBC]] devices must be installed as described in their respective with release 3.0.x/3.1.x. Release 3.0.x is not supported for TCP connections [[Product_Installation_SBC|installation guides]].&lt;br /&gt;
*Avaya IP Office R11. For additional information on Avaya IP Office, visit [https://support.avaya.com/products/P0160/ip-office-platform/ Avaya Support].&lt;br /&gt;
&lt;br /&gt;
==Example Environments for SIP Trunking with Avaya IP Office==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt; [[Image:avaya_ip_office.png|800px| ]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==Example Configuration==&lt;br /&gt;
&lt;br /&gt;
Step by step example SIP Trunk configuration.&lt;br /&gt;
*[[ProSBC:Avaya SIP Trunk Configuration:Avaya_IPOffice_Trunk|Adding ProSBC as a SIP Trunk in Avaya IP Office]] &lt;br /&gt;
*[[ProSBC:Avaya SIP Trunk:Configuration_A|SIP Trunk Configuration Instruction with Avaya IP Office]]&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;5&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! width=&amp;quot;200&amp;quot; style=&amp;quot;background: rgb(239, 239, 239) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;&amp;quot; | Call Trace&lt;br /&gt;
! width=&amp;quot;200&amp;quot; style=&amp;quot;background: rgb(239, 239, 239) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;&amp;quot; | Test Call&lt;br /&gt;
! width=&amp;quot;200&amp;quot; style=&amp;quot;background: rgb(239, 239, 239) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;&amp;quot; | TBReport&lt;br /&gt;
! width=&amp;quot;200&amp;quot; style=&amp;quot;background: rgb(239, 239, 239) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;&amp;quot; | Advanced Troubleshooting of ProSBC&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
*[[Toolpack:Configuring_Call_Trace_D|Configure call trace]]&lt;br /&gt;
*[[Toolpack:Retrieving_Call_Trace_C|Retrieve call trace]]&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
*[[Creating_A_Test_Call_B|Creating a Test Call]]&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
*[[TBReport|Capture a report of the system]]&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
*[[FreeSBC_Troubleshooting|Advanced Troubleshooting of ProSBC]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Luc Morissette</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/ProSBC:Twilio</id>
		<title>ProSBC:Twilio</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/ProSBC:Twilio"/>
				<updated>2021-04-09T18:53:02Z</updated>
		
		<summary type="html">&lt;p&gt;Luc Morissette: /* Troubleshooting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduction=&lt;br /&gt;
&lt;br /&gt;
[https://www.twilio.com/docs/sip-trunking Twilio Elastic SIP Trunking] is a cloud-based solution that provides connectivity for IP-based communications infrastructure to connect to the PSTN for making and receiving telephone calls to the rest of the world via any broadband internet connection.  Twilio’s Elastic SIP Trunking service automatically scales, up or down, to meet your traffic needs with unlimited capacity. In just minutes you can deploy globally with Twilio’s easy-to-use self-service tools without having to rely on slow providers.&lt;br /&gt;
&lt;br /&gt;
Sign up for a [https://www.twilio.com/try-twilio free Twilio trial] and learn more about [https://www.twilio.com/docs/sip-trunking configuring your Twilio Elastic SIP Trunk]&lt;br /&gt;
&lt;br /&gt;
[[ProSBC|ProSBC]] is connects your IP-PBX to Twilio Elastic SIP Trunking. This article describes how to connect ProSBC to Twilio Elastic SIP Trunking.&lt;br /&gt;
&lt;br /&gt;
==Prerequisites==&lt;br /&gt;
*[[ProSBC|ProSBC]] devices must be installed as described in their respective [[Product_Installation_SBC|installation guides]].&lt;br /&gt;
*Twilio Elastic SIP Trunking Account. Please visit the following link for more details about [https://www.twilio.com/docs/sip-trunking Twilio Elastic SIP Trunking]&lt;br /&gt;
&lt;br /&gt;
==Example Environments for SIPTrunking with Twilio==&lt;br /&gt;
&lt;br /&gt;
[[Image:Twilio_Trunking.png|800px| ]]&lt;br /&gt;
&lt;br /&gt;
==Example Configuration==&lt;br /&gt;
&lt;br /&gt;
Step by step example SIP Trunk configuration.&lt;br /&gt;
*[[ProSBC:Twilio Trunking:Example_A|Twilio Elastic SIP Trunking Configuration]]&lt;br /&gt;
*[[ProSBC:ProSBC Configuration Twilio Trunking:Example_A|ProSBC Configuration for Twilio Elastic SIP Trunking]]&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;5&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! width=&amp;quot;200&amp;quot; style=&amp;quot;background: rgb(239, 239, 239) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;&amp;quot; | Call Trace&lt;br /&gt;
! width=&amp;quot;200&amp;quot; style=&amp;quot;background: rgb(239, 239, 239) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;&amp;quot; | Test Call&lt;br /&gt;
! width=&amp;quot;200&amp;quot; style=&amp;quot;background: rgb(239, 239, 239) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;&amp;quot; | TBReport&lt;br /&gt;
! width=&amp;quot;200&amp;quot; style=&amp;quot;background: rgb(239, 239, 239) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;&amp;quot; | Advanced Troubleshooting of ProSBC&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
*[[Toolpack:Configuring_Call_Trace_D|Configure call trace]]&lt;br /&gt;
*[[Toolpack:Retrieving_Call_Trace_C|Retrieve call trace]]&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
*[[Creating_A_Test_Call_B|Creating a Test Call]]&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
*[[TBReport|Capture a report of the system]]&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
*[[FreeSBC_Troubleshooting|Advanced Troubleshooting of ProSBC]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Luc Morissette</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/FreeSBC:FreeSwitch</id>
		<title>FreeSBC:FreeSwitch</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/FreeSBC:FreeSwitch"/>
				<updated>2021-04-09T18:52:50Z</updated>
		
		<summary type="html">&lt;p&gt;Luc Morissette: /* Troubleshooting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:ProSBC:FreeSWITCH}}&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
This Configuration Note describes how to set up Telcobridges ProSBC for interworking between ITSP’s SIP Trunk or remote client access for FreeSWITCH server.&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' SIP Trunk use G.711 in this test. There is no transcoding available. &lt;br /&gt;
&lt;br /&gt;
==Prerequisites==&lt;br /&gt;
*[[ProSBC|ProSBC]] devices must be installed as described in their respective with release 3.0.x/3.1.x. Release 3.0.x is not supported for TCP connections [[Product_Installation_SBC|installation guides]].&lt;br /&gt;
*For additional information on FreeSWITCH, visit [https://freeswitch.com/ FreeSWITCH offical web site].&lt;br /&gt;
&lt;br /&gt;
==Example Environments for SIP Trunking with FreeSWITCH==&lt;br /&gt;
&lt;br /&gt;
[[Image:FreeSWITCH_Trunking_1.png|800px]]&lt;br /&gt;
&lt;br /&gt;
==Example Configuration==&lt;br /&gt;
&lt;br /&gt;
Step by step example SIP Trunk configuration.&lt;br /&gt;
*[[FreeSBC:FreeSWITCH Trunk Configuration:FreeSWITCH_Trunk_Configuration|FreeSWITCH Trunk Creation]]&lt;br /&gt;
*[[FreeSBC:SIP Trunking FreeSWITCH:Example_A|SIP Trunking Example Configuration]]&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;5&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! width=&amp;quot;200&amp;quot; style=&amp;quot;background: rgb(239, 239, 239) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;&amp;quot; | Call Trace&lt;br /&gt;
! width=&amp;quot;200&amp;quot; style=&amp;quot;background: rgb(239, 239, 239) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;&amp;quot; | Test Call&lt;br /&gt;
! width=&amp;quot;200&amp;quot; style=&amp;quot;background: rgb(239, 239, 239) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;&amp;quot; | TBReport&lt;br /&gt;
! width=&amp;quot;200&amp;quot; style=&amp;quot;background: rgb(239, 239, 239) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;&amp;quot; | Advanced Troubleshooting of FreeSBC&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
*[[Toolpack:Configuring_Call_Trace_D|Configure call trace]]&lt;br /&gt;
*[[Toolpack:Retrieving_Call_Trace_C|Retrieve call trace]]&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
*[[Creating_A_Test_Call_B|Creating a Test Call]]&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
*[[TBReport|Capture a report of the system]]&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
*[[FreeSBC_Troubleshooting|Advanced Troubleshooting of ProSBC]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Luc Morissette</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/FreeSBC:FusionPBX</id>
		<title>FreeSBC:FusionPBX</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/FreeSBC:FusionPBX"/>
				<updated>2021-04-09T18:52:35Z</updated>
		
		<summary type="html">&lt;p&gt;Luc Morissette: /* Troubleshooting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:ProSBC:FusionPBX}}&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
This Configuration Note describes how to set up Telcobridges ProSBC for interworking between ITSP’s SIP Trunk or remote client access for FusionPBX server.&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' SIP Trunk use G.711 in this test. There is no transcoding available. &lt;br /&gt;
&lt;br /&gt;
==Prerequisites==&lt;br /&gt;
*[[ProSBC|ProSBC]] devices must be installed as described in their respective with release 3.0.x/3.1.x. Release 3.0.x is not supported for TCP connections [[Product_Installation_SBC|installation guides]].&lt;br /&gt;
*FusionPBX.For additional information on FusionPBX, visit [https://www.fusionpbx.com/ FusionPBX offical web site].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Example Environments for SIP Trunking with FusionPBX==&lt;br /&gt;
&lt;br /&gt;
[[Image:Fusionpbx_Trunking_1.png|800px]]&lt;br /&gt;
&lt;br /&gt;
==Example Configuration==&lt;br /&gt;
&lt;br /&gt;
Step by step example SIP Trunk configuration.&lt;br /&gt;
*[[FreeSBC:FusionPBX Trunk Configuration:FusionPBX_Trunk_Configuration|FusionPBX Trunk Creation]]&lt;br /&gt;
*[[FreeSBC:SIP Trunking FusionPBX:Example_A|SIP Trunking Example Configuration]]&lt;br /&gt;
== Example Environments for Remote Workers with FusionPBX ==&lt;br /&gt;
&lt;br /&gt;
[[Image:FusionPbx_Remote_Workers.png|800px| ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Example Configuration==&lt;br /&gt;
&lt;br /&gt;
Step by step example Remote workers configuration.&lt;br /&gt;
*[[FreeSBC:FusionPBX Phone Configuration:FusionPBX_Phone_Configuration|FusionPBX Extension Creation]]&lt;br /&gt;
*[[FreeSBC:FusionPBX Remote Workers:Configuration_A|Remote Workers Configuration Instruction with FusionPBX]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;5&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! width=&amp;quot;200&amp;quot; style=&amp;quot;background: rgb(239, 239, 239) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;&amp;quot; | Call Trace&lt;br /&gt;
! width=&amp;quot;200&amp;quot; style=&amp;quot;background: rgb(239, 239, 239) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;&amp;quot; | Test Call&lt;br /&gt;
! width=&amp;quot;200&amp;quot; style=&amp;quot;background: rgb(239, 239, 239) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;&amp;quot; | TBReport&lt;br /&gt;
! width=&amp;quot;200&amp;quot; style=&amp;quot;background: rgb(239, 239, 239) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;&amp;quot; | Advanced Troubleshooting of ProSBC&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
*[[Toolpack:Configuring_Call_Trace_D|Configure call trace]]&lt;br /&gt;
*[[Toolpack:Retrieving_Call_Trace_C|Retrieve call trace]]&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
*[[Creating_A_Test_Call_B|Creating a Test Call]]&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
*[[TBReport|Capture a report of the system]]&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
*[[FreeSBC_Troubleshooting|Advanced Troubleshooting of ProSBC]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Luc Morissette</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/FreeSBC:FreePBX</id>
		<title>FreeSBC:FreePBX</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/FreeSBC:FreePBX"/>
				<updated>2021-04-09T18:52:20Z</updated>
		
		<summary type="html">&lt;p&gt;Luc Morissette: /* Troubleshooting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:ProSBC:FreePBX}}&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
This Configuration Note describes how to set up Telcobridges ProSBC for interworking between ITSP’s SIP Trunk or remote client access for FreePBX server.&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' SIP Trunk use G.711 in this test. There is no transcoding available. &lt;br /&gt;
&lt;br /&gt;
==Prerequisites==&lt;br /&gt;
*[[ProSBC|ProSBC]] devices must be installed as described in their respective with release 3.0.x/3.1.x. Release 3.0.x is not supported for TCP connections [[Product_Installation_SBC|installation guides]].&lt;br /&gt;
*FreePBX.For additional information on FreePBX, visit [https://www.freepbx.org/ FreePBX offical web site].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Example Environments for SIP Trunking with FreePBX==&lt;br /&gt;
&lt;br /&gt;
[[Image:Freepbx_Trunking_1.png|800px]]&lt;br /&gt;
&lt;br /&gt;
==Example Configuration==&lt;br /&gt;
&lt;br /&gt;
Step by step example SIP Trunk configuration.&lt;br /&gt;
*[[FreeSBC:FreePBX Trunk Configuration:FreePBX_Trunk_Configuration|FreePBX Trunk Creation]]&lt;br /&gt;
*[[FreeSBC:SIP Trunking FreePBX:Example_A|SIP Trunking Example Configuration]]&lt;br /&gt;
== Example Environments for Remote Workers with FreePBX ==&lt;br /&gt;
&lt;br /&gt;
[[Image:FreePbx_Remote_Workers.png|800px| ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Example Configuration==&lt;br /&gt;
&lt;br /&gt;
Step by step example Remote workers configuration.&lt;br /&gt;
*[[FreeSBC:FreePBX Phone Configuration:FreePBX_Phone_Configuration|FreePBX Extension Creation]]&lt;br /&gt;
*[[FreeSBC:FreePBX Remote Workers:Configuration_A|Remote Workers Configuration Instruction with FreePBX]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;5&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! width=&amp;quot;200&amp;quot; style=&amp;quot;background: rgb(239, 239, 239) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;&amp;quot; | Call Trace&lt;br /&gt;
! width=&amp;quot;200&amp;quot; style=&amp;quot;background: rgb(239, 239, 239) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;&amp;quot; | Test Call&lt;br /&gt;
! width=&amp;quot;200&amp;quot; style=&amp;quot;background: rgb(239, 239, 239) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;&amp;quot; | TBReport&lt;br /&gt;
! width=&amp;quot;200&amp;quot; style=&amp;quot;background: rgb(239, 239, 239) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;&amp;quot; | Advanced Troubleshooting of ProSBC&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
*[[Toolpack:Configuring_Call_Trace_D|Configure call trace]]&lt;br /&gt;
*[[Toolpack:Retrieving_Call_Trace_C|Retrieve call trace]]&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
*[[Creating_A_Test_Call_B|Creating a Test Call]]&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
*[[TBReport|Capture a report of the system]]&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
*[[FreeSBC_Troubleshooting|Advanced Troubleshooting of ProSBC]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Luc Morissette</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/FreeSBC:SIP_Trunking:Configuration_A</id>
		<title>FreeSBC:SIP Trunking:Configuration A</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/FreeSBC:SIP_Trunking:Configuration_A"/>
				<updated>2021-04-09T18:50:44Z</updated>
		
		<summary type="html">&lt;p&gt;Luc Morissette: /* Troubleshooting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== '''''Applies to version: v3.0, v3.1''''' ===&lt;br /&gt;
{{DISPLAYTITLE:ProSBC:SIP Trunking:Configuration}}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
=Introduction=&lt;br /&gt;
The SIP Trunking Configuration Tutorial provides you with a scenario-based approach to configuring and monitoring the status of [[ProSBC|ProSBC]] systems, using the Web Portal configuration tool. Complete general installation configuration steps, before you begin configuring your specific application.&lt;br /&gt;
&lt;br /&gt;
==Prerequisites==&lt;br /&gt;
[[ProSBC|ProSBC]] devices must be installed as described in their respective [[Product_Installation_SBC|installation guides]].&lt;br /&gt;
&lt;br /&gt;
== Typical SIP Trunking Sample ==&lt;br /&gt;
&lt;br /&gt;
[[Image:FreeSBC_Sip_Trunking.jpg|800px| ]]&lt;br /&gt;
&lt;br /&gt;
==SIP TRUNKING CONFIGURATION==&lt;br /&gt;
===Prerequisites for configuration===&lt;br /&gt;
[Todo]&lt;br /&gt;
===Steps for configuration===&lt;br /&gt;
{| cellpadding=&amp;quot;5&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! width=&amp;quot;200&amp;quot; style=&amp;quot;background: rgb(239, 239, 239) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;&amp;quot; | (Step 1) &amp;lt;br&amp;gt;Create IP Network&lt;br /&gt;
! width=&amp;quot;200&amp;quot; style=&amp;quot;background: rgb(239, 239, 239) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;&amp;quot; | (Step 2) &amp;lt;br&amp;gt;Create Protocol Stack&lt;br /&gt;
! width=&amp;quot;200&amp;quot; style=&amp;quot;background: rgb(239, 239, 239) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;&amp;quot; | (Step 3) &amp;lt;br&amp;gt;Create Call Route&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
*[[Toolpack:Configuring_Virtual_Port_SBC_C|Configuring an IP Virtual Port]]&lt;br /&gt;
*[[Toolpack:Configuring_Vlan_SBC_A|Configuring a VLAN]]&lt;br /&gt;
*[[Toolpack:Configuring_IP_Interface_SBC_A|Configuring IP Interfaces]]&lt;br /&gt;
*[[Toolpack:Creating_an_IP_Port_Range_SBC_A|Create an IP port range]]&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
*[[Toolpack:Creating_a_SIP_Stack_SBC A|Create a SIP stack]]&lt;br /&gt;
*[[Toolpack:Creating_a_SIP_Transport_Server_SBC A|Create a SIP transport server]]&lt;br /&gt;
*[[Toolpack:Modify_Profile_Sbc_A|Modify profile]]&lt;br /&gt;
*[[Toolpack:Allocating_a_SIP_Network_Access_Point_(NAP)_SBC A|Allocate a SIP NAP]] &lt;br /&gt;
*[[Toolpack:Allocating_a_SIP_Open_Network_Access_Point_(NAP)_SBC A|Allocate an open SIP NAP]]&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
*[[Toolpack:Creating_a_First_Call_Route E|Create a first call route]] &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Example Configuration==&lt;br /&gt;
&lt;br /&gt;
Step by step example SIP Trunk configuration.&lt;br /&gt;
*[[FreeSBC:SIP Trunking:Example_A|SIP Trunking Example Configuration]]&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;5&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! width=&amp;quot;200&amp;quot; style=&amp;quot;background: rgb(239, 239, 239) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;&amp;quot; | Call Trace&lt;br /&gt;
! width=&amp;quot;200&amp;quot; style=&amp;quot;background: rgb(239, 239, 239) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;&amp;quot; | Test Call&lt;br /&gt;
! width=&amp;quot;200&amp;quot; style=&amp;quot;background: rgb(239, 239, 239) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;&amp;quot; | TBReport&lt;br /&gt;
! width=&amp;quot;200&amp;quot; style=&amp;quot;background: rgb(239, 239, 239) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;&amp;quot; | Advanced Troubleshooting of ProSBC&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
*[[Toolpack:Configuring_Call_Trace_D|Configure call trace]]&lt;br /&gt;
*[[Toolpack:Retrieving_Call_Trace_C|Retrieve call trace]]&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
*[[Creating_A_Test_Call_B|Creating a Test Call]]&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
*[[TBReport|Capture a report of the system]]&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
*[[FreeSBC_Troubleshooting|Advanced Troubleshooting of ProSBC]]&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Luc Morissette</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/FreeSBC:3CX</id>
		<title>FreeSBC:3CX</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/FreeSBC:3CX"/>
				<updated>2021-04-09T18:48:17Z</updated>
		
		<summary type="html">&lt;p&gt;Luc Morissette: /* Troubleshooting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:ProSBC:3CX Configuration with ProSBC}}&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
This Configuration Note describes how to set up Telcobridges ProSBC for interworking between ITSP’s SIP Trunk or remote client access for 3CX server.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Prerequisites==&lt;br /&gt;
*[[ProSBC|ProSBC]] devices must be installed as described in their respective with release 3.0.x/3.1.x. Release 3.0.x is not supported for TCP connections [[Product_Installation_SBC|installation guides]].&lt;br /&gt;
*3CX.For additional information on 3CX, visit [http://www.3cx.com/ 3CX official web site].&lt;br /&gt;
&lt;br /&gt;
==Example Environments for SIPTrunking with 3CX==&lt;br /&gt;
&lt;br /&gt;
[[Image:3CX_SIP_Trunk.png|800px| ]]&lt;br /&gt;
&lt;br /&gt;
==Example Configuration==&lt;br /&gt;
&lt;br /&gt;
Step by step example SIP Trunk configuration.&lt;br /&gt;
*[[FreeSBC:3CX SIP Trunk Configuration:3CX_SIP_Trunk|Adding ProSBC as a SIP Trunk in 3CX Server]] &lt;br /&gt;
*[[FreeSBC:3CX SIP Trunk:Configuration_A|SIP Trunk Configuration Instruction with 3CX]]&lt;br /&gt;
*[[FreeSBC:3CX T38 Fax Configuration_A|T.38 Fax Configuration with 3CX]]&lt;br /&gt;
&lt;br /&gt;
== Example Environments for Remote Workers with 3CX ==&lt;br /&gt;
&lt;br /&gt;
[[Image:3CX_Remote_Workers.png|800px| ]]&lt;br /&gt;
&lt;br /&gt;
==Example Configuration==&lt;br /&gt;
&lt;br /&gt;
Step by step example Remote workers configuration.&lt;br /&gt;
*[[FreeSBC:3CX Phone Provisioning:3CX_Phone_Provisioning|3CX Phone Provisioning Settings]] &lt;br /&gt;
*[[FreeSBC:3CX Remote Workers:Configuration_A|Remote Workers Configuration Instruction with 3CX]]&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;5&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! width=&amp;quot;200&amp;quot; style=&amp;quot;background: rgb(239, 239, 239) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;&amp;quot; | Call Trace&lt;br /&gt;
! width=&amp;quot;200&amp;quot; style=&amp;quot;background: rgb(239, 239, 239) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;&amp;quot; | Test Call&lt;br /&gt;
! width=&amp;quot;200&amp;quot; style=&amp;quot;background: rgb(239, 239, 239) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;&amp;quot; | TBReport&lt;br /&gt;
! width=&amp;quot;200&amp;quot; style=&amp;quot;background: rgb(239, 239, 239) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;&amp;quot; | Advanced Troubleshooting of ProSBC&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
*[[Toolpack:Configuring_Call_Trace_D|Configure call trace]]&lt;br /&gt;
*[[Toolpack:Retrieving_Call_Trace_C|Retrieve call trace]]&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
*[[Creating_A_Test_Call_B|Creating a Test Call]]&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
*[[TBReport|Capture a report of the system]]&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
*[[FreeSBC_Troubleshooting|Advanced Troubleshooting of ProSBC]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* [[FreeSBC:3CX:CSTA_Calls_never_ends|CSTA calls never ends]]&lt;/div&gt;</summary>
		<author><name>Luc Morissette</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/ProSBC:Brekeke_PBX</id>
		<title>ProSBC:Brekeke PBX</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/ProSBC:Brekeke_PBX"/>
				<updated>2021-04-09T18:48:08Z</updated>
		
		<summary type="html">&lt;p&gt;Luc Morissette: /* Troubleshooting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:ProSBC:Brekeke PBX Configuration with ProSBC}}&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
This Configuration Note describes how to set up Telcobridges ProSBC for interworking between ITSP’s SIP Trunk or remote client access for Brekeke PBX.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Prerequisites==&lt;br /&gt;
*[[ProSBC|ProSBC]] devices must be installed as described in their respective with release 3.0.x/3.1.x. Release 3.0.x is not supported for TCP connections [[Product_Installation_SBC|installation guides]].&lt;br /&gt;
*Brekeke PBX.For additional information on Brekeke, visit [https://www.brekeke.com/ Brekeke official web site].&lt;br /&gt;
&lt;br /&gt;
==Example Environments for SIPTrunking with Brekeke PBX==&lt;br /&gt;
&lt;br /&gt;
[[Image:Brekeke_SIP_Trunk.png|800px| ]]&lt;br /&gt;
&lt;br /&gt;
==Example Configuration==&lt;br /&gt;
&lt;br /&gt;
Step by step example SIP Trunk configuration.&lt;br /&gt;
*[[ProSBC:Brekeke SIP Trunk Configuration:Brekeke_SIP_Trunk|Adding ProSBC as a SIP Trunk in Brekeke PBX]] &lt;br /&gt;
*[[ProSBC:Brekeke SIP Trunk:Configuration_A|SIP Trunk Configuration Instruction with Brekeke PBX]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;5&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! width=&amp;quot;200&amp;quot; style=&amp;quot;background: rgb(239, 239, 239) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;&amp;quot; | Call Trace&lt;br /&gt;
! width=&amp;quot;200&amp;quot; style=&amp;quot;background: rgb(239, 239, 239) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;&amp;quot; | Test Call&lt;br /&gt;
! width=&amp;quot;200&amp;quot; style=&amp;quot;background: rgb(239, 239, 239) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;&amp;quot; | TBReport&lt;br /&gt;
! width=&amp;quot;200&amp;quot; style=&amp;quot;background: rgb(239, 239, 239) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;&amp;quot; | Advanced Troubleshooting of ProSBC&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
*[[Toolpack:Configuring_Call_Trace_D|Configure call trace]]&lt;br /&gt;
*[[Toolpack:Retrieving_Call_Trace_C|Retrieve call trace]]&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
*[[Creating_A_Test_Call_B|Creating a Test Call]]&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
*[[TBReport|Capture a report of the system]]&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
*[[FreeSBC_Troubleshooting|Advanced Troubleshooting of ProSBC]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Luc Morissette</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/FreeSBC:Asterisk</id>
		<title>FreeSBC:Asterisk</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/FreeSBC:Asterisk"/>
				<updated>2021-04-09T18:47:48Z</updated>
		
		<summary type="html">&lt;p&gt;Luc Morissette: /* Troubleshooting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:ProSBC:Asterisk}}&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
This Configuration Note describes how to set up Telcobridges ProSBC for interworking between ITSP’s SIP Trunk or remote client access for Asterisk server.&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' SIP Trunk use G.711 in this test. There is no transcoding available. &lt;br /&gt;
&lt;br /&gt;
==Prerequisites==&lt;br /&gt;
*[[ProSBC|ProSBC]] devices must be installed as described in their respective with release 3.0.x/3.1.x. Release 3.0.x is not supported for TCP connections [[Product_Installation_SBC|installation guides]].&lt;br /&gt;
*Asterisk. For additional information on Asterisk, visit [http://www.asterisk.org/ Asterisk official web site].&lt;br /&gt;
&lt;br /&gt;
==Example Environments for SIPTrunking with Asterisk==&lt;br /&gt;
&lt;br /&gt;
[[Image:FreeSBC_Sip_Trunking.jpg|800px| ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Example Configuration==&lt;br /&gt;
&lt;br /&gt;
Step by step example SIP Trunk configuration.&lt;br /&gt;
*[[FreeSBC:SIP Trunking:Example_A|SIP Trunking Example Configuration]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example Environments for Remote Workers with Asterisk ==&lt;br /&gt;
&lt;br /&gt;
[[Image:FreeSBC_Remote_Workers.jpg|800px| ]]&lt;br /&gt;
&lt;br /&gt;
==Example Configuration==&lt;br /&gt;
&lt;br /&gt;
Step by step example Remote workers configuration.&lt;br /&gt;
*[[FreeSBC:Remote Workers:Configuration_A|Remote Workers Configuration Instruction]]&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;5&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! width=&amp;quot;200&amp;quot; style=&amp;quot;background: rgb(239, 239, 239) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;&amp;quot; | Call Trace&lt;br /&gt;
! width=&amp;quot;200&amp;quot; style=&amp;quot;background: rgb(239, 239, 239) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;&amp;quot; | Test Call&lt;br /&gt;
! width=&amp;quot;200&amp;quot; style=&amp;quot;background: rgb(239, 239, 239) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;&amp;quot; | TBReport&lt;br /&gt;
! width=&amp;quot;200&amp;quot; style=&amp;quot;background: rgb(239, 239, 239) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;&amp;quot; | Advanced Troubleshooting of ProSBC&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
*[[Toolpack:Configuring_Call_Trace_D|Configure call trace]]&lt;br /&gt;
*[[Toolpack:Retrieving_Call_Trace_C|Retrieve call trace]]&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
*[[Creating_A_Test_Call_B|Creating a Test Call]]&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
*[[TBReport|Capture a report of the system]]&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
*[[FreeSBC_Troubleshooting|Advanced Troubleshooting of ProSBC]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Related Content==&lt;br /&gt;
Please check David Duffett blog post for configuring ProSBC with Asterisk from this [http://blog.telcobridges.com/index.php/2019/07/31/sbc-for-asterisk/ link]&lt;/div&gt;</summary>
		<author><name>Luc Morissette</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/ProSBC:VitalPBX</id>
		<title>ProSBC:VitalPBX</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/ProSBC:VitalPBX"/>
				<updated>2021-04-09T18:47:39Z</updated>
		
		<summary type="html">&lt;p&gt;Luc Morissette: /* Troubleshooting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:ProSBC:VitalPBX}}&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
This Configuration Note describes how to set up Telcobridges ProSBC for interworking between ITSP’s SIP Trunk or remote client access for VitalPBX server.&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' SIP Trunk use G.711 in this test. There is no transcoding available. &lt;br /&gt;
&lt;br /&gt;
==Prerequisites==&lt;br /&gt;
*[[ProSBC|ProSBC]] devices must be installed as described in their respective with release 3.0.x/3.1.x. Release 3.0.x is not supported for TCP connections [[Product_Installation_SBC|installation guides]].&lt;br /&gt;
*VitalPBX.For additional information on VitalPBX, visit [https://www.vitalpbx.org/ VitalPBX offical web site].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Example Environments for SIP Trunking with VitalPBX==&lt;br /&gt;
&lt;br /&gt;
[[Image:vitalpbx_Trunking_1.png|800px]]&lt;br /&gt;
&lt;br /&gt;
==Example Configuration==&lt;br /&gt;
&lt;br /&gt;
Step by step example SIP Trunk configuration.&lt;br /&gt;
*[[ProSBC:VitalPBX Trunk Configuration:VitalPBX_Trunk_Configuration|VitalPBX Trunk Creation]]&lt;br /&gt;
*[[ProSBC:SIP Trunking VitalPBX:Example_A|SIP Trunking Example Configuration]]&lt;br /&gt;
== Example Environments for Remote Workers with VitalPBX ==&lt;br /&gt;
&lt;br /&gt;
[[Image:vitalPbx_Remote_Workers.png|800px| ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Example Configuration==&lt;br /&gt;
&lt;br /&gt;
Step by step example Remote workers configuration.&lt;br /&gt;
*[[ProSBC:VitalPBX Phone Configuration:VitalPBX_Phone_Configuration|VitalPBX Extension Creation]]&lt;br /&gt;
*[[ProSBC:VitalPBX Remote Workers:Configuration_A|Remote Workers Configuration Instruction with VitalPBX]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;5&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! width=&amp;quot;200&amp;quot; style=&amp;quot;background: rgb(239, 239, 239) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;&amp;quot; | Call Trace&lt;br /&gt;
! width=&amp;quot;200&amp;quot; style=&amp;quot;background: rgb(239, 239, 239) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;&amp;quot; | Test Call&lt;br /&gt;
! width=&amp;quot;200&amp;quot; style=&amp;quot;background: rgb(239, 239, 239) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;&amp;quot; | TBReport&lt;br /&gt;
! width=&amp;quot;200&amp;quot; style=&amp;quot;background: rgb(239, 239, 239) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;&amp;quot; | Advanced Troubleshooting of ProSBC&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
*[[Toolpack:Configuring_Call_Trace_D|Configure call trace]]&lt;br /&gt;
*[[Toolpack:Retrieving_Call_Trace_C|Retrieve call trace]]&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
*[[Creating_A_Test_Call_B|Creating a Test Call]]&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
*[[TBReport|Capture a report of the system]]&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
*[[FreeSBC_Troubleshooting|Advanced Troubleshooting of ProSBC]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Luc Morissette</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/FreeSBC:Skype_for_Business</id>
		<title>FreeSBC:Skype for Business</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/FreeSBC:Skype_for_Business"/>
				<updated>2021-04-09T18:47:31Z</updated>
		
		<summary type="html">&lt;p&gt;Luc Morissette: /* Troubleshooting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:ProSBC:Skype for Business S4B}}&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
This Configuration Note describes how to set up Telcobridges ProSBC for interworking between ITSP’s SIP Trunk and Skype For Business Mediation Server.&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' SIP Trunk use G.711 in this test. There is no transcoding available. &lt;br /&gt;
&lt;br /&gt;
==Prerequisites==&lt;br /&gt;
*[[ProSBC|ProSBC]] devices must be installed as described in their respective with release 3.1.x. Release 3.0.x is not supported for TCP connections [[Product_Installation_SBC|installation guides]].&lt;br /&gt;
*Skype for Business 2015. For additional information on Skype for Business 2015, visit [http://www.microsoft.com/ Microsoft]&lt;br /&gt;
&lt;br /&gt;
==Example Environment==&lt;br /&gt;
&lt;br /&gt;
[[Image:Skype_Environment.png|800px| ]]&lt;br /&gt;
&lt;br /&gt;
====ProSBC Configuration for S4B====&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;5&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! width=&amp;quot;200&amp;quot; style=&amp;quot;background: rgb(239, 239, 239) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;&amp;quot; | (Step 1) &amp;lt;br&amp;gt;Create IP Network&lt;br /&gt;
! width=&amp;quot;200&amp;quot; style=&amp;quot;background: rgb(239, 239, 239) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;&amp;quot; | (Step 2) &amp;lt;br&amp;gt;Create Protocol Stack&lt;br /&gt;
! width=&amp;quot;200&amp;quot; style=&amp;quot;background: rgb(239, 239, 239) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;&amp;quot; | (Step 3) &amp;lt;br&amp;gt;Create Call Route&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
*[[Toolpack:Configuring_Virtual_Port_SBC_C|Configuring an IP Virtual Port]]&lt;br /&gt;
*[[Toolpack:Configuring_Vlan_SBC_A|Configuring a VLAN]]&lt;br /&gt;
*[[Toolpack:Configuring_IP_Interface_SBC_A|Configuring IP Interfaces]]&lt;br /&gt;
*[[Toolpack:Creating_an_IP_Port_Range_SBC_A|Create an IP port range]]&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
*[[Toolpack:Creating_an_IP_Port_Range_SBC A|Create an IP port range]]&lt;br /&gt;
*[[Toolpack:Creating_a_SIP_Stack_SBC A|Create a SIP stack]]&lt;br /&gt;
*[[Toolpack:Creating_a_SIP_Transport_Server_SBC A|Create a SIP transport server]]&lt;br /&gt;
*[[Toolpack:Modify_Profile_Sbc_A|Modify profile]]&lt;br /&gt;
*[[Toolpack:Allocating_a_SIP_Network_Access_Point_(NAP)_SBC A|Allocate a SIP NAP]] &lt;br /&gt;
*[[Toolpack:Allocating_a_SIP_Open_Network_Access_Point_(NAP)_SBC A|Allocate an open SIP NAP]]&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
*[[Toolpack:Creating_a_First_Call_Route E|Create a first call route]] &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Example Configuration==&lt;br /&gt;
&lt;br /&gt;
Step by step example ProSBC SIP trunking configuration for Microsoft Skype for Business.&lt;br /&gt;
*[[FreeSBC:Skype for Business Configuration:Example A|Skype for Business Example Configuration - TCP]]&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;5&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! width=&amp;quot;200&amp;quot; style=&amp;quot;background: rgb(239, 239, 239) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;&amp;quot; | Call Trace&lt;br /&gt;
! width=&amp;quot;200&amp;quot; style=&amp;quot;background: rgb(239, 239, 239) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;&amp;quot; | Test Call&lt;br /&gt;
! width=&amp;quot;200&amp;quot; style=&amp;quot;background: rgb(239, 239, 239) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;&amp;quot; | TBReport&lt;br /&gt;
! width=&amp;quot;200&amp;quot; style=&amp;quot;background: rgb(239, 239, 239) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;&amp;quot; | Advanced Troubleshooting of ProSBC&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
*[[Toolpack:Configuring_Call_Trace_D|Configure call trace]]&lt;br /&gt;
*[[Toolpack:Retrieving_Call_Trace_C|Retrieve call trace]]&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
*[[Creating_A_Test_Call_B|Creating a Test Call]]&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
*[[TBReport|Capture a report of the system]]&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
*[[FreeSBC_Troubleshooting|Advanced Troubleshooting of ProSBC]]&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Luc Morissette</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/ProSBC:Sippy</id>
		<title>ProSBC:Sippy</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/ProSBC:Sippy"/>
				<updated>2021-04-09T18:47:16Z</updated>
		
		<summary type="html">&lt;p&gt;Luc Morissette: /* Troubleshooting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:ProSBC:Sippy Configuration with ProSBC}}&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
This Configuration Note describes how to set up Telcobridges ProSBC for interworking with Sippy Soft Switch.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Prerequisites==&lt;br /&gt;
*[[ProSBC|ProSBC]] devices must be installed as described in their respective with release 3.0.x/3.1.x. Release 3.0.x is not supported for TCP connections [[Product_Installation_SBC|installation guides]].&lt;br /&gt;
*Sippy Soft Switch. For additional information on Sippysoft, visit [https://www.sippysoft.com/ Sippysoft official web site].&lt;br /&gt;
&lt;br /&gt;
==Example Environments for SIPTrunking with Sippysoft==&lt;br /&gt;
&lt;br /&gt;
[[Image:sippysoft_Trunk.png|800px| ]]&lt;br /&gt;
&lt;br /&gt;
==Example Configuration==&lt;br /&gt;
&lt;br /&gt;
Step by step example SIP Trunk configuration.&lt;br /&gt;
*[[ProSBC:Sippy SIP Trunk Configuration:Sippy_Trunk|Adding ProSBC as a SIP Trunk in Sippy Server]] &lt;br /&gt;
*[[ProSBC:Sippy SIP Trunk:Configuration_A|SIP Trunk Configuration Instruction with Sippy Server]]&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;5&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! width=&amp;quot;200&amp;quot; style=&amp;quot;background: rgb(239, 239, 239) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;&amp;quot; | Call Trace&lt;br /&gt;
! width=&amp;quot;200&amp;quot; style=&amp;quot;background: rgb(239, 239, 239) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;&amp;quot; | Test Call&lt;br /&gt;
! width=&amp;quot;200&amp;quot; style=&amp;quot;background: rgb(239, 239, 239) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;&amp;quot; | TBReport&lt;br /&gt;
! width=&amp;quot;200&amp;quot; style=&amp;quot;background: rgb(239, 239, 239) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;&amp;quot; | Advanced Troubleshooting of ProSBC&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
*[[Toolpack:Configuring_Call_Trace_D|Configure call trace]]&lt;br /&gt;
*[[Toolpack:Retrieving_Call_Trace_C|Retrieve call trace]]&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
*[[Creating_A_Test_Call_B|Creating a Test Call]]&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
*[[TBReport|Capture a report of the system]]&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
*[[FreeSBC_Troubleshooting|Advanced Troubleshooting of ProSBC]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Luc Morissette</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/ProSBC:Youmail</id>
		<title>ProSBC:Youmail</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/ProSBC:Youmail"/>
				<updated>2021-04-09T18:46:13Z</updated>
		
		<summary type="html">&lt;p&gt;Luc Morissette: /* Troubleshooting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:ProSBC:Integration with YouMail Fraud detection service}}&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
This configuration note describes how to set up Telcobridges ProSBC for adding YouMail fraud protection service to any system.&lt;br /&gt;
&lt;br /&gt;
==Prerequisites==&lt;br /&gt;
*[[ProSBC]] devices must be installed with release 3.1.113 or later. Here is a link to the [[Product_Installation_SBC|installation guides]].&lt;br /&gt;
*Need to have an account at [https://www.youmail.com/ YouMail] to get a Security ID (SID) and an API key. Trial accounts are available. &lt;br /&gt;
*[[ProSBC]] must be configured in one of the [[FreeSBC_Use_Cases|ProSBC use cases]]. This script will be an addon to the rest of the configuration.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Example Environment for Fraud Protection with YouMail==&lt;br /&gt;
Calls received on [[ProSBC]] will systematically send a HTTPS request to the YouMail service running on the cloud.&amp;lt;br&amp;gt;&lt;br /&gt;
The calling number (ANI) will be verified by the YouMail service and will return a response to the [[ProSBC]] with a level.&amp;lt;br&amp;gt;&lt;br /&gt;
Call Routes can be configured to pass valid numbers (level 0), pass or block potential spam numbers (level 1), and block fraudulous calls (level 2)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:Fraud call with youmail overview.png|800px]]&lt;br /&gt;
&lt;br /&gt;
==Example Configuration==&lt;br /&gt;
The configuration is mainly adding a script to the [[ProSBC]]. &lt;br /&gt;
See [[Adding_YouMail_script_to_Routing_scripts|Adding the YouMail Script]]&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;5&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! width=&amp;quot;200&amp;quot; style=&amp;quot;background: rgb(239, 239, 239) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;&amp;quot; | Call Trace&lt;br /&gt;
! width=&amp;quot;200&amp;quot; style=&amp;quot;background: rgb(239, 239, 239) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;&amp;quot; | Test Call&lt;br /&gt;
! width=&amp;quot;200&amp;quot; style=&amp;quot;background: rgb(239, 239, 239) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;&amp;quot; | TBReport&lt;br /&gt;
! width=&amp;quot;200&amp;quot; style=&amp;quot;background: rgb(239, 239, 239) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;&amp;quot; | Advanced Troubleshooting of FreeSBC&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
*[[Toolpack:Configuring_Call_Trace_D|Configure call trace]]&lt;br /&gt;
*[[Toolpack:Retrieving_Call_Trace_C|Retrieve call trace]]&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
*[[Creating_A_Test_Call_B|Creating a Test Call]]&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
*[[TBReport|Capture a report of the system]]&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
*[[FreeSBC_Troubleshooting|Advanced Troubleshooting of ProSBC]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Luc Morissette</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/FreeSBC:Cloud:AWS_Installation_A</id>
		<title>FreeSBC:Cloud:AWS Installation A</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/FreeSBC:Cloud:AWS_Installation_A"/>
				<updated>2021-04-06T12:18:56Z</updated>
		
		<summary type="html">&lt;p&gt;Luc Morissette: Minor&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:ProSBC:Cloud:AWS Installation}}&lt;br /&gt;
&lt;br /&gt;
This page is intended to give assistance to people launching an instance of ''ProSBC'' using an Amazon Machine Image (AMI) on Amazon Web Service (AWS).&lt;br /&gt;
&lt;br /&gt;
== '''Instantiate a ProSBC''' ==&lt;br /&gt;
* After logging in your Amazon account, click on “EC2” in the main AWS console:&lt;br /&gt;
[[File:ConsoleEC2.png| 600px]]&lt;br /&gt;
&lt;br /&gt;
* On the left menu, click on “AMIs”:&lt;br /&gt;
[[File:AMIs.png| 100px]]&lt;br /&gt;
&lt;br /&gt;
* Click on the filter drop list and select “Private image” to locate ProSBC AMI:&lt;br /&gt;
[[File:PrivateImages.png| 500px]]&lt;br /&gt;
&lt;br /&gt;
* Select the region matching the region of the ProSBC AMI you want to test. If you don't know it, try &amp;quot;Canada (Central)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:RegionAMI.png| 700px]]&lt;br /&gt;
&lt;br /&gt;
* Select the image and click “Launch”:&lt;br /&gt;
[[File:SelectAMI.png| 700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Select the instance type and its resources. The recommended instance type is:&lt;br /&gt;
**  m4.large (2 vCPU, 8 GiB)&lt;br /&gt;
* Supported instance type are: &lt;br /&gt;
** C3, C4, D2, I2, M4 (excluding m4.16xlarge), and R3 instances ([https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enhanced-networking.html Supported instances from Amazon documentation])&lt;br /&gt;
*** Note: The Paris region is not supported at this time, since it does not have any of the supported instance types.&lt;br /&gt;
* This is the list of approximate performances for different AWS instance types. Results may vary according to configuration.&lt;br /&gt;
{| cellpadding=&amp;quot;5&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! width=&amp;quot;150&amp;quot; style=&amp;quot;background: none repeat scroll 0% 0% rgb(239, 239, 239); -moz-background-inline-policy: continuous;&amp;quot; | EC2 Instance&lt;br /&gt;
! width=&amp;quot;100&amp;quot; style=&amp;quot;background: none repeat scroll 0% 0% rgb(239, 239, 239); -moz-background-inline-policy: continuous;&amp;quot; | AWS CPU cores&lt;br /&gt;
! width=&amp;quot;100&amp;quot; style=&amp;quot;background: none repeat scroll 0% 0% rgb(239, 239, 239); -moz-background-inline-policy: continuous;&amp;quot; | Sessions per second (call rate)&lt;br /&gt;
! width=&amp;quot;100&amp;quot; style=&amp;quot;background: none repeat scroll 0% 0% rgb(239, 239, 239); -moz-background-inline-policy: continuous;&amp;quot; | Sessions with RTP anchoring&lt;br /&gt;
! width=&amp;quot;200&amp;quot; style=&amp;quot;background: none repeat scroll 0% 0% rgb(239, 239, 239); -moz-background-inline-policy: continuous;&amp;quot; | Sessions with Media bypass&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
m4.large&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
2&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
50&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
400&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
32,000&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
m4.xlarge&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
4&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
215&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
750&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
60,000&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
c4.xlarge&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
4&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
215&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
750&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
60,000&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
c4.2xlarge&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
8&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
575&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
2,000&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
60,000&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
m4.4xlarge&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
16&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
650&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
4,000&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
60,000&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
m4.10xlarge&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
40&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
650&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
4,800&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
60,000&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:SelectResources.png| 800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Click “Add Storage” to proceed to the next page:&lt;br /&gt;
[[File:ChooseSubnet.png| 1000px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Change the Volume Size to 40Gb.&lt;br /&gt;
* Select &amp;quot;Volume Type&amp;quot;: gp2&lt;br /&gt;
* Check the box &amp;quot;Delete on Termination&amp;quot;&lt;br /&gt;
* Click “Add Tags” to proceed to the next page.&lt;br /&gt;
[[File:NextTag.png| 800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* You can leave the default parameters as they are. &lt;br /&gt;
* Click “Configure Security Group” to proceed to the next page:&lt;br /&gt;
[[File:NextSecurityGroup.png| 800px]]&lt;br /&gt;
&lt;br /&gt;
* Select &amp;quot;Create a new security group&amp;quot;. We recommend that you simply open all ports on your own IP address, since the SBC contains its own internal firewall:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Rule !! Type !! Port Range !! Source IP&lt;br /&gt;
|-&lt;br /&gt;
| All traffic || All traffic || 0 - 65535 || (Use your own public IP)&lt;br /&gt;
|}&lt;br /&gt;
[[File:AddRule.png| 600px ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Click “Launch”. Be aware: you will be billed by Amazon for the instance resources:&lt;br /&gt;
[[File:Launch.png| 1000px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* You will be prompted to create a key pair, allowing you to securely connect to your instance. Select “Create a new key pair” if you do not own one, and give it a name. Then, click on “Download Key Pair” to download a .pem file since it is needed for a SSH connection. (Note: Make sure to not lose it, since you would then lose access the the SSH connection for the instance):&lt;br /&gt;
[[File:DownloadKey.png| 800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Click on “Launch Instances”:&lt;br /&gt;
[[File:LaunchWithKey.png| 800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* You can view your instance by clicking on “View Instances”:&lt;br /&gt;
[[File:ViewInstance.png| 800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Select the instance you just created and feel free to give it a name: &lt;br /&gt;
[[File:RenameInstance.png| 800px]]&lt;br /&gt;
&lt;br /&gt;
=== Optional: Elastic IP Creation section ===&lt;br /&gt;
* If you want to use an associate public IP generated by Amazon (called &amp;quot;Elastic IP&amp;quot;). Click on &amp;quot;Elastic IP&amp;quot; on the left, then click on &amp;quot;Allocate new address&amp;quot;:&lt;br /&gt;
[[File:ElasticIP.png| 300px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Click on &amp;quot;Allocate IP&amp;quot;. A new public IP will be generated by Amazon:&lt;br /&gt;
[[File:AllocateIP.png| 600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Click on &amp;quot;Close&amp;quot;:&lt;br /&gt;
[[File:NewIP.png| 600px]]&lt;br /&gt;
&lt;br /&gt;
=== Optional: Elastic IP association section ===&lt;br /&gt;
&lt;br /&gt;
* Go to the left pane and click on &amp;quot;Instance&amp;quot;. Then select the instance &amp;quot;ProSBC&amp;quot; to display its description:&lt;br /&gt;
[[File:IPforInstance.png| 600px]]&lt;br /&gt;
&lt;br /&gt;
* Find the '''eth0''' network interface in the instance description:&lt;br /&gt;
[[File:GetTheRightNetworkInterface.png| 1100px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Click on the '''eth0''' Network Interface, then click on the &amp;quot;Interface ID&amp;quot; link:&lt;br /&gt;
[[File:InterfaceID.png| 1100px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Right-click on the selected Network Interface, then click &amp;quot;Associate Address&amp;quot;:&lt;br /&gt;
[[File:AssociateAddress.png| 800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* In the Address list, select the public IP to associate with the main Network Interface. Then, click on &amp;quot;Associate Address&amp;quot;:&lt;br /&gt;
[[File:SelectAddress.png| 800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Click on &amp;quot;Instances&amp;quot; on the left pane and select &amp;quot;ProSBC&amp;quot; instance. Check if your instance is associated with a public IP:&lt;br /&gt;
[[File:Ready.png| 1100px]]&lt;br /&gt;
&lt;br /&gt;
== Enable SR-IOV enhanced networking ==&lt;br /&gt;
It is very important to enable &amp;quot;enhanced networking&amp;quot; for tbrouter to have access to the network devices on the VM.&lt;br /&gt;
&lt;br /&gt;
This must be done before completing the initial web portal configuration.&lt;br /&gt;
&lt;br /&gt;
There are two types of enhanced networking, we need the second one.&lt;br /&gt;
&lt;br /&gt;
1) Elastic Network Adapter (ENA)&lt;br /&gt;
&lt;br /&gt;
2) Intel 82599 Virtual Function (VF) interface&lt;br /&gt;
&lt;br /&gt;
===Install the AWS CLI===&lt;br /&gt;
https://aws.amazon.com/cli/&lt;br /&gt;
&lt;br /&gt;
===Get security credentials for the command line===&lt;br /&gt;
On the AWS web portal, click on your account name and choose &amp;quot;My Security Credentials&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Expand the &amp;quot;Access keys&amp;quot; section&lt;br /&gt;
&lt;br /&gt;
Create a new key, you will need the AWSAccessKeyId and AWSSecretKey&lt;br /&gt;
&lt;br /&gt;
===Open a CLI and execute the aws cli commands===&lt;br /&gt;
  aws configure&lt;br /&gt;
&lt;br /&gt;
Paste the access key ID and key that you previously obtained along with your default region.&lt;br /&gt;
&lt;br /&gt;
===Show if the enhanced networking is enabled===&lt;br /&gt;
Make sure to replace the example instance ID with your own AWS instance ID&lt;br /&gt;
&lt;br /&gt;
  aws ec2 describe-instance-attribute --instance-id i-0123456789abcdef1 --attribute sriovNetSupport&lt;br /&gt;
&lt;br /&gt;
Enabled:&lt;br /&gt;
  {&lt;br /&gt;
      &amp;quot;InstanceId&amp;quot;: &amp;quot;i-0123456789abcdef1&amp;quot;,&lt;br /&gt;
      &amp;quot;SriovNetSupport&amp;quot;: {&lt;br /&gt;
          &amp;quot;Value&amp;quot;: &amp;quot;simple&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
Not enabled:&lt;br /&gt;
  {&lt;br /&gt;
      &amp;quot;InstanceId&amp;quot;: &amp;quot;i-0123456789abcdef1&amp;quot;,&lt;br /&gt;
      &amp;quot;SriovNetSupport&amp;quot;: {}&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
==Enable sriov enhanced networking==&lt;br /&gt;
To enable the sriov enhanced networking, first turn off the instance then do:&lt;br /&gt;
&lt;br /&gt;
  aws ec2 modify-instance-attribute --instance-id i-0123456789abcdef1  --sriov-net-support simple&lt;br /&gt;
&lt;br /&gt;
== Accessing the TSBC-SW ==&lt;br /&gt;
=== Accessing the TSBC-SW web portal ===&lt;br /&gt;
* Open a web browser to the management IP of the TSBC, on port 12358.  Example if your Instance public IP address is 35.183.126.193, the URL would be: &amp;lt;br/&amp;gt; http://35.183.126.193:12358&lt;br /&gt;
&amp;lt;br/&amp;gt; &lt;br /&gt;
:You should get to the TSBC Configuration Wizard &amp;lt;br/&amp;gt; &lt;br /&gt;
:[[File:AWS_TSBC_WebPortal_Configuration_wizard.jpg|700px]]&lt;br /&gt;
&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Take note that it may take a while for the ProSBC system to make the Web Portal available (around 3-5 minutes).&lt;br /&gt;
&lt;br /&gt;
* From here, you can go to [[TSBC-SW:WebPortal:Initial Configuration|Web Portal Initial Configuration Guide]] to continue the installation.&lt;br /&gt;
&lt;br /&gt;
== Web Portal Initial Configuration ==&lt;br /&gt;
Click on the following link to pursue installation from the web portal:&lt;br /&gt;
[[TSBC-SW:WebPortal:Initial Configuration]]&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
* [[FreeSBC:Cloud:AWS_Installation_Troubleshooting_A|Installation troubleshooting]]&lt;br /&gt;
* [[FreeSBC:Cloud:Recovering_an_Elastic_IP_address|Recovering an Elastic IP address]]&lt;br /&gt;
[[Category:Revise on Major]]&lt;br /&gt;
&lt;br /&gt;
== External References ==&lt;br /&gt;
* [https://devops.profitbricks.com/tutorials/use-ssh-keys-with-putty-on-windows/#connect-to-server-with-private-key Accessing device with SSH and private key using putty]&lt;/div&gt;</summary>
		<author><name>Luc Morissette</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/Adding_Benchmarking_to_your_Routing_scripts</id>
		<title>Adding Benchmarking to your Routing scripts</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/Adding_Benchmarking_to_your_Routing_scripts"/>
				<updated>2021-03-31T12:27:23Z</updated>
		
		<summary type="html">&lt;p&gt;Luc Morissette: Updated the display function&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Adding benchmarking to any script}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;3&amp;quot;|This article applies to:&lt;br /&gt;
|'''Product'''&lt;br /&gt;
|'''Version'''&lt;br /&gt;
|-&lt;br /&gt;
|ProSBC&lt;br /&gt;
|3.1&lt;br /&gt;
|-&lt;br /&gt;
|Tmedia&lt;br /&gt;
|2.9, 2.10, 3.0, 3.2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Routing scripts need to be well designed to allow for maximum performance of a system.&amp;lt;br&amp;gt;&lt;br /&gt;
To help evaluating the performance of a script (or part of a script), you can use this benchmarking tool.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Three lines need to be added. &amp;lt;br&amp;gt;&lt;br /&gt;
At the start of the script:&amp;lt;br&amp;gt; &lt;br /&gt;
  require 'benchmark'&lt;br /&gt;
In the main class, before the function to evaluate:&amp;lt;br&amp;gt; &lt;br /&gt;
  # Start benchmarking&lt;br /&gt;
  bm = Benchmark.measure do&lt;br /&gt;
In the main class, after the function to evaluate:&amp;lt;br&amp;gt; &lt;br /&gt;
  end #End benchamrking  &lt;br /&gt;
  log_trace 3, &amp;quot;It took #{'%.6f' % bm.real} seconds to do this function&amp;quot;&lt;br /&gt;
This will print in the gateway application log the time it took to run this function.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Click here to know [[How_to_troubleshoot_call_routing#Using_the_applications_log_files|how to get the log files]]&lt;/div&gt;</summary>
		<author><name>Luc Morissette</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/Adding_Benchmarking_to_your_Routing_scripts</id>
		<title>Adding Benchmarking to your Routing scripts</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/Adding_Benchmarking_to_your_Routing_scripts"/>
				<updated>2021-03-31T12:25:40Z</updated>
		
		<summary type="html">&lt;p&gt;Luc Morissette: Added end in do loop&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Adding benchmarking to any script}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;3&amp;quot;|This article applies to:&lt;br /&gt;
|'''Product'''&lt;br /&gt;
|'''Version'''&lt;br /&gt;
|-&lt;br /&gt;
|ProSBC&lt;br /&gt;
|3.1&lt;br /&gt;
|-&lt;br /&gt;
|Tmedia&lt;br /&gt;
|2.9, 2.10, 3.0, 3.2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Routing scripts need to be well designed to allow for maximum performance of a system.&amp;lt;br&amp;gt;&lt;br /&gt;
To help evaluating the performance of a script (or part of a script), you can use this benchmarking tool.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Three lines need to be added. &amp;lt;br&amp;gt;&lt;br /&gt;
At the start of the script:&amp;lt;br&amp;gt; &lt;br /&gt;
  require 'benchmark'&lt;br /&gt;
In the main class, before the function to evaluate:&amp;lt;br&amp;gt; &lt;br /&gt;
  # Start benchmarking&lt;br /&gt;
  bm = Benchmark.measure do&lt;br /&gt;
In the main class, after the function to evaluate:&amp;lt;br&amp;gt; &lt;br /&gt;
  end #End benchamrking  &lt;br /&gt;
  log_trace 3, &amp;quot;It took #{bm.real.to_s[0..7]} seconds to do this function&amp;quot;&lt;br /&gt;
This will print in the gateway application log the time it took to run this function.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Click here to know [[How_to_troubleshoot_call_routing#Using_the_applications_log_files|how to get the log files]]&lt;/div&gt;</summary>
		<author><name>Luc Morissette</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/TMG:Change_Management_IP_Address</id>
		<title>TMG:Change Management IP Address</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/TMG:Change_Management_IP_Address"/>
				<updated>2021-03-24T15:35:05Z</updated>
		
		<summary type="html">&lt;p&gt;Luc Morissette: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article explains how to modify the management network interface of [[TMG800]], [[TMG3200]], and [[TMG7800|TMG7800-CTRL]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TMG800 and TMG7800-CTRL have MTMG0 and MGMT1 interface configured in bonding. Only one can be connected if management redundancy is not necessary.&amp;lt;br&amp;gt;&lt;br /&gt;
TMG3200 have MGMT0 interface. Redundant management interfaces can be configured after initial configuration.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Tmedia]] devices have a default management IP address of '''172.24.0.2'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To modify this default setting, the [[Tmedia]] is accessed through the serial port. See section '5.1 Connecting to the Serial Port' of the product [[Tmedia_Installation|installation guides]] for further information.&amp;lt;br&amp;gt;&lt;br /&gt;
TMG800 devices can also connect via the USB port.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To avoid modification of the configuration files using 'vim' or 'nano', which is not very user friendly; TelcoBridges created a shell script to simplify the network configuration of the [[Tmedia]].&lt;br /&gt;
&lt;br /&gt;
The script will allow you to:&lt;br /&gt;
* Change the IP address, subnet and gateway of the management port&lt;br /&gt;
* Change the Domain name servers (DNS) used by the internal host. &lt;br /&gt;
&lt;br /&gt;
== TMG shell command ==&lt;br /&gt;
&lt;br /&gt;
  tbchangeip&lt;br /&gt;
&lt;br /&gt;
== Modify static IP address ==&lt;br /&gt;
This example changes the IP address to a static address with no DNS server&lt;br /&gt;
&lt;br /&gt;
*Steps to modify mgmt0 from dhcp to static:&lt;br /&gt;
 Do you want to modify the network settings (enter 'help' for usage) ?[No]                   --&amp;gt; yes&lt;br /&gt;
 Do you want to modify mgmt0 ?[No]                                                           --&amp;gt; yes&lt;br /&gt;
 Select network mode (dhcp or static) ?[dhcp]                                                --&amp;gt; static&lt;br /&gt;
 Enter IP address ?[]                                                                        --&amp;gt; 10.0.0.126&lt;br /&gt;
 Enter network mask ?[]                                                                      --&amp;gt; 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
*Steps to modify the default gateway address (this is necessary to assign an IP address when in static mode.)&lt;br /&gt;
 Would you like to modify the default gateway address ?[No]                                  --&amp;gt; yes&lt;br /&gt;
 Enter default gateway ip address ?[]                                                        --&amp;gt; 10.0.0.1&lt;br /&gt;
&lt;br /&gt;
*Steps to remove the DNS configuration&lt;br /&gt;
 Would you like to modify the DNS configuration ?[No]                                        --&amp;gt; yes&lt;br /&gt;
 Would you like to reconfigure the DNS (enter 'remove' to erase dns) ?[No]                   --&amp;gt; remove&lt;br /&gt;
&lt;br /&gt;
*The script will show you the new configuration. Then you can acknowledge the changes.&lt;br /&gt;
 Do you want to save this new configuration ?[No]                                            --&amp;gt; yes&lt;br /&gt;
&lt;br /&gt;
*You can ask the script to restart the network service and apply the new configuration.&lt;br /&gt;
 Would you like to restart the network service now ?[No]                                     --&amp;gt; yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' The subnets 172.31.1.x, 172.16.x.x and 172.18.x.x are used by the Tmedia internal network.&amp;lt;br&amp;gt;&lt;br /&gt;
If the default subnets 172.31.1.x, 172.16.x.x and 172.18.x.x are used in your network, make sure these IPs modified in the initial configuration.&lt;/div&gt;</summary>
		<author><name>Luc Morissette</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/TMG:Change_Management_IP_Address</id>
		<title>TMG:Change Management IP Address</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/TMG:Change_Management_IP_Address"/>
				<updated>2021-03-24T15:32:39Z</updated>
		
		<summary type="html">&lt;p&gt;Luc Morissette: default unit is shipped with static IP, simplified the page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article explains how to modify the management network interface of [[TMG800]], [[TMG3200]], and [[TMG7800-CTRL]], and the control ports of the TMG7800-CTRL. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TMG800 and TMG7800-CTRL have MTMG0 and MGMT1 interface configured in bonding. Only one can be connected if management redundancy is not necessary.&amp;lt;br&amp;gt;&lt;br /&gt;
TMG3200 have MGMT0 interface. Redundant management interfaces can be configured after initial configuration.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Tmedia]] devices have a default management IP address of 172.24.0.2&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To modify this default setting, the [[Tmedia]] is accessed through the serial port. See section '5.1 Connecting to the Serial Port' of the product [[Tmedia_Installation|installation guides]] for further information.&amp;lt;br&amp;gt;&lt;br /&gt;
TMG800 devices can also connect via the USB port.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To avoid modification of the configuration files using 'vim' or 'nano', which is not very user friendly; TelcoBridges created a shell script to simplify the network configuration of the [[Tmedia]].&lt;br /&gt;
&lt;br /&gt;
The script will allow you to:&lt;br /&gt;
* Change the IP address, subnet and gateway of the management port&lt;br /&gt;
* Change the Domain name servers (DNS) used by the internal host. &lt;br /&gt;
&lt;br /&gt;
== TMG shell command ==&lt;br /&gt;
&lt;br /&gt;
  tbchangeip&lt;br /&gt;
&lt;br /&gt;
== Modify static IP address ==&lt;br /&gt;
This example changes the IP address to a static address with no DNS server&lt;br /&gt;
&lt;br /&gt;
*Steps to modify mgmt0 from dhcp to static:&lt;br /&gt;
 Do you want to modify the network settings (enter 'help' for usage) ?[No]                   --&amp;gt; yes&lt;br /&gt;
 Do you want to modify mgmt0 ?[No]                                                           --&amp;gt; yes&lt;br /&gt;
 Select network mode (dhcp or static) ?[dhcp]                                                --&amp;gt; static&lt;br /&gt;
 Enter IP address ?[]                                                                        --&amp;gt; 10.0.0.126&lt;br /&gt;
 Enter network mask ?[]                                                                      --&amp;gt; 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
*Steps to modify the default gateway address (this is necessary to assign an IP address when in static mode.)&lt;br /&gt;
 Would you like to modify the default gateway address ?[No]                                  --&amp;gt; yes&lt;br /&gt;
 Enter default gateway ip address ?[]                                                        --&amp;gt; 10.0.0.1&lt;br /&gt;
&lt;br /&gt;
*Steps to remove the DNS configuration&lt;br /&gt;
 Would you like to modify the DNS configuration ?[No]                                        --&amp;gt; yes&lt;br /&gt;
 Would you like to reconfigure the DNS (enter 'remove' to erase dns) ?[No]                   --&amp;gt; remove&lt;br /&gt;
&lt;br /&gt;
*The script will show you the new configuration. Then you can acknowledge the changes.&lt;br /&gt;
 Do you want to save this new configuration ?[No]                                            --&amp;gt; yes&lt;br /&gt;
&lt;br /&gt;
*You can ask the script to restart the network service and apply the new configuration.&lt;br /&gt;
 Would you like to restart the network service now ?[No]                                     --&amp;gt; yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' The subnets 172.31.1.x, 172.16.x.x and 172.18.x.x are used by the Tmedia internal network.&amp;lt;br&amp;gt;&lt;br /&gt;
If the default subnets 172.31.1.x, 172.16.x.x and 172.18.x.x are used in your network, make sure these IPs modified in the initial configuration.&lt;/div&gt;</summary>
		<author><name>Luc Morissette</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/ProSBC:SHAKEN</id>
		<title>ProSBC:SHAKEN</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/ProSBC:SHAKEN"/>
				<updated>2021-03-24T13:03:42Z</updated>
		
		<summary type="html">&lt;p&gt;Luc Morissette: /* Disable Legacy Redirection Mode */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:ProSBC Configuration for STIR/SHAKEN with Transnexus ClearIP service}}&lt;br /&gt;
 &lt;br /&gt;
=Introduction=&lt;br /&gt;
This document provides instructions on how to configure ProSBC to operate with the TransNexus ClearIP server.  ClearIP is a SIP redirect server that provides advanced Least Cost Routing (LCR), fraud control and STIR (Secure Telephony Identity Revisited) / SHAKEN (Secure Handling of Asserted information using toKENs) features. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ProSBC 3.0.90 or a later version is needed to support secure caller ID using STIR/SHAKEN.&lt;br /&gt;
&lt;br /&gt;
'''Note''': STIR/SHAKEN is only supported on ProSBC.&lt;br /&gt;
&lt;br /&gt;
=Network Diagram and Call Scenarios=&lt;br /&gt;
This section provides the simplified network diagram containing two telephone service providers, and the call scenarios.&lt;br /&gt;
 [[Image:FreeSBC OSPrey Diagram.png|800px]]&lt;br /&gt;
# Source of ServiceProvider-A sends a call to ProSBC-A.&lt;br /&gt;
# ProSBC-A forwards the call to ClearIP-A, which is a SIP redirect server providing LCR, fraud control, SHAKEN AS (Authentication Service) and other features.&lt;br /&gt;
# ClearIP-A performs LCR, fraud control and SHAKEN AS logic, then sends one of the following responses to ProSBC-A&lt;br /&gt;
##SIP 404 Not Found: No fraud or SHAKEN AS error is detected, and routing information is unavailable.&lt;br /&gt;
##SIP 603 Decline: Fraud is detected or SHAKEN AS request fails.&lt;br /&gt;
##SIP 3xx Redirect: Destination information (ProSBC-B of ServiceProvider-B) and a SIP Identity header including a digitally signed token that includes the calling number (secure caller ID).&lt;br /&gt;
#ProSBC-A processes the response&lt;br /&gt;
##SIP 404 Not Found: ProSBC-A tries the next destination configured in its local routing policy.&lt;br /&gt;
##SIP 603 Decline: Proxies the response back to Source to block the call.&lt;br /&gt;
##SIP 3xx Redirect: Forwards the call to ProSBC-B with the Identity header.&lt;br /&gt;
#ProSBC-B forwards the call to ClearIP-B, which is a SIP redirect server providing fraud control, SHAKEN VS (Verification Service) and other features.&lt;br /&gt;
#ClearIP-B performs fraud control and SHAKEN VS logic, and then sends one of the following SIP responses to ProSBC-B.&lt;br /&gt;
##SIP 404 Not Found: No fraud or SHAKEN VS error is detected, and routing information is unavailable.&lt;br /&gt;
##SIP 603 Decline: Fraud is detected or SHAKEN VS request fails.&lt;br /&gt;
##SIP 3xx Redirect: Destination information (Destination of ServiceProvider-B) is attached.&lt;br /&gt;
#ProSBC-B processes the response&lt;br /&gt;
##SIP 404 Not Found: ProSBC-B tries the next destination configured in its local routing policy.&lt;br /&gt;
##SIP 603 Decline: Proxies the response back to ProSBC-A to block the call.&lt;br /&gt;
##SIP 3xx Redirect: Forwards the call to Destination.&lt;br /&gt;
Note: A variant scenario is that Destination of ServiceProvider-B is configured as the next destination in the local routing policy of ServiceProvider-B, ClearIP-B returns SIP 404 Not Found, then ProSBC-B does failover to Destination.&lt;br /&gt;
=ProSBC Configuration=&lt;br /&gt;
This section provides ProSBC configuration for the solution.&lt;br /&gt;
==Configure Routing Script==&lt;br /&gt;
ProSBC is configured to use routing script to handle SIP 3xx Redirect response.&lt;br /&gt;
:1. Enable routing script&lt;br /&gt;
 Gateway-&amp;gt;Use script&lt;br /&gt;
:2. Load routing scripts&lt;br /&gt;
 Gateway-&amp;gt;Routes-&amp;gt;Routing Script-&amp;gt;Import Script File&lt;br /&gt;
    File-&amp;gt;txnx_shaken.rb&lt;br /&gt;
    ScriptType-&amp;gt;TxNx&lt;br /&gt;
    Load on startup-&amp;gt;unchecked&lt;br /&gt;
 Gateway-&amp;gt;Routes-&amp;gt;Routing Script-&amp;gt;Import Script File&lt;br /&gt;
    File-&amp;gt;txnx_routing.rb&lt;br /&gt;
    ScriptType-&amp;gt;Txnx&lt;br /&gt;
    Load on startup-&amp;gt;checked&lt;br /&gt;
&lt;br /&gt;
[[:File:Txnx_scripts.zip|Click here to download txnx_shaken.rb and txnx_routing.rb Routing Scripts]]&lt;br /&gt;
&lt;br /&gt;
==Configure NAP (Network Access Point)==&lt;br /&gt;
ClearIP-A and ClearIP-B are configured as NAP on ProSBC-A and ProSBC-B respectively. A general SIP endpoint, NAP-ANY, is configured on both ProSBC’s.&lt;br /&gt;
* On ProSBC-A&lt;br /&gt;
 NAPs-&amp;gt;Create New NAP&lt;br /&gt;
     Name-&amp;gt;NAP_ClearIP_A&lt;br /&gt;
     Proxy address-&amp;gt;x.x.x.x (IP of ClearIP-A)&lt;br /&gt;
 NAPs-&amp;gt;Create New NAP&lt;br /&gt;
     Name-&amp;gt;NAP_ANY&lt;br /&gt;
 Use Proxy Address-&amp;gt;Unchecked&lt;br /&gt;
* On ProSBC-B&lt;br /&gt;
 NAPs-&amp;gt;Create New NAP&lt;br /&gt;
     Name-&amp;gt;NAP_ClearIP_B&lt;br /&gt;
     Proxy address-&amp;gt;x.x.x.x (IP of ClearIP-B)&lt;br /&gt;
 NAPs-&amp;gt;Create New NAP&lt;br /&gt;
     Name-&amp;gt;NAP_ANY&lt;br /&gt;
     Use Proxy Address-&amp;gt;Unchecked&lt;br /&gt;
Note: To configure local routing policy with other destination NAPs, ClearIP NAPs should have the highest priority alone all destination NAPs.&lt;br /&gt;
==Configure NAP Column==&lt;br /&gt;
NAP column is used to mark ClearIP as redirect server.&lt;br /&gt;
 Gateway-&amp;gt;Routes-&amp;gt;NAP Column-&amp;gt;Create New NAP Column&lt;br /&gt;
     Name: server_type &lt;br /&gt;
     Type Attributes: NORMAL|REDIRECT&lt;br /&gt;
     Default: NORMAL&lt;br /&gt;
*Both NAP_ClearIP-A and NAP_ClearIP-B are configured with NAP column server_type REDIRECT.&lt;br /&gt;
*NAP_ANY are configured with NAP column server_type NORMAL.&lt;br /&gt;
==Configure Static Route==&lt;br /&gt;
A static route to NAP_ANY should be configured on both ProSBC’s to allow ProSBC to try the destination in the SIP 3xx response.&lt;br /&gt;
 Gateway-&amp;gt;Routes-&amp;gt;Create New Static Route&lt;br /&gt;
     Name-&amp;gt;ToEndpoints&lt;br /&gt;
     NAP-&amp;gt;any&lt;br /&gt;
     Remapped_NAP-&amp;gt;NAP_ANY&lt;br /&gt;
==Enable SIP Custom Header==&lt;br /&gt;
Enable SIP Custom Headers must be checked to pass SHAKEN Identity header and several other headers used by the solution.&lt;br /&gt;
 Profiles-&amp;gt;SIP-&amp;gt;Enable SIP Custom Headers&lt;br /&gt;
==Disable Legacy Redirection Mode==&lt;br /&gt;
Use legacy redirection mode must be unchecked to allow ProSBC to use routing script to handle SIP 3xx response.&lt;br /&gt;
 SIP-&amp;gt;Editing SIP Configuration-&amp;gt;Header Parameters-&amp;gt;Use legacy redirection mode [uncheck]&lt;br /&gt;
&lt;br /&gt;
==Configure Route Retry Action==&lt;br /&gt;
Route retry action of 3xx, 404 and 603 must be configured to allow ProSBC to perform failover, fraud control and SHAKEN AS/VS request.&lt;br /&gt;
 Profiles-&amp;gt;Edit Reason Cause Mapping&lt;br /&gt;
     300 Multiple Choices-&amp;gt;Route retry action-&amp;gt;Process call routing&lt;br /&gt;
     302 Moved temporarily-&amp;gt;Route retry action-&amp;gt;Process call routing&lt;br /&gt;
     404 Not found-&amp;gt;Route retry action-&amp;gt;Continue call&lt;br /&gt;
     603 Decline-&amp;gt;Route retry action-&amp;gt;Stop call&lt;br /&gt;
Notes:&lt;br /&gt;
*The default route retry action of 404 is Stop call.&lt;br /&gt;
*The default route retry action of 603 is Continue call.&lt;/div&gt;</summary>
		<author><name>Luc Morissette</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/Manual_Database_Backup</id>
		<title>Manual Database Backup</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/Manual_Database_Backup"/>
				<updated>2021-03-19T13:17:30Z</updated>
		
		<summary type="html">&lt;p&gt;Luc Morissette: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;To backup the MySQL database, use the following commands (example is for major version 3.1): &lt;br /&gt;
&amp;lt;pre&amp;gt;mysqldump -u tbdb -ptbdbpw --opt toolpack_3_1 &amp;amp;gt; toolpack_3_1_bk.sql&amp;lt;/pre&amp;gt; &lt;br /&gt;
Then, you need to save the &amp;quot;toolpack_3_1_bk.sql&amp;quot; file in a safe place. &lt;br /&gt;
&lt;br /&gt;
You can recover the database this way: &lt;br /&gt;
&amp;lt;pre&amp;gt;mysql -u tbdb -ptbdbpw toolpack_3_1 &amp;amp;lt; toolpack_3_1_bk.sql&amp;lt;/pre&amp;gt; &lt;br /&gt;
This procedure can also be used to make copies of similar configurations from one Toolpack system to another. The Serial Number of the Tmedia used must be updated after the new database is in place using the Migration tab. If the tab is not present, you can do it manually (contact support)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
For scheduled backups, see [[Scheduled Database Backup]]&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Here are other useful mysql commands:&lt;br /&gt;
&amp;lt;pre&amp;gt;mysql –u tbdb –p tbdbpw&lt;br /&gt;
use toolpack_3_1;&lt;br /&gt;
show tables;&lt;br /&gt;
SELECT * from system_infos;&lt;br /&gt;
SELECT * from mysql.user;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
To work with the MySQL service (CentOS 5):&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;service mysqld stop&lt;br /&gt;
service mysqld start&lt;br /&gt;
ps -ef | grep mysqld&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
To work with the MySQL service (CentOS 7):&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt; Enable and start MariaDB&lt;br /&gt;
 systemctl enable mariadb&lt;br /&gt;
 systemctl start mariadb&lt;/div&gt;</summary>
		<author><name>Luc Morissette</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/Manual_Database_Backup</id>
		<title>Manual Database Backup</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/Manual_Database_Backup"/>
				<updated>2021-03-19T13:16:21Z</updated>
		
		<summary type="html">&lt;p&gt;Luc Morissette: Added CentOS 7 commands&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;To backup the MySQL database, use the following commands (example is for major version 3.1): &lt;br /&gt;
&amp;lt;pre&amp;gt;mysqldump -u tbdb -ptbdbpw --opt toolpack_3_1 &amp;amp;gt; toolpack_3_1_bk.sql&amp;lt;/pre&amp;gt; &lt;br /&gt;
Then, you need to save the &amp;quot;toolpack_3_1_bk.sql&amp;quot; file in a safe place. &lt;br /&gt;
&lt;br /&gt;
You can recover the database this way: &lt;br /&gt;
&amp;lt;pre&amp;gt;mysql -u tbdb -ptbdbpw toolpack_3_1 &amp;amp;lt; toolpack_3_1_bk.sql&amp;lt;/pre&amp;gt; &lt;br /&gt;
This procedure can also be used to make copies of similar configurations from one Toolpack system to another. The Serial Number of the Tmedia used must be updated after the new database is in place using the Migration tab. If the tab is not present, you can do it manually (contact support)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
For scheduled backups, see [[Scheduled Database Backup]]&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Here are other useful mysql commands (CentOS 5):&lt;br /&gt;
&amp;lt;pre&amp;gt;mysql –u tbdb –p tbdbpw&lt;br /&gt;
use toolpack_3_1;&lt;br /&gt;
show tables;&lt;br /&gt;
SELECT * from system_infos;&lt;br /&gt;
SELECT * from mysql.user;&amp;lt;/pre&amp;gt;&lt;br /&gt;
And to work with the MySQL service:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;service mysqld stop&lt;br /&gt;
service mysqld start&lt;br /&gt;
ps -ef | grep mysqld&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here are other useful mysql commands (CentOS 7):&lt;br /&gt;
&amp;lt;br&amp;gt; Enable and start MariaDB&lt;br /&gt;
 systemctl enable mariadb&lt;br /&gt;
 systemctl start mariadb&lt;/div&gt;</summary>
		<author><name>Luc Morissette</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/Manual_Database_Backup</id>
		<title>Manual Database Backup</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/Manual_Database_Backup"/>
				<updated>2021-03-19T13:14:33Z</updated>
		
		<summary type="html">&lt;p&gt;Luc Morissette: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;To backup the MySQL database, use the following commands (example is for major version 3.1): &lt;br /&gt;
&amp;lt;pre&amp;gt;mysqldump -u tbdb -ptbdbpw --opt toolpack_3_1 &amp;amp;gt; toolpack_3_1_bk.sql&amp;lt;/pre&amp;gt; &lt;br /&gt;
Then, you need to save the &amp;quot;toolpack_3_1_bk.sql&amp;quot; file in a safe place. &lt;br /&gt;
&lt;br /&gt;
You can recover the database this way: &lt;br /&gt;
&amp;lt;pre&amp;gt;mysql -u tbdb -ptbdbpw toolpack_3_1 &amp;amp;lt; toolpack_3_1_bk.sql&amp;lt;/pre&amp;gt; &lt;br /&gt;
This procedure can also be used to make copies of similar configurations from one Toolpack system to another. The Serial Number of the Tmedia used must be updated after the new database is in place using the Migration tab. If the tab is not present, you can do it manually (contact support)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
For scheduled backups, see [[Scheduled Database Backup]]&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Here are other useful mysql commands (CentOS 5):&lt;br /&gt;
&amp;lt;pre&amp;gt;mysql –u tbdb –p tbdbpw&lt;br /&gt;
use toolpack_3_1;&lt;br /&gt;
show tables;&lt;br /&gt;
SELECT * from system_infos;&lt;br /&gt;
SELECT * from mysql.user;&amp;lt;/pre&amp;gt;&lt;br /&gt;
And to work with the MySQL service:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;service mysqld stop&lt;br /&gt;
service mysqld start&lt;br /&gt;
ps -ef | grep mysqld&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luc Morissette</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/Manual_Database_Backup</id>
		<title>Manual Database Backup</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/Manual_Database_Backup"/>
				<updated>2021-03-19T13:14:21Z</updated>
		
		<summary type="html">&lt;p&gt;Luc Morissette: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;To backup the MySQL database, use the following commands (example is for major version 3.1): &lt;br /&gt;
&amp;lt;pre&amp;gt;mysqldump -u tbdb -ptbdbpw --opt toolpack_3_1 &amp;amp;gt; toolpack_3_1_bk.sql&amp;lt;/pre&amp;gt; &lt;br /&gt;
Then, you need to save the &amp;quot;toolpack_3_1_bk.sql&amp;quot; file in a safe place. &lt;br /&gt;
&lt;br /&gt;
You can recover the database this way: &lt;br /&gt;
&amp;lt;pre&amp;gt;mysql -u tbdb -ptbdbpw toolpack_3_1 &amp;amp;lt; toolpack_3_1_bk.sql&amp;lt;/pre&amp;gt; &lt;br /&gt;
This procedure can also be used to make copies of similar configurations from one Toolpack system to another. The Serial Number of the Tmedia used must be updated after the new database is in place using the Migration tab. If the tab is not present, you can do it manually (contact support)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
For scheduled backups, see [[Scheduled Database Backup]]&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Here are other useful mysql commands (CentOS 5):&lt;br /&gt;
&amp;lt;pre&amp;gt;mysql –u tbdb –p tbdbpw&lt;br /&gt;
use toolpack_3_1;&lt;br /&gt;
show tables;&lt;br /&gt;
SELECT * from system_infos;&lt;br /&gt;
SELECT * from mysql.user;&amp;lt;/pre&amp;gt;&lt;br /&gt;
And to work with the MySQL service:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;service mysqld stop&lt;br /&gt;
service mysqld start&lt;br /&gt;
ps -ef | grep mysqld&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luc Morissette</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/Manual_Database_Backup</id>
		<title>Manual Database Backup</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/Manual_Database_Backup"/>
				<updated>2021-03-19T13:14:05Z</updated>
		
		<summary type="html">&lt;p&gt;Luc Morissette: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;To backup the MySQL database, use the following commands (example is for major version 3.1): &lt;br /&gt;
&amp;lt;pre&amp;gt;mysqldump -u tbdb -ptbdbpw --opt toolpack_3_1 &amp;amp;gt; toolpack_3_1_bk.sql&amp;lt;/pre&amp;gt; &lt;br /&gt;
Then, you need to save the &amp;quot;toolpack_3_1_bk.sql&amp;quot; file in a safe place. &lt;br /&gt;
&lt;br /&gt;
You can recover the database this way: &lt;br /&gt;
&amp;lt;pre&amp;gt;mysql -u tbdb -ptbdbpw toolpack_3_1 &amp;amp;lt; toolpack_3_1_bk.sql&amp;lt;/pre&amp;gt; &lt;br /&gt;
This procedure can also be used to make copies of similar configurations from one Toolpack system to another. The Serial Number of the Tmedia used must be updated after the new database is in place using the Migration tab. If the tab is not present, you can do it manually (contact support)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
For scheduled backups, see [[Scheduled Database Backup]]&lt;br /&gt;
&lt;br /&gt;
Here are other useful mysql commands (CentOS 5):&lt;br /&gt;
&amp;lt;pre&amp;gt;mysql –u tbdb –p tbdbpw&lt;br /&gt;
use toolpack_3_1;&lt;br /&gt;
show tables;&lt;br /&gt;
SELECT * from system_infos;&lt;br /&gt;
SELECT * from mysql.user;&amp;lt;/pre&amp;gt;&lt;br /&gt;
And to work with the MySQL service:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;service mysqld stop&lt;br /&gt;
service mysqld start&lt;br /&gt;
ps -ef | grep mysqld&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luc Morissette</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/Manual_Database_Backup</id>
		<title>Manual Database Backup</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/Manual_Database_Backup"/>
				<updated>2021-03-19T13:13:24Z</updated>
		
		<summary type="html">&lt;p&gt;Luc Morissette: Added Scheduled database backups&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;To backup the MySQL database, use the following commands (example is for major version 3.1): &lt;br /&gt;
&amp;lt;pre&amp;gt;mysqldump -u tbdb -ptbdbpw --opt toolpack_3_1 &amp;amp;gt; toolpack_3_1_bk.sql&amp;lt;/pre&amp;gt; &lt;br /&gt;
Then, you need to save the &amp;quot;toolpack_3_1_bk.sql&amp;quot; file in a safe place. &lt;br /&gt;
&lt;br /&gt;
You can recover the database this way: &lt;br /&gt;
&amp;lt;pre&amp;gt;mysql -u tbdb -ptbdbpw toolpack_3_1 &amp;amp;lt; toolpack_3_1_bk.sql&amp;lt;/pre&amp;gt; &lt;br /&gt;
This procedure can also be used to make copies of similar configurations from one Toolpack system to another. The Serial Number of the Tmedia used must be updated after the new database is in place using the Migration tab. If the tab is not present, you can do it manually (contact support)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Here are other useful mysql commands:&lt;br /&gt;
&amp;lt;pre&amp;gt;mysql –u tbdb –p tbdbpw&lt;br /&gt;
use toolpack_3_1;&lt;br /&gt;
show tables;&lt;br /&gt;
SELECT * from system_infos;&lt;br /&gt;
SELECT * from mysql.user;&amp;lt;/pre&amp;gt;&lt;br /&gt;
And to work with the MySQL service:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;service mysqld stop&lt;br /&gt;
service mysqld start&lt;br /&gt;
ps -ef | grep mysqld&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
For scheduled backups, see [[Scheduled Database Backup]]&lt;/div&gt;</summary>
		<author><name>Luc Morissette</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/Manual_Database_Backup</id>
		<title>Manual Database Backup</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/Manual_Database_Backup"/>
				<updated>2021-03-19T13:12:03Z</updated>
		
		<summary type="html">&lt;p&gt;Luc Morissette: Updated for new format of database name&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;To backup the MySQL database, use the following commands (example is for major version 3.1): &lt;br /&gt;
&amp;lt;pre&amp;gt;mysqldump -u tbdb -ptbdbpw --opt toolpack_3_1 &amp;amp;gt; toolpack_3_1_bk.sql&amp;lt;/pre&amp;gt; &lt;br /&gt;
Then, you need to save the &amp;quot;toolpack_3_1_bk.sql&amp;quot; file in a safe place. &lt;br /&gt;
&lt;br /&gt;
You can recover the database this way: &lt;br /&gt;
&amp;lt;pre&amp;gt;mysql -u tbdb -ptbdbpw toolpack_3_1 &amp;amp;lt; toolpack_3_1_bk.sql&amp;lt;/pre&amp;gt; &lt;br /&gt;
This procedure can also be used to make copies of similar configurations from one Toolpack system to another. The Serial Number of the Tmedia used must be updated after the new database is in place using the Migration tab. If the tab is not present, you can do it manually (contact support)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Here are other useful mysql commands:&lt;br /&gt;
&amp;lt;pre&amp;gt;mysql –u tbdb –p tbdbpw&lt;br /&gt;
use toolpack_3_1;&lt;br /&gt;
show tables;&lt;br /&gt;
SELECT * from system_infos;&lt;br /&gt;
SELECT * from mysql.user;&amp;lt;/pre&amp;gt;&lt;br /&gt;
And to work with the MySQL service:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;service mysqld stop&lt;br /&gt;
service mysqld start&lt;br /&gt;
ps -ef | grep mysqld&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luc Morissette</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/SIGTRAN</id>
		<title>SIGTRAN</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/SIGTRAN"/>
				<updated>2021-03-15T19:32:00Z</updated>
		
		<summary type="html">&lt;p&gt;Luc Morissette: Removed link to SUA&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;SIGTRAN refers to the ability to provide [[SS7]] and [[ISDN]] signaling over an IP network.&lt;br /&gt;
&lt;br /&gt;
SIGTRAN is the name given to an Internet Engineering Task Force (IETF) working group that produces specifications for a family of protocols that provide reliable datagram service and user layer adaptations for SS7 and ISDN communications protocols. SIGTRAN is an extension of the SS7 protocol family. It supports the same application and call management paradigms as SS7 but uses an IP transport called Stream Control Transmission Protocol (SCTP) as its underlying transport vehicle. Indeed, the most significant protocol defined by the SIGTRAN group was SCTP, which is used to carry PSTN signaling over IP.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TelcoBridges and SIGTRAN ==&lt;br /&gt;
&lt;br /&gt;
TelcoBridges provides support for SIGTRAN starting from [[Web_Portal_Tutorial_Guide_v2.4|Toolpack v2.4]]. TelcoBridges' SIGTRAN implementation provides support for [[SCTP]], [[M2UA]], [[M2PA]], [[M3UA]] and [[IUA]]. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Among the features of TelcoBridges' SIGTRAN implementation are the following:&lt;br /&gt;
*M2PA with 64 links (termination)&lt;br /&gt;
*M2UA in SG and ASP mode (relay)&lt;br /&gt;
*M3UA in SG, ASP and IPSP mode (relay)&lt;br /&gt;
*M3UA with load distribution features similar to the [[MTP3 Layer|MTP3]] stack (termination)&lt;br /&gt;
&lt;br /&gt;
=== Maximum Capacity ===&lt;br /&gt;
{| cellpadding=&amp;quot;5&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Model !!SCTP links!!SCTP streams/links      !!M2PA links!!M2UA links!!M3UA links!!M3UA routing context&lt;br /&gt;
|- &lt;br /&gt;
| TMG800 || 64      || 64 in&amp;amp;out || 64       || 64       || 64       || 60&lt;br /&gt;
|-&lt;br /&gt;
| TMG3200|| 64      || 64 in&amp;amp;out || 64       || 64       || 64       || 60&lt;br /&gt;
|-&lt;br /&gt;
| TMG7800|| 1024&amp;lt;br/&amp;gt;(64/Tmedia) || 64 in&amp;amp;out || 512&amp;lt;br/&amp;gt;(64/Tmedia) || 1024&amp;lt;br/&amp;gt;(64/Tmedia)     || 64       || 60 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Standard references:&lt;br /&gt;
*SCTP&lt;br /&gt;
&lt;br /&gt;
:RFC 4960, September 2007&lt;br /&gt;
&lt;br /&gt;
*M3UA&lt;br /&gt;
&lt;br /&gt;
:RFC 4666, IETF&lt;br /&gt;
&lt;br /&gt;
:M3UA, Implementation Guide, IETF, 2002&lt;br /&gt;
&lt;br /&gt;
*M2UA&lt;br /&gt;
&lt;br /&gt;
:SS7 MTP2-User Adaptation Layer, RFC 3331, IETF&lt;br /&gt;
&lt;br /&gt;
*M2PA&lt;br /&gt;
&lt;br /&gt;
:RFC 4165, IETF&lt;br /&gt;
&lt;br /&gt;
*IUA&lt;br /&gt;
&lt;br /&gt;
:IETF RFC 5133 ISDN Q.921 User Adaptation Layer, December 2007&lt;br /&gt;
&lt;br /&gt;
:ETSI TS 102 332 V1.1.1 ISDN Q.921 User Adaptation Layer&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
*[[Toolpack:Protocol_Stack_Settings_D|Web Portal v3.0: SIGTRAN Configuration]]&lt;br /&gt;
*[[Toolpack:Protocol_Stack_Settings_C|Web Portal v2.10: SIGTRAN Configuration]]&lt;br /&gt;
*[[Toolpack:Protocol_Stack_Settings_B|Web Portal v2.9: SIGTRAN Configuration]]&lt;br /&gt;
*[[Toolpack:Protocol_Stack_Settings_A|Web Portal v2.8: SIGTRAN Configuration]]&lt;br /&gt;
*[[Web_Portal_Tutorial_Guide_v2.7#M2PA-MTP3-ISUP|Web Portal v2.7: SIGTRAN Configuration]]&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; data-collapsetext=&amp;quot;other versions&amp;quot; data-expandtext=&amp;quot;Click here for other versions&amp;quot; style=&amp;quot;width: 400px;&amp;quot;&amp;gt;&lt;br /&gt;
*[[Web_Portal_Tutorial_Guide_v2.6#M2PA-MTP3-ISUP|Web Portal v2.6: SIGTRAN Configuration]]&lt;br /&gt;
*[[Web_Portal_Tutorial_Guide_v2.5#SIGTRAN Application Scenarios|Web Portal v2.5: SIGTRAN Application Scenarios]]&lt;br /&gt;
*[[Web_Portal_Tutorial_Guide_v2.4#SIGTRAN Application Scenarios|Web Portal v2.4: SIGTRAN Application Scenarios]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
*[http://en.wikipedia.org/wiki/SIGTRAN Wikipedia article]&lt;br /&gt;
*[https://www.slideshare.net/krsgowri/sigtran-13102919 Introduction to SIGTRAN, by Jim Darroch]&lt;br /&gt;
*[[SIGTRAN pricing model 2011|Pricing model (TelcoBridges)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category:Glossary]] &lt;br /&gt;
[[Category:Revise on Major]]&lt;/div&gt;</summary>
		<author><name>Luc Morissette</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/Toolpack_Installation:Change_hostname</id>
		<title>Toolpack Installation:Change hostname</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/Toolpack_Installation:Change_hostname"/>
				<updated>2021-03-11T17:17:02Z</updated>
		
		<summary type="html">&lt;p&gt;Luc Morissette: Formatting changes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Change Hostname}}&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
This procedure applies to [[TMG800]], [[TMG3200]], [[TMG7800]] and [[ProSBC]] with static IP for management interfaces. &amp;lt;br&amp;gt;&lt;br /&gt;
Requires version 2.9 and above &amp;lt;br&amp;gt;&lt;br /&gt;
'''Note''': For [[ProSBC]], this will require a license update. Make sure you inform the [[Support:Contacting_TelcoBridges_technical_support|Support]] team that this procedure will be done. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CentOS 7 procedure ==&lt;br /&gt;
*[[Accessing_Device#SSH|ssh]] to the management interface&lt;br /&gt;
*To view current hostname:&lt;br /&gt;
 hostnamectl&lt;br /&gt;
*To update the hostname:&lt;br /&gt;
 hostnamectl  set-hostname   NewHostName&lt;br /&gt;
*To update the /etc/hosts file:&lt;br /&gt;
 vim /etc/hosts&lt;br /&gt;
Replace the hostnames in the file&lt;br /&gt;
*Reboot server:&lt;br /&gt;
 shutdown -r now&lt;br /&gt;
*After reboot verify if everything is ok:&lt;br /&gt;
 hostnamectl&lt;br /&gt;
 cat /etc/hosts&lt;br /&gt;
&lt;br /&gt;
=== ProSBC license ===&lt;br /&gt;
For [[ProSBC]], you can then update the license: [[Toolpack:Retreiving_a_License_TSBC_A|Update ProSBC license]]&lt;br /&gt;
&lt;br /&gt;
== CentOS 5 procedure ==&lt;br /&gt;
*[[Accessing_Device#SSH|ssh]] to the management interface&lt;br /&gt;
*To view current hostname:&lt;br /&gt;
 hostname&lt;br /&gt;
*To update the hostname:&lt;br /&gt;
 hostname NewHostName&lt;br /&gt;
*Reboot server:&lt;br /&gt;
 shutdown -r now&lt;br /&gt;
&lt;br /&gt;
Note: DO NOT change the hostname via webportal.&lt;/div&gt;</summary>
		<author><name>Luc Morissette</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/Toolpack_Installation:Change_hostname</id>
		<title>Toolpack Installation:Change hostname</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/Toolpack_Installation:Change_hostname"/>
				<updated>2021-03-11T17:14:14Z</updated>
		
		<summary type="html">&lt;p&gt;Luc Morissette: Added the license update section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Change Hostname}}&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
This procedure applies to TMG800, TMG3200, TMG7800 and ProSBC with static IP for management interfaces. &amp;lt;br&amp;gt;&lt;br /&gt;
Requires version 2.9 and above &amp;lt;br&amp;gt;&lt;br /&gt;
For ProSBC, this will require a license update. Make sure you inform the support team that this procedure will be done. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CentOS 7 procedure ==&lt;br /&gt;
*[[Accessing_Device#SSH|ssh]] to the management interface&lt;br /&gt;
*To view current hostname:&lt;br /&gt;
 hostnamectl&lt;br /&gt;
*To update the hostname:&lt;br /&gt;
 hostnamectl  set-hostname   NewHostName&lt;br /&gt;
*To update the /etc/hosts file:&lt;br /&gt;
 vim /etc/hosts&lt;br /&gt;
Replace the hostnames in the file&lt;br /&gt;
*Reboot server:&lt;br /&gt;
 shutdown -r now&lt;br /&gt;
*After reboot verify if everything is ok:&lt;br /&gt;
 hostnamectl&lt;br /&gt;
 cat /etc/hosts&lt;br /&gt;
&lt;br /&gt;
=== ProSBC license ===&lt;br /&gt;
After doing the procedure, you need to contact [[Support:Contacting_TelcoBridges_technical_support|Support]] to modify the license with the new hostname.&amp;lt;br&amp;gt;&lt;br /&gt;
Then, you can update the license: [[Toolpack:Retreiving_a_License_TSBC_A|Update ProSBC license]]&lt;br /&gt;
&lt;br /&gt;
== CentOS 5 procedure ==&lt;br /&gt;
*[[Accessing_Device#SSH|ssh]] to the management interface&lt;br /&gt;
*To view current hostname:&lt;br /&gt;
 hostname&lt;br /&gt;
*To update the hostname:&lt;br /&gt;
 hostname NewHostName&lt;br /&gt;
*Reboot server:&lt;br /&gt;
 shutdown -r now&lt;br /&gt;
&lt;br /&gt;
Note: DO NOT change the hostname via webportal.&lt;/div&gt;</summary>
		<author><name>Luc Morissette</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/Toolpack_Installation:Change_hostname</id>
		<title>Toolpack Installation:Change hostname</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/Toolpack_Installation:Change_hostname"/>
				<updated>2021-03-11T17:08:33Z</updated>
		
		<summary type="html">&lt;p&gt;Luc Morissette: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Change Hostname}}&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
This procedure applies to TMG800, TMG3200, TMG7800 and ProSBC with static IP for management interfaces. &lt;br /&gt;
Requires version 2.9 and above&lt;br /&gt;
&lt;br /&gt;
== CentOS 7 procedure ==&lt;br /&gt;
*[[Accessing_Device#SSH|ssh]] to the management interface&lt;br /&gt;
*To view current hostname:&lt;br /&gt;
 hostnamectl&lt;br /&gt;
*To update the hostname:&lt;br /&gt;
 hostnamectl  set-hostname   NewHostName&lt;br /&gt;
*To update the /etc/hosts file:&lt;br /&gt;
 vim /etc/hosts&lt;br /&gt;
Replace the hostnames in the file&lt;br /&gt;
*Reboot server:&lt;br /&gt;
 shutdown -r now&lt;br /&gt;
*After reboot verify if everything is ok:&lt;br /&gt;
 hostnamectl&lt;br /&gt;
 cat /etc/hosts&lt;br /&gt;
&lt;br /&gt;
== CentOS 5 procedure ==&lt;br /&gt;
*[[Accessing_Device#SSH|ssh]] to the management interface&lt;br /&gt;
*To view current hostname:&lt;br /&gt;
 hostname&lt;br /&gt;
*To update the hostname:&lt;br /&gt;
 hostname NewHostName&lt;br /&gt;
*Reboot server:&lt;br /&gt;
 shutdown -r now&lt;br /&gt;
&lt;br /&gt;
Note: DO NOT change the hostname via webportal.&lt;/div&gt;</summary>
		<author><name>Luc Morissette</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/ProSBC_processor_Usage</id>
		<title>ProSBC processor Usage</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/ProSBC_processor_Usage"/>
				<updated>2021-03-11T16:46:24Z</updated>
		
		<summary type="html">&lt;p&gt;Luc Morissette: Updated TOC and formatting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:ProSBC Processor Usage}}&lt;br /&gt;
__TOC__&lt;br /&gt;
This procedure is used to check the Processor usage of the ProSBC.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How to check processor usage from the web portal  ==&lt;br /&gt;
From the web interface you can see the processor usage:&amp;lt;br&amp;gt;&lt;br /&gt;
  Hosts -&amp;gt; Status -&amp;gt; Select Host -&amp;gt; Processor Usage tab&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Totals view show the global processor usage, and processor usage divided between applications and SBC processing &amp;lt;br&amp;gt;&lt;br /&gt;
[[image:SBC_Processor_usage.png]]  &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Packet Processing shows processor usage of each IP interfaces &amp;lt;br&amp;gt;&lt;br /&gt;
[[image:SBC_Processor_usage_pkt.png]]  &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Applications shows the processor usage of the individual applications and their theoretical maximums&amp;lt;br&amp;gt;&lt;br /&gt;
[[image:SBC_Processor_usage_app.png]]  &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Processor usage from SNMP ==&lt;br /&gt;
You can retrieve the processor usage from [[SNMP]] GET, using the [[TB-MIB]] TelcoBridges enterprise MIB. &amp;lt;br&amp;gt;&lt;br /&gt;
The value is located in the tbSwPerfTable (OID: 1.3.6.1.4.1.21776.1.2.2.3)&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Periodic logs on processor usage ==&lt;br /&gt;
Processor and memory usage are logged on the system. You can get access to these logs in this folder: &lt;br /&gt;
 /lib/tb/toolpack/setup/12358/3.1/apps/tboamapp/log&lt;br /&gt;
It is also available in the [[TBReport]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Accessing from the console ==&lt;br /&gt;
From the [[Accessing_Device#SSH|SSH access]], here are the available commands. &amp;lt;br&amp;gt;&lt;br /&gt;
With the '''top''' command you can see the total CPU usage (and Memory usage) of the host:&lt;br /&gt;
 [root@prosbc-vm-a1]# top &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 top - 07:27:40 up 13 days, 17:50,  1 user,  load average: 1.29, 1.38, 1.54&lt;br /&gt;
 Tasks: 140 total,   1 running, 139 sleeping,   0 stopped,   0 zombie&lt;br /&gt;
 %Cpu(s): 26.0 us,  3.6 sy,  0.0 ni, 70.2 id,  0.0 wa,  0.0 hi,  0.2 si,  0.0 st&lt;br /&gt;
 KiB Mem :  8042848 total,  1864328 free,  3560852 used,  2617668 buff/cache&lt;br /&gt;
 KiB Swap:  2097148 total,  2097148 free,        0 used.  4157628 avail Mem&lt;br /&gt;
 &lt;br /&gt;
 PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND&lt;br /&gt;
  708 root      20   0   65.1g 240676  17260 S 101.3  3.0  20052:50 tbrouter&lt;br /&gt;
  863 root      20   0       0      0      0 S   8.0  0.0   1636:13 kni_single&lt;br /&gt;
 8276 root      20   0 2046568 146152   5808 S   1.7  1.8 214:46.81 tbsip&lt;br /&gt;
 3495 root      20   0 1996260 127884   5972 S   1.3  1.6 258:41.70 toolpack_engine&lt;br /&gt;
 3690 root      20   0 2543928 109644   6904 S   1.3  1.4 320:42.86 gateway&lt;br /&gt;
 3181 root      20   0   10876    672    536 S   1.0  0.0 224:56.18 ipwatchd&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Here we see the processor usage is 70% idle. &amp;lt;br&amp;gt;&lt;br /&gt;
We also see the tbrouter application is at 101% CPU, which is normal. You can have more details here: [[Toolpack_Application:tbrouter]] &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luc Morissette</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/ProSBC_processor_Usage</id>
		<title>ProSBC processor Usage</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/ProSBC_processor_Usage"/>
				<updated>2021-03-11T16:36:51Z</updated>
		
		<summary type="html">&lt;p&gt;Luc Morissette: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:ProSBC Processor Usage}}&lt;br /&gt;
&lt;br /&gt;
This procedure is used to check the Processor usage of the ProSBC.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How to check processor usage from the web portal  ==&lt;br /&gt;
From the web interface you can see the processor usage:&amp;lt;br&amp;gt;&lt;br /&gt;
  Hosts -&amp;gt; Status -&amp;gt; Select Host -&amp;gt; Processor Usage tab&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Totals view show the global processor usage, and processor usage divided between applications and SBC processing &amp;lt;br&amp;gt;&lt;br /&gt;
[[image:SBC_Processor_usage.png]]  &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Packet Processing shows processor usage of each IP interfaces &amp;lt;br&amp;gt;&lt;br /&gt;
[[image:SBC_Processor_usage_pkt.png]]  &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Applications shows the processor usage of the individual applications and their theoretical maximums&amp;lt;br&amp;gt;&lt;br /&gt;
[[image:SBC_Processor_usage_app.png]]  &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Accessing from the console ==&lt;br /&gt;
From the [[Accessing_Device#SSH|SSH access]], here are the available commands. &amp;lt;br&amp;gt;&lt;br /&gt;
With the '''top''' command you can see the total CPU usage (and Memory usage) of the host:&lt;br /&gt;
 # top &lt;br /&gt;
top - 07:27:40 up 13 days, 17:50,  1 user,  load average: 1.29, 1.38, 1.54&lt;br /&gt;
Tasks: 140 total,   1 running, 139 sleeping,   0 stopped,   0 zombie&lt;br /&gt;
%Cpu(s): 26.0 us,  3.6 sy,  0.0 ni, 70.2 id,  0.0 wa,  0.0 hi,  0.2 si,  0.0 st&lt;br /&gt;
KiB Mem :  8042848 total,  1864328 free,  3560852 used,  2617668 buff/cache&lt;br /&gt;
KiB Swap:  2097148 total,  2097148 free,        0 used.  4157628 avail Mem&lt;br /&gt;
&lt;br /&gt;
  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND&lt;br /&gt;
  708 root      20   0   65.1g 240676  17260 S 101.3  3.0  20052:50 tbrouter&lt;br /&gt;
  863 root      20   0       0      0      0 S   8.0  0.0   1636:13 kni_single&lt;br /&gt;
 8276 root      20   0 2046568 146152   5808 S   1.7  1.8 214:46.81 tbsip&lt;br /&gt;
 3495 root      20   0 1996260 127884   5972 S   1.3  1.6 258:41.70 toolpack_engine&lt;br /&gt;
 3690 root      20   0 2543928 109644   6904 S   1.3  1.4 320:42.86 gateway&lt;br /&gt;
 3181 root      20   0   10876    672    536 S   1.0  0.0 224:56.18 ipwatchd&lt;br /&gt;
 ... &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Here we see the processor usage is 70% idle. &amp;lt;br&amp;gt;&lt;br /&gt;
We also see the tbrouter application is at 101% CPU, which is normal. You can have more details here: [[Toolpack_Application:tbrouter]] &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Periodic logs on processor usage ===&lt;br /&gt;
Processor and memory usage are logged on the system. You can get access to these logs in this folder: &lt;br /&gt;
 /lib/tb/toolpack/setup/12358/3.1/apps/tboamapp/log&lt;br /&gt;
It is also available in the [[TBReport]]&lt;/div&gt;</summary>
		<author><name>Luc Morissette</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/ProSBC_processor_Usage</id>
		<title>ProSBC processor Usage</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/ProSBC_processor_Usage"/>
				<updated>2021-03-11T16:32:51Z</updated>
		
		<summary type="html">&lt;p&gt;Luc Morissette: New wiki page for ProSBC processor usage&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:ProSBC Processor Usage}}&lt;br /&gt;
&lt;br /&gt;
This procedure is used to check the Processor usage of the ProSBC.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How to check Processor usage from the web portal  ==&lt;br /&gt;
From the web interface you can see the processor usage:&amp;lt;br&amp;gt;&lt;br /&gt;
  Hosts -&amp;gt; Status -&amp;gt; Select Host -&amp;gt; Processor Usage tab&lt;br /&gt;
&lt;br /&gt;
Totals view show the global processor usage, and processor usage divided between applications and SBC processing &amp;lt;br&amp;gt;&lt;br /&gt;
[[image:SBC_Processor_usage.png]]  &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Packet Processing shows processor usage of each IP interfaces &amp;lt;br&amp;gt;&lt;br /&gt;
[[image:SBC_Processor_usage_pkt.png]]  &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Applications shows the processor usage of the individual applications and their theoretical maximums&amp;lt;br&amp;gt;&lt;br /&gt;
[[image:SBC_Processor_usage_app.png]]  &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Accessing from the console ==&lt;br /&gt;
From the [[Accessing_Device#SSH|SSH access]], here are the available commands. &amp;lt;br&amp;gt;&lt;br /&gt;
With the '''top''' command you can see the total CPU usage (and Memory usage) of the host:&lt;br /&gt;
 # top &lt;br /&gt;
top - 07:27:40 up 13 days, 17:50,  1 user,  load average: 1.29, 1.38, 1.54&lt;br /&gt;
Tasks: 140 total,   1 running, 139 sleeping,   0 stopped,   0 zombie&lt;br /&gt;
%Cpu(s): 26.0 us,  3.6 sy,  0.0 ni, 70.2 id,  0.0 wa,  0.0 hi,  0.2 si,  0.0 st&lt;br /&gt;
KiB Mem :  8042848 total,  1864328 free,  3560852 used,  2617668 buff/cache&lt;br /&gt;
KiB Swap:  2097148 total,  2097148 free,        0 used.  4157628 avail Mem&lt;br /&gt;
&lt;br /&gt;
  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND&lt;br /&gt;
  708 root      20   0   65.1g 240676  17260 S 101.3  3.0  20052:50 tbrouter&lt;br /&gt;
  863 root      20   0       0      0      0 S   8.0  0.0   1636:13 kni_single&lt;br /&gt;
 8276 root      20   0 2046568 146152   5808 S   1.7  1.8 214:46.81 tbsip&lt;br /&gt;
 3495 root      20   0 1996260 127884   5972 S   1.3  1.6 258:41.70 toolpack_engine&lt;br /&gt;
 3690 root      20   0 2543928 109644   6904 S   1.3  1.4 320:42.86 gateway&lt;br /&gt;
 3181 root      20   0   10876    672    536 S   1.0  0.0 224:56.18 ipwatchd&lt;br /&gt;
 ... &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Here we see the processor usage is 70% idle. &amp;lt;br&amp;gt;&lt;br /&gt;
We also see the tbrouter application is at 101% CPU, which is normal. You can have more details here: [[Toolpack_Application:tbrouter]] &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Periodic logs on processor usage ===&lt;br /&gt;
Processor and memory usage are logged on the system. You can get access to these logs in this folder: &lt;br /&gt;
 /lib/tb/toolpack/setup/12358/3.1/apps/tboamapp/log&lt;br /&gt;
It is also available in the [[TBreport]]&lt;/div&gt;</summary>
		<author><name>Luc Morissette</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/File:SBC_Processor_usage_top.png</id>
		<title>File:SBC Processor usage top.png</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/File:SBC_Processor_usage_top.png"/>
				<updated>2021-03-11T16:10:41Z</updated>
		
		<summary type="html">&lt;p&gt;Luc Morissette: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Luc Morissette</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/File:SBC_Processor_usage_app.png</id>
		<title>File:SBC Processor usage app.png</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/File:SBC_Processor_usage_app.png"/>
				<updated>2021-03-11T16:02:36Z</updated>
		
		<summary type="html">&lt;p&gt;Luc Morissette: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Luc Morissette</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/File:SBC_Processor_usage_pkt.png</id>
		<title>File:SBC Processor usage pkt.png</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/File:SBC_Processor_usage_pkt.png"/>
				<updated>2021-03-11T16:02:23Z</updated>
		
		<summary type="html">&lt;p&gt;Luc Morissette: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Luc Morissette</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/File:SBC_Processor_usage.png</id>
		<title>File:SBC Processor usage.png</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/File:SBC_Processor_usage.png"/>
				<updated>2021-03-11T16:02:02Z</updated>
		
		<summary type="html">&lt;p&gt;Luc Morissette: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Luc Morissette</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/FreeSBC_Maintenance_Guide</id>
		<title>FreeSBC Maintenance Guide</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/FreeSBC_Maintenance_Guide"/>
				<updated>2021-03-11T15:59:35Z</updated>
		
		<summary type="html">&lt;p&gt;Luc Morissette: Added link to prosbc processor usage&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:ProSBC Maintenance Guide}}&lt;br /&gt;
&lt;br /&gt;
This article shows different procedures for maintaining your ProSBC.&lt;br /&gt;
&lt;br /&gt;
== ProSBC Verification ==&lt;br /&gt;
*[[Centos_Check_Disk_Space|Check Disk Space]]&lt;br /&gt;
*[[ProSBC processor Usage|Check Processor Usage]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ProSBC Replacement ==&lt;br /&gt;
=== Backup your system configuration ===&lt;br /&gt;
If this is a 1+1 system, before proceeding with the procedure, it is wise to backup your configuration. Please follow this link: [[Troubleshooting_Toolpack#System_configuration_backup|Backup procedure]]&amp;lt;br&amp;gt;&lt;br /&gt;
'''Note:''' The database backup should be stored in a safe place&lt;br /&gt;
&lt;br /&gt;
=== Setup a new ProSBC ===&lt;br /&gt;
Install a ProSBC using one of the following methods: [[FreeSBC#Installation|ProSBC Installation]]&amp;lt;br&amp;gt;&lt;br /&gt;
If the same product key is used, it needs to be reset - please contact [mailto:support@telcobridges.com TelcoBridges TB Support] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Replacement of a standalone ProSBC ==&lt;br /&gt;
Go through the initial configuration and select &amp;quot;'''This unit is deployed as a stand-alone unit'''&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
If the configuration database is available, restore it on the system: [[Toolpack:Restoring_a_Database_Backup_C|Restoring Database Procedure for v2.8 and up]]&amp;lt;br&amp;gt;&lt;br /&gt;
Otherwise you will need to reconfigure the system: [[Sbc_Tutorial_Guide_v3.0|ProSBC Configuration]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Replacement of a Primary ProSBC ==&lt;br /&gt;
Go through the initial configuration and select &amp;quot;'''As part of a redundant system'''&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:FreeSBC_redundant.png|700px]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Then select &amp;quot;'''The primary unit'''&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:FreeSBC_the_primary_unit.png|700px]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
and &amp;quot;'''Get configuration from an existing secondary unit'''&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:FreeSBC_take_from_secondary.png|700px]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Replacement of a Secondary ProSBC ==&lt;br /&gt;
Go through the initial configuration and select &amp;quot;'''This unit is deployed as part of a redundant system'''&amp;quot; and select &amp;quot;'''The secondary unit'''&amp;quot;. It will automatically get the configuration from the primary unit.&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:FreeSBC_the_secondary_unit.png|700px]]&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luc Morissette</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>2021-03-10T18:25:58Z</updated>
		
		<summary type="html">&lt;p&gt;Luc Morissette: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Welcome to the TBwiki! [http://www.telcobridges.com TelcoBridges] has developed this wiki to help you with your product and service questions.''' &amp;lt;br/&amp;gt;&lt;br /&gt;
The '''Search''' bar on the left can be used or with google chrome use '''site:docs.telcobridges.com [keywords]'''&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|STYLE=&amp;quot;vertical-align: top&amp;quot;|&lt;br /&gt;
{| cellpadding=&amp;quot;5&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! width=&amp;quot;210&amp;quot; style=&amp;quot;background: none repeat scroll 0% 0% rgb(0, 83, 139);&amp;quot; colspan=&amp;quot;2&amp;quot; | &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:white;&amp;quot;&amp;gt;Products&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
! width=&amp;quot;210&amp;quot; style=&amp;quot;background: none repeat scroll 0% 0% rgb(0, 83, 139);&amp;quot; | &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:white;&amp;quot;&amp;gt;OAM&amp;amp;P&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
! width=&amp;quot;210&amp;quot; style=&amp;quot;background: none repeat scroll 0% 0% rgb(0, 83, 139);&amp;quot; | &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:white;&amp;quot;&amp;gt;Features&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
! width=&amp;quot;210&amp;quot; style=&amp;quot;background: none repeat scroll 0% 0% rgb(0, 83, 139);&amp;quot; | &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:white;&amp;quot;&amp;gt;Solutions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
! width=&amp;quot;225&amp;quot; style=&amp;quot;background: none repeat scroll 0% 0% rgb(0, 83, 139);&amp;quot; | &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:white;&amp;quot;&amp;gt;TBSupport&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| width=&amp;quot;80&amp;quot; style=&amp;quot;background: none repeat scroll 0% 0% rgb(0, 83, 139); height: 121px&amp;quot;  | &lt;br /&gt;
[[FreeSBC and ProSBC|&amp;lt;span style=&amp;quot;color:white;&amp;quot;&amp;gt;SBC&amp;lt;/span&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
| width=&amp;quot;130&amp;quot; style=&amp;quot;background: none repeat scroll 0% 0% rgb(255, 255, 255);&amp;quot;  | &lt;br /&gt;
*[[FreeSBC]]&lt;br /&gt;
*[[FreeSBC|ProSBC]]&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;background: none repeat scroll 0% 0% rgb(255, 255, 255);&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
*[[Datasheet|Datasheet]]&lt;br /&gt;
*[[Product_Installation_SBC|Installing]]&lt;br /&gt;
*[[Gateway_Upgrade|Upgrading]] &lt;br /&gt;
*[[Sbc_Tutorial_Guide_Intro|Configuration: Web Portal]]&lt;br /&gt;
*[[FreeSBC:1%2B1_Configuration|ProSBC 1+1 setup]]&lt;br /&gt;
*[[FreeSBC_Maintenance_Guide|Maintenance]]&lt;br /&gt;
*[[FreeSBC_Troubleshooting|Troubleshooting]]&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;background: none repeat scroll 0% 0% rgb(255, 255, 255);&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
*[[FreeSBC:1%2B1_Configuration|High Availability and 1+1]]&lt;br /&gt;
*[[Sip_registration_forwarding|SIP registration forwarding]]&lt;br /&gt;
*[[SIP_subscribe_notify_publish_forwarding|Subscribe/notify/publish]]&lt;br /&gt;
*[[FreeSBC:SHAKEN|STIR/SHAKEN]]&lt;br /&gt;
*[[Parameter:_Use_RTP_no-anchoring|RTP No Anchoring]]&lt;br /&gt;
*[[MOS|MOS: Network quality]]&lt;br /&gt;
*[[Toolpack:Retrieving_Call_Trace_C#Dropping_an_active_call|Fraud Call Removal]]&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;background: none repeat scroll 0% 0% rgb(255, 255, 255);&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
*[[FreeSBC_Use_Cases|SBC Use Cases]]&lt;br /&gt;
*[[FreeSBC_Transcoding_Solution|Transcoding]]&lt;br /&gt;
*[[FreeSBC_Carrier_Interconnection_Solution|Carrier Interconnection]]&lt;br /&gt;
*[[FreeSBC_NGN_Interconnection_Solution|NGN Interconnection]]&lt;br /&gt;
*[[FreeSBC_Operator_Interconnection_Solution|Operator Interconnection]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;background: none repeat scroll 0% 0% rgb(255, 255, 255);&amp;quot; |&lt;br /&gt;
*[[Media:TB_Support_Services_for_ProSBC_wiki_2019_01_10.pdf‎|TB Support Services for ProSBC]] &lt;br /&gt;
*[[Support:Contacting TelcoBridges technical support|Contacting TB Support]] &lt;br /&gt;
*[[Support:License_server|License Server]]&lt;br /&gt;
*[[Support Forums]]&lt;br /&gt;
*[[ProSBC Training]]&lt;br /&gt;
*[[ProSBC_Version_History|ProSBC Software Version History]]&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;80&amp;quot; style=&amp;quot;background: none repeat scroll 0% 0% rgb(0, 83, 139); height: 121px&amp;quot;  | &lt;br /&gt;
[[Tmedia|&amp;lt;span style=&amp;quot;color:white;&amp;quot;&amp;gt;''T''media&amp;lt;/span&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
| width=&amp;quot;130&amp;quot; style=&amp;quot;background: none repeat scroll 0% 0% rgb(255, 255, 255);&amp;quot;  | &lt;br /&gt;
*[[TMG800]]&lt;br /&gt;
*[[TMG3200]]&lt;br /&gt;
*[[TMG7800]]&lt;br /&gt;
| style=&amp;quot;background: none repeat scroll 0% 0% rgb(255, 255, 255);&amp;quot; rowspan=&amp;quot;3&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
*[[Datasheet|Datasheet]]&lt;br /&gt;
*[[Product_Installation|Installing]]&lt;br /&gt;
*[[Gateway_Upgrade|Upgrading]] &lt;br /&gt;
*[[Web Portal|Configuration: Web Portal]]&lt;br /&gt;
*[[Troubleshooting]]&lt;br /&gt;
*[[Product_Maintenance|Product Maintenance]]&lt;br /&gt;
*[[Gateway_Management|Gateway Management]]&lt;br /&gt;
[[:Category:Gateway_OAM&amp;amp;P|...more]]&lt;br /&gt;
| style=&amp;quot;background: none repeat scroll 0% 0% rgb(255, 255, 255);&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
*[[Signaling_protocols|Signaling Protocols]]&lt;br /&gt;
*[[Redundancy_&amp;amp;_High_Availability|Redundancy &amp;amp; High Availability]]&lt;br /&gt;
*[[Tmedia_Routing|Routing]]&lt;br /&gt;
*[[Network_monitoring|Network Monitoring]]&lt;br /&gt;
[[:Category:Tmedia_Features|...more]]&lt;br /&gt;
| style=&amp;quot;background: none repeat scroll 0% 0% rgb(255, 255, 255);&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
*[[Carrier_Solutions|Carriers]] &lt;br /&gt;
*[[Operator_Solutions|Operators]]&lt;br /&gt;
*[[MVNO_&amp;amp;_MVNE_Solutions|MVNO &amp;amp; MVNE]] &lt;br /&gt;
*[[Call_Center_Solutions| Call Centers]] &lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;background: none repeat scroll 0% 0% rgb(255, 255, 255);&amp;quot; rowspan=&amp;quot;6&amp;quot;|&lt;br /&gt;
*[[Media:TB_Support_Services_for_endusers_wiki_20180815.pdf‎|TB Support Services (.pdf)]] &lt;br /&gt;
*[[Media:TB_Return_and_Repair_Procedure_2018.pdf|TB Return and Repair procedure(.pdf)]] &lt;br /&gt;
*[[Support:Contacting TelcoBridges technical support|Contacting TB Support]] &lt;br /&gt;
*[[Support:Online_Training|Online Training]]&lt;br /&gt;
*[[Support:License_server|License Server]]&lt;br /&gt;
*[[Support:Time_tracking_tool|Time Tracking Tool]]&lt;br /&gt;
*[[:Category:FAQ|Frequently Asked Questions]]&lt;br /&gt;
*[[Support:Forums|Support Forums]]&lt;br /&gt;
*[[Support:How To Submit A Problem|Submitting an Issue]]&lt;br /&gt;
*[[Tmedia_Version_History|Tmedia Software Version History]]&lt;br /&gt;
&lt;br /&gt;
'''Important Notices'''&lt;br /&gt;
*[[Field_notices|Field Notices]]&lt;br /&gt;
*[[Security_advisories |Security Advisories]]&lt;br /&gt;
&lt;br /&gt;
'''Legal''' &lt;br /&gt;
&lt;br /&gt;
*[[Media:TB_Product_Warranty_2018.pdf|Product Warranty]] &lt;br /&gt;
*[[Media:Terms &amp;amp; Conditions.pdf|Standard Terms &amp;amp; Conditions]]&lt;br /&gt;
&lt;br /&gt;
'''Interoperability''' &lt;br /&gt;
&lt;br /&gt;
*[[Interoperability:Vendors|Vendors]] &lt;br /&gt;
*[[Interoperability:Certifications|Certifications]] &lt;br /&gt;
&lt;br /&gt;
'''Policies''' &lt;br /&gt;
&lt;br /&gt;
*[[End-of-Life (EOL) policy|End-of-Life (EOL)]] &lt;br /&gt;
*[[Security policy|Security Updates Policy]] &lt;br /&gt;
&lt;br /&gt;
'''Other''' &lt;br /&gt;
*[[Regulatory compliance|Regulatory Compliance]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;80&amp;quot; style=&amp;quot;background: none repeat scroll 0% 0% rgb(0, 83, 139); height: 80px&amp;quot; | &lt;br /&gt;
[[Ttrans|&amp;lt;span style=&amp;quot;color:white;&amp;quot;&amp;gt;''T''trans&amp;lt;/span&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
| width=&amp;quot;130&amp;quot; style=&amp;quot;background: none repeat scroll 0% 0% rgb(255, 255, 255);&amp;quot; |&lt;br /&gt;
*[[TMGIP800]]&lt;br /&gt;
*[[TMGIP3200]]&lt;br /&gt;
*[[TMGIP7800]]&lt;br /&gt;
| style=&amp;quot;background: none repeat scroll 0% 0% rgb(255, 255, 255);&amp;quot; |&lt;br /&gt;
*[[Voice_codecs|Voice Codecs]]&lt;br /&gt;
*[[Network_monitoring|Network Monitoring]]&lt;br /&gt;
| style=&amp;quot;background: none repeat scroll 0% 0% rgb(255, 255, 255);&amp;quot; |&lt;br /&gt;
*[[Transcoding_Gateway_Solutions|Transcoding]]&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;80&amp;quot; style=&amp;quot;background: none repeat scroll 0% 0% rgb(0, 83, 139); height: 80px&amp;quot; | &lt;br /&gt;
[[Tsig|&amp;lt;span style=&amp;quot;color:white;&amp;quot;&amp;gt;''T''sig&amp;lt;/span&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
| width=&amp;quot;130&amp;quot; style=&amp;quot;background: none repeat scroll 0% 0% rgb(255, 255, 255);&amp;quot; |&lt;br /&gt;
*[[TSG800]]&lt;br /&gt;
*[[TSG3200]]&lt;br /&gt;
| style=&amp;quot;background: none repeat scroll 0% 0% rgb(255, 255, 255);&amp;quot; |&lt;br /&gt;
*[[Signaling_protocols|Signaling Protocols]]&lt;br /&gt;
| style=&amp;quot;background: none repeat scroll 0% 0% rgb(255, 255, 255);&amp;quot; |&lt;br /&gt;
*[[Signaling_Gateway_Solutions|Signaling]]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| width=&amp;quot;80&amp;quot; style=&amp;quot;background: none repeat scroll 0% 0% rgb(0, 83, 139); height: 105px&amp;quot; | &lt;br /&gt;
[[Tdev|&amp;lt;span style=&amp;quot;color:white;&amp;quot;&amp;gt;''T''dev&amp;lt;/span&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
| width=&amp;quot;130&amp;quot; style=&amp;quot;background: none repeat scroll 0% 0% rgb(255, 255, 255);&amp;quot; |&lt;br /&gt;
*[[TMP800]]&lt;br /&gt;
*[[TMP6400]]&lt;br /&gt;
*[[TMP6400-CTRL]]&lt;br /&gt;
*[[TMP6400-TMS]]&lt;br /&gt;
| style=&amp;quot;background: none repeat scroll 0% 0% rgb(255, 255, 255);&amp;quot; |&lt;br /&gt;
*[[Installing Toolpack|Installing]]&lt;br /&gt;
*[[Upgrading Toolpack|Upgrading]]&lt;br /&gt;
*[[Toolpack_Web_Portal|Provisioning]]&lt;br /&gt;
[[:Category:Tdev_OAM%26P|...more]]&lt;br /&gt;
| style=&amp;quot;background: none repeat scroll 0% 0% rgb(255, 255, 255);&amp;quot; |&lt;br /&gt;
*[[High_Availability_Overview|Redundancy &amp;amp; High Availability]]&lt;br /&gt;
*[[Tdev_Signaling_Protocols|Signaling Protocols]]&lt;br /&gt;
*[[Voice_codecs|Voice Codecs]]&lt;br /&gt;
[[:Category:Tdev_Features|...more]]&lt;br /&gt;
| style=&amp;quot;background: none repeat scroll 0% 0% rgb(255, 255, 255);&amp;quot; |&lt;br /&gt;
*[[Prepaid &amp;amp; postpaid calling|Prepaid &amp;amp; Postpaid Calling]] &lt;br /&gt;
*[[Ringback tones|Ringback Tones]] &lt;br /&gt;
*[[Unified communications|Unified Communications]] &lt;br /&gt;
[[:Category:Tdev_Solutions|...more]]&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;80&amp;quot; style=&amp;quot;background: none repeat scroll 0% 0% rgb(0, 83, 139); height: 80px&amp;quot; | &lt;br /&gt;
[[Tmonitor|&amp;lt;span style=&amp;quot;color:white;&amp;quot;&amp;gt;''T''monitor&amp;lt;/span&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
| width=&amp;quot;130&amp;quot; style=&amp;quot;background: none repeat scroll 0% 0% rgb(255, 255, 255);&amp;quot; |&lt;br /&gt;
*[[TM1000]]&lt;br /&gt;
*[[TM3000]]&lt;br /&gt;
| style=&amp;quot;background: none repeat scroll 0% 0% rgb(255, 255, 255);&amp;quot; |&lt;br /&gt;
*[[Installing Toolpack|Installing]]&lt;br /&gt;
*[[Upgrading Toolpack|Upgrading]]&lt;br /&gt;
*[[Toolpack_Web_Portal|Provisioning]]&lt;br /&gt;
[[:Category:Tmonitor_OAM%26P|...more]]&lt;br /&gt;
| style=&amp;quot;background: none repeat scroll 0% 0% rgb(255, 255, 255);&amp;quot; |&lt;br /&gt;
*[[Tmonitor_Lawful_Intercept|Lawful Intercept]] &lt;br /&gt;
*[[Network_monitoring|Network Monitoring]]&lt;br /&gt;
| style=&amp;quot;background: none repeat scroll 0% 0% rgb(255, 255, 255);&amp;quot; |&lt;br /&gt;
*[[Location-based services|Location-Based Services (LBS)]]&lt;br /&gt;
*[[Network monitoring|Network Monitoring]] &lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Using TBwiki  ==&lt;br /&gt;
&lt;br /&gt;
Please note that the TBWiki is a living document, in which navigation choices and the naming of content evolves over time.&lt;br /&gt;
&lt;br /&gt;
There are various ways to search for information in the TBWiki. You can choose to search in the table above, use the glossary in the navigation bar, or use the search box on the left-hand side of each page.&lt;br /&gt;
&lt;br /&gt;
== Disclaimer  ==&lt;br /&gt;
&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 agreement from TelcoBridges. &lt;br /&gt;
&lt;br /&gt;
The information provided in this web site is intended as a guide. No responsibility is implied and the terms of your agreement with TelcoBridges will continue to claim precedence. For the latest detailed engineering specifications, please contact TelcoBridges. 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;
&lt;br /&gt;
== Copyright  ==&lt;br /&gt;
&lt;br /&gt;
*This web site and its content, as well as any external links to content on TelcoBridges servers, is ©2002-2017 TelcoBridges Inc. All rights reserved.&lt;/div&gt;</summary>
		<author><name>Luc Morissette</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>2021-03-09T16:23:35Z</updated>
		
		<summary type="html">&lt;p&gt;Luc Morissette: Updated the section to include not only NAP status, but also NAP information&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Call object  ==&lt;br /&gt;
&lt;br /&gt;
=== Get  ===&lt;br /&gt;
&lt;br /&gt;
This function is used to get the call parameters. The possible parameters are described in the section &amp;quot;Call parameters&amp;quot; &lt;br /&gt;
&lt;br /&gt;
  called_number = caf_call.get&amp;amp;nbsp;: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 parameters from the the call object and put it in hash. &lt;br /&gt;
&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 actually creates one outgoing route that the gateway application will use to bridge the incoming call leg.  If more than one outgoing route is &amp;quot;accepted&amp;quot;, the gateway will try them one by one in the same order that they were accepted.   If an outgoing call leg fails (according to 'route retry' parameters), the next route in line will be used.  &lt;br /&gt;
&lt;br /&gt;
This method takes 2 arguments, the call parameters (hash) and the route parameters (hash).  Note that calling this method does NOT stop the flow of the script.&lt;br /&gt;
&lt;br /&gt;
Apply route remapping rules &lt;br /&gt;
&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 set the reason code for the incoming call leg refusal.  However, this function does NOT stop the flow of the script. &lt;br /&gt;
&lt;br /&gt;
  caf_call.refuse&amp;amp;nbsp;:reason =&amp;amp;gt;&amp;amp;nbsp;:temporary_failure&lt;br /&gt;
&lt;br /&gt;
To immediately refuse the incoming call leg and stop processing the script, the script must raise an exception.  Exiting the script by raising the exception overwrites any reason cause previously stored using refuse().&lt;br /&gt;
&lt;br /&gt;
  raise RoutingException, :no_route&lt;br /&gt;
&lt;br /&gt;
The supported refusal cause values for both refuse() and raise() are described in the section &amp;quot;[[Routing_script_tutorial:Mini_Development_Guide#Reason_values|Reason values]]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Script parameters protocol mapping  ===&lt;br /&gt;
&lt;br /&gt;
The following call parameters are available in the call object. For example:&lt;br /&gt;
&lt;br /&gt;
  called_number = call[:called]&lt;br /&gt;
&lt;br /&gt;
For information on how to use and remap call parameters, see [[Toolpack:_How_to_Use_RegEx_in_Remapped_Called_and_Calling_Number_Mask | How to use regex in Remapped Called and Calling Number Mask]]&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;width: 921px; height: 805px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | '''Script parameter name''' &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | '''_____ISDN_____&amp;lt;br&amp;gt;''' &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | '''__R2_CAS__'''&amp;lt;br&amp;gt; &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | '''______________SS7___________&amp;lt;br&amp;gt;''' &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | '''_____________SIP_____________&amp;lt;br&amp;gt;''' &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | '''Comment&amp;lt;br&amp;gt;'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | '''Toolpack version&amp;lt;br&amp;gt;'''&lt;br /&gt;
|-&lt;br /&gt;
| leg_id&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Leg ID&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| session_id&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Session ID&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| original_session_id&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Original Session ID (before call transfer or redirections)&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| calling&amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Calling party number' IE - Number digits &amp;lt;br&amp;gt; &lt;br /&gt;
| ANI (Group B)&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Calling party number' IE - address signals (*)&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:From - user-info&amp;lt;br&amp;gt; &lt;br /&gt;
| * In ANSI SS7 LNP networks, the IE 'generic address parameter' is used (when present) instead.&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| calling_sip_host &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:From - host (domain or IP) &amp;lt;br&amp;gt; &lt;br /&gt;
|  For example : The 'telcobridges.com' in From: &amp;quot;Cullen Jennings&amp;quot; &amp;lt;sip:fluffy@telcobridges.com&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| calling_sip_port &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:From - port &amp;lt;br&amp;gt; &lt;br /&gt;
|  For example : The '6060' in From: &amp;quot;Cullen Jennings&amp;quot; &amp;lt;sip:fluffy@telcobridges.com:6060&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| calling_noa&amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Calling party number' IE - Type of number&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Calling party number' IE - nature of address indicator (*)&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| * In ANSI SS7 LNP networks, the IE 'generic address parameter' is used (when present) instead&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| calling_npi &amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Calling party number' IE - Numbering plan identification&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Calling party number' IE - numbering plan indicator (*)&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| * In ANSI SS7 LNP networks, the IE 'generic address parameter' is used&amp;amp;nbsp;(when present) instead&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| calling_display &amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Display' IE - Display information&amp;lt;br&amp;gt; &lt;br /&gt;
Q931: 'Facility CNAM' IE when presentation is allowed for DMS/NI2 variants&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763 &lt;br /&gt;
ITU97: 'Display information' IE - display information &lt;br /&gt;
ANSI95: 'Generic name' IE - display information &lt;br /&gt;
| SIP:From - display-name&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| calling_display_type&amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Display' IE - Display information (present and/or first byte)&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Display information' IE - present or not&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| calling_presentation &amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Calling party number' IE - Presentation indicator&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Calling party number' IE - address presentation restricted indicator&amp;lt;br&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
SIP:From - display-name (displays 'anonymous' or not) &lt;br /&gt;
&lt;br /&gt;
SIP:Remote-party-id - privacy&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| calling_screening&amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Calling party number' IE - Screening indicator&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Calling party number' IE - screening&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:Remote-party-id - screen&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| calling_category&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Call party category (Group A)&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Calling party's category' IE - calling party's category&amp;lt;br&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
SIP:From - cpc &lt;br /&gt;
&lt;br /&gt;
SIP:P-asserted-identity - cpc&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| calling_subscriber &lt;br /&gt;
(Generic Number / NDS)&amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 2nd 'Calling party number' IE - Number digits &amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: Generic number IE with type 'additional calling party number' - Number digits&amp;lt;br&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
SIP:P-asserted-identity - userinfo &lt;br /&gt;
&lt;br /&gt;
SIP:Remote-party-id - user-info&amp;lt;br&amp;gt; &lt;br /&gt;
| Requires option 'support 2 calling number IE' in the profile.  This variable has priority over 'private_address' in the outgoing direction.&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| calling_subscriber_noa&amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 2nd 'Calling party number' IE - Type of number&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: Generic number IE with type 'additional calling party number' - nature of address indicator&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:P-asserted-identity - userinfo &lt;br /&gt;
&lt;br /&gt;
SIP:Remote-party-id - user-info&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| calling_subscriber_npi &amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 2nd 'Calling party number' IE - Numbering plan identification&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: Generic number IE with type 'additional calling party number' - numbering plan indicator&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:P-asserted-identity - userinfo &lt;br /&gt;
&lt;br /&gt;
SIP:Remote-party-id - user-info&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| calling_subscriber_presentation&amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 2nd 'Calling party number' IE - Presentation indicator&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: Generic number IE with type 'additional calling party number' - presentation restricted indicator&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:P-asserted-identity - userinfo &lt;br /&gt;
&lt;br /&gt;
SIP:Remote-party-id - user-info&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| calling_subscriber_screening &amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 2nd 'Calling party number' IE - Screening indicator&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: Generic number IE with type 'additional calling party number' - screening&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:P-asserted-identity - userinfo &lt;br /&gt;
&lt;br /&gt;
SIP:Remote-party-id - user-info&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| private_display&amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Facility CNAM' IE when presentation is restricted for DMS/NI2 variants&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
SIP:P-asserted-identity - display-name&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
SIP:Remote-party-id - display-name&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| private_display_type &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Indicate presence or not of the private calling information&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| private_address&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
SIP:P-asserted-identity - userinfo &lt;br /&gt;
&lt;br /&gt;
SIP:Remote-party-id - user-info&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
| For example : The 'fluffy' in P-Asserted-Identity: &amp;quot;Cullen Jennings&amp;quot; &amp;lt;sip:fluffy@telcobridges.com&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| private_address_sip_host &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
SIP:P-asserted-identity - host (domain or IP)&lt;br /&gt;
&lt;br /&gt;
SIP:Remote-party-id - host (domain or IP) &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
| For example : The 'telcobridges.com' in P-Asserted-Identity: &amp;quot;Cullen Jennings&amp;quot; &amp;lt;sip:fluffy@telcobridges.com&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| private_address_sip_port &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
SIP:P-asserted-identity - port&lt;br /&gt;
&lt;br /&gt;
SIP:Remote-party-id - port&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
| For example : The '6060' in P-Asserted-Identity: &amp;quot;Cullen Jennings&amp;quot; &amp;lt;sip:fluffy@telcobridges.com:6060&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| supp_private_address_forward_enabled &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Overwrite default supplementary/second P-Asserted-Identity header forwarding behavior from incoming to outgoing leg &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| supp_private_address&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
SIP:P-Asserted-Identity - userinfo &lt;br /&gt;
&lt;br /&gt;
| For example : The 'fluffy' in supplementary/second P-Asserted-Identity: &amp;quot;Cullen Jennings&amp;quot; &amp;lt;sip:fluffy@telcobridges.com&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| supp_private_address_display_name&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
SIP:P-Asserted-Identity - display name&lt;br /&gt;
&lt;br /&gt;
| For example : The 'Cullen Jennings' in supplementary/second P-Asserted-Identity: &amp;quot;Cullen Jennings&amp;quot; &amp;lt;sip:fluffy@telcobridges.com&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| supp_private_address_sip_host &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
SIP:P-Asserted-Identity - host (domain or IP)&lt;br /&gt;
&lt;br /&gt;
| For example : The 'telcobridges.com' in supplementary/second P-Asserted-Identity: &amp;quot;Cullen Jennings&amp;quot; &amp;lt;sip:fluffy@telcobridges.com&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| supp_private_address_sip_port &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
SIP:P-Asserted-Identity - port&lt;br /&gt;
&lt;br /&gt;
| For example : The '6060' in supplementary/second P-Asserted-Identity: &amp;quot;Cullen Jennings&amp;quot; &amp;lt;sip:fluffy@telcobridges.com:6060&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| preferred_id_forward_enabled &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Overwrite default P-Preferred-Identity header forwarding behavior from incoming to outgoing leg &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| preferred_id&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
SIP:P-Preferred-Identity - userinfo &lt;br /&gt;
&lt;br /&gt;
| For example : The 'fluffy' in P-Preferred-Identity: &amp;quot;Cullen Jennings&amp;quot; &amp;lt;sip:fluffy@telcobridges.com&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| preferred_id_display_name&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
SIP:P-Preferred-Identity - display name&lt;br /&gt;
&lt;br /&gt;
| For example : The 'Cullen Jennings' in P-Preferred-Identity: &amp;quot;Cullen Jennings&amp;quot; &amp;lt;sip:fluffy@telcobridges.com&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| preferred_id_sip_host &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
SIP:P-Preferred-Identity - host (domain or IP)&lt;br /&gt;
&lt;br /&gt;
| For example : The 'telcobridges.com' in P-Preferred-Identity: &amp;quot;Cullen Jennings&amp;quot; &amp;lt;sip:fluffy@telcobridges.com&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| preferred_id_sip_port &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
SIP:P-Preferred-Identity - port&lt;br /&gt;
&lt;br /&gt;
| For example : The '6060' in P-Preferred-Identity: &amp;quot;Cullen Jennings&amp;quot; &amp;lt;sip:fluffy@telcobridges.com:6060&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| called &amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Called party number' IE - Number digits &amp;lt;br&amp;gt; &lt;br /&gt;
| DNIS (Group A)&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Called party number' IE - address signals&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:To - user-info and host&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| called_sip_host &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:To - host &amp;lt;br&amp;gt; &lt;br /&gt;
| For example : The 'telcobridges.com' in To: &amp;quot;Cullen Jennings&amp;quot; &amp;lt;sip:fluffy@telcobridges.com&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| called_sip_port &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:To - port number &amp;lt;br&amp;gt; &lt;br /&gt;
| For example : The '6060' in To: &amp;quot;Cullen Jennings&amp;quot; &amp;lt;sip:fluffy@telcobridges.com:6060&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| called_noa &amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Called party number' IE - Type of number&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Called party number' IE - nature of address indicator&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| called_npi &amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Called party number' IE - Numbering plan identification&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Called party number' IE - numbering plan indicator&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| charge_number&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| ANSI: 'Charge number' IE - address signals&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| charge_number_noa &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| ANSI: 'Charge number' IE - nature of address indicator&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| charge_number_npi&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| ANSI: 'Charge number' IE - numbering plan indicator&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| redirecting_number_forward_enabled &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Overwrite default redirecting number and original called number forwarding behavior from incoming to outgoing leg &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| redirecting_number &amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Redirecting number' 1st IE - Number digits &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Redirecting number' IE - address signals&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:Diversion (2nd header) - display-name&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| redirecting_number_noa &amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Redirecting number'&amp;amp;nbsp;1st IE - Type of number&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Redirecting number' IE - nature of address indicator&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| redirecting_number_npi &amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Redirecting number' 1st IE - Numbering plan identification&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Redirecting number' IE - numbering plan indicator&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| redirecting_number_presentation &amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Redirecting number' 1st IE - Presentation indicator &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Redirecting number' IE - address presentation restricted indicator&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:Diversion&amp;amp;nbsp;(2nd header) - diversion-privacy&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| redirecting_number_indicator &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Redirection information' IE - redirecting indicator&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| redirecting_number_reason &amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Redirecting number' 1st IE - Reason for redirection&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Redirection information' IE - redirecting reason&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:Diversion (2nd header) - diversion-reason&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| redirecting_number_counter &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Redirection information' IE - redirection counter&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:Diversion (2nd header) - diversion-counter&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| original_called_number &lt;br /&gt;
(OCN) &amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Redirecting number' 2nd IE - Number digits &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Redirection number' IE - address signals&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:Diversion&amp;amp;nbsp; (1st header) - display-name&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| original_called_number_noa &amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Redirecting number' 2nd IE - Type of number&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Redirection number' IE - nature of address indicator&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| original_called_number_npi &amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Redirecting number' 2nd IE - Numbering plan identification&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Redirection number' IE - numbering plan indicator&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| original_called_number_presentation &amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Redirecting number' 2nd IE - Presentation indicator &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Redirection number' IE - address presentation restricted indicator&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:Diversion (1st header) - diversion-privacy&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| original_called_number_reason &amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Redirecting number' 2nd IE - Reason for redirection&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Redirection information' IE - original redirection reason&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:Diversion (1st header) - diversion-reason&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| original_called_number_counter &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:Diversion (1st header) - diversion-counter&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| ported_number_npdi &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Generic number' IE - with qualifier=Ported number is present&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:RequestURI - npdi=yes is present&amp;lt;br&amp;gt; &lt;br /&gt;
| Only valid if SIP/SS7 supports LNP&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| ported_number &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Generic number' IE - address signals with qualifier=Ported number&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:RequestURI - to user part when rn is present&amp;lt;br&amp;gt; &lt;br /&gt;
| rn is stored in the called number&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| ported_number_noa &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Generic number' IE - nature of address indicator with qualifier=Ported number&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Only valid if SIP/SS7 supports LNP&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| ported_number_npi &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Generic number' IE - numbering plan indicator with qualifier=Ported number&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Only valid if SIP/SS7 supports LNP&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| oli&lt;br /&gt;
(Originating line information) &amp;lt;br&amp;gt; &lt;br /&gt;
| 5ESS Codeset 6 OLI - Value&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| ANSI: 'Originating line information' IE - OLI&amp;lt;br&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
SIP:From - oli &lt;br /&gt;
&lt;br /&gt;
SIP:P-asserted-identity - oli&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| request_uri &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Complete Request URI string&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| request_uri_forward_enabled &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Overwrite default URI&amp;amp;nbsp;forwarding behavior from incoming to outgoing leg&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| sip_header&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Any header&amp;lt;br&amp;gt; &lt;br /&gt;
| Requires option 'Enable SIP Custom Headers' in Profiles-&amp;gt;SIP &amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7.63&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| nap&lt;br /&gt;
(Network Access Point) &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Incoming leg NAP name (read-only)&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| type_of_network_identification&amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Transit network selection' IE - Type of network identification &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Transit network selection' IE - Type of network identification &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| network_identification&amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Transit network selection' IE - Network identification &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Transit network selection' IE - Network identification &amp;lt;br&amp;gt; &lt;br /&gt;
| SIP: Request-Line - cic&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| network_identification_plan&amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Transit network selection' IE - Network identification plan &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Transit network selection' IE - Network identification plan &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| location_number_forward_enabled &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Overwrite default location number forwarding behavior from incoming to outgoing leg &amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| location_number &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Location number' IE - address signals&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| location_number_noa &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Location number' IE - nature of address indicator&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| location_number_npi &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Location number' IE - numbering plan indicator&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| location_number_presentation&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Location number' IE - presentation restricted indicator&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| location_number_screening &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Location number' IE - screening&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| mlpp_forward_enabled &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| A script needs to set this to true if it wants to overwrite MLPP information in the outgoing leg.  Otherwise, profile relay 'outgoing mode' applies automatically.&amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| mlpp_look_for_busy &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'MLPP precedence' IE - look ahead for busy&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| mlpp_precedence_level &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'MLPP precedence' IE - precedence level&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:Resource-Priority - q735&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| mlpp_network_identity &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'MLPP precedence' IE - network identity&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| mlpp_service_domain&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'MLPP precedence' IE - MLPP service domain&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| isub_forward_enabled &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Overwrite default ISUB forwarding behavior from incoming to outgoing leg &amp;lt;br&amp;gt;&lt;br /&gt;
| 3.0.138&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| called_isub &amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Called party subaddress' IE - subaddress information&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Access transport' IE&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:To - isub parameter&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| called_isub_type&amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Called party subaddress' IE - type of subaddress&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Access transport' IE&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:To - isub-encoding parameter&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| calling_isub &amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Calling party subaddress' IE - subaddress information&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Access transport' IE&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:From - isub&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| calling_isub_type&amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Calling party subaddress' IE - type of subaddress&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Access transport' IE&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:From - isub-encoding&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| ss7_fci_default &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Default forward call indicator (FCI) value.&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Toolpack will overwrite FCI bits A, D, F, I and M with appropriate values according to call conditions&amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| ss7_fci_force_mask &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Mask to select bits from ss7_fci_default that must be forced.&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Bits from ss7_fci_default which corresponding bit in ss7_fci_force_mask is set will be forced, and no more controlled by Toolpack&amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| ss7_bci_default &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Default backward call indicator (BCI) value.&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Toolpack will overwrite BCI bits AB, I, K, M and N with appropriate values according to call conditions&amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| ss7_bci_force_mask &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Mask to select bits from ss7_bci_default that must be forced.&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Bits from ss7_bci_default which corresponding bit in ss7_bci_force_mask is set will be forced, and no more controlled by Toolpack&amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tdm_ls_name_forward_enabled&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt;&lt;br /&gt;
| Enable line service and timeslot selection to create the outgoing leg. tdm_ls_name and tdm_timeslot_nb must be defined along with tdm_ls_name_forward_enabled&amp;lt;br&amp;gt;&lt;br /&gt;
| 3.0&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tdm_ls_name&lt;br /&gt;
(Line Service or T1/E1 trunk) &amp;lt;br&amp;gt; &lt;br /&gt;
| Incoming leg line service name&amp;lt;br&amp;gt; &lt;br /&gt;
| Incoming leg line service name&amp;lt;br&amp;gt; &lt;br /&gt;
| Incoming leg line service name&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| if tdm_ls_name_forward_enabled is set, try to use this line service name to create outgoing leg&amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tdm_timeslot_nb&amp;lt;br&amp;gt; &lt;br /&gt;
| Incoming leg timeslot number&amp;lt;br&amp;gt; &lt;br /&gt;
| Incoming leg timeslot number&amp;lt;br&amp;gt; &lt;br /&gt;
| Incoming leg timeslot number&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| if tdm_ls_name_forward_enabled is set, try to use this timeslot number to create outgoing leg&amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| rtp_local_addr&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Incoming leg local SDP IP address&amp;lt;br&amp;gt; &lt;br /&gt;
| (read-only)&amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| rtp_local_port&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Incoming leg local SDP IP port&amp;lt;br&amp;gt; &lt;br /&gt;
| (read-only)&amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| rtp_remote_addr&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Incoming leg remote SDP IP address&amp;lt;br&amp;gt; &lt;br /&gt;
| (read-only)&amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| rtp_remote_port&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Incoming leg remote SDP IP port&amp;lt;br&amp;gt; &lt;br /&gt;
| (read-only)&amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| ss7_cot_enabled &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Requests SS7 in-call continuity test for this outgoing SS7 call&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Toolpack will request a continuity test on the timeslot before making the outgoing call. If COT fails, the call will be dropped (then another route may be attempted)&amp;lt;br&amp;gt;&lt;br /&gt;
| 2.8&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| reverse_charging_indication&amp;lt;br&amp;gt; &lt;br /&gt;
| Incoming leg Reverse charging indication IE present&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| If set in routing script, will add Reverse charging indication IE in outgoing leg (also use reverse_charging_indication_forward_enabled)&amp;lt;br&amp;gt;&lt;br /&gt;
| 2.8.12&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| reverse_charging_indication_forward_enabled&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Enable forwarding of reverse charging indication from incoming to outgoing leg&amp;lt;br&amp;gt;&lt;br /&gt;
| 2.8.12&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| sip_call_id&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Incoming leg SIP Call-Id&amp;lt;br&amp;gt; &lt;br /&gt;
| (read-only)&amp;lt;br&amp;gt;&lt;br /&gt;
| 2.9.112 / 3.0.131&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| sip_local_addr&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Incoming leg local SIP IP address&amp;lt;br&amp;gt; &lt;br /&gt;
| (read-only)&amp;lt;br&amp;gt;&lt;br /&gt;
| 2.8.13&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| sip_local_port&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Incoming leg local SIP port&amp;lt;br&amp;gt; &lt;br /&gt;
| (read-only)&amp;lt;br&amp;gt;&lt;br /&gt;
| 2.8.13&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| sip_remote_addr&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Incoming leg remote SIP IP address&amp;lt;br&amp;gt; &lt;br /&gt;
| (read-only)&amp;lt;br&amp;gt;&lt;br /&gt;
| 2.8.13&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| sip_remote_port&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Incoming leg remote SIP port&amp;lt;br&amp;gt; &lt;br /&gt;
| (read-only)&amp;lt;br&amp;gt;&lt;br /&gt;
| 2.8.13&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| acli&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt;&lt;br /&gt;
| 'Additional Calling Party Information' IE - address signals.&lt;br /&gt;
A new ISUP parameter is defined under national option to carry the actual calling party number of the ported subscriber (N2) in the IAM message across the Network.&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt;&lt;br /&gt;
| (read-only)&amp;lt;br&amp;gt;&lt;br /&gt;
| 3.0.143.2&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| acli_nao&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt;&lt;br /&gt;
| 'Additional Calling Party Information' IE - nature of address indicator.&lt;br /&gt;
A new ISUP parameter is defined under national option to carry the actual calling party number of the ported subscriber (N2) in the IAM message across the Network.&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt;&lt;br /&gt;
| (read-only)&amp;lt;br&amp;gt;&lt;br /&gt;
| 3.0.143.2&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| acli_npi&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt;&lt;br /&gt;
| 'Additional Calling Party Information' IE - numbering plan indicator.&lt;br /&gt;
A new ISUP parameter is defined under national option to carry the actual calling party number of the ported subscriber (N2) in the IAM message across the Network.&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt;&lt;br /&gt;
| (read-only)&amp;lt;br&amp;gt;&lt;br /&gt;
| 3.0.143.2&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| acli_presentation&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt;&lt;br /&gt;
| 'Additional Calling Party Information' IE - address presentation restricted indicator.&lt;br /&gt;
A new ISUP parameter is defined under national option to carry the actual calling party number of the ported subscriber (N2) in the IAM message across the Network.&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt;&lt;br /&gt;
| (read-only)&amp;lt;br&amp;gt;&lt;br /&gt;
| 3.0.143.2&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| acli_screening&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt;&lt;br /&gt;
| 'Additional Calling Party Information' IE - screening indicator.&lt;br /&gt;
A new ISUP parameter is defined under national option to carry the actual calling party number of the ported subscriber (N2) in the IAM message across the Network.&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt;&lt;br /&gt;
| (read-only)&amp;lt;br&amp;gt;&lt;br /&gt;
| 3.0.143.2&amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Noa values  ===&lt;br /&gt;
The text below represents the value normally used by routing script.&amp;lt;br&amp;gt;&lt;br /&gt;
Incase it's required to use a value that's not defined in the text values below, a integer can be provided and will be used &amp;quot;as-is&amp;quot; in the signaling message.&amp;lt;br&amp;gt;&lt;br /&gt;
Example numeric values for the SS7 protocol are shown in parenthesis.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;unknown_number (2 or 0x2)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;international_number (4 or 0x4)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;national_number (3 or 0x3)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;subscriber_number (1 or 0x1)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;network_specific (5 or 0x5)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;network_routing_national_format (7 or 0x7)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;network_routing_international_format (8 or 0x8)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;abbreviated_number (6 or 0x6)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;subscriber_number_operator_requested (113 or 0x71)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;national_number_operator_requested (114 or 0x72)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;international_number_operator_requested (115 or 0x73)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;no_number_present_operator_requested (116 or 0x74)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;no_number_present_cut_through_call_to_carrier (117 or 0x75)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;test_line_test_code (119 or 0x77)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;non_unique_subscriber_number (113 or 0x71)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;non_unique_national_number (115 or 0x73)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;non_unique_international_number (116 or 0x74)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;call_950_number (118 or 0x76)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;special_number (115 or 0x73)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;national_number_with_transit_network_selection (116 or 0x74)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;international_number_with_transit_network_selection (117 or 0x75)&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;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;call_params[:called_noa] = 0x70&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or &lt;br /&gt;
&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;
&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;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;unspecified&amp;lt;/tt&amp;gt; =&amp;amp;gt; Type is unspecified. &lt;br /&gt;
*&amp;lt;tt&amp;gt;calling_party_name&amp;lt;/tt&amp;gt; =&amp;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;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;call_params[:calling_display_type] = 0xB1&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or &lt;br /&gt;
&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;
&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;
=== Presentation values for Calling number, Calling Subscriber (Generic Number), Redirecting Number, Original Called Number (OCN) and Location Number ===&lt;br /&gt;
The text below represents the value normally used by routing script.&amp;lt;br&amp;gt;&lt;br /&gt;
Incase it's required to use a value that's not defined in the text values below, a integer can be provided and will be used &amp;quot;as-is&amp;quot; in the signaling message.&amp;lt;br&amp;gt;&lt;br /&gt;
Example numeric values for the SS7 protocol are shown in parenthesis.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;unspecified&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;not_available (0x2)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;allowed (0x0)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;restricted (0x1)&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 Party Category  ===&lt;br /&gt;
The text below represents the value normally used by routing script.&amp;lt;br&amp;gt;&lt;br /&gt;
In case it's required to use a value that's not defined in the text values below, a integer can be provided and will be used &amp;quot;as-is&amp;quot; in the signaling message.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mapping from routing script to SS7/CAS R2/SIP&lt;br /&gt;
{| cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | '''Routing Script string &amp;lt;br&amp;gt;''' &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | '''SS7 raw value &amp;lt;br&amp;gt;''' &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | '''R2 CAS scripts'''&amp;lt;br&amp;gt; &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | '''Default Rx CAS'''&amp;lt;br&amp;gt; &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | '''default Tx CAS'''&amp;lt;br&amp;gt; &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | '''SIP &amp;quot;cpc=&amp;quot;  &amp;lt;br&amp;gt;''' &lt;br /&gt;
|-&lt;br /&gt;
| subscriber&amp;lt;br&amp;gt; &lt;br /&gt;
| 0xa&amp;lt;br&amp;gt; &lt;br /&gt;
| CATEGORY_SUBSCRIBER &amp;lt;br&amp;gt; &lt;br /&gt;
| 1 and 7&amp;lt;br&amp;gt; &lt;br /&gt;
| 7&amp;lt;br&amp;gt; &lt;br /&gt;
| ordinary&amp;lt;br&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| subscriber_with_priority&amp;lt;br&amp;gt; &lt;br /&gt;
| 0xb&amp;lt;br&amp;gt; &lt;br /&gt;
| CATEGORY_SUBSCRIBER_WITH_PRIORITY &amp;lt;br&amp;gt; &lt;br /&gt;
| 2 and 9 &amp;lt;br&amp;gt; &lt;br /&gt;
| 2 &amp;lt;br&amp;gt; &lt;br /&gt;
| priority&amp;lt;br&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| operator_french&amp;lt;br&amp;gt; &lt;br /&gt;
| 0x1&amp;lt;br&amp;gt; &lt;br /&gt;
| CATEGORY_OPERATOR_FRENCH &amp;lt;br&amp;gt; &lt;br /&gt;
| 5 &amp;lt;br&amp;gt; &lt;br /&gt;
| 5 &amp;lt;br&amp;gt;&lt;br /&gt;
| operator&amp;lt;br&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| operator_english&amp;lt;br&amp;gt; &lt;br /&gt;
| 0x2&amp;lt;br&amp;gt; &lt;br /&gt;
| CATEGORY_OPERATOR_ENGLISH (5)&amp;lt;br&amp;gt; &lt;br /&gt;
| 5 &amp;lt;br&amp;gt; &lt;br /&gt;
| 5 &amp;lt;br&amp;gt;&lt;br /&gt;
| operator&amp;lt;br&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| operator_german&amp;lt;br&amp;gt; &lt;br /&gt;
| 0x3&amp;lt;br&amp;gt; &lt;br /&gt;
| CATEGORY_OPERATOR_GERMAN (5)&amp;lt;br&amp;gt; &lt;br /&gt;
| 5 &amp;lt;br&amp;gt; &lt;br /&gt;
| 5 &amp;lt;br&amp;gt;&lt;br /&gt;
| operator&amp;lt;br&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| operator_russian&amp;lt;br&amp;gt; &lt;br /&gt;
| 0x4&amp;lt;br&amp;gt; &lt;br /&gt;
| CATEGORY_OPERATOR_RUSSIAN (5)&amp;lt;br&amp;gt; &lt;br /&gt;
| 5 &amp;lt;br&amp;gt; &lt;br /&gt;
| 5 &amp;lt;br&amp;gt;&lt;br /&gt;
| operator&amp;lt;br&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| operator_spanish &amp;lt;br&amp;gt; &lt;br /&gt;
| 0x5&amp;lt;br&amp;gt; &lt;br /&gt;
| CATEGORY_OPERATOR_SPANISH (5)&amp;lt;br&amp;gt; &lt;br /&gt;
| 5 &amp;lt;br&amp;gt; &lt;br /&gt;
| 5 &amp;lt;br&amp;gt;&lt;br /&gt;
| operator&amp;lt;br&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| data&amp;lt;br&amp;gt; &lt;br /&gt;
| 0xc&amp;lt;br&amp;gt; &lt;br /&gt;
| CATEGORY_DATA &amp;lt;br&amp;gt; &lt;br /&gt;
| 6 and 8&amp;lt;br&amp;gt; &lt;br /&gt;
| 6 &amp;lt;br&amp;gt; &lt;br /&gt;
| datacall&amp;lt;br&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| test&amp;lt;br&amp;gt; &lt;br /&gt;
| 0xd&amp;lt;br&amp;gt; &lt;br /&gt;
| CATEGORY_TEST &amp;lt;br&amp;gt; &lt;br /&gt;
| 3 &amp;lt;br&amp;gt; &lt;br /&gt;
| 3 &amp;lt;br&amp;gt; &lt;br /&gt;
| test&amp;lt;br&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| payphone &amp;lt;br&amp;gt; &lt;br /&gt;
| 0xf&amp;lt;br&amp;gt; &lt;br /&gt;
| CATEGORY_PAYPHONE &amp;lt;br&amp;gt; &lt;br /&gt;
| none &amp;lt;br&amp;gt; &lt;br /&gt;
| 7 &amp;lt;br&amp;gt; &lt;br /&gt;
| payphone&amp;lt;br&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| unknown &amp;lt;br&amp;gt; &lt;br /&gt;
| 0x0 &amp;lt;br&amp;gt; &lt;br /&gt;
| CATEGORY_UNKNOWN&amp;lt;br&amp;gt; &lt;br /&gt;
| 4, 11 to 15&amp;lt;br&amp;gt; &lt;br /&gt;
| 7 &amp;lt;br&amp;gt; &lt;br /&gt;
| unknown&amp;lt;br&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| unspecified &amp;lt;br&amp;gt; &lt;br /&gt;
| 0xa &amp;lt;br&amp;gt; &lt;br /&gt;
| invalid &amp;lt;br&amp;gt; &lt;br /&gt;
| none &amp;lt;br&amp;gt; &lt;br /&gt;
| none &amp;lt;br&amp;gt; &lt;br /&gt;
| invalid &amp;lt;br&amp;gt; &lt;br /&gt;
|}&lt;br /&gt;
[[CAS_R2_scripting#Category_meanings|Link to calling party categories used in CAS R2 scripts]]&lt;br /&gt;
&lt;br /&gt;
=== Screening values for Calling number, Calling Subscriber (Generic Number), and Location Number  ===&lt;br /&gt;
The text below represents the value normally used by routing script.&amp;lt;br&amp;gt;&lt;br /&gt;
Incase it's required to use a value that's not defined in the text values below, a integer can be provided and will be used &amp;quot;as-is&amp;quot; in the signaling message.&amp;lt;br&amp;gt;&lt;br /&gt;
Example numeric values for the SS7 protocol are shown in parenthesis.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;unspecified&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;no (0x0)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;pass (0x1)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;fail (0x2)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;network_provided (0x3)&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Redirecting indicator values  ===&lt;br /&gt;
&lt;br /&gt;
SS7: &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;no_redirection&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;call_rerouted&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;call_rerouted_all_restricted&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;call_diverted&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;call_diverted_all_restricted&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;call_rerouted_restricted&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;call_diverted_restricted&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;spare&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Redirecting number, Original Called Number and Diversion Reason ===&lt;br /&gt;
&lt;br /&gt;
ISDN: &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;unknown&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;busy&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;no_reply&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;deflection&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;dte_out_of_order&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;forwarding_by_called_dte&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;unconditional&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
SS7: &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;unknown&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;busy      (SIP: user-busy)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;no_reply  (SIP: no-answer)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;unconditional&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;deflection&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;deflection_immediate&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;mobile_not_reachable&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== OLI (originating line information) values  ===&lt;br /&gt;
&lt;br /&gt;
The OLI parameter is a string that represents an integer value from 0 to 255. &lt;br /&gt;
&lt;br /&gt;
=== Information Transfer Capability values  ===&lt;br /&gt;
&lt;br /&gt;
information_transfer_capability: &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;digital&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;restricted_digital&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;digital_with_tones&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;speech&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;3_1_khz_audio&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;video&amp;lt;/tt&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== redirecting_number_forward_enabled values  ===&lt;br /&gt;
&lt;br /&gt;
Controls forwarding or discarding of redirecting number (SIP: diversion header) to the outgoing call leg. &lt;br /&gt;
&lt;br /&gt;
Values for this parameter are &amp;quot;0&amp;quot;, &amp;quot;1&amp;quot;, &amp;quot;false&amp;quot; or &amp;quot;true. &lt;br /&gt;
*0/false: Redirecting number (and original called number) is not forwarded to outgoing call leg&lt;br /&gt;
*1/true: Redirecting number (and original called number) is forwarded to outgoing call leg&lt;br /&gt;
&lt;br /&gt;
The value for this parameter at the input of the routing script depends on the &amp;quot;Forward redirecting number&amp;quot; parameter in the &amp;quot;Advanced&amp;quot; section of the Gateway configuration page of the Web Portal. The script may change this value to override the Gateway configuration.&lt;br /&gt;
&lt;br /&gt;
Note: To &amp;quot;insert&amp;quot; a new redirecting number value on the outgoing leg, redirecting_number_forward_enabled must also be set to true.&lt;br /&gt;
&lt;br /&gt;
=== request_uri  ===&lt;br /&gt;
&lt;br /&gt;
Enables access to the Request-Line URI.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
For example, if the Request-Line is: &lt;br /&gt;
&amp;lt;pre&amp;gt;Request-Line: INVITE sip:4175162082@172.22.45.13:5060;user=phone;transport=udp SIP/2.0&amp;lt;/pre&amp;gt; &lt;br /&gt;
Then the retrieved request_uri will be &amp;quot;sip:4175162082@172.22.45.13:5060;user=phone;transport=udp SIP/2.0&amp;quot;. &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
In the routing scripts, to retrieve only the called number, this script can be used:&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;    if call_params[:request_uri] &amp;amp;amp;&amp;amp;amp; call_params[:request_uri] =~ /sip:(.*)@.*/&lt;br /&gt;
       call_params[:called] = $1&lt;br /&gt;
    end&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
==== request_uri_forward_enabled ====&lt;br /&gt;
&lt;br /&gt;
This call parameter controls forwarding or discarding of request uri to outgoing call leg.The request uri is the information in the &amp;quot;Request-Line:&amp;quot; of the SIP INVITE message.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Values for this parameter are &amp;quot;0&amp;quot;, &amp;quot;1&amp;quot;, &amp;quot;false&amp;quot; or &amp;quot;true. &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
* 0/false: Request uri is not forwarded to outgoing call leg &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
* 1/true: Request uri is forwarded to outgoing call leg &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The default value for this parameters is false. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== sip_scheme  ====&lt;br /&gt;
(Available in Toolpack 3.1+)&lt;br /&gt;
This call parameters indicates the scheme (generally &amp;quot;sip&amp;quot; or &amp;quot;sips&amp;quot;) of the incoming call.&lt;br /&gt;
&lt;br /&gt;
This also allows to control the scheme used for the outgoing call (regardless if request_uri_forward_enabled is used or not)&lt;br /&gt;
&lt;br /&gt;
Note: sips scheme must only be used on TLS NAPs (will cause call routing failure if NAP has only UDP or TCP transport types).&lt;br /&gt;
&lt;br /&gt;
=== sip_header values  ===&lt;br /&gt;
Contains custom sip headers from the inbound call leg. Any custom sip header can be added to an outgoing call leg:&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note:'''&lt;br /&gt;
&lt;br /&gt;
The  SIP header is in string format.&lt;br /&gt;
&lt;br /&gt;
'''string format:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;call[ :sip_header ] = &amp;quot;P-my-custom-header:value1 \nP-my-custom-header2:value2 \nP-my-custom-header3:value3&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(Note: \n above are actual newline characters, not '\' followed by 'n')&lt;br /&gt;
&lt;br /&gt;
* PCAP sample: [[File:TB_Custom_SIP_Headers.pcap]]&lt;br /&gt;
&lt;br /&gt;
List of sip headers that will not appear in call[:sip_header] since they are already processed by the SIP stack:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Accept               Error-Info             Remote-Party-ID      &lt;br /&gt;
Accept-Contact       Event                  Replaces                        &lt;br /&gt;
Accept-Encoding      Expires                Reply-To               &lt;br /&gt;
Accept-Language      From                   Request-Disposition    &lt;br /&gt;
Alert-Info           In-Reply-To            Subject          &lt;br /&gt;
Allow                Max-Forwards           Subscription-State  &lt;br /&gt;
Allow-Events         MIME-version           Supported           &lt;br /&gt;
Also                 Min-Expires            Timestamp           &lt;br /&gt;
Anonymity            Min-SE                 To             &lt;br /&gt;
Authorization        Organization           Unsupported  &lt;br /&gt;
Authentication-Info  Path                   User-Agent  &lt;br /&gt;
Call-ID              Priority               Via  &lt;br /&gt;
Call-Info            Privacy                Warning  &lt;br /&gt;
Contact              Proxy-Authenticate     WWW-Authenticate  &lt;br /&gt;
Content-Disposition  Proxy-Authorization    Require  &lt;br /&gt;
Content-Encoding     Proxy-Require          Response-Key  &lt;br /&gt;
Content-Language     P-Media-Authorization  Retry-After  &lt;br /&gt;
Content-Length       P-Preferred-Identity   RPID-Privacy  &lt;br /&gt;
Content-Type         P-Asserted-Identity    Route  &lt;br /&gt;
CSeq                 RAck                   RSeq  &lt;br /&gt;
RAck                 Reason                 Security-Client  &lt;br /&gt;
Reason               Record-Route           Security-Server  &lt;br /&gt;
Date                 Refer-To               Security-Verify&lt;br /&gt;
Diversion            *Referred-By            Server&lt;br /&gt;
Encryption           Reject-Contact         Service-Route             &lt;br /&gt;
                                            Session-Expires&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note: Since version 3.0.57, Referred-By is now a SIP custom parameter&lt;br /&gt;
&lt;br /&gt;
=== sip header parameters  ===&lt;br /&gt;
The routing script can read (and modify) some SIP header parameters (user parameters, URI parameters or header parameters) from some SIP headers (To, From, P-Asserted-Identity, Remote-Party-ID, Contact).&lt;br /&gt;
&lt;br /&gt;
==== Available parameters ====&lt;br /&gt;
* '''call[ :calling_parameters ]''' (SIP &amp;quot;From&amp;quot; header)&lt;br /&gt;
* '''call[ :called_parameters ]''' (SIP &amp;quot;To&amp;quot; header)&lt;br /&gt;
* '''call[ :private_address_parameters ]''' (SIP &amp;quot;P-Asserted-Identity&amp;quot; or &amp;quot;Remote-Party-ID&amp;quot; header)&lt;br /&gt;
* '''call[ :supp_private_address_parameters ]''' (SIP supplementary/second &amp;quot;P-Asserted-Identity&amp;quot; header)&lt;br /&gt;
* '''call[ :preferred_id_parameters ]''' (SIP &amp;quot;P-Preferred-Identity&amp;quot; header)&lt;br /&gt;
* '''call[ :contact_parameters ]''' (SIP &amp;quot;Contact&amp;quot; header)&lt;br /&gt;
&lt;br /&gt;
These parameters (if present) contain a hash with 3 keys: user_param, uri_param and header_param.&lt;br /&gt;
Each of this key points to a string that contains all the parameters found in the corresponding SIP header.&lt;br /&gt;
* '''User parameters''' (parameters between the user name/number and the host). Example  &amp;lt;sip:alice;'''param=value'''@somewhere.com&amp;gt;&lt;br /&gt;
* '''URI parameters''' (parameters at the end of the URI). Example  &amp;lt;sip:alice@somewhere.com;'''param=value'''&amp;gt;&lt;br /&gt;
* '''Header parameters''' (outside the URI). Example  &amp;lt;sip:alice@somewhere.com&amp;gt;;'''param=value'''&lt;br /&gt;
Example to print all parameters of SIP &amp;quot;To&amp;quot; header:&lt;br /&gt;
  call[ :called_parameters ].inspect -&amp;gt; '{ :user_param =&amp;gt; &amp;quot;name1=value1;name2=value2&amp;quot;, :uri_param =&amp;gt; &amp;quot;name=value&amp;quot;, :header_param =&amp;gt; &amp;quot;name=value;example_param_without_value&amp;quot; }'&lt;br /&gt;
Example to modify (replace) the URI parameters of SIP &amp;quot;To&amp;quot; header:&lt;br /&gt;
  call[ :called_parameters ][ :uri_param ] = &amp;quot;user=phone&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Exceptions ====&lt;br /&gt;
'''Note:''' Some parameters are reported as their own call attribute (oli, isub, cpc, transport) so they have the same representation for all protocols (SS7, IDSN, SIP). They won't appear present in the generic SIP header parameters structures above.&lt;br /&gt;
&lt;br /&gt;
==== Forwarding from inbound to outbound call ====&lt;br /&gt;
&lt;br /&gt;
==== Legacy behavior ====&lt;br /&gt;
(For base_routing version 1.32 or older)&lt;br /&gt;
By default, the parameters are not forwarded in a SIP to SIP call flow. The parameters '''will be forwarded''' when:&lt;br /&gt;
* accessed (read) from either the inbound or outbound call parameters&lt;br /&gt;
* written in either the inbound or outbound call parameters&lt;br /&gt;
&lt;br /&gt;
==== Current behavior ====&lt;br /&gt;
(For Toolpack 3.0.118+, with base_routing version 1.33+)&lt;br /&gt;
SIP headers host and parameters are forwarded by default.&lt;br /&gt;
&lt;br /&gt;
A route attribute &amp;quot;forward_sip_domain&amp;quot; (along with filter script &amp;quot;forward_sip_domain.rb&amp;quot;) will control, per route, if SIP headers host+parameters must be forwarded.&lt;br /&gt;
&lt;br /&gt;
==== Example usage ====&lt;br /&gt;
Example to print the user parameters:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  if call[:calling_parameters]&lt;br /&gt;
    puts &amp;quot;user parameters = #{call[:calling_parameters][:user_param].inspect}&amp;quot;&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example SIP &amp;quot;From&amp;quot; header:&lt;br /&gt;
  From:&amp;lt;sip:123456782;test1=val1;test2=val2@something.com;test3=val3;test4=val4&amp;gt;;test5=val5;test6=val6&lt;br /&gt;
And the resulting content in the routing script:&lt;br /&gt;
  call[:calling_parameters].inspect -&amp;gt; {:user_param=&amp;gt;&amp;quot;test1=val1;test2=val2&amp;quot;, :uri_param=&amp;gt;&amp;quot;test3=val3;test4=val4&amp;quot;, :header_param=&amp;gt;&amp;quot;test5=val5;test6=val6&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
Example to overwrite inbound leg calling parameters with new parameters for the outbound leg:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
call [:calling_parameters] = { &lt;br /&gt;
  :user_param =&amp;gt; &amp;quot;user_param7=7;user_param8=8&amp;quot;,&lt;br /&gt;
  :uri_param =&amp;gt; &amp;quot;uri_param9=value9&amp;quot;,&lt;br /&gt;
  :header_param =&amp;gt; &amp;quot;header_paramA=A&amp;quot; }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example to add user=phone and keep all other uri parameters.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  call[:calling_parameters] ||= {} # Create a hash if not already present&lt;br /&gt;
  call[:calling_parameters][:uri_param] ||= &amp;quot;&amp;quot; # Create a string if not already present&lt;br /&gt;
  call[:calling_parameters][:uri_param] += &amp;quot;;&amp;quot; if call[:calling_parameters][:uri_param] != &amp;quot;&amp;quot;&lt;br /&gt;
  call[:calling_parameters][:uri_param] += &amp;quot;user=phone&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MLPP Precedence values  ===&lt;br /&gt;
&lt;br /&gt;
mlpp_look_for_busy: &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;allowed&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;path_reserved&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;not_allowed&amp;lt;/tt&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
mlpp_precedence_level: &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;flash_override&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;flash&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;immediate&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;priority&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;routine&amp;lt;/tt&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
mlpp_network_identity:&lt;br /&gt;
&lt;br /&gt;
3 digits value from 0 to 999&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
mlpp_service_domain:&lt;br /&gt;
&lt;br /&gt;
24 bits value from 0 to 16777215&lt;br /&gt;
&lt;br /&gt;
=== ISUB subaddress information values  ===&lt;br /&gt;
&lt;br /&gt;
called_isub_type: &lt;br /&gt;
calling_isub_type: &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;nsap&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;nsap_ia5&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;nsap_bcd&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;user&amp;lt;/tt&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
called_isub: &lt;br /&gt;
calling_isub: &lt;br /&gt;
&lt;br /&gt;
Digits for the subaddress information.&lt;br /&gt;
&lt;br /&gt;
=== Network Identification Plan  ===&lt;br /&gt;
&lt;br /&gt;
network_identification_plan: &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;Unknown&amp;lt;/tt&amp;gt; (value 0)&lt;br /&gt;
*&amp;lt;tt&amp;gt;cic&amp;lt;/tt&amp;gt; (3 digits carrier identification code plus circuit code, value 1, SS7 or ISDN)&lt;br /&gt;
*&amp;lt;tt&amp;gt;user&amp;lt;/tt&amp;gt; (User, value 2, ISDN only)&lt;br /&gt;
*&amp;lt;tt&amp;gt;cic4&amp;lt;/tt&amp;gt; (4 digits carrier identification code plus circuit code, value 2, SS7 only) &lt;br /&gt;
*&amp;lt;tt&amp;gt;dnic&amp;lt;/tt&amp;gt; (public Data Network ID, value 3, SS7 only) &lt;br /&gt;
*&amp;lt;tt&amp;gt;mnic&amp;lt;/tt&amp;gt; (public land mobile network, value 6, SS7 only)&lt;br /&gt;
&lt;br /&gt;
=== Registered Users Information ===&lt;br /&gt;
Routing script can access information about registered users (when either the calling or called user is a known registered user).&lt;br /&gt;
When these fields are empty, it means that the calling/called (SIP from/to) does not correspond to a known registered user (routing script may still decide to route the call based on static routes).&lt;br /&gt;
&lt;br /&gt;
Information for the called user:&lt;br /&gt;
  params[:registered_user]&lt;br /&gt;
Information for the calling user:&lt;br /&gt;
  params[:calling_registered_user]&lt;br /&gt;
&lt;br /&gt;
These parameters are a hash of key/values that provide information about the contact.&lt;br /&gt;
  {&lt;br /&gt;
    :contact_list=&amp;gt;&lt;br /&gt;
    [&lt;br /&gt;
      {&lt;br /&gt;
        :contact=&amp;gt;&amp;quot;&amp;lt;sip:user_name_or_number@hostname:7070;transport=UDP&amp;gt;&amp;quot;,    -&amp;gt; Full contact&lt;br /&gt;
        :expires=&amp;gt;&amp;quot;60&amp;quot;,                   -&amp;gt; Contact expiry time (seconds)&lt;br /&gt;
        :host=&amp;gt;&amp;quot;hostname&amp;quot;,                -&amp;gt; host name from the contact header&lt;br /&gt;
        :name=&amp;gt;&amp;quot;user_name_or_number&amp;quot;,     -&amp;gt; user name from the contact header&lt;br /&gt;
        :nap_in=&amp;gt;&amp;quot;NAP_NAME&amp;quot;,              -&amp;gt; NAP that the contact has registered from&lt;br /&gt;
        :port=&amp;gt;&amp;quot;7070&amp;quot;,                    -&amp;gt; Port from the contact header&lt;br /&gt;
        :transport=&amp;gt;&amp;quot;UDP&amp;quot;                 -&amp;gt; Transport type from the contact header&lt;br /&gt;
        :q_value=&amp;gt;&amp;quot;0.00&amp;quot;,                 -&amp;gt; Q-value for the contact (for contact ordering)&lt;br /&gt;
        :src_host=&amp;gt;&amp;quot;10.0.0.10&amp;quot;,           -&amp;gt; Actual source IP address that the contact has registered from&lt;br /&gt;
        :src_port=&amp;gt;&amp;quot;7070&amp;quot;,                -&amp;gt; Actual source port that the contact has registered from&lt;br /&gt;
        :src_transport=&amp;gt;&amp;quot;UDP&amp;quot;,            -&amp;gt; Actual protocol that the contact has been registering with&lt;br /&gt;
       }&lt;br /&gt;
     ]&lt;br /&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_destination_leg_profile (called remapped_profile prior to Toolpack 2.9)&lt;br /&gt;
*remapped_source_leg_profile (called remapped_incoming_profile prior to Toolpack 2.9)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
  route[:remapped_nap]&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;
For example:&lt;br /&gt;
*priority&lt;br /&gt;
*weight&lt;br /&gt;
&lt;br /&gt;
== Routing calls toward registered users ==&lt;br /&gt;
Static routes normally chose an outbound NAP to forward the call to.&lt;br /&gt;
&lt;br /&gt;
But it's also possible to create routes which outbound NAP is dynamically chosen by matching a registered user (when using [[Sip_registration_forwarding|SIP registration forwarding]]).&lt;br /&gt;
&lt;br /&gt;
More information can be found [[Sip_registration_forwarding#SIP_Calls_routing|here]] about the way to control the [[Sip_registration_forwarding#SIP_Calls_routing|priority of &amp;quot;dynamic&amp;quot; vs &amp;quot;static&amp;quot; routes]].&lt;br /&gt;
&lt;br /&gt;
More information can be found [[#Registered_Users_Information|here]] about using routing scripts to access registered users information during call routing.&lt;br /&gt;
&lt;br /&gt;
== Playing prompts announcements or tones  ==&lt;br /&gt;
&lt;br /&gt;
New feature in release 2.6, all bridges may have these parameters. These can be used to play IVR prompts (audio files) in different states of the call flow.&lt;br /&gt;
&lt;br /&gt;
*'''announcement_tone''' (played before outgoing call is routed)&lt;br /&gt;
*'''ring_tone''' (played after when waiting for outgoing call to answer)&lt;br /&gt;
*'''busy_tone''' (played if outgoing call failed)&lt;br /&gt;
*'''disconnect_tone''' (played after the call has reached it's maximum duration)&lt;br /&gt;
&lt;br /&gt;
Example to play an announcement to incoming call (before routing outgoing call, regardless if a matching route is found or not):&lt;br /&gt;
  bridge[:announcement_tone ] = &amp;quot;my_announcement.wav&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Example to play a ring-tone while the outgoing call is ringing:&lt;br /&gt;
  bridge[:ring_tone] = &amp;quot;my_ring_tone.wav&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Example to play an audio file when outgoing call fails (no route, or outgoing call is refused):&lt;br /&gt;
  bridge[:busy_tone] = &amp;quot;my_busy_tone.wav&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Example to play an audio file when call has reached the maximum allowed duration:&lt;br /&gt;
  bridge[:disconnect_tone] = &amp;quot;your_account_balance_is_empty.wav&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Announcement file path format and options ===&lt;br /&gt;
&lt;br /&gt;
All file plabyacks (:announcement_tone,&amp;amp;nbsp;:busy_tone,&amp;amp;nbsp;:ring_tone,&amp;amp;nbsp;:disconnect_tone) inside bridge parameters use this format. &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;quot;file1.wav:repeat:start_off:end_off,file2.wav:repeat:start_off:end_off,file3.wav:repeat:start_off:end_off&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
Optional parameters:&lt;br /&gt;
* repeat: number of times to play the file (0 and 1 have the same result)&lt;br /&gt;
* start_off: Start offset in milliseconds&lt;br /&gt;
* end_off: End offset in milliseconds&lt;br /&gt;
&lt;br /&gt;
Http and other path formats are described here: [[Customer_application_framework:play_audio_files#Play_path_format|Path format]]&lt;br /&gt;
&lt;br /&gt;
==== Example 1 ====&lt;br /&gt;
The following example will play file1.wav once, and then play file2.wav in loop: &lt;br /&gt;
  &amp;quot;file1.wav,file2.wav:-1&amp;quot; &lt;br /&gt;
&lt;br /&gt;
==== Example 2 ====&lt;br /&gt;
The following example will play file1.wav from start offset of 1 second to end offset of 3 seconds, then twice file2.wav from second 5 to second 10.&lt;br /&gt;
  &amp;quot;file1.wav:0:1000:3000,file2.wav:2:5000:10000&amp;quot; &lt;br /&gt;
&lt;br /&gt;
==== Example 3 ====&lt;br /&gt;
The following example will play file1.wav once, ending at offset of 30 seconds.&lt;br /&gt;
  &amp;quot;file1.wav:0:0:30000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== announcement_tone  ===&lt;br /&gt;
&lt;br /&gt;
  params[:bridge][:announcement_tone] = &amp;quot;announcement.wav&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Audio file played on the incoming call before any outgoing call is placed. The outgoing call occurs when the file finished playing.&lt;br /&gt;
&lt;br /&gt;
==== announcement_tone options ====&lt;br /&gt;
===== announcement_tone_answer =====&lt;br /&gt;
  params[:bridge][:announcement_tone_answer] = &amp;quot;yes&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Forces an answer of the call before playing the announcement. Default if argument not provided is &amp;quot;no&amp;quot;, in which case call is only alerted with in-band media.&lt;br /&gt;
&lt;br /&gt;
===== announcement_code_detect =====&lt;br /&gt;
This option allows that the tone detection is enabled during the announcement play.&lt;br /&gt;
&lt;br /&gt;
Collected digits can be inserted into the CDR logs (radius attribute &amp;quot;Telcob-CollectedDigits&amp;quot;, or text CDR variable @{CollectedDigits}).&lt;br /&gt;
&lt;br /&gt;
Collected digits can also be sent back to routing script, which is called again with the same call attributes, except that the called number is replaced by the collected digits.&lt;br /&gt;
&lt;br /&gt;
Code detect has multiple options, as shown in the following code:&lt;br /&gt;
  code_detect = {&lt;br /&gt;
    :type                   =&amp;gt; :DTMF,   # :DTMF or :MFR1 tone detection.&lt;br /&gt;
                                        # Default is MFR1.&lt;br /&gt;
    :prefix                 =&amp;gt; &amp;quot;&amp;quot;,      # Prefix (digits) that is removed from collected digits.&lt;br /&gt;
                                        # Default is empty.&lt;br /&gt;
    :suffix                 =&amp;gt; &amp;quot;&amp;quot;,      # Suffix (digits) that is removed from collected digits&lt;br /&gt;
                                        # and causes routing script to be immediately called.&lt;br /&gt;
                                        # Default is empty.&lt;br /&gt;
    :suffix_removal         =&amp;gt; false,   # Controls the removal of the suffix from the collected digit string that's reported to routing script.&lt;br /&gt;
                                        # Default is false&lt;br /&gt;
    :timeout                =&amp;gt; 0,       # Inter-digit timeout (ms) after which collected digits are passed to the routing script.&lt;br /&gt;
                                        # Use 0 for &amp;quot;no timeout&amp;quot;.&lt;br /&gt;
                                        # Default is 1000ms&lt;br /&gt;
    :barge_in_interruption  =&amp;gt; true,    # When enabled, playing announcement is stopped as soon as first digit is collected.&lt;br /&gt;
                                        # Default is true.&lt;br /&gt;
    :proceed_on_play_done   =&amp;gt; false,   # When true:  Outgoing call is made after announcement finishes playing.&lt;br /&gt;
                                        #             Routing script is not called again.&lt;br /&gt;
                                        # When false: Outgoing call is never made.&lt;br /&gt;
                                        #             Digits are collected until timeout or suffix match,&lt;br /&gt;
                                        #             then routing script is called again.&lt;br /&gt;
                                        # Default is false.&lt;br /&gt;
    :cas_on_hook            =&amp;gt; false,   # Specific for CAS-R1 calls. Makes CAS bits switch to &amp;quot;on-hook&amp;quot; when announcement finished playing&lt;br /&gt;
                                        # (but the call is not &amp;quot;terminated&amp;quot; from Toolpack point of view)&lt;br /&gt;
                                        # Default is false.&lt;br /&gt;
    :cas_on_hook_delay      =&amp;gt; 0,       # Duration of cas bits &amp;quot;on-hook&amp;quot; state.&lt;br /&gt;
                                        # Only effective if cas_on_hook is set to true.&lt;br /&gt;
                                        # Value of 0 stands for &amp;quot;infinite delay&amp;quot;.&lt;br /&gt;
                                        # Default is 0.&lt;br /&gt;
    :repeat_delay           =&amp;gt; 0,       # Delay between repetition of the announcement. The announcement will repeat&lt;br /&gt;
                                        # itself every &amp;quot;repeat_delay&amp;quot; until a code is detected (suffix match or timetout).&lt;br /&gt;
                                        # Value of 0 stands for &amp;quot;infinite delay&amp;quot; (no repeating).&lt;br /&gt;
                                        # Default is 0.&lt;br /&gt;
  }&lt;br /&gt;
'''Example 1''': Collect DTMF digits, and call routing script again with collected digits upon timeout or suffix match.&lt;br /&gt;
  code_detect = { :type =&amp;gt; :DTMF, :suffix =&amp;gt; &amp;quot;#&amp;quot;, :timeout =&amp;gt; 5000 }&lt;br /&gt;
  params[:bridge][:announcement_code_detect] = code_detect&lt;br /&gt;
&lt;br /&gt;
'''Example 2''': Collect digits during the announcement (for CDR logs), then proceed (make outgoing call) after announcement finishes playing&lt;br /&gt;
  code_detect = { :type =&amp;gt; :DTMF, :timeout =&amp;gt; 0, :barge_in_interruption =&amp;gt; false, :proceed_on_play_done =&amp;gt; true }&lt;br /&gt;
  params[:bridge][:announcement_code_detect] = code_detect&lt;br /&gt;
&lt;br /&gt;
==== Controlling what happens after announcement ====&lt;br /&gt;
The routing script can control what happens with the call after the announcement finishes playing:&lt;br /&gt;
* An outgoing call is made&lt;br /&gt;
* Incoming call is hung-up&lt;br /&gt;
* Do nothing (wait for the incoming call to hang-up)&lt;br /&gt;
===== An outgoing call is made =====&lt;br /&gt;
This happens when the script has returned matching routes (and did not raise RoutingException)&lt;br /&gt;
&lt;br /&gt;
===== Incoming call is hung-up =====&lt;br /&gt;
This happens when the script returns no routes (in which case base_routing will raise RoutingException with cause :no_route).&lt;br /&gt;
&lt;br /&gt;
It also happens when the script explicitly raises RoutingException.&lt;br /&gt;
&lt;br /&gt;
The incoming call will be terminated with the specified cause.&lt;br /&gt;
For example&lt;br /&gt;
    raise RoutingException, :temporary_failure&lt;br /&gt;
(See &amp;quot;Reason values&amp;quot; section in this page for list of available causes)&lt;br /&gt;
&lt;br /&gt;
===== Do nothing (wait for the incoming call to hang-up) =====&lt;br /&gt;
If a filter raises RoutingException with code :ok, then the incoming call will not be terminated at the end of the announcement play.&lt;br /&gt;
Announcement digit collection will remain active if appropriate.&lt;br /&gt;
For example:&lt;br /&gt;
    raise RoutingException, :ok&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== ring_tone  ===&lt;br /&gt;
  params[:bridge][:ring_tone] = &amp;quot;ringing.wav&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Audio file played on the incoming call while waiting for the outgoing call to be answered.&lt;br /&gt;
&lt;br /&gt;
Ring tone playback can also be configured in the Web Portal, from the incoming call's profile (under &amp;quot;Tones and Call Progress Options&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Routing script has precedence over profile (a routing script that fills params[:bridge][:ring_tone] will override the profile's ring tone behavior).&lt;br /&gt;
&lt;br /&gt;
==== ring_tone options ====&lt;br /&gt;
===== ring_tone_state =====&lt;br /&gt;
  params[:bridge][:ring_tone_state] = :alerted&lt;br /&gt;
&lt;br /&gt;
Call state from which ring tone is being played. Available values are:&lt;br /&gt;
* '''immediately''':  Ring tone starts playing immediately on the incoming leg&lt;br /&gt;
* '''accepted''':     Ring tone starts playing as soon as outgoing call is accepted&lt;br /&gt;
* '''callprogress''': Ring tone starts playing as soon as &amp;quot;call progress&amp;quot; is received on the outgoing call&lt;br /&gt;
* '''alerted''' (default):      Ring tone starts playing only once outgoing call is alerted (but won't play if alert indicates early media from outgoing call)&lt;br /&gt;
&lt;br /&gt;
This option also apply when params[:bridge][:ring_tone] is not used, because it also apply to ring tone playback configured in the Web Portal, from the incoming call's profile.&lt;br /&gt;
&lt;br /&gt;
=== busy_tone  ===&lt;br /&gt;
  Toolpack 2.8 and above:&lt;br /&gt;
    params[:bridge][:busy_tone] = &amp;quot;no_route.wav&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  Note: Obsolete name (toolpack 2.7.153 and earlier, but still supported in recent releases):&lt;br /&gt;
    params[:bridge][:call_progress_tone] = &amp;quot;no_route.wav&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Audio file played on the incoming call when outgoing call fails (never answered).&lt;br /&gt;
&lt;br /&gt;
Note that announcement_tone, if used, is played before the outgoing call attempt is made, and thus before the busy_tone.&lt;br /&gt;
&lt;br /&gt;
Busy tone playback can also be configured in the Web Portal, from the incoming call's profile (under &amp;quot;Tones and Call Progress Options&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Routing script has precedence over profile (a routing script that fills params[:bridge][:busy_tone] will override the profile's busy tone behavior).&lt;br /&gt;
&lt;br /&gt;
Special value '''&amp;quot;none&amp;quot;''' can be used by routing script to force playing nothing (as empty string would default to profile's behavior)&lt;br /&gt;
&lt;br /&gt;
==== busy_tone options ====&lt;br /&gt;
===== busy_tone_answer =====&lt;br /&gt;
  params[:bridge][:busy_tone_answer] = &amp;quot;yes&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Forces an answer of the call before playing the busy tone. Default if argument not provided is &amp;quot;no&amp;quot;, in which case call is only alerted with in-band media.&lt;br /&gt;
&lt;br /&gt;
=== disconnect_tone  ===&lt;br /&gt;
  params[:bridge][:disconnect_tone] = &amp;quot;max_duration.wav&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Audio file played on the incoming call when call duration (:max_call_duration) is reached. Then the leg will be terminated with specified reason (:call_duration_reason).&lt;br /&gt;
&lt;br /&gt;
==== disconnect_tone options ====&lt;br /&gt;
===== max_call_duration  =====&lt;br /&gt;
  params[:bridge][:max_call_duration] = &amp;quot;60000&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Maximum call duration in millisecond. This timer is started when entering answer state.&lt;br /&gt;
&lt;br /&gt;
===== call_duration_reason  =====&lt;br /&gt;
  params[:bridge][:call_duration_reason] =&amp;amp;nbsp;:resource_unavailable &lt;br /&gt;
&lt;br /&gt;
Drop both legs with this reason when call duration (:max_call_duration) is reached.&lt;br /&gt;
&lt;br /&gt;
=== Managing audio prompts through Web Portal ===&lt;br /&gt;
Audio prompts can be uploaded or deleted from the TMedia unit through the Web Portal:&lt;br /&gt;
[[Toolpack:Configuring_Audio_Prompts_A|Managing audio prompts]]&lt;br /&gt;
&lt;br /&gt;
Prompts management must be done using the Web Portal of the primary server (in systems with redundant TMedia units or redundant host servers).&lt;br /&gt;
The file will automatically get replicated to the secondary server.&lt;br /&gt;
&lt;br /&gt;
=== Managing audio prompts manually ===&lt;br /&gt;
Any file on the TMedia host file system can be played. This means it's possible to manage prompts through ssh/scp.&lt;br /&gt;
&lt;br /&gt;
==== The default (replicated) prompts folder ====&lt;br /&gt;
By default, when playing a prompt, Toolpack will look in the default prompts folder:&lt;br /&gt;
 /lib/tb/toolpack/pkg/prompts&lt;br /&gt;
The root of this &amp;quot;prompts&amp;quot; directory is automatically replicated to secondary unit of redundant setups (1+1, N+1, redundant hosts). Sub-folders won't be replicated.&lt;br /&gt;
&lt;br /&gt;
Any prompt play request without explicit file path will map to this folder. For example:&lt;br /&gt;
  params[:bridge][:busy_tone] = &amp;quot;no_route.wav&amp;quot; &lt;br /&gt;
This will correspond to file /lib/tb/toolpack/pkg/prompts/no_route.wav&lt;br /&gt;
&lt;br /&gt;
==== Relative file paths ====&lt;br /&gt;
Any file path that begins with &amp;quot;file://&amp;quot; is considered relative to the tbstreamserver application's working directory:&lt;br /&gt;
 /lib/tb/toolpack/setup/12358/2.8/apps/tbstreamserver/&lt;br /&gt;
(Where &amp;quot;2.8&amp;quot; may be replaced by the current major version of your system)&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
  params[:bridge][:busy_tone] = &amp;quot;file://my_folder/no_route.wav&amp;quot; &lt;br /&gt;
This will correspond to file /lib/tb/toolpack/setup/12358/2.8/apps/tbstreamserver/my_folder/no_route.wav&lt;br /&gt;
&lt;br /&gt;
==== Absolute file paths ====&lt;br /&gt;
Absolute paths can also be provided.&lt;br /&gt;
For example:&lt;br /&gt;
  params[:bridge][:busy_tone] = &amp;quot;file:///root/my_folder/no_route.wav&amp;quot; &lt;br /&gt;
This will correspond to file /root/my_folder/no_route.wav&lt;br /&gt;
&lt;br /&gt;
== Recording call legs  ==&lt;br /&gt;
Introduced in release 2.6.44, it's now possible to use routing scripts to ask for recording incoming and/or outgoing call legs.&lt;br /&gt;
&lt;br /&gt;
See example filter script &amp;quot;call_recording&amp;quot; (created by default in Web Portal routing scripts starting with 2.6.44) for an example.&lt;br /&gt;
&lt;br /&gt;
=== Recording the incoming call leg  ===&lt;br /&gt;
To record the incoming call leg, the routing script (in a &amp;quot;after filter&amp;quot; for example) has to set the following parameter:&lt;br /&gt;
&lt;br /&gt;
  bridge[ :record_incoming ]  = &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Recording the outgoing call leg  ===&lt;br /&gt;
To record the outgoing call leg, the routing script (in a &amp;quot;after filter&amp;quot; for example) has to set the following parameter, per route (the decision to record or not, or the file name to record to, can be set per matching route):&lt;br /&gt;
&lt;br /&gt;
  # Need to clone the routes in order to have the right to modify them&lt;br /&gt;
  routes = clone_routes params[:routes]&lt;br /&gt;
  routes.each do |route|&lt;br /&gt;
    route[ :record_outgoing ]  = &amp;quot;&amp;quot;&lt;br /&gt;
  end&lt;br /&gt;
  # Store modified routes back to the parameters for this outgoing call&lt;br /&gt;
  params[:routes] = routes&lt;br /&gt;
&lt;br /&gt;
=== Record the outgoing call leg within incoming leg's recorded file (mixing)  ===&lt;br /&gt;
  [...]&lt;br /&gt;
    route[ :record_outgoing ]  = &amp;quot;@{MixWithIncoming}&amp;quot;&lt;br /&gt;
  [...]&lt;br /&gt;
&lt;br /&gt;
=== Choosing file path to record to  ===&lt;br /&gt;
The value assigned to &amp;quot;:record_incoming&amp;quot; or &amp;quot;:record_outgoing&amp;quot; is the path to record the file to.&lt;br /&gt;
&lt;br /&gt;
The paths can be absolute, or relative. When relative, they are relative to the &amp;quot;tbstreamserver&amp;quot; application working directory, for example:&lt;br /&gt;
  /lib/tb/toolpack/setup/12358/2.7/apps/tbstreamserver/&lt;br /&gt;
&lt;br /&gt;
* Empty file name will default to a name that contains various information about the call:&lt;br /&gt;
** ''LinkId'':     Id common between all legs of this call bridge&lt;br /&gt;
** ''LegId'':      Unique Id for this leg&lt;br /&gt;
** ''Nap'':        Current NAP name this call leg is from&lt;br /&gt;
** ''Direction'':  &amp;quot;IN&amp;quot; or &amp;quot;OUT&amp;quot; (depends if call leg is incoming or outgoing leg)&lt;br /&gt;
** ''Calling'':    The calling number of this call leg&lt;br /&gt;
** ''Called'':     The called number of this call leg&lt;br /&gt;
** ''Protocol'':   The signaling protocol of this call leg (SS7, ISDN, CAS, SIP)&lt;br /&gt;
** ''Media info'': Codec + IP/Port for SIP calls, Trunk/Timeslot for TDM calls&lt;br /&gt;
* To record outgoing call leg in the same audio file as incoming call leg (mixing), use the following:&lt;br /&gt;
** @{MixWithIncoming}: Record outgoing legs in same file as incoming legs&lt;br /&gt;
* Variables can be used to insert in the recording path information that's not already available from routing scripts:&lt;br /&gt;
** @{CURRENT_PKG}: Version of current package&lt;br /&gt;
*** Example: 2.6.45&lt;br /&gt;
** @{DATE format}: Prints the date, where 'format' is expressed as described for the 'strftime' function&lt;br /&gt;
*** Example: @{DATE %Y-%m-%d} =&amp;gt; 2013-01-28&lt;br /&gt;
** @{DefaultName}: Replaced by the default file name for recording, which contains:&lt;br /&gt;
*** LinkId:     Id common between all legs of this call bridge&lt;br /&gt;
*** LegId:      Unique Id for this leg&lt;br /&gt;
*** Nap:        Current NAP name this call leg is from&lt;br /&gt;
*** Direction:  &amp;quot;IN&amp;quot; or &amp;quot;OUT&amp;quot; (depends if call leg is incoming or outgoing leg)&lt;br /&gt;
*** Calling:    Calling number&lt;br /&gt;
*** Called:     Called number&lt;br /&gt;
*** Protocol:   Protocol type of this call (SS7, ISDN, CASR2, SIP)&lt;br /&gt;
*** Media info: Codec + IP/Port for SIP calls, Trunk/Timeslot for TDM calls&lt;br /&gt;
*** Example: &amp;quot;73EBA698-F3D67B4B-NAP_SS7-IN-5550000-5550001-SS7-TRUNK_BELL_11-24.wav&amp;quot;&lt;br /&gt;
*** Example: &amp;quot;73EBA698-73EBA698-NAP_SIP-OUT-5550000-5550001-SIP-G723-10.3.10.101-1050.wav&amp;quot;&lt;br /&gt;
** @{DefaultPath}:  Default recording folder and file name: &amp;quot;@{RECORD_PATH}/@{DATE %Y-%m-%d}/@{DefaultName}&amp;quot;&lt;br /&gt;
*** Example: &amp;quot;/lib/tb/toolpack/setup/12358/recorded_calls/73EBA698-F3D67B4B-NAP_SS7-IN-5550000-5550001-SS7-TRUNK_BELL_11-24.wav&amp;quot;&lt;br /&gt;
*** Example: &amp;quot;/lib/tb/toolpack/setup/12358/recorded_calls/73EBA698-73EBA698-NAP_SIP-OUT-5550000-5550001-SIP-G723-10.3.10.101-1050.wav&amp;quot;&lt;br /&gt;
** @{Direction}: Direction of current leg (IN our OUT)&lt;br /&gt;
*** Example: IN&lt;br /&gt;
** @{LegId}: Current LegId (Unique Id for this leg)&lt;br /&gt;
*** Example: F3D67B4B&lt;br /&gt;
** @{LinkId}: Current LinkId (Id common between all legs of this call bridge)&lt;br /&gt;
*** Example: 73EBA698&lt;br /&gt;
** @{PKG_HOME}: Path where packages are stored.&lt;br /&gt;
*** Note: It's not recomended to use that path on redundant systems, package file replication may cause confusion in recorded files.&lt;br /&gt;
*** Example: /lib/tb/toolpack/pkg&lt;br /&gt;
** @{PROMPT_PATH}: Default path where audio prompts are stored&lt;br /&gt;
*** Note: It's not recomended to use that path on redundant systems, package file replication may cause confusion in recorded files.&lt;br /&gt;
*** Example: /lib/tb/toolpack/pkg/prompts&lt;br /&gt;
** @{Protocol}: Protocol of current leg&lt;br /&gt;
*** Example: SS7&lt;br /&gt;
** @{RECORD_PATH}: Default recording folder: &amp;quot;@{TB_SETUP_HOME}/recorded_calls/&amp;quot;&lt;br /&gt;
** @{TBX_GW_PORT}: Current &amp;quot;System Id&amp;quot; (also called &amp;quot;Gateway Port&amp;quot;)&lt;br /&gt;
*** Example: 12358&lt;br /&gt;
** And all variables listed here: [[Customer_application_framework:play_audio_files#Helpful_variables_to_build_play_or_record_file_paths|Building play or record file path]]&lt;br /&gt;
&lt;br /&gt;
== Controlling UUI (user-to-user information) relay  ==&lt;br /&gt;
UUI (user-to-user information) can be present in different messages received by either call leg during a call. For example, information can be carried during the initial invite, other information can be carried when the call is alerted, answered, or terminated.&lt;br /&gt;
&lt;br /&gt;
Routing scripts can control if the UUI received from one leg through the call will be forwarded to the other call leg:&lt;br /&gt;
*uui_forward_enabled&lt;br /&gt;
&lt;br /&gt;
Routing scripts can also read and modify the UUI received with the incoming call leg, before it gets forwarded upon creation of the outgoing call leg:&lt;br /&gt;
*uui &lt;br /&gt;
&lt;br /&gt;
=== UUI (user-to-user indication) values  ===&lt;br /&gt;
&lt;br /&gt;
Byte array represented as ruby String. Use ''bridge=params[:bridge]'', then ''bridge[:uui]'' to access the data.&lt;br /&gt;
&lt;br /&gt;
To access the bytes in Ruby, use ruby String operator []. For example:  bridge[:uui][0] will return the binary value of the first UUI byte.&lt;br /&gt;
&lt;br /&gt;
Function each_byte can also be useful to iterate through all bytes of the UUI.&lt;br /&gt;
&lt;br /&gt;
=== uui_forward_enabled values  ===&lt;br /&gt;
&lt;br /&gt;
Controls forwarding or discarding of UUI to outgoing call leg. &lt;br /&gt;
&lt;br /&gt;
Values for this parameter are &amp;quot;0&amp;quot;, &amp;quot;1&amp;quot;, &amp;quot;false&amp;quot; or &amp;quot;true.&lt;br /&gt;
* 0/false: UUI is not forwarded between call legs&lt;br /&gt;
* 1/true: UUI is forwarded between call legs&lt;br /&gt;
&lt;br /&gt;
The value for this parameter at input of routing script depends on the &amp;quot;Forward UUI&amp;quot; parameter in the &amp;quot;Advanced&amp;quot; section of the Gateway configuration page of the Web Portal. The script may change this value to override the Gateway configuration.&lt;br /&gt;
&lt;br /&gt;
== Authorization ==&lt;br /&gt;
Starting with release 2.7, it is possible to issue RADIUS authorization requests from routing scripts. To do so, the params[:authorization] object must be filled with the required RADIUS attributes and [[#Refuse|an exception must be raised]] with reason :authorization_required.&lt;br /&gt;
&lt;br /&gt;
When the authorization is completed, the routing script is called again with the result. The params[:authorization] object will be filled with the RADIUS attributes from the response. The params[:authorization][:result] field will also contain a string indicating the result of the authorization:&lt;br /&gt;
&lt;br /&gt;
* ''accept'': The authorization was successful.&lt;br /&gt;
* ''reject'': The authorization was refused.&lt;br /&gt;
* ''challenge'': The authorization was challenged.&lt;br /&gt;
* ''timeout'': The authorization was not answered.&lt;br /&gt;
&lt;br /&gt;
== ENUM Query ==&lt;br /&gt;
Starting with release 3.1, it is possible to issue ENUM Query requests to DNS servers from routing scripts. To do so, the params[:enum_query] object must be filled with the required ENUM Query attributes params[:enum_query][:fqdn] and [[#Refuse|an exception must be raised]] with reason :enum_query_required.&lt;br /&gt;
&lt;br /&gt;
When ENUM Query completes, the routing script is called again with the result. The params[:enum_query] object will be filled with the ENUM Query attributes from the response. The params[:enum_query][:result] field will also contain a string indicating the result of the ENUM Query:&lt;br /&gt;
&lt;br /&gt;
* ''ok'': The ENUM Query was successful.&lt;br /&gt;
* ''timeout'': The ENUM Query was not answered.&lt;br /&gt;
&lt;br /&gt;
The params[:enum_query][:responses_list] field will contain a list of hash responses for each NAPTR records. &lt;br /&gt;
&lt;br /&gt;
NAPTR records contain:&lt;br /&gt;
* '':uri''&lt;br /&gt;
* '':order''&lt;br /&gt;
* '':preference''&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  params[:enum_query][:responses_list]&lt;br /&gt;
    [{:order=&amp;gt;&amp;quot;200&amp;quot;, :preference=&amp;gt;&amp;quot;10&amp;quot;, :uri=&amp;gt;&amp;quot;!^03111.*$!sip:123456782@example-2.com!&amp;quot;}, &lt;br /&gt;
     {:order=&amp;gt;&amp;quot;100&amp;quot;, :preference=&amp;gt;&amp;quot;1&amp;quot;, :uri=&amp;gt;&amp;quot;!^03222.*$!sip:123456782@example-3.com!&amp;quot;}, &lt;br /&gt;
     {:order=&amp;gt;&amp;quot;200&amp;quot;, :preference=&amp;gt;&amp;quot;1&amp;quot;, :uri=&amp;gt;&amp;quot;!^03111.*$!sip:123456782@example-1.com!&amp;quot;}]&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Using enum_called_remap.rb before filter script allows handling of ENUM query requests/responses. The match and replace regular expression from ENUM query responses are applied to params[:call][:called] to get &amp;quot;new called&amp;quot;. This script allows update of the call parameters according to &amp;quot;new called&amp;quot; value. Refer to enum_called_remap.rb before filter script to get instructions on how to integrate this script into the main routing script (i.e. simple_routing_sbc.rb):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  ...&lt;br /&gt;
  require 'enum_called_remap' unless defined?(EnumCalledRemap)&lt;br /&gt;
  ...&lt;br /&gt;
  include EnumCalledRemap&lt;br /&gt;
  ...&lt;br /&gt;
  before_filter :method =&amp;gt; :enum_called_remap&lt;br /&gt;
  ...&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Resolve ENUM Query down to type A records ===&lt;br /&gt;
&lt;br /&gt;
The ENUM query could also resolve uri from responses and get matching outgoing NAP, NAP proxy IP and port through a sequence of DNS queries (i.e. NAPTR, SRV down to type A records). This behavior could be requested using &amp;quot;dns_query&amp;quot; parameter:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  params[:enum_query][:dns_query] = true&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When ENUM and DNS Queries complete, the routing script is called again with the results. The params[:enum_query] and params[:dns_query] objects will be filled with the ENUM Query and the DNS Query attributes from the responses. The DNS query responses are available through params[:dns_query][:responses_list] call parameters:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  params[:dns_query][:responses_list]&lt;br /&gt;
    [{:nap=&amp;gt;&amp;quot;NAP_UDP&amp;quot;, :nap_proxy_ip=&amp;gt;&amp;quot;10.3.14.191&amp;quot;, :nap_proxy_port=&amp;gt;&amp;quot;8080&amp;quot;, :transport=&amp;gt;&amp;quot;UDP&amp;quot;, :order=&amp;gt;&amp;quot;100&amp;quot;,&lt;br /&gt;
      :preference=&amp;gt;&amp;quot;1&amp;quot;, :priority=&amp;gt;&amp;quot;0&amp;quot;, :weight=&amp;gt;&amp;quot;5&amp;quot;},&lt;br /&gt;
     {:nap=&amp;gt;&amp;quot;NAP_TCP&amp;quot;, :nap_proxy_ip=&amp;gt;&amp;quot;10.3.14.192&amp;quot;, :nap_proxy_port=&amp;gt;&amp;quot;8081&amp;quot;, :transport=&amp;gt;&amp;quot;TCP&amp;quot;, :order=&amp;gt;&amp;quot;100&amp;quot;,&lt;br /&gt;
      :preference=&amp;gt;&amp;quot;2&amp;quot;, :priority=&amp;gt;&amp;quot;1&amp;quot;, :weight=&amp;gt;&amp;quot;10&amp;quot;}]&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Add dynamic routes ===&lt;br /&gt;
&lt;br /&gt;
The ENUM query could also add dynamic routes base on DNS query responses. This could be requested using the &amp;quot;add_dynamic_routes&amp;quot; call parameter:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  params[:enum_query][:dns_query] = true&lt;br /&gt;
  params[:enum_query][:add_dynamic_routes] = true&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that it is mandatary to send DNS query to add dynamic routes.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;base_routing.rb&amp;quot; script version should be greater then 1.37 in order to allow dynamic routes creation base on DNS query responses.&lt;br /&gt;
&lt;br /&gt;
When requesting to add_dynamic_routes, the dns_query responses are used to create routes. Make sure that your configuration includes a route with remapped_nap = &amp;quot;Registered or DNS users&amp;quot;. A route will be created for each DNS query responses. The routes &amp;quot;remapped_nap&amp;quot; takes NAP value from DNS query responses.&lt;br /&gt;
&lt;br /&gt;
It is required to modify main routing script (i.e. simple_routing_sbc.rb) to forward IP/port values from params[:routes] to params[:call] like we are doing for NAP. See following example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  ...&lt;br /&gt;
  # This will select the outgoing NAP for this call according to the &amp;quot;remapped_nap&amp;quot; route parameter&lt;br /&gt;
  route_remap :call_field_name =&amp;gt; :nap, :route_field_name =&amp;gt; :remapped_nap&lt;br /&gt;
  &lt;br /&gt;
  # This will select the outgoing NAP proxy ip address for this call according to the &amp;quot;remapped_nap_proxy_ip&amp;quot; route parameter&lt;br /&gt;
  route_remap :call_field_name =&amp;gt; :nap_proxy_ip, :route_field_name =&amp;gt; :remapped_nap_proxy_ip&lt;br /&gt;
  &lt;br /&gt;
  # This will select the outgoing NAP proxy port for this call according to the &amp;quot;remapped_nap_proxy_port&amp;quot; route parameter&lt;br /&gt;
  route_remap :call_field_name =&amp;gt; :nap_proxy_port, :route_field_name =&amp;gt; :remapped_nap_proxy_port&lt;br /&gt;
  ...&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DNS Query ==&lt;br /&gt;
Similarly to ENUM query, starting with release 3.1, it is possible to issue DNS Query requests to DNS servers from routing scripts. This could be used to skip the ENUM Query part when the called uri is already known but still need to get the matching outgoing NAP, NAP proxy IP and port. To do so, the params[:dns_query] object must be filled with the required DNS Query attributes params[:dns_query][:fqdn] and [[#Refuse|an exception must be raised]] with reason :dns_query_required.&lt;br /&gt;
&lt;br /&gt;
When DNS Query completes, the routing script is called again with the result. The params[:dns_query] object will be filled with the DNS Query attributes from the responses. The DNS query responses are available through params[:dns_query][:responses_list] call parameters:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  params[:dns_query][:responses_list]&lt;br /&gt;
    [{:nap=&amp;gt;&amp;quot;NAP_UDP&amp;quot;, :nap_proxy_ip=&amp;gt;&amp;quot;10.3.14.191&amp;quot;, :nap_proxy_port=&amp;gt;&amp;quot;8080&amp;quot;, :transport=&amp;gt;&amp;quot;UDP&amp;quot;, :order=&amp;gt;&amp;quot;100&amp;quot;,&lt;br /&gt;
      :preference=&amp;gt;&amp;quot;1&amp;quot;, :priority=&amp;gt;&amp;quot;0&amp;quot;, :weight=&amp;gt;&amp;quot;5&amp;quot;},&lt;br /&gt;
     {:nap=&amp;gt;&amp;quot;NAP_TCP&amp;quot;, :nap_proxy_ip=&amp;gt;&amp;quot;10.3.14.192&amp;quot;, :nap_proxy_port=&amp;gt;&amp;quot;8081&amp;quot;, :transport=&amp;gt;&amp;quot;TCP&amp;quot;, :order=&amp;gt;&amp;quot;100&amp;quot;,&lt;br /&gt;
      :preference=&amp;gt;&amp;quot;2&amp;quot;, :priority=&amp;gt;&amp;quot;1&amp;quot;, :weight=&amp;gt;&amp;quot;10&amp;quot;}]&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Add dynamic routes ===&lt;br /&gt;
&lt;br /&gt;
Similarly to ENUM Query, the DNS query could also create dynamic routes base on DNS query responses. This could be requested using the &amp;quot;add_dynamic_routes&amp;quot; call parameter:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  params[:dns_query][:add_dynamic_routes] = true&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;base_routing.rb&amp;quot; script version should be greater then 1.37 in order to allow dynamic routes creation base on DNS query responses.&lt;br /&gt;
&lt;br /&gt;
When requesting to add_dynamic_routes, the dns_query responses are used to create routes. Make sure that your configuration include a route with remapped_nap = &amp;quot;Registered or DNS users&amp;quot;. A route will be created for each DNS query responses. The routes &amp;quot;remapped_nap&amp;quot; takes NAP value from DNS query responses.&lt;br /&gt;
&lt;br /&gt;
It is required to modify main routing script (i.e. simple_routing_sbc.rb) to forward IP/port values from params[:routes] to params[:call] like we are doing for NAP. See following example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  ...&lt;br /&gt;
  # This will select the outgoing NAP for this call according to the &amp;quot;remapped_nap&amp;quot; route parameter&lt;br /&gt;
  route_remap :call_field_name =&amp;gt; :nap, :route_field_name =&amp;gt; :remapped_nap&lt;br /&gt;
  &lt;br /&gt;
  # This will select the outgoing NAP proxy ip address for this call according to the &amp;quot;remapped_nap_proxy_ip&amp;quot; route parameter&lt;br /&gt;
  route_remap :call_field_name =&amp;gt; :nap_proxy_ip, :route_field_name =&amp;gt; :remapped_nap_proxy_ip&lt;br /&gt;
  &lt;br /&gt;
  # This will select the outgoing NAP proxy port for this call according to the &amp;quot;remapped_nap_proxy_port&amp;quot; route parameter&lt;br /&gt;
  route_remap :call_field_name =&amp;gt; :nap_proxy_port, :route_field_name =&amp;gt; :remapped_nap_proxy_port&lt;br /&gt;
  ...&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Call diversion options ==&lt;br /&gt;
It's possible to control the call flow when a call diversion information is received in the alerting state.&lt;br /&gt;
&lt;br /&gt;
Two fields are available: bridge[ :diversion ] and bridge[ :diversion_reason ]&lt;br /&gt;
&lt;br /&gt;
The internal release cause TOOLPACK_DIVERT_NOT_ALLOWED is used by gateway application to terminate both legs.&lt;br /&gt;
&lt;br /&gt;
  bridge[ :diversion ] = :allowed&lt;br /&gt;
The alert message will not be analyzed and the call will be progressed. Default behavior.&lt;br /&gt;
  bridge[ :diversion ] = :not_allowed&lt;br /&gt;
If the alert message indicates that the call is diverted, the call will be released no matter the In-band information to allow&lt;br /&gt;
early media.&lt;br /&gt;
  bridge[ :diversion ] = :not_allowed_w_early_media&lt;br /&gt;
The call will be released If the alert message indicates that the call is diverted with in-band information to allow early media.&lt;br /&gt;
  bridge[ :diversion_reason ] = &amp;quot;*&amp;quot;&lt;br /&gt;
If the diversion is not allowed, the gateway will drop the call for any redirecting reason. &lt;br /&gt;
  bridge[ :diversion_reason ] = &amp;quot;0,1,2&amp;quot;&lt;br /&gt;
or&lt;br /&gt;
  bridge[ :diversion_reason ] = &amp;quot;unknown,busy,no_reply&amp;quot;&lt;br /&gt;
If the diversion is not allowed, the redirecting reason will be analyzed and the call will only be dropped for the configured cases.&lt;br /&gt;
&lt;br /&gt;
See section [[Routing_script_tutorial:Mini_Development_Guide#Redirecting_number,_Original_Called_Number_and_Diversion_Reason|Redirecting number reason values]].&lt;br /&gt;
&lt;br /&gt;
== Call transfer requests ==&lt;br /&gt;
Toolpack allows that [[Call transfer]] requests are relayed from one leg to the other, or to process them locally (making another outgoing call to replace the call that requested the call transfer).&lt;br /&gt;
&lt;br /&gt;
If the chosen [[Call transfer]] mode is to process requests locally, upon reception of a call transfer request (SIP REFER or ISDN Facility), routing script will be called once again, to select the routes for the new outgoing call (call transfer target).&lt;br /&gt;
&lt;br /&gt;
=== How to route call transfer request ===&lt;br /&gt;
Routing of a call transfer request is done exactly like routing of a normal incoming call.&lt;br /&gt;
The routing script generally does not need any modification to support that.&lt;br /&gt;
&lt;br /&gt;
In some cases, the routing script may want to use information related to the transfer request to perform routing, or to insert information in the outgoing call leg.&lt;br /&gt;
Additional information is provided to the routing script, allowing routing decisions using information from the call transfer request (SIP REFER or ISDN Facility).&lt;br /&gt;
See below...&lt;br /&gt;
&lt;br /&gt;
=== params[ :call ] content during transfer request ===&lt;br /&gt;
When processing a call transfer request, the params[ :call ] hash contains the information from the inbound call (same as was passed to the routing script upon arrival of the inbound call)&lt;br /&gt;
 call = params[ :call ]          -&amp;gt; Information from original inbound call, with exception of call[ :called ]&lt;br /&gt;
&lt;br /&gt;
One exception (convenient because it allows a unmodified routing script to process call transfer request the same way as any other routing request):&lt;br /&gt;
 call[ :called ]                 -&amp;gt; Replaced by the called number from the call transfer request (also called &amp;quot;redirection number&amp;quot;)&lt;br /&gt;
Complementary information:&lt;br /&gt;
 call[ :original_called_number ] -&amp;gt; Contains the called number that was initially received from the incoming call, prior to call transfer request&lt;br /&gt;
 call[ :redirecting_number ]     -&amp;gt; Number of the call from which the call transfer request was received (generally equals to original_called_number)&lt;br /&gt;
&lt;br /&gt;
These fields will also be included in the outgoing call made after routing:&lt;br /&gt;
* original called number and redirecting number are existing fields on SS7 and ISDN calls&lt;br /&gt;
* SIP &amp;quot;diversion&amp;quot; header is used for SIP calls&lt;br /&gt;
&lt;br /&gt;
=== params[ :transfer ] content ===&lt;br /&gt;
(this if valid only for release 2.7.102 and above)&amp;lt;br&amp;gt;&lt;br /&gt;
When processing a call transfer request, information from the call transfer request message (SIP REFER, ISDN Facility) is provided in params[ :transfer ]:&lt;br /&gt;
  transfer = params[ :transfer ]&lt;br /&gt;
The following field is always present:&lt;br /&gt;
  transfer[ :original_nap ]      -&amp;gt; Contains the NAP of the first call from which a call transfer request was received&lt;br /&gt;
  transfer[ :redirecting_nap ]   -&amp;gt; Contains the NAP of the call from which the current call transfer request was received&lt;br /&gt;
                                    (same as :original_nap for the first call transfer, different for subsequent transfers)&lt;br /&gt;
Examples of other fields that may be present, when appropriate:&lt;br /&gt;
  transfer[ :uui ]               -&amp;gt; The UUI (user-to-user information) found in the call transfer request&lt;br /&gt;
  transfer[ :sip_header ]        -&amp;gt; Contains custom SIP headers from the call transfer request&lt;br /&gt;
  transfer[ :request_uri ]       -&amp;gt; Contains the SIP Request URI&lt;br /&gt;
&lt;br /&gt;
These fields are 'read-only'. They will not be included in the outgoing call, as they represent the contents of the call transfer request, and not the outgoing call to be made.&lt;br /&gt;
&lt;br /&gt;
To insert/modify attributes of the outgoing call, the parameters from params[ :call ] must be edited instead.&lt;br /&gt;
&lt;br /&gt;
== Redirection ==&lt;br /&gt;
In release 2.8 and above, redirection contacts are obtained from the routing engine in the following format:&lt;br /&gt;
&lt;br /&gt;
  contacts = params[ :contacts ]&lt;br /&gt;
  contacts = {&lt;br /&gt;
      :index=&amp;gt;&amp;quot;3&amp;quot;,&lt;br /&gt;
      :list=&amp;gt;[&lt;br /&gt;
         {:called_number=&amp;gt;&amp;quot;6660&amp;quot;, :priority=&amp;gt;&amp;quot;1000&amp;quot;, :is_number_ported=&amp;gt;&amp;quot;0&amp;quot;, :sip_uri=&amp;gt;&amp;quot;&amp;quot;, :raw_data=&amp;gt;&amp;quot;&amp;quot;, :expiration=&amp;gt;&amp;quot;3600&amp;quot;},&lt;br /&gt;
         {:called_number=&amp;gt;&amp;quot;6661&amp;quot;, :priority=&amp;gt;&amp;quot;1000&amp;quot;, :is_number_ported=&amp;gt;&amp;quot;0&amp;quot;, :sip_uri=&amp;gt;&amp;quot;sip:6661@192.168.215.127&amp;quot;, :raw_data=&amp;gt;&amp;quot;&amp;lt;sip:6661@192.168.215.127&amp;gt;&amp;quot;, :expiration=&amp;gt;&amp;quot;3600&amp;quot;}&lt;br /&gt;
         {:called_number=&amp;gt;&amp;quot;6662&amp;quot;, :priority=&amp;gt;&amp;quot;1000&amp;quot;, :is_number_ported=&amp;gt;&amp;quot;0&amp;quot;, :sip_uri=&amp;gt;&amp;quot;sip:6662@192.168.215.128&amp;quot;, :raw_data=&amp;gt;&amp;quot;&amp;lt;sip:6662@192.168.215.128&amp;gt;&amp;quot;, :expiration=&amp;gt;&amp;quot;3600&amp;quot;},&lt;br /&gt;
         {:called_number=&amp;gt;&amp;quot;6663&amp;quot;, :priority=&amp;gt;&amp;quot;1000&amp;quot;, :is_number_ported=&amp;gt;&amp;quot;0&amp;quot;, :sip_uri=&amp;gt;&amp;quot;sip:6663@192.168.215.129&amp;quot;, :raw_data=&amp;gt;&amp;quot;&amp;lt;sip:6663@192.168.215.129&amp;gt;&amp;quot;, :expiration=&amp;gt;&amp;quot;3600&amp;quot;},&lt;br /&gt;
         {:called_number=&amp;gt;&amp;quot;6664&amp;quot;, :priority=&amp;gt;&amp;quot;1000&amp;quot;, :is_number_ported=&amp;gt;&amp;quot;0&amp;quot;, :sip_uri=&amp;gt;&amp;quot;sip:6664@192.168.215.150&amp;quot;, :raw_data=&amp;gt;&amp;quot;&amp;lt;sip:6664@192.168.215.150&amp;gt;&amp;quot;, :expiration=&amp;gt;&amp;quot;3600&amp;quot;}&lt;br /&gt;
      ],&lt;br /&gt;
      :source_indexes=&amp;gt;&amp;quot;nil,0,0,0,2&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;params[:contacts][:list]&amp;lt;/code&amp;gt; contains the contact log. Each contact within the list has the following fields:&lt;br /&gt;
** &amp;lt;code&amp;gt;:called_number&amp;lt;/code&amp;gt; - the called number&lt;br /&gt;
** &amp;lt;code&amp;gt;:is_number_ported&amp;lt;/code&amp;gt; - if the called number has been ported (for SIP: if the npdi parameter is present)&lt;br /&gt;
** &amp;lt;code&amp;gt;:ported_number&amp;lt;/code&amp;gt; - the called number that was ported (for SIP: the rn parameter value, if available)&lt;br /&gt;
** &amp;lt;code&amp;gt;:sip_uri&amp;lt;/code&amp;gt; - the SIP URI of the contact, without the contact-params section (without the expires and q contact parameters)&lt;br /&gt;
** &amp;lt;code&amp;gt;:raw_data&amp;lt;/code&amp;gt; - the raw data representing the contact in the signaling protocol. For SIP, this is the full SIP URI (including the expires and q contact parameters).&lt;br /&gt;
** &amp;lt;code&amp;gt;:priority&amp;lt;/code&amp;gt; - the priority of the contact [0-1000]&lt;br /&gt;
** &amp;lt;code&amp;gt;:expiration&amp;lt;/code&amp;gt; - the expiration time in seconds of the contact&lt;br /&gt;
* &amp;lt;code&amp;gt;params[:contacts][:index]&amp;lt;/code&amp;gt; contains the index of the contact that is currently being routed.&lt;br /&gt;
* &amp;lt;code&amp;gt;params[:contacts][:source_indexes]&amp;lt;/code&amp;gt; contains a comma-separated list of indexes from &amp;lt;code&amp;gt;params[:contacts][:list]&amp;lt;/code&amp;gt;. Each index represents the contact from which the contact in the list was obtained from.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To get more information, see:&lt;br /&gt;
*[[Routing_script_tutorial:SIP_Redirection_Contacts|SIP Redirection Contacts Parameters in a Call Flow]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Connected number ==&lt;br /&gt;
Insert a connected number in the answer message of the call flow.&lt;br /&gt;
&lt;br /&gt;
Routing script example:&lt;br /&gt;
    bridge = params[ :bridge ]&lt;br /&gt;
    bridge [ :connected_number ] = &amp;quot;3335577&amp;quot;&lt;br /&gt;
    bridge [ :connected_number_noa ] = :national_number&lt;br /&gt;
    bridge [ :connected_number_npi ] = :private&lt;br /&gt;
    bridge [ :connected_number_presentation ] = :allowed&lt;br /&gt;
    bridge [ :connected_number_screening ] = :pass&lt;br /&gt;
&lt;br /&gt;
== Terminating calls ==&lt;br /&gt;
In release 2.8, it is now possible to terminate a call through the routing scripts. The [[#Reason values|reason code]] must be specified in &amp;lt;code&amp;gt;params[:bridge][:reason]&amp;lt;/code&amp;gt;. The &amp;lt;code&amp;gt;:terminate&amp;lt;/code&amp;gt; hash must be created and copied into &amp;lt;code&amp;gt;params&amp;lt;/code&amp;gt;:&lt;br /&gt;
  terminate = {}&lt;br /&gt;
  params[:terminate] = terminate&lt;br /&gt;
The following fields can then be set in &amp;lt;code&amp;gt;:terminate&amp;lt;/code&amp;gt;:&lt;br /&gt;
* &amp;lt;code&amp;gt;:sip_header&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;:contacts&amp;lt;/code&amp;gt; # list of contacts as described in the [[#Redirection|redirection]] section&lt;br /&gt;
* &amp;lt;code&amp;gt;:isup_raw&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;:isup_raw_variant&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;:redirecting_number&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;:redirecting_number_noa&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;:redirecting_number_npi&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;:redirecting_number_presentation&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;:redirecting_number_reason&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;:redirecting_number_counter&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;:redirecting_number_indicator&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;:original_called_number&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;:original_called_number_noa&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;:original_called_number_npi&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;:original_called_number_presentation&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;:original_called_number_reason&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;:original_called_number_counter&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reason values  ==&lt;br /&gt;
&lt;br /&gt;
Check here for Termination Reason Cause codes:&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[Termination_cause_codes|Termination Reason Cause codes]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example to refuse an incoming call leg.&lt;br /&gt;
  raise RoutingException, :no_route&lt;br /&gt;
&lt;br /&gt;
Reason cause strings available inside routing scripts:&lt;br /&gt;
&lt;br /&gt;
List of Q.850 reason causes:&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;
  :qor_ported_number&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_connection_operational&lt;br /&gt;
  :temporary_failure&lt;br /&gt;
  :switching_equipment_congestion&lt;br /&gt;
  :access_information_discarded&lt;br /&gt;
  :requested_circuit_not_available&lt;br /&gt;
  :precedence_call_blocked&lt;br /&gt;
  :resource_unavailable&lt;br /&gt;
  :quality_of_service_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;
List of toolpack reason causes:&lt;br /&gt;
&lt;br /&gt;
  :toolpack_normal                       or :normal&lt;br /&gt;
  :toolpack_resource_error               or :resource_error&lt;br /&gt;
  :toolpack_timeout                      or :timeout&lt;br /&gt;
  :toolpack_no_route                     or :no_route&lt;br /&gt;
  :toolpack_call_collision               or :call_collision&lt;br /&gt;
  :toolpack_sync_drop                    or :sync_drop&lt;br /&gt;
  :toolpack_signaling_error              or :signaling_error&lt;br /&gt;
  :toolpack_locally_rejected             or :locally_rejected&lt;br /&gt;
  :toolpack_interface_not_available      or :interface_not_available&lt;br /&gt;
  :toolpack_reset_in_progress            or :reset_in_progress&lt;br /&gt;
  :toolpack_adapter_reject               or :adapter_reject&lt;br /&gt;
  :toolpack_missing_or_invalid_ie        or :missing_or_invalid_ie&lt;br /&gt;
  :toolpack_incoming_only                or :incoming_only&lt;br /&gt;
  :toolpack_system_configuration_changed or :system_configuration_changed&lt;br /&gt;
  :toolpack_resource_no_more_available   or :resource_no_more_available&lt;br /&gt;
  :toolpack_incompatible_media           or :incompatible_media&lt;br /&gt;
  :toolpack_resource_allocation_failed   or :resource_allocation_failed&lt;br /&gt;
  :toolpack_data_path_not_available      or :data_path_not_available&lt;br /&gt;
  :toolpack_local_congestion             or :local_congestion&lt;br /&gt;
  :toolpack_authorization_required       or :authorization_required&lt;br /&gt;
  :toolpack_call_divert_is_not_allowed   or :call_divert_is_not_allowed&lt;br /&gt;
&lt;br /&gt;
List of SIP reason causes:&amp;lt;br/&amp;gt;&lt;br /&gt;
Reason causes starting with a digit must use the following syntax (can't use : as prefix).&lt;br /&gt;
&lt;br /&gt;
  '300_multiple_choices'&lt;br /&gt;
  '301_moved_permanently'&lt;br /&gt;
  '302_moved_temporarily'&lt;br /&gt;
  '305_use_proxy'&lt;br /&gt;
  '380_alternative_service'&lt;br /&gt;
  '400_bad_request'&lt;br /&gt;
  '401_unauthorized'&lt;br /&gt;
  '402_payment_required'&lt;br /&gt;
  '403_forbidden'&lt;br /&gt;
  '404_not_found'&lt;br /&gt;
  '405_method_not_allowed'&lt;br /&gt;
  '406_not_acceptable'&lt;br /&gt;
  '407_proxy_authentication_required'&lt;br /&gt;
  '408_request_timeout'&lt;br /&gt;
  '409_conflict'&lt;br /&gt;
  '410_gone'&lt;br /&gt;
  '413_request_entity_too_large'&lt;br /&gt;
  '414_request_URI_too_long'&lt;br /&gt;
  '415_unsupported_media'&lt;br /&gt;
  '416_unsupported_URI_scheme'&lt;br /&gt;
  '420_bad_extension'&lt;br /&gt;
  '421_extension_required'&lt;br /&gt;
  '422_session_timer_too_small'&lt;br /&gt;
  '423_interval_too_brief'&lt;br /&gt;
  '429_referrer_identity_error'&lt;br /&gt;
  '480_temporary_unavailable'&lt;br /&gt;
  '481_call_or_transaction_does_not_exist'&lt;br /&gt;
  '482_loop_detected'&lt;br /&gt;
  '483_too_many_hops'&lt;br /&gt;
  '484_address_incomplete'&lt;br /&gt;
  '485_ambiguous'&lt;br /&gt;
  '486_busy_here'&lt;br /&gt;
  '487_request_terminated'&lt;br /&gt;
  '488_not_acceptable_here'&lt;br /&gt;
  '489_bad_event'&lt;br /&gt;
  '491_retry_after'&lt;br /&gt;
  '500_server_internal_error'&lt;br /&gt;
  '501_not_implemented'&lt;br /&gt;
  '502_bad_gateway'&lt;br /&gt;
  '503_service_unavailable'&lt;br /&gt;
  '504_server_timeout'&lt;br /&gt;
  '505_version_unsupported'&lt;br /&gt;
  '513_message_too_large'&lt;br /&gt;
  '600_busy_everywhere'&lt;br /&gt;
  '603_decline'&lt;br /&gt;
  '604_not_exist_anywhere'&lt;br /&gt;
  '606_not_acceptable'&lt;br /&gt;
&lt;br /&gt;
== NAP status and other NAP information ==&lt;br /&gt;
&lt;br /&gt;
All the status fields of the NAPs are provided for use by the routing scripts. &lt;br /&gt;
''&amp;lt;br&amp;gt; For developpers: 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;
  Routing script call attribute name    Description&lt;br /&gt;
  --------------------------------------------------------------------------------------------&lt;br /&gt;
  &amp;quot;name&amp;quot;                                NAP name.&lt;br /&gt;
  &amp;quot;signaling_type&amp;quot;                      Signaling type (SS7, ISDN, CASR2, SIP)&lt;br /&gt;
  &amp;quot;profile&amp;quot;                             Profile name.&lt;br /&gt;
  &amp;quot;sip_destination_ip&amp;quot;                  Destination IP address.&lt;br /&gt;
  &amp;quot;sip_destination_port&amp;quot;                Destination IP port.&lt;br /&gt;
  &amp;quot;sip_transport_type&amp;quot;                  SIP transport type (:udp, :tcp, or :tls) (Toolpack 3.1 and more)&lt;br /&gt;
  &amp;quot;inst_incoming_call_cnt&amp;quot;              Instantaneous Count of incoming calls.&lt;br /&gt;
  &amp;quot;inst_outgoing_call_cnt&amp;quot;              Instantaneous Count of outgoing calls.&lt;br /&gt;
  &amp;quot;available_cnt&amp;quot;                       Number of available circuits or channels.&lt;br /&gt;
  &amp;quot;unavailable_cnt&amp;quot;                     Number of unavailable circuits or channels.&lt;br /&gt;
  &amp;quot;availability_percent&amp;quot;                Percentage of available circuits or channels.&lt;br /&gt;
  &amp;quot;usage_percent&amp;quot;                       Percentage of used circuits or channels.&lt;br /&gt;
  &amp;quot;unused_shared_percent&amp;quot;               Percentage of used circuits or channels of this NAP available to make new calls with (taking into account shared with other NAPs)&lt;br /&gt;
  &amp;quot;total_incoming_call_cnt&amp;quot;             Total Count of incoming calls.&lt;br /&gt;
  &amp;quot;global_asr_percent&amp;quot;                  Global calculated ASR percentage.&lt;br /&gt;
  &amp;quot;total_outgoing_call_cnt&amp;quot;             Total Count of outgoing calls.&lt;br /&gt;
  &amp;quot;last_24h_asr_percent&amp;quot;                Last 24 hours calculated ASR percentage.&lt;br /&gt;
  &amp;quot;last_24h_outgoing_call_cnt&amp;quot;          Last 24 hours outgoing calls.&lt;br /&gt;
  &amp;quot;current_hour_asr_percent&amp;quot;            Current hour calculated ASR percentage.&lt;br /&gt;
  &amp;quot;current_hour_outgoing_call_cnt&amp;quot;      Current hour outgoing calls.&lt;br /&gt;
  &amp;quot;last_hour_asr_percent&amp;quot;               Last hour calculated ASR percentage.&lt;br /&gt;
  &amp;quot;last_hour_outgoing_call_cnt&amp;quot;         Last hour outgoing calls.&lt;br /&gt;
  &amp;quot;poll_remote_proxy&amp;quot;                   Remote proxy polling enabled&lt;br /&gt;
  &amp;quot;is_available&amp;quot;                        Remote proxy actually available or not&lt;br /&gt;
  &amp;quot;time_since_polling&amp;quot;                  Time since the last availibility polling&lt;br /&gt;
  &amp;quot;time_available_seconds&amp;quot;              Number of seconds since the NAP is available&lt;br /&gt;
  &amp;quot;time_unavailable_seconds&amp;quot;            Number of seconds since the NAP is unavailable&lt;br /&gt;
  &amp;quot;register_to_proxy&amp;quot;                   Register to proxy enabled&lt;br /&gt;
  &amp;quot;registered&amp;quot;                          Actually registered or not&lt;br /&gt;
  &amp;quot;time_since_refresh&amp;quot;                  Time since the last refresh&lt;br /&gt;
  &amp;quot;time_registered_seconds&amp;quot;             Number of seconds since the NAP is registered&lt;br /&gt;
  &amp;quot;time_not_registered_seconds&amp;quot;         Number of seconds since the NAP is not registered&lt;br /&gt;
  &amp;quot;asr_stats_incoming_struct&amp;quot;           Detailed Answer-Seizure Rate incoming statistics.&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;global_asr_percent&amp;quot;                Global calculated ASR percentage.&lt;br /&gt;
    &amp;quot;total_call_cnt&amp;quot;                    Total count of calls.&lt;br /&gt;
    &amp;quot;total_accepted_call_cnt&amp;quot;           Total count of accepted calls (not dropped due to congestion or rate-limiting).&lt;br /&gt;
    &amp;quot;total_answered_call_cnt&amp;quot;           Total count of answered calls.&lt;br /&gt;
    &amp;quot;last_24h_asr_percent&amp;quot;              Last 24 hours calculated ASR percentage.&lt;br /&gt;
    &amp;quot;last_24h_call_cnt&amp;quot;                 Last 24 hours count of calls.&lt;br /&gt;
    &amp;quot;current_hour_asr_percent&amp;quot;          Current hour calculated ASR percentage.&lt;br /&gt;
    &amp;quot;current_hour_call_cnt&amp;quot;             Current hour count of calls.&lt;br /&gt;
    &amp;quot;last_hour_asr_percent&amp;quot;             Last hour calculated ASR percentage.&lt;br /&gt;
    &amp;quot;last_hour_call_cnt&amp;quot;                Last hour count of calls.&lt;br /&gt;
  }&lt;br /&gt;
  &amp;quot;asr_stats_outgoing_struct&amp;quot;           Detailed Answer-Seizure Rate outgoing statistics.&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;global_asr_percent&amp;quot;                Global calculated ASR percentage.&lt;br /&gt;
    &amp;quot;total_call_cnt&amp;quot;                    Total count of calls.&lt;br /&gt;
    &amp;quot;total_accepted_call_cnt&amp;quot;           Total count of accepted calls (not dropped due to congestion or rate-limiting).&lt;br /&gt;
    &amp;quot;total_answered_call_cnt&amp;quot;           Total count of answered calls.&lt;br /&gt;
    &amp;quot;last_24h_asr_percent&amp;quot;              Last 24 hours calculated ASR percentage.&lt;br /&gt;
    &amp;quot;last_24h_call_cnt&amp;quot;                 Last 24 hours count of calls.&lt;br /&gt;
    &amp;quot;current_hour_asr_percent&amp;quot;          Current hour calculated ASR percentage.&lt;br /&gt;
    &amp;quot;current_hour_call_cnt&amp;quot;             Current hour count of calls.&lt;br /&gt;
    &amp;quot;last_hour_asr_percent&amp;quot;             Last hour calculated ASR percentage.&lt;br /&gt;
    &amp;quot;last_hour_call_cnt&amp;quot;                Last hour count of calls.&lt;br /&gt;
  }&lt;br /&gt;
  &amp;quot;mos_struct&amp;quot;                          Detailed Mean Opinion Score statistics.&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;last_24h_ingress&amp;quot;                  Last 24 hours calculated MOS for incoming RTP packets.&lt;br /&gt;
    &amp;quot;last_24h_egress&amp;quot;                   Last 24 hours calculated MOS for outgoing RTP packets.&lt;br /&gt;
    &amp;quot;current_hour_ingress&amp;quot;              Current hour calculated MOS for incoming RTP packets.&lt;br /&gt;
    &amp;quot;current_hour_egress&amp;quot;               Current hour calculated MOS for outgoing RTP packets.&lt;br /&gt;
    &amp;quot;last_hour_ingress&amp;quot;                 Last hour calculated MOS for incoming RTP packets.&lt;br /&gt;
    &amp;quot;last_hour_egress&amp;quot;                  Last hour calculated MOS for outgoing RTP packets.&lt;br /&gt;
  }&lt;br /&gt;
  &amp;quot;network_quality_struct&amp;quot;              Detailed network quality statistics.&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;last_24h_ingress&amp;quot;                  Last 24 hours network quality percentage for incoming RTP packets.&lt;br /&gt;
    &amp;quot;last_24h_egress&amp;quot;                   Last 24 hours network quality percentage for outgoing RTP packets.&lt;br /&gt;
    &amp;quot;current_hour_ingress&amp;quot;              Current hour network quality percentage for incoming RTP packets.&lt;br /&gt;
    &amp;quot;current_hour_egress&amp;quot;               Current hour network quality percentage for outgoing RTP packets.&lt;br /&gt;
    &amp;quot;last_hour_ingress&amp;quot;                 Last hour network quality percentage for incoming RTP packets.&lt;br /&gt;
    &amp;quot;last_hour_egress&amp;quot;                  Last hour network quality percentage for outgoing RTP packets.&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
&amp;lt;br&amp;gt; The nap status is part of a substructure and will be a hash containing all subfield elements. &lt;br /&gt;
&lt;br /&gt;
=== Example to access NAP information and NAP status of the current call === &lt;br /&gt;
&amp;lt;br&amp;gt; To find the incoming nap in a routing script, we can do this in before_filter or after_filter and use these lines to create a symbol:&lt;br /&gt;
    incoming_nap = params[:call][:nap].to_sym&lt;br /&gt;
    log_trace 1, &amp;quot;incoming_nap = &amp;quot; + incoming_nap.inspect&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; To get the configured NAP list, you can do this:&lt;br /&gt;
    nap_lists = params[:naps]&lt;br /&gt;
    log_trace 1, &amp;quot;nap_lists = &amp;quot; + nap_lists.inspect&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; From the list above, you can find how many calls you have on this NAP:&lt;br /&gt;
    log_trace 1,&amp;quot;Incoming NAP call count=&amp;quot; + nap_lists[incoming_nap][:asr_stats_incoming_struct][:total_call_cnt].inspect &lt;br /&gt;
&amp;lt;br&amp;gt; Or which network the call is coming from:&lt;br /&gt;
    log_trace 1,&amp;quot;Incoming NAP signaling type=&amp;quot; + nap_lists[incoming_nap][:signaling_type].inspect &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; If you are using a &amp;quot;NAP Columns&amp;quot; custom parameter (Create New NAP Column), you can get the information (since incoming_nap is a symbol): &lt;br /&gt;
    network_type = nap_lists[incoming_nap][:network_type]&lt;br /&gt;
    log_trace 1, &amp;quot;For incoming_nap = &amp;quot; + incoming_nap.inspect + &amp;quot; network_type is: &amp;quot; + network_type.inspect&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; If you want to modify something according to nap information, you may need to do a loop like this:&lt;br /&gt;
    nap_lists.each do |nap_list,nap_info|&lt;br /&gt;
      log_trace 1, &amp;quot;NAP: &amp;quot; + nap_info[:name].inspect + &amp;quot; network_type: &amp;quot; + nap_info[:network_type].inspect&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
== Telephony Services ==&lt;br /&gt;
In release 2.10 and the above, telephony services (CNAM Request) can be manage from the routing engine in the following format:&lt;br /&gt;
&lt;br /&gt;
  params[:telephony_services].each do |service|  -&amp;gt; Array of telephony services&lt;br /&gt;
    service[:name]                               -&amp;gt; Customer telephony service name&lt;br /&gt;
    service[:type]                               -&amp;gt; For now only &amp;quot;CNAM Request&amp;quot;&lt;br /&gt;
    service[:enabled]                            -&amp;gt; Indicate if the service is enabled (true) or not (false)&lt;br /&gt;
                                                    (Only the telephony service define in the profile associated to the NAP is enabled)&lt;br /&gt;
                                                    (The others telephony services define in others profiles are disabled)&lt;br /&gt;
                                                    (If we are in the case where we return in the routing script with a response, it is important to set :enabled to false in order to avoid repeating the same query)&lt;br /&gt;
    serviceParams = service[:params]&lt;br /&gt;
    serviceParams[:return_to_script]             -&amp;gt; Indicates to Gateway if we must return to the routing script after receiving the CNAM response&lt;br /&gt;
                                                    (It is important to set back to false this field to avoid an infinite loop)&lt;br /&gt;
    serviceQuery = service[:query]&lt;br /&gt;
    serviceQuery[:phone]                         -&amp;gt; 10 digits of calling number from the incoming call to send to the CNAM server&lt;br /&gt;
    serviceQuery[:timeout]                       -&amp;gt; Timeout in millisecond to wait a CNAM response from CNAM server&lt;br /&gt;
                                                    (Default value from profile configuration)&lt;br /&gt;
    serviceResponse = service[:response]&lt;br /&gt;
    serviceResponse[:success]                    -&amp;gt; Indicates if we received a good CNAM response from the CNAM Server (Only present if :return_to_script is set to true)&lt;br /&gt;
    serviceResponse[:caller_name]                -&amp;gt; The caller name received in the CNAM response from the CNAM Server (Only present if :return_to_script is set to true)&lt;br /&gt;
&lt;br /&gt;
== Custom user context ==&lt;br /&gt;
The routing script may '''save per-call information within the call context''', that will be available if routing is called again later during the call flow.&lt;br /&gt;
&lt;br /&gt;
Cases where routing is called multiple time for the same call are:&lt;br /&gt;
- Call transfer requests&lt;br /&gt;
- SIP redirect requests&lt;br /&gt;
- Radius Authorization result&lt;br /&gt;
- Announcement server with digit collection&lt;br /&gt;
&lt;br /&gt;
The routing script can save a recursive hash of attributes here:&lt;br /&gt;
  params[:user_context]&lt;br /&gt;
&lt;br /&gt;
For example&lt;br /&gt;
  params[:user_context] = { &amp;quot;SomeKey&amp;quot; =&amp;gt; &amp;quot;Some value I want to retrieve upon next routing for this call&amp;quot;, &amp;quot;OtherVal&amp;quot; =&amp;gt; { &amp;quot;subkey&amp;quot; =&amp;gt; &amp;quot;subval&amp;quot; } }&lt;br /&gt;
&lt;br /&gt;
Upon first call to routing script, params[:user_context] will be nil.&lt;br /&gt;
Upon subsequent calls to routing script, it will contain whatever the script had stored upon previous call (or nil if it was not set)&lt;br /&gt;
&lt;br /&gt;
Note: This feature is available starting from release 2.9.85, 2.10.31 and 3.0.15 (in respective branches 2.9, 2.10 or 3.0)&lt;br /&gt;
&lt;br /&gt;
== Routing Script Tests ==&lt;br /&gt;
The Web portal features a tool for Testing Scripts. The user must enter parameters to simulate the incoming call and after pressing the Test button, will output selected routes and numbers.  You do not need to activate the new routes, or the new scripts to use this test tool: It can be used to test the routing scripts and routing table before activating it.&lt;br /&gt;
This is available in the Routing Scripts section of the Web portal.&lt;br /&gt;
&lt;br /&gt;
=== Test parameters ===&lt;br /&gt;
==== @call_params  ====&lt;br /&gt;
&lt;br /&gt;
That variable should contain a hash of call parameters that will be 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 the 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;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==== @params  ====&lt;br /&gt;
&lt;br /&gt;
A hash of hashes containing parameters. This hash contains bridge parameters and other kind of parameter groups may be added in the future. &lt;br /&gt;
&lt;br /&gt;
  @params = {&lt;br /&gt;
     :bridge =&amp;gt; {:announcement_tone, &amp;quot;announcement.wav&amp;quot;},&lt;br /&gt;
     :contacts =&amp;gt; {&lt;br /&gt;
       :index=&amp;gt;&amp;quot;1&amp;quot;,&lt;br /&gt;
       :list=&amp;gt;[&lt;br /&gt;
          {:called_number=&amp;gt;&amp;quot;6660&amp;quot;, :priority=&amp;gt;&amp;quot;1000&amp;quot;, :is_number_ported=&amp;gt;&amp;quot;0&amp;quot;, :sip_uri=&amp;gt;&amp;quot;&amp;quot;,&lt;br /&gt;
           :raw_data=&amp;gt;&amp;quot;&amp;quot;, :expiration=&amp;gt;&amp;quot;3600&amp;quot;},&lt;br /&gt;
          {:called_number=&amp;gt;&amp;quot;6661&amp;quot;, :priority=&amp;gt;&amp;quot;1000&amp;quot;, :is_number_ported=&amp;gt;&amp;quot;0&amp;quot;, :sip_uri=&amp;gt;&amp;quot;sip:6661@192.168.215.127&amp;quot;, &lt;br /&gt;
           :raw_data=&amp;gt;&amp;quot;&amp;lt;sip:6661@192.168.215.127&amp;gt;&amp;quot;, :expiration=&amp;gt;&amp;quot;3600&amp;quot;}&lt;br /&gt;
       ],&lt;br /&gt;
       :source_indexes=&amp;gt;&amp;quot;nil,0&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; Back to [[Routing script tutorial|Routing Script Tutorial]].&lt;/div&gt;</summary>
		<author><name>Luc Morissette</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>2021-03-09T16:20:02Z</updated>
		
		<summary type="html">&lt;p&gt;Luc Morissette: Updated NAP status information&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Call object  ==&lt;br /&gt;
&lt;br /&gt;
=== Get  ===&lt;br /&gt;
&lt;br /&gt;
This function is used to get the call parameters. The possible parameters are described in the section &amp;quot;Call parameters&amp;quot; &lt;br /&gt;
&lt;br /&gt;
  called_number = caf_call.get&amp;amp;nbsp;: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 parameters from the the call object and put it in hash. &lt;br /&gt;
&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 actually creates one outgoing route that the gateway application will use to bridge the incoming call leg.  If more than one outgoing route is &amp;quot;accepted&amp;quot;, the gateway will try them one by one in the same order that they were accepted.   If an outgoing call leg fails (according to 'route retry' parameters), the next route in line will be used.  &lt;br /&gt;
&lt;br /&gt;
This method takes 2 arguments, the call parameters (hash) and the route parameters (hash).  Note that calling this method does NOT stop the flow of the script.&lt;br /&gt;
&lt;br /&gt;
Apply route remapping rules &lt;br /&gt;
&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 set the reason code for the incoming call leg refusal.  However, this function does NOT stop the flow of the script. &lt;br /&gt;
&lt;br /&gt;
  caf_call.refuse&amp;amp;nbsp;:reason =&amp;amp;gt;&amp;amp;nbsp;:temporary_failure&lt;br /&gt;
&lt;br /&gt;
To immediately refuse the incoming call leg and stop processing the script, the script must raise an exception.  Exiting the script by raising the exception overwrites any reason cause previously stored using refuse().&lt;br /&gt;
&lt;br /&gt;
  raise RoutingException, :no_route&lt;br /&gt;
&lt;br /&gt;
The supported refusal cause values for both refuse() and raise() are described in the section &amp;quot;[[Routing_script_tutorial:Mini_Development_Guide#Reason_values|Reason values]]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Script parameters protocol mapping  ===&lt;br /&gt;
&lt;br /&gt;
The following call parameters are available in the call object. For example:&lt;br /&gt;
&lt;br /&gt;
  called_number = call[:called]&lt;br /&gt;
&lt;br /&gt;
For information on how to use and remap call parameters, see [[Toolpack:_How_to_Use_RegEx_in_Remapped_Called_and_Calling_Number_Mask | How to use regex in Remapped Called and Calling Number Mask]]&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;width: 921px; height: 805px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | '''Script parameter name''' &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | '''_____ISDN_____&amp;lt;br&amp;gt;''' &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | '''__R2_CAS__'''&amp;lt;br&amp;gt; &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | '''______________SS7___________&amp;lt;br&amp;gt;''' &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | '''_____________SIP_____________&amp;lt;br&amp;gt;''' &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | '''Comment&amp;lt;br&amp;gt;'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | '''Toolpack version&amp;lt;br&amp;gt;'''&lt;br /&gt;
|-&lt;br /&gt;
| leg_id&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Leg ID&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| session_id&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Session ID&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| original_session_id&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Original Session ID (before call transfer or redirections)&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| calling&amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Calling party number' IE - Number digits &amp;lt;br&amp;gt; &lt;br /&gt;
| ANI (Group B)&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Calling party number' IE - address signals (*)&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:From - user-info&amp;lt;br&amp;gt; &lt;br /&gt;
| * In ANSI SS7 LNP networks, the IE 'generic address parameter' is used (when present) instead.&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| calling_sip_host &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:From - host (domain or IP) &amp;lt;br&amp;gt; &lt;br /&gt;
|  For example : The 'telcobridges.com' in From: &amp;quot;Cullen Jennings&amp;quot; &amp;lt;sip:fluffy@telcobridges.com&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| calling_sip_port &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:From - port &amp;lt;br&amp;gt; &lt;br /&gt;
|  For example : The '6060' in From: &amp;quot;Cullen Jennings&amp;quot; &amp;lt;sip:fluffy@telcobridges.com:6060&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| calling_noa&amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Calling party number' IE - Type of number&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Calling party number' IE - nature of address indicator (*)&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| * In ANSI SS7 LNP networks, the IE 'generic address parameter' is used (when present) instead&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| calling_npi &amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Calling party number' IE - Numbering plan identification&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Calling party number' IE - numbering plan indicator (*)&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| * In ANSI SS7 LNP networks, the IE 'generic address parameter' is used&amp;amp;nbsp;(when present) instead&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| calling_display &amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Display' IE - Display information&amp;lt;br&amp;gt; &lt;br /&gt;
Q931: 'Facility CNAM' IE when presentation is allowed for DMS/NI2 variants&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763 &lt;br /&gt;
ITU97: 'Display information' IE - display information &lt;br /&gt;
ANSI95: 'Generic name' IE - display information &lt;br /&gt;
| SIP:From - display-name&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| calling_display_type&amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Display' IE - Display information (present and/or first byte)&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Display information' IE - present or not&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| calling_presentation &amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Calling party number' IE - Presentation indicator&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Calling party number' IE - address presentation restricted indicator&amp;lt;br&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
SIP:From - display-name (displays 'anonymous' or not) &lt;br /&gt;
&lt;br /&gt;
SIP:Remote-party-id - privacy&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| calling_screening&amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Calling party number' IE - Screening indicator&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Calling party number' IE - screening&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:Remote-party-id - screen&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| calling_category&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Call party category (Group A)&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Calling party's category' IE - calling party's category&amp;lt;br&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
SIP:From - cpc &lt;br /&gt;
&lt;br /&gt;
SIP:P-asserted-identity - cpc&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| calling_subscriber &lt;br /&gt;
(Generic Number / NDS)&amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 2nd 'Calling party number' IE - Number digits &amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: Generic number IE with type 'additional calling party number' - Number digits&amp;lt;br&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
SIP:P-asserted-identity - userinfo &lt;br /&gt;
&lt;br /&gt;
SIP:Remote-party-id - user-info&amp;lt;br&amp;gt; &lt;br /&gt;
| Requires option 'support 2 calling number IE' in the profile.  This variable has priority over 'private_address' in the outgoing direction.&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| calling_subscriber_noa&amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 2nd 'Calling party number' IE - Type of number&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: Generic number IE with type 'additional calling party number' - nature of address indicator&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:P-asserted-identity - userinfo &lt;br /&gt;
&lt;br /&gt;
SIP:Remote-party-id - user-info&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| calling_subscriber_npi &amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 2nd 'Calling party number' IE - Numbering plan identification&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: Generic number IE with type 'additional calling party number' - numbering plan indicator&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:P-asserted-identity - userinfo &lt;br /&gt;
&lt;br /&gt;
SIP:Remote-party-id - user-info&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| calling_subscriber_presentation&amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 2nd 'Calling party number' IE - Presentation indicator&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: Generic number IE with type 'additional calling party number' - presentation restricted indicator&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:P-asserted-identity - userinfo &lt;br /&gt;
&lt;br /&gt;
SIP:Remote-party-id - user-info&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| calling_subscriber_screening &amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 2nd 'Calling party number' IE - Screening indicator&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: Generic number IE with type 'additional calling party number' - screening&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:P-asserted-identity - userinfo &lt;br /&gt;
&lt;br /&gt;
SIP:Remote-party-id - user-info&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| private_display&amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Facility CNAM' IE when presentation is restricted for DMS/NI2 variants&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
SIP:P-asserted-identity - display-name&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
SIP:Remote-party-id - display-name&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| private_display_type &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Indicate presence or not of the private calling information&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| private_address&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
SIP:P-asserted-identity - userinfo &lt;br /&gt;
&lt;br /&gt;
SIP:Remote-party-id - user-info&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
| For example : The 'fluffy' in P-Asserted-Identity: &amp;quot;Cullen Jennings&amp;quot; &amp;lt;sip:fluffy@telcobridges.com&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| private_address_sip_host &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
SIP:P-asserted-identity - host (domain or IP)&lt;br /&gt;
&lt;br /&gt;
SIP:Remote-party-id - host (domain or IP) &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
| For example : The 'telcobridges.com' in P-Asserted-Identity: &amp;quot;Cullen Jennings&amp;quot; &amp;lt;sip:fluffy@telcobridges.com&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| private_address_sip_port &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
SIP:P-asserted-identity - port&lt;br /&gt;
&lt;br /&gt;
SIP:Remote-party-id - port&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
| For example : The '6060' in P-Asserted-Identity: &amp;quot;Cullen Jennings&amp;quot; &amp;lt;sip:fluffy@telcobridges.com:6060&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| supp_private_address_forward_enabled &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Overwrite default supplementary/second P-Asserted-Identity header forwarding behavior from incoming to outgoing leg &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| supp_private_address&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
SIP:P-Asserted-Identity - userinfo &lt;br /&gt;
&lt;br /&gt;
| For example : The 'fluffy' in supplementary/second P-Asserted-Identity: &amp;quot;Cullen Jennings&amp;quot; &amp;lt;sip:fluffy@telcobridges.com&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| supp_private_address_display_name&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
SIP:P-Asserted-Identity - display name&lt;br /&gt;
&lt;br /&gt;
| For example : The 'Cullen Jennings' in supplementary/second P-Asserted-Identity: &amp;quot;Cullen Jennings&amp;quot; &amp;lt;sip:fluffy@telcobridges.com&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| supp_private_address_sip_host &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
SIP:P-Asserted-Identity - host (domain or IP)&lt;br /&gt;
&lt;br /&gt;
| For example : The 'telcobridges.com' in supplementary/second P-Asserted-Identity: &amp;quot;Cullen Jennings&amp;quot; &amp;lt;sip:fluffy@telcobridges.com&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| supp_private_address_sip_port &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
SIP:P-Asserted-Identity - port&lt;br /&gt;
&lt;br /&gt;
| For example : The '6060' in supplementary/second P-Asserted-Identity: &amp;quot;Cullen Jennings&amp;quot; &amp;lt;sip:fluffy@telcobridges.com:6060&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| preferred_id_forward_enabled &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Overwrite default P-Preferred-Identity header forwarding behavior from incoming to outgoing leg &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| preferred_id&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
SIP:P-Preferred-Identity - userinfo &lt;br /&gt;
&lt;br /&gt;
| For example : The 'fluffy' in P-Preferred-Identity: &amp;quot;Cullen Jennings&amp;quot; &amp;lt;sip:fluffy@telcobridges.com&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| preferred_id_display_name&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
SIP:P-Preferred-Identity - display name&lt;br /&gt;
&lt;br /&gt;
| For example : The 'Cullen Jennings' in P-Preferred-Identity: &amp;quot;Cullen Jennings&amp;quot; &amp;lt;sip:fluffy@telcobridges.com&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| preferred_id_sip_host &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
SIP:P-Preferred-Identity - host (domain or IP)&lt;br /&gt;
&lt;br /&gt;
| For example : The 'telcobridges.com' in P-Preferred-Identity: &amp;quot;Cullen Jennings&amp;quot; &amp;lt;sip:fluffy@telcobridges.com&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| preferred_id_sip_port &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
SIP:P-Preferred-Identity - port&lt;br /&gt;
&lt;br /&gt;
| For example : The '6060' in P-Preferred-Identity: &amp;quot;Cullen Jennings&amp;quot; &amp;lt;sip:fluffy@telcobridges.com:6060&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| called &amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Called party number' IE - Number digits &amp;lt;br&amp;gt; &lt;br /&gt;
| DNIS (Group A)&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Called party number' IE - address signals&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:To - user-info and host&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| called_sip_host &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:To - host &amp;lt;br&amp;gt; &lt;br /&gt;
| For example : The 'telcobridges.com' in To: &amp;quot;Cullen Jennings&amp;quot; &amp;lt;sip:fluffy@telcobridges.com&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| called_sip_port &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:To - port number &amp;lt;br&amp;gt; &lt;br /&gt;
| For example : The '6060' in To: &amp;quot;Cullen Jennings&amp;quot; &amp;lt;sip:fluffy@telcobridges.com:6060&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| called_noa &amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Called party number' IE - Type of number&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Called party number' IE - nature of address indicator&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| called_npi &amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Called party number' IE - Numbering plan identification&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Called party number' IE - numbering plan indicator&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| charge_number&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| ANSI: 'Charge number' IE - address signals&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| charge_number_noa &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| ANSI: 'Charge number' IE - nature of address indicator&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| charge_number_npi&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| ANSI: 'Charge number' IE - numbering plan indicator&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| redirecting_number_forward_enabled &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Overwrite default redirecting number and original called number forwarding behavior from incoming to outgoing leg &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| redirecting_number &amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Redirecting number' 1st IE - Number digits &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Redirecting number' IE - address signals&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:Diversion (2nd header) - display-name&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| redirecting_number_noa &amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Redirecting number'&amp;amp;nbsp;1st IE - Type of number&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Redirecting number' IE - nature of address indicator&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| redirecting_number_npi &amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Redirecting number' 1st IE - Numbering plan identification&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Redirecting number' IE - numbering plan indicator&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| redirecting_number_presentation &amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Redirecting number' 1st IE - Presentation indicator &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Redirecting number' IE - address presentation restricted indicator&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:Diversion&amp;amp;nbsp;(2nd header) - diversion-privacy&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| redirecting_number_indicator &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Redirection information' IE - redirecting indicator&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| redirecting_number_reason &amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Redirecting number' 1st IE - Reason for redirection&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Redirection information' IE - redirecting reason&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:Diversion (2nd header) - diversion-reason&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| redirecting_number_counter &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Redirection information' IE - redirection counter&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:Diversion (2nd header) - diversion-counter&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| original_called_number &lt;br /&gt;
(OCN) &amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Redirecting number' 2nd IE - Number digits &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Redirection number' IE - address signals&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:Diversion&amp;amp;nbsp; (1st header) - display-name&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| original_called_number_noa &amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Redirecting number' 2nd IE - Type of number&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Redirection number' IE - nature of address indicator&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| original_called_number_npi &amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Redirecting number' 2nd IE - Numbering plan identification&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Redirection number' IE - numbering plan indicator&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| original_called_number_presentation &amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Redirecting number' 2nd IE - Presentation indicator &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Redirection number' IE - address presentation restricted indicator&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:Diversion (1st header) - diversion-privacy&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| original_called_number_reason &amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Redirecting number' 2nd IE - Reason for redirection&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Redirection information' IE - original redirection reason&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:Diversion (1st header) - diversion-reason&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| original_called_number_counter &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:Diversion (1st header) - diversion-counter&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| ported_number_npdi &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Generic number' IE - with qualifier=Ported number is present&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:RequestURI - npdi=yes is present&amp;lt;br&amp;gt; &lt;br /&gt;
| Only valid if SIP/SS7 supports LNP&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| ported_number &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Generic number' IE - address signals with qualifier=Ported number&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:RequestURI - to user part when rn is present&amp;lt;br&amp;gt; &lt;br /&gt;
| rn is stored in the called number&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| ported_number_noa &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Generic number' IE - nature of address indicator with qualifier=Ported number&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Only valid if SIP/SS7 supports LNP&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| ported_number_npi &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Generic number' IE - numbering plan indicator with qualifier=Ported number&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Only valid if SIP/SS7 supports LNP&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| oli&lt;br /&gt;
(Originating line information) &amp;lt;br&amp;gt; &lt;br /&gt;
| 5ESS Codeset 6 OLI - Value&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| ANSI: 'Originating line information' IE - OLI&amp;lt;br&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
SIP:From - oli &lt;br /&gt;
&lt;br /&gt;
SIP:P-asserted-identity - oli&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| request_uri &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Complete Request URI string&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| request_uri_forward_enabled &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Overwrite default URI&amp;amp;nbsp;forwarding behavior from incoming to outgoing leg&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| sip_header&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Any header&amp;lt;br&amp;gt; &lt;br /&gt;
| Requires option 'Enable SIP Custom Headers' in Profiles-&amp;gt;SIP &amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7.63&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| nap&lt;br /&gt;
(Network Access Point) &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Incoming leg NAP name (read-only)&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| type_of_network_identification&amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Transit network selection' IE - Type of network identification &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Transit network selection' IE - Type of network identification &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| network_identification&amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Transit network selection' IE - Network identification &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Transit network selection' IE - Network identification &amp;lt;br&amp;gt; &lt;br /&gt;
| SIP: Request-Line - cic&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| network_identification_plan&amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Transit network selection' IE - Network identification plan &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Transit network selection' IE - Network identification plan &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| location_number_forward_enabled &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Overwrite default location number forwarding behavior from incoming to outgoing leg &amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| location_number &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Location number' IE - address signals&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| location_number_noa &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Location number' IE - nature of address indicator&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| location_number_npi &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Location number' IE - numbering plan indicator&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| location_number_presentation&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Location number' IE - presentation restricted indicator&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| location_number_screening &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Location number' IE - screening&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| mlpp_forward_enabled &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| A script needs to set this to true if it wants to overwrite MLPP information in the outgoing leg.  Otherwise, profile relay 'outgoing mode' applies automatically.&amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| mlpp_look_for_busy &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'MLPP precedence' IE - look ahead for busy&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| mlpp_precedence_level &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'MLPP precedence' IE - precedence level&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:Resource-Priority - q735&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| mlpp_network_identity &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'MLPP precedence' IE - network identity&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| mlpp_service_domain&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'MLPP precedence' IE - MLPP service domain&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| isub_forward_enabled &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Overwrite default ISUB forwarding behavior from incoming to outgoing leg &amp;lt;br&amp;gt;&lt;br /&gt;
| 3.0.138&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| called_isub &amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Called party subaddress' IE - subaddress information&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Access transport' IE&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:To - isub parameter&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| called_isub_type&amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Called party subaddress' IE - type of subaddress&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Access transport' IE&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:To - isub-encoding parameter&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| calling_isub &amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Calling party subaddress' IE - subaddress information&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Access transport' IE&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:From - isub&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| calling_isub_type&amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Calling party subaddress' IE - type of subaddress&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Access transport' IE&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:From - isub-encoding&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| ss7_fci_default &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Default forward call indicator (FCI) value.&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Toolpack will overwrite FCI bits A, D, F, I and M with appropriate values according to call conditions&amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| ss7_fci_force_mask &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Mask to select bits from ss7_fci_default that must be forced.&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Bits from ss7_fci_default which corresponding bit in ss7_fci_force_mask is set will be forced, and no more controlled by Toolpack&amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| ss7_bci_default &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Default backward call indicator (BCI) value.&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Toolpack will overwrite BCI bits AB, I, K, M and N with appropriate values according to call conditions&amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| ss7_bci_force_mask &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Mask to select bits from ss7_bci_default that must be forced.&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Bits from ss7_bci_default which corresponding bit in ss7_bci_force_mask is set will be forced, and no more controlled by Toolpack&amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tdm_ls_name_forward_enabled&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt;&lt;br /&gt;
| Enable line service and timeslot selection to create the outgoing leg. tdm_ls_name and tdm_timeslot_nb must be defined along with tdm_ls_name_forward_enabled&amp;lt;br&amp;gt;&lt;br /&gt;
| 3.0&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tdm_ls_name&lt;br /&gt;
(Line Service or T1/E1 trunk) &amp;lt;br&amp;gt; &lt;br /&gt;
| Incoming leg line service name&amp;lt;br&amp;gt; &lt;br /&gt;
| Incoming leg line service name&amp;lt;br&amp;gt; &lt;br /&gt;
| Incoming leg line service name&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| if tdm_ls_name_forward_enabled is set, try to use this line service name to create outgoing leg&amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tdm_timeslot_nb&amp;lt;br&amp;gt; &lt;br /&gt;
| Incoming leg timeslot number&amp;lt;br&amp;gt; &lt;br /&gt;
| Incoming leg timeslot number&amp;lt;br&amp;gt; &lt;br /&gt;
| Incoming leg timeslot number&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| if tdm_ls_name_forward_enabled is set, try to use this timeslot number to create outgoing leg&amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| rtp_local_addr&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Incoming leg local SDP IP address&amp;lt;br&amp;gt; &lt;br /&gt;
| (read-only)&amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| rtp_local_port&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Incoming leg local SDP IP port&amp;lt;br&amp;gt; &lt;br /&gt;
| (read-only)&amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| rtp_remote_addr&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Incoming leg remote SDP IP address&amp;lt;br&amp;gt; &lt;br /&gt;
| (read-only)&amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| rtp_remote_port&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Incoming leg remote SDP IP port&amp;lt;br&amp;gt; &lt;br /&gt;
| (read-only)&amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| ss7_cot_enabled &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Requests SS7 in-call continuity test for this outgoing SS7 call&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Toolpack will request a continuity test on the timeslot before making the outgoing call. If COT fails, the call will be dropped (then another route may be attempted)&amp;lt;br&amp;gt;&lt;br /&gt;
| 2.8&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| reverse_charging_indication&amp;lt;br&amp;gt; &lt;br /&gt;
| Incoming leg Reverse charging indication IE present&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| If set in routing script, will add Reverse charging indication IE in outgoing leg (also use reverse_charging_indication_forward_enabled)&amp;lt;br&amp;gt;&lt;br /&gt;
| 2.8.12&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| reverse_charging_indication_forward_enabled&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Enable forwarding of reverse charging indication from incoming to outgoing leg&amp;lt;br&amp;gt;&lt;br /&gt;
| 2.8.12&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| sip_call_id&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Incoming leg SIP Call-Id&amp;lt;br&amp;gt; &lt;br /&gt;
| (read-only)&amp;lt;br&amp;gt;&lt;br /&gt;
| 2.9.112 / 3.0.131&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| sip_local_addr&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Incoming leg local SIP IP address&amp;lt;br&amp;gt; &lt;br /&gt;
| (read-only)&amp;lt;br&amp;gt;&lt;br /&gt;
| 2.8.13&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| sip_local_port&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Incoming leg local SIP port&amp;lt;br&amp;gt; &lt;br /&gt;
| (read-only)&amp;lt;br&amp;gt;&lt;br /&gt;
| 2.8.13&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| sip_remote_addr&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Incoming leg remote SIP IP address&amp;lt;br&amp;gt; &lt;br /&gt;
| (read-only)&amp;lt;br&amp;gt;&lt;br /&gt;
| 2.8.13&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| sip_remote_port&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Incoming leg remote SIP port&amp;lt;br&amp;gt; &lt;br /&gt;
| (read-only)&amp;lt;br&amp;gt;&lt;br /&gt;
| 2.8.13&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| acli&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt;&lt;br /&gt;
| 'Additional Calling Party Information' IE - address signals.&lt;br /&gt;
A new ISUP parameter is defined under national option to carry the actual calling party number of the ported subscriber (N2) in the IAM message across the Network.&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt;&lt;br /&gt;
| (read-only)&amp;lt;br&amp;gt;&lt;br /&gt;
| 3.0.143.2&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| acli_nao&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt;&lt;br /&gt;
| 'Additional Calling Party Information' IE - nature of address indicator.&lt;br /&gt;
A new ISUP parameter is defined under national option to carry the actual calling party number of the ported subscriber (N2) in the IAM message across the Network.&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt;&lt;br /&gt;
| (read-only)&amp;lt;br&amp;gt;&lt;br /&gt;
| 3.0.143.2&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| acli_npi&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt;&lt;br /&gt;
| 'Additional Calling Party Information' IE - numbering plan indicator.&lt;br /&gt;
A new ISUP parameter is defined under national option to carry the actual calling party number of the ported subscriber (N2) in the IAM message across the Network.&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt;&lt;br /&gt;
| (read-only)&amp;lt;br&amp;gt;&lt;br /&gt;
| 3.0.143.2&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| acli_presentation&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt;&lt;br /&gt;
| 'Additional Calling Party Information' IE - address presentation restricted indicator.&lt;br /&gt;
A new ISUP parameter is defined under national option to carry the actual calling party number of the ported subscriber (N2) in the IAM message across the Network.&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt;&lt;br /&gt;
| (read-only)&amp;lt;br&amp;gt;&lt;br /&gt;
| 3.0.143.2&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| acli_screening&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt;&lt;br /&gt;
| 'Additional Calling Party Information' IE - screening indicator.&lt;br /&gt;
A new ISUP parameter is defined under national option to carry the actual calling party number of the ported subscriber (N2) in the IAM message across the Network.&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt;&lt;br /&gt;
| (read-only)&amp;lt;br&amp;gt;&lt;br /&gt;
| 3.0.143.2&amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Noa values  ===&lt;br /&gt;
The text below represents the value normally used by routing script.&amp;lt;br&amp;gt;&lt;br /&gt;
Incase it's required to use a value that's not defined in the text values below, a integer can be provided and will be used &amp;quot;as-is&amp;quot; in the signaling message.&amp;lt;br&amp;gt;&lt;br /&gt;
Example numeric values for the SS7 protocol are shown in parenthesis.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;unknown_number (2 or 0x2)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;international_number (4 or 0x4)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;national_number (3 or 0x3)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;subscriber_number (1 or 0x1)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;network_specific (5 or 0x5)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;network_routing_national_format (7 or 0x7)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;network_routing_international_format (8 or 0x8)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;abbreviated_number (6 or 0x6)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;subscriber_number_operator_requested (113 or 0x71)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;national_number_operator_requested (114 or 0x72)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;international_number_operator_requested (115 or 0x73)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;no_number_present_operator_requested (116 or 0x74)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;no_number_present_cut_through_call_to_carrier (117 or 0x75)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;test_line_test_code (119 or 0x77)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;non_unique_subscriber_number (113 or 0x71)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;non_unique_national_number (115 or 0x73)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;non_unique_international_number (116 or 0x74)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;call_950_number (118 or 0x76)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;special_number (115 or 0x73)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;national_number_with_transit_network_selection (116 or 0x74)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;international_number_with_transit_network_selection (117 or 0x75)&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;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;call_params[:called_noa] = 0x70&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or &lt;br /&gt;
&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;
&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;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;unspecified&amp;lt;/tt&amp;gt; =&amp;amp;gt; Type is unspecified. &lt;br /&gt;
*&amp;lt;tt&amp;gt;calling_party_name&amp;lt;/tt&amp;gt; =&amp;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;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;call_params[:calling_display_type] = 0xB1&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or &lt;br /&gt;
&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;
&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;
=== Presentation values for Calling number, Calling Subscriber (Generic Number), Redirecting Number, Original Called Number (OCN) and Location Number ===&lt;br /&gt;
The text below represents the value normally used by routing script.&amp;lt;br&amp;gt;&lt;br /&gt;
Incase it's required to use a value that's not defined in the text values below, a integer can be provided and will be used &amp;quot;as-is&amp;quot; in the signaling message.&amp;lt;br&amp;gt;&lt;br /&gt;
Example numeric values for the SS7 protocol are shown in parenthesis.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;unspecified&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;not_available (0x2)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;allowed (0x0)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;restricted (0x1)&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 Party Category  ===&lt;br /&gt;
The text below represents the value normally used by routing script.&amp;lt;br&amp;gt;&lt;br /&gt;
In case it's required to use a value that's not defined in the text values below, a integer can be provided and will be used &amp;quot;as-is&amp;quot; in the signaling message.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mapping from routing script to SS7/CAS R2/SIP&lt;br /&gt;
{| cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | '''Routing Script string &amp;lt;br&amp;gt;''' &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | '''SS7 raw value &amp;lt;br&amp;gt;''' &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | '''R2 CAS scripts'''&amp;lt;br&amp;gt; &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | '''Default Rx CAS'''&amp;lt;br&amp;gt; &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | '''default Tx CAS'''&amp;lt;br&amp;gt; &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | '''SIP &amp;quot;cpc=&amp;quot;  &amp;lt;br&amp;gt;''' &lt;br /&gt;
|-&lt;br /&gt;
| subscriber&amp;lt;br&amp;gt; &lt;br /&gt;
| 0xa&amp;lt;br&amp;gt; &lt;br /&gt;
| CATEGORY_SUBSCRIBER &amp;lt;br&amp;gt; &lt;br /&gt;
| 1 and 7&amp;lt;br&amp;gt; &lt;br /&gt;
| 7&amp;lt;br&amp;gt; &lt;br /&gt;
| ordinary&amp;lt;br&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| subscriber_with_priority&amp;lt;br&amp;gt; &lt;br /&gt;
| 0xb&amp;lt;br&amp;gt; &lt;br /&gt;
| CATEGORY_SUBSCRIBER_WITH_PRIORITY &amp;lt;br&amp;gt; &lt;br /&gt;
| 2 and 9 &amp;lt;br&amp;gt; &lt;br /&gt;
| 2 &amp;lt;br&amp;gt; &lt;br /&gt;
| priority&amp;lt;br&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| operator_french&amp;lt;br&amp;gt; &lt;br /&gt;
| 0x1&amp;lt;br&amp;gt; &lt;br /&gt;
| CATEGORY_OPERATOR_FRENCH &amp;lt;br&amp;gt; &lt;br /&gt;
| 5 &amp;lt;br&amp;gt; &lt;br /&gt;
| 5 &amp;lt;br&amp;gt;&lt;br /&gt;
| operator&amp;lt;br&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| operator_english&amp;lt;br&amp;gt; &lt;br /&gt;
| 0x2&amp;lt;br&amp;gt; &lt;br /&gt;
| CATEGORY_OPERATOR_ENGLISH (5)&amp;lt;br&amp;gt; &lt;br /&gt;
| 5 &amp;lt;br&amp;gt; &lt;br /&gt;
| 5 &amp;lt;br&amp;gt;&lt;br /&gt;
| operator&amp;lt;br&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| operator_german&amp;lt;br&amp;gt; &lt;br /&gt;
| 0x3&amp;lt;br&amp;gt; &lt;br /&gt;
| CATEGORY_OPERATOR_GERMAN (5)&amp;lt;br&amp;gt; &lt;br /&gt;
| 5 &amp;lt;br&amp;gt; &lt;br /&gt;
| 5 &amp;lt;br&amp;gt;&lt;br /&gt;
| operator&amp;lt;br&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| operator_russian&amp;lt;br&amp;gt; &lt;br /&gt;
| 0x4&amp;lt;br&amp;gt; &lt;br /&gt;
| CATEGORY_OPERATOR_RUSSIAN (5)&amp;lt;br&amp;gt; &lt;br /&gt;
| 5 &amp;lt;br&amp;gt; &lt;br /&gt;
| 5 &amp;lt;br&amp;gt;&lt;br /&gt;
| operator&amp;lt;br&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| operator_spanish &amp;lt;br&amp;gt; &lt;br /&gt;
| 0x5&amp;lt;br&amp;gt; &lt;br /&gt;
| CATEGORY_OPERATOR_SPANISH (5)&amp;lt;br&amp;gt; &lt;br /&gt;
| 5 &amp;lt;br&amp;gt; &lt;br /&gt;
| 5 &amp;lt;br&amp;gt;&lt;br /&gt;
| operator&amp;lt;br&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| data&amp;lt;br&amp;gt; &lt;br /&gt;
| 0xc&amp;lt;br&amp;gt; &lt;br /&gt;
| CATEGORY_DATA &amp;lt;br&amp;gt; &lt;br /&gt;
| 6 and 8&amp;lt;br&amp;gt; &lt;br /&gt;
| 6 &amp;lt;br&amp;gt; &lt;br /&gt;
| datacall&amp;lt;br&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| test&amp;lt;br&amp;gt; &lt;br /&gt;
| 0xd&amp;lt;br&amp;gt; &lt;br /&gt;
| CATEGORY_TEST &amp;lt;br&amp;gt; &lt;br /&gt;
| 3 &amp;lt;br&amp;gt; &lt;br /&gt;
| 3 &amp;lt;br&amp;gt; &lt;br /&gt;
| test&amp;lt;br&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| payphone &amp;lt;br&amp;gt; &lt;br /&gt;
| 0xf&amp;lt;br&amp;gt; &lt;br /&gt;
| CATEGORY_PAYPHONE &amp;lt;br&amp;gt; &lt;br /&gt;
| none &amp;lt;br&amp;gt; &lt;br /&gt;
| 7 &amp;lt;br&amp;gt; &lt;br /&gt;
| payphone&amp;lt;br&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| unknown &amp;lt;br&amp;gt; &lt;br /&gt;
| 0x0 &amp;lt;br&amp;gt; &lt;br /&gt;
| CATEGORY_UNKNOWN&amp;lt;br&amp;gt; &lt;br /&gt;
| 4, 11 to 15&amp;lt;br&amp;gt; &lt;br /&gt;
| 7 &amp;lt;br&amp;gt; &lt;br /&gt;
| unknown&amp;lt;br&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| unspecified &amp;lt;br&amp;gt; &lt;br /&gt;
| 0xa &amp;lt;br&amp;gt; &lt;br /&gt;
| invalid &amp;lt;br&amp;gt; &lt;br /&gt;
| none &amp;lt;br&amp;gt; &lt;br /&gt;
| none &amp;lt;br&amp;gt; &lt;br /&gt;
| invalid &amp;lt;br&amp;gt; &lt;br /&gt;
|}&lt;br /&gt;
[[CAS_R2_scripting#Category_meanings|Link to calling party categories used in CAS R2 scripts]]&lt;br /&gt;
&lt;br /&gt;
=== Screening values for Calling number, Calling Subscriber (Generic Number), and Location Number  ===&lt;br /&gt;
The text below represents the value normally used by routing script.&amp;lt;br&amp;gt;&lt;br /&gt;
Incase it's required to use a value that's not defined in the text values below, a integer can be provided and will be used &amp;quot;as-is&amp;quot; in the signaling message.&amp;lt;br&amp;gt;&lt;br /&gt;
Example numeric values for the SS7 protocol are shown in parenthesis.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;unspecified&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;no (0x0)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;pass (0x1)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;fail (0x2)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;network_provided (0x3)&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Redirecting indicator values  ===&lt;br /&gt;
&lt;br /&gt;
SS7: &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;no_redirection&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;call_rerouted&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;call_rerouted_all_restricted&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;call_diverted&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;call_diverted_all_restricted&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;call_rerouted_restricted&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;call_diverted_restricted&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;spare&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Redirecting number, Original Called Number and Diversion Reason ===&lt;br /&gt;
&lt;br /&gt;
ISDN: &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;unknown&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;busy&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;no_reply&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;deflection&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;dte_out_of_order&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;forwarding_by_called_dte&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;unconditional&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
SS7: &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;unknown&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;busy      (SIP: user-busy)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;no_reply  (SIP: no-answer)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;unconditional&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;deflection&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;deflection_immediate&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;mobile_not_reachable&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== OLI (originating line information) values  ===&lt;br /&gt;
&lt;br /&gt;
The OLI parameter is a string that represents an integer value from 0 to 255. &lt;br /&gt;
&lt;br /&gt;
=== Information Transfer Capability values  ===&lt;br /&gt;
&lt;br /&gt;
information_transfer_capability: &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;digital&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;restricted_digital&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;digital_with_tones&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;speech&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;3_1_khz_audio&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;video&amp;lt;/tt&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== redirecting_number_forward_enabled values  ===&lt;br /&gt;
&lt;br /&gt;
Controls forwarding or discarding of redirecting number (SIP: diversion header) to the outgoing call leg. &lt;br /&gt;
&lt;br /&gt;
Values for this parameter are &amp;quot;0&amp;quot;, &amp;quot;1&amp;quot;, &amp;quot;false&amp;quot; or &amp;quot;true. &lt;br /&gt;
*0/false: Redirecting number (and original called number) is not forwarded to outgoing call leg&lt;br /&gt;
*1/true: Redirecting number (and original called number) is forwarded to outgoing call leg&lt;br /&gt;
&lt;br /&gt;
The value for this parameter at the input of the routing script depends on the &amp;quot;Forward redirecting number&amp;quot; parameter in the &amp;quot;Advanced&amp;quot; section of the Gateway configuration page of the Web Portal. The script may change this value to override the Gateway configuration.&lt;br /&gt;
&lt;br /&gt;
Note: To &amp;quot;insert&amp;quot; a new redirecting number value on the outgoing leg, redirecting_number_forward_enabled must also be set to true.&lt;br /&gt;
&lt;br /&gt;
=== request_uri  ===&lt;br /&gt;
&lt;br /&gt;
Enables access to the Request-Line URI.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
For example, if the Request-Line is: &lt;br /&gt;
&amp;lt;pre&amp;gt;Request-Line: INVITE sip:4175162082@172.22.45.13:5060;user=phone;transport=udp SIP/2.0&amp;lt;/pre&amp;gt; &lt;br /&gt;
Then the retrieved request_uri will be &amp;quot;sip:4175162082@172.22.45.13:5060;user=phone;transport=udp SIP/2.0&amp;quot;. &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
In the routing scripts, to retrieve only the called number, this script can be used:&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;    if call_params[:request_uri] &amp;amp;amp;&amp;amp;amp; call_params[:request_uri] =~ /sip:(.*)@.*/&lt;br /&gt;
       call_params[:called] = $1&lt;br /&gt;
    end&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
==== request_uri_forward_enabled ====&lt;br /&gt;
&lt;br /&gt;
This call parameter controls forwarding or discarding of request uri to outgoing call leg.The request uri is the information in the &amp;quot;Request-Line:&amp;quot; of the SIP INVITE message.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Values for this parameter are &amp;quot;0&amp;quot;, &amp;quot;1&amp;quot;, &amp;quot;false&amp;quot; or &amp;quot;true. &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
* 0/false: Request uri is not forwarded to outgoing call leg &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
* 1/true: Request uri is forwarded to outgoing call leg &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The default value for this parameters is false. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== sip_scheme  ====&lt;br /&gt;
(Available in Toolpack 3.1+)&lt;br /&gt;
This call parameters indicates the scheme (generally &amp;quot;sip&amp;quot; or &amp;quot;sips&amp;quot;) of the incoming call.&lt;br /&gt;
&lt;br /&gt;
This also allows to control the scheme used for the outgoing call (regardless if request_uri_forward_enabled is used or not)&lt;br /&gt;
&lt;br /&gt;
Note: sips scheme must only be used on TLS NAPs (will cause call routing failure if NAP has only UDP or TCP transport types).&lt;br /&gt;
&lt;br /&gt;
=== sip_header values  ===&lt;br /&gt;
Contains custom sip headers from the inbound call leg. Any custom sip header can be added to an outgoing call leg:&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note:'''&lt;br /&gt;
&lt;br /&gt;
The  SIP header is in string format.&lt;br /&gt;
&lt;br /&gt;
'''string format:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;call[ :sip_header ] = &amp;quot;P-my-custom-header:value1 \nP-my-custom-header2:value2 \nP-my-custom-header3:value3&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(Note: \n above are actual newline characters, not '\' followed by 'n')&lt;br /&gt;
&lt;br /&gt;
* PCAP sample: [[File:TB_Custom_SIP_Headers.pcap]]&lt;br /&gt;
&lt;br /&gt;
List of sip headers that will not appear in call[:sip_header] since they are already processed by the SIP stack:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Accept               Error-Info             Remote-Party-ID      &lt;br /&gt;
Accept-Contact       Event                  Replaces                        &lt;br /&gt;
Accept-Encoding      Expires                Reply-To               &lt;br /&gt;
Accept-Language      From                   Request-Disposition    &lt;br /&gt;
Alert-Info           In-Reply-To            Subject          &lt;br /&gt;
Allow                Max-Forwards           Subscription-State  &lt;br /&gt;
Allow-Events         MIME-version           Supported           &lt;br /&gt;
Also                 Min-Expires            Timestamp           &lt;br /&gt;
Anonymity            Min-SE                 To             &lt;br /&gt;
Authorization        Organization           Unsupported  &lt;br /&gt;
Authentication-Info  Path                   User-Agent  &lt;br /&gt;
Call-ID              Priority               Via  &lt;br /&gt;
Call-Info            Privacy                Warning  &lt;br /&gt;
Contact              Proxy-Authenticate     WWW-Authenticate  &lt;br /&gt;
Content-Disposition  Proxy-Authorization    Require  &lt;br /&gt;
Content-Encoding     Proxy-Require          Response-Key  &lt;br /&gt;
Content-Language     P-Media-Authorization  Retry-After  &lt;br /&gt;
Content-Length       P-Preferred-Identity   RPID-Privacy  &lt;br /&gt;
Content-Type         P-Asserted-Identity    Route  &lt;br /&gt;
CSeq                 RAck                   RSeq  &lt;br /&gt;
RAck                 Reason                 Security-Client  &lt;br /&gt;
Reason               Record-Route           Security-Server  &lt;br /&gt;
Date                 Refer-To               Security-Verify&lt;br /&gt;
Diversion            *Referred-By            Server&lt;br /&gt;
Encryption           Reject-Contact         Service-Route             &lt;br /&gt;
                                            Session-Expires&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note: Since version 3.0.57, Referred-By is now a SIP custom parameter&lt;br /&gt;
&lt;br /&gt;
=== sip header parameters  ===&lt;br /&gt;
The routing script can read (and modify) some SIP header parameters (user parameters, URI parameters or header parameters) from some SIP headers (To, From, P-Asserted-Identity, Remote-Party-ID, Contact).&lt;br /&gt;
&lt;br /&gt;
==== Available parameters ====&lt;br /&gt;
* '''call[ :calling_parameters ]''' (SIP &amp;quot;From&amp;quot; header)&lt;br /&gt;
* '''call[ :called_parameters ]''' (SIP &amp;quot;To&amp;quot; header)&lt;br /&gt;
* '''call[ :private_address_parameters ]''' (SIP &amp;quot;P-Asserted-Identity&amp;quot; or &amp;quot;Remote-Party-ID&amp;quot; header)&lt;br /&gt;
* '''call[ :supp_private_address_parameters ]''' (SIP supplementary/second &amp;quot;P-Asserted-Identity&amp;quot; header)&lt;br /&gt;
* '''call[ :preferred_id_parameters ]''' (SIP &amp;quot;P-Preferred-Identity&amp;quot; header)&lt;br /&gt;
* '''call[ :contact_parameters ]''' (SIP &amp;quot;Contact&amp;quot; header)&lt;br /&gt;
&lt;br /&gt;
These parameters (if present) contain a hash with 3 keys: user_param, uri_param and header_param.&lt;br /&gt;
Each of this key points to a string that contains all the parameters found in the corresponding SIP header.&lt;br /&gt;
* '''User parameters''' (parameters between the user name/number and the host). Example  &amp;lt;sip:alice;'''param=value'''@somewhere.com&amp;gt;&lt;br /&gt;
* '''URI parameters''' (parameters at the end of the URI). Example  &amp;lt;sip:alice@somewhere.com;'''param=value'''&amp;gt;&lt;br /&gt;
* '''Header parameters''' (outside the URI). Example  &amp;lt;sip:alice@somewhere.com&amp;gt;;'''param=value'''&lt;br /&gt;
Example to print all parameters of SIP &amp;quot;To&amp;quot; header:&lt;br /&gt;
  call[ :called_parameters ].inspect -&amp;gt; '{ :user_param =&amp;gt; &amp;quot;name1=value1;name2=value2&amp;quot;, :uri_param =&amp;gt; &amp;quot;name=value&amp;quot;, :header_param =&amp;gt; &amp;quot;name=value;example_param_without_value&amp;quot; }'&lt;br /&gt;
Example to modify (replace) the URI parameters of SIP &amp;quot;To&amp;quot; header:&lt;br /&gt;
  call[ :called_parameters ][ :uri_param ] = &amp;quot;user=phone&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Exceptions ====&lt;br /&gt;
'''Note:''' Some parameters are reported as their own call attribute (oli, isub, cpc, transport) so they have the same representation for all protocols (SS7, IDSN, SIP). They won't appear present in the generic SIP header parameters structures above.&lt;br /&gt;
&lt;br /&gt;
==== Forwarding from inbound to outbound call ====&lt;br /&gt;
&lt;br /&gt;
==== Legacy behavior ====&lt;br /&gt;
(For base_routing version 1.32 or older)&lt;br /&gt;
By default, the parameters are not forwarded in a SIP to SIP call flow. The parameters '''will be forwarded''' when:&lt;br /&gt;
* accessed (read) from either the inbound or outbound call parameters&lt;br /&gt;
* written in either the inbound or outbound call parameters&lt;br /&gt;
&lt;br /&gt;
==== Current behavior ====&lt;br /&gt;
(For Toolpack 3.0.118+, with base_routing version 1.33+)&lt;br /&gt;
SIP headers host and parameters are forwarded by default.&lt;br /&gt;
&lt;br /&gt;
A route attribute &amp;quot;forward_sip_domain&amp;quot; (along with filter script &amp;quot;forward_sip_domain.rb&amp;quot;) will control, per route, if SIP headers host+parameters must be forwarded.&lt;br /&gt;
&lt;br /&gt;
==== Example usage ====&lt;br /&gt;
Example to print the user parameters:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  if call[:calling_parameters]&lt;br /&gt;
    puts &amp;quot;user parameters = #{call[:calling_parameters][:user_param].inspect}&amp;quot;&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example SIP &amp;quot;From&amp;quot; header:&lt;br /&gt;
  From:&amp;lt;sip:123456782;test1=val1;test2=val2@something.com;test3=val3;test4=val4&amp;gt;;test5=val5;test6=val6&lt;br /&gt;
And the resulting content in the routing script:&lt;br /&gt;
  call[:calling_parameters].inspect -&amp;gt; {:user_param=&amp;gt;&amp;quot;test1=val1;test2=val2&amp;quot;, :uri_param=&amp;gt;&amp;quot;test3=val3;test4=val4&amp;quot;, :header_param=&amp;gt;&amp;quot;test5=val5;test6=val6&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
Example to overwrite inbound leg calling parameters with new parameters for the outbound leg:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
call [:calling_parameters] = { &lt;br /&gt;
  :user_param =&amp;gt; &amp;quot;user_param7=7;user_param8=8&amp;quot;,&lt;br /&gt;
  :uri_param =&amp;gt; &amp;quot;uri_param9=value9&amp;quot;,&lt;br /&gt;
  :header_param =&amp;gt; &amp;quot;header_paramA=A&amp;quot; }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example to add user=phone and keep all other uri parameters.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  call[:calling_parameters] ||= {} # Create a hash if not already present&lt;br /&gt;
  call[:calling_parameters][:uri_param] ||= &amp;quot;&amp;quot; # Create a string if not already present&lt;br /&gt;
  call[:calling_parameters][:uri_param] += &amp;quot;;&amp;quot; if call[:calling_parameters][:uri_param] != &amp;quot;&amp;quot;&lt;br /&gt;
  call[:calling_parameters][:uri_param] += &amp;quot;user=phone&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MLPP Precedence values  ===&lt;br /&gt;
&lt;br /&gt;
mlpp_look_for_busy: &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;allowed&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;path_reserved&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;not_allowed&amp;lt;/tt&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
mlpp_precedence_level: &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;flash_override&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;flash&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;immediate&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;priority&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;routine&amp;lt;/tt&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
mlpp_network_identity:&lt;br /&gt;
&lt;br /&gt;
3 digits value from 0 to 999&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
mlpp_service_domain:&lt;br /&gt;
&lt;br /&gt;
24 bits value from 0 to 16777215&lt;br /&gt;
&lt;br /&gt;
=== ISUB subaddress information values  ===&lt;br /&gt;
&lt;br /&gt;
called_isub_type: &lt;br /&gt;
calling_isub_type: &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;nsap&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;nsap_ia5&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;nsap_bcd&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;user&amp;lt;/tt&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
called_isub: &lt;br /&gt;
calling_isub: &lt;br /&gt;
&lt;br /&gt;
Digits for the subaddress information.&lt;br /&gt;
&lt;br /&gt;
=== Network Identification Plan  ===&lt;br /&gt;
&lt;br /&gt;
network_identification_plan: &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;Unknown&amp;lt;/tt&amp;gt; (value 0)&lt;br /&gt;
*&amp;lt;tt&amp;gt;cic&amp;lt;/tt&amp;gt; (3 digits carrier identification code plus circuit code, value 1, SS7 or ISDN)&lt;br /&gt;
*&amp;lt;tt&amp;gt;user&amp;lt;/tt&amp;gt; (User, value 2, ISDN only)&lt;br /&gt;
*&amp;lt;tt&amp;gt;cic4&amp;lt;/tt&amp;gt; (4 digits carrier identification code plus circuit code, value 2, SS7 only) &lt;br /&gt;
*&amp;lt;tt&amp;gt;dnic&amp;lt;/tt&amp;gt; (public Data Network ID, value 3, SS7 only) &lt;br /&gt;
*&amp;lt;tt&amp;gt;mnic&amp;lt;/tt&amp;gt; (public land mobile network, value 6, SS7 only)&lt;br /&gt;
&lt;br /&gt;
=== Registered Users Information ===&lt;br /&gt;
Routing script can access information about registered users (when either the calling or called user is a known registered user).&lt;br /&gt;
When these fields are empty, it means that the calling/called (SIP from/to) does not correspond to a known registered user (routing script may still decide to route the call based on static routes).&lt;br /&gt;
&lt;br /&gt;
Information for the called user:&lt;br /&gt;
  params[:registered_user]&lt;br /&gt;
Information for the calling user:&lt;br /&gt;
  params[:calling_registered_user]&lt;br /&gt;
&lt;br /&gt;
These parameters are a hash of key/values that provide information about the contact.&lt;br /&gt;
  {&lt;br /&gt;
    :contact_list=&amp;gt;&lt;br /&gt;
    [&lt;br /&gt;
      {&lt;br /&gt;
        :contact=&amp;gt;&amp;quot;&amp;lt;sip:user_name_or_number@hostname:7070;transport=UDP&amp;gt;&amp;quot;,    -&amp;gt; Full contact&lt;br /&gt;
        :expires=&amp;gt;&amp;quot;60&amp;quot;,                   -&amp;gt; Contact expiry time (seconds)&lt;br /&gt;
        :host=&amp;gt;&amp;quot;hostname&amp;quot;,                -&amp;gt; host name from the contact header&lt;br /&gt;
        :name=&amp;gt;&amp;quot;user_name_or_number&amp;quot;,     -&amp;gt; user name from the contact header&lt;br /&gt;
        :nap_in=&amp;gt;&amp;quot;NAP_NAME&amp;quot;,              -&amp;gt; NAP that the contact has registered from&lt;br /&gt;
        :port=&amp;gt;&amp;quot;7070&amp;quot;,                    -&amp;gt; Port from the contact header&lt;br /&gt;
        :transport=&amp;gt;&amp;quot;UDP&amp;quot;                 -&amp;gt; Transport type from the contact header&lt;br /&gt;
        :q_value=&amp;gt;&amp;quot;0.00&amp;quot;,                 -&amp;gt; Q-value for the contact (for contact ordering)&lt;br /&gt;
        :src_host=&amp;gt;&amp;quot;10.0.0.10&amp;quot;,           -&amp;gt; Actual source IP address that the contact has registered from&lt;br /&gt;
        :src_port=&amp;gt;&amp;quot;7070&amp;quot;,                -&amp;gt; Actual source port that the contact has registered from&lt;br /&gt;
        :src_transport=&amp;gt;&amp;quot;UDP&amp;quot;,            -&amp;gt; Actual protocol that the contact has been registering with&lt;br /&gt;
       }&lt;br /&gt;
     ]&lt;br /&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_destination_leg_profile (called remapped_profile prior to Toolpack 2.9)&lt;br /&gt;
*remapped_source_leg_profile (called remapped_incoming_profile prior to Toolpack 2.9)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
  route[:remapped_nap]&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;
For example:&lt;br /&gt;
*priority&lt;br /&gt;
*weight&lt;br /&gt;
&lt;br /&gt;
== Routing calls toward registered users ==&lt;br /&gt;
Static routes normally chose an outbound NAP to forward the call to.&lt;br /&gt;
&lt;br /&gt;
But it's also possible to create routes which outbound NAP is dynamically chosen by matching a registered user (when using [[Sip_registration_forwarding|SIP registration forwarding]]).&lt;br /&gt;
&lt;br /&gt;
More information can be found [[Sip_registration_forwarding#SIP_Calls_routing|here]] about the way to control the [[Sip_registration_forwarding#SIP_Calls_routing|priority of &amp;quot;dynamic&amp;quot; vs &amp;quot;static&amp;quot; routes]].&lt;br /&gt;
&lt;br /&gt;
More information can be found [[#Registered_Users_Information|here]] about using routing scripts to access registered users information during call routing.&lt;br /&gt;
&lt;br /&gt;
== Playing prompts announcements or tones  ==&lt;br /&gt;
&lt;br /&gt;
New feature in release 2.6, all bridges may have these parameters. These can be used to play IVR prompts (audio files) in different states of the call flow.&lt;br /&gt;
&lt;br /&gt;
*'''announcement_tone''' (played before outgoing call is routed)&lt;br /&gt;
*'''ring_tone''' (played after when waiting for outgoing call to answer)&lt;br /&gt;
*'''busy_tone''' (played if outgoing call failed)&lt;br /&gt;
*'''disconnect_tone''' (played after the call has reached it's maximum duration)&lt;br /&gt;
&lt;br /&gt;
Example to play an announcement to incoming call (before routing outgoing call, regardless if a matching route is found or not):&lt;br /&gt;
  bridge[:announcement_tone ] = &amp;quot;my_announcement.wav&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Example to play a ring-tone while the outgoing call is ringing:&lt;br /&gt;
  bridge[:ring_tone] = &amp;quot;my_ring_tone.wav&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Example to play an audio file when outgoing call fails (no route, or outgoing call is refused):&lt;br /&gt;
  bridge[:busy_tone] = &amp;quot;my_busy_tone.wav&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Example to play an audio file when call has reached the maximum allowed duration:&lt;br /&gt;
  bridge[:disconnect_tone] = &amp;quot;your_account_balance_is_empty.wav&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Announcement file path format and options ===&lt;br /&gt;
&lt;br /&gt;
All file plabyacks (:announcement_tone,&amp;amp;nbsp;:busy_tone,&amp;amp;nbsp;:ring_tone,&amp;amp;nbsp;:disconnect_tone) inside bridge parameters use this format. &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;quot;file1.wav:repeat:start_off:end_off,file2.wav:repeat:start_off:end_off,file3.wav:repeat:start_off:end_off&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
Optional parameters:&lt;br /&gt;
* repeat: number of times to play the file (0 and 1 have the same result)&lt;br /&gt;
* start_off: Start offset in milliseconds&lt;br /&gt;
* end_off: End offset in milliseconds&lt;br /&gt;
&lt;br /&gt;
Http and other path formats are described here: [[Customer_application_framework:play_audio_files#Play_path_format|Path format]]&lt;br /&gt;
&lt;br /&gt;
==== Example 1 ====&lt;br /&gt;
The following example will play file1.wav once, and then play file2.wav in loop: &lt;br /&gt;
  &amp;quot;file1.wav,file2.wav:-1&amp;quot; &lt;br /&gt;
&lt;br /&gt;
==== Example 2 ====&lt;br /&gt;
The following example will play file1.wav from start offset of 1 second to end offset of 3 seconds, then twice file2.wav from second 5 to second 10.&lt;br /&gt;
  &amp;quot;file1.wav:0:1000:3000,file2.wav:2:5000:10000&amp;quot; &lt;br /&gt;
&lt;br /&gt;
==== Example 3 ====&lt;br /&gt;
The following example will play file1.wav once, ending at offset of 30 seconds.&lt;br /&gt;
  &amp;quot;file1.wav:0:0:30000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== announcement_tone  ===&lt;br /&gt;
&lt;br /&gt;
  params[:bridge][:announcement_tone] = &amp;quot;announcement.wav&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Audio file played on the incoming call before any outgoing call is placed. The outgoing call occurs when the file finished playing.&lt;br /&gt;
&lt;br /&gt;
==== announcement_tone options ====&lt;br /&gt;
===== announcement_tone_answer =====&lt;br /&gt;
  params[:bridge][:announcement_tone_answer] = &amp;quot;yes&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Forces an answer of the call before playing the announcement. Default if argument not provided is &amp;quot;no&amp;quot;, in which case call is only alerted with in-band media.&lt;br /&gt;
&lt;br /&gt;
===== announcement_code_detect =====&lt;br /&gt;
This option allows that the tone detection is enabled during the announcement play.&lt;br /&gt;
&lt;br /&gt;
Collected digits can be inserted into the CDR logs (radius attribute &amp;quot;Telcob-CollectedDigits&amp;quot;, or text CDR variable @{CollectedDigits}).&lt;br /&gt;
&lt;br /&gt;
Collected digits can also be sent back to routing script, which is called again with the same call attributes, except that the called number is replaced by the collected digits.&lt;br /&gt;
&lt;br /&gt;
Code detect has multiple options, as shown in the following code:&lt;br /&gt;
  code_detect = {&lt;br /&gt;
    :type                   =&amp;gt; :DTMF,   # :DTMF or :MFR1 tone detection.&lt;br /&gt;
                                        # Default is MFR1.&lt;br /&gt;
    :prefix                 =&amp;gt; &amp;quot;&amp;quot;,      # Prefix (digits) that is removed from collected digits.&lt;br /&gt;
                                        # Default is empty.&lt;br /&gt;
    :suffix                 =&amp;gt; &amp;quot;&amp;quot;,      # Suffix (digits) that is removed from collected digits&lt;br /&gt;
                                        # and causes routing script to be immediately called.&lt;br /&gt;
                                        # Default is empty.&lt;br /&gt;
    :suffix_removal         =&amp;gt; false,   # Controls the removal of the suffix from the collected digit string that's reported to routing script.&lt;br /&gt;
                                        # Default is false&lt;br /&gt;
    :timeout                =&amp;gt; 0,       # Inter-digit timeout (ms) after which collected digits are passed to the routing script.&lt;br /&gt;
                                        # Use 0 for &amp;quot;no timeout&amp;quot;.&lt;br /&gt;
                                        # Default is 1000ms&lt;br /&gt;
    :barge_in_interruption  =&amp;gt; true,    # When enabled, playing announcement is stopped as soon as first digit is collected.&lt;br /&gt;
                                        # Default is true.&lt;br /&gt;
    :proceed_on_play_done   =&amp;gt; false,   # When true:  Outgoing call is made after announcement finishes playing.&lt;br /&gt;
                                        #             Routing script is not called again.&lt;br /&gt;
                                        # When false: Outgoing call is never made.&lt;br /&gt;
                                        #             Digits are collected until timeout or suffix match,&lt;br /&gt;
                                        #             then routing script is called again.&lt;br /&gt;
                                        # Default is false.&lt;br /&gt;
    :cas_on_hook            =&amp;gt; false,   # Specific for CAS-R1 calls. Makes CAS bits switch to &amp;quot;on-hook&amp;quot; when announcement finished playing&lt;br /&gt;
                                        # (but the call is not &amp;quot;terminated&amp;quot; from Toolpack point of view)&lt;br /&gt;
                                        # Default is false.&lt;br /&gt;
    :cas_on_hook_delay      =&amp;gt; 0,       # Duration of cas bits &amp;quot;on-hook&amp;quot; state.&lt;br /&gt;
                                        # Only effective if cas_on_hook is set to true.&lt;br /&gt;
                                        # Value of 0 stands for &amp;quot;infinite delay&amp;quot;.&lt;br /&gt;
                                        # Default is 0.&lt;br /&gt;
    :repeat_delay           =&amp;gt; 0,       # Delay between repetition of the announcement. The announcement will repeat&lt;br /&gt;
                                        # itself every &amp;quot;repeat_delay&amp;quot; until a code is detected (suffix match or timetout).&lt;br /&gt;
                                        # Value of 0 stands for &amp;quot;infinite delay&amp;quot; (no repeating).&lt;br /&gt;
                                        # Default is 0.&lt;br /&gt;
  }&lt;br /&gt;
'''Example 1''': Collect DTMF digits, and call routing script again with collected digits upon timeout or suffix match.&lt;br /&gt;
  code_detect = { :type =&amp;gt; :DTMF, :suffix =&amp;gt; &amp;quot;#&amp;quot;, :timeout =&amp;gt; 5000 }&lt;br /&gt;
  params[:bridge][:announcement_code_detect] = code_detect&lt;br /&gt;
&lt;br /&gt;
'''Example 2''': Collect digits during the announcement (for CDR logs), then proceed (make outgoing call) after announcement finishes playing&lt;br /&gt;
  code_detect = { :type =&amp;gt; :DTMF, :timeout =&amp;gt; 0, :barge_in_interruption =&amp;gt; false, :proceed_on_play_done =&amp;gt; true }&lt;br /&gt;
  params[:bridge][:announcement_code_detect] = code_detect&lt;br /&gt;
&lt;br /&gt;
==== Controlling what happens after announcement ====&lt;br /&gt;
The routing script can control what happens with the call after the announcement finishes playing:&lt;br /&gt;
* An outgoing call is made&lt;br /&gt;
* Incoming call is hung-up&lt;br /&gt;
* Do nothing (wait for the incoming call to hang-up)&lt;br /&gt;
===== An outgoing call is made =====&lt;br /&gt;
This happens when the script has returned matching routes (and did not raise RoutingException)&lt;br /&gt;
&lt;br /&gt;
===== Incoming call is hung-up =====&lt;br /&gt;
This happens when the script returns no routes (in which case base_routing will raise RoutingException with cause :no_route).&lt;br /&gt;
&lt;br /&gt;
It also happens when the script explicitly raises RoutingException.&lt;br /&gt;
&lt;br /&gt;
The incoming call will be terminated with the specified cause.&lt;br /&gt;
For example&lt;br /&gt;
    raise RoutingException, :temporary_failure&lt;br /&gt;
(See &amp;quot;Reason values&amp;quot; section in this page for list of available causes)&lt;br /&gt;
&lt;br /&gt;
===== Do nothing (wait for the incoming call to hang-up) =====&lt;br /&gt;
If a filter raises RoutingException with code :ok, then the incoming call will not be terminated at the end of the announcement play.&lt;br /&gt;
Announcement digit collection will remain active if appropriate.&lt;br /&gt;
For example:&lt;br /&gt;
    raise RoutingException, :ok&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== ring_tone  ===&lt;br /&gt;
  params[:bridge][:ring_tone] = &amp;quot;ringing.wav&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Audio file played on the incoming call while waiting for the outgoing call to be answered.&lt;br /&gt;
&lt;br /&gt;
Ring tone playback can also be configured in the Web Portal, from the incoming call's profile (under &amp;quot;Tones and Call Progress Options&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Routing script has precedence over profile (a routing script that fills params[:bridge][:ring_tone] will override the profile's ring tone behavior).&lt;br /&gt;
&lt;br /&gt;
==== ring_tone options ====&lt;br /&gt;
===== ring_tone_state =====&lt;br /&gt;
  params[:bridge][:ring_tone_state] = :alerted&lt;br /&gt;
&lt;br /&gt;
Call state from which ring tone is being played. Available values are:&lt;br /&gt;
* '''immediately''':  Ring tone starts playing immediately on the incoming leg&lt;br /&gt;
* '''accepted''':     Ring tone starts playing as soon as outgoing call is accepted&lt;br /&gt;
* '''callprogress''': Ring tone starts playing as soon as &amp;quot;call progress&amp;quot; is received on the outgoing call&lt;br /&gt;
* '''alerted''' (default):      Ring tone starts playing only once outgoing call is alerted (but won't play if alert indicates early media from outgoing call)&lt;br /&gt;
&lt;br /&gt;
This option also apply when params[:bridge][:ring_tone] is not used, because it also apply to ring tone playback configured in the Web Portal, from the incoming call's profile.&lt;br /&gt;
&lt;br /&gt;
=== busy_tone  ===&lt;br /&gt;
  Toolpack 2.8 and above:&lt;br /&gt;
    params[:bridge][:busy_tone] = &amp;quot;no_route.wav&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  Note: Obsolete name (toolpack 2.7.153 and earlier, but still supported in recent releases):&lt;br /&gt;
    params[:bridge][:call_progress_tone] = &amp;quot;no_route.wav&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Audio file played on the incoming call when outgoing call fails (never answered).&lt;br /&gt;
&lt;br /&gt;
Note that announcement_tone, if used, is played before the outgoing call attempt is made, and thus before the busy_tone.&lt;br /&gt;
&lt;br /&gt;
Busy tone playback can also be configured in the Web Portal, from the incoming call's profile (under &amp;quot;Tones and Call Progress Options&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Routing script has precedence over profile (a routing script that fills params[:bridge][:busy_tone] will override the profile's busy tone behavior).&lt;br /&gt;
&lt;br /&gt;
Special value '''&amp;quot;none&amp;quot;''' can be used by routing script to force playing nothing (as empty string would default to profile's behavior)&lt;br /&gt;
&lt;br /&gt;
==== busy_tone options ====&lt;br /&gt;
===== busy_tone_answer =====&lt;br /&gt;
  params[:bridge][:busy_tone_answer] = &amp;quot;yes&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Forces an answer of the call before playing the busy tone. Default if argument not provided is &amp;quot;no&amp;quot;, in which case call is only alerted with in-band media.&lt;br /&gt;
&lt;br /&gt;
=== disconnect_tone  ===&lt;br /&gt;
  params[:bridge][:disconnect_tone] = &amp;quot;max_duration.wav&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Audio file played on the incoming call when call duration (:max_call_duration) is reached. Then the leg will be terminated with specified reason (:call_duration_reason).&lt;br /&gt;
&lt;br /&gt;
==== disconnect_tone options ====&lt;br /&gt;
===== max_call_duration  =====&lt;br /&gt;
  params[:bridge][:max_call_duration] = &amp;quot;60000&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Maximum call duration in millisecond. This timer is started when entering answer state.&lt;br /&gt;
&lt;br /&gt;
===== call_duration_reason  =====&lt;br /&gt;
  params[:bridge][:call_duration_reason] =&amp;amp;nbsp;:resource_unavailable &lt;br /&gt;
&lt;br /&gt;
Drop both legs with this reason when call duration (:max_call_duration) is reached.&lt;br /&gt;
&lt;br /&gt;
=== Managing audio prompts through Web Portal ===&lt;br /&gt;
Audio prompts can be uploaded or deleted from the TMedia unit through the Web Portal:&lt;br /&gt;
[[Toolpack:Configuring_Audio_Prompts_A|Managing audio prompts]]&lt;br /&gt;
&lt;br /&gt;
Prompts management must be done using the Web Portal of the primary server (in systems with redundant TMedia units or redundant host servers).&lt;br /&gt;
The file will automatically get replicated to the secondary server.&lt;br /&gt;
&lt;br /&gt;
=== Managing audio prompts manually ===&lt;br /&gt;
Any file on the TMedia host file system can be played. This means it's possible to manage prompts through ssh/scp.&lt;br /&gt;
&lt;br /&gt;
==== The default (replicated) prompts folder ====&lt;br /&gt;
By default, when playing a prompt, Toolpack will look in the default prompts folder:&lt;br /&gt;
 /lib/tb/toolpack/pkg/prompts&lt;br /&gt;
The root of this &amp;quot;prompts&amp;quot; directory is automatically replicated to secondary unit of redundant setups (1+1, N+1, redundant hosts). Sub-folders won't be replicated.&lt;br /&gt;
&lt;br /&gt;
Any prompt play request without explicit file path will map to this folder. For example:&lt;br /&gt;
  params[:bridge][:busy_tone] = &amp;quot;no_route.wav&amp;quot; &lt;br /&gt;
This will correspond to file /lib/tb/toolpack/pkg/prompts/no_route.wav&lt;br /&gt;
&lt;br /&gt;
==== Relative file paths ====&lt;br /&gt;
Any file path that begins with &amp;quot;file://&amp;quot; is considered relative to the tbstreamserver application's working directory:&lt;br /&gt;
 /lib/tb/toolpack/setup/12358/2.8/apps/tbstreamserver/&lt;br /&gt;
(Where &amp;quot;2.8&amp;quot; may be replaced by the current major version of your system)&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
  params[:bridge][:busy_tone] = &amp;quot;file://my_folder/no_route.wav&amp;quot; &lt;br /&gt;
This will correspond to file /lib/tb/toolpack/setup/12358/2.8/apps/tbstreamserver/my_folder/no_route.wav&lt;br /&gt;
&lt;br /&gt;
==== Absolute file paths ====&lt;br /&gt;
Absolute paths can also be provided.&lt;br /&gt;
For example:&lt;br /&gt;
  params[:bridge][:busy_tone] = &amp;quot;file:///root/my_folder/no_route.wav&amp;quot; &lt;br /&gt;
This will correspond to file /root/my_folder/no_route.wav&lt;br /&gt;
&lt;br /&gt;
== Recording call legs  ==&lt;br /&gt;
Introduced in release 2.6.44, it's now possible to use routing scripts to ask for recording incoming and/or outgoing call legs.&lt;br /&gt;
&lt;br /&gt;
See example filter script &amp;quot;call_recording&amp;quot; (created by default in Web Portal routing scripts starting with 2.6.44) for an example.&lt;br /&gt;
&lt;br /&gt;
=== Recording the incoming call leg  ===&lt;br /&gt;
To record the incoming call leg, the routing script (in a &amp;quot;after filter&amp;quot; for example) has to set the following parameter:&lt;br /&gt;
&lt;br /&gt;
  bridge[ :record_incoming ]  = &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Recording the outgoing call leg  ===&lt;br /&gt;
To record the outgoing call leg, the routing script (in a &amp;quot;after filter&amp;quot; for example) has to set the following parameter, per route (the decision to record or not, or the file name to record to, can be set per matching route):&lt;br /&gt;
&lt;br /&gt;
  # Need to clone the routes in order to have the right to modify them&lt;br /&gt;
  routes = clone_routes params[:routes]&lt;br /&gt;
  routes.each do |route|&lt;br /&gt;
    route[ :record_outgoing ]  = &amp;quot;&amp;quot;&lt;br /&gt;
  end&lt;br /&gt;
  # Store modified routes back to the parameters for this outgoing call&lt;br /&gt;
  params[:routes] = routes&lt;br /&gt;
&lt;br /&gt;
=== Record the outgoing call leg within incoming leg's recorded file (mixing)  ===&lt;br /&gt;
  [...]&lt;br /&gt;
    route[ :record_outgoing ]  = &amp;quot;@{MixWithIncoming}&amp;quot;&lt;br /&gt;
  [...]&lt;br /&gt;
&lt;br /&gt;
=== Choosing file path to record to  ===&lt;br /&gt;
The value assigned to &amp;quot;:record_incoming&amp;quot; or &amp;quot;:record_outgoing&amp;quot; is the path to record the file to.&lt;br /&gt;
&lt;br /&gt;
The paths can be absolute, or relative. When relative, they are relative to the &amp;quot;tbstreamserver&amp;quot; application working directory, for example:&lt;br /&gt;
  /lib/tb/toolpack/setup/12358/2.7/apps/tbstreamserver/&lt;br /&gt;
&lt;br /&gt;
* Empty file name will default to a name that contains various information about the call:&lt;br /&gt;
** ''LinkId'':     Id common between all legs of this call bridge&lt;br /&gt;
** ''LegId'':      Unique Id for this leg&lt;br /&gt;
** ''Nap'':        Current NAP name this call leg is from&lt;br /&gt;
** ''Direction'':  &amp;quot;IN&amp;quot; or &amp;quot;OUT&amp;quot; (depends if call leg is incoming or outgoing leg)&lt;br /&gt;
** ''Calling'':    The calling number of this call leg&lt;br /&gt;
** ''Called'':     The called number of this call leg&lt;br /&gt;
** ''Protocol'':   The signaling protocol of this call leg (SS7, ISDN, CAS, SIP)&lt;br /&gt;
** ''Media info'': Codec + IP/Port for SIP calls, Trunk/Timeslot for TDM calls&lt;br /&gt;
* To record outgoing call leg in the same audio file as incoming call leg (mixing), use the following:&lt;br /&gt;
** @{MixWithIncoming}: Record outgoing legs in same file as incoming legs&lt;br /&gt;
* Variables can be used to insert in the recording path information that's not already available from routing scripts:&lt;br /&gt;
** @{CURRENT_PKG}: Version of current package&lt;br /&gt;
*** Example: 2.6.45&lt;br /&gt;
** @{DATE format}: Prints the date, where 'format' is expressed as described for the 'strftime' function&lt;br /&gt;
*** Example: @{DATE %Y-%m-%d} =&amp;gt; 2013-01-28&lt;br /&gt;
** @{DefaultName}: Replaced by the default file name for recording, which contains:&lt;br /&gt;
*** LinkId:     Id common between all legs of this call bridge&lt;br /&gt;
*** LegId:      Unique Id for this leg&lt;br /&gt;
*** Nap:        Current NAP name this call leg is from&lt;br /&gt;
*** Direction:  &amp;quot;IN&amp;quot; or &amp;quot;OUT&amp;quot; (depends if call leg is incoming or outgoing leg)&lt;br /&gt;
*** Calling:    Calling number&lt;br /&gt;
*** Called:     Called number&lt;br /&gt;
*** Protocol:   Protocol type of this call (SS7, ISDN, CASR2, SIP)&lt;br /&gt;
*** Media info: Codec + IP/Port for SIP calls, Trunk/Timeslot for TDM calls&lt;br /&gt;
*** Example: &amp;quot;73EBA698-F3D67B4B-NAP_SS7-IN-5550000-5550001-SS7-TRUNK_BELL_11-24.wav&amp;quot;&lt;br /&gt;
*** Example: &amp;quot;73EBA698-73EBA698-NAP_SIP-OUT-5550000-5550001-SIP-G723-10.3.10.101-1050.wav&amp;quot;&lt;br /&gt;
** @{DefaultPath}:  Default recording folder and file name: &amp;quot;@{RECORD_PATH}/@{DATE %Y-%m-%d}/@{DefaultName}&amp;quot;&lt;br /&gt;
*** Example: &amp;quot;/lib/tb/toolpack/setup/12358/recorded_calls/73EBA698-F3D67B4B-NAP_SS7-IN-5550000-5550001-SS7-TRUNK_BELL_11-24.wav&amp;quot;&lt;br /&gt;
*** Example: &amp;quot;/lib/tb/toolpack/setup/12358/recorded_calls/73EBA698-73EBA698-NAP_SIP-OUT-5550000-5550001-SIP-G723-10.3.10.101-1050.wav&amp;quot;&lt;br /&gt;
** @{Direction}: Direction of current leg (IN our OUT)&lt;br /&gt;
*** Example: IN&lt;br /&gt;
** @{LegId}: Current LegId (Unique Id for this leg)&lt;br /&gt;
*** Example: F3D67B4B&lt;br /&gt;
** @{LinkId}: Current LinkId (Id common between all legs of this call bridge)&lt;br /&gt;
*** Example: 73EBA698&lt;br /&gt;
** @{PKG_HOME}: Path where packages are stored.&lt;br /&gt;
*** Note: It's not recomended to use that path on redundant systems, package file replication may cause confusion in recorded files.&lt;br /&gt;
*** Example: /lib/tb/toolpack/pkg&lt;br /&gt;
** @{PROMPT_PATH}: Default path where audio prompts are stored&lt;br /&gt;
*** Note: It's not recomended to use that path on redundant systems, package file replication may cause confusion in recorded files.&lt;br /&gt;
*** Example: /lib/tb/toolpack/pkg/prompts&lt;br /&gt;
** @{Protocol}: Protocol of current leg&lt;br /&gt;
*** Example: SS7&lt;br /&gt;
** @{RECORD_PATH}: Default recording folder: &amp;quot;@{TB_SETUP_HOME}/recorded_calls/&amp;quot;&lt;br /&gt;
** @{TBX_GW_PORT}: Current &amp;quot;System Id&amp;quot; (also called &amp;quot;Gateway Port&amp;quot;)&lt;br /&gt;
*** Example: 12358&lt;br /&gt;
** And all variables listed here: [[Customer_application_framework:play_audio_files#Helpful_variables_to_build_play_or_record_file_paths|Building play or record file path]]&lt;br /&gt;
&lt;br /&gt;
== Controlling UUI (user-to-user information) relay  ==&lt;br /&gt;
UUI (user-to-user information) can be present in different messages received by either call leg during a call. For example, information can be carried during the initial invite, other information can be carried when the call is alerted, answered, or terminated.&lt;br /&gt;
&lt;br /&gt;
Routing scripts can control if the UUI received from one leg through the call will be forwarded to the other call leg:&lt;br /&gt;
*uui_forward_enabled&lt;br /&gt;
&lt;br /&gt;
Routing scripts can also read and modify the UUI received with the incoming call leg, before it gets forwarded upon creation of the outgoing call leg:&lt;br /&gt;
*uui &lt;br /&gt;
&lt;br /&gt;
=== UUI (user-to-user indication) values  ===&lt;br /&gt;
&lt;br /&gt;
Byte array represented as ruby String. Use ''bridge=params[:bridge]'', then ''bridge[:uui]'' to access the data.&lt;br /&gt;
&lt;br /&gt;
To access the bytes in Ruby, use ruby String operator []. For example:  bridge[:uui][0] will return the binary value of the first UUI byte.&lt;br /&gt;
&lt;br /&gt;
Function each_byte can also be useful to iterate through all bytes of the UUI.&lt;br /&gt;
&lt;br /&gt;
=== uui_forward_enabled values  ===&lt;br /&gt;
&lt;br /&gt;
Controls forwarding or discarding of UUI to outgoing call leg. &lt;br /&gt;
&lt;br /&gt;
Values for this parameter are &amp;quot;0&amp;quot;, &amp;quot;1&amp;quot;, &amp;quot;false&amp;quot; or &amp;quot;true.&lt;br /&gt;
* 0/false: UUI is not forwarded between call legs&lt;br /&gt;
* 1/true: UUI is forwarded between call legs&lt;br /&gt;
&lt;br /&gt;
The value for this parameter at input of routing script depends on the &amp;quot;Forward UUI&amp;quot; parameter in the &amp;quot;Advanced&amp;quot; section of the Gateway configuration page of the Web Portal. The script may change this value to override the Gateway configuration.&lt;br /&gt;
&lt;br /&gt;
== Authorization ==&lt;br /&gt;
Starting with release 2.7, it is possible to issue RADIUS authorization requests from routing scripts. To do so, the params[:authorization] object must be filled with the required RADIUS attributes and [[#Refuse|an exception must be raised]] with reason :authorization_required.&lt;br /&gt;
&lt;br /&gt;
When the authorization is completed, the routing script is called again with the result. The params[:authorization] object will be filled with the RADIUS attributes from the response. The params[:authorization][:result] field will also contain a string indicating the result of the authorization:&lt;br /&gt;
&lt;br /&gt;
* ''accept'': The authorization was successful.&lt;br /&gt;
* ''reject'': The authorization was refused.&lt;br /&gt;
* ''challenge'': The authorization was challenged.&lt;br /&gt;
* ''timeout'': The authorization was not answered.&lt;br /&gt;
&lt;br /&gt;
== ENUM Query ==&lt;br /&gt;
Starting with release 3.1, it is possible to issue ENUM Query requests to DNS servers from routing scripts. To do so, the params[:enum_query] object must be filled with the required ENUM Query attributes params[:enum_query][:fqdn] and [[#Refuse|an exception must be raised]] with reason :enum_query_required.&lt;br /&gt;
&lt;br /&gt;
When ENUM Query completes, the routing script is called again with the result. The params[:enum_query] object will be filled with the ENUM Query attributes from the response. The params[:enum_query][:result] field will also contain a string indicating the result of the ENUM Query:&lt;br /&gt;
&lt;br /&gt;
* ''ok'': The ENUM Query was successful.&lt;br /&gt;
* ''timeout'': The ENUM Query was not answered.&lt;br /&gt;
&lt;br /&gt;
The params[:enum_query][:responses_list] field will contain a list of hash responses for each NAPTR records. &lt;br /&gt;
&lt;br /&gt;
NAPTR records contain:&lt;br /&gt;
* '':uri''&lt;br /&gt;
* '':order''&lt;br /&gt;
* '':preference''&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  params[:enum_query][:responses_list]&lt;br /&gt;
    [{:order=&amp;gt;&amp;quot;200&amp;quot;, :preference=&amp;gt;&amp;quot;10&amp;quot;, :uri=&amp;gt;&amp;quot;!^03111.*$!sip:123456782@example-2.com!&amp;quot;}, &lt;br /&gt;
     {:order=&amp;gt;&amp;quot;100&amp;quot;, :preference=&amp;gt;&amp;quot;1&amp;quot;, :uri=&amp;gt;&amp;quot;!^03222.*$!sip:123456782@example-3.com!&amp;quot;}, &lt;br /&gt;
     {:order=&amp;gt;&amp;quot;200&amp;quot;, :preference=&amp;gt;&amp;quot;1&amp;quot;, :uri=&amp;gt;&amp;quot;!^03111.*$!sip:123456782@example-1.com!&amp;quot;}]&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Using enum_called_remap.rb before filter script allows handling of ENUM query requests/responses. The match and replace regular expression from ENUM query responses are applied to params[:call][:called] to get &amp;quot;new called&amp;quot;. This script allows update of the call parameters according to &amp;quot;new called&amp;quot; value. Refer to enum_called_remap.rb before filter script to get instructions on how to integrate this script into the main routing script (i.e. simple_routing_sbc.rb):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  ...&lt;br /&gt;
  require 'enum_called_remap' unless defined?(EnumCalledRemap)&lt;br /&gt;
  ...&lt;br /&gt;
  include EnumCalledRemap&lt;br /&gt;
  ...&lt;br /&gt;
  before_filter :method =&amp;gt; :enum_called_remap&lt;br /&gt;
  ...&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Resolve ENUM Query down to type A records ===&lt;br /&gt;
&lt;br /&gt;
The ENUM query could also resolve uri from responses and get matching outgoing NAP, NAP proxy IP and port through a sequence of DNS queries (i.e. NAPTR, SRV down to type A records). This behavior could be requested using &amp;quot;dns_query&amp;quot; parameter:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  params[:enum_query][:dns_query] = true&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When ENUM and DNS Queries complete, the routing script is called again with the results. The params[:enum_query] and params[:dns_query] objects will be filled with the ENUM Query and the DNS Query attributes from the responses. The DNS query responses are available through params[:dns_query][:responses_list] call parameters:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  params[:dns_query][:responses_list]&lt;br /&gt;
    [{:nap=&amp;gt;&amp;quot;NAP_UDP&amp;quot;, :nap_proxy_ip=&amp;gt;&amp;quot;10.3.14.191&amp;quot;, :nap_proxy_port=&amp;gt;&amp;quot;8080&amp;quot;, :transport=&amp;gt;&amp;quot;UDP&amp;quot;, :order=&amp;gt;&amp;quot;100&amp;quot;,&lt;br /&gt;
      :preference=&amp;gt;&amp;quot;1&amp;quot;, :priority=&amp;gt;&amp;quot;0&amp;quot;, :weight=&amp;gt;&amp;quot;5&amp;quot;},&lt;br /&gt;
     {:nap=&amp;gt;&amp;quot;NAP_TCP&amp;quot;, :nap_proxy_ip=&amp;gt;&amp;quot;10.3.14.192&amp;quot;, :nap_proxy_port=&amp;gt;&amp;quot;8081&amp;quot;, :transport=&amp;gt;&amp;quot;TCP&amp;quot;, :order=&amp;gt;&amp;quot;100&amp;quot;,&lt;br /&gt;
      :preference=&amp;gt;&amp;quot;2&amp;quot;, :priority=&amp;gt;&amp;quot;1&amp;quot;, :weight=&amp;gt;&amp;quot;10&amp;quot;}]&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Add dynamic routes ===&lt;br /&gt;
&lt;br /&gt;
The ENUM query could also add dynamic routes base on DNS query responses. This could be requested using the &amp;quot;add_dynamic_routes&amp;quot; call parameter:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  params[:enum_query][:dns_query] = true&lt;br /&gt;
  params[:enum_query][:add_dynamic_routes] = true&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that it is mandatary to send DNS query to add dynamic routes.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;base_routing.rb&amp;quot; script version should be greater then 1.37 in order to allow dynamic routes creation base on DNS query responses.&lt;br /&gt;
&lt;br /&gt;
When requesting to add_dynamic_routes, the dns_query responses are used to create routes. Make sure that your configuration includes a route with remapped_nap = &amp;quot;Registered or DNS users&amp;quot;. A route will be created for each DNS query responses. The routes &amp;quot;remapped_nap&amp;quot; takes NAP value from DNS query responses.&lt;br /&gt;
&lt;br /&gt;
It is required to modify main routing script (i.e. simple_routing_sbc.rb) to forward IP/port values from params[:routes] to params[:call] like we are doing for NAP. See following example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  ...&lt;br /&gt;
  # This will select the outgoing NAP for this call according to the &amp;quot;remapped_nap&amp;quot; route parameter&lt;br /&gt;
  route_remap :call_field_name =&amp;gt; :nap, :route_field_name =&amp;gt; :remapped_nap&lt;br /&gt;
  &lt;br /&gt;
  # This will select the outgoing NAP proxy ip address for this call according to the &amp;quot;remapped_nap_proxy_ip&amp;quot; route parameter&lt;br /&gt;
  route_remap :call_field_name =&amp;gt; :nap_proxy_ip, :route_field_name =&amp;gt; :remapped_nap_proxy_ip&lt;br /&gt;
  &lt;br /&gt;
  # This will select the outgoing NAP proxy port for this call according to the &amp;quot;remapped_nap_proxy_port&amp;quot; route parameter&lt;br /&gt;
  route_remap :call_field_name =&amp;gt; :nap_proxy_port, :route_field_name =&amp;gt; :remapped_nap_proxy_port&lt;br /&gt;
  ...&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DNS Query ==&lt;br /&gt;
Similarly to ENUM query, starting with release 3.1, it is possible to issue DNS Query requests to DNS servers from routing scripts. This could be used to skip the ENUM Query part when the called uri is already known but still need to get the matching outgoing NAP, NAP proxy IP and port. To do so, the params[:dns_query] object must be filled with the required DNS Query attributes params[:dns_query][:fqdn] and [[#Refuse|an exception must be raised]] with reason :dns_query_required.&lt;br /&gt;
&lt;br /&gt;
When DNS Query completes, the routing script is called again with the result. The params[:dns_query] object will be filled with the DNS Query attributes from the responses. The DNS query responses are available through params[:dns_query][:responses_list] call parameters:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  params[:dns_query][:responses_list]&lt;br /&gt;
    [{:nap=&amp;gt;&amp;quot;NAP_UDP&amp;quot;, :nap_proxy_ip=&amp;gt;&amp;quot;10.3.14.191&amp;quot;, :nap_proxy_port=&amp;gt;&amp;quot;8080&amp;quot;, :transport=&amp;gt;&amp;quot;UDP&amp;quot;, :order=&amp;gt;&amp;quot;100&amp;quot;,&lt;br /&gt;
      :preference=&amp;gt;&amp;quot;1&amp;quot;, :priority=&amp;gt;&amp;quot;0&amp;quot;, :weight=&amp;gt;&amp;quot;5&amp;quot;},&lt;br /&gt;
     {:nap=&amp;gt;&amp;quot;NAP_TCP&amp;quot;, :nap_proxy_ip=&amp;gt;&amp;quot;10.3.14.192&amp;quot;, :nap_proxy_port=&amp;gt;&amp;quot;8081&amp;quot;, :transport=&amp;gt;&amp;quot;TCP&amp;quot;, :order=&amp;gt;&amp;quot;100&amp;quot;,&lt;br /&gt;
      :preference=&amp;gt;&amp;quot;2&amp;quot;, :priority=&amp;gt;&amp;quot;1&amp;quot;, :weight=&amp;gt;&amp;quot;10&amp;quot;}]&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Add dynamic routes ===&lt;br /&gt;
&lt;br /&gt;
Similarly to ENUM Query, the DNS query could also create dynamic routes base on DNS query responses. This could be requested using the &amp;quot;add_dynamic_routes&amp;quot; call parameter:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  params[:dns_query][:add_dynamic_routes] = true&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;base_routing.rb&amp;quot; script version should be greater then 1.37 in order to allow dynamic routes creation base on DNS query responses.&lt;br /&gt;
&lt;br /&gt;
When requesting to add_dynamic_routes, the dns_query responses are used to create routes. Make sure that your configuration include a route with remapped_nap = &amp;quot;Registered or DNS users&amp;quot;. A route will be created for each DNS query responses. The routes &amp;quot;remapped_nap&amp;quot; takes NAP value from DNS query responses.&lt;br /&gt;
&lt;br /&gt;
It is required to modify main routing script (i.e. simple_routing_sbc.rb) to forward IP/port values from params[:routes] to params[:call] like we are doing for NAP. See following example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  ...&lt;br /&gt;
  # This will select the outgoing NAP for this call according to the &amp;quot;remapped_nap&amp;quot; route parameter&lt;br /&gt;
  route_remap :call_field_name =&amp;gt; :nap, :route_field_name =&amp;gt; :remapped_nap&lt;br /&gt;
  &lt;br /&gt;
  # This will select the outgoing NAP proxy ip address for this call according to the &amp;quot;remapped_nap_proxy_ip&amp;quot; route parameter&lt;br /&gt;
  route_remap :call_field_name =&amp;gt; :nap_proxy_ip, :route_field_name =&amp;gt; :remapped_nap_proxy_ip&lt;br /&gt;
  &lt;br /&gt;
  # This will select the outgoing NAP proxy port for this call according to the &amp;quot;remapped_nap_proxy_port&amp;quot; route parameter&lt;br /&gt;
  route_remap :call_field_name =&amp;gt; :nap_proxy_port, :route_field_name =&amp;gt; :remapped_nap_proxy_port&lt;br /&gt;
  ...&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Call diversion options ==&lt;br /&gt;
It's possible to control the call flow when a call diversion information is received in the alerting state.&lt;br /&gt;
&lt;br /&gt;
Two fields are available: bridge[ :diversion ] and bridge[ :diversion_reason ]&lt;br /&gt;
&lt;br /&gt;
The internal release cause TOOLPACK_DIVERT_NOT_ALLOWED is used by gateway application to terminate both legs.&lt;br /&gt;
&lt;br /&gt;
  bridge[ :diversion ] = :allowed&lt;br /&gt;
The alert message will not be analyzed and the call will be progressed. Default behavior.&lt;br /&gt;
  bridge[ :diversion ] = :not_allowed&lt;br /&gt;
If the alert message indicates that the call is diverted, the call will be released no matter the In-band information to allow&lt;br /&gt;
early media.&lt;br /&gt;
  bridge[ :diversion ] = :not_allowed_w_early_media&lt;br /&gt;
The call will be released If the alert message indicates that the call is diverted with in-band information to allow early media.&lt;br /&gt;
  bridge[ :diversion_reason ] = &amp;quot;*&amp;quot;&lt;br /&gt;
If the diversion is not allowed, the gateway will drop the call for any redirecting reason. &lt;br /&gt;
  bridge[ :diversion_reason ] = &amp;quot;0,1,2&amp;quot;&lt;br /&gt;
or&lt;br /&gt;
  bridge[ :diversion_reason ] = &amp;quot;unknown,busy,no_reply&amp;quot;&lt;br /&gt;
If the diversion is not allowed, the redirecting reason will be analyzed and the call will only be dropped for the configured cases.&lt;br /&gt;
&lt;br /&gt;
See section [[Routing_script_tutorial:Mini_Development_Guide#Redirecting_number,_Original_Called_Number_and_Diversion_Reason|Redirecting number reason values]].&lt;br /&gt;
&lt;br /&gt;
== Call transfer requests ==&lt;br /&gt;
Toolpack allows that [[Call transfer]] requests are relayed from one leg to the other, or to process them locally (making another outgoing call to replace the call that requested the call transfer).&lt;br /&gt;
&lt;br /&gt;
If the chosen [[Call transfer]] mode is to process requests locally, upon reception of a call transfer request (SIP REFER or ISDN Facility), routing script will be called once again, to select the routes for the new outgoing call (call transfer target).&lt;br /&gt;
&lt;br /&gt;
=== How to route call transfer request ===&lt;br /&gt;
Routing of a call transfer request is done exactly like routing of a normal incoming call.&lt;br /&gt;
The routing script generally does not need any modification to support that.&lt;br /&gt;
&lt;br /&gt;
In some cases, the routing script may want to use information related to the transfer request to perform routing, or to insert information in the outgoing call leg.&lt;br /&gt;
Additional information is provided to the routing script, allowing routing decisions using information from the call transfer request (SIP REFER or ISDN Facility).&lt;br /&gt;
See below...&lt;br /&gt;
&lt;br /&gt;
=== params[ :call ] content during transfer request ===&lt;br /&gt;
When processing a call transfer request, the params[ :call ] hash contains the information from the inbound call (same as was passed to the routing script upon arrival of the inbound call)&lt;br /&gt;
 call = params[ :call ]          -&amp;gt; Information from original inbound call, with exception of call[ :called ]&lt;br /&gt;
&lt;br /&gt;
One exception (convenient because it allows a unmodified routing script to process call transfer request the same way as any other routing request):&lt;br /&gt;
 call[ :called ]                 -&amp;gt; Replaced by the called number from the call transfer request (also called &amp;quot;redirection number&amp;quot;)&lt;br /&gt;
Complementary information:&lt;br /&gt;
 call[ :original_called_number ] -&amp;gt; Contains the called number that was initially received from the incoming call, prior to call transfer request&lt;br /&gt;
 call[ :redirecting_number ]     -&amp;gt; Number of the call from which the call transfer request was received (generally equals to original_called_number)&lt;br /&gt;
&lt;br /&gt;
These fields will also be included in the outgoing call made after routing:&lt;br /&gt;
* original called number and redirecting number are existing fields on SS7 and ISDN calls&lt;br /&gt;
* SIP &amp;quot;diversion&amp;quot; header is used for SIP calls&lt;br /&gt;
&lt;br /&gt;
=== params[ :transfer ] content ===&lt;br /&gt;
(this if valid only for release 2.7.102 and above)&amp;lt;br&amp;gt;&lt;br /&gt;
When processing a call transfer request, information from the call transfer request message (SIP REFER, ISDN Facility) is provided in params[ :transfer ]:&lt;br /&gt;
  transfer = params[ :transfer ]&lt;br /&gt;
The following field is always present:&lt;br /&gt;
  transfer[ :original_nap ]      -&amp;gt; Contains the NAP of the first call from which a call transfer request was received&lt;br /&gt;
  transfer[ :redirecting_nap ]   -&amp;gt; Contains the NAP of the call from which the current call transfer request was received&lt;br /&gt;
                                    (same as :original_nap for the first call transfer, different for subsequent transfers)&lt;br /&gt;
Examples of other fields that may be present, when appropriate:&lt;br /&gt;
  transfer[ :uui ]               -&amp;gt; The UUI (user-to-user information) found in the call transfer request&lt;br /&gt;
  transfer[ :sip_header ]        -&amp;gt; Contains custom SIP headers from the call transfer request&lt;br /&gt;
  transfer[ :request_uri ]       -&amp;gt; Contains the SIP Request URI&lt;br /&gt;
&lt;br /&gt;
These fields are 'read-only'. They will not be included in the outgoing call, as they represent the contents of the call transfer request, and not the outgoing call to be made.&lt;br /&gt;
&lt;br /&gt;
To insert/modify attributes of the outgoing call, the parameters from params[ :call ] must be edited instead.&lt;br /&gt;
&lt;br /&gt;
== Redirection ==&lt;br /&gt;
In release 2.8 and above, redirection contacts are obtained from the routing engine in the following format:&lt;br /&gt;
&lt;br /&gt;
  contacts = params[ :contacts ]&lt;br /&gt;
  contacts = {&lt;br /&gt;
      :index=&amp;gt;&amp;quot;3&amp;quot;,&lt;br /&gt;
      :list=&amp;gt;[&lt;br /&gt;
         {:called_number=&amp;gt;&amp;quot;6660&amp;quot;, :priority=&amp;gt;&amp;quot;1000&amp;quot;, :is_number_ported=&amp;gt;&amp;quot;0&amp;quot;, :sip_uri=&amp;gt;&amp;quot;&amp;quot;, :raw_data=&amp;gt;&amp;quot;&amp;quot;, :expiration=&amp;gt;&amp;quot;3600&amp;quot;},&lt;br /&gt;
         {:called_number=&amp;gt;&amp;quot;6661&amp;quot;, :priority=&amp;gt;&amp;quot;1000&amp;quot;, :is_number_ported=&amp;gt;&amp;quot;0&amp;quot;, :sip_uri=&amp;gt;&amp;quot;sip:6661@192.168.215.127&amp;quot;, :raw_data=&amp;gt;&amp;quot;&amp;lt;sip:6661@192.168.215.127&amp;gt;&amp;quot;, :expiration=&amp;gt;&amp;quot;3600&amp;quot;}&lt;br /&gt;
         {:called_number=&amp;gt;&amp;quot;6662&amp;quot;, :priority=&amp;gt;&amp;quot;1000&amp;quot;, :is_number_ported=&amp;gt;&amp;quot;0&amp;quot;, :sip_uri=&amp;gt;&amp;quot;sip:6662@192.168.215.128&amp;quot;, :raw_data=&amp;gt;&amp;quot;&amp;lt;sip:6662@192.168.215.128&amp;gt;&amp;quot;, :expiration=&amp;gt;&amp;quot;3600&amp;quot;},&lt;br /&gt;
         {:called_number=&amp;gt;&amp;quot;6663&amp;quot;, :priority=&amp;gt;&amp;quot;1000&amp;quot;, :is_number_ported=&amp;gt;&amp;quot;0&amp;quot;, :sip_uri=&amp;gt;&amp;quot;sip:6663@192.168.215.129&amp;quot;, :raw_data=&amp;gt;&amp;quot;&amp;lt;sip:6663@192.168.215.129&amp;gt;&amp;quot;, :expiration=&amp;gt;&amp;quot;3600&amp;quot;},&lt;br /&gt;
         {:called_number=&amp;gt;&amp;quot;6664&amp;quot;, :priority=&amp;gt;&amp;quot;1000&amp;quot;, :is_number_ported=&amp;gt;&amp;quot;0&amp;quot;, :sip_uri=&amp;gt;&amp;quot;sip:6664@192.168.215.150&amp;quot;, :raw_data=&amp;gt;&amp;quot;&amp;lt;sip:6664@192.168.215.150&amp;gt;&amp;quot;, :expiration=&amp;gt;&amp;quot;3600&amp;quot;}&lt;br /&gt;
      ],&lt;br /&gt;
      :source_indexes=&amp;gt;&amp;quot;nil,0,0,0,2&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;params[:contacts][:list]&amp;lt;/code&amp;gt; contains the contact log. Each contact within the list has the following fields:&lt;br /&gt;
** &amp;lt;code&amp;gt;:called_number&amp;lt;/code&amp;gt; - the called number&lt;br /&gt;
** &amp;lt;code&amp;gt;:is_number_ported&amp;lt;/code&amp;gt; - if the called number has been ported (for SIP: if the npdi parameter is present)&lt;br /&gt;
** &amp;lt;code&amp;gt;:ported_number&amp;lt;/code&amp;gt; - the called number that was ported (for SIP: the rn parameter value, if available)&lt;br /&gt;
** &amp;lt;code&amp;gt;:sip_uri&amp;lt;/code&amp;gt; - the SIP URI of the contact, without the contact-params section (without the expires and q contact parameters)&lt;br /&gt;
** &amp;lt;code&amp;gt;:raw_data&amp;lt;/code&amp;gt; - the raw data representing the contact in the signaling protocol. For SIP, this is the full SIP URI (including the expires and q contact parameters).&lt;br /&gt;
** &amp;lt;code&amp;gt;:priority&amp;lt;/code&amp;gt; - the priority of the contact [0-1000]&lt;br /&gt;
** &amp;lt;code&amp;gt;:expiration&amp;lt;/code&amp;gt; - the expiration time in seconds of the contact&lt;br /&gt;
* &amp;lt;code&amp;gt;params[:contacts][:index]&amp;lt;/code&amp;gt; contains the index of the contact that is currently being routed.&lt;br /&gt;
* &amp;lt;code&amp;gt;params[:contacts][:source_indexes]&amp;lt;/code&amp;gt; contains a comma-separated list of indexes from &amp;lt;code&amp;gt;params[:contacts][:list]&amp;lt;/code&amp;gt;. Each index represents the contact from which the contact in the list was obtained from.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To get more information, see:&lt;br /&gt;
*[[Routing_script_tutorial:SIP_Redirection_Contacts|SIP Redirection Contacts Parameters in a Call Flow]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Connected number ==&lt;br /&gt;
Insert a connected number in the answer message of the call flow.&lt;br /&gt;
&lt;br /&gt;
Routing script example:&lt;br /&gt;
    bridge = params[ :bridge ]&lt;br /&gt;
    bridge [ :connected_number ] = &amp;quot;3335577&amp;quot;&lt;br /&gt;
    bridge [ :connected_number_noa ] = :national_number&lt;br /&gt;
    bridge [ :connected_number_npi ] = :private&lt;br /&gt;
    bridge [ :connected_number_presentation ] = :allowed&lt;br /&gt;
    bridge [ :connected_number_screening ] = :pass&lt;br /&gt;
&lt;br /&gt;
== Terminating calls ==&lt;br /&gt;
In release 2.8, it is now possible to terminate a call through the routing scripts. The [[#Reason values|reason code]] must be specified in &amp;lt;code&amp;gt;params[:bridge][:reason]&amp;lt;/code&amp;gt;. The &amp;lt;code&amp;gt;:terminate&amp;lt;/code&amp;gt; hash must be created and copied into &amp;lt;code&amp;gt;params&amp;lt;/code&amp;gt;:&lt;br /&gt;
  terminate = {}&lt;br /&gt;
  params[:terminate] = terminate&lt;br /&gt;
The following fields can then be set in &amp;lt;code&amp;gt;:terminate&amp;lt;/code&amp;gt;:&lt;br /&gt;
* &amp;lt;code&amp;gt;:sip_header&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;:contacts&amp;lt;/code&amp;gt; # list of contacts as described in the [[#Redirection|redirection]] section&lt;br /&gt;
* &amp;lt;code&amp;gt;:isup_raw&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;:isup_raw_variant&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;:redirecting_number&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;:redirecting_number_noa&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;:redirecting_number_npi&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;:redirecting_number_presentation&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;:redirecting_number_reason&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;:redirecting_number_counter&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;:redirecting_number_indicator&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;:original_called_number&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;:original_called_number_noa&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;:original_called_number_npi&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;:original_called_number_presentation&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;:original_called_number_reason&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;:original_called_number_counter&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reason values  ==&lt;br /&gt;
&lt;br /&gt;
Check here for Termination Reason Cause codes:&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[Termination_cause_codes|Termination Reason Cause codes]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example to refuse an incoming call leg.&lt;br /&gt;
  raise RoutingException, :no_route&lt;br /&gt;
&lt;br /&gt;
Reason cause strings available inside routing scripts:&lt;br /&gt;
&lt;br /&gt;
List of Q.850 reason causes:&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;
  :qor_ported_number&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_connection_operational&lt;br /&gt;
  :temporary_failure&lt;br /&gt;
  :switching_equipment_congestion&lt;br /&gt;
  :access_information_discarded&lt;br /&gt;
  :requested_circuit_not_available&lt;br /&gt;
  :precedence_call_blocked&lt;br /&gt;
  :resource_unavailable&lt;br /&gt;
  :quality_of_service_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;
List of toolpack reason causes:&lt;br /&gt;
&lt;br /&gt;
  :toolpack_normal                       or :normal&lt;br /&gt;
  :toolpack_resource_error               or :resource_error&lt;br /&gt;
  :toolpack_timeout                      or :timeout&lt;br /&gt;
  :toolpack_no_route                     or :no_route&lt;br /&gt;
  :toolpack_call_collision               or :call_collision&lt;br /&gt;
  :toolpack_sync_drop                    or :sync_drop&lt;br /&gt;
  :toolpack_signaling_error              or :signaling_error&lt;br /&gt;
  :toolpack_locally_rejected             or :locally_rejected&lt;br /&gt;
  :toolpack_interface_not_available      or :interface_not_available&lt;br /&gt;
  :toolpack_reset_in_progress            or :reset_in_progress&lt;br /&gt;
  :toolpack_adapter_reject               or :adapter_reject&lt;br /&gt;
  :toolpack_missing_or_invalid_ie        or :missing_or_invalid_ie&lt;br /&gt;
  :toolpack_incoming_only                or :incoming_only&lt;br /&gt;
  :toolpack_system_configuration_changed or :system_configuration_changed&lt;br /&gt;
  :toolpack_resource_no_more_available   or :resource_no_more_available&lt;br /&gt;
  :toolpack_incompatible_media           or :incompatible_media&lt;br /&gt;
  :toolpack_resource_allocation_failed   or :resource_allocation_failed&lt;br /&gt;
  :toolpack_data_path_not_available      or :data_path_not_available&lt;br /&gt;
  :toolpack_local_congestion             or :local_congestion&lt;br /&gt;
  :toolpack_authorization_required       or :authorization_required&lt;br /&gt;
  :toolpack_call_divert_is_not_allowed   or :call_divert_is_not_allowed&lt;br /&gt;
&lt;br /&gt;
List of SIP reason causes:&amp;lt;br/&amp;gt;&lt;br /&gt;
Reason causes starting with a digit must use the following syntax (can't use : as prefix).&lt;br /&gt;
&lt;br /&gt;
  '300_multiple_choices'&lt;br /&gt;
  '301_moved_permanently'&lt;br /&gt;
  '302_moved_temporarily'&lt;br /&gt;
  '305_use_proxy'&lt;br /&gt;
  '380_alternative_service'&lt;br /&gt;
  '400_bad_request'&lt;br /&gt;
  '401_unauthorized'&lt;br /&gt;
  '402_payment_required'&lt;br /&gt;
  '403_forbidden'&lt;br /&gt;
  '404_not_found'&lt;br /&gt;
  '405_method_not_allowed'&lt;br /&gt;
  '406_not_acceptable'&lt;br /&gt;
  '407_proxy_authentication_required'&lt;br /&gt;
  '408_request_timeout'&lt;br /&gt;
  '409_conflict'&lt;br /&gt;
  '410_gone'&lt;br /&gt;
  '413_request_entity_too_large'&lt;br /&gt;
  '414_request_URI_too_long'&lt;br /&gt;
  '415_unsupported_media'&lt;br /&gt;
  '416_unsupported_URI_scheme'&lt;br /&gt;
  '420_bad_extension'&lt;br /&gt;
  '421_extension_required'&lt;br /&gt;
  '422_session_timer_too_small'&lt;br /&gt;
  '423_interval_too_brief'&lt;br /&gt;
  '429_referrer_identity_error'&lt;br /&gt;
  '480_temporary_unavailable'&lt;br /&gt;
  '481_call_or_transaction_does_not_exist'&lt;br /&gt;
  '482_loop_detected'&lt;br /&gt;
  '483_too_many_hops'&lt;br /&gt;
  '484_address_incomplete'&lt;br /&gt;
  '485_ambiguous'&lt;br /&gt;
  '486_busy_here'&lt;br /&gt;
  '487_request_terminated'&lt;br /&gt;
  '488_not_acceptable_here'&lt;br /&gt;
  '489_bad_event'&lt;br /&gt;
  '491_retry_after'&lt;br /&gt;
  '500_server_internal_error'&lt;br /&gt;
  '501_not_implemented'&lt;br /&gt;
  '502_bad_gateway'&lt;br /&gt;
  '503_service_unavailable'&lt;br /&gt;
  '504_server_timeout'&lt;br /&gt;
  '505_version_unsupported'&lt;br /&gt;
  '513_message_too_large'&lt;br /&gt;
  '600_busy_everywhere'&lt;br /&gt;
  '603_decline'&lt;br /&gt;
  '604_not_exist_anywhere'&lt;br /&gt;
  '606_not_acceptable'&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;
  Routing script call attribute name    Description&lt;br /&gt;
  --------------------------------------------------------------------------------------------&lt;br /&gt;
  &amp;quot;name&amp;quot;                                NAP name.&lt;br /&gt;
  &amp;quot;signaling_type&amp;quot;                      Signaling type (SS7, ISDN, CASR2, SIP)&lt;br /&gt;
  &amp;quot;profile&amp;quot;                             Profile name.&lt;br /&gt;
  &amp;quot;sip_destination_ip&amp;quot;                  Destination IP address.&lt;br /&gt;
  &amp;quot;sip_destination_port&amp;quot;                Destination IP port.&lt;br /&gt;
  &amp;quot;sip_transport_type&amp;quot;                  SIP transport type (:udp, :tcp, or :tls) (Toolpack 3.1 and more)&lt;br /&gt;
  &amp;quot;inst_incoming_call_cnt&amp;quot;              Instantaneous Count of incoming calls.&lt;br /&gt;
  &amp;quot;inst_outgoing_call_cnt&amp;quot;              Instantaneous Count of outgoing calls.&lt;br /&gt;
  &amp;quot;available_cnt&amp;quot;                       Number of available circuits or channels.&lt;br /&gt;
  &amp;quot;unavailable_cnt&amp;quot;                     Number of unavailable circuits or channels.&lt;br /&gt;
  &amp;quot;availability_percent&amp;quot;                Percentage of available circuits or channels.&lt;br /&gt;
  &amp;quot;usage_percent&amp;quot;                       Percentage of used circuits or channels.&lt;br /&gt;
  &amp;quot;unused_shared_percent&amp;quot;               Percentage of used circuits or channels of this NAP available to make new calls with (taking into account shared with other NAPs)&lt;br /&gt;
  &amp;quot;total_incoming_call_cnt&amp;quot;             Total Count of incoming calls.&lt;br /&gt;
  &amp;quot;global_asr_percent&amp;quot;                  Global calculated ASR percentage.&lt;br /&gt;
  &amp;quot;total_outgoing_call_cnt&amp;quot;             Total Count of outgoing calls.&lt;br /&gt;
  &amp;quot;last_24h_asr_percent&amp;quot;                Last 24 hours calculated ASR percentage.&lt;br /&gt;
  &amp;quot;last_24h_outgoing_call_cnt&amp;quot;          Last 24 hours outgoing calls.&lt;br /&gt;
  &amp;quot;current_hour_asr_percent&amp;quot;            Current hour calculated ASR percentage.&lt;br /&gt;
  &amp;quot;current_hour_outgoing_call_cnt&amp;quot;      Current hour outgoing calls.&lt;br /&gt;
  &amp;quot;last_hour_asr_percent&amp;quot;               Last hour calculated ASR percentage.&lt;br /&gt;
  &amp;quot;last_hour_outgoing_call_cnt&amp;quot;         Last hour outgoing calls.&lt;br /&gt;
  &amp;quot;poll_remote_proxy&amp;quot;                   Remote proxy polling enabled&lt;br /&gt;
  &amp;quot;is_available&amp;quot;                        Remote proxy actually available or not&lt;br /&gt;
  &amp;quot;time_since_polling&amp;quot;                  Time since the last availibility polling&lt;br /&gt;
  &amp;quot;time_available_seconds&amp;quot;              Number of seconds since the NAP is available&lt;br /&gt;
  &amp;quot;time_unavailable_seconds&amp;quot;            Number of seconds since the NAP is unavailable&lt;br /&gt;
  &amp;quot;register_to_proxy&amp;quot;                   Register to proxy enabled&lt;br /&gt;
  &amp;quot;registered&amp;quot;                          Actually registered or not&lt;br /&gt;
  &amp;quot;time_since_refresh&amp;quot;                  Time since the last refresh&lt;br /&gt;
  &amp;quot;time_registered_seconds&amp;quot;             Number of seconds since the NAP is registered&lt;br /&gt;
  &amp;quot;time_not_registered_seconds&amp;quot;         Number of seconds since the NAP is not registered&lt;br /&gt;
  &amp;quot;asr_stats_incoming_struct&amp;quot;           Detailed Answer-Seizure Rate incoming statistics.&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;global_asr_percent&amp;quot;                Global calculated ASR percentage.&lt;br /&gt;
    &amp;quot;total_call_cnt&amp;quot;                    Total count of calls.&lt;br /&gt;
    &amp;quot;total_accepted_call_cnt&amp;quot;           Total count of accepted calls (not dropped due to congestion or rate-limiting).&lt;br /&gt;
    &amp;quot;total_answered_call_cnt&amp;quot;           Total count of answered calls.&lt;br /&gt;
    &amp;quot;last_24h_asr_percent&amp;quot;              Last 24 hours calculated ASR percentage.&lt;br /&gt;
    &amp;quot;last_24h_call_cnt&amp;quot;                 Last 24 hours count of calls.&lt;br /&gt;
    &amp;quot;current_hour_asr_percent&amp;quot;          Current hour calculated ASR percentage.&lt;br /&gt;
    &amp;quot;current_hour_call_cnt&amp;quot;             Current hour count of calls.&lt;br /&gt;
    &amp;quot;last_hour_asr_percent&amp;quot;             Last hour calculated ASR percentage.&lt;br /&gt;
    &amp;quot;last_hour_call_cnt&amp;quot;                Last hour count of calls.&lt;br /&gt;
  }&lt;br /&gt;
  &amp;quot;asr_stats_outgoing_struct&amp;quot;           Detailed Answer-Seizure Rate outgoing statistics.&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;global_asr_percent&amp;quot;                Global calculated ASR percentage.&lt;br /&gt;
    &amp;quot;total_call_cnt&amp;quot;                    Total count of calls.&lt;br /&gt;
    &amp;quot;total_accepted_call_cnt&amp;quot;           Total count of accepted calls (not dropped due to congestion or rate-limiting).&lt;br /&gt;
    &amp;quot;total_answered_call_cnt&amp;quot;           Total count of answered calls.&lt;br /&gt;
    &amp;quot;last_24h_asr_percent&amp;quot;              Last 24 hours calculated ASR percentage.&lt;br /&gt;
    &amp;quot;last_24h_call_cnt&amp;quot;                 Last 24 hours count of calls.&lt;br /&gt;
    &amp;quot;current_hour_asr_percent&amp;quot;          Current hour calculated ASR percentage.&lt;br /&gt;
    &amp;quot;current_hour_call_cnt&amp;quot;             Current hour count of calls.&lt;br /&gt;
    &amp;quot;last_hour_asr_percent&amp;quot;             Last hour calculated ASR percentage.&lt;br /&gt;
    &amp;quot;last_hour_call_cnt&amp;quot;                Last hour count of calls.&lt;br /&gt;
  }&lt;br /&gt;
  &amp;quot;mos_struct&amp;quot;                          Detailed Mean Opinion Score statistics.&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;last_24h_ingress&amp;quot;                  Last 24 hours calculated MOS for incoming RTP packets.&lt;br /&gt;
    &amp;quot;last_24h_egress&amp;quot;                   Last 24 hours calculated MOS for outgoing RTP packets.&lt;br /&gt;
    &amp;quot;current_hour_ingress&amp;quot;              Current hour calculated MOS for incoming RTP packets.&lt;br /&gt;
    &amp;quot;current_hour_egress&amp;quot;               Current hour calculated MOS for outgoing RTP packets.&lt;br /&gt;
    &amp;quot;last_hour_ingress&amp;quot;                 Last hour calculated MOS for incoming RTP packets.&lt;br /&gt;
    &amp;quot;last_hour_egress&amp;quot;                  Last hour calculated MOS for outgoing RTP packets.&lt;br /&gt;
  }&lt;br /&gt;
  &amp;quot;network_quality_struct&amp;quot;              Detailed network quality statistics.&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;last_24h_ingress&amp;quot;                  Last 24 hours network quality percentage for incoming RTP packets.&lt;br /&gt;
    &amp;quot;last_24h_egress&amp;quot;                   Last 24 hours network quality percentage for outgoing RTP packets.&lt;br /&gt;
    &amp;quot;current_hour_ingress&amp;quot;              Current hour network quality percentage for incoming RTP packets.&lt;br /&gt;
    &amp;quot;current_hour_egress&amp;quot;               Current hour network quality percentage for outgoing RTP packets.&lt;br /&gt;
    &amp;quot;last_hour_ingress&amp;quot;                 Last hour network quality percentage for incoming RTP packets.&lt;br /&gt;
    &amp;quot;last_hour_egress&amp;quot;                  Last hour network quality percentage for outgoing RTP packets.&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
&amp;lt;br&amp;gt; The nap status is part of a substructure, the substructure will be a hash containing all subfield elements. &lt;br /&gt;
&lt;br /&gt;
=== Example to access NAP information of the current call === &lt;br /&gt;
&amp;lt;br&amp;gt; To find the incoming nap in a routing script, we can do this in before_filter or after_filter and use these lines to create a symbol:&lt;br /&gt;
    incoming_nap = params[:call][:nap].to_sym&lt;br /&gt;
    log_trace 1, &amp;quot;incoming_nap = &amp;quot; + incoming_nap.inspect&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; To get the configured NAP list, you can do this:&lt;br /&gt;
    nap_lists = params[:naps]&lt;br /&gt;
    log_trace 1, &amp;quot;nap_lists = &amp;quot; + nap_lists.inspect&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; From the list above, you can find how many calls you have on this NAP:&lt;br /&gt;
    log_trace 1,&amp;quot;Incoming NAP call cnt=&amp;quot; + nap_lists[incoming_nap][:asr_stats_incoming_struct][:total_call_cnt].inspect &lt;br /&gt;
&amp;lt;br&amp;gt; Or which network the call is coming from:&lt;br /&gt;
    log_trace 1,&amp;quot;Incoming NAP signaling type=&amp;quot; + nap_lists[incoming_nap][:signaling_type].inspect &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; If you are using a &amp;quot;NAP Columns&amp;quot; custom parameter (Create New NAP Column), you can get the information (since incoming_nap is a symbol): &lt;br /&gt;
    network_type = nap_lists[incoming_nap][:network_type]&lt;br /&gt;
    log_trace 1, &amp;quot;For incoming_nap = &amp;quot; + incoming_nap.inspect + &amp;quot; network_type is: &amp;quot; + network_type.inspect&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; If you want to modify something according to nap information, you may need to do a loop like this:&lt;br /&gt;
    nap_lists.each do |nap_list,nap_info|&lt;br /&gt;
      log_trace 1, &amp;quot;NAP: &amp;quot; + nap_info[:name].inspect + &amp;quot; network_type: &amp;quot; + nap_info[:network_type].inspect&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
== Telephony Services ==&lt;br /&gt;
In release 2.10 and the above, telephony services (CNAM Request) can be manage from the routing engine in the following format:&lt;br /&gt;
&lt;br /&gt;
  params[:telephony_services].each do |service|  -&amp;gt; Array of telephony services&lt;br /&gt;
    service[:name]                               -&amp;gt; Customer telephony service name&lt;br /&gt;
    service[:type]                               -&amp;gt; For now only &amp;quot;CNAM Request&amp;quot;&lt;br /&gt;
    service[:enabled]                            -&amp;gt; Indicate if the service is enabled (true) or not (false)&lt;br /&gt;
                                                    (Only the telephony service define in the profile associated to the NAP is enabled)&lt;br /&gt;
                                                    (The others telephony services define in others profiles are disabled)&lt;br /&gt;
                                                    (If we are in the case where we return in the routing script with a response, it is important to set :enabled to false in order to avoid repeating the same query)&lt;br /&gt;
    serviceParams = service[:params]&lt;br /&gt;
    serviceParams[:return_to_script]             -&amp;gt; Indicates to Gateway if we must return to the routing script after receiving the CNAM response&lt;br /&gt;
                                                    (It is important to set back to false this field to avoid an infinite loop)&lt;br /&gt;
    serviceQuery = service[:query]&lt;br /&gt;
    serviceQuery[:phone]                         -&amp;gt; 10 digits of calling number from the incoming call to send to the CNAM server&lt;br /&gt;
    serviceQuery[:timeout]                       -&amp;gt; Timeout in millisecond to wait a CNAM response from CNAM server&lt;br /&gt;
                                                    (Default value from profile configuration)&lt;br /&gt;
    serviceResponse = service[:response]&lt;br /&gt;
    serviceResponse[:success]                    -&amp;gt; Indicates if we received a good CNAM response from the CNAM Server (Only present if :return_to_script is set to true)&lt;br /&gt;
    serviceResponse[:caller_name]                -&amp;gt; The caller name received in the CNAM response from the CNAM Server (Only present if :return_to_script is set to true)&lt;br /&gt;
&lt;br /&gt;
== Custom user context ==&lt;br /&gt;
The routing script may '''save per-call information within the call context''', that will be available if routing is called again later during the call flow.&lt;br /&gt;
&lt;br /&gt;
Cases where routing is called multiple time for the same call are:&lt;br /&gt;
- Call transfer requests&lt;br /&gt;
- SIP redirect requests&lt;br /&gt;
- Radius Authorization result&lt;br /&gt;
- Announcement server with digit collection&lt;br /&gt;
&lt;br /&gt;
The routing script can save a recursive hash of attributes here:&lt;br /&gt;
  params[:user_context]&lt;br /&gt;
&lt;br /&gt;
For example&lt;br /&gt;
  params[:user_context] = { &amp;quot;SomeKey&amp;quot; =&amp;gt; &amp;quot;Some value I want to retrieve upon next routing for this call&amp;quot;, &amp;quot;OtherVal&amp;quot; =&amp;gt; { &amp;quot;subkey&amp;quot; =&amp;gt; &amp;quot;subval&amp;quot; } }&lt;br /&gt;
&lt;br /&gt;
Upon first call to routing script, params[:user_context] will be nil.&lt;br /&gt;
Upon subsequent calls to routing script, it will contain whatever the script had stored upon previous call (or nil if it was not set)&lt;br /&gt;
&lt;br /&gt;
Note: This feature is available starting from release 2.9.85, 2.10.31 and 3.0.15 (in respective branches 2.9, 2.10 or 3.0)&lt;br /&gt;
&lt;br /&gt;
== Routing Script Tests ==&lt;br /&gt;
The Web portal features a tool for Testing Scripts. The user must enter parameters to simulate the incoming call and after pressing the Test button, will output selected routes and numbers.  You do not need to activate the new routes, or the new scripts to use this test tool: It can be used to test the routing scripts and routing table before activating it.&lt;br /&gt;
This is available in the Routing Scripts section of the Web portal.&lt;br /&gt;
&lt;br /&gt;
=== Test parameters ===&lt;br /&gt;
==== @call_params  ====&lt;br /&gt;
&lt;br /&gt;
That variable should contain a hash of call parameters that will be 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 the 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;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==== @params  ====&lt;br /&gt;
&lt;br /&gt;
A hash of hashes containing parameters. This hash contains bridge parameters and other kind of parameter groups may be added in the future. &lt;br /&gt;
&lt;br /&gt;
  @params = {&lt;br /&gt;
     :bridge =&amp;gt; {:announcement_tone, &amp;quot;announcement.wav&amp;quot;},&lt;br /&gt;
     :contacts =&amp;gt; {&lt;br /&gt;
       :index=&amp;gt;&amp;quot;1&amp;quot;,&lt;br /&gt;
       :list=&amp;gt;[&lt;br /&gt;
          {:called_number=&amp;gt;&amp;quot;6660&amp;quot;, :priority=&amp;gt;&amp;quot;1000&amp;quot;, :is_number_ported=&amp;gt;&amp;quot;0&amp;quot;, :sip_uri=&amp;gt;&amp;quot;&amp;quot;,&lt;br /&gt;
           :raw_data=&amp;gt;&amp;quot;&amp;quot;, :expiration=&amp;gt;&amp;quot;3600&amp;quot;},&lt;br /&gt;
          {:called_number=&amp;gt;&amp;quot;6661&amp;quot;, :priority=&amp;gt;&amp;quot;1000&amp;quot;, :is_number_ported=&amp;gt;&amp;quot;0&amp;quot;, :sip_uri=&amp;gt;&amp;quot;sip:6661@192.168.215.127&amp;quot;, &lt;br /&gt;
           :raw_data=&amp;gt;&amp;quot;&amp;lt;sip:6661@192.168.215.127&amp;gt;&amp;quot;, :expiration=&amp;gt;&amp;quot;3600&amp;quot;}&lt;br /&gt;
       ],&lt;br /&gt;
       :source_indexes=&amp;gt;&amp;quot;nil,0&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; Back to [[Routing script tutorial|Routing Script Tutorial]].&lt;/div&gt;</summary>
		<author><name>Luc Morissette</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>2021-03-09T16:17:32Z</updated>
		
		<summary type="html">&lt;p&gt;Luc Morissette: Updated NAP status section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Call object  ==&lt;br /&gt;
&lt;br /&gt;
=== Get  ===&lt;br /&gt;
&lt;br /&gt;
This function is used to get the call parameters. The possible parameters are described in the section &amp;quot;Call parameters&amp;quot; &lt;br /&gt;
&lt;br /&gt;
  called_number = caf_call.get&amp;amp;nbsp;: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 parameters from the the call object and put it in hash. &lt;br /&gt;
&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 actually creates one outgoing route that the gateway application will use to bridge the incoming call leg.  If more than one outgoing route is &amp;quot;accepted&amp;quot;, the gateway will try them one by one in the same order that they were accepted.   If an outgoing call leg fails (according to 'route retry' parameters), the next route in line will be used.  &lt;br /&gt;
&lt;br /&gt;
This method takes 2 arguments, the call parameters (hash) and the route parameters (hash).  Note that calling this method does NOT stop the flow of the script.&lt;br /&gt;
&lt;br /&gt;
Apply route remapping rules &lt;br /&gt;
&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 set the reason code for the incoming call leg refusal.  However, this function does NOT stop the flow of the script. &lt;br /&gt;
&lt;br /&gt;
  caf_call.refuse&amp;amp;nbsp;:reason =&amp;amp;gt;&amp;amp;nbsp;:temporary_failure&lt;br /&gt;
&lt;br /&gt;
To immediately refuse the incoming call leg and stop processing the script, the script must raise an exception.  Exiting the script by raising the exception overwrites any reason cause previously stored using refuse().&lt;br /&gt;
&lt;br /&gt;
  raise RoutingException, :no_route&lt;br /&gt;
&lt;br /&gt;
The supported refusal cause values for both refuse() and raise() are described in the section &amp;quot;[[Routing_script_tutorial:Mini_Development_Guide#Reason_values|Reason values]]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Script parameters protocol mapping  ===&lt;br /&gt;
&lt;br /&gt;
The following call parameters are available in the call object. For example:&lt;br /&gt;
&lt;br /&gt;
  called_number = call[:called]&lt;br /&gt;
&lt;br /&gt;
For information on how to use and remap call parameters, see [[Toolpack:_How_to_Use_RegEx_in_Remapped_Called_and_Calling_Number_Mask | How to use regex in Remapped Called and Calling Number Mask]]&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;width: 921px; height: 805px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | '''Script parameter name''' &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | '''_____ISDN_____&amp;lt;br&amp;gt;''' &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | '''__R2_CAS__'''&amp;lt;br&amp;gt; &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | '''______________SS7___________&amp;lt;br&amp;gt;''' &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | '''_____________SIP_____________&amp;lt;br&amp;gt;''' &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | '''Comment&amp;lt;br&amp;gt;'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | '''Toolpack version&amp;lt;br&amp;gt;'''&lt;br /&gt;
|-&lt;br /&gt;
| leg_id&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Leg ID&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| session_id&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Session ID&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| original_session_id&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Original Session ID (before call transfer or redirections)&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| calling&amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Calling party number' IE - Number digits &amp;lt;br&amp;gt; &lt;br /&gt;
| ANI (Group B)&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Calling party number' IE - address signals (*)&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:From - user-info&amp;lt;br&amp;gt; &lt;br /&gt;
| * In ANSI SS7 LNP networks, the IE 'generic address parameter' is used (when present) instead.&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| calling_sip_host &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:From - host (domain or IP) &amp;lt;br&amp;gt; &lt;br /&gt;
|  For example : The 'telcobridges.com' in From: &amp;quot;Cullen Jennings&amp;quot; &amp;lt;sip:fluffy@telcobridges.com&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| calling_sip_port &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:From - port &amp;lt;br&amp;gt; &lt;br /&gt;
|  For example : The '6060' in From: &amp;quot;Cullen Jennings&amp;quot; &amp;lt;sip:fluffy@telcobridges.com:6060&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| calling_noa&amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Calling party number' IE - Type of number&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Calling party number' IE - nature of address indicator (*)&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| * In ANSI SS7 LNP networks, the IE 'generic address parameter' is used (when present) instead&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| calling_npi &amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Calling party number' IE - Numbering plan identification&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Calling party number' IE - numbering plan indicator (*)&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| * In ANSI SS7 LNP networks, the IE 'generic address parameter' is used&amp;amp;nbsp;(when present) instead&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| calling_display &amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Display' IE - Display information&amp;lt;br&amp;gt; &lt;br /&gt;
Q931: 'Facility CNAM' IE when presentation is allowed for DMS/NI2 variants&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763 &lt;br /&gt;
ITU97: 'Display information' IE - display information &lt;br /&gt;
ANSI95: 'Generic name' IE - display information &lt;br /&gt;
| SIP:From - display-name&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| calling_display_type&amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Display' IE - Display information (present and/or first byte)&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Display information' IE - present or not&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| calling_presentation &amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Calling party number' IE - Presentation indicator&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Calling party number' IE - address presentation restricted indicator&amp;lt;br&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
SIP:From - display-name (displays 'anonymous' or not) &lt;br /&gt;
&lt;br /&gt;
SIP:Remote-party-id - privacy&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| calling_screening&amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Calling party number' IE - Screening indicator&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Calling party number' IE - screening&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:Remote-party-id - screen&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| calling_category&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Call party category (Group A)&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Calling party's category' IE - calling party's category&amp;lt;br&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
SIP:From - cpc &lt;br /&gt;
&lt;br /&gt;
SIP:P-asserted-identity - cpc&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| calling_subscriber &lt;br /&gt;
(Generic Number / NDS)&amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 2nd 'Calling party number' IE - Number digits &amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: Generic number IE with type 'additional calling party number' - Number digits&amp;lt;br&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
SIP:P-asserted-identity - userinfo &lt;br /&gt;
&lt;br /&gt;
SIP:Remote-party-id - user-info&amp;lt;br&amp;gt; &lt;br /&gt;
| Requires option 'support 2 calling number IE' in the profile.  This variable has priority over 'private_address' in the outgoing direction.&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| calling_subscriber_noa&amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 2nd 'Calling party number' IE - Type of number&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: Generic number IE with type 'additional calling party number' - nature of address indicator&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:P-asserted-identity - userinfo &lt;br /&gt;
&lt;br /&gt;
SIP:Remote-party-id - user-info&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| calling_subscriber_npi &amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 2nd 'Calling party number' IE - Numbering plan identification&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: Generic number IE with type 'additional calling party number' - numbering plan indicator&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:P-asserted-identity - userinfo &lt;br /&gt;
&lt;br /&gt;
SIP:Remote-party-id - user-info&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| calling_subscriber_presentation&amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 2nd 'Calling party number' IE - Presentation indicator&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: Generic number IE with type 'additional calling party number' - presentation restricted indicator&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:P-asserted-identity - userinfo &lt;br /&gt;
&lt;br /&gt;
SIP:Remote-party-id - user-info&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| calling_subscriber_screening &amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 2nd 'Calling party number' IE - Screening indicator&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: Generic number IE with type 'additional calling party number' - screening&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:P-asserted-identity - userinfo &lt;br /&gt;
&lt;br /&gt;
SIP:Remote-party-id - user-info&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| private_display&amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Facility CNAM' IE when presentation is restricted for DMS/NI2 variants&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
SIP:P-asserted-identity - display-name&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
SIP:Remote-party-id - display-name&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| private_display_type &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Indicate presence or not of the private calling information&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| private_address&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
SIP:P-asserted-identity - userinfo &lt;br /&gt;
&lt;br /&gt;
SIP:Remote-party-id - user-info&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
| For example : The 'fluffy' in P-Asserted-Identity: &amp;quot;Cullen Jennings&amp;quot; &amp;lt;sip:fluffy@telcobridges.com&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| private_address_sip_host &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
SIP:P-asserted-identity - host (domain or IP)&lt;br /&gt;
&lt;br /&gt;
SIP:Remote-party-id - host (domain or IP) &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
| For example : The 'telcobridges.com' in P-Asserted-Identity: &amp;quot;Cullen Jennings&amp;quot; &amp;lt;sip:fluffy@telcobridges.com&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| private_address_sip_port &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
SIP:P-asserted-identity - port&lt;br /&gt;
&lt;br /&gt;
SIP:Remote-party-id - port&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
| For example : The '6060' in P-Asserted-Identity: &amp;quot;Cullen Jennings&amp;quot; &amp;lt;sip:fluffy@telcobridges.com:6060&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| supp_private_address_forward_enabled &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Overwrite default supplementary/second P-Asserted-Identity header forwarding behavior from incoming to outgoing leg &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| supp_private_address&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
SIP:P-Asserted-Identity - userinfo &lt;br /&gt;
&lt;br /&gt;
| For example : The 'fluffy' in supplementary/second P-Asserted-Identity: &amp;quot;Cullen Jennings&amp;quot; &amp;lt;sip:fluffy@telcobridges.com&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| supp_private_address_display_name&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
SIP:P-Asserted-Identity - display name&lt;br /&gt;
&lt;br /&gt;
| For example : The 'Cullen Jennings' in supplementary/second P-Asserted-Identity: &amp;quot;Cullen Jennings&amp;quot; &amp;lt;sip:fluffy@telcobridges.com&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| supp_private_address_sip_host &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
SIP:P-Asserted-Identity - host (domain or IP)&lt;br /&gt;
&lt;br /&gt;
| For example : The 'telcobridges.com' in supplementary/second P-Asserted-Identity: &amp;quot;Cullen Jennings&amp;quot; &amp;lt;sip:fluffy@telcobridges.com&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| supp_private_address_sip_port &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
SIP:P-Asserted-Identity - port&lt;br /&gt;
&lt;br /&gt;
| For example : The '6060' in supplementary/second P-Asserted-Identity: &amp;quot;Cullen Jennings&amp;quot; &amp;lt;sip:fluffy@telcobridges.com:6060&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| preferred_id_forward_enabled &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Overwrite default P-Preferred-Identity header forwarding behavior from incoming to outgoing leg &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| preferred_id&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
SIP:P-Preferred-Identity - userinfo &lt;br /&gt;
&lt;br /&gt;
| For example : The 'fluffy' in P-Preferred-Identity: &amp;quot;Cullen Jennings&amp;quot; &amp;lt;sip:fluffy@telcobridges.com&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| preferred_id_display_name&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
SIP:P-Preferred-Identity - display name&lt;br /&gt;
&lt;br /&gt;
| For example : The 'Cullen Jennings' in P-Preferred-Identity: &amp;quot;Cullen Jennings&amp;quot; &amp;lt;sip:fluffy@telcobridges.com&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| preferred_id_sip_host &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
SIP:P-Preferred-Identity - host (domain or IP)&lt;br /&gt;
&lt;br /&gt;
| For example : The 'telcobridges.com' in P-Preferred-Identity: &amp;quot;Cullen Jennings&amp;quot; &amp;lt;sip:fluffy@telcobridges.com&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| preferred_id_sip_port &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
SIP:P-Preferred-Identity - port&lt;br /&gt;
&lt;br /&gt;
| For example : The '6060' in P-Preferred-Identity: &amp;quot;Cullen Jennings&amp;quot; &amp;lt;sip:fluffy@telcobridges.com:6060&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| called &amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Called party number' IE - Number digits &amp;lt;br&amp;gt; &lt;br /&gt;
| DNIS (Group A)&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Called party number' IE - address signals&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:To - user-info and host&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| called_sip_host &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:To - host &amp;lt;br&amp;gt; &lt;br /&gt;
| For example : The 'telcobridges.com' in To: &amp;quot;Cullen Jennings&amp;quot; &amp;lt;sip:fluffy@telcobridges.com&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| called_sip_port &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:To - port number &amp;lt;br&amp;gt; &lt;br /&gt;
| For example : The '6060' in To: &amp;quot;Cullen Jennings&amp;quot; &amp;lt;sip:fluffy@telcobridges.com:6060&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| called_noa &amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Called party number' IE - Type of number&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Called party number' IE - nature of address indicator&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| called_npi &amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Called party number' IE - Numbering plan identification&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Called party number' IE - numbering plan indicator&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| charge_number&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| ANSI: 'Charge number' IE - address signals&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| charge_number_noa &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| ANSI: 'Charge number' IE - nature of address indicator&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| charge_number_npi&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| ANSI: 'Charge number' IE - numbering plan indicator&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| redirecting_number_forward_enabled &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Overwrite default redirecting number and original called number forwarding behavior from incoming to outgoing leg &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| redirecting_number &amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Redirecting number' 1st IE - Number digits &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Redirecting number' IE - address signals&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:Diversion (2nd header) - display-name&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| redirecting_number_noa &amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Redirecting number'&amp;amp;nbsp;1st IE - Type of number&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Redirecting number' IE - nature of address indicator&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| redirecting_number_npi &amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Redirecting number' 1st IE - Numbering plan identification&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Redirecting number' IE - numbering plan indicator&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| redirecting_number_presentation &amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Redirecting number' 1st IE - Presentation indicator &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Redirecting number' IE - address presentation restricted indicator&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:Diversion&amp;amp;nbsp;(2nd header) - diversion-privacy&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| redirecting_number_indicator &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Redirection information' IE - redirecting indicator&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| redirecting_number_reason &amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Redirecting number' 1st IE - Reason for redirection&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Redirection information' IE - redirecting reason&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:Diversion (2nd header) - diversion-reason&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| redirecting_number_counter &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Redirection information' IE - redirection counter&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:Diversion (2nd header) - diversion-counter&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| original_called_number &lt;br /&gt;
(OCN) &amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Redirecting number' 2nd IE - Number digits &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Redirection number' IE - address signals&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:Diversion&amp;amp;nbsp; (1st header) - display-name&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| original_called_number_noa &amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Redirecting number' 2nd IE - Type of number&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Redirection number' IE - nature of address indicator&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| original_called_number_npi &amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Redirecting number' 2nd IE - Numbering plan identification&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Redirection number' IE - numbering plan indicator&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| original_called_number_presentation &amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Redirecting number' 2nd IE - Presentation indicator &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Redirection number' IE - address presentation restricted indicator&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:Diversion (1st header) - diversion-privacy&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| original_called_number_reason &amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Redirecting number' 2nd IE - Reason for redirection&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Redirection information' IE - original redirection reason&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:Diversion (1st header) - diversion-reason&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| original_called_number_counter &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:Diversion (1st header) - diversion-counter&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| ported_number_npdi &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Generic number' IE - with qualifier=Ported number is present&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:RequestURI - npdi=yes is present&amp;lt;br&amp;gt; &lt;br /&gt;
| Only valid if SIP/SS7 supports LNP&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| ported_number &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Generic number' IE - address signals with qualifier=Ported number&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:RequestURI - to user part when rn is present&amp;lt;br&amp;gt; &lt;br /&gt;
| rn is stored in the called number&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| ported_number_noa &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Generic number' IE - nature of address indicator with qualifier=Ported number&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Only valid if SIP/SS7 supports LNP&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| ported_number_npi &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Generic number' IE - numbering plan indicator with qualifier=Ported number&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Only valid if SIP/SS7 supports LNP&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| oli&lt;br /&gt;
(Originating line information) &amp;lt;br&amp;gt; &lt;br /&gt;
| 5ESS Codeset 6 OLI - Value&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| ANSI: 'Originating line information' IE - OLI&amp;lt;br&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
SIP:From - oli &lt;br /&gt;
&lt;br /&gt;
SIP:P-asserted-identity - oli&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| request_uri &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Complete Request URI string&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| request_uri_forward_enabled &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Overwrite default URI&amp;amp;nbsp;forwarding behavior from incoming to outgoing leg&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| sip_header&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Any header&amp;lt;br&amp;gt; &lt;br /&gt;
| Requires option 'Enable SIP Custom Headers' in Profiles-&amp;gt;SIP &amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7.63&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| nap&lt;br /&gt;
(Network Access Point) &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Incoming leg NAP name (read-only)&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| type_of_network_identification&amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Transit network selection' IE - Type of network identification &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Transit network selection' IE - Type of network identification &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| network_identification&amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Transit network selection' IE - Network identification &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Transit network selection' IE - Network identification &amp;lt;br&amp;gt; &lt;br /&gt;
| SIP: Request-Line - cic&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| network_identification_plan&amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Transit network selection' IE - Network identification plan &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Transit network selection' IE - Network identification plan &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| location_number_forward_enabled &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Overwrite default location number forwarding behavior from incoming to outgoing leg &amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| location_number &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Location number' IE - address signals&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| location_number_noa &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Location number' IE - nature of address indicator&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| location_number_npi &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Location number' IE - numbering plan indicator&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| location_number_presentation&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Location number' IE - presentation restricted indicator&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| location_number_screening &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Location number' IE - screening&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| mlpp_forward_enabled &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| A script needs to set this to true if it wants to overwrite MLPP information in the outgoing leg.  Otherwise, profile relay 'outgoing mode' applies automatically.&amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| mlpp_look_for_busy &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'MLPP precedence' IE - look ahead for busy&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| mlpp_precedence_level &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'MLPP precedence' IE - precedence level&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:Resource-Priority - q735&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| mlpp_network_identity &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'MLPP precedence' IE - network identity&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| mlpp_service_domain&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'MLPP precedence' IE - MLPP service domain&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| isub_forward_enabled &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Overwrite default ISUB forwarding behavior from incoming to outgoing leg &amp;lt;br&amp;gt;&lt;br /&gt;
| 3.0.138&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| called_isub &amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Called party subaddress' IE - subaddress information&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Access transport' IE&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:To - isub parameter&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| called_isub_type&amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Called party subaddress' IE - type of subaddress&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Access transport' IE&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:To - isub-encoding parameter&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| calling_isub &amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Calling party subaddress' IE - subaddress information&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Access transport' IE&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:From - isub&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| calling_isub_type&amp;lt;br&amp;gt; &lt;br /&gt;
| Q931: 'Calling party subaddress' IE - type of subaddress&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Q763: 'Access transport' IE&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:From - isub-encoding&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| ss7_fci_default &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Default forward call indicator (FCI) value.&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Toolpack will overwrite FCI bits A, D, F, I and M with appropriate values according to call conditions&amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| ss7_fci_force_mask &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Mask to select bits from ss7_fci_default that must be forced.&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Bits from ss7_fci_default which corresponding bit in ss7_fci_force_mask is set will be forced, and no more controlled by Toolpack&amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| ss7_bci_default &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Default backward call indicator (BCI) value.&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Toolpack will overwrite BCI bits AB, I, K, M and N with appropriate values according to call conditions&amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| ss7_bci_force_mask &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Mask to select bits from ss7_bci_default that must be forced.&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Bits from ss7_bci_default which corresponding bit in ss7_bci_force_mask is set will be forced, and no more controlled by Toolpack&amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tdm_ls_name_forward_enabled&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt;&lt;br /&gt;
| Enable line service and timeslot selection to create the outgoing leg. tdm_ls_name and tdm_timeslot_nb must be defined along with tdm_ls_name_forward_enabled&amp;lt;br&amp;gt;&lt;br /&gt;
| 3.0&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tdm_ls_name&lt;br /&gt;
(Line Service or T1/E1 trunk) &amp;lt;br&amp;gt; &lt;br /&gt;
| Incoming leg line service name&amp;lt;br&amp;gt; &lt;br /&gt;
| Incoming leg line service name&amp;lt;br&amp;gt; &lt;br /&gt;
| Incoming leg line service name&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| if tdm_ls_name_forward_enabled is set, try to use this line service name to create outgoing leg&amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tdm_timeslot_nb&amp;lt;br&amp;gt; &lt;br /&gt;
| Incoming leg timeslot number&amp;lt;br&amp;gt; &lt;br /&gt;
| Incoming leg timeslot number&amp;lt;br&amp;gt; &lt;br /&gt;
| Incoming leg timeslot number&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| if tdm_ls_name_forward_enabled is set, try to use this timeslot number to create outgoing leg&amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| rtp_local_addr&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Incoming leg local SDP IP address&amp;lt;br&amp;gt; &lt;br /&gt;
| (read-only)&amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| rtp_local_port&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Incoming leg local SDP IP port&amp;lt;br&amp;gt; &lt;br /&gt;
| (read-only)&amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| rtp_remote_addr&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Incoming leg remote SDP IP address&amp;lt;br&amp;gt; &lt;br /&gt;
| (read-only)&amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| rtp_remote_port&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Incoming leg remote SDP IP port&amp;lt;br&amp;gt; &lt;br /&gt;
| (read-only)&amp;lt;br&amp;gt;&lt;br /&gt;
| 2.7&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| ss7_cot_enabled &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Requests SS7 in-call continuity test for this outgoing SS7 call&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Toolpack will request a continuity test on the timeslot before making the outgoing call. If COT fails, the call will be dropped (then another route may be attempted)&amp;lt;br&amp;gt;&lt;br /&gt;
| 2.8&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| reverse_charging_indication&amp;lt;br&amp;gt; &lt;br /&gt;
| Incoming leg Reverse charging indication IE present&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| If set in routing script, will add Reverse charging indication IE in outgoing leg (also use reverse_charging_indication_forward_enabled)&amp;lt;br&amp;gt;&lt;br /&gt;
| 2.8.12&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| reverse_charging_indication_forward_enabled&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Enable forwarding of reverse charging indication from incoming to outgoing leg&amp;lt;br&amp;gt;&lt;br /&gt;
| 2.8.12&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| sip_call_id&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Incoming leg SIP Call-Id&amp;lt;br&amp;gt; &lt;br /&gt;
| (read-only)&amp;lt;br&amp;gt;&lt;br /&gt;
| 2.9.112 / 3.0.131&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| sip_local_addr&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Incoming leg local SIP IP address&amp;lt;br&amp;gt; &lt;br /&gt;
| (read-only)&amp;lt;br&amp;gt;&lt;br /&gt;
| 2.8.13&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| sip_local_port&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Incoming leg local SIP port&amp;lt;br&amp;gt; &lt;br /&gt;
| (read-only)&amp;lt;br&amp;gt;&lt;br /&gt;
| 2.8.13&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| sip_remote_addr&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Incoming leg remote SIP IP address&amp;lt;br&amp;gt; &lt;br /&gt;
| (read-only)&amp;lt;br&amp;gt;&lt;br /&gt;
| 2.8.13&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| sip_remote_port&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| N/A&amp;lt;br&amp;gt; &lt;br /&gt;
| Incoming leg remote SIP port&amp;lt;br&amp;gt; &lt;br /&gt;
| (read-only)&amp;lt;br&amp;gt;&lt;br /&gt;
| 2.8.13&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| acli&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt;&lt;br /&gt;
| 'Additional Calling Party Information' IE - address signals.&lt;br /&gt;
A new ISUP parameter is defined under national option to carry the actual calling party number of the ported subscriber (N2) in the IAM message across the Network.&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt;&lt;br /&gt;
| (read-only)&amp;lt;br&amp;gt;&lt;br /&gt;
| 3.0.143.2&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| acli_nao&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt;&lt;br /&gt;
| 'Additional Calling Party Information' IE - nature of address indicator.&lt;br /&gt;
A new ISUP parameter is defined under national option to carry the actual calling party number of the ported subscriber (N2) in the IAM message across the Network.&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt;&lt;br /&gt;
| (read-only)&amp;lt;br&amp;gt;&lt;br /&gt;
| 3.0.143.2&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| acli_npi&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt;&lt;br /&gt;
| 'Additional Calling Party Information' IE - numbering plan indicator.&lt;br /&gt;
A new ISUP parameter is defined under national option to carry the actual calling party number of the ported subscriber (N2) in the IAM message across the Network.&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt;&lt;br /&gt;
| (read-only)&amp;lt;br&amp;gt;&lt;br /&gt;
| 3.0.143.2&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| acli_presentation&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt;&lt;br /&gt;
| 'Additional Calling Party Information' IE - address presentation restricted indicator.&lt;br /&gt;
A new ISUP parameter is defined under national option to carry the actual calling party number of the ported subscriber (N2) in the IAM message across the Network.&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt;&lt;br /&gt;
| (read-only)&amp;lt;br&amp;gt;&lt;br /&gt;
| 3.0.143.2&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| acli_screening&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt;&lt;br /&gt;
| 'Additional Calling Party Information' IE - screening indicator.&lt;br /&gt;
A new ISUP parameter is defined under national option to carry the actual calling party number of the ported subscriber (N2) in the IAM message across the Network.&amp;lt;br&amp;gt;&lt;br /&gt;
| N/A&amp;lt;br&amp;gt;&lt;br /&gt;
| (read-only)&amp;lt;br&amp;gt;&lt;br /&gt;
| 3.0.143.2&amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Noa values  ===&lt;br /&gt;
The text below represents the value normally used by routing script.&amp;lt;br&amp;gt;&lt;br /&gt;
Incase it's required to use a value that's not defined in the text values below, a integer can be provided and will be used &amp;quot;as-is&amp;quot; in the signaling message.&amp;lt;br&amp;gt;&lt;br /&gt;
Example numeric values for the SS7 protocol are shown in parenthesis.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;unknown_number (2 or 0x2)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;international_number (4 or 0x4)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;national_number (3 or 0x3)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;subscriber_number (1 or 0x1)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;network_specific (5 or 0x5)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;network_routing_national_format (7 or 0x7)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;network_routing_international_format (8 or 0x8)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;abbreviated_number (6 or 0x6)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;subscriber_number_operator_requested (113 or 0x71)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;national_number_operator_requested (114 or 0x72)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;international_number_operator_requested (115 or 0x73)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;no_number_present_operator_requested (116 or 0x74)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;no_number_present_cut_through_call_to_carrier (117 or 0x75)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;test_line_test_code (119 or 0x77)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;non_unique_subscriber_number (113 or 0x71)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;non_unique_national_number (115 or 0x73)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;non_unique_international_number (116 or 0x74)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;call_950_number (118 or 0x76)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;special_number (115 or 0x73)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;national_number_with_transit_network_selection (116 or 0x74)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;international_number_with_transit_network_selection (117 or 0x75)&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;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;call_params[:called_noa] = 0x70&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or &lt;br /&gt;
&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;
&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;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;unspecified&amp;lt;/tt&amp;gt; =&amp;amp;gt; Type is unspecified. &lt;br /&gt;
*&amp;lt;tt&amp;gt;calling_party_name&amp;lt;/tt&amp;gt; =&amp;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;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;call_params[:calling_display_type] = 0xB1&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or &lt;br /&gt;
&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;
&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;
=== Presentation values for Calling number, Calling Subscriber (Generic Number), Redirecting Number, Original Called Number (OCN) and Location Number ===&lt;br /&gt;
The text below represents the value normally used by routing script.&amp;lt;br&amp;gt;&lt;br /&gt;
Incase it's required to use a value that's not defined in the text values below, a integer can be provided and will be used &amp;quot;as-is&amp;quot; in the signaling message.&amp;lt;br&amp;gt;&lt;br /&gt;
Example numeric values for the SS7 protocol are shown in parenthesis.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;unspecified&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;not_available (0x2)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;allowed (0x0)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;restricted (0x1)&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 Party Category  ===&lt;br /&gt;
The text below represents the value normally used by routing script.&amp;lt;br&amp;gt;&lt;br /&gt;
In case it's required to use a value that's not defined in the text values below, a integer can be provided and will be used &amp;quot;as-is&amp;quot; in the signaling message.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mapping from routing script to SS7/CAS R2/SIP&lt;br /&gt;
{| cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | '''Routing Script string &amp;lt;br&amp;gt;''' &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | '''SS7 raw value &amp;lt;br&amp;gt;''' &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | '''R2 CAS scripts'''&amp;lt;br&amp;gt; &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | '''Default Rx CAS'''&amp;lt;br&amp;gt; &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | '''default Tx CAS'''&amp;lt;br&amp;gt; &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | '''SIP &amp;quot;cpc=&amp;quot;  &amp;lt;br&amp;gt;''' &lt;br /&gt;
|-&lt;br /&gt;
| subscriber&amp;lt;br&amp;gt; &lt;br /&gt;
| 0xa&amp;lt;br&amp;gt; &lt;br /&gt;
| CATEGORY_SUBSCRIBER &amp;lt;br&amp;gt; &lt;br /&gt;
| 1 and 7&amp;lt;br&amp;gt; &lt;br /&gt;
| 7&amp;lt;br&amp;gt; &lt;br /&gt;
| ordinary&amp;lt;br&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| subscriber_with_priority&amp;lt;br&amp;gt; &lt;br /&gt;
| 0xb&amp;lt;br&amp;gt; &lt;br /&gt;
| CATEGORY_SUBSCRIBER_WITH_PRIORITY &amp;lt;br&amp;gt; &lt;br /&gt;
| 2 and 9 &amp;lt;br&amp;gt; &lt;br /&gt;
| 2 &amp;lt;br&amp;gt; &lt;br /&gt;
| priority&amp;lt;br&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| operator_french&amp;lt;br&amp;gt; &lt;br /&gt;
| 0x1&amp;lt;br&amp;gt; &lt;br /&gt;
| CATEGORY_OPERATOR_FRENCH &amp;lt;br&amp;gt; &lt;br /&gt;
| 5 &amp;lt;br&amp;gt; &lt;br /&gt;
| 5 &amp;lt;br&amp;gt;&lt;br /&gt;
| operator&amp;lt;br&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| operator_english&amp;lt;br&amp;gt; &lt;br /&gt;
| 0x2&amp;lt;br&amp;gt; &lt;br /&gt;
| CATEGORY_OPERATOR_ENGLISH (5)&amp;lt;br&amp;gt; &lt;br /&gt;
| 5 &amp;lt;br&amp;gt; &lt;br /&gt;
| 5 &amp;lt;br&amp;gt;&lt;br /&gt;
| operator&amp;lt;br&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| operator_german&amp;lt;br&amp;gt; &lt;br /&gt;
| 0x3&amp;lt;br&amp;gt; &lt;br /&gt;
| CATEGORY_OPERATOR_GERMAN (5)&amp;lt;br&amp;gt; &lt;br /&gt;
| 5 &amp;lt;br&amp;gt; &lt;br /&gt;
| 5 &amp;lt;br&amp;gt;&lt;br /&gt;
| operator&amp;lt;br&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| operator_russian&amp;lt;br&amp;gt; &lt;br /&gt;
| 0x4&amp;lt;br&amp;gt; &lt;br /&gt;
| CATEGORY_OPERATOR_RUSSIAN (5)&amp;lt;br&amp;gt; &lt;br /&gt;
| 5 &amp;lt;br&amp;gt; &lt;br /&gt;
| 5 &amp;lt;br&amp;gt;&lt;br /&gt;
| operator&amp;lt;br&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| operator_spanish &amp;lt;br&amp;gt; &lt;br /&gt;
| 0x5&amp;lt;br&amp;gt; &lt;br /&gt;
| CATEGORY_OPERATOR_SPANISH (5)&amp;lt;br&amp;gt; &lt;br /&gt;
| 5 &amp;lt;br&amp;gt; &lt;br /&gt;
| 5 &amp;lt;br&amp;gt;&lt;br /&gt;
| operator&amp;lt;br&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| data&amp;lt;br&amp;gt; &lt;br /&gt;
| 0xc&amp;lt;br&amp;gt; &lt;br /&gt;
| CATEGORY_DATA &amp;lt;br&amp;gt; &lt;br /&gt;
| 6 and 8&amp;lt;br&amp;gt; &lt;br /&gt;
| 6 &amp;lt;br&amp;gt; &lt;br /&gt;
| datacall&amp;lt;br&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| test&amp;lt;br&amp;gt; &lt;br /&gt;
| 0xd&amp;lt;br&amp;gt; &lt;br /&gt;
| CATEGORY_TEST &amp;lt;br&amp;gt; &lt;br /&gt;
| 3 &amp;lt;br&amp;gt; &lt;br /&gt;
| 3 &amp;lt;br&amp;gt; &lt;br /&gt;
| test&amp;lt;br&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| payphone &amp;lt;br&amp;gt; &lt;br /&gt;
| 0xf&amp;lt;br&amp;gt; &lt;br /&gt;
| CATEGORY_PAYPHONE &amp;lt;br&amp;gt; &lt;br /&gt;
| none &amp;lt;br&amp;gt; &lt;br /&gt;
| 7 &amp;lt;br&amp;gt; &lt;br /&gt;
| payphone&amp;lt;br&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| unknown &amp;lt;br&amp;gt; &lt;br /&gt;
| 0x0 &amp;lt;br&amp;gt; &lt;br /&gt;
| CATEGORY_UNKNOWN&amp;lt;br&amp;gt; &lt;br /&gt;
| 4, 11 to 15&amp;lt;br&amp;gt; &lt;br /&gt;
| 7 &amp;lt;br&amp;gt; &lt;br /&gt;
| unknown&amp;lt;br&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| unspecified &amp;lt;br&amp;gt; &lt;br /&gt;
| 0xa &amp;lt;br&amp;gt; &lt;br /&gt;
| invalid &amp;lt;br&amp;gt; &lt;br /&gt;
| none &amp;lt;br&amp;gt; &lt;br /&gt;
| none &amp;lt;br&amp;gt; &lt;br /&gt;
| invalid &amp;lt;br&amp;gt; &lt;br /&gt;
|}&lt;br /&gt;
[[CAS_R2_scripting#Category_meanings|Link to calling party categories used in CAS R2 scripts]]&lt;br /&gt;
&lt;br /&gt;
=== Screening values for Calling number, Calling Subscriber (Generic Number), and Location Number  ===&lt;br /&gt;
The text below represents the value normally used by routing script.&amp;lt;br&amp;gt;&lt;br /&gt;
Incase it's required to use a value that's not defined in the text values below, a integer can be provided and will be used &amp;quot;as-is&amp;quot; in the signaling message.&amp;lt;br&amp;gt;&lt;br /&gt;
Example numeric values for the SS7 protocol are shown in parenthesis.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;unspecified&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;no (0x0)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;pass (0x1)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;fail (0x2)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;network_provided (0x3)&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Redirecting indicator values  ===&lt;br /&gt;
&lt;br /&gt;
SS7: &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;no_redirection&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;call_rerouted&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;call_rerouted_all_restricted&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;call_diverted&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;call_diverted_all_restricted&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;call_rerouted_restricted&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;call_diverted_restricted&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;spare&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Redirecting number, Original Called Number and Diversion Reason ===&lt;br /&gt;
&lt;br /&gt;
ISDN: &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;unknown&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;busy&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;no_reply&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;deflection&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;dte_out_of_order&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;forwarding_by_called_dte&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;unconditional&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
SS7: &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;unknown&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;busy      (SIP: user-busy)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;no_reply  (SIP: no-answer)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;unconditional&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;deflection&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;deflection_immediate&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;mobile_not_reachable&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== OLI (originating line information) values  ===&lt;br /&gt;
&lt;br /&gt;
The OLI parameter is a string that represents an integer value from 0 to 255. &lt;br /&gt;
&lt;br /&gt;
=== Information Transfer Capability values  ===&lt;br /&gt;
&lt;br /&gt;
information_transfer_capability: &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;digital&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;restricted_digital&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;digital_with_tones&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;speech&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;3_1_khz_audio&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;video&amp;lt;/tt&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== redirecting_number_forward_enabled values  ===&lt;br /&gt;
&lt;br /&gt;
Controls forwarding or discarding of redirecting number (SIP: diversion header) to the outgoing call leg. &lt;br /&gt;
&lt;br /&gt;
Values for this parameter are &amp;quot;0&amp;quot;, &amp;quot;1&amp;quot;, &amp;quot;false&amp;quot; or &amp;quot;true. &lt;br /&gt;
*0/false: Redirecting number (and original called number) is not forwarded to outgoing call leg&lt;br /&gt;
*1/true: Redirecting number (and original called number) is forwarded to outgoing call leg&lt;br /&gt;
&lt;br /&gt;
The value for this parameter at the input of the routing script depends on the &amp;quot;Forward redirecting number&amp;quot; parameter in the &amp;quot;Advanced&amp;quot; section of the Gateway configuration page of the Web Portal. The script may change this value to override the Gateway configuration.&lt;br /&gt;
&lt;br /&gt;
Note: To &amp;quot;insert&amp;quot; a new redirecting number value on the outgoing leg, redirecting_number_forward_enabled must also be set to true.&lt;br /&gt;
&lt;br /&gt;
=== request_uri  ===&lt;br /&gt;
&lt;br /&gt;
Enables access to the Request-Line URI.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
For example, if the Request-Line is: &lt;br /&gt;
&amp;lt;pre&amp;gt;Request-Line: INVITE sip:4175162082@172.22.45.13:5060;user=phone;transport=udp SIP/2.0&amp;lt;/pre&amp;gt; &lt;br /&gt;
Then the retrieved request_uri will be &amp;quot;sip:4175162082@172.22.45.13:5060;user=phone;transport=udp SIP/2.0&amp;quot;. &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
In the routing scripts, to retrieve only the called number, this script can be used:&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;    if call_params[:request_uri] &amp;amp;amp;&amp;amp;amp; call_params[:request_uri] =~ /sip:(.*)@.*/&lt;br /&gt;
       call_params[:called] = $1&lt;br /&gt;
    end&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
==== request_uri_forward_enabled ====&lt;br /&gt;
&lt;br /&gt;
This call parameter controls forwarding or discarding of request uri to outgoing call leg.The request uri is the information in the &amp;quot;Request-Line:&amp;quot; of the SIP INVITE message.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Values for this parameter are &amp;quot;0&amp;quot;, &amp;quot;1&amp;quot;, &amp;quot;false&amp;quot; or &amp;quot;true. &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
* 0/false: Request uri is not forwarded to outgoing call leg &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
* 1/true: Request uri is forwarded to outgoing call leg &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The default value for this parameters is false. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== sip_scheme  ====&lt;br /&gt;
(Available in Toolpack 3.1+)&lt;br /&gt;
This call parameters indicates the scheme (generally &amp;quot;sip&amp;quot; or &amp;quot;sips&amp;quot;) of the incoming call.&lt;br /&gt;
&lt;br /&gt;
This also allows to control the scheme used for the outgoing call (regardless if request_uri_forward_enabled is used or not)&lt;br /&gt;
&lt;br /&gt;
Note: sips scheme must only be used on TLS NAPs (will cause call routing failure if NAP has only UDP or TCP transport types).&lt;br /&gt;
&lt;br /&gt;
=== sip_header values  ===&lt;br /&gt;
Contains custom sip headers from the inbound call leg. Any custom sip header can be added to an outgoing call leg:&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note:'''&lt;br /&gt;
&lt;br /&gt;
The  SIP header is in string format.&lt;br /&gt;
&lt;br /&gt;
'''string format:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;call[ :sip_header ] = &amp;quot;P-my-custom-header:value1 \nP-my-custom-header2:value2 \nP-my-custom-header3:value3&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(Note: \n above are actual newline characters, not '\' followed by 'n')&lt;br /&gt;
&lt;br /&gt;
* PCAP sample: [[File:TB_Custom_SIP_Headers.pcap]]&lt;br /&gt;
&lt;br /&gt;
List of sip headers that will not appear in call[:sip_header] since they are already processed by the SIP stack:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Accept               Error-Info             Remote-Party-ID      &lt;br /&gt;
Accept-Contact       Event                  Replaces                        &lt;br /&gt;
Accept-Encoding      Expires                Reply-To               &lt;br /&gt;
Accept-Language      From                   Request-Disposition    &lt;br /&gt;
Alert-Info           In-Reply-To            Subject          &lt;br /&gt;
Allow                Max-Forwards           Subscription-State  &lt;br /&gt;
Allow-Events         MIME-version           Supported           &lt;br /&gt;
Also                 Min-Expires            Timestamp           &lt;br /&gt;
Anonymity            Min-SE                 To             &lt;br /&gt;
Authorization        Organization           Unsupported  &lt;br /&gt;
Authentication-Info  Path                   User-Agent  &lt;br /&gt;
Call-ID              Priority               Via  &lt;br /&gt;
Call-Info            Privacy                Warning  &lt;br /&gt;
Contact              Proxy-Authenticate     WWW-Authenticate  &lt;br /&gt;
Content-Disposition  Proxy-Authorization    Require  &lt;br /&gt;
Content-Encoding     Proxy-Require          Response-Key  &lt;br /&gt;
Content-Language     P-Media-Authorization  Retry-After  &lt;br /&gt;
Content-Length       P-Preferred-Identity   RPID-Privacy  &lt;br /&gt;
Content-Type         P-Asserted-Identity    Route  &lt;br /&gt;
CSeq                 RAck                   RSeq  &lt;br /&gt;
RAck                 Reason                 Security-Client  &lt;br /&gt;
Reason               Record-Route           Security-Server  &lt;br /&gt;
Date                 Refer-To               Security-Verify&lt;br /&gt;
Diversion            *Referred-By            Server&lt;br /&gt;
Encryption           Reject-Contact         Service-Route             &lt;br /&gt;
                                            Session-Expires&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note: Since version 3.0.57, Referred-By is now a SIP custom parameter&lt;br /&gt;
&lt;br /&gt;
=== sip header parameters  ===&lt;br /&gt;
The routing script can read (and modify) some SIP header parameters (user parameters, URI parameters or header parameters) from some SIP headers (To, From, P-Asserted-Identity, Remote-Party-ID, Contact).&lt;br /&gt;
&lt;br /&gt;
==== Available parameters ====&lt;br /&gt;
* '''call[ :calling_parameters ]''' (SIP &amp;quot;From&amp;quot; header)&lt;br /&gt;
* '''call[ :called_parameters ]''' (SIP &amp;quot;To&amp;quot; header)&lt;br /&gt;
* '''call[ :private_address_parameters ]''' (SIP &amp;quot;P-Asserted-Identity&amp;quot; or &amp;quot;Remote-Party-ID&amp;quot; header)&lt;br /&gt;
* '''call[ :supp_private_address_parameters ]''' (SIP supplementary/second &amp;quot;P-Asserted-Identity&amp;quot; header)&lt;br /&gt;
* '''call[ :preferred_id_parameters ]''' (SIP &amp;quot;P-Preferred-Identity&amp;quot; header)&lt;br /&gt;
* '''call[ :contact_parameters ]''' (SIP &amp;quot;Contact&amp;quot; header)&lt;br /&gt;
&lt;br /&gt;
These parameters (if present) contain a hash with 3 keys: user_param, uri_param and header_param.&lt;br /&gt;
Each of this key points to a string that contains all the parameters found in the corresponding SIP header.&lt;br /&gt;
* '''User parameters''' (parameters between the user name/number and the host). Example  &amp;lt;sip:alice;'''param=value'''@somewhere.com&amp;gt;&lt;br /&gt;
* '''URI parameters''' (parameters at the end of the URI). Example  &amp;lt;sip:alice@somewhere.com;'''param=value'''&amp;gt;&lt;br /&gt;
* '''Header parameters''' (outside the URI). Example  &amp;lt;sip:alice@somewhere.com&amp;gt;;'''param=value'''&lt;br /&gt;
Example to print all parameters of SIP &amp;quot;To&amp;quot; header:&lt;br /&gt;
  call[ :called_parameters ].inspect -&amp;gt; '{ :user_param =&amp;gt; &amp;quot;name1=value1;name2=value2&amp;quot;, :uri_param =&amp;gt; &amp;quot;name=value&amp;quot;, :header_param =&amp;gt; &amp;quot;name=value;example_param_without_value&amp;quot; }'&lt;br /&gt;
Example to modify (replace) the URI parameters of SIP &amp;quot;To&amp;quot; header:&lt;br /&gt;
  call[ :called_parameters ][ :uri_param ] = &amp;quot;user=phone&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Exceptions ====&lt;br /&gt;
'''Note:''' Some parameters are reported as their own call attribute (oli, isub, cpc, transport) so they have the same representation for all protocols (SS7, IDSN, SIP). They won't appear present in the generic SIP header parameters structures above.&lt;br /&gt;
&lt;br /&gt;
==== Forwarding from inbound to outbound call ====&lt;br /&gt;
&lt;br /&gt;
==== Legacy behavior ====&lt;br /&gt;
(For base_routing version 1.32 or older)&lt;br /&gt;
By default, the parameters are not forwarded in a SIP to SIP call flow. The parameters '''will be forwarded''' when:&lt;br /&gt;
* accessed (read) from either the inbound or outbound call parameters&lt;br /&gt;
* written in either the inbound or outbound call parameters&lt;br /&gt;
&lt;br /&gt;
==== Current behavior ====&lt;br /&gt;
(For Toolpack 3.0.118+, with base_routing version 1.33+)&lt;br /&gt;
SIP headers host and parameters are forwarded by default.&lt;br /&gt;
&lt;br /&gt;
A route attribute &amp;quot;forward_sip_domain&amp;quot; (along with filter script &amp;quot;forward_sip_domain.rb&amp;quot;) will control, per route, if SIP headers host+parameters must be forwarded.&lt;br /&gt;
&lt;br /&gt;
==== Example usage ====&lt;br /&gt;
Example to print the user parameters:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  if call[:calling_parameters]&lt;br /&gt;
    puts &amp;quot;user parameters = #{call[:calling_parameters][:user_param].inspect}&amp;quot;&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example SIP &amp;quot;From&amp;quot; header:&lt;br /&gt;
  From:&amp;lt;sip:123456782;test1=val1;test2=val2@something.com;test3=val3;test4=val4&amp;gt;;test5=val5;test6=val6&lt;br /&gt;
And the resulting content in the routing script:&lt;br /&gt;
  call[:calling_parameters].inspect -&amp;gt; {:user_param=&amp;gt;&amp;quot;test1=val1;test2=val2&amp;quot;, :uri_param=&amp;gt;&amp;quot;test3=val3;test4=val4&amp;quot;, :header_param=&amp;gt;&amp;quot;test5=val5;test6=val6&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
Example to overwrite inbound leg calling parameters with new parameters for the outbound leg:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
call [:calling_parameters] = { &lt;br /&gt;
  :user_param =&amp;gt; &amp;quot;user_param7=7;user_param8=8&amp;quot;,&lt;br /&gt;
  :uri_param =&amp;gt; &amp;quot;uri_param9=value9&amp;quot;,&lt;br /&gt;
  :header_param =&amp;gt; &amp;quot;header_paramA=A&amp;quot; }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example to add user=phone and keep all other uri parameters.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  call[:calling_parameters] ||= {} # Create a hash if not already present&lt;br /&gt;
  call[:calling_parameters][:uri_param] ||= &amp;quot;&amp;quot; # Create a string if not already present&lt;br /&gt;
  call[:calling_parameters][:uri_param] += &amp;quot;;&amp;quot; if call[:calling_parameters][:uri_param] != &amp;quot;&amp;quot;&lt;br /&gt;
  call[:calling_parameters][:uri_param] += &amp;quot;user=phone&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MLPP Precedence values  ===&lt;br /&gt;
&lt;br /&gt;
mlpp_look_for_busy: &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;allowed&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;path_reserved&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;not_allowed&amp;lt;/tt&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
mlpp_precedence_level: &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;flash_override&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;flash&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;immediate&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;priority&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;routine&amp;lt;/tt&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
mlpp_network_identity:&lt;br /&gt;
&lt;br /&gt;
3 digits value from 0 to 999&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
mlpp_service_domain:&lt;br /&gt;
&lt;br /&gt;
24 bits value from 0 to 16777215&lt;br /&gt;
&lt;br /&gt;
=== ISUB subaddress information values  ===&lt;br /&gt;
&lt;br /&gt;
called_isub_type: &lt;br /&gt;
calling_isub_type: &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;nsap&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;nsap_ia5&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;nsap_bcd&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;user&amp;lt;/tt&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
called_isub: &lt;br /&gt;
calling_isub: &lt;br /&gt;
&lt;br /&gt;
Digits for the subaddress information.&lt;br /&gt;
&lt;br /&gt;
=== Network Identification Plan  ===&lt;br /&gt;
&lt;br /&gt;
network_identification_plan: &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;Unknown&amp;lt;/tt&amp;gt; (value 0)&lt;br /&gt;
*&amp;lt;tt&amp;gt;cic&amp;lt;/tt&amp;gt; (3 digits carrier identification code plus circuit code, value 1, SS7 or ISDN)&lt;br /&gt;
*&amp;lt;tt&amp;gt;user&amp;lt;/tt&amp;gt; (User, value 2, ISDN only)&lt;br /&gt;
*&amp;lt;tt&amp;gt;cic4&amp;lt;/tt&amp;gt; (4 digits carrier identification code plus circuit code, value 2, SS7 only) &lt;br /&gt;
*&amp;lt;tt&amp;gt;dnic&amp;lt;/tt&amp;gt; (public Data Network ID, value 3, SS7 only) &lt;br /&gt;
*&amp;lt;tt&amp;gt;mnic&amp;lt;/tt&amp;gt; (public land mobile network, value 6, SS7 only)&lt;br /&gt;
&lt;br /&gt;
=== Registered Users Information ===&lt;br /&gt;
Routing script can access information about registered users (when either the calling or called user is a known registered user).&lt;br /&gt;
When these fields are empty, it means that the calling/called (SIP from/to) does not correspond to a known registered user (routing script may still decide to route the call based on static routes).&lt;br /&gt;
&lt;br /&gt;
Information for the called user:&lt;br /&gt;
  params[:registered_user]&lt;br /&gt;
Information for the calling user:&lt;br /&gt;
  params[:calling_registered_user]&lt;br /&gt;
&lt;br /&gt;
These parameters are a hash of key/values that provide information about the contact.&lt;br /&gt;
  {&lt;br /&gt;
    :contact_list=&amp;gt;&lt;br /&gt;
    [&lt;br /&gt;
      {&lt;br /&gt;
        :contact=&amp;gt;&amp;quot;&amp;lt;sip:user_name_or_number@hostname:7070;transport=UDP&amp;gt;&amp;quot;,    -&amp;gt; Full contact&lt;br /&gt;
        :expires=&amp;gt;&amp;quot;60&amp;quot;,                   -&amp;gt; Contact expiry time (seconds)&lt;br /&gt;
        :host=&amp;gt;&amp;quot;hostname&amp;quot;,                -&amp;gt; host name from the contact header&lt;br /&gt;
        :name=&amp;gt;&amp;quot;user_name_or_number&amp;quot;,     -&amp;gt; user name from the contact header&lt;br /&gt;
        :nap_in=&amp;gt;&amp;quot;NAP_NAME&amp;quot;,              -&amp;gt; NAP that the contact has registered from&lt;br /&gt;
        :port=&amp;gt;&amp;quot;7070&amp;quot;,                    -&amp;gt; Port from the contact header&lt;br /&gt;
        :transport=&amp;gt;&amp;quot;UDP&amp;quot;                 -&amp;gt; Transport type from the contact header&lt;br /&gt;
        :q_value=&amp;gt;&amp;quot;0.00&amp;quot;,                 -&amp;gt; Q-value for the contact (for contact ordering)&lt;br /&gt;
        :src_host=&amp;gt;&amp;quot;10.0.0.10&amp;quot;,           -&amp;gt; Actual source IP address that the contact has registered from&lt;br /&gt;
        :src_port=&amp;gt;&amp;quot;7070&amp;quot;,                -&amp;gt; Actual source port that the contact has registered from&lt;br /&gt;
        :src_transport=&amp;gt;&amp;quot;UDP&amp;quot;,            -&amp;gt; Actual protocol that the contact has been registering with&lt;br /&gt;
       }&lt;br /&gt;
     ]&lt;br /&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_destination_leg_profile (called remapped_profile prior to Toolpack 2.9)&lt;br /&gt;
*remapped_source_leg_profile (called remapped_incoming_profile prior to Toolpack 2.9)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
  route[:remapped_nap]&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;
For example:&lt;br /&gt;
*priority&lt;br /&gt;
*weight&lt;br /&gt;
&lt;br /&gt;
== Routing calls toward registered users ==&lt;br /&gt;
Static routes normally chose an outbound NAP to forward the call to.&lt;br /&gt;
&lt;br /&gt;
But it's also possible to create routes which outbound NAP is dynamically chosen by matching a registered user (when using [[Sip_registration_forwarding|SIP registration forwarding]]).&lt;br /&gt;
&lt;br /&gt;
More information can be found [[Sip_registration_forwarding#SIP_Calls_routing|here]] about the way to control the [[Sip_registration_forwarding#SIP_Calls_routing|priority of &amp;quot;dynamic&amp;quot; vs &amp;quot;static&amp;quot; routes]].&lt;br /&gt;
&lt;br /&gt;
More information can be found [[#Registered_Users_Information|here]] about using routing scripts to access registered users information during call routing.&lt;br /&gt;
&lt;br /&gt;
== Playing prompts announcements or tones  ==&lt;br /&gt;
&lt;br /&gt;
New feature in release 2.6, all bridges may have these parameters. These can be used to play IVR prompts (audio files) in different states of the call flow.&lt;br /&gt;
&lt;br /&gt;
*'''announcement_tone''' (played before outgoing call is routed)&lt;br /&gt;
*'''ring_tone''' (played after when waiting for outgoing call to answer)&lt;br /&gt;
*'''busy_tone''' (played if outgoing call failed)&lt;br /&gt;
*'''disconnect_tone''' (played after the call has reached it's maximum duration)&lt;br /&gt;
&lt;br /&gt;
Example to play an announcement to incoming call (before routing outgoing call, regardless if a matching route is found or not):&lt;br /&gt;
  bridge[:announcement_tone ] = &amp;quot;my_announcement.wav&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Example to play a ring-tone while the outgoing call is ringing:&lt;br /&gt;
  bridge[:ring_tone] = &amp;quot;my_ring_tone.wav&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Example to play an audio file when outgoing call fails (no route, or outgoing call is refused):&lt;br /&gt;
  bridge[:busy_tone] = &amp;quot;my_busy_tone.wav&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Example to play an audio file when call has reached the maximum allowed duration:&lt;br /&gt;
  bridge[:disconnect_tone] = &amp;quot;your_account_balance_is_empty.wav&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Announcement file path format and options ===&lt;br /&gt;
&lt;br /&gt;
All file plabyacks (:announcement_tone,&amp;amp;nbsp;:busy_tone,&amp;amp;nbsp;:ring_tone,&amp;amp;nbsp;:disconnect_tone) inside bridge parameters use this format. &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;quot;file1.wav:repeat:start_off:end_off,file2.wav:repeat:start_off:end_off,file3.wav:repeat:start_off:end_off&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
Optional parameters:&lt;br /&gt;
* repeat: number of times to play the file (0 and 1 have the same result)&lt;br /&gt;
* start_off: Start offset in milliseconds&lt;br /&gt;
* end_off: End offset in milliseconds&lt;br /&gt;
&lt;br /&gt;
Http and other path formats are described here: [[Customer_application_framework:play_audio_files#Play_path_format|Path format]]&lt;br /&gt;
&lt;br /&gt;
==== Example 1 ====&lt;br /&gt;
The following example will play file1.wav once, and then play file2.wav in loop: &lt;br /&gt;
  &amp;quot;file1.wav,file2.wav:-1&amp;quot; &lt;br /&gt;
&lt;br /&gt;
==== Example 2 ====&lt;br /&gt;
The following example will play file1.wav from start offset of 1 second to end offset of 3 seconds, then twice file2.wav from second 5 to second 10.&lt;br /&gt;
  &amp;quot;file1.wav:0:1000:3000,file2.wav:2:5000:10000&amp;quot; &lt;br /&gt;
&lt;br /&gt;
==== Example 3 ====&lt;br /&gt;
The following example will play file1.wav once, ending at offset of 30 seconds.&lt;br /&gt;
  &amp;quot;file1.wav:0:0:30000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== announcement_tone  ===&lt;br /&gt;
&lt;br /&gt;
  params[:bridge][:announcement_tone] = &amp;quot;announcement.wav&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Audio file played on the incoming call before any outgoing call is placed. The outgoing call occurs when the file finished playing.&lt;br /&gt;
&lt;br /&gt;
==== announcement_tone options ====&lt;br /&gt;
===== announcement_tone_answer =====&lt;br /&gt;
  params[:bridge][:announcement_tone_answer] = &amp;quot;yes&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Forces an answer of the call before playing the announcement. Default if argument not provided is &amp;quot;no&amp;quot;, in which case call is only alerted with in-band media.&lt;br /&gt;
&lt;br /&gt;
===== announcement_code_detect =====&lt;br /&gt;
This option allows that the tone detection is enabled during the announcement play.&lt;br /&gt;
&lt;br /&gt;
Collected digits can be inserted into the CDR logs (radius attribute &amp;quot;Telcob-CollectedDigits&amp;quot;, or text CDR variable @{CollectedDigits}).&lt;br /&gt;
&lt;br /&gt;
Collected digits can also be sent back to routing script, which is called again with the same call attributes, except that the called number is replaced by the collected digits.&lt;br /&gt;
&lt;br /&gt;
Code detect has multiple options, as shown in the following code:&lt;br /&gt;
  code_detect = {&lt;br /&gt;
    :type                   =&amp;gt; :DTMF,   # :DTMF or :MFR1 tone detection.&lt;br /&gt;
                                        # Default is MFR1.&lt;br /&gt;
    :prefix                 =&amp;gt; &amp;quot;&amp;quot;,      # Prefix (digits) that is removed from collected digits.&lt;br /&gt;
                                        # Default is empty.&lt;br /&gt;
    :suffix                 =&amp;gt; &amp;quot;&amp;quot;,      # Suffix (digits) that is removed from collected digits&lt;br /&gt;
                                        # and causes routing script to be immediately called.&lt;br /&gt;
                                        # Default is empty.&lt;br /&gt;
    :suffix_removal         =&amp;gt; false,   # Controls the removal of the suffix from the collected digit string that's reported to routing script.&lt;br /&gt;
                                        # Default is false&lt;br /&gt;
    :timeout                =&amp;gt; 0,       # Inter-digit timeout (ms) after which collected digits are passed to the routing script.&lt;br /&gt;
                                        # Use 0 for &amp;quot;no timeout&amp;quot;.&lt;br /&gt;
                                        # Default is 1000ms&lt;br /&gt;
    :barge_in_interruption  =&amp;gt; true,    # When enabled, playing announcement is stopped as soon as first digit is collected.&lt;br /&gt;
                                        # Default is true.&lt;br /&gt;
    :proceed_on_play_done   =&amp;gt; false,   # When true:  Outgoing call is made after announcement finishes playing.&lt;br /&gt;
                                        #             Routing script is not called again.&lt;br /&gt;
                                        # When false: Outgoing call is never made.&lt;br /&gt;
                                        #             Digits are collected until timeout or suffix match,&lt;br /&gt;
                                        #             then routing script is called again.&lt;br /&gt;
                                        # Default is false.&lt;br /&gt;
    :cas_on_hook            =&amp;gt; false,   # Specific for CAS-R1 calls. Makes CAS bits switch to &amp;quot;on-hook&amp;quot; when announcement finished playing&lt;br /&gt;
                                        # (but the call is not &amp;quot;terminated&amp;quot; from Toolpack point of view)&lt;br /&gt;
                                        # Default is false.&lt;br /&gt;
    :cas_on_hook_delay      =&amp;gt; 0,       # Duration of cas bits &amp;quot;on-hook&amp;quot; state.&lt;br /&gt;
                                        # Only effective if cas_on_hook is set to true.&lt;br /&gt;
                                        # Value of 0 stands for &amp;quot;infinite delay&amp;quot;.&lt;br /&gt;
                                        # Default is 0.&lt;br /&gt;
    :repeat_delay           =&amp;gt; 0,       # Delay between repetition of the announcement. The announcement will repeat&lt;br /&gt;
                                        # itself every &amp;quot;repeat_delay&amp;quot; until a code is detected (suffix match or timetout).&lt;br /&gt;
                                        # Value of 0 stands for &amp;quot;infinite delay&amp;quot; (no repeating).&lt;br /&gt;
                                        # Default is 0.&lt;br /&gt;
  }&lt;br /&gt;
'''Example 1''': Collect DTMF digits, and call routing script again with collected digits upon timeout or suffix match.&lt;br /&gt;
  code_detect = { :type =&amp;gt; :DTMF, :suffix =&amp;gt; &amp;quot;#&amp;quot;, :timeout =&amp;gt; 5000 }&lt;br /&gt;
  params[:bridge][:announcement_code_detect] = code_detect&lt;br /&gt;
&lt;br /&gt;
'''Example 2''': Collect digits during the announcement (for CDR logs), then proceed (make outgoing call) after announcement finishes playing&lt;br /&gt;
  code_detect = { :type =&amp;gt; :DTMF, :timeout =&amp;gt; 0, :barge_in_interruption =&amp;gt; false, :proceed_on_play_done =&amp;gt; true }&lt;br /&gt;
  params[:bridge][:announcement_code_detect] = code_detect&lt;br /&gt;
&lt;br /&gt;
==== Controlling what happens after announcement ====&lt;br /&gt;
The routing script can control what happens with the call after the announcement finishes playing:&lt;br /&gt;
* An outgoing call is made&lt;br /&gt;
* Incoming call is hung-up&lt;br /&gt;
* Do nothing (wait for the incoming call to hang-up)&lt;br /&gt;
===== An outgoing call is made =====&lt;br /&gt;
This happens when the script has returned matching routes (and did not raise RoutingException)&lt;br /&gt;
&lt;br /&gt;
===== Incoming call is hung-up =====&lt;br /&gt;
This happens when the script returns no routes (in which case base_routing will raise RoutingException with cause :no_route).&lt;br /&gt;
&lt;br /&gt;
It also happens when the script explicitly raises RoutingException.&lt;br /&gt;
&lt;br /&gt;
The incoming call will be terminated with the specified cause.&lt;br /&gt;
For example&lt;br /&gt;
    raise RoutingException, :temporary_failure&lt;br /&gt;
(See &amp;quot;Reason values&amp;quot; section in this page for list of available causes)&lt;br /&gt;
&lt;br /&gt;
===== Do nothing (wait for the incoming call to hang-up) =====&lt;br /&gt;
If a filter raises RoutingException with code :ok, then the incoming call will not be terminated at the end of the announcement play.&lt;br /&gt;
Announcement digit collection will remain active if appropriate.&lt;br /&gt;
For example:&lt;br /&gt;
    raise RoutingException, :ok&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== ring_tone  ===&lt;br /&gt;
  params[:bridge][:ring_tone] = &amp;quot;ringing.wav&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Audio file played on the incoming call while waiting for the outgoing call to be answered.&lt;br /&gt;
&lt;br /&gt;
Ring tone playback can also be configured in the Web Portal, from the incoming call's profile (under &amp;quot;Tones and Call Progress Options&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Routing script has precedence over profile (a routing script that fills params[:bridge][:ring_tone] will override the profile's ring tone behavior).&lt;br /&gt;
&lt;br /&gt;
==== ring_tone options ====&lt;br /&gt;
===== ring_tone_state =====&lt;br /&gt;
  params[:bridge][:ring_tone_state] = :alerted&lt;br /&gt;
&lt;br /&gt;
Call state from which ring tone is being played. Available values are:&lt;br /&gt;
* '''immediately''':  Ring tone starts playing immediately on the incoming leg&lt;br /&gt;
* '''accepted''':     Ring tone starts playing as soon as outgoing call is accepted&lt;br /&gt;
* '''callprogress''': Ring tone starts playing as soon as &amp;quot;call progress&amp;quot; is received on the outgoing call&lt;br /&gt;
* '''alerted''' (default):      Ring tone starts playing only once outgoing call is alerted (but won't play if alert indicates early media from outgoing call)&lt;br /&gt;
&lt;br /&gt;
This option also apply when params[:bridge][:ring_tone] is not used, because it also apply to ring tone playback configured in the Web Portal, from the incoming call's profile.&lt;br /&gt;
&lt;br /&gt;
=== busy_tone  ===&lt;br /&gt;
  Toolpack 2.8 and above:&lt;br /&gt;
    params[:bridge][:busy_tone] = &amp;quot;no_route.wav&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  Note: Obsolete name (toolpack 2.7.153 and earlier, but still supported in recent releases):&lt;br /&gt;
    params[:bridge][:call_progress_tone] = &amp;quot;no_route.wav&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Audio file played on the incoming call when outgoing call fails (never answered).&lt;br /&gt;
&lt;br /&gt;
Note that announcement_tone, if used, is played before the outgoing call attempt is made, and thus before the busy_tone.&lt;br /&gt;
&lt;br /&gt;
Busy tone playback can also be configured in the Web Portal, from the incoming call's profile (under &amp;quot;Tones and Call Progress Options&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Routing script has precedence over profile (a routing script that fills params[:bridge][:busy_tone] will override the profile's busy tone behavior).&lt;br /&gt;
&lt;br /&gt;
Special value '''&amp;quot;none&amp;quot;''' can be used by routing script to force playing nothing (as empty string would default to profile's behavior)&lt;br /&gt;
&lt;br /&gt;
==== busy_tone options ====&lt;br /&gt;
===== busy_tone_answer =====&lt;br /&gt;
  params[:bridge][:busy_tone_answer] = &amp;quot;yes&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Forces an answer of the call before playing the busy tone. Default if argument not provided is &amp;quot;no&amp;quot;, in which case call is only alerted with in-band media.&lt;br /&gt;
&lt;br /&gt;
=== disconnect_tone  ===&lt;br /&gt;
  params[:bridge][:disconnect_tone] = &amp;quot;max_duration.wav&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Audio file played on the incoming call when call duration (:max_call_duration) is reached. Then the leg will be terminated with specified reason (:call_duration_reason).&lt;br /&gt;
&lt;br /&gt;
==== disconnect_tone options ====&lt;br /&gt;
===== max_call_duration  =====&lt;br /&gt;
  params[:bridge][:max_call_duration] = &amp;quot;60000&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Maximum call duration in millisecond. This timer is started when entering answer state.&lt;br /&gt;
&lt;br /&gt;
===== call_duration_reason  =====&lt;br /&gt;
  params[:bridge][:call_duration_reason] =&amp;amp;nbsp;:resource_unavailable &lt;br /&gt;
&lt;br /&gt;
Drop both legs with this reason when call duration (:max_call_duration) is reached.&lt;br /&gt;
&lt;br /&gt;
=== Managing audio prompts through Web Portal ===&lt;br /&gt;
Audio prompts can be uploaded or deleted from the TMedia unit through the Web Portal:&lt;br /&gt;
[[Toolpack:Configuring_Audio_Prompts_A|Managing audio prompts]]&lt;br /&gt;
&lt;br /&gt;
Prompts management must be done using the Web Portal of the primary server (in systems with redundant TMedia units or redundant host servers).&lt;br /&gt;
The file will automatically get replicated to the secondary server.&lt;br /&gt;
&lt;br /&gt;
=== Managing audio prompts manually ===&lt;br /&gt;
Any file on the TMedia host file system can be played. This means it's possible to manage prompts through ssh/scp.&lt;br /&gt;
&lt;br /&gt;
==== The default (replicated) prompts folder ====&lt;br /&gt;
By default, when playing a prompt, Toolpack will look in the default prompts folder:&lt;br /&gt;
 /lib/tb/toolpack/pkg/prompts&lt;br /&gt;
The root of this &amp;quot;prompts&amp;quot; directory is automatically replicated to secondary unit of redundant setups (1+1, N+1, redundant hosts). Sub-folders won't be replicated.&lt;br /&gt;
&lt;br /&gt;
Any prompt play request without explicit file path will map to this folder. For example:&lt;br /&gt;
  params[:bridge][:busy_tone] = &amp;quot;no_route.wav&amp;quot; &lt;br /&gt;
This will correspond to file /lib/tb/toolpack/pkg/prompts/no_route.wav&lt;br /&gt;
&lt;br /&gt;
==== Relative file paths ====&lt;br /&gt;
Any file path that begins with &amp;quot;file://&amp;quot; is considered relative to the tbstreamserver application's working directory:&lt;br /&gt;
 /lib/tb/toolpack/setup/12358/2.8/apps/tbstreamserver/&lt;br /&gt;
(Where &amp;quot;2.8&amp;quot; may be replaced by the current major version of your system)&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
  params[:bridge][:busy_tone] = &amp;quot;file://my_folder/no_route.wav&amp;quot; &lt;br /&gt;
This will correspond to file /lib/tb/toolpack/setup/12358/2.8/apps/tbstreamserver/my_folder/no_route.wav&lt;br /&gt;
&lt;br /&gt;
==== Absolute file paths ====&lt;br /&gt;
Absolute paths can also be provided.&lt;br /&gt;
For example:&lt;br /&gt;
  params[:bridge][:busy_tone] = &amp;quot;file:///root/my_folder/no_route.wav&amp;quot; &lt;br /&gt;
This will correspond to file /root/my_folder/no_route.wav&lt;br /&gt;
&lt;br /&gt;
== Recording call legs  ==&lt;br /&gt;
Introduced in release 2.6.44, it's now possible to use routing scripts to ask for recording incoming and/or outgoing call legs.&lt;br /&gt;
&lt;br /&gt;
See example filter script &amp;quot;call_recording&amp;quot; (created by default in Web Portal routing scripts starting with 2.6.44) for an example.&lt;br /&gt;
&lt;br /&gt;
=== Recording the incoming call leg  ===&lt;br /&gt;
To record the incoming call leg, the routing script (in a &amp;quot;after filter&amp;quot; for example) has to set the following parameter:&lt;br /&gt;
&lt;br /&gt;
  bridge[ :record_incoming ]  = &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Recording the outgoing call leg  ===&lt;br /&gt;
To record the outgoing call leg, the routing script (in a &amp;quot;after filter&amp;quot; for example) has to set the following parameter, per route (the decision to record or not, or the file name to record to, can be set per matching route):&lt;br /&gt;
&lt;br /&gt;
  # Need to clone the routes in order to have the right to modify them&lt;br /&gt;
  routes = clone_routes params[:routes]&lt;br /&gt;
  routes.each do |route|&lt;br /&gt;
    route[ :record_outgoing ]  = &amp;quot;&amp;quot;&lt;br /&gt;
  end&lt;br /&gt;
  # Store modified routes back to the parameters for this outgoing call&lt;br /&gt;
  params[:routes] = routes&lt;br /&gt;
&lt;br /&gt;
=== Record the outgoing call leg within incoming leg's recorded file (mixing)  ===&lt;br /&gt;
  [...]&lt;br /&gt;
    route[ :record_outgoing ]  = &amp;quot;@{MixWithIncoming}&amp;quot;&lt;br /&gt;
  [...]&lt;br /&gt;
&lt;br /&gt;
=== Choosing file path to record to  ===&lt;br /&gt;
The value assigned to &amp;quot;:record_incoming&amp;quot; or &amp;quot;:record_outgoing&amp;quot; is the path to record the file to.&lt;br /&gt;
&lt;br /&gt;
The paths can be absolute, or relative. When relative, they are relative to the &amp;quot;tbstreamserver&amp;quot; application working directory, for example:&lt;br /&gt;
  /lib/tb/toolpack/setup/12358/2.7/apps/tbstreamserver/&lt;br /&gt;
&lt;br /&gt;
* Empty file name will default to a name that contains various information about the call:&lt;br /&gt;
** ''LinkId'':     Id common between all legs of this call bridge&lt;br /&gt;
** ''LegId'':      Unique Id for this leg&lt;br /&gt;
** ''Nap'':        Current NAP name this call leg is from&lt;br /&gt;
** ''Direction'':  &amp;quot;IN&amp;quot; or &amp;quot;OUT&amp;quot; (depends if call leg is incoming or outgoing leg)&lt;br /&gt;
** ''Calling'':    The calling number of this call leg&lt;br /&gt;
** ''Called'':     The called number of this call leg&lt;br /&gt;
** ''Protocol'':   The signaling protocol of this call leg (SS7, ISDN, CAS, SIP)&lt;br /&gt;
** ''Media info'': Codec + IP/Port for SIP calls, Trunk/Timeslot for TDM calls&lt;br /&gt;
* To record outgoing call leg in the same audio file as incoming call leg (mixing), use the following:&lt;br /&gt;
** @{MixWithIncoming}: Record outgoing legs in same file as incoming legs&lt;br /&gt;
* Variables can be used to insert in the recording path information that's not already available from routing scripts:&lt;br /&gt;
** @{CURRENT_PKG}: Version of current package&lt;br /&gt;
*** Example: 2.6.45&lt;br /&gt;
** @{DATE format}: Prints the date, where 'format' is expressed as described for the 'strftime' function&lt;br /&gt;
*** Example: @{DATE %Y-%m-%d} =&amp;gt; 2013-01-28&lt;br /&gt;
** @{DefaultName}: Replaced by the default file name for recording, which contains:&lt;br /&gt;
*** LinkId:     Id common between all legs of this call bridge&lt;br /&gt;
*** LegId:      Unique Id for this leg&lt;br /&gt;
*** Nap:        Current NAP name this call leg is from&lt;br /&gt;
*** Direction:  &amp;quot;IN&amp;quot; or &amp;quot;OUT&amp;quot; (depends if call leg is incoming or outgoing leg)&lt;br /&gt;
*** Calling:    Calling number&lt;br /&gt;
*** Called:     Called number&lt;br /&gt;
*** Protocol:   Protocol type of this call (SS7, ISDN, CASR2, SIP)&lt;br /&gt;
*** Media info: Codec + IP/Port for SIP calls, Trunk/Timeslot for TDM calls&lt;br /&gt;
*** Example: &amp;quot;73EBA698-F3D67B4B-NAP_SS7-IN-5550000-5550001-SS7-TRUNK_BELL_11-24.wav&amp;quot;&lt;br /&gt;
*** Example: &amp;quot;73EBA698-73EBA698-NAP_SIP-OUT-5550000-5550001-SIP-G723-10.3.10.101-1050.wav&amp;quot;&lt;br /&gt;
** @{DefaultPath}:  Default recording folder and file name: &amp;quot;@{RECORD_PATH}/@{DATE %Y-%m-%d}/@{DefaultName}&amp;quot;&lt;br /&gt;
*** Example: &amp;quot;/lib/tb/toolpack/setup/12358/recorded_calls/73EBA698-F3D67B4B-NAP_SS7-IN-5550000-5550001-SS7-TRUNK_BELL_11-24.wav&amp;quot;&lt;br /&gt;
*** Example: &amp;quot;/lib/tb/toolpack/setup/12358/recorded_calls/73EBA698-73EBA698-NAP_SIP-OUT-5550000-5550001-SIP-G723-10.3.10.101-1050.wav&amp;quot;&lt;br /&gt;
** @{Direction}: Direction of current leg (IN our OUT)&lt;br /&gt;
*** Example: IN&lt;br /&gt;
** @{LegId}: Current LegId (Unique Id for this leg)&lt;br /&gt;
*** Example: F3D67B4B&lt;br /&gt;
** @{LinkId}: Current LinkId (Id common between all legs of this call bridge)&lt;br /&gt;
*** Example: 73EBA698&lt;br /&gt;
** @{PKG_HOME}: Path where packages are stored.&lt;br /&gt;
*** Note: It's not recomended to use that path on redundant systems, package file replication may cause confusion in recorded files.&lt;br /&gt;
*** Example: /lib/tb/toolpack/pkg&lt;br /&gt;
** @{PROMPT_PATH}: Default path where audio prompts are stored&lt;br /&gt;
*** Note: It's not recomended to use that path on redundant systems, package file replication may cause confusion in recorded files.&lt;br /&gt;
*** Example: /lib/tb/toolpack/pkg/prompts&lt;br /&gt;
** @{Protocol}: Protocol of current leg&lt;br /&gt;
*** Example: SS7&lt;br /&gt;
** @{RECORD_PATH}: Default recording folder: &amp;quot;@{TB_SETUP_HOME}/recorded_calls/&amp;quot;&lt;br /&gt;
** @{TBX_GW_PORT}: Current &amp;quot;System Id&amp;quot; (also called &amp;quot;Gateway Port&amp;quot;)&lt;br /&gt;
*** Example: 12358&lt;br /&gt;
** And all variables listed here: [[Customer_application_framework:play_audio_files#Helpful_variables_to_build_play_or_record_file_paths|Building play or record file path]]&lt;br /&gt;
&lt;br /&gt;
== Controlling UUI (user-to-user information) relay  ==&lt;br /&gt;
UUI (user-to-user information) can be present in different messages received by either call leg during a call. For example, information can be carried during the initial invite, other information can be carried when the call is alerted, answered, or terminated.&lt;br /&gt;
&lt;br /&gt;
Routing scripts can control if the UUI received from one leg through the call will be forwarded to the other call leg:&lt;br /&gt;
*uui_forward_enabled&lt;br /&gt;
&lt;br /&gt;
Routing scripts can also read and modify the UUI received with the incoming call leg, before it gets forwarded upon creation of the outgoing call leg:&lt;br /&gt;
*uui &lt;br /&gt;
&lt;br /&gt;
=== UUI (user-to-user indication) values  ===&lt;br /&gt;
&lt;br /&gt;
Byte array represented as ruby String. Use ''bridge=params[:bridge]'', then ''bridge[:uui]'' to access the data.&lt;br /&gt;
&lt;br /&gt;
To access the bytes in Ruby, use ruby String operator []. For example:  bridge[:uui][0] will return the binary value of the first UUI byte.&lt;br /&gt;
&lt;br /&gt;
Function each_byte can also be useful to iterate through all bytes of the UUI.&lt;br /&gt;
&lt;br /&gt;
=== uui_forward_enabled values  ===&lt;br /&gt;
&lt;br /&gt;
Controls forwarding or discarding of UUI to outgoing call leg. &lt;br /&gt;
&lt;br /&gt;
Values for this parameter are &amp;quot;0&amp;quot;, &amp;quot;1&amp;quot;, &amp;quot;false&amp;quot; or &amp;quot;true.&lt;br /&gt;
* 0/false: UUI is not forwarded between call legs&lt;br /&gt;
* 1/true: UUI is forwarded between call legs&lt;br /&gt;
&lt;br /&gt;
The value for this parameter at input of routing script depends on the &amp;quot;Forward UUI&amp;quot; parameter in the &amp;quot;Advanced&amp;quot; section of the Gateway configuration page of the Web Portal. The script may change this value to override the Gateway configuration.&lt;br /&gt;
&lt;br /&gt;
== Authorization ==&lt;br /&gt;
Starting with release 2.7, it is possible to issue RADIUS authorization requests from routing scripts. To do so, the params[:authorization] object must be filled with the required RADIUS attributes and [[#Refuse|an exception must be raised]] with reason :authorization_required.&lt;br /&gt;
&lt;br /&gt;
When the authorization is completed, the routing script is called again with the result. The params[:authorization] object will be filled with the RADIUS attributes from the response. The params[:authorization][:result] field will also contain a string indicating the result of the authorization:&lt;br /&gt;
&lt;br /&gt;
* ''accept'': The authorization was successful.&lt;br /&gt;
* ''reject'': The authorization was refused.&lt;br /&gt;
* ''challenge'': The authorization was challenged.&lt;br /&gt;
* ''timeout'': The authorization was not answered.&lt;br /&gt;
&lt;br /&gt;
== ENUM Query ==&lt;br /&gt;
Starting with release 3.1, it is possible to issue ENUM Query requests to DNS servers from routing scripts. To do so, the params[:enum_query] object must be filled with the required ENUM Query attributes params[:enum_query][:fqdn] and [[#Refuse|an exception must be raised]] with reason :enum_query_required.&lt;br /&gt;
&lt;br /&gt;
When ENUM Query completes, the routing script is called again with the result. The params[:enum_query] object will be filled with the ENUM Query attributes from the response. The params[:enum_query][:result] field will also contain a string indicating the result of the ENUM Query:&lt;br /&gt;
&lt;br /&gt;
* ''ok'': The ENUM Query was successful.&lt;br /&gt;
* ''timeout'': The ENUM Query was not answered.&lt;br /&gt;
&lt;br /&gt;
The params[:enum_query][:responses_list] field will contain a list of hash responses for each NAPTR records. &lt;br /&gt;
&lt;br /&gt;
NAPTR records contain:&lt;br /&gt;
* '':uri''&lt;br /&gt;
* '':order''&lt;br /&gt;
* '':preference''&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  params[:enum_query][:responses_list]&lt;br /&gt;
    [{:order=&amp;gt;&amp;quot;200&amp;quot;, :preference=&amp;gt;&amp;quot;10&amp;quot;, :uri=&amp;gt;&amp;quot;!^03111.*$!sip:123456782@example-2.com!&amp;quot;}, &lt;br /&gt;
     {:order=&amp;gt;&amp;quot;100&amp;quot;, :preference=&amp;gt;&amp;quot;1&amp;quot;, :uri=&amp;gt;&amp;quot;!^03222.*$!sip:123456782@example-3.com!&amp;quot;}, &lt;br /&gt;
     {:order=&amp;gt;&amp;quot;200&amp;quot;, :preference=&amp;gt;&amp;quot;1&amp;quot;, :uri=&amp;gt;&amp;quot;!^03111.*$!sip:123456782@example-1.com!&amp;quot;}]&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Using enum_called_remap.rb before filter script allows handling of ENUM query requests/responses. The match and replace regular expression from ENUM query responses are applied to params[:call][:called] to get &amp;quot;new called&amp;quot;. This script allows update of the call parameters according to &amp;quot;new called&amp;quot; value. Refer to enum_called_remap.rb before filter script to get instructions on how to integrate this script into the main routing script (i.e. simple_routing_sbc.rb):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  ...&lt;br /&gt;
  require 'enum_called_remap' unless defined?(EnumCalledRemap)&lt;br /&gt;
  ...&lt;br /&gt;
  include EnumCalledRemap&lt;br /&gt;
  ...&lt;br /&gt;
  before_filter :method =&amp;gt; :enum_called_remap&lt;br /&gt;
  ...&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Resolve ENUM Query down to type A records ===&lt;br /&gt;
&lt;br /&gt;
The ENUM query could also resolve uri from responses and get matching outgoing NAP, NAP proxy IP and port through a sequence of DNS queries (i.e. NAPTR, SRV down to type A records). This behavior could be requested using &amp;quot;dns_query&amp;quot; parameter:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  params[:enum_query][:dns_query] = true&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When ENUM and DNS Queries complete, the routing script is called again with the results. The params[:enum_query] and params[:dns_query] objects will be filled with the ENUM Query and the DNS Query attributes from the responses. The DNS query responses are available through params[:dns_query][:responses_list] call parameters:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  params[:dns_query][:responses_list]&lt;br /&gt;
    [{:nap=&amp;gt;&amp;quot;NAP_UDP&amp;quot;, :nap_proxy_ip=&amp;gt;&amp;quot;10.3.14.191&amp;quot;, :nap_proxy_port=&amp;gt;&amp;quot;8080&amp;quot;, :transport=&amp;gt;&amp;quot;UDP&amp;quot;, :order=&amp;gt;&amp;quot;100&amp;quot;,&lt;br /&gt;
      :preference=&amp;gt;&amp;quot;1&amp;quot;, :priority=&amp;gt;&amp;quot;0&amp;quot;, :weight=&amp;gt;&amp;quot;5&amp;quot;},&lt;br /&gt;
     {:nap=&amp;gt;&amp;quot;NAP_TCP&amp;quot;, :nap_proxy_ip=&amp;gt;&amp;quot;10.3.14.192&amp;quot;, :nap_proxy_port=&amp;gt;&amp;quot;8081&amp;quot;, :transport=&amp;gt;&amp;quot;TCP&amp;quot;, :order=&amp;gt;&amp;quot;100&amp;quot;,&lt;br /&gt;
      :preference=&amp;gt;&amp;quot;2&amp;quot;, :priority=&amp;gt;&amp;quot;1&amp;quot;, :weight=&amp;gt;&amp;quot;10&amp;quot;}]&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Add dynamic routes ===&lt;br /&gt;
&lt;br /&gt;
The ENUM query could also add dynamic routes base on DNS query responses. This could be requested using the &amp;quot;add_dynamic_routes&amp;quot; call parameter:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  params[:enum_query][:dns_query] = true&lt;br /&gt;
  params[:enum_query][:add_dynamic_routes] = true&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that it is mandatary to send DNS query to add dynamic routes.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;base_routing.rb&amp;quot; script version should be greater then 1.37 in order to allow dynamic routes creation base on DNS query responses.&lt;br /&gt;
&lt;br /&gt;
When requesting to add_dynamic_routes, the dns_query responses are used to create routes. Make sure that your configuration includes a route with remapped_nap = &amp;quot;Registered or DNS users&amp;quot;. A route will be created for each DNS query responses. The routes &amp;quot;remapped_nap&amp;quot; takes NAP value from DNS query responses.&lt;br /&gt;
&lt;br /&gt;
It is required to modify main routing script (i.e. simple_routing_sbc.rb) to forward IP/port values from params[:routes] to params[:call] like we are doing for NAP. See following example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  ...&lt;br /&gt;
  # This will select the outgoing NAP for this call according to the &amp;quot;remapped_nap&amp;quot; route parameter&lt;br /&gt;
  route_remap :call_field_name =&amp;gt; :nap, :route_field_name =&amp;gt; :remapped_nap&lt;br /&gt;
  &lt;br /&gt;
  # This will select the outgoing NAP proxy ip address for this call according to the &amp;quot;remapped_nap_proxy_ip&amp;quot; route parameter&lt;br /&gt;
  route_remap :call_field_name =&amp;gt; :nap_proxy_ip, :route_field_name =&amp;gt; :remapped_nap_proxy_ip&lt;br /&gt;
  &lt;br /&gt;
  # This will select the outgoing NAP proxy port for this call according to the &amp;quot;remapped_nap_proxy_port&amp;quot; route parameter&lt;br /&gt;
  route_remap :call_field_name =&amp;gt; :nap_proxy_port, :route_field_name =&amp;gt; :remapped_nap_proxy_port&lt;br /&gt;
  ...&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DNS Query ==&lt;br /&gt;
Similarly to ENUM query, starting with release 3.1, it is possible to issue DNS Query requests to DNS servers from routing scripts. This could be used to skip the ENUM Query part when the called uri is already known but still need to get the matching outgoing NAP, NAP proxy IP and port. To do so, the params[:dns_query] object must be filled with the required DNS Query attributes params[:dns_query][:fqdn] and [[#Refuse|an exception must be raised]] with reason :dns_query_required.&lt;br /&gt;
&lt;br /&gt;
When DNS Query completes, the routing script is called again with the result. The params[:dns_query] object will be filled with the DNS Query attributes from the responses. The DNS query responses are available through params[:dns_query][:responses_list] call parameters:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  params[:dns_query][:responses_list]&lt;br /&gt;
    [{:nap=&amp;gt;&amp;quot;NAP_UDP&amp;quot;, :nap_proxy_ip=&amp;gt;&amp;quot;10.3.14.191&amp;quot;, :nap_proxy_port=&amp;gt;&amp;quot;8080&amp;quot;, :transport=&amp;gt;&amp;quot;UDP&amp;quot;, :order=&amp;gt;&amp;quot;100&amp;quot;,&lt;br /&gt;
      :preference=&amp;gt;&amp;quot;1&amp;quot;, :priority=&amp;gt;&amp;quot;0&amp;quot;, :weight=&amp;gt;&amp;quot;5&amp;quot;},&lt;br /&gt;
     {:nap=&amp;gt;&amp;quot;NAP_TCP&amp;quot;, :nap_proxy_ip=&amp;gt;&amp;quot;10.3.14.192&amp;quot;, :nap_proxy_port=&amp;gt;&amp;quot;8081&amp;quot;, :transport=&amp;gt;&amp;quot;TCP&amp;quot;, :order=&amp;gt;&amp;quot;100&amp;quot;,&lt;br /&gt;
      :preference=&amp;gt;&amp;quot;2&amp;quot;, :priority=&amp;gt;&amp;quot;1&amp;quot;, :weight=&amp;gt;&amp;quot;10&amp;quot;}]&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Add dynamic routes ===&lt;br /&gt;
&lt;br /&gt;
Similarly to ENUM Query, the DNS query could also create dynamic routes base on DNS query responses. This could be requested using the &amp;quot;add_dynamic_routes&amp;quot; call parameter:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  params[:dns_query][:add_dynamic_routes] = true&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;base_routing.rb&amp;quot; script version should be greater then 1.37 in order to allow dynamic routes creation base on DNS query responses.&lt;br /&gt;
&lt;br /&gt;
When requesting to add_dynamic_routes, the dns_query responses are used to create routes. Make sure that your configuration include a route with remapped_nap = &amp;quot;Registered or DNS users&amp;quot;. A route will be created for each DNS query responses. The routes &amp;quot;remapped_nap&amp;quot; takes NAP value from DNS query responses.&lt;br /&gt;
&lt;br /&gt;
It is required to modify main routing script (i.e. simple_routing_sbc.rb) to forward IP/port values from params[:routes] to params[:call] like we are doing for NAP. See following example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  ...&lt;br /&gt;
  # This will select the outgoing NAP for this call according to the &amp;quot;remapped_nap&amp;quot; route parameter&lt;br /&gt;
  route_remap :call_field_name =&amp;gt; :nap, :route_field_name =&amp;gt; :remapped_nap&lt;br /&gt;
  &lt;br /&gt;
  # This will select the outgoing NAP proxy ip address for this call according to the &amp;quot;remapped_nap_proxy_ip&amp;quot; route parameter&lt;br /&gt;
  route_remap :call_field_name =&amp;gt; :nap_proxy_ip, :route_field_name =&amp;gt; :remapped_nap_proxy_ip&lt;br /&gt;
  &lt;br /&gt;
  # This will select the outgoing NAP proxy port for this call according to the &amp;quot;remapped_nap_proxy_port&amp;quot; route parameter&lt;br /&gt;
  route_remap :call_field_name =&amp;gt; :nap_proxy_port, :route_field_name =&amp;gt; :remapped_nap_proxy_port&lt;br /&gt;
  ...&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Call diversion options ==&lt;br /&gt;
It's possible to control the call flow when a call diversion information is received in the alerting state.&lt;br /&gt;
&lt;br /&gt;
Two fields are available: bridge[ :diversion ] and bridge[ :diversion_reason ]&lt;br /&gt;
&lt;br /&gt;
The internal release cause TOOLPACK_DIVERT_NOT_ALLOWED is used by gateway application to terminate both legs.&lt;br /&gt;
&lt;br /&gt;
  bridge[ :diversion ] = :allowed&lt;br /&gt;
The alert message will not be analyzed and the call will be progressed. Default behavior.&lt;br /&gt;
  bridge[ :diversion ] = :not_allowed&lt;br /&gt;
If the alert message indicates that the call is diverted, the call will be released no matter the In-band information to allow&lt;br /&gt;
early media.&lt;br /&gt;
  bridge[ :diversion ] = :not_allowed_w_early_media&lt;br /&gt;
The call will be released If the alert message indicates that the call is diverted with in-band information to allow early media.&lt;br /&gt;
  bridge[ :diversion_reason ] = &amp;quot;*&amp;quot;&lt;br /&gt;
If the diversion is not allowed, the gateway will drop the call for any redirecting reason. &lt;br /&gt;
  bridge[ :diversion_reason ] = &amp;quot;0,1,2&amp;quot;&lt;br /&gt;
or&lt;br /&gt;
  bridge[ :diversion_reason ] = &amp;quot;unknown,busy,no_reply&amp;quot;&lt;br /&gt;
If the diversion is not allowed, the redirecting reason will be analyzed and the call will only be dropped for the configured cases.&lt;br /&gt;
&lt;br /&gt;
See section [[Routing_script_tutorial:Mini_Development_Guide#Redirecting_number,_Original_Called_Number_and_Diversion_Reason|Redirecting number reason values]].&lt;br /&gt;
&lt;br /&gt;
== Call transfer requests ==&lt;br /&gt;
Toolpack allows that [[Call transfer]] requests are relayed from one leg to the other, or to process them locally (making another outgoing call to replace the call that requested the call transfer).&lt;br /&gt;
&lt;br /&gt;
If the chosen [[Call transfer]] mode is to process requests locally, upon reception of a call transfer request (SIP REFER or ISDN Facility), routing script will be called once again, to select the routes for the new outgoing call (call transfer target).&lt;br /&gt;
&lt;br /&gt;
=== How to route call transfer request ===&lt;br /&gt;
Routing of a call transfer request is done exactly like routing of a normal incoming call.&lt;br /&gt;
The routing script generally does not need any modification to support that.&lt;br /&gt;
&lt;br /&gt;
In some cases, the routing script may want to use information related to the transfer request to perform routing, or to insert information in the outgoing call leg.&lt;br /&gt;
Additional information is provided to the routing script, allowing routing decisions using information from the call transfer request (SIP REFER or ISDN Facility).&lt;br /&gt;
See below...&lt;br /&gt;
&lt;br /&gt;
=== params[ :call ] content during transfer request ===&lt;br /&gt;
When processing a call transfer request, the params[ :call ] hash contains the information from the inbound call (same as was passed to the routing script upon arrival of the inbound call)&lt;br /&gt;
 call = params[ :call ]          -&amp;gt; Information from original inbound call, with exception of call[ :called ]&lt;br /&gt;
&lt;br /&gt;
One exception (convenient because it allows a unmodified routing script to process call transfer request the same way as any other routing request):&lt;br /&gt;
 call[ :called ]                 -&amp;gt; Replaced by the called number from the call transfer request (also called &amp;quot;redirection number&amp;quot;)&lt;br /&gt;
Complementary information:&lt;br /&gt;
 call[ :original_called_number ] -&amp;gt; Contains the called number that was initially received from the incoming call, prior to call transfer request&lt;br /&gt;
 call[ :redirecting_number ]     -&amp;gt; Number of the call from which the call transfer request was received (generally equals to original_called_number)&lt;br /&gt;
&lt;br /&gt;
These fields will also be included in the outgoing call made after routing:&lt;br /&gt;
* original called number and redirecting number are existing fields on SS7 and ISDN calls&lt;br /&gt;
* SIP &amp;quot;diversion&amp;quot; header is used for SIP calls&lt;br /&gt;
&lt;br /&gt;
=== params[ :transfer ] content ===&lt;br /&gt;
(this if valid only for release 2.7.102 and above)&amp;lt;br&amp;gt;&lt;br /&gt;
When processing a call transfer request, information from the call transfer request message (SIP REFER, ISDN Facility) is provided in params[ :transfer ]:&lt;br /&gt;
  transfer = params[ :transfer ]&lt;br /&gt;
The following field is always present:&lt;br /&gt;
  transfer[ :original_nap ]      -&amp;gt; Contains the NAP of the first call from which a call transfer request was received&lt;br /&gt;
  transfer[ :redirecting_nap ]   -&amp;gt; Contains the NAP of the call from which the current call transfer request was received&lt;br /&gt;
                                    (same as :original_nap for the first call transfer, different for subsequent transfers)&lt;br /&gt;
Examples of other fields that may be present, when appropriate:&lt;br /&gt;
  transfer[ :uui ]               -&amp;gt; The UUI (user-to-user information) found in the call transfer request&lt;br /&gt;
  transfer[ :sip_header ]        -&amp;gt; Contains custom SIP headers from the call transfer request&lt;br /&gt;
  transfer[ :request_uri ]       -&amp;gt; Contains the SIP Request URI&lt;br /&gt;
&lt;br /&gt;
These fields are 'read-only'. They will not be included in the outgoing call, as they represent the contents of the call transfer request, and not the outgoing call to be made.&lt;br /&gt;
&lt;br /&gt;
To insert/modify attributes of the outgoing call, the parameters from params[ :call ] must be edited instead.&lt;br /&gt;
&lt;br /&gt;
== Redirection ==&lt;br /&gt;
In release 2.8 and above, redirection contacts are obtained from the routing engine in the following format:&lt;br /&gt;
&lt;br /&gt;
  contacts = params[ :contacts ]&lt;br /&gt;
  contacts = {&lt;br /&gt;
      :index=&amp;gt;&amp;quot;3&amp;quot;,&lt;br /&gt;
      :list=&amp;gt;[&lt;br /&gt;
         {:called_number=&amp;gt;&amp;quot;6660&amp;quot;, :priority=&amp;gt;&amp;quot;1000&amp;quot;, :is_number_ported=&amp;gt;&amp;quot;0&amp;quot;, :sip_uri=&amp;gt;&amp;quot;&amp;quot;, :raw_data=&amp;gt;&amp;quot;&amp;quot;, :expiration=&amp;gt;&amp;quot;3600&amp;quot;},&lt;br /&gt;
         {:called_number=&amp;gt;&amp;quot;6661&amp;quot;, :priority=&amp;gt;&amp;quot;1000&amp;quot;, :is_number_ported=&amp;gt;&amp;quot;0&amp;quot;, :sip_uri=&amp;gt;&amp;quot;sip:6661@192.168.215.127&amp;quot;, :raw_data=&amp;gt;&amp;quot;&amp;lt;sip:6661@192.168.215.127&amp;gt;&amp;quot;, :expiration=&amp;gt;&amp;quot;3600&amp;quot;}&lt;br /&gt;
         {:called_number=&amp;gt;&amp;quot;6662&amp;quot;, :priority=&amp;gt;&amp;quot;1000&amp;quot;, :is_number_ported=&amp;gt;&amp;quot;0&amp;quot;, :sip_uri=&amp;gt;&amp;quot;sip:6662@192.168.215.128&amp;quot;, :raw_data=&amp;gt;&amp;quot;&amp;lt;sip:6662@192.168.215.128&amp;gt;&amp;quot;, :expiration=&amp;gt;&amp;quot;3600&amp;quot;},&lt;br /&gt;
         {:called_number=&amp;gt;&amp;quot;6663&amp;quot;, :priority=&amp;gt;&amp;quot;1000&amp;quot;, :is_number_ported=&amp;gt;&amp;quot;0&amp;quot;, :sip_uri=&amp;gt;&amp;quot;sip:6663@192.168.215.129&amp;quot;, :raw_data=&amp;gt;&amp;quot;&amp;lt;sip:6663@192.168.215.129&amp;gt;&amp;quot;, :expiration=&amp;gt;&amp;quot;3600&amp;quot;},&lt;br /&gt;
         {:called_number=&amp;gt;&amp;quot;6664&amp;quot;, :priority=&amp;gt;&amp;quot;1000&amp;quot;, :is_number_ported=&amp;gt;&amp;quot;0&amp;quot;, :sip_uri=&amp;gt;&amp;quot;sip:6664@192.168.215.150&amp;quot;, :raw_data=&amp;gt;&amp;quot;&amp;lt;sip:6664@192.168.215.150&amp;gt;&amp;quot;, :expiration=&amp;gt;&amp;quot;3600&amp;quot;}&lt;br /&gt;
      ],&lt;br /&gt;
      :source_indexes=&amp;gt;&amp;quot;nil,0,0,0,2&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;params[:contacts][:list]&amp;lt;/code&amp;gt; contains the contact log. Each contact within the list has the following fields:&lt;br /&gt;
** &amp;lt;code&amp;gt;:called_number&amp;lt;/code&amp;gt; - the called number&lt;br /&gt;
** &amp;lt;code&amp;gt;:is_number_ported&amp;lt;/code&amp;gt; - if the called number has been ported (for SIP: if the npdi parameter is present)&lt;br /&gt;
** &amp;lt;code&amp;gt;:ported_number&amp;lt;/code&amp;gt; - the called number that was ported (for SIP: the rn parameter value, if available)&lt;br /&gt;
** &amp;lt;code&amp;gt;:sip_uri&amp;lt;/code&amp;gt; - the SIP URI of the contact, without the contact-params section (without the expires and q contact parameters)&lt;br /&gt;
** &amp;lt;code&amp;gt;:raw_data&amp;lt;/code&amp;gt; - the raw data representing the contact in the signaling protocol. For SIP, this is the full SIP URI (including the expires and q contact parameters).&lt;br /&gt;
** &amp;lt;code&amp;gt;:priority&amp;lt;/code&amp;gt; - the priority of the contact [0-1000]&lt;br /&gt;
** &amp;lt;code&amp;gt;:expiration&amp;lt;/code&amp;gt; - the expiration time in seconds of the contact&lt;br /&gt;
* &amp;lt;code&amp;gt;params[:contacts][:index]&amp;lt;/code&amp;gt; contains the index of the contact that is currently being routed.&lt;br /&gt;
* &amp;lt;code&amp;gt;params[:contacts][:source_indexes]&amp;lt;/code&amp;gt; contains a comma-separated list of indexes from &amp;lt;code&amp;gt;params[:contacts][:list]&amp;lt;/code&amp;gt;. Each index represents the contact from which the contact in the list was obtained from.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To get more information, see:&lt;br /&gt;
*[[Routing_script_tutorial:SIP_Redirection_Contacts|SIP Redirection Contacts Parameters in a Call Flow]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Connected number ==&lt;br /&gt;
Insert a connected number in the answer message of the call flow.&lt;br /&gt;
&lt;br /&gt;
Routing script example:&lt;br /&gt;
    bridge = params[ :bridge ]&lt;br /&gt;
    bridge [ :connected_number ] = &amp;quot;3335577&amp;quot;&lt;br /&gt;
    bridge [ :connected_number_noa ] = :national_number&lt;br /&gt;
    bridge [ :connected_number_npi ] = :private&lt;br /&gt;
    bridge [ :connected_number_presentation ] = :allowed&lt;br /&gt;
    bridge [ :connected_number_screening ] = :pass&lt;br /&gt;
&lt;br /&gt;
== Terminating calls ==&lt;br /&gt;
In release 2.8, it is now possible to terminate a call through the routing scripts. The [[#Reason values|reason code]] must be specified in &amp;lt;code&amp;gt;params[:bridge][:reason]&amp;lt;/code&amp;gt;. The &amp;lt;code&amp;gt;:terminate&amp;lt;/code&amp;gt; hash must be created and copied into &amp;lt;code&amp;gt;params&amp;lt;/code&amp;gt;:&lt;br /&gt;
  terminate = {}&lt;br /&gt;
  params[:terminate] = terminate&lt;br /&gt;
The following fields can then be set in &amp;lt;code&amp;gt;:terminate&amp;lt;/code&amp;gt;:&lt;br /&gt;
* &amp;lt;code&amp;gt;:sip_header&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;:contacts&amp;lt;/code&amp;gt; # list of contacts as described in the [[#Redirection|redirection]] section&lt;br /&gt;
* &amp;lt;code&amp;gt;:isup_raw&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;:isup_raw_variant&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;:redirecting_number&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;:redirecting_number_noa&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;:redirecting_number_npi&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;:redirecting_number_presentation&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;:redirecting_number_reason&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;:redirecting_number_counter&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;:redirecting_number_indicator&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;:original_called_number&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;:original_called_number_noa&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;:original_called_number_npi&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;:original_called_number_presentation&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;:original_called_number_reason&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;:original_called_number_counter&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reason values  ==&lt;br /&gt;
&lt;br /&gt;
Check here for Termination Reason Cause codes:&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[Termination_cause_codes|Termination Reason Cause codes]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example to refuse an incoming call leg.&lt;br /&gt;
  raise RoutingException, :no_route&lt;br /&gt;
&lt;br /&gt;
Reason cause strings available inside routing scripts:&lt;br /&gt;
&lt;br /&gt;
List of Q.850 reason causes:&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;
  :qor_ported_number&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_connection_operational&lt;br /&gt;
  :temporary_failure&lt;br /&gt;
  :switching_equipment_congestion&lt;br /&gt;
  :access_information_discarded&lt;br /&gt;
  :requested_circuit_not_available&lt;br /&gt;
  :precedence_call_blocked&lt;br /&gt;
  :resource_unavailable&lt;br /&gt;
  :quality_of_service_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;
List of toolpack reason causes:&lt;br /&gt;
&lt;br /&gt;
  :toolpack_normal                       or :normal&lt;br /&gt;
  :toolpack_resource_error               or :resource_error&lt;br /&gt;
  :toolpack_timeout                      or :timeout&lt;br /&gt;
  :toolpack_no_route                     or :no_route&lt;br /&gt;
  :toolpack_call_collision               or :call_collision&lt;br /&gt;
  :toolpack_sync_drop                    or :sync_drop&lt;br /&gt;
  :toolpack_signaling_error              or :signaling_error&lt;br /&gt;
  :toolpack_locally_rejected             or :locally_rejected&lt;br /&gt;
  :toolpack_interface_not_available      or :interface_not_available&lt;br /&gt;
  :toolpack_reset_in_progress            or :reset_in_progress&lt;br /&gt;
  :toolpack_adapter_reject               or :adapter_reject&lt;br /&gt;
  :toolpack_missing_or_invalid_ie        or :missing_or_invalid_ie&lt;br /&gt;
  :toolpack_incoming_only                or :incoming_only&lt;br /&gt;
  :toolpack_system_configuration_changed or :system_configuration_changed&lt;br /&gt;
  :toolpack_resource_no_more_available   or :resource_no_more_available&lt;br /&gt;
  :toolpack_incompatible_media           or :incompatible_media&lt;br /&gt;
  :toolpack_resource_allocation_failed   or :resource_allocation_failed&lt;br /&gt;
  :toolpack_data_path_not_available      or :data_path_not_available&lt;br /&gt;
  :toolpack_local_congestion             or :local_congestion&lt;br /&gt;
  :toolpack_authorization_required       or :authorization_required&lt;br /&gt;
  :toolpack_call_divert_is_not_allowed   or :call_divert_is_not_allowed&lt;br /&gt;
&lt;br /&gt;
List of SIP reason causes:&amp;lt;br/&amp;gt;&lt;br /&gt;
Reason causes starting with a digit must use the following syntax (can't use : as prefix).&lt;br /&gt;
&lt;br /&gt;
  '300_multiple_choices'&lt;br /&gt;
  '301_moved_permanently'&lt;br /&gt;
  '302_moved_temporarily'&lt;br /&gt;
  '305_use_proxy'&lt;br /&gt;
  '380_alternative_service'&lt;br /&gt;
  '400_bad_request'&lt;br /&gt;
  '401_unauthorized'&lt;br /&gt;
  '402_payment_required'&lt;br /&gt;
  '403_forbidden'&lt;br /&gt;
  '404_not_found'&lt;br /&gt;
  '405_method_not_allowed'&lt;br /&gt;
  '406_not_acceptable'&lt;br /&gt;
  '407_proxy_authentication_required'&lt;br /&gt;
  '408_request_timeout'&lt;br /&gt;
  '409_conflict'&lt;br /&gt;
  '410_gone'&lt;br /&gt;
  '413_request_entity_too_large'&lt;br /&gt;
  '414_request_URI_too_long'&lt;br /&gt;
  '415_unsupported_media'&lt;br /&gt;
  '416_unsupported_URI_scheme'&lt;br /&gt;
  '420_bad_extension'&lt;br /&gt;
  '421_extension_required'&lt;br /&gt;
  '422_session_timer_too_small'&lt;br /&gt;
  '423_interval_too_brief'&lt;br /&gt;
  '429_referrer_identity_error'&lt;br /&gt;
  '480_temporary_unavailable'&lt;br /&gt;
  '481_call_or_transaction_does_not_exist'&lt;br /&gt;
  '482_loop_detected'&lt;br /&gt;
  '483_too_many_hops'&lt;br /&gt;
  '484_address_incomplete'&lt;br /&gt;
  '485_ambiguous'&lt;br /&gt;
  '486_busy_here'&lt;br /&gt;
  '487_request_terminated'&lt;br /&gt;
  '488_not_acceptable_here'&lt;br /&gt;
  '489_bad_event'&lt;br /&gt;
  '491_retry_after'&lt;br /&gt;
  '500_server_internal_error'&lt;br /&gt;
  '501_not_implemented'&lt;br /&gt;
  '502_bad_gateway'&lt;br /&gt;
  '503_service_unavailable'&lt;br /&gt;
  '504_server_timeout'&lt;br /&gt;
  '505_version_unsupported'&lt;br /&gt;
  '513_message_too_large'&lt;br /&gt;
  '600_busy_everywhere'&lt;br /&gt;
  '603_decline'&lt;br /&gt;
  '604_not_exist_anywhere'&lt;br /&gt;
  '606_not_acceptable'&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;
  Routing script call attribute name    Description&lt;br /&gt;
  --------------------------------------------------------------------------------------------&lt;br /&gt;
  &amp;quot;name&amp;quot;                                NAP name.&lt;br /&gt;
  &amp;quot;signaling_type&amp;quot;                      Signaling type (SS7, ISDN, CASR2, SIP)&lt;br /&gt;
  &amp;quot;profile&amp;quot;                             Profile name.&lt;br /&gt;
  &amp;quot;sip_destination_ip&amp;quot;                  Destination IP address.&lt;br /&gt;
  &amp;quot;sip_destination_port&amp;quot;                Destination IP port.&lt;br /&gt;
  &amp;quot;sip_transport_type&amp;quot;                  SIP transport type (:udp, :tcp, or :tls) (Toolpack 3.1 and more)&lt;br /&gt;
  &amp;quot;inst_incoming_call_cnt&amp;quot;              Instantaneous Count of incoming calls.&lt;br /&gt;
  &amp;quot;inst_outgoing_call_cnt&amp;quot;              Instantaneous Count of outgoing calls.&lt;br /&gt;
  &amp;quot;available_cnt&amp;quot;                       Number of available circuits or channels.&lt;br /&gt;
  &amp;quot;unavailable_cnt&amp;quot;                     Number of unavailable circuits or channels.&lt;br /&gt;
  &amp;quot;availability_percent&amp;quot;                Percentage of available circuits or channels.&lt;br /&gt;
  &amp;quot;usage_percent&amp;quot;                       Percentage of used circuits or channels.&lt;br /&gt;
  &amp;quot;unused_shared_percent&amp;quot;               Percentage of used circuits or channels of this NAP available to make new calls with (taking into account shared with other NAPs)&lt;br /&gt;
  &amp;quot;total_incoming_call_cnt&amp;quot;             Total Count of incoming calls.&lt;br /&gt;
  &amp;quot;global_asr_percent&amp;quot;                  Global calculated ASR percentage.&lt;br /&gt;
  &amp;quot;total_outgoing_call_cnt&amp;quot;             Total Count of outgoing calls.&lt;br /&gt;
  &amp;quot;last_24h_asr_percent&amp;quot;                Last 24 hours calculated ASR percentage.&lt;br /&gt;
  &amp;quot;last_24h_outgoing_call_cnt&amp;quot;          Last 24 hours outgoing calls.&lt;br /&gt;
  &amp;quot;current_hour_asr_percent&amp;quot;            Current hour calculated ASR percentage.&lt;br /&gt;
  &amp;quot;current_hour_outgoing_call_cnt&amp;quot;      Current hour outgoing calls.&lt;br /&gt;
  &amp;quot;last_hour_asr_percent&amp;quot;               Last hour calculated ASR percentage.&lt;br /&gt;
  &amp;quot;last_hour_outgoing_call_cnt&amp;quot;         Last hour outgoing calls.&lt;br /&gt;
  &amp;quot;poll_remote_proxy&amp;quot;                   Remote proxy polling enabled&lt;br /&gt;
  &amp;quot;is_available&amp;quot;                        Remote proxy actually available or not&lt;br /&gt;
  &amp;quot;time_since_polling&amp;quot;                  Time since the last availibility polling&lt;br /&gt;
  &amp;quot;time_available_seconds&amp;quot;              Number of seconds since the NAP is available&lt;br /&gt;
  &amp;quot;time_unavailable_seconds&amp;quot;            Number of seconds since the NAP is unavailable&lt;br /&gt;
  &amp;quot;register_to_proxy&amp;quot;                   Register to proxy enabled&lt;br /&gt;
  &amp;quot;registered&amp;quot;                          Actually registered or not&lt;br /&gt;
  &amp;quot;time_since_refresh&amp;quot;                  Time since the last refresh&lt;br /&gt;
  &amp;quot;time_registered_seconds&amp;quot;             Number of seconds since the NAP is registered&lt;br /&gt;
  &amp;quot;time_not_registered_seconds&amp;quot;         Number of seconds since the NAP is not registered&lt;br /&gt;
  &amp;quot;asr_stats_incoming_struct&amp;quot;           Detailed Answer-Seizure Rate incoming statistics.&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;global_asr_percent&amp;quot;                Global calculated ASR percentage.&lt;br /&gt;
    &amp;quot;total_call_cnt&amp;quot;                    Total count of calls.&lt;br /&gt;
    &amp;quot;total_accepted_call_cnt&amp;quot;           Total count of accepted calls (not dropped due to congestion or rate-limiting).&lt;br /&gt;
    &amp;quot;total_answered_call_cnt&amp;quot;           Total count of answered calls.&lt;br /&gt;
    &amp;quot;last_24h_asr_percent&amp;quot;              Last 24 hours calculated ASR percentage.&lt;br /&gt;
    &amp;quot;last_24h_call_cnt&amp;quot;                 Last 24 hours count of calls.&lt;br /&gt;
    &amp;quot;current_hour_asr_percent&amp;quot;          Current hour calculated ASR percentage.&lt;br /&gt;
    &amp;quot;current_hour_call_cnt&amp;quot;             Current hour count of calls.&lt;br /&gt;
    &amp;quot;last_hour_asr_percent&amp;quot;             Last hour calculated ASR percentage.&lt;br /&gt;
    &amp;quot;last_hour_call_cnt&amp;quot;                Last hour count of calls.&lt;br /&gt;
  }&lt;br /&gt;
  &amp;quot;asr_stats_outgoing_struct&amp;quot;           Detailed Answer-Seizure Rate outgoing statistics.&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;global_asr_percent&amp;quot;                Global calculated ASR percentage.&lt;br /&gt;
    &amp;quot;total_call_cnt&amp;quot;                    Total count of calls.&lt;br /&gt;
    &amp;quot;total_accepted_call_cnt&amp;quot;           Total count of accepted calls (not dropped due to congestion or rate-limiting).&lt;br /&gt;
    &amp;quot;total_answered_call_cnt&amp;quot;           Total count of answered calls.&lt;br /&gt;
    &amp;quot;last_24h_asr_percent&amp;quot;              Last 24 hours calculated ASR percentage.&lt;br /&gt;
    &amp;quot;last_24h_call_cnt&amp;quot;                 Last 24 hours count of calls.&lt;br /&gt;
    &amp;quot;current_hour_asr_percent&amp;quot;          Current hour calculated ASR percentage.&lt;br /&gt;
    &amp;quot;current_hour_call_cnt&amp;quot;             Current hour count of calls.&lt;br /&gt;
    &amp;quot;last_hour_asr_percent&amp;quot;             Last hour calculated ASR percentage.&lt;br /&gt;
    &amp;quot;last_hour_call_cnt&amp;quot;                Last hour count of calls.&lt;br /&gt;
  }&lt;br /&gt;
  &amp;quot;mos_struct&amp;quot;                          Detailed Mean Opinion Score statistics.&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;last_24h_ingress&amp;quot;                  Last 24 hours calculated MOS for incoming RTP packets.&lt;br /&gt;
    &amp;quot;last_24h_egress&amp;quot;                   Last 24 hours calculated MOS for outgoing RTP packets.&lt;br /&gt;
    &amp;quot;current_hour_ingress&amp;quot;              Current hour calculated MOS for incoming RTP packets.&lt;br /&gt;
    &amp;quot;current_hour_egress&amp;quot;               Current hour calculated MOS for outgoing RTP packets.&lt;br /&gt;
    &amp;quot;last_hour_ingress&amp;quot;                 Last hour calculated MOS for incoming RTP packets.&lt;br /&gt;
    &amp;quot;last_hour_egress&amp;quot;                  Last hour calculated MOS for outgoing RTP packets.&lt;br /&gt;
  }&lt;br /&gt;
  &amp;quot;network_quality_struct&amp;quot;              Detailed network quality statistics.&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;last_24h_ingress&amp;quot;                  Last 24 hours network quality percentage for incoming RTP packets.&lt;br /&gt;
    &amp;quot;last_24h_egress&amp;quot;                   Last 24 hours network quality percentage for outgoing RTP packets.&lt;br /&gt;
    &amp;quot;current_hour_ingress&amp;quot;              Current hour network quality percentage for incoming RTP packets.&lt;br /&gt;
    &amp;quot;current_hour_egress&amp;quot;               Current hour network quality percentage for outgoing RTP packets.&lt;br /&gt;
    &amp;quot;last_hour_ingress&amp;quot;                 Last hour network quality percentage for incoming RTP packets.&lt;br /&gt;
    &amp;quot;last_hour_egress&amp;quot;                  Last hour network quality percentage for outgoing RTP packets.&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
&amp;lt;br&amp;gt; If the nap status is part of a substructure, the substructure will be a hash containing all subfield elements. &lt;br /&gt;
&lt;br /&gt;
Example to access NAP information of the current call:&lt;br /&gt;
&amp;lt;br&amp;gt; To find the incoming nap in the script, we can do this in before_filter or after_filter and use these lines to create a symbol:&lt;br /&gt;
    incoming_nap = params[:call][:nap].to_sym&lt;br /&gt;
    log_trace 1, &amp;quot;incoming_nap = &amp;quot; + incoming_nap.inspect&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; To search the configured nap list, you can do this:&lt;br /&gt;
    nap_lists = params[:naps]&lt;br /&gt;
    log_trace 1, &amp;quot;nap_lists = &amp;quot; + nap_lists.inspect&lt;br /&gt;
This is now a list of all NAPs configured in the system. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; From the list above, you can find how many calls you have on this NAP:&lt;br /&gt;
    log_trace 1,&amp;quot;Incoming NAP call cnt=&amp;quot; + nap_lists[incoming_nap][:asr_stats_incoming_struct][:total_call_cnt].inspect &lt;br /&gt;
&amp;lt;br&amp;gt; Or which network the call is coming from:&lt;br /&gt;
    log_trace 1,&amp;quot;Incoming NAP signaling type=&amp;quot; + nap_lists[incoming_nap][:signaling_type].inspect &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; If you are using a &amp;quot;NAP Columns&amp;quot; custom parameter (Create New NAP Column), you can get the information (since incoming_nap is a symbol): &lt;br /&gt;
    network_type = nap_lists[incoming_nap][:network_type]&lt;br /&gt;
    log_trace 1, &amp;quot;For incoming_nap = &amp;quot; + incoming_nap.inspect + &amp;quot; network_type is: &amp;quot; + network_type.inspect&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; If you want to modify something according to nap information, you may need to do a loop:&lt;br /&gt;
    nap_lists.each do |nap_list,nap_info|&lt;br /&gt;
      log_trace 1, &amp;quot;NAP: &amp;quot; + nap_info[:name].inspect + &amp;quot; network_type: &amp;quot; + nap_info[:network_type].inspect&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Telephony Services ==&lt;br /&gt;
In release 2.10 and the above, telephony services (CNAM Request) can be manage from the routing engine in the following format:&lt;br /&gt;
&lt;br /&gt;
  params[:telephony_services].each do |service|  -&amp;gt; Array of telephony services&lt;br /&gt;
    service[:name]                               -&amp;gt; Customer telephony service name&lt;br /&gt;
    service[:type]                               -&amp;gt; For now only &amp;quot;CNAM Request&amp;quot;&lt;br /&gt;
    service[:enabled]                            -&amp;gt; Indicate if the service is enabled (true) or not (false)&lt;br /&gt;
                                                    (Only the telephony service define in the profile associated to the NAP is enabled)&lt;br /&gt;
                                                    (The others telephony services define in others profiles are disabled)&lt;br /&gt;
                                                    (If we are in the case where we return in the routing script with a response, it is important to set :enabled to false in order to avoid repeating the same query)&lt;br /&gt;
    serviceParams = service[:params]&lt;br /&gt;
    serviceParams[:return_to_script]             -&amp;gt; Indicates to Gateway if we must return to the routing script after receiving the CNAM response&lt;br /&gt;
                                                    (It is important to set back to false this field to avoid an infinite loop)&lt;br /&gt;
    serviceQuery = service[:query]&lt;br /&gt;
    serviceQuery[:phone]                         -&amp;gt; 10 digits of calling number from the incoming call to send to the CNAM server&lt;br /&gt;
    serviceQuery[:timeout]                       -&amp;gt; Timeout in millisecond to wait a CNAM response from CNAM server&lt;br /&gt;
                                                    (Default value from profile configuration)&lt;br /&gt;
    serviceResponse = service[:response]&lt;br /&gt;
    serviceResponse[:success]                    -&amp;gt; Indicates if we received a good CNAM response from the CNAM Server (Only present if :return_to_script is set to true)&lt;br /&gt;
    serviceResponse[:caller_name]                -&amp;gt; The caller name received in the CNAM response from the CNAM Server (Only present if :return_to_script is set to true)&lt;br /&gt;
&lt;br /&gt;
== Custom user context ==&lt;br /&gt;
The routing script may '''save per-call information within the call context''', that will be available if routing is called again later during the call flow.&lt;br /&gt;
&lt;br /&gt;
Cases where routing is called multiple time for the same call are:&lt;br /&gt;
- Call transfer requests&lt;br /&gt;
- SIP redirect requests&lt;br /&gt;
- Radius Authorization result&lt;br /&gt;
- Announcement server with digit collection&lt;br /&gt;
&lt;br /&gt;
The routing script can save a recursive hash of attributes here:&lt;br /&gt;
  params[:user_context]&lt;br /&gt;
&lt;br /&gt;
For example&lt;br /&gt;
  params[:user_context] = { &amp;quot;SomeKey&amp;quot; =&amp;gt; &amp;quot;Some value I want to retrieve upon next routing for this call&amp;quot;, &amp;quot;OtherVal&amp;quot; =&amp;gt; { &amp;quot;subkey&amp;quot; =&amp;gt; &amp;quot;subval&amp;quot; } }&lt;br /&gt;
&lt;br /&gt;
Upon first call to routing script, params[:user_context] will be nil.&lt;br /&gt;
Upon subsequent calls to routing script, it will contain whatever the script had stored upon previous call (or nil if it was not set)&lt;br /&gt;
&lt;br /&gt;
Note: This feature is available starting from release 2.9.85, 2.10.31 and 3.0.15 (in respective branches 2.9, 2.10 or 3.0)&lt;br /&gt;
&lt;br /&gt;
== Routing Script Tests ==&lt;br /&gt;
The Web portal features a tool for Testing Scripts. The user must enter parameters to simulate the incoming call and after pressing the Test button, will output selected routes and numbers.  You do not need to activate the new routes, or the new scripts to use this test tool: It can be used to test the routing scripts and routing table before activating it.&lt;br /&gt;
This is available in the Routing Scripts section of the Web portal.&lt;br /&gt;
&lt;br /&gt;
=== Test parameters ===&lt;br /&gt;
==== @call_params  ====&lt;br /&gt;
&lt;br /&gt;
That variable should contain a hash of call parameters that will be 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 the 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;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==== @params  ====&lt;br /&gt;
&lt;br /&gt;
A hash of hashes containing parameters. This hash contains bridge parameters and other kind of parameter groups may be added in the future. &lt;br /&gt;
&lt;br /&gt;
  @params = {&lt;br /&gt;
     :bridge =&amp;gt; {:announcement_tone, &amp;quot;announcement.wav&amp;quot;},&lt;br /&gt;
     :contacts =&amp;gt; {&lt;br /&gt;
       :index=&amp;gt;&amp;quot;1&amp;quot;,&lt;br /&gt;
       :list=&amp;gt;[&lt;br /&gt;
          {:called_number=&amp;gt;&amp;quot;6660&amp;quot;, :priority=&amp;gt;&amp;quot;1000&amp;quot;, :is_number_ported=&amp;gt;&amp;quot;0&amp;quot;, :sip_uri=&amp;gt;&amp;quot;&amp;quot;,&lt;br /&gt;
           :raw_data=&amp;gt;&amp;quot;&amp;quot;, :expiration=&amp;gt;&amp;quot;3600&amp;quot;},&lt;br /&gt;
          {:called_number=&amp;gt;&amp;quot;6661&amp;quot;, :priority=&amp;gt;&amp;quot;1000&amp;quot;, :is_number_ported=&amp;gt;&amp;quot;0&amp;quot;, :sip_uri=&amp;gt;&amp;quot;sip:6661@192.168.215.127&amp;quot;, &lt;br /&gt;
           :raw_data=&amp;gt;&amp;quot;&amp;lt;sip:6661@192.168.215.127&amp;gt;&amp;quot;, :expiration=&amp;gt;&amp;quot;3600&amp;quot;}&lt;br /&gt;
       ],&lt;br /&gt;
       :source_indexes=&amp;gt;&amp;quot;nil,0&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; Back to [[Routing script tutorial|Routing Script Tutorial]].&lt;/div&gt;</summary>
		<author><name>Luc Morissette</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/How_to_Setup_Filters</id>
		<title>How to Setup Filters</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/How_to_Setup_Filters"/>
				<updated>2021-02-22T15:16:43Z</updated>
		
		<summary type="html">&lt;p&gt;Luc Morissette: Updated link for benchmarking to new page.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Filter Scripts are routing scripts that can be added to any other script. It modifies the behavior of the main script. For example, it can do a remapping of the incoming called number to make it uniform, such as removing the international code. It can also make sure there is no loop (do not route the call back to the incoming Network).&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
While filters can edit call attributes, they do it once for all matching routes.&lt;br /&gt;
&lt;br /&gt;
'''Note: If you need to manipulate call attributes per matching route (providing different values for different matching routes), you should instead use ''' [[Routing_script_tutorial:route_remap_Tutorial|route_remap]].&lt;br /&gt;
== Setting up Filter Scripts&amp;lt;br&amp;gt;  ==&lt;br /&gt;
&lt;br /&gt;
To setup a Filter, the main script needs to be modified. The main script can be either simple_routing.rb, or any other script.&amp;lt;br&amp;gt; &lt;br /&gt;
First, make sure scripts are enabled for this system: &amp;lt;br&amp;gt; &lt;br /&gt;
 Gateway&lt;br /&gt;
 use Script -&amp;gt; Example Scripts  (If none are available, go to the second step, then come back here to chose the script group)&lt;br /&gt;
&lt;br /&gt;
Second, go to the routing script section of the Web portal &lt;br /&gt;
&amp;lt;pre&amp;gt;Gateway -&amp;amp;gt; Routes -&amp;amp;gt; Routing scripts -&amp;amp;gt; Example Scripts -&amp;amp;gt; simple_routing.rb [Edit]&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Three things need to be added. At the start of the script:&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;require '[filter_ruby_filename]'&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
In the main class:&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;include [module_name]&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
and &lt;br /&gt;
&amp;lt;pre&amp;gt;before_filter&amp;amp;nbsp;:method =&amp;amp;gt;&amp;amp;nbsp;:[method_name]&amp;lt;/pre&amp;gt; &lt;br /&gt;
or&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;after_filter&amp;amp;nbsp;:method =&amp;amp;gt;&amp;amp;nbsp;:[method_name]&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
For example, the priority_and_weight_load_balancer.rb script would require this to be added to the main script:&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;require 'priority_and_weight_load_balancer'&lt;br /&gt;
&lt;br /&gt;
class MyMainRoutingClass &amp;amp;lt; BaseRouting&lt;br /&gt;
  include PriorityAndWeightLoadBalancer&lt;br /&gt;
&lt;br /&gt;
  after_filter :method =&amp;gt; :filter_by_priority_and_weight,&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
To find the module_name and method, you need to look in the routing script itself:&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;Gateway -&amp;amp;gt; Routes -&amp;amp;gt; Routing Scripts -&amp;amp;gt; Filters Scripts -&amp;amp;gt; priority_and_weight_load_balancer.rb [Edit]&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
Then look for the &amp;amp;lt;Module&amp;amp;gt; tag and the &amp;amp;lt;def&amp;amp;gt; tag for the main class &lt;br /&gt;
&lt;br /&gt;
=== Filter Scripts examples:  ===&lt;br /&gt;
&lt;br /&gt;
*'''Request-URI routing (called_pre_remap_and_ruri.rb):''' Will route the call on SIP RURI instead of the to: field &lt;br /&gt;
*'''Modify the Nature of Address (noa_npi_remap.rb):''' We can use this to change the NOA to national or international &lt;br /&gt;
*'''Remove Loop (FilterRemoveLoop.rb): '''Will prevent calls from being routed back to the sender &lt;br /&gt;
*'''Load sharing on NAP groups or on route groups (priority_and_weight_load_balancer.rb):''' This is script is now installed by default on the systems. &amp;lt;br&amp;gt; See [[Adding Load Sharing to Routing Script|Adding Priority and Load Sharing to Routing Script]]&amp;lt;br&amp;gt; &lt;br /&gt;
*'''Black and White listing (black_white_listing.rb):''' With this script, any called or calling number prefix can be blacklisted or whitelisted. This script can be assigned globally, or per NAP. It reads a file which has the called and calling number list. &amp;lt;br&amp;gt; See [[Adding White or Black listing to Routing Script]]&lt;br /&gt;
*'''Capture dtmf input (capture_dtmf.rb):''' With this script, if the called number is a specific value, it will play an announcement and waits to capture digits used for routing. &amp;lt;br&amp;gt; See [[Adding capture dtmf script|Adding capture dtmf script to Routing Script]]&lt;br /&gt;
*'''Route on Called and make call with Routing Number (r_n_cdr.rb):''' With this script, the called number will be used to route the call, but the call will be made with the routing number. &amp;lt;br&amp;gt; See [[Adding Routing Number script to Routing Script|Adding Routing Number script to Routing Script]]&lt;br /&gt;
*'''Fraud call detection with YouMail (youmail_spam_risk.rb):''' This script will query and External HTTPS server and it will return a spam risk level based on calling number data. &amp;lt;br&amp;gt; See [[Adding YouMail script to Routing scripts]]&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
One example is the Label Routing. Check here: [[Adding Label Routing to any Routing Script|Adding Label Routing to any Routing Script]]&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
These filters can be merged in the same routing script. Please contact support for more details.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Adding benchmarking to any script  ===&lt;br /&gt;
Routing scripts need to be well designed to allow for maximum performance of a system.&amp;lt;br&amp;gt;&lt;br /&gt;
To help evaluating the performance of a script (or part of a script), you can use this benchmarking tool.&amp;lt;br&amp;gt;&lt;br /&gt;
See [[Adding Benchmarking to your Routing scripts]]&lt;/div&gt;</summary>
		<author><name>Luc Morissette</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/Adding_Benchmarking_to_your_Routing_scripts</id>
		<title>Adding Benchmarking to your Routing scripts</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/Adding_Benchmarking_to_your_Routing_scripts"/>
				<updated>2021-02-22T15:16:16Z</updated>
		
		<summary type="html">&lt;p&gt;Luc Morissette: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Adding benchmarking to any script}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;3&amp;quot;|This article applies to:&lt;br /&gt;
|'''Product'''&lt;br /&gt;
|'''Version'''&lt;br /&gt;
|-&lt;br /&gt;
|ProSBC&lt;br /&gt;
|3.1&lt;br /&gt;
|-&lt;br /&gt;
|Tmedia&lt;br /&gt;
|2.9, 2.10, 3.0, 3.2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Routing scripts need to be well designed to allow for maximum performance of a system.&amp;lt;br&amp;gt;&lt;br /&gt;
To help evaluating the performance of a script (or part of a script), you can use this benchmarking tool.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Three lines need to be added. &amp;lt;br&amp;gt;&lt;br /&gt;
At the start of the script:&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;require 'benchmark'&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
In the main class, before the function to evaluate:&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  bm = Benchmark.measure do&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
In the main class, after the function to evaluate:&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  log_trace 3, &amp;quot;It took #{bm.real.to_s[0..7]} seconds to do this function&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
This will print in the gateway application log the time it took to run this function.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Click here to know [[How_to_troubleshoot_call_routing#Using_the_applications_log_files|how to get the log files]]&lt;/div&gt;</summary>
		<author><name>Luc Morissette</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/Adding_Benchmarking_to_your_Routing_scripts</id>
		<title>Adding Benchmarking to your Routing scripts</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/Adding_Benchmarking_to_your_Routing_scripts"/>
				<updated>2021-02-22T15:12:50Z</updated>
		
		<summary type="html">&lt;p&gt;Luc Morissette: New page to add Benchmarking information to a script&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Adding benchmarking to any script}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;3&amp;quot;|This article applies to:&lt;br /&gt;
|'''Product'''&lt;br /&gt;
|'''Version'''&lt;br /&gt;
|-&lt;br /&gt;
|ProSBC&lt;br /&gt;
|3.1&lt;br /&gt;
|-&lt;br /&gt;
|Tmedia&lt;br /&gt;
|2.9, 2.10, 3.0, 3.2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Routing scripts need to be well designed to allow for maximum performance of a system.&amp;lt;br&amp;gt;&lt;br /&gt;
To help evaluating the performance of a script (or part of a script), you can use this benchmarking tool.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Three lines need to be added. &amp;lt;br&amp;gt;&lt;br /&gt;
At the start of the script:&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;require 'benchmark'&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
In the main class, before the function to evaluate:&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  bm = Benchmark.measure do&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
In the main class, after the function to evaluate:&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  log_trace 3, &amp;quot;It took #{bm.real.to_s[0..7]} seconds to do this function&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
This will print in the gateway application log the time it took to run this function.&lt;/div&gt;</summary>
		<author><name>Luc Morissette</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/How_to_Setup_Filters</id>
		<title>How to Setup Filters</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/How_to_Setup_Filters"/>
				<updated>2021-02-22T15:10:41Z</updated>
		
		<summary type="html">&lt;p&gt;Luc Morissette: Added benchmarking instructions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Filter Scripts are routing scripts that can be added to any other script. It modifies the behavior of the main script. For example, it can do a remapping of the incoming called number to make it uniform, such as removing the international code. It can also make sure there is no loop (do not route the call back to the incoming Network).&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
While filters can edit call attributes, they do it once for all matching routes.&lt;br /&gt;
&lt;br /&gt;
'''Note: If you need to manipulate call attributes per matching route (providing different values for different matching routes), you should instead use ''' [[Routing_script_tutorial:route_remap_Tutorial|route_remap]].&lt;br /&gt;
== Setting up Filter Scripts&amp;lt;br&amp;gt;  ==&lt;br /&gt;
&lt;br /&gt;
To setup a Filter, the main script needs to be modified. The main script can be either simple_routing.rb, or any other script.&amp;lt;br&amp;gt; &lt;br /&gt;
First, make sure scripts are enabled for this system: &amp;lt;br&amp;gt; &lt;br /&gt;
 Gateway&lt;br /&gt;
 use Script -&amp;gt; Example Scripts  (If none are available, go to the second step, then come back here to chose the script group)&lt;br /&gt;
&lt;br /&gt;
Second, go to the routing script section of the Web portal &lt;br /&gt;
&amp;lt;pre&amp;gt;Gateway -&amp;amp;gt; Routes -&amp;amp;gt; Routing scripts -&amp;amp;gt; Example Scripts -&amp;amp;gt; simple_routing.rb [Edit]&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Three things need to be added. At the start of the script:&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;require '[filter_ruby_filename]'&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
In the main class:&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;include [module_name]&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
and &lt;br /&gt;
&amp;lt;pre&amp;gt;before_filter&amp;amp;nbsp;:method =&amp;amp;gt;&amp;amp;nbsp;:[method_name]&amp;lt;/pre&amp;gt; &lt;br /&gt;
or&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;after_filter&amp;amp;nbsp;:method =&amp;amp;gt;&amp;amp;nbsp;:[method_name]&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
For example, the priority_and_weight_load_balancer.rb script would require this to be added to the main script:&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;require 'priority_and_weight_load_balancer'&lt;br /&gt;
&lt;br /&gt;
class MyMainRoutingClass &amp;amp;lt; BaseRouting&lt;br /&gt;
  include PriorityAndWeightLoadBalancer&lt;br /&gt;
&lt;br /&gt;
  after_filter :method =&amp;gt; :filter_by_priority_and_weight,&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
To find the module_name and method, you need to look in the routing script itself:&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;Gateway -&amp;amp;gt; Routes -&amp;amp;gt; Routing Scripts -&amp;amp;gt; Filters Scripts -&amp;amp;gt; priority_and_weight_load_balancer.rb [Edit]&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
Then look for the &amp;amp;lt;Module&amp;amp;gt; tag and the &amp;amp;lt;def&amp;amp;gt; tag for the main class &lt;br /&gt;
&lt;br /&gt;
=== Filter Scripts examples:  ===&lt;br /&gt;
&lt;br /&gt;
*'''Request-URI routing (called_pre_remap_and_ruri.rb):''' Will route the call on SIP RURI instead of the to: field &lt;br /&gt;
*'''Modify the Nature of Address (noa_npi_remap.rb):''' We can use this to change the NOA to national or international &lt;br /&gt;
*'''Remove Loop (FilterRemoveLoop.rb): '''Will prevent calls from being routed back to the sender &lt;br /&gt;
*'''Load sharing on NAP groups or on route groups (priority_and_weight_load_balancer.rb):''' This is script is now installed by default on the systems. &amp;lt;br&amp;gt; See [[Adding Load Sharing to Routing Script|Adding Priority and Load Sharing to Routing Script]]&amp;lt;br&amp;gt; &lt;br /&gt;
*'''Black and White listing (black_white_listing.rb):''' With this script, any called or calling number prefix can be blacklisted or whitelisted. This script can be assigned globally, or per NAP. It reads a file which has the called and calling number list. &amp;lt;br&amp;gt; See [[Adding White or Black listing to Routing Script]]&lt;br /&gt;
*'''Capture dtmf input (capture_dtmf.rb):''' With this script, if the called number is a specific value, it will play an announcement and waits to capture digits used for routing. &amp;lt;br&amp;gt; See [[Adding capture dtmf script|Adding capture dtmf script to Routing Script]]&lt;br /&gt;
*'''Route on Called and make call with Routing Number (r_n_cdr.rb):''' With this script, the called number will be used to route the call, but the call will be made with the routing number. &amp;lt;br&amp;gt; See [[Adding Routing Number script to Routing Script|Adding Routing Number script to Routing Script]]&lt;br /&gt;
*'''Fraud call detection with YouMail (youmail_spam_risk.rb):''' This script will query and External HTTPS server and it will return a spam risk level based on calling number data. &amp;lt;br&amp;gt; See [[Adding YouMail script to Routing scripts]]&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
One example is the Label Routing. Check here: [[Adding Label Routing to any Routing Script|Adding Label Routing to any Routing Script]]&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
These filters can be merged in the same routing script. Please contact support for more details.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Adding benchmarking to any script  ===&lt;br /&gt;
Routing scripts need to be well designed to allow for maximum performance of a system.&amp;lt;br&amp;gt;&lt;br /&gt;
To help evaluating the performance of a script (or part of a script), you can use this benchmarking tool.&amp;lt;br&amp;gt;&lt;br /&gt;
See [[Adding Benchmarking to your Routing scripts]]&lt;br /&gt;
&lt;br /&gt;
Three lines need to be added. &amp;lt;br&amp;gt;&lt;br /&gt;
At the start of the script:&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;require 'benchmark'&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
In the main class, before the function to evaluate:&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  bm = Benchmark.measure do&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
In the main class, after the function to evaluate:&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  log_trace 3, &amp;quot;It took #{bm.real.to_s[0..7]} seconds to do this function&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
This will print in the gateway application log the time it took to run this function.&lt;/div&gt;</summary>
		<author><name>Luc Morissette</name></author>	</entry>

	</feed>