<?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=Jasmin+Letendre</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=Jasmin+Letendre"/>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/Special:Contributions/Jasmin_Letendre"/>
		<updated>2026-04-05T12:39:08Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.18.1</generator>

	<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>2016-10-13T21:01:40Z</updated>
		
		<summary type="html">&lt;p&gt;Jasmin Letendre: Minor edit.&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 params 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 gateway application will use to bridge the incoming call leg.  If more than one outgoing route is &amp;quot;accepted&amp;quot;, gateway will try them one by one in the same order 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;
{| 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;
| 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_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;
| &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_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 &amp;lt;br&amp;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: 'Called party number' IE - address signals&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:RequestURI - rn&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_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: '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;
| 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: '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;
| 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 'Forward 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;
| 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: 'Callinf 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&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;
| (read-only)&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;
| (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_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 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_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 UDP 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 UDP 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;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Noa values  ===&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;unknown_number (0x2)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;international_number (0x4)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;national_number (0x3)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;subscriber_number (0x1)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;network_specific (0x5)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;network_routing_national_format (0x7)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;network_routing_international_format (0x8)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;abbreviated_number (0x6)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;subscriber_number_operator_requested (0x71)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;national_number_operator_requested (0x72)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;international_number_operator_requested (0x73)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;no_number_present_operator_requested (0x74)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;no_number_present_cut_through_call_to_carrier (0x75)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;test_line_test_code (0x77)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;non_unique_subscriber_number (0x71)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;non_unique_national_number (0x73)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;non_unique_international_number (0x74)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;call_950_numbe (0x76)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;special_number (0x73)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;national_number_with_transit_network_selection (0x74)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;international_number_with_transit_network_selection (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;
&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;
values for calling_category&lt;br /&gt;
*&amp;lt;tt&amp;gt;unspecified&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;(0xa)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;unknown&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;(0x0)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;operator_french&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;(0x1)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;operator_english&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;(0x2)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;operator_german&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;(0x3)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;operator_russian&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;(0x4)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;operator_spanish&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;(0x5)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;subscriber&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;(0xa)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;subscriber_with_priority&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;(0xb)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;data&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;(0xc)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;test&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;(0xd)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;payphone&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;(0xf)&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Screening values for Calling number, Calling Subscriber (Generic Number), and Location Number  ===&lt;br /&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 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 input of 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 values  ===&lt;br /&gt;
&lt;br /&gt;
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 value for this parameter at input of routing script is always false. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== sip_header values  ===&lt;br /&gt;
Contains a hash table of 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;
&amp;lt;pre&amp;gt;call[ :sip_header ] = {&amp;quot;P-my-custom-header&amp;quot;=&amp;gt;&amp;quot;value1&amp;quot;, &amp;quot;P-my-custom-header2&amp;quot;=&amp;gt;&amp;quot;value2&amp;quot;, &amp;quot;P-my-custom-header3&amp;quot;=&amp;gt;&amp;quot;value3&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
p_access_network_info = call[ :sip_header ][ 'P-Access-Network-Info' ] = &amp;quot;3GPP-E-UTRAN-FDD; utran-cell-id-3gpp=XYZ&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&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;
&lt;br /&gt;
=== sip uri parameters  ===&lt;br /&gt;
Access to parameters of several SIP headers (To, From, P-Asserted-Identity, Remote-Party-ID, Contact).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
call[ :calling_parameters ]           &lt;br /&gt;
call[ :called_parameters ]&lt;br /&gt;
call[ :private_address_parameters ]   (for P-Asserted-Identity or Remote-Party-ID)&lt;br /&gt;
call[ :contact_parameters ]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These parameters (if present) contains a hash with 3 keys: user_param, uri_param and header_param.&lt;br /&gt;
If a param has already a specific field (oli, isub, cpc, transport), it won't be present in the new generic structure.&lt;br /&gt;
By default, all parameters will be forwarded in a SIP to SIP call flow.&lt;br /&gt;
&lt;br /&gt;
Using this code in routing script:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
puts &amp;quot;calling_param        = #{ call[ :calling_parameters].inspect}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example, From header versus the call[ :calling_parameters] value:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
From:&amp;quot;test&amp;quot;&amp;lt;sip:4440000;user_param1=1;user_param2@10.3.10.217;uri_param3=3&amp;gt;;header_param4=4;tag=6F97303034343030002A2484&lt;br /&gt;
calling_param        = {&amp;quot;user_param&amp;quot;=&amp;gt;&amp;quot;user_param1=1;user_param2&amp;quot;, &amp;quot;uri_param&amp;quot;=&amp;gt;&amp;quot;uri_param3=3&amp;quot;, &amp;quot;header_param&amp;quot;=&amp;gt;&amp;quot;header_param4=4&amp;quot;}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
From:&amp;quot;test&amp;quot;&amp;lt;sip:4440000@10.3.10.217;user=phone&amp;gt;;tag=6F97303034343030002A2484&lt;br /&gt;
calling_param        = {&amp;quot;uri_param&amp;quot;=&amp;gt;&amp;quot;user=phone&amp;quot;}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example to insert outgoing parameters and overwrite received values.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
call [:calling_parameters] = {&amp;quot;user_param&amp;quot;=&amp;gt;&amp;quot;user_param7=7;user_param8&amp;quot;, &amp;quot;uri_param&amp;quot;=&amp;gt;&amp;quot;uri_param9=9&amp;quot;, &amp;quot;header_param&amp;quot;=&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;
    if call [:calling_parameters]&lt;br /&gt;
      if call [:calling_parameters][&amp;quot;uri_param&amp;quot;]&lt;br /&gt;
        call[:calling_parameters][&amp;quot;uri_param&amp;quot;] &amp;lt;&amp;lt; &amp;quot;;user=phone&amp;quot;&lt;br /&gt;
      else&lt;br /&gt;
        call [:calling_parameters][&amp;quot;uri_param&amp;quot;] = &amp;quot;user=phone&amp;quot;&lt;br /&gt;
      end&lt;br /&gt;
    else&lt;br /&gt;
      call [:calling_parameters] = {&amp;quot;uri_param&amp;quot;=&amp;gt;&amp;quot;user=phone&amp;quot;}&lt;br /&gt;
    end&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;
== 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;
&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;
&lt;br /&gt;
The following sections show how to access those different parameters from '''inside''' a filter.  The 'params' hash is the sole argument passed to a filter function and contains call, nap, route and bridge parameters.   This hash is created by the base_routing.rb scripts to regroup all relevant information just before calling the filter functions.&lt;br /&gt;
&lt;br /&gt;
=== Tone string format  ===&lt;br /&gt;
&lt;br /&gt;
All tone strings (:announcement_tone,&amp;amp;nbsp;:busy_tone,&amp;amp;nbsp;:ring_tone,&amp;amp;nbsp;:disconnect_tone) inside bridge parameters are using 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 to enable tone detection 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 raises 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 or not 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;
== 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 ] = []&lt;br /&gt;
  bridge[ :diversion_reason ] &amp;lt;&amp;lt; :busy&lt;br /&gt;
  bridge[ :diversion_reason ] &amp;lt;&amp;lt; :unconditional&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_reason_values|Redirecting number reason values]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Call transfer requests ==&lt;br /&gt;
Toolpack allows to relay [[Call transfer]] requests 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 field are 'read-only'. They won't be included in the outgoing call, as they represent the content of the call transfer request, not the outgoing call to make.&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;,&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;
         {: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;, &lt;br /&gt;
          :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;, &lt;br /&gt;
          :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;,&lt;br /&gt;
          :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;
== 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;signaling_type&amp;quot;                      Signaling type (SS7, ISDN, CASR2, SIP)&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;asr_statistics_struct&amp;quot;               Detailed Answer-Seizure Rate Statistics.&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;availability_detection_struct&amp;quot;       Detailed availibility detection Statistics&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;registration_struct&amp;quot;                 Detailed registration Statistics&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;
  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; If the nap status is part of a substructure, it's name in the routing scripts must be composed of the structure name appended by an underscore and the field name. &lt;br /&gt;
&lt;br /&gt;
For example the name to use for the global [[ASR]] percentage is: &lt;br /&gt;
&lt;br /&gt;
  asr_statistics_struct_global_asr_percent&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; It is also possible to add dynamic nap attributes in the web portal. These can be referenced by their name.&lt;br /&gt;
&lt;br /&gt;
== 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 passed to the routing script. This is equivalent to the incoming call parameters. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==== @nap_list  ====&lt;br /&gt;
&lt;br /&gt;
A list of hash containing the nap statuses. This is equivalent to the nap statuses at the time the call is to be routed. &lt;br /&gt;
&lt;br /&gt;
'''The nap list is hashed by the nap names in UPPERCASE.''' It is important to consider this when creating new dynamic route or nap attributes that may nap names that will be used to fetch a status. &lt;br /&gt;
&lt;br /&gt;
&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;br /&gt;
&lt;br /&gt;
[[category:Needs revising]]&lt;/div&gt;</summary>
		<author><name>Jasmin Letendre</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>2016-08-09T16:30:45Z</updated>
		
		<summary type="html">&lt;p&gt;Jasmin Letendre: Added value &amp;quot;video&amp;quot; for &amp;quot;information_transfer_capability&amp;quot;&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 params 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 gateway application will use to bridge the incoming call leg.  If more than one outgoing route is &amp;quot;accepted&amp;quot;, gateway will try them one by one in the same order 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;
{| 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;
| 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_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;
| &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_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 &amp;lt;br&amp;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: 'Called party number' IE - address signals&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:RequestURI - rn&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_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: '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;
| 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: '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;
| 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 'Forward 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;
| 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: 'Callinf 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&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;
| (read-only)&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;
| (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_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 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_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 UDP 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 UDP 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;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Noa values  ===&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;unknown_number (0x2)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;international_number (0x4)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;national_number (0x3)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;subscriber_number (0x1)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;network_specific (0x5)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;network_routing_national_format (0x7)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;network_routing_international_format (0x8)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;abbreviated_number (0x6)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;subscriber_number_operator_requested (0x71)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;national_number_operator_requested (0x72)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;international_number_operator_requested (0x73)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;no_number_present_operator_requested (0x74)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;no_number_present_cut_through_call_to_carrier (0x75)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;test_line_test_code (0x77)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;non_unique_subscriber_number (0x71)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;non_unique_national_number (0x73)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;non_unique_international_number (0x74)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;call_950_numbe (0x76)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;special_number (0x73)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;national_number_with_transit_network_selection (0x74)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;international_number_with_transit_network_selection (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;
&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;
values for calling_category&lt;br /&gt;
*&amp;lt;tt&amp;gt;unspecified&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;(0xa)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;unknown&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;(0x0)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;operator_french&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;(0x1)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;operator_english&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;(0x2)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;operator_german&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;(0x3)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;operator_russian&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;(0x4)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;operator_spanish&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;(0x5)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;subscriber&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;(0xa)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;subscriber_with_priority&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;(0xb)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;data&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;(0xc)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;test&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;(0xd)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;payphone&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;(0xf)&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Screening values for Calling number, Calling Subscriber (Generic Number), and Location Number  ===&lt;br /&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 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 input of 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 values  ===&lt;br /&gt;
&lt;br /&gt;
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 value for this parameter at input of routing script is always false. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== sip_header values  ===&lt;br /&gt;
Contains a hash table of 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;
&amp;lt;pre&amp;gt;call[ :sip_header ] = {&amp;quot;P-my-custom-header&amp;quot;=&amp;gt;&amp;quot;value1&amp;quot;, &amp;quot;P-my-custom-header2&amp;quot;=&amp;gt;&amp;quot;value2&amp;quot;, &amp;quot;P-my-custom-header3&amp;quot;=&amp;gt;&amp;quot;value3&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
p_access_network_info = call[ :sip_header ][ 'P-Access-Network-Info' ] = &amp;quot;3GPP-E-UTRAN-FDD; utran-cell-id-3gpp=XYZ&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&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;
&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;
== 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;
&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;
&lt;br /&gt;
The following sections show how to access those different parameters from '''inside''' a filter.  The 'params' hash is the sole argument passed to a filter function and contains call, nap, route and bridge parameters.   This hash is created by the base_routing.rb scripts to regroup all relevant information just before calling the filter functions.&lt;br /&gt;
&lt;br /&gt;
=== Tone string format  ===&lt;br /&gt;
&lt;br /&gt;
All tone strings (:announcement_tone,&amp;amp;nbsp;:busy_tone,&amp;amp;nbsp;:ring_tone,&amp;amp;nbsp;:disconnect_tone) inside bridge parameters are using 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 to enable tone detection 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 raises 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 or not 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;
== 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 ] = []&lt;br /&gt;
  bridge[ :diversion_reason ] &amp;lt;&amp;lt; :busy&lt;br /&gt;
  bridge[ :diversion_reason ] &amp;lt;&amp;lt; :unconditional&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_reason_values|Redirecting number reason values]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Call transfer requests ==&lt;br /&gt;
Toolpack allows to relay [[Call transfer]] requests 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 field are 'read-only'. They won't be included in the outgoing call, as they represent the content of the call transfer request, not the outgoing call to make.&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;,&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;
         {: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;, &lt;br /&gt;
          :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;, &lt;br /&gt;
          :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;,&lt;br /&gt;
          :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;
== 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;signaling_type&amp;quot;                      Signaling type (SS7, ISDN, CASR2, SIP)&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;asr_statistics_struct&amp;quot;               Detailed Answer-Seizure Rate Statistics.&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;availability_detection_struct&amp;quot;       Detailed availibility detection Statistics&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;registration_struct&amp;quot;                 Detailed registration Statistics&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;
  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; If the nap status is part of a substructure, it's name in the routing scripts must be composed of the structure name appended by an underscore and the field name. &lt;br /&gt;
&lt;br /&gt;
For example the name to use for the global [[ASR]] percentage is: &lt;br /&gt;
&lt;br /&gt;
  asr_statistics_struct_global_asr_percent&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; It is also possible to add dynamic nap attributes in the web portal. These can be referenced by their name.&lt;br /&gt;
&lt;br /&gt;
== 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 passed to the routing script. This is equivalent to the incoming call parameters. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==== @nap_list  ====&lt;br /&gt;
&lt;br /&gt;
A list of hash containing the nap statuses. This is equivalent to the nap statuses at the time the call is to be routed. &lt;br /&gt;
&lt;br /&gt;
'''The nap list is hashed by the nap names in UPPERCASE.''' It is important to consider this when creating new dynamic route or nap attributes that may nap names that will be used to fetch a status. &lt;br /&gt;
&lt;br /&gt;
&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;br /&gt;
&lt;br /&gt;
[[category:Needs revising]]&lt;/div&gt;</summary>
		<author><name>Jasmin Letendre</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/Toolpack_monitoring</id>
		<title>Toolpack monitoring</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/Toolpack_monitoring"/>
				<updated>2016-04-22T13:28:18Z</updated>
		
		<summary type="html">&lt;p&gt;Jasmin Letendre: /* Built-in monitoring analyzers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [[Tmonitor]] and [[Tmedia]] products both support [[Network_monitoring]].&lt;br /&gt;
&lt;br /&gt;
Monitoring features can be controlled with the [[Toolpack API]].&lt;br /&gt;
&lt;br /&gt;
Using these APIs, the Toolpack Gateway application supports built-in protocol analyzers that allow to monitor a TDM network, generate CDR logs and notify external applications of monitored TDM calls.&lt;br /&gt;
&lt;br /&gt;
=== The Toolpack Monitoring API ===&lt;br /&gt;
[[Image:Monitoring_API_overview.png|thumb|300px]]&lt;br /&gt;
The Toolpack monitoring API consists of function calls on the call leg class:&lt;br /&gt;
* StartMonitoring&lt;br /&gt;
* StopMonitoring&lt;br /&gt;
Corresponding events notify the call flow of monitoring state&lt;br /&gt;
* OnMonitoringStarted&lt;br /&gt;
* OnMonitoringDataReceived&lt;br /&gt;
&lt;br /&gt;
An application that need to do monitoring will first allocate media legs on the appropriate Line Service and Timeslot, then use the StartMonitoring function call to configure the monitoring parameters.&lt;br /&gt;
Among parameters, will be chosen:&lt;br /&gt;
* Mode (HDLC, SS7, CAS, RAW)&lt;br /&gt;
* Rate (64Kbps, 56Kbps, 48Kbps, 32Kbps, 16Kbps or 8Kbps)&lt;br /&gt;
* Timeslot sub-index (for rates of 32Kbps or less)&lt;br /&gt;
&lt;br /&gt;
Once monitoring is started, the application (call flow) will be notified of captured data through OnMonitoringDataReceived.&lt;br /&gt;
&lt;br /&gt;
For more information on this API, please refer to the following article, which covers the monitoring APIs:&lt;br /&gt;
[[CAF:_Working_With_Cmc_Call_Legs|Working with CMC Call Legs]]&lt;br /&gt;
&lt;br /&gt;
For more general information about using call legs in your application, please refer to this article:&lt;br /&gt;
[[CAF:_Working_With_Call_Legs|Working with Call Legs]]&lt;br /&gt;
&lt;br /&gt;
=== Built-in monitoring analyzers ===&lt;br /&gt;
[[Image:Monitoring_analyzer_overview.png|thumb|300px]]&lt;br /&gt;
The Toolpack framework includes &amp;quot;analyzer&amp;quot; classes that use the monitoring API to capture signaling messages on TDM links.&lt;br /&gt;
&lt;br /&gt;
The [[Toolpack_monitoring_isdn_analyzer|ISDN Analyzer]] will capture HDLC messages on the IDSN D-Channel, and analyze them to rebuild the call state of monitored ISDN calls.&lt;br /&gt;
&lt;br /&gt;
The user application can then be notified of a detected ISDN calls, and of any state change of this call (accepted, alerting, answered, terminating, terminated...).&lt;br /&gt;
&lt;br /&gt;
For more information about the analyzer API, refer to appropriate header files in Toolpack source code.&lt;br /&gt;
&lt;br /&gt;
=== Integration of monitoring analyzers in Toolpack Gateway ===&lt;br /&gt;
The analyzers are integrated into Toolpack's own Gateway application.&lt;br /&gt;
The Gateway application can be configured to monitor ISDN calls on the specified Line Services.&lt;br /&gt;
&lt;br /&gt;
Upon detection of ISDN calls, the Gateway application can generate CDR logs, and also forward the information to &amp;quot;generators&amp;quot; that will generate message toward an external application that needs to be notified of monitored ISDN calls.&lt;br /&gt;
&lt;br /&gt;
For information about the configuration of ISDN analyzers in Toolpack, please refer to the following article:&lt;br /&gt;
[[Toolpack_monitoring_isdn_analyzer|Toolpack ISDN Analyzer]]&lt;br /&gt;
&lt;br /&gt;
=== Toolpack monitoring generators ===&lt;br /&gt;
[[Image:Monitoring_generator_overview.png|thumb|300px]]&lt;br /&gt;
The Gateway application can attach &amp;quot;generators&amp;quot; to analyzers. A &amp;quot;generator&amp;quot; is receiving the analyzer's detected calls state changes, and generates corresponding events toward an external application.&lt;br /&gt;
&lt;br /&gt;
==== Toolpack SIP simulator ====&lt;br /&gt;
One of the &amp;quot;generators&amp;quot; provided with Toolpack is the &amp;quot;SIP Simulator&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This monitoring generator is &lt;br /&gt;
* simulating SIP messages that correspond to the ISDN state changes&lt;br /&gt;
* Forwarding captured TDM audio through RTP streams&lt;br /&gt;
&lt;br /&gt;
Using this SIP simulator with a monitoring analyzer allows any SIP monitoring software to be able to monitor a TDM link (ISDN for example).&lt;br /&gt;
&lt;br /&gt;
For information about the configuration of &amp;quot;SIP Simulators&amp;quot; in Toolpack, please refer to the following article:&lt;br /&gt;
[[Toolpack_monitoring_sip_simulator|Toolpack SIP Simulator]]&lt;/div&gt;</summary>
		<author><name>Jasmin Letendre</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>2014-11-05T12:28:29Z</updated>
		
		<summary type="html">&lt;p&gt;Jasmin Letendre: Fixed erroneous reason &amp;quot;circuit_not_available&amp;quot;. The right value is &amp;quot;requested_circuit_not_available&amp;quot;.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Call object  ==&lt;br /&gt;
&lt;br /&gt;
=== Get  ===&lt;br /&gt;
&lt;br /&gt;
Those function are used to get the call parameters. The possible parameters are described in the section &amp;quot;Call parameters&amp;quot; &lt;br /&gt;
&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 params 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 gateway application will use to bridge the incoming call leg.  If more than one outgoing route is &amp;quot;accepted&amp;quot;, gateway will try them one by one in the same order 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: &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;
| 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_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: 'Display information' IE - display information&amp;lt;br&amp;gt; &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;
| &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_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 &amp;lt;br&amp;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: 'Called party number' IE - address signals&amp;lt;br&amp;gt; &lt;br /&gt;
| SIP:RequestURI - rn&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_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: '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;
| 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: '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;
| 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 'Forward 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;
| 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 - Q931: 'Called party subaddress' IE - subaddress information&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 - Q931: 'Called party subaddress' IE - type of subaddress&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 - Q931: 'Calling party subaddress' IE - subaddress information&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: 'Callinf 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 - Q931: 'Calling party subaddress' IE - type of subaddress&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&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;
| (read-only)&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;
| (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_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 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;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
'''Notice:''' All values are documented in the '''noa_npi_remap.rb''' script and may change between major release.&lt;br /&gt;
&lt;br /&gt;
=== Noa values  ===&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;unknown_number (0x2)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;international_number (0x4)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;national_number (0x3)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;subscriber_number (0x1)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;network_specific (0x5)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;network_routing_national_format (0x7)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;network_routing_international_format (0x8)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;abbreviated_number (0x6)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;subscriber_number_operator_requested (0x71)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;national_number_operator_requested (0x72)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;international_number_operator_requested (0x73)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;no_number_present_operator_requested (0x74)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;no_number_present_cut_through_call_to_carrier (0x75)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;test_line_test_code (0x77)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;non_unique_subscriber_number (0x71)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;non_unique_national_number (0x73)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;non_unique_international_number (0x74)&amp;lt;/tt&amp;gt; &lt;br /&gt;
*&amp;lt;tt&amp;gt;call_950_numbe (0x76)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;special_number (0x73)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;national_number_with_transit_network_selection (0x74)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;international_number_with_transit_network_selection (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;
&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;
values for calling_category&lt;br /&gt;
*&amp;lt;tt&amp;gt;unspecified&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;(0xa)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;unknown&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;(0x0)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;operator_french&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;(0x1)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;operator_english&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;(0x2)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;operator_german&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;(0x3)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;operator_russian&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;(0x4)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;operator_spanish&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;(0x5)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;subscriber&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;(0xa)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;subscriber_with_priority&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;(0xb)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;data&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;(0xc)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;test&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;(0xd)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;payphone&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;(0xf)&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Screening values for Calling number, Calling Subscriber (Generic Number), and Location Number  ===&lt;br /&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;
&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 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. 0/false: Redirecting number (and original called number) is not forwarded to outgoing call leg 1/true: Redirecting number (and original called number) is forwarded to outgoing call leg The value for this parameter at input of 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;
=== 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 values  ===&lt;br /&gt;
&lt;br /&gt;
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 value for this parameter at input of routing script is always false. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== sip_header values  ===&lt;br /&gt;
Contains a hash table of 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;
&amp;lt;pre&amp;gt;call[ :sip_header ] = {&amp;quot;P-my-custom-header&amp;quot;=&amp;gt;&amp;quot;value1&amp;quot;, &amp;quot;P-my-custom-header2&amp;quot;=&amp;gt;&amp;quot;value2&amp;quot;, &amp;quot;P-my-custom-header3&amp;quot;=&amp;gt;&amp;quot;value3&amp;quot;}&amp;lt;/pre&amp;gt;&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;
&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;
== Route parameters  ==&lt;br /&gt;
&lt;br /&gt;
All route may have these parameters: &lt;br /&gt;
&lt;br /&gt;
*calling &lt;br /&gt;
*called &lt;br /&gt;
*nap &lt;br /&gt;
*remapped_calling &lt;br /&gt;
*remapped_called &lt;br /&gt;
*remapped_nap &lt;br /&gt;
*remapped_profile&lt;br /&gt;
*remapped_incoming_profile&lt;br /&gt;
&lt;br /&gt;
Additionally it is possible to add dynamic route attributes in the web portal. These can be referenced by their name.&lt;br /&gt;
&lt;br /&gt;
== 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 or wav files in different states of the call flow, like playing an announcement when the caller dials in. You can also manage the User to User information element. &lt;br /&gt;
&lt;br /&gt;
*announcement_tone &lt;br /&gt;
*call_progress_tone &lt;br /&gt;
*ring_tone &lt;br /&gt;
*max_call_duration &lt;br /&gt;
*call_duration_reason &lt;br /&gt;
*disconnect_tone &lt;br /&gt;
*uui &lt;br /&gt;
*uui_forward_enabled&lt;br /&gt;
&lt;br /&gt;
The following sections show how to access those different parameters from '''inside''' a filter.  The 'params' hash is the sole argument passed to a filter function and contains call, nap, route and bridge parameters.   This hash is created by the base_routing.rb scripts to regroup all relevant information just before calling the filter functions.&lt;br /&gt;
&lt;br /&gt;
=== Tone string format  ===&lt;br /&gt;
&lt;br /&gt;
All tone strings (:announcement_tone,&amp;amp;nbsp;:call_progress_tone,&amp;amp;nbsp;:ring_tone,&amp;amp;nbsp;:disconnect_tone) inside bridge parameters are using 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 repeat parameter: number of times to play the file (0 and 1 have the same result) &amp;lt;br&amp;gt;optional start_off parameter&amp;amp;nbsp;: Start offset in milliseconds &amp;lt;br&amp;gt;optional end_off parameter: End offset in milliseconds &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;Example: &amp;quot;file1.wav,file2.wav:-1&amp;quot; will play file1.wav one time and then play file2.wav in loop. &amp;lt;br&amp;gt;Example: &amp;quot;file1.wav:0:1000:3000,file2.wav:2:5000:10000&amp;quot; will play file1.wav from second 1 to second 3 then file2.wav from second 5 to second 10 two times. &amp;lt;br&amp;gt;Example: &amp;quot;file1.wav:0:0:30000&amp;quot; will play file1.wav one time for a max duration of 30 seconds. &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;
Prompt played on the incoming leg with the stream_server before any outgoing call is placed. The outgoing call occurs when the wav file is completed or when the &amp;quot;profile:Busy Tone max duration&amp;quot; is reached.&lt;br /&gt;
&lt;br /&gt;
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;
Answer 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;
=== call_progress_tone  ===&lt;br /&gt;
&lt;br /&gt;
params[:bridge][:call_progress_tone] = &amp;quot;no_route.wav&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Prompt played after &amp;quot;announcement_tone&amp;quot; when reason is not &amp;quot;ok&amp;quot; or when outgoing call disconnect before answer state. &amp;lt;br&amp;gt;&amp;quot;none&amp;quot; value is used to bypass &amp;quot;profile:Generate Busy (Congestion) Tone&amp;quot; and to play no audio prompt.&lt;br /&gt;
&lt;br /&gt;
==== call_progress_tone_answer ====&lt;br /&gt;
params[:bridge][:call_progress_tone_answer] = &amp;quot;yes&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Answer the call before playing the call progress 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;
=== ring_tone  ===&lt;br /&gt;
&lt;br /&gt;
params[:bridge][:ring_tone] = &amp;quot;ringing.wav&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Prompt played between alerting state and answer state. Bypass any other ring back tone (RBT) configured in profile. &lt;br /&gt;
&lt;br /&gt;
=== max_call_duration  ===&lt;br /&gt;
&lt;br /&gt;
params[:bridge][:max_call_duration] = &amp;quot;60000&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Maximum call duration in millisecond for the current bridge. This timer is started when entering answer state. &lt;br /&gt;
&lt;br /&gt;
=== call_duration_reason  ===&lt;br /&gt;
&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;
=== disconnect_tone  ===&lt;br /&gt;
&lt;br /&gt;
params[:bridge][:disconnect_tone] = &amp;quot;max_duration.wav&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Prompt played (on the incoming leg only) 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_answer ====&lt;br /&gt;
params[:bridge][:disconnect_tone_answer] = &amp;quot;yes&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Answer the call before playing the disconnect 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;
=== 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. 0/false: UUI is not forwarded to outgoing call leg 1/true: UUI is forwarded to outgoing call leg 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;
=== 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;
Provided paths are always relative to the &amp;quot;current working directory&amp;quot; of the tbstreamserver application:&lt;br /&gt;
 /lib/tb/toolpack/setup/12358/2.7/apps/tbstreamserver/&lt;br /&gt;
(Where &amp;quot;2.7&amp;quot; may be replaced by the current major version of your system)&lt;br /&gt;
&lt;br /&gt;
Absolute paths can also be provided.&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;
** @{DefaultName}: Same file name (without parent folder path) as the one used when empty string is provided&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}: Same path as the one used when empty string is provided&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;
** @{LinkId}: Current LinkId (Id common between all legs of this call bridge)&lt;br /&gt;
*** Example: &amp;quot;73EBA698&amp;quot;&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;
== 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;
== 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 ] = []&lt;br /&gt;
  bridge[ :diversion_reason ] &amp;lt;&amp;lt; :busy&lt;br /&gt;
  bridge[ :diversion_reason ] &amp;lt;&amp;lt; :unconditional&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_reason_values|Redirecting number reason values]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Call transfer requests ==&lt;br /&gt;
Toolpack allows to relay [[Call transfer]] requests 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 field are 'read-only'. They won't be included in the outgoing call, as they represent the content of the call transfer request, not the outgoing call to make.&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;
== 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;
  :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;
  :not_compatible_with_call_state&lt;br /&gt;
  :IE_non_existent&lt;br /&gt;
  :invalid_IE_content&lt;br /&gt;
  :message_not_compatible&lt;br /&gt;
  :recovery_on_timer_expiry&lt;br /&gt;
  :parameter_non_existent_passed_on&lt;br /&gt;
  :msg_with_non_recognized_param_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:&lt;br /&gt;
&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;signaling_type&amp;quot;                      Signaling type.&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;asr_statistics_struct&amp;quot;               Detailed Answer-Seizure Rate Statistics.&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;availability_detection_struct&amp;quot;       Detailed availibility detection Statistics&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;registration_struct&amp;quot;                 Detailed registration Statistics&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;
  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; If the nap status is part of a substructure, it's name in the routing scripts must be composed of the structure name appended by an underscore and the field name. &lt;br /&gt;
&lt;br /&gt;
For example the name to use for the global [[ASR]] percentage is: &lt;br /&gt;
&lt;br /&gt;
  asr_statistics_struct_global_asr_percent&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; It is also possible to add dynamic nap attributes in the web portal. These can be referenced by their name.&lt;br /&gt;
&lt;br /&gt;
== 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 passed to the routing script. This is equivalent to the incoming call parameters. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==== @nap_list  ====&lt;br /&gt;
&lt;br /&gt;
A list of hash containing the nap statuses. This is equivalent to the nap statuses at the time the call is to be routed. &lt;br /&gt;
&lt;br /&gt;
'''The nap list is hashed by the nap names in UPPERCASE.''' It is important to consider this when creating new dynamic route or nap attributes that may nap names that will be used to fetch a status. &lt;br /&gt;
&lt;br /&gt;
&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;
Example: @params = {:bridge =&amp;gt; {:announcement_tone, &amp;quot;announcement.wav&amp;quot;}}&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;br /&gt;
&lt;br /&gt;
[[category:Needs revising]]&lt;/div&gt;</summary>
		<author><name>Jasmin Letendre</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/H.248</id>
		<title>H.248</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/H.248"/>
				<updated>2014-06-09T14:47:51Z</updated>
		
		<summary type="html">&lt;p&gt;Jasmin Letendre: Added H.248.16 packages support&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Also known as Megaco, H.248 is a protocol for controlling media gateways via a [[Softswitch|softswitch]] or a [[Media gateway controller|media gateway controller]]. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== TelcoBridges and H.248  ==&lt;br /&gt;
&lt;br /&gt;
[[Toolpack]] now supports the H.248 protocol. &lt;br /&gt;
&lt;br /&gt;
As indicated in the diagram below, the H.248 stack is a module in the media gateway application residing on the application server. It communicates with the various Toolpack classes (CAFClass, [[CMC library|CMC Library]], CMC Class) as required via a new [[CAF: Working With Call Legs|Media Leg API]]. In turn, the media gateway application communicates with the softswitch / media gateway controller via the H.248 protocol. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; [[Image:H.248 schematic.jpg|H.248 schematic.jpg]] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== H.248 package support  ===&lt;br /&gt;
&lt;br /&gt;
[[Toolpack]] supports the following packages. &lt;br /&gt;
&lt;br /&gt;
*'''H.248.1''' &lt;br /&gt;
**Protocol v2 &lt;br /&gt;
**IPSec connection support &lt;br /&gt;
**Support UDP (2944 or user-defined)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*'''H.248.1 - Basic packages''' &lt;br /&gt;
**Generic &lt;br /&gt;
**Base Root &lt;br /&gt;
**Tone generator (for extension purposes only) &lt;br /&gt;
**Tone detection (for extension purposes only) &lt;br /&gt;
**Basic DTMF generation &lt;br /&gt;
**DTMF detection &lt;br /&gt;
**Call Progress Tones Generator (Ringing, Busy, Congestion and Warning tones supported)&lt;br /&gt;
**Basic continuity package &lt;br /&gt;
**Network package&lt;br /&gt;
**RTP package &lt;br /&gt;
**TDM Circuit package (only echo-cancellation)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*'''H.248.2 Facsimile, text conversation and call discrimination packages''' &lt;br /&gt;
**Fax/TextPhone/Modem tones detection (fax and data only) &lt;br /&gt;
**Call type discrimination package (fax and data only) &lt;br /&gt;
**IP Fax (Event: Fax Connection Change - end of fax session, call terminating)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*'''H.248.4 Transport over Stream Control Transmission Protocol (SCTP)'''&lt;br /&gt;
** Partial support&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*'''H.248.7 Generic announcement package''' &lt;br /&gt;
**Generic announcement package (Fix Announcement play only)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*'''H.248.10 Media gateway resource congestion handling package''' &lt;br /&gt;
**Congestion handling package&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*'''H.248.11 Media gateway overload control package''' &lt;br /&gt;
**Overload control package&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*'''H.248.13 Quality alert ceasing package''' &lt;br /&gt;
**Quality alert ceasing package&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*'''H.248.14 Inactivity timer package''' &lt;br /&gt;
**Inactivity timer package&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*'''H.248.16 Enhanced digit collection packages and procedures''' &lt;br /&gt;
**Extended DTMF detection package&lt;br /&gt;
**Enhanced DTMF detection package&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*'''H.248.25 Basic CAS packages''' &lt;br /&gt;
**Basic CAS package&lt;br /&gt;
**Basic CAS addressing&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*'''H.248.27 Supplemental tones packages''' &lt;br /&gt;
**Carrier tones generation package&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*'''H.248.28 International CAS packages''' &lt;br /&gt;
**International CAS&lt;br /&gt;
**CAS blocking&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*'''H.248.29 International CAS compelled register signalling packages''' &lt;br /&gt;
** Annex A.1 only in 'enbloc' compelled mode (International CAS Compelled package - No digitmap control: Digitmaps are preconfigured on MG)&lt;br /&gt;
&lt;br /&gt;
== Additional details  ==&lt;br /&gt;
&lt;br /&gt;
*Support for text mode only &lt;br /&gt;
*Not supported on Solaris builds&lt;br /&gt;
&lt;br /&gt;
== References  ==&lt;br /&gt;
*[[Web_Portal_Tutorial_Guide_v2.7#H.248|Web Portal v2.7: H.248 Configuration]]&lt;br /&gt;
*[[Toolpack_v2.5:Creating_an_H.248_Configuration|Configuring H.248 on TMG devices (v2.6 and before)]]&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Megaco Wikipedia article]&lt;br /&gt;
&lt;br /&gt;
[[Category:Glossary]]&lt;br /&gt;
[[Category:Tmedia_Features|H.248/Megaco]]&lt;br /&gt;
[[Category:Revise on Major]]&lt;/div&gt;</summary>
		<author><name>Jasmin Letendre</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/User_talk:Albert_Huynh</id>
		<title>User talk:Albert Huynh</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/User_talk:Albert_Huynh"/>
				<updated>2014-04-28T14:14:14Z</updated>
		
		<summary type="html">&lt;p&gt;Jasmin Letendre: Welcome!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Welcome to ''TBwiki''!'''&lt;br /&gt;
We hope you will contribute much and well.&lt;br /&gt;
You will probably want to read the [[Help:Contents|help pages]].&lt;br /&gt;
Again, welcome and have fun! [[User:Jasmin Letendre|Jasmin Letendre]] 10:14, 28 April 2014 (EDT)&lt;/div&gt;</summary>
		<author><name>Jasmin Letendre</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/User:Albert_Huynh</id>
		<title>User:Albert Huynh</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/User:Albert_Huynh"/>
				<updated>2014-04-28T14:14:14Z</updated>
		
		<summary type="html">&lt;p&gt;Jasmin Letendre: Creating user page with biography of new user.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ce fut un grand Vaisseau taillé dans l'or massif:&lt;br /&gt;
Ses mâts touchaient l'azur, sur des mers inconnues;&lt;br /&gt;
La Cyprine d'amour, cheveux épars, chairs nues,&lt;br /&gt;
S'étalait à sa proue, au soleil excessif.&lt;br /&gt;
&lt;br /&gt;
Mais il vint une nuit frapper le grand écueil&lt;br /&gt;
Dans l'Océan trompeur où chantait la Sirène,&lt;br /&gt;
Et le naufrage horrible inclina sa carène&lt;br /&gt;
Aux profondeurs du Gouffre, immuable cercueil.&lt;br /&gt;
&lt;br /&gt;
Ce fut un Vaisseau d'Or, dont les flancs diaphanes&lt;br /&gt;
Révélaient des trésors que les marins profanes,&lt;br /&gt;
Dégoût, Haine et Névrose, entre eux ont disputés.&lt;br /&gt;
&lt;br /&gt;
Que reste-t-il de lui dans la tempête brève ?&lt;br /&gt;
Qu'est devenu mon coeur, navire déserté?&lt;br /&gt;
Hélas! Il a sombré dans l'abîme du Rêve!&lt;/div&gt;</summary>
		<author><name>Jasmin Letendre</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/User_talk:Benjamin_Lavigne</id>
		<title>User talk:Benjamin Lavigne</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/User_talk:Benjamin_Lavigne"/>
				<updated>2014-04-16T18:58:57Z</updated>
		
		<summary type="html">&lt;p&gt;Jasmin Letendre: Welcome!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Welcome to ''TBwiki''!'''&lt;br /&gt;
We hope you will contribute much and well.&lt;br /&gt;
You will probably want to read the [[Help:Contents|help pages]].&lt;br /&gt;
Again, welcome and have fun! [[User:Jasmin Letendre|Jasmin Letendre]] 14:58, 16 April 2014 (EDT)&lt;/div&gt;</summary>
		<author><name>Jasmin Letendre</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/User:Benjamin_Lavigne</id>
		<title>User:Benjamin Lavigne</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/User:Benjamin_Lavigne"/>
				<updated>2014-04-16T18:58:57Z</updated>
		
		<summary type="html">&lt;p&gt;Jasmin Letendre: Creating user page with biography of new user.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Eugenie&lt;br /&gt;
 juin 2013 à Aujourd'hui&lt;br /&gt;
Membres de l'équipe : Benjamin Lavigne, Li Alin&lt;br /&gt;
Lʼeugénisme peut être défini comme lʼensemble des méthodes et pratiques visant à transformer le patrimoine génétique de lʼespèce humaine, dans le but de le faire tendre vers un idéal déterminé. Il peut être le fruit dʼune politique délibérément menée par un État. Il peut aussi être le résultat collectif dʼune somme de décisions individuelles convergentes prises par les futurs parents, dans une société où primerait la recherche de lʼ« enfant parfait », ou du moins indemne de nombreuses affections graves.&lt;/div&gt;</summary>
		<author><name>Jasmin Letendre</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/Parameter:_Filter_by_Local_Port</id>
		<title>Parameter: Filter by Local Port</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/Parameter:_Filter_by_Local_Port"/>
				<updated>2014-01-31T18:48:33Z</updated>
		
		<summary type="html">&lt;p&gt;Jasmin Letendre: /* When this parameter is disabled */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The '''Filter by local port''' parameter is used to determine if the [[NAP]] will accept only incoming calls arriving on one of it's assigned [[SIP Transport Server]].&lt;br /&gt;
(This option has no effect on outgoing calls on this [[NAP]])&lt;br /&gt;
&lt;br /&gt;
=== When this parameter is enabled ===&lt;br /&gt;
When this parameter is enabled (which we highly recommend), only incoming calls received on a [[SIP Transport Server]] assigned to a [[NAP]] will be considered as coming from that [[NAP]].&lt;br /&gt;
&lt;br /&gt;
=== When this parameter is disabled ===&lt;br /&gt;
When this parameter is disabled (not recommended), an incoming call received from this [[NAP]]'s proxy will be considered as coming from this [[NAP]] no matter which local [[SIP Transport Server]] the call was received on (including from a [[SIP Transport Server]] that is not assigned to the [[NAP]]).&lt;br /&gt;
&lt;br /&gt;
[[Category:Parameters]]&lt;/div&gt;</summary>
		<author><name>Jasmin Letendre</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/Parameter:_Filter_by_Local_Port</id>
		<title>Parameter: Filter by Local Port</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/Parameter:_Filter_by_Local_Port"/>
				<updated>2014-01-31T18:47:53Z</updated>
		
		<summary type="html">&lt;p&gt;Jasmin Letendre: /* When this parameter is enabled */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The '''Filter by local port''' parameter is used to determine if the [[NAP]] will accept only incoming calls arriving on one of it's assigned [[SIP Transport Server]].&lt;br /&gt;
(This option has no effect on outgoing calls on this [[NAP]])&lt;br /&gt;
&lt;br /&gt;
=== When this parameter is enabled ===&lt;br /&gt;
When this parameter is enabled (which we highly recommend), only incoming calls received on a [[SIP Transport Server]] assigned to a [[NAP]] will be considered as coming from that [[NAP]].&lt;br /&gt;
&lt;br /&gt;
=== When this parameter is disabled ===&lt;br /&gt;
When this parameter is disabled (not recommended), a incoming call received from this [[NAP]]'s proxy will be considered as coming from this [[NAP]] no matter which local [[SIP Transport Server]] the call was received on (including from a [[SIP Transport Server]] that is not assigned to the [[NAP]]).&lt;br /&gt;
&lt;br /&gt;
[[Category:Parameters]]&lt;/div&gt;</summary>
		<author><name>Jasmin Letendre</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/Parameter:_Filter_by_proxy_address</id>
		<title>Parameter: Filter by proxy address</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/Parameter:_Filter_by_proxy_address"/>
				<updated>2014-01-31T18:46:51Z</updated>
		
		<summary type="html">&lt;p&gt;Jasmin Letendre: /* When this parameter is enabled */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The '''Filter by proxy address''' parameter is used to control if the source IP of incoming SIP invites are compared with the '''Proxy address''' field of the [[NAP]] in order to determine if the call is coming from this [[NAP]].&lt;br /&gt;
&lt;br /&gt;
(This function has no effect on outgoing SIP calls on this [[NAP]])&lt;br /&gt;
&lt;br /&gt;
=== When this parameter is enabled ===&lt;br /&gt;
When this parameter is enabled (which we highly recommend), only incoming calls from a source IP address that matches the '''Proxy address''' of this [[NAP]] will be considered as coming from this [[NAP]].&lt;br /&gt;
&lt;br /&gt;
=== When this parameter is disabled ===&lt;br /&gt;
When this parameter is disabled (not recommended), any incoming call received on the local [[SIP Transport Server]] of this [[NAP]] will be considered as coming from this [[NAP]].&lt;br /&gt;
&lt;br /&gt;
This may cause multiple [[NAP]] to &amp;quot;match&amp;quot; the incoming call, in which case one of the matching [[NAP]] will be associated with the call (it's undefined which will be chosen).&lt;br /&gt;
&lt;br /&gt;
Note that this can be used to create a &amp;quot;default&amp;quot; [[NAP]] that accepts any incoming call.&lt;br /&gt;
&lt;br /&gt;
[[Category:Parameters]]&lt;/div&gt;</summary>
		<author><name>Jasmin Letendre</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/H.248</id>
		<title>H.248</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/H.248"/>
				<updated>2013-11-26T17:29:51Z</updated>
		
		<summary type="html">&lt;p&gt;Jasmin Letendre: /* H.248 package support */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Also known as Megaco, H.248 is a protocol for controlling media gateways via a [[Softswitch|softswitch]] or a [[Media gateway controller|media gateway controller]]. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== TelcoBridges and H.248  ==&lt;br /&gt;
&lt;br /&gt;
[[Toolpack]] now supports the H.248 protocol. &lt;br /&gt;
&lt;br /&gt;
As indicated in the diagram below, the H.248 stack is a module in the media gateway application residing on the application server. It communicates with the various Toolpack classes (CAFClass, [[CMC library|CMC Library]], CMC Class) as required via a new [[CAF: Working With Call Legs|Media Leg API]]. In turn, the media gateway application communicates with the softswitch / media gateway controller via the H.248 protocol. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; [[Image:H.248 schematic.jpg|H.248 schematic.jpg]] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== H.248 package support  ===&lt;br /&gt;
&lt;br /&gt;
[[Toolpack]] supports the following packages. &lt;br /&gt;
&lt;br /&gt;
*'''H.248.1''' &lt;br /&gt;
**Protocol v2 &lt;br /&gt;
**IPSec connection support &lt;br /&gt;
**Support UDP (2944 or user-defined)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*'''H.248.1 - Basic packages''' &lt;br /&gt;
**Generic &lt;br /&gt;
**Base Root &lt;br /&gt;
**Tone generator (for extension purposes only) &lt;br /&gt;
**Tone detection (for extension purposes only) &lt;br /&gt;
**Basic DTMF generation &lt;br /&gt;
**DTMF detection &lt;br /&gt;
**Call Progress Tones Generator (Ringing, Busy, Congestion and Warning tones supported)&lt;br /&gt;
**Basic continuity package &lt;br /&gt;
**Network package&lt;br /&gt;
**RTP package &lt;br /&gt;
**TDM Circuit package (only echo-cancellation)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*'''H.248.2 Facsimile, text conversation and call discrimination packages''' &lt;br /&gt;
**Fax/TextPhone/Modem tones detection (fax and data only) &lt;br /&gt;
**Call type discrimination package (fax and data only) &lt;br /&gt;
**IP Fax (Event: Fax Connection Change - end of fax session, call terminating)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*'''H.248.4 Transport over Stream Control Transmission Protocol (SCTP)'''&lt;br /&gt;
** Partial support&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*'''H.248.7 Generic announcement package''' &lt;br /&gt;
**Generic announcement package (Fix Announcement play only)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*'''H.248.10 Media gateway resource congestion handling package''' &lt;br /&gt;
**Congestion handling package&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*'''H.248.11 Media gateway overload control package''' &lt;br /&gt;
**Overload control package&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*'''H.248.13 Quality alert ceasing package''' &lt;br /&gt;
**Quality alert ceasing package&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*'''H.248.14 Inactivity timer package''' &lt;br /&gt;
**Inactivity timer package&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*'''H.248.25 Basic CAS packages''' &lt;br /&gt;
**Basic CAS package&lt;br /&gt;
**Basic CAS addressing&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*'''H.248.28 International CAS packages''' &lt;br /&gt;
**International CAS&lt;br /&gt;
**CAS blocking&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*'''H.248.29 International CAS compelled register signalling packages''' &lt;br /&gt;
** Annex A.1 only in 'enbloc' compelled mode (International CAS Compelled package - No digitmap control: Digitmaps are preconfigured on MG)&lt;br /&gt;
&lt;br /&gt;
== Additional details  ==&lt;br /&gt;
&lt;br /&gt;
*Support for text mode only &lt;br /&gt;
*Not supported on Solaris builds&lt;br /&gt;
&lt;br /&gt;
== References  ==&lt;br /&gt;
&lt;br /&gt;
*[[Toolpack_v2.5:Creating_an_H.248_Configuration|Configuring H.248 on TMG devices]]&amp;lt;br&amp;gt; &lt;br /&gt;
*[http://en.wikipedia.org/wiki/Megaco Wikipedia article]&lt;br /&gt;
&lt;br /&gt;
[[Category:Glossary]]&lt;br /&gt;
[[Category:Tmedia_Features|H.248/Megaco]]&lt;br /&gt;
[[Category:Revise on Major]]&lt;/div&gt;</summary>
		<author><name>Jasmin Letendre</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/H.248</id>
		<title>H.248</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/H.248"/>
				<updated>2013-11-26T17:29:15Z</updated>
		
		<summary type="html">&lt;p&gt;Jasmin Letendre: Updated H.248 package support&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Also known as Megaco, H.248 is a protocol for controlling media gateways via a [[Softswitch|softswitch]] or a [[Media gateway controller|media gateway controller]]. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== TelcoBridges and H.248  ==&lt;br /&gt;
&lt;br /&gt;
[[Toolpack]] now supports the H.248 protocol. &lt;br /&gt;
&lt;br /&gt;
As indicated in the diagram below, the H.248 stack is a module in the media gateway application residing on the application server. It communicates with the various Toolpack classes (CAFClass, [[CMC library|CMC Library]], CMC Class) as required via a new [[CAF: Working With Call Legs|Media Leg API]]. In turn, the media gateway application communicates with the softswitch / media gateway controller via the H.248 protocol. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; [[Image:H.248 schematic.jpg|H.248 schematic.jpg]] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== H.248 package support  ===&lt;br /&gt;
&lt;br /&gt;
[[Toolpack]] supports the following packages. &lt;br /&gt;
&lt;br /&gt;
*'''H.248.1''' &lt;br /&gt;
**Protocol v2 &lt;br /&gt;
**IPSec connection support &lt;br /&gt;
**Support UDP (2944 or user-defined)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*'''H.248.1 - Basic packages''' &lt;br /&gt;
**Generic &lt;br /&gt;
**Base Root &lt;br /&gt;
**Tone generator (for extension purposes only) &lt;br /&gt;
**Tone detection (for extension purposes only) &lt;br /&gt;
**Basic DTMF generation &lt;br /&gt;
**DTMF detection &lt;br /&gt;
**Call Progress Tones Generator (Ringing, Busy, Congestion and Warning tones supported)&lt;br /&gt;
**Basic continuity package &lt;br /&gt;
**Network package&lt;br /&gt;
**RTP package &lt;br /&gt;
**TDM Circuit package (only echo-cancellation)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*'''H.248.2 Facsimile, text conversation and call discrimination packages''' &lt;br /&gt;
**Fax/TextPhone/Modem tones detection (fax and data only) &lt;br /&gt;
**Call type discrimination package (fax and data only) &lt;br /&gt;
**IP Fax (Event: Fax Connection Change - end of fax session, call terminating)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*'''H.248.4 Transport over Stream Control Transmission Protocol (SCTP)'''&lt;br /&gt;
** Partial support&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*'''H.248.7 Generic announcement package''' &lt;br /&gt;
**Generic announcement package (Fix Announcement play only)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*'''H.248.10 Media gateway resource congestion handling package''' &lt;br /&gt;
**Congestion handling package&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*'''H.248.11 Media gateway overload control package''' &lt;br /&gt;
**Overload control package&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*'''H.248.13 Quality alert ceasing package''' &lt;br /&gt;
**Quality alert ceasing package&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*'''H.248.14 Inactivity timer package''' &lt;br /&gt;
**Inactivity timer package&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*'''H.248.25 Basic CAS packages''' &lt;br /&gt;
**Basic CAS package&lt;br /&gt;
**Basic CAS addressing&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*'''H.248.28 International CAS packages''' &lt;br /&gt;
**International CAS&lt;br /&gt;
**CAS blocking&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*'''H.248.29 International CAS compelled register signalling packages''' &lt;br /&gt;
** Annex A.1 only in 'enbloc' compelled mode (International CAS Compelled package - No digitmap control: Digitmaps are preconfigured on MG)&lt;br /&gt;
**&lt;br /&gt;
&lt;br /&gt;
== Additional details  ==&lt;br /&gt;
&lt;br /&gt;
*Support for text mode only &lt;br /&gt;
*Not supported on Solaris builds&lt;br /&gt;
&lt;br /&gt;
== References  ==&lt;br /&gt;
&lt;br /&gt;
*[[Toolpack_v2.5:Creating_an_H.248_Configuration|Configuring H.248 on TMG devices]]&amp;lt;br&amp;gt; &lt;br /&gt;
*[http://en.wikipedia.org/wiki/Megaco Wikipedia article]&lt;br /&gt;
&lt;br /&gt;
[[Category:Glossary]]&lt;br /&gt;
[[Category:Tmedia_Features|H.248/Megaco]]&lt;br /&gt;
[[Category:Revise on Major]]&lt;/div&gt;</summary>
		<author><name>Jasmin Letendre</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/System_Statistics</id>
		<title>System Statistics</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/System_Statistics"/>
				<updated>2013-05-27T15:38:29Z</updated>
		
		<summary type="html">&lt;p&gt;Jasmin Letendre: /* Statistics Collection */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;System Statistics is a tool that allows the monitoring of the evolution of the system status.&lt;br /&gt;
It gathers statistics at a fixed interval and stores them.&lt;br /&gt;
Those statistics can then be used to generate graphs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Statistics Collection == &lt;br /&gt;
The gathered statistics are determined by the Global Polling Level.&lt;br /&gt;
By default, this value is set to Level 3.&lt;br /&gt;
This means that only statistics level 3 or higher are queried.&lt;br /&gt;
A list of all the available statistics for your system can be found &lt;br /&gt;
on the [[Statistics Dictionary|statistics dictionary]] page.&lt;br /&gt;
&lt;br /&gt;
Statistics are queried at a fixed interval.&lt;br /&gt;
By default, this is set so statistics are queried once every 10 minutes.&lt;br /&gt;
Once queried, the statistics are saved on disk for future use.&lt;br /&gt;
If the statistics grow over a configurable size,&lt;br /&gt;
statistics will be deleted starting by the oldest ones.&lt;br /&gt;
This will, at most, delete a single day's statistics at a time.&lt;br /&gt;
&lt;br /&gt;
== Loggable Statistics ==&lt;br /&gt;
&lt;br /&gt;
*[[Toolpack:Loggable_Statistics_A|ToolpackToolpack v2.7:Loggable Statistics]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Configuration == &lt;br /&gt;
*[[Web_Portal_Tutorial_Guide_v2.7#Statistics|Toolpack v2.7: System Statistics]]&lt;/div&gt;</summary>
		<author><name>Jasmin Letendre</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/User_talk:Yves_St-Arnaud</id>
		<title>User talk:Yves St-Arnaud</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/User_talk:Yves_St-Arnaud"/>
				<updated>2012-10-22T13:25:55Z</updated>
		
		<summary type="html">&lt;p&gt;Jasmin Letendre: Welcome!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Welcome to ''TBwiki''!'''&lt;br /&gt;
We hope you will contribute much and well.&lt;br /&gt;
You will probably want to read the [[Help:Contents|help pages]].&lt;br /&gt;
Again, welcome and have fun! [[User:Jasmin Letendre|Jasmin Letendre]] 09:25, 22 October 2012 (EDT)&lt;/div&gt;</summary>
		<author><name>Jasmin Letendre</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/User:Yves_St-Arnaud</id>
		<title>User:Yves St-Arnaud</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/User:Yves_St-Arnaud"/>
				<updated>2012-10-22T13:25:55Z</updated>
		
		<summary type="html">&lt;p&gt;Jasmin Letendre: Creating user page with biography of new user.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I used to think that I could not go on &lt;br /&gt;
and life was nothing but an awful song &lt;br /&gt;
But now I know the meaning of true Love &lt;br /&gt;
I'm leaning on the Everlasting Arms.&lt;br /&gt;
&lt;br /&gt;
If I can see it &lt;br /&gt;
then I can do it &lt;br /&gt;
If I just believe it &lt;br /&gt;
there's nothing to it&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I believe I can fly &lt;br /&gt;
I believe I can touch the sky &lt;br /&gt;
I think about it every night and day &lt;br /&gt;
Spread my wings and fly away &lt;br /&gt;
I believe I can soar &lt;br /&gt;
I see me runnin' through that open door &lt;br /&gt;
I believe I can fly &lt;br /&gt;
I believe I can fly &lt;br /&gt;
I believe I can fly&lt;br /&gt;
&lt;br /&gt;
See, I was on the verge of breaking down &lt;br /&gt;
Sometimes silence can seem so loud &lt;br /&gt;
There are miracles in life I must achieve &lt;br /&gt;
But first I know it starts inside of me &lt;br /&gt;
Oh, if I can see it (whoo!) &lt;br /&gt;
then I can be it &lt;br /&gt;
If I just believe it &lt;br /&gt;
there's nothin' to it&lt;br /&gt;
&lt;br /&gt;
I believe I can fly &lt;br /&gt;
I believe I can touch the sky &lt;br /&gt;
I think about it every night and day &lt;br /&gt;
Spread my wings and fly away &lt;br /&gt;
I believe I can soar &lt;br /&gt;
I see me runnin' through that open door &lt;br /&gt;
I believe I can fly &lt;br /&gt;
I believe I can fly....whoo! &lt;br /&gt;
Oh, I believe I can fly&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hey, 'cuz I believe in You &lt;br /&gt;
Ohhhhhh &lt;br /&gt;
If I can see it &lt;br /&gt;
then I can do it &lt;br /&gt;
If I just believe it &lt;br /&gt;
there's nothin' to it.&lt;br /&gt;
&lt;br /&gt;
I believe I can fly....whoo! &lt;br /&gt;
I believe I can touch the sky &lt;br /&gt;
I think about it every night and day &lt;br /&gt;
Spread my wings and fly away &lt;br /&gt;
I believe I can soar &lt;br /&gt;
See me runnin' through that open door &lt;br /&gt;
I believe I can fly (I can fly!) &lt;br /&gt;
I believe I can fly (I can fly!) &lt;br /&gt;
I believe I can fly &lt;br /&gt;
If I just spread my wings (I can fly!) &lt;br /&gt;
I can fly (I can fly!) &lt;br /&gt;
I can fly (I can fly!) &lt;br /&gt;
I can fly (I can fly!) &lt;br /&gt;
Hey, if I just spread my wings &lt;br /&gt;
I can fly .....(I can fly!) whoo!! &lt;br /&gt;
(I can fly!) &lt;br /&gt;
fly............&lt;/div&gt;</summary>
		<author><name>Jasmin Letendre</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/Toolpack_prerequisite_Windows_XP_2-5</id>
		<title>Toolpack prerequisite Windows XP 2-5</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/Toolpack_prerequisite_Windows_XP_2-5"/>
				<updated>2012-10-03T15:22:51Z</updated>
		
		<summary type="html">&lt;p&gt;Jasmin Letendre: Fixed typo.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page shows the Toolpack 2-5 prerequisites for Windows XP.&lt;br /&gt;
&lt;br /&gt;
== Toolpack Prerequisite ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Toolpack Basic packages ===&lt;br /&gt;
&lt;br /&gt;
The software listed below is required by the host machines.&lt;br /&gt;
&lt;br /&gt;
1) Go to TelcoBridges download site and get:&lt;br /&gt;
 http://download.distribution.telcobridges.com/3rdparty/prerequisite/bin/windows/iconv-1.9.2.win32.zip&lt;br /&gt;
 http://download.distribution.telcobridges.com/3rdparty/prerequisite/bin/windows/libxml2-2.7.3.win32.zip&lt;br /&gt;
 http://download.distribution.telcobridges.com/3rdparty/prerequisite/bin/windows/zlib-1.2.3.win32.zip&lt;br /&gt;
2) Decompress and copy the DLL files to C:\Windows\System32&lt;br /&gt;
 iconv.dll&lt;br /&gt;
 libxml2.dll&lt;br /&gt;
 zlib1.dll&lt;br /&gt;
&lt;br /&gt;
==== MSVC8 Redistributable ====&lt;br /&gt;
If you plan on using TBToolPack-x.y.zz-&amp;lt;b&amp;gt;msvc8&amp;lt;/b&amp;gt;-Setup.exe, then you need to apply all windows updates from MicroSoft AND install the following:&lt;br /&gt;
&lt;br /&gt;
[http://download.distribution.telcobridges.com/3rdparty/prerequisite/bin/windows/vcredist_x86.exe Microsoft MSVC8 Redistributables 8.0.50727.4053 after kb973923 automatic update]&lt;br /&gt;
&lt;br /&gt;
[http://download.distribution.telcobridges.com/3rdparty/prerequisite/bin/windows/vcredist_msdev2005_x86_KB2467175.exe Microsoft MSVC8 Redistributables 8.0.50727.5592 after kb2467175 automatic update]&lt;br /&gt;
&lt;br /&gt;
=== Toolpack System Database ===&lt;br /&gt;
&lt;br /&gt;
The Toolpack system database is used by the main host and requires mySQL database server version 5.1 or later. It can be downloaded from the following location:&lt;br /&gt;
&lt;br /&gt;
1) Go to TelcoBridges download site and get:&lt;br /&gt;
 http://download.distribution.telcobridges.com/3rdparty/prerequisite/bin/windows/mysql-5.1.56-win32.msi&lt;br /&gt;
&lt;br /&gt;
2) Install MySQL 5.1&lt;br /&gt;
&lt;br /&gt;
*Choose complete installation&lt;br /&gt;
*Run MySQL Server Instance Configuration Wizard. (You should be prompted to do so after selecting complete installation.)&lt;br /&gt;
*Choose standard configuration&lt;br /&gt;
*Install as a Windows service and check, Launch Automatically.&lt;br /&gt;
*Choose Include Bin Directory in Windows PATH.&lt;br /&gt;
*Enter a User Name and Password, and note them down on paper as you will need them later in the installation process.&lt;br /&gt;
*Enable access from remote machines if you plan to run Tmedia Toolpack on more than one host machine.&lt;br /&gt;
&lt;br /&gt;
3) Create new database user (tbdb) with all privilege access&lt;br /&gt;
*Log in mysql and create a new user with priviledge&lt;br /&gt;
&lt;br /&gt;
 mysql -u root&lt;br /&gt;
 CREATE USER '[DatabaseUsername]'@'%' IDENTIFIED BY '[DatabasePassword]';&lt;br /&gt;
 GRANT ALL privileges ON *.* TO '[DatabaseUsername]'@'%' IDENTIFIED BY '[DatabasePassword]';&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Example&lt;br /&gt;
&lt;br /&gt;
 mysql -u root&lt;br /&gt;
 CREATE USER 'tbdb'@'%' IDENTIFIED BY 'tbdbpw';&lt;br /&gt;
 GRANT ALL privileges ON *.* TO 'tbdb'@'%' IDENTIFIED BY 'tbdbpw';&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
4) Install Mysql ODBC driver&lt;br /&gt;
*Get and install Mysql ODBC connector at:&lt;br /&gt;
 http://download.distribution.telcobridges.com/3rdparty/prerequisite/bin/windows/mysql-connector-odbc-3.51.27-win32.zip&lt;br /&gt;
*Install Mysql ODBC connector&lt;br /&gt;
&lt;br /&gt;
5) Enable mysql database replication&lt;br /&gt;
*Open configuration file at location similar to c:\Program Files\MySQL\MySQL Server 5.1\my.ini&lt;br /&gt;
*Add 2 new variable in the mysql config file, and make sure it is in the [mysqld] section:&lt;br /&gt;
 log-bin&lt;br /&gt;
 server-id=[UniqueId]       &amp;lt;--- [UniqueId] must be a non-zero value, and must be unique when used one each host of an HA system&lt;br /&gt;
&lt;br /&gt;
Add max_allowed_packet to increase the maximum size of binary blobs in the database.&lt;br /&gt;
Make sure it is in the [mysqld] section AND [mysqldump] section (create the [mysqldump] section if it doesn't exist)&lt;br /&gt;
 max_allowed_packet = 200MB&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 port=3306&lt;br /&gt;
 basedir=&amp;quot;C:/Program Files/MySQL/MySQL Server 5.1/&amp;quot;&lt;br /&gt;
 datadir=&amp;quot;C:/Documents and Settings/All Users/Application Data/MySQL/MySQL Server 5.1/Data/&amp;quot;&lt;br /&gt;
 default-character-set=latin1&lt;br /&gt;
 default-storage-engine=INNODB&lt;br /&gt;
 # Enable mysql database replication&lt;br /&gt;
 log-bin&lt;br /&gt;
 server-id=132&lt;br /&gt;
 max_allowed_packet = 200MB&lt;br /&gt;
 #&lt;br /&gt;
 sql-mode=&amp;quot;STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION&amp;quot;&lt;br /&gt;
 max_connections=100&lt;br /&gt;
 &lt;br /&gt;
 # section [mysqld_safe]&lt;br /&gt;
 table_cache=256&lt;br /&gt;
 tmp_table_size=18M&lt;br /&gt;
 thread_cache_size=8&lt;br /&gt;
 &lt;br /&gt;
 [mysqldump]&lt;br /&gt;
 max_allowed_packet = 200MB&lt;br /&gt;
&lt;br /&gt;
6) Disable virus scanning &lt;br /&gt;
&lt;br /&gt;
It is '''mandatory''' to disable the anti-virus software’s on access scan on the MYSQL database directory (generally C:\Program Files\MySQL\MySQL Server 5.0\data) and the Windows temporary directory(typically identified by the TEMP environmental variable), as this will prevent database backup operation to complete properly upon Toolpack System Update.&lt;br /&gt;
&lt;br /&gt;
7) Restart the mysql service&lt;br /&gt;
  net stop MySQL&lt;br /&gt;
  net start MySQL&lt;br /&gt;
*Warning: You may have a different service name in your system (ex. MySQL51, MySQL50, etc.). To open the service control panel, run:&lt;br /&gt;
  services.msc&lt;br /&gt;
&lt;br /&gt;
=== Toolpack System Web Portal ===&lt;br /&gt;
&lt;br /&gt;
1) Install Ruby&lt;br /&gt;
*Go to TelcoBridges download site and get:&lt;br /&gt;
   http://download.distribution.telcobridges.com/3rdparty/prerequisite/bin/windows/ruby186-27_rc2.exe&lt;br /&gt;
*Install Ruby 1.8.6, check the option &amp;quot;Enable RubyGems&amp;quot;, make sure the ''Add Ruby Executable to your path'' option is checked&lt;br /&gt;
2) Install Mongrel using the following commands.&lt;br /&gt;
*gem install mongrel --include-dependencies&lt;br /&gt;
*choose option 4. mongrel 1.1.5 (x86-mswin32-60)&lt;br /&gt;
&lt;br /&gt;
=== Toolpack Stream Server ===&lt;br /&gt;
&lt;br /&gt;
The Tmedia Toolpack Stream Server requires WinPCAP 4.0 or later. It can be downloaded from the following location:&lt;br /&gt;
&lt;br /&gt;
1) Go to http://www.winpcap.org/ and download WinPcap_4_0_2.exe&lt;br /&gt;
&lt;br /&gt;
2) Install WinPCAP 4.0   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Toolpack Development Prerequisite ===&lt;br /&gt;
&lt;br /&gt;
==== Cygwin ====&lt;br /&gt;
Telcobridges source package is compiled using unix Make application. For this you need to install Cygwin (Linux API layer for Windows).&lt;br /&gt;
&lt;br /&gt;
1) install the latest release of cygwin.&lt;br /&gt;
http://www.cygwin.com/&lt;br /&gt;
&lt;br /&gt;
2) The &amp;quot;make&amp;quot; package must be manually selected, it is not part of the standard cygwin installation.&lt;br /&gt;
*In the installer view, change to the &amp;quot;Full&amp;quot; view, search for the &amp;quot;make&amp;quot; package, click to install the latest version.&lt;br /&gt;
&lt;br /&gt;
==== MSDEV ====&lt;br /&gt;
The Makefiles uses Visual Studio C++ compiler and linker. '''The result compiled code has no dependency on the cygwin.dll library.'''&lt;br /&gt;
&lt;br /&gt;
The following Microsoft Visual Studio product could be be installed:&lt;br /&gt;
* Visual Studio 6.0 (1998) - MSVC6&lt;br /&gt;
* Visual Studio 2005 - MSVC8&lt;br /&gt;
&lt;br /&gt;
==== Folder &amp;quot;BashPrompt&amp;quot; Menu item ====&lt;br /&gt;
This small registry entry will add a folder command to the Explorer application. This helper command can be used by right-clicking on a folder where you want to launch a compilation, it will open a console window and setup the proper compiling environment.&lt;br /&gt;
&lt;br /&gt;
For Visual Studio 6.0 user, create a file named &amp;quot;BashPrompt1998.reg&amp;quot; with the following content:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Windows Registry Editor Version 5.00&lt;br /&gt;
[HKEY_CLASSES_ROOT\Folder\shell\BashPrompt1998]&lt;br /&gt;
[HKEY_CLASSES_ROOT\Folder\shell\BashPrompt1998\command]&lt;br /&gt;
@=&amp;quot;cmd.exe /k pushd \&amp;quot;%L\&amp;quot; &amp;amp;&amp;amp; \&amp;quot;C:\\Program Files\\Microsoft Visual Studio\\VC98\\Bin\\VCVARS32.BAT\&amp;quot; &amp;amp;&amp;amp; bash&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Make sure the path is the same as your installation path.&lt;br /&gt;
*Double click on the file to install in the registry.&lt;br /&gt;
&lt;br /&gt;
For Visual Studio 2005 user, create a file named &amp;quot;BashPrompt2005.reg&amp;quot; with the following content:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Windows Registry Editor Version 5.00&lt;br /&gt;
[HKEY_CLASSES_ROOT\Folder\shell\BashPrompt2005]&lt;br /&gt;
[HKEY_CLASSES_ROOT\Folder\shell\BashPrompt2005\command]&lt;br /&gt;
@=&amp;quot;cmd.exe /k pushd \&amp;quot;%L\&amp;quot; &amp;amp;&amp;amp; \&amp;quot;C:\\Program Files\\Microsoft Visual Studio 8\\VC\\Bin\\VCVARS32.BAT\&amp;quot; &amp;amp;&amp;amp; bash&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Make sure the path is the same as your installation path.&lt;br /&gt;
*Double click on the file to install in the registry.&lt;br /&gt;
&lt;br /&gt;
==== Environment variable ====&lt;br /&gt;
To finalize the compiling environment, you must set the following system variable environment ('''Start-&amp;gt;Settings-&amp;gt;Control Panel-&amp;gt;System-&amp;gt;Advanced Tab-&amp;gt;Environment variables'''):&lt;br /&gt;
&lt;br /&gt;
1) add the following path to the &amp;quot;PATH&amp;quot; environment variable, each is separated by a semi-column (;)&lt;br /&gt;
* C:\cygwin\bin;&lt;br /&gt;
* C:\Ruby\bin;&lt;br /&gt;
&lt;br /&gt;
2) add the following variable:&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;80&amp;quot; style=&amp;quot;background: none repeat scroll 0% 0% rgb(255, 255, 255);&amp;quot; | Name &lt;br /&gt;
! width=&amp;quot;80&amp;quot; style=&amp;quot;background: none repeat scroll 0% 0% rgb(255, 255, 255);&amp;quot; | Value&lt;br /&gt;
|-&lt;br /&gt;
! width=&amp;quot;80&amp;quot; style=&amp;quot;background: none repeat scroll 0% 0% rgb(255, 255, 255);&amp;quot; | MAKE_MODE&lt;br /&gt;
! width=&amp;quot;80&amp;quot; style=&amp;quot;background: none repeat scroll 0% 0% rgb(255, 255, 255);&amp;quot; | unix&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Validation Guide (Optional) ==&lt;br /&gt;
If you would like to verify your installation go to the [[Toolpack_Installation:Validate_Toolpack_Installation_2-5|Toolpack Validation Guide]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Toolpack System installation ==&lt;br /&gt;
&lt;br /&gt;
Now that the prerequisite are installed, now it is time to install the [[toolpack_installer_2-5|Toolpack system]]&lt;/div&gt;</summary>
		<author><name>Jasmin Letendre</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/Toolpack_prerequisite_Windows_XP_2-5</id>
		<title>Toolpack prerequisite Windows XP 2-5</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/Toolpack_prerequisite_Windows_XP_2-5"/>
				<updated>2012-10-03T15:22:31Z</updated>
		
		<summary type="html">&lt;p&gt;Jasmin Letendre: Fixed typo.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page shows the Toolpack 2-5 prerequisites for Windows XP.&lt;br /&gt;
&lt;br /&gt;
== Toolpack Prerequisite ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Toolpack Basic packages ===&lt;br /&gt;
&lt;br /&gt;
The software listed below is required by the host machines.&lt;br /&gt;
&lt;br /&gt;
1) Go to TelcoBridges download site and get:&lt;br /&gt;
 http://download.distribution.telcobridges.com/3rdparty/prerequisite/bin/windows/iconv-1.9.2.win32.zip&lt;br /&gt;
 http://download.distribution.telcobridges.com/3rdparty/prerequisite/bin/windows/libxml2-2.7.3.win32.zip&lt;br /&gt;
 http://download.distribution.telcobridges.com/3rdparty/prerequisite/bin/windows/zlib-1.2.3.win32.zip&lt;br /&gt;
2) Decompress and copy the DLL files to C:\Windows\System32&lt;br /&gt;
 iconv.dll&lt;br /&gt;
 libxml2.dll&lt;br /&gt;
 zlib1.dll&lt;br /&gt;
&lt;br /&gt;
==== MSVC8 Redistributable ====&lt;br /&gt;
If you plan on using TBToolPack-x.y.zz-&amp;lt;b&amp;gt;msvc8&amp;lt;/b&amp;gt;-Setup.exe, then you need to apply all windows updates from MicroSoft AND install the following:&lt;br /&gt;
&lt;br /&gt;
[http://download.distribution.telcobridges.com/3rdparty/prerequisite/bin/windows/vcredist_x86.exe Microsoft MSVC8 Redistributables 8.0.50727.4053 after kb973923 automatic update]&lt;br /&gt;
&lt;br /&gt;
[http://download.distribution.telcobridges.com/3rdparty/prerequisite/bin/windows/vcredist_msdev2005_x86_KB2467175.exe Microsoft MSVC8 Redistributables 8.0.50727.5592 after kb2467175 automatic update]&lt;br /&gt;
&lt;br /&gt;
=== Toolpack System Database ===&lt;br /&gt;
&lt;br /&gt;
The Toolpack system database is used by the main host and requires mySQL database server version 5.1 or later. It can be downloaded from the following location:&lt;br /&gt;
&lt;br /&gt;
1) Go to TelcoBridges download site and get:&lt;br /&gt;
 http://download.distribution.telcobridges.com/3rdparty/prerequisite/bin/windows/mysql-5.1.56-win32.msi&lt;br /&gt;
&lt;br /&gt;
2) Install MySQL 5.1&lt;br /&gt;
&lt;br /&gt;
*Choose complete installation&lt;br /&gt;
*Run MySQL Server Instance Configuration Wizard. (You should be prompted to do so after selecting complete installation.)&lt;br /&gt;
*Choose standard configuration&lt;br /&gt;
*Install as a Windows service and check, Launch Automatically.&lt;br /&gt;
*Choose Include Bin Directory in Windows PATH.&lt;br /&gt;
*Enter a User Name and Password, and note them down on paper as you will need them later in the installation process.&lt;br /&gt;
*Enable access from remote machines if you plan to run Tmedia Toolpack on more than one host machine.&lt;br /&gt;
&lt;br /&gt;
3) Create new database user (tbdb) with all privilege access&lt;br /&gt;
*Log in mysql and create a new user with priviledge&lt;br /&gt;
&lt;br /&gt;
 mysql -u root&lt;br /&gt;
 CREATE USER '[DatabaseUsername]'@'%' IDENTIFIED BY '[DatabasePassword]';&lt;br /&gt;
 GRANT ALL privileges ON *.* TO '[DatabaseUsername]'@'%' IDENTIFIED BY '[DatabasePassword]';&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Example&lt;br /&gt;
&lt;br /&gt;
 mysql -u root&lt;br /&gt;
 CREATE USER 'tbdb'@'%' IDENTIFIED BY 'tbdbpw';&lt;br /&gt;
 GRANT ALL privileges ON *.* TO 'tbdb'@'%' IDENTIFIED BY 'tbdbpw';&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
4) Install Mysql ODBC driver&lt;br /&gt;
*Get and install Mysql ODBC connector at:&lt;br /&gt;
 http://download.distribution.telcobridges.com/3rdparty/prerequisite/bin/windows/mysql-connector-odbc-3.51.27-win32.zip&lt;br /&gt;
*Install Mysql ODBC connector&lt;br /&gt;
&lt;br /&gt;
5) Enable mysql database replication&lt;br /&gt;
*Open configuration file at location similar to c:\Program Files\MySQL\MySQL Server 5.1\my.ini&lt;br /&gt;
*Add 2 new variable in the mysql config file, and make sure it is in the [mysqld] section:&lt;br /&gt;
 log-bin&lt;br /&gt;
 server-id=[UniqueId]       &amp;lt;--- [UniqueId] must be a non-zero value, and must be unique when used one each host of an HA system&lt;br /&gt;
&lt;br /&gt;
Add max_allowed_packet to increase the maximum size of binary blobs in the database.&lt;br /&gt;
Make sure it is in the [mysqld] section AND [mysqldump] section (create the [mysqldump] section if it doesn't exist)&lt;br /&gt;
 max_allowed_packet = 200MB&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 port=3306&lt;br /&gt;
 basedir=&amp;quot;C:/Program Files/MySQL/MySQL Server 5.1/&amp;quot;&lt;br /&gt;
 datadir=&amp;quot;C:/Documents and Settings/All Users/Application Data/MySQL/MySQL Server 5.1/Data/&amp;quot;&lt;br /&gt;
 default-character-set=latin1&lt;br /&gt;
 default-storage-engine=INNODB&lt;br /&gt;
 # Enable mysql database replication&lt;br /&gt;
 log-bin&lt;br /&gt;
 server-id=132&lt;br /&gt;
 max_allowed_packet = 200MB&lt;br /&gt;
 #&lt;br /&gt;
 sql-mode=&amp;quot;STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION&amp;quot;&lt;br /&gt;
 max_connections=100&lt;br /&gt;
 &lt;br /&gt;
 # section [mysqld_safe]&lt;br /&gt;
 table_cache=256&lt;br /&gt;
 tmp_table_size=18M&lt;br /&gt;
 thread_cache_size=8&lt;br /&gt;
 &lt;br /&gt;
 [mysqldump]&lt;br /&gt;
 max_allowed_packet = 200MB&lt;br /&gt;
&lt;br /&gt;
6) Disable virus scanning &lt;br /&gt;
&lt;br /&gt;
It is '''mandatory''' to disable the anti-virus software’s on access scan on the MYSQL database directory (generally C:\Program Files\MySQL\MySQL Server 5.0\data) and the Windows temporary directory(typically identified by the TEMP environmental variable), as this will prevent database backup operation to complete properly upon Toolpack System Update.&lt;br /&gt;
&lt;br /&gt;
7) Restart the mysql service&lt;br /&gt;
  net stop MySQL&lt;br /&gt;
  net start MySQL&lt;br /&gt;
*Warning: You may have a different service name in your system (ex. MySQL51, MySQL50, etc.). To open the service control panel, run:&lt;br /&gt;
  services.msc&lt;br /&gt;
&lt;br /&gt;
=== Toolpack System Web Portal ===&lt;br /&gt;
&lt;br /&gt;
1) Install Ruby&lt;br /&gt;
*Go to TelcoBridges download site and get:&lt;br /&gt;
   http://download.distribution.telcobridges.com/3rdparty/prerequisite/bin/windows/ruby186-27_rc2.exe&lt;br /&gt;
*Install Ruby 1.8.6, check the option &amp;quot;Enable RubyGems&amp;quot;, make sure the ''Add Ruby Executable to your path'' option is checked&lt;br /&gt;
2) Install Mongrel using the following commands.&lt;br /&gt;
*gem install mongrel --include-dependencies&lt;br /&gt;
*choose option 4. mongrel 1.1.5 (x86-mswin32-60)&lt;br /&gt;
&lt;br /&gt;
=== Toolpack Stream Server ===&lt;br /&gt;
&lt;br /&gt;
The Tmedia Toolpack Stream Server requires WinPCAP 4.0 or later. It can be downloaded from the following location:&lt;br /&gt;
&lt;br /&gt;
1) Go to http://www.winpcap.org/ and download WinPcap_4_0_2.exe&lt;br /&gt;
&lt;br /&gt;
2) Install WinPCAP 4.0   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Toolpack Development Prerequisite ===&lt;br /&gt;
&lt;br /&gt;
==== Cygwin ====&lt;br /&gt;
Telcobridges source package is compiled using unix Make application. For this you need to install Cygwin (Linux API layer for Windows).&lt;br /&gt;
&lt;br /&gt;
1) install the latest release of cygwin.&lt;br /&gt;
http://www.cygwin.com/&lt;br /&gt;
&lt;br /&gt;
2) The &amp;quot;make&amp;quot; package must be manually selected, it is not part of the standard cygwin installation.&lt;br /&gt;
*In the installer view, change to the &amp;quot;Full&amp;quot; view, search for the &amp;quot;make&amp;quot; package, click to install the latest version.&lt;br /&gt;
&lt;br /&gt;
==== MSDEV ====&lt;br /&gt;
The Makefiles uses Visual Studio C++ compiler and linker. '''The result compiled code as no dependency on the cygwin.dll library.'''&lt;br /&gt;
&lt;br /&gt;
The following Microsoft Visual Studio product could be be installed:&lt;br /&gt;
* Visual Studio 6.0 (1998) - MSVC6&lt;br /&gt;
* Visual Studio 2005 - MSVC8&lt;br /&gt;
&lt;br /&gt;
==== Folder &amp;quot;BashPrompt&amp;quot; Menu item ====&lt;br /&gt;
This small registry entry will add a folder command to the Explorer application. This helper command can be used by right-clicking on a folder where you want to launch a compilation, it will open a console window and setup the proper compiling environment.&lt;br /&gt;
&lt;br /&gt;
For Visual Studio 6.0 user, create a file named &amp;quot;BashPrompt1998.reg&amp;quot; with the following content:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Windows Registry Editor Version 5.00&lt;br /&gt;
[HKEY_CLASSES_ROOT\Folder\shell\BashPrompt1998]&lt;br /&gt;
[HKEY_CLASSES_ROOT\Folder\shell\BashPrompt1998\command]&lt;br /&gt;
@=&amp;quot;cmd.exe /k pushd \&amp;quot;%L\&amp;quot; &amp;amp;&amp;amp; \&amp;quot;C:\\Program Files\\Microsoft Visual Studio\\VC98\\Bin\\VCVARS32.BAT\&amp;quot; &amp;amp;&amp;amp; bash&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Make sure the path is the same as your installation path.&lt;br /&gt;
*Double click on the file to install in the registry.&lt;br /&gt;
&lt;br /&gt;
For Visual Studio 2005 user, create a file named &amp;quot;BashPrompt2005.reg&amp;quot; with the following content:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Windows Registry Editor Version 5.00&lt;br /&gt;
[HKEY_CLASSES_ROOT\Folder\shell\BashPrompt2005]&lt;br /&gt;
[HKEY_CLASSES_ROOT\Folder\shell\BashPrompt2005\command]&lt;br /&gt;
@=&amp;quot;cmd.exe /k pushd \&amp;quot;%L\&amp;quot; &amp;amp;&amp;amp; \&amp;quot;C:\\Program Files\\Microsoft Visual Studio 8\\VC\\Bin\\VCVARS32.BAT\&amp;quot; &amp;amp;&amp;amp; bash&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Make sure the path is the same as your installation path.&lt;br /&gt;
*Double click on the file to install in the registry.&lt;br /&gt;
&lt;br /&gt;
==== Environment variable ====&lt;br /&gt;
To finalize the compiling environment, you must set the following system variable environment ('''Start-&amp;gt;Settings-&amp;gt;Control Panel-&amp;gt;System-&amp;gt;Advanced Tab-&amp;gt;Environment variables'''):&lt;br /&gt;
&lt;br /&gt;
1) add the following path to the &amp;quot;PATH&amp;quot; environment variable, each is separated by a semi-column (;)&lt;br /&gt;
* C:\cygwin\bin;&lt;br /&gt;
* C:\Ruby\bin;&lt;br /&gt;
&lt;br /&gt;
2) add the following variable:&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;80&amp;quot; style=&amp;quot;background: none repeat scroll 0% 0% rgb(255, 255, 255);&amp;quot; | Name &lt;br /&gt;
! width=&amp;quot;80&amp;quot; style=&amp;quot;background: none repeat scroll 0% 0% rgb(255, 255, 255);&amp;quot; | Value&lt;br /&gt;
|-&lt;br /&gt;
! width=&amp;quot;80&amp;quot; style=&amp;quot;background: none repeat scroll 0% 0% rgb(255, 255, 255);&amp;quot; | MAKE_MODE&lt;br /&gt;
! width=&amp;quot;80&amp;quot; style=&amp;quot;background: none repeat scroll 0% 0% rgb(255, 255, 255);&amp;quot; | unix&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Validation Guide (Optional) ==&lt;br /&gt;
If you would like to verify your installation go to the [[Toolpack_Installation:Validate_Toolpack_Installation_2-5|Toolpack Validation Guide]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Toolpack System installation ==&lt;br /&gt;
&lt;br /&gt;
Now that the prerequisite are installed, now it is time to install the [[toolpack_installer_2-5|Toolpack system]]&lt;/div&gt;</summary>
		<author><name>Jasmin Letendre</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/Configure_Fax_Relay_C</id>
		<title>Configure Fax Relay C</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/Configure_Fax_Relay_C"/>
				<updated>2012-07-13T12:44:04Z</updated>
		
		<summary type="html">&lt;p&gt;Jasmin Letendre: /* Applies to version(s): v2.7. */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== '''''Applies to version(s): v2.7.''''' ===&lt;br /&gt;
{{DISPLAYTITLE:Configure Fax Relay}}&lt;br /&gt;
&lt;br /&gt;
This is the list of fax Options.&lt;br /&gt;
To see that list, you have to go in a Profile, then in section Fax/Modem Relay.&lt;br /&gt;
&lt;br /&gt;
'''Fax Relay'''&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;210&amp;quot; style=&amp;quot;background: none repeat scroll 0% 0% rgb(239, 239, 239);&amp;quot; | Options&lt;br /&gt;
! width=&amp;quot;610&amp;quot; style=&amp;quot;background: none repeat scroll 0% 0% rgb(239, 239, 239);&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| Enable Fax Relay&lt;br /&gt;
| This option is the global option telling if faxes (Passthrough or T38) will be relayed or not.&lt;br /&gt;
|-&lt;br /&gt;
| Detection Mode&lt;br /&gt;
| This option contains one of the following mode: Standard, Use relay mode on any tone or Always Relay.&amp;lt;br/&amp;gt;&lt;br /&gt;
Standard: Fax tones and T.38 re-invites will trigger fax relay mode. Modem tones and passthrough re-invites will trigger passthrough mode, though fax detection will still continue.&amp;lt;br/&amp;gt;&lt;br /&gt;
Use relay mode on any tone: Both fax and modem tones will immediately cause switch to the chosen relay mode (without going to passthrough first for modem tones).&amp;lt;br/&amp;gt;&lt;br /&gt;
Always relay: Calls are directly invited using the specified relay mode, without waiting for any fax/modem tone. This improves performance when the calls are known to always be fax or modem (e.g. when connecting with a fax server).&lt;br /&gt;
|-&lt;br /&gt;
| Relay Mode&lt;br /&gt;
| This option is to choose which mode of fax will be used. This option contains one of the following mode: T.38 or Passthrough.&amp;lt;br/&amp;gt;&lt;br /&gt;
T.38: This relay mode is used for faxes modulated in IP. &amp;lt;br/&amp;gt;&lt;br /&gt;
Passthrough: Fax passthrough encodes fax traffic with in a G.711 (ulaw or alaw) voice codec and sends it across the VoIP network as a voice call. In this mode, echo cancellers are disabled, there's a fixed jitter buffer and there's no Voice Activity Detection.&lt;br /&gt;
|-&lt;br /&gt;
| Modem vs. Fax distinction timeout&lt;br /&gt;
| This option is the time we wait after we got the CED, to get V21 flags.&lt;br /&gt;
This is to avoid to send a SIP re-invite in passthrough and few ms after, when we realize it's a faxes, send another SIP&lt;br /&gt;
re-invite in T38.&lt;br /&gt;
Since CED is both for modem and faxes, we have the choice to wait a few ms before taking the &amp;quot;final&amp;quot; decision.&lt;br /&gt;
The best choice depends on the setup. In general, 0ms will work fine. If the endpoint is T.38, then the option &amp;quot;Always Relay&amp;quot; will override the &amp;quot;Modem vs. Fax distinction timeout&amp;quot;. Otherwise, 500ms will save a re-invite, but takes&lt;br /&gt;
longer to switch to passthrough if the final result is modem.&lt;br /&gt;
|-&lt;br /&gt;
| Fax tones detection duration&lt;br /&gt;
| This option is the maximum time (in seconds) to listen for FAX tones. After that delay, FAX tones are ignored. This avoids false FAX detection later in the call when a sound in an audio conversation has frequencies very similar to a FAX tone. Default time is 30 seconds. Can be set to 0 to keep fax detection enabled throughout the entire call.&lt;br /&gt;
|-&lt;br /&gt;
| Enable early Fax/Modem tone detection&lt;br /&gt;
| This option is used to detect longer fax tones (CED and CNG) faster. Fax tones will be reported at the beginning of the detection instead of waiting to validate the tone duration before reporting. The drawback is that it increases the chance of detecting false positive, since these fax tones are single frequency tone and can appear frequently in an audio conversation. We suggest to keep this option turned off to avoid these false positives.&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Enable switching to fax relay upon CNG tone&lt;br /&gt;
| This option indicates if the detection of a CNG tone will trigger a switch to fax relay mode. We recommend to leave this option enabled for faster switch to fax in most setup.&amp;lt;br/&amp;gt;&lt;br /&gt;
Note: this option works only if the sender Fax is on TDM (this option will do nothing if the sender fax is on SIP).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''T.38 Params'''&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;210&amp;quot; style=&amp;quot;background: none repeat scroll 0% 0% rgb(239, 239, 239);&amp;quot; | Options&lt;br /&gt;
! width=&amp;quot;610&amp;quot; style=&amp;quot;background: none repeat scroll 0% 0% rgb(239, 239, 239);&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| Use V.34&lt;br /&gt;
| This option activates support for V.34 faxes. By using that option, faxes can be transferred at speed up to 33.6 Kbps.&amp;lt;br/&amp;gt;&lt;br /&gt;
If disabled, only V.17 faxes will be supported (transfer speed up to 14.4 Kbps). &amp;lt;br/&amp;gt;&lt;br /&gt;
Before using this option, you also need to enable V.34 Globally on each Telecom unit:&lt;br /&gt;
   Hardware -&amp;gt; TB00xxxx [Edit] -&amp;gt; Advanced Parameters -&amp;gt; Enable V.34 fax&lt;br /&gt;
After this has been done, a restart of the Telecom unit is required:&lt;br /&gt;
   Status Tab -&amp;gt; Reboot adapter -&amp;gt; Yes [Apply States]&lt;br /&gt;
|-&lt;br /&gt;
| Max bitrate&lt;br /&gt;
| This option is used to limit the maximum bitrate of faxes. By default, faxes will try to train at maximum bitrate. If a Failure to Train (FTT) happens, the bitrate will be reduced again and again. This option is used when you want to specify the maximum bitrate.&lt;br /&gt;
By using that option, faxes transmission can complete in less time since unnecessary training sequences will be skipped.&lt;br /&gt;
|-&lt;br /&gt;
| Fill bit removal&lt;br /&gt;
| This option is used to remove inserted fill bits in Phase C for non-ECM data.&amp;lt;br/&amp;gt;&lt;br /&gt;
We suggest to leave this option unchecked.&lt;br /&gt;
|-&lt;br /&gt;
| TCF transfer mode&lt;br /&gt;
| Transfer training in T.38 or generate locally the Training Confirmation.&amp;lt;br/&amp;gt;&lt;br /&gt;
We suggest to leave this option at Transferred (default option).&lt;br /&gt;
|-&lt;br /&gt;
| Redundancy Count&lt;br /&gt;
| This option indicates how many times each fax control frame will be sent. Note that this only applies to fax control frame. It does not apply to fax page data.&lt;br /&gt;
|-&lt;br /&gt;
| Transmission level (-1dBm unit)&lt;br /&gt;
| This option is to adjust the transmission level to the TDM network. Valid values are between 0 and -15dBm, inclusive.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Modem/Fax Passthrough Params'''&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;210&amp;quot; style=&amp;quot;background: none repeat scroll 0% 0% rgb(239, 239, 239);&amp;quot; | Options&lt;br /&gt;
! width=&amp;quot;610&amp;quot; style=&amp;quot;background: none repeat scroll 0% 0% rgb(239, 239, 239);&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| Detection type&lt;br /&gt;
| This option is used to detect if a call will be in passthrough mode. Possible values are: None, Silence Suppression Off and G711 Only. &amp;lt;br/&amp;gt;&lt;br /&gt;
*&amp;quot;None&amp;quot; means no Passthrough will be triggered whatever the SPD is. &amp;lt;br/&amp;gt;&lt;br /&gt;
*&amp;quot;G711 only&amp;quot; means if there's only G711 codecs (ulaw and/or alaw), this call will be treated as a passthrough call. This is true when sending or receiving SDP.&amp;lt;br/&amp;gt;&lt;br /&gt;
*&amp;quot;Silence Suppression Off&amp;quot; means when receiving an SIP invite, if the SDP contains the attribute &amp;quot;a=silenceSupp:off - - - -&amp;quot;, it will be treated as a Passthrough call. When sending SIP invite for a passthrough call, the same attribute will be used. This option works if there's only G711 codecs in the list of supported media. So this option is a bit less resrictive than &amp;quot;G711 only&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Codec&lt;br /&gt;
| This option specifies which codec will be used for fax passthrough. By nature, fax passthrough MUST be a non-compressed codec so you can choose between PCMU or PCMA. Note that when a switch to passthrough is initiated by the remote endpoint, our gateway will always use the same codec as the peer.&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Jitter Buffer Depth&lt;br /&gt;
| This option is to specify what will be the size of the fixed Jitter Buffer when in passthrough mode.&lt;br /&gt;
|-&lt;br /&gt;
| Use NSE&lt;br /&gt;
| This option is to specify what method will be used to switch to Passthru. NSE is a way to swith using RTP events instead of SIP re-INVITE.&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== References  ==&lt;br /&gt;
&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Fax#Data_transmission_rate Wikipedia article]&lt;br /&gt;
*[http://docs.telcobridges.com/tbwiki/NSE NSE] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Glossary]]&lt;/div&gt;</summary>
		<author><name>Jasmin Letendre</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/Configure_Fax_Relay_C</id>
		<title>Configure Fax Relay C</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/Configure_Fax_Relay_C"/>
				<updated>2012-06-18T13:35:19Z</updated>
		
		<summary type="html">&lt;p&gt;Jasmin Letendre: Modified some phrasings.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the list of fax Options.&lt;br /&gt;
To see that list, you have to go in a Profile, then in section Fax/Modem Relay.&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;210&amp;quot; style=&amp;quot;background: none repeat scroll 0% 0% rgb(239, 239, 239);&amp;quot; | Options&lt;br /&gt;
! width=&amp;quot;610&amp;quot; style=&amp;quot;background: none repeat scroll 0% 0% rgb(239, 239, 239);&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| Enable Fax Relay&lt;br /&gt;
| This option is the global option telling if faxes (Passthrough or T38) will be relayed or not.&lt;br /&gt;
|-&lt;br /&gt;
| Detection Mode&lt;br /&gt;
| This option contains one of the following mode: Standard, Use relay mode on any tone or Always Relay.&amp;lt;br/&amp;gt;&lt;br /&gt;
Standard: Fax tones and T.38 re-invites will trigger fax relay mode. Modem tones and passthrough re-invites will trigger passthrough mode, though fax detection will still continue.&amp;lt;br/&amp;gt;&lt;br /&gt;
Use relay mode on any tone: Both fax and modem tones will immediately cause switch to the chosen relay mode (without going to passthrough first for modem tones).&amp;lt;br/&amp;gt;&lt;br /&gt;
Always relay: Calls are directly invited using the specified relay mode, without waiting for any fax/modem tone. This improves performance when the calls are know to always be fax or modem (e.g. when connecting with a fax server).&lt;br /&gt;
|-&lt;br /&gt;
| Relay Mode&lt;br /&gt;
| This option is to choose which mode of fax will be used. This option contains one of the following mode: T.38 or Passthrough.&amp;lt;br/&amp;gt;&lt;br /&gt;
T.38: This relay mode is used for faxes modulated in IP. &amp;lt;br/&amp;gt;&lt;br /&gt;
Passthrough: Fax passthrough encodes fax traffic with in a G.711 (ulaw or alaw) voice codec and sends it across the VoIP network as a voice call. In this mode, echo cancellers are disabled, there's a fixed jitter buffer and there's no Voice Activity Detection.&lt;br /&gt;
|-&lt;br /&gt;
| Modem vs. Fax distinction timeout&lt;br /&gt;
| This option is the time we wait after we got the CED, to get V21 flags.&lt;br /&gt;
This is to avoid to send a SIP re-invite in passthrough and few ms after, when we realize it's a faxes, send another SIP&lt;br /&gt;
re-invite in T38.&lt;br /&gt;
Since CED is both for modem and faxes, we have the choice to wait a few ms before taking the &amp;quot;final&amp;quot; decision.&lt;br /&gt;
The best choice depends on the setup. In general, 0ms will work fine. If the endpoint is T.38, then the option &amp;quot;Always Relay&amp;quot; will override the &amp;quot;Modem vs. Fax distinction timeout&amp;quot;. Otherwise, 500ms will save a re-invite, but takes&lt;br /&gt;
longer to switch to passthrough if the final result is modem.&lt;br /&gt;
|-&lt;br /&gt;
| Fax tones detection duration&lt;br /&gt;
| This option is the maximum time (in seconds) to listen for FAX tones. After that delay, FAX tones are ignored. This avoids false FAX detection later in the call when a sound in an audio conversation has frequencies very similar to a FAX tone. Default time is 30 seconds. Can be set to 0 to keep fax detection enabled throughout the entire call.&lt;br /&gt;
|-&lt;br /&gt;
| Enable early Fax/Modem tone detection&lt;br /&gt;
| This option is used to detect longer fax tones (CED and CNG) faster. Fax tones will be reported at the beginning of the detection instead of waiting to validate the tone duration before reporting. The drawback is that it increases the chance of detecting false positive, since these fax tones are single frequency tone and can appear frequently in an audio conversation. We suggest to keep this option turned off to avoid these false positives.&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Enable switching to fax relay upon CNG tone&lt;br /&gt;
| This option indicates if the detection of a CNG tone will trigger a switch to fax relay mode. We recommend to leave this option enabled for faster switch to fax in most setup.&lt;br /&gt;
|-&lt;br /&gt;
| Use V.34&lt;br /&gt;
| This option activates support for V.34 faxes. By using that option, faxes can be transferred at speed up to 33.6 Kbps.&amp;lt;br/&amp;gt;&lt;br /&gt;
If disabled, only V.17 faxes will be supported (transfer speed up to 14.4 Kbps).&lt;br /&gt;
|-&lt;br /&gt;
| Max bitrate&lt;br /&gt;
| This option is used to limit the maximum bitrate of faxes. By default, faxes will try to train at maximum bitrate. If a Failure to Train (FTT) happens, the bitrate will be reduced again and again. This option is used when you want to specify the maximum bitrate.&lt;br /&gt;
By using that option, faxes transmission can complete in less time since unnecessary training sequences will be skipped.&lt;br /&gt;
|-&lt;br /&gt;
| Fill bit removal&lt;br /&gt;
| This option is used to remove inserted fill bits in Phase C for non-ECM data.&amp;lt;br/&amp;gt;&lt;br /&gt;
We suggest to leave this option unchecked.&lt;br /&gt;
|-&lt;br /&gt;
| TCF transfer mode&lt;br /&gt;
| Transfer training in T.38 or generate locally the Training Confirmation.&amp;lt;br/&amp;gt;&lt;br /&gt;
We suggest to leave this option at Transferred (default option).&lt;br /&gt;
|-&lt;br /&gt;
| Redundancy Count&lt;br /&gt;
| This option indicates how many times each fax control frame will be sent. Note that this only applies to fax control frame. It does not apply to fax page data.&lt;br /&gt;
|-&lt;br /&gt;
| Transmission level (-1dBm unit)&lt;br /&gt;
| This option is to adjust the transmission level to the TDM network. Valid values are between 0 and -15dBm, inclusive.&lt;br /&gt;
|-&lt;br /&gt;
| Detection type&lt;br /&gt;
| This option is used for different types of fax passthrough. When receiving an SIP invite, Our&lt;br /&gt;
|-&lt;br /&gt;
| Codec&lt;br /&gt;
| This option specifies which codec will be used for fax passthrough. By nature, fax passthrough MUST be a non-compressed codec so you can choose between PCMU or PCMA. Note that when a switch to passthrough is initiated by the remote endpoint, our gateway will always use the same codec as the peer.&lt;br /&gt;
|-&lt;br /&gt;
| Jitter Buffer Depth&lt;br /&gt;
| This option is to specify what will be the size of the fixed Jitter Buffer when in passthrough mode.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== References  ==&lt;br /&gt;
&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Fax#Data_transmission_rate Wikipedia article] &lt;br /&gt;
&lt;br /&gt;
[[Category:Glossary]]&lt;/div&gt;</summary>
		<author><name>Jasmin Letendre</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/CAF:_Working_With_Caf_Call_Legs</id>
		<title>CAF: Working With Caf Call Legs</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/CAF:_Working_With_Caf_Call_Legs"/>
				<updated>2012-01-20T14:50:38Z</updated>
		
		<summary type="html">&lt;p&gt;Jasmin Letendre: Added missing &amp;quot;ptrAcceptCallProtAttribute = tbnew CTBCMC_PROTOCOL_ATTRIBUTE;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview of CAF layer ==&lt;br /&gt;
TelcoBridges provides multiple API layers for managing calls.&lt;br /&gt;
The current page refers the the CAF API layer.&lt;br /&gt;
&lt;br /&gt;
[[File:CAFCallFlow_architecture.png|400px]]&lt;br /&gt;
&lt;br /&gt;
== Overview of CAF call architecture ==&lt;br /&gt;
&lt;br /&gt;
[[File:CAFCallFlow_ownership.png|400px]]&lt;br /&gt;
  &lt;br /&gt;
=== CAF Call leg (''CTBCAFCallLeg''): ===&lt;br /&gt;
The ''CTBCAFCallLeg'' (based on CTBCMCLeg base class) is the representation of communication with one peer, either through one protocol (SS7, ISDN, SIP, CAS) or media-only.&lt;br /&gt;
  &lt;br /&gt;
CTBCAFCallLeg objects can be created either after the [[Toolpack_Application:toolpack_engine|toolpack_engine]] has notified the CAF application that a new call has been received, or else when the CAF application asks [[Toolpack_Application:toolpack_engine|toolpack_engine]] to create a new outgoing call.&lt;br /&gt;
When creating a new outgoing call, attributes are provided to indicate [[Toolpack_Application:toolpack_engine|toolpack_engine]] which NAP to make the call to (which also defines the signaling protocol), which calling/called numbers to use, etc.&lt;br /&gt;
  &lt;br /&gt;
From the C++ point of view, the CTBCMCLeg contains most of the APIs require to manipulate call legs, while the ''CTBCAFCallLeg'' class is providing the interface to attach call legs to a parent ''CTBCAFCallFlow'' object&lt;br /&gt;
&lt;br /&gt;
=== CAF Mixer (''CTBCAFMixer''): ===&lt;br /&gt;
CAF Call Legs (''CTBCAFCallLeg'') have a built-in function to join with another leg, making audio flow from one leg to the other directly.&lt;br /&gt;
&lt;br /&gt;
However, when it is required to mix audio from multiple call legs or sources (building conferences for example), then the ''CTBCAFMixer'' object is used.&lt;br /&gt;
&lt;br /&gt;
The ''CTBCAFMixer'' (based on CTBCMCMixer base class) is the representation of a DSP resource used to mix audio from different sources (call legs, stream server, or other mixers).&lt;br /&gt;
  &lt;br /&gt;
From the C++ point of view, the CTBCMCMixer contains most of the APIs require to manipulate mixers, while the ''CTBCAFMixer'' class is providing the interface to attach mixers to a parent ''CTBCAFCallFlow'' object.&lt;br /&gt;
&lt;br /&gt;
The ''CTBCAFMixer'' object can be used for:&lt;br /&gt;
* Conferences&lt;br /&gt;
* Background music playing on a call&lt;br /&gt;
* Recording both call legs of a call into one mixed audio file&lt;br /&gt;
* etc.&lt;br /&gt;
&lt;br /&gt;
See more information on mixers here: [[http://docs.telcobridges.com/mediawiki/index.php/AudioMixers Audio Mixers]]&lt;br /&gt;
&lt;br /&gt;
=== CAF Call Flow (''CTBCAFCallFlow''): ===&lt;br /&gt;
  &lt;br /&gt;
The ''CTBCAFCallFlow'' base class contains one or multiple ''CTBCAFCallLeg'' objects, and optionally one or multiple ''CTBCAFMixer'' objects. The role of the ''CTBCAFCallFlow'' object is to implement a call flow that involves actions on legs and mixers that have a relation with each other.&lt;br /&gt;
&lt;br /&gt;
=== CAF Call Bridge (''CTBCAFBridge'', based on ''CTBCAFCallFlow''): ===&lt;br /&gt;
  &lt;br /&gt;
A typical implementation of a call flow is the ''CTBCAFBridge'' class (based on the ''CTBCAFCallFlow'' base class). This class is designed to&lt;br /&gt;
- Receive an incoming call&lt;br /&gt;
- Make a corresponding outgoing call&lt;br /&gt;
- Join them together&lt;br /&gt;
- Terminate both of them when one leg hangups.&lt;br /&gt;
&lt;br /&gt;
=== CAF Call Behavior (''CTBCAFCallBehavior''): ===&lt;br /&gt;
 &lt;br /&gt;
Behaviors ''CTBCAFCallBehavior'' can be attached to a call flow (''CTBCAFCallFlow''). Their role is to modify the basic call flow, decorating it with optional functionality (CDR logging, FAX detection, Ring tone playback, etc.)&lt;br /&gt;
&lt;br /&gt;
In order to implement their functionality, behavior objects, like their parent call flow object, receive events from all call legs and mixers of the call flow. They can also manipulate call legs and mixers.&lt;br /&gt;
&lt;br /&gt;
== Performing actions on call legs and mixers ==&lt;br /&gt;
=== Actions on call legs ===&lt;br /&gt;
The call flow (and it's behaviors) can perform various actions on each of it's call legs. Here is a list of the actions available on the CTBCAFCallLeg objects (please refer to the header file '''CTBCMCLeg.hpp''' for more information on each of these functions):&lt;br /&gt;
&lt;br /&gt;
[[http://docs.telcobridges.com/mediawiki/index.php/CAF:_Caf_Call_Leg_Actions Actions on CTBCAFCallLeg]]&lt;br /&gt;
&lt;br /&gt;
=== Actions on mixers ===&lt;br /&gt;
The call flow (and it's behaviors) can perform various actions on each of it's mixers. Here is a list of the actions available on the CTBCAFMixer objects (please refer to the header file '''CTBCMCMixer.hpp''' for more information on each of these functions):&lt;br /&gt;
&lt;br /&gt;
[[http://docs.telcobridges.com/mediawiki/index.php/CAF:_Caf_Mixer_Actions Actions on CTBCAFMixer]]&lt;br /&gt;
&lt;br /&gt;
== Receiving events from call legs and mixers ==&lt;br /&gt;
&lt;br /&gt;
[[File:CAFCallFlow_event.png|400px]]&lt;br /&gt;
&lt;br /&gt;
=== Events received from call legs by the CTBCAFCallFlow object ===&lt;br /&gt;
&lt;br /&gt;
The call flow object (as well as all it's behaviors) receive the following events from it's call legs (please refer to the header file '''ITBCAFCallFlow.hpp''' for more information on each of these functions):&lt;br /&gt;
&lt;br /&gt;
[[http://docs.telcobridges.com/mediawiki/index.php/CAF:_Caf_Call_Leg_Events Call flow events from it's call legs]]&lt;br /&gt;
&lt;br /&gt;
=== Events received from mixers by the CTBCAFCallFlow object ===&lt;br /&gt;
&lt;br /&gt;
The call flow object (as well as all it's behaviors) receive the following events from it's mixers (please refer to the header file '''ITBCAFCallFlowMixer.hpp''' for more information on each of these functions):&lt;br /&gt;
&lt;br /&gt;
[[http://docs.telcobridges.com/mediawiki/index.php/CAF:_Caf_Mixer_Events Call flow events from it's mixers]]&lt;br /&gt;
&lt;br /&gt;
=== Events behavior chain ===&lt;br /&gt;
All the events describe above are called consecutively on each behavior attached to the call flow, and ultimately, called on the call flow itself.&lt;br /&gt;
 &lt;br /&gt;
Each behavior in the chain can&lt;br /&gt;
* Pass the event to the next behavior in the chain&lt;br /&gt;
* Consume the event so other behaviors in the chain and the call flow are unaware that this event occurred&lt;br /&gt;
 &lt;br /&gt;
The ''CTBCAFCallBehavior'' default implementation is to forward the event to the next event in the chain.&lt;br /&gt;
 &lt;br /&gt;
When you implement your own behaviors, you can override only a couple of events (like OnCallLegAnswered() for example) to perform specific tasks, and leave all other events to the base class, so you don't have to write a lot of code to create a new behavior.&lt;br /&gt;
&lt;br /&gt;
== Example call flows ==&lt;br /&gt;
&lt;br /&gt;
Example call flow where an incoming call is received, accepted, then terminated from network side:&lt;br /&gt;
&lt;br /&gt;
[[File:example_call_flow.png|500px]]&lt;br /&gt;
&lt;br /&gt;
Example conference call flow with two incoming call legs, one outgoing call leg, and one audio mixer:&lt;br /&gt;
&lt;br /&gt;
[[File:example_call_flow_conf.png|400px]]&lt;br /&gt;
&lt;br /&gt;
== Creating the ''CTBCAFCallFlow'' object, its legs and mixers ==&lt;br /&gt;
Steps to create a new call flow are:&lt;br /&gt;
* Create a new object (using a class derived from ''CTBCAFCallFlow'' class)&lt;br /&gt;
* Attach behaviors to the call flow&lt;br /&gt;
* Add attributes of incoming and outgoing legs to create&lt;br /&gt;
* Add attributes for mixers to create&lt;br /&gt;
* Tell the call flow object to initialize itself, and create the call legs and mixers as requested&lt;br /&gt;
* Join legs together, join legs to mixers, or join mixers to other mixers&lt;br /&gt;
  &lt;br /&gt;
Here is a (over-simplified) example:&lt;br /&gt;
 ITBCAFCallFlow* pCallFlow;&lt;br /&gt;
 ITBCAFCallFlow* pParentCallOrBehavior;&lt;br /&gt;
 &lt;br /&gt;
 // Create the call flow object (here using the CTBCAFBridge class, based on CTBCAFCallFlow)&lt;br /&gt;
 pCallFlow = tbnew CTBCAFBridge( 0, this);&lt;br /&gt;
 &lt;br /&gt;
 // Optionally, attach behaviors&lt;br /&gt;
 pParentCallOrBehavior = pCallFlow;&lt;br /&gt;
 pParentCallOrBehavior = tbnew CTBCAFCallBehaviorBusyTone( pParentCallOrBehavior, ... );&lt;br /&gt;
 pParentCallOrBehavior = tbnew CTBCAFCallBehaviorBridgeCdr( pParentCallOrBehavior, ... );&lt;br /&gt;
 &lt;br /&gt;
 // Add an incoming call leg to that call flow (CTBCAFCallLeg object will get created based on provided attributes)&lt;br /&gt;
 pCallFlow-&amp;gt;AddIncoming( in_LegId, ptrIncomingLegAttribute, ptrIncomingLegProtocolAttributes, ptrAcceptCallProtAttribute );&lt;br /&gt;
 &lt;br /&gt;
 // Add an outgoing call leg&lt;br /&gt;
 pCallFlow-&amp;gt;AddOutgoing( ptrOutgoingLegAttribute, ptrOutgoingLegProtocolAttributes );&lt;br /&gt;
 &lt;br /&gt;
 // Create an audio mixer&lt;br /&gt;
 pCallFlow-&amp;gt;MixerCreate( ptrMixerAttribute );&lt;br /&gt;
 &lt;br /&gt;
 // Initialize the call (this actually creates the call legs)&lt;br /&gt;
 pCallFlow-&amp;gt;InitCall( &amp;amp;pCallFlow );&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
During the call flow (upon reception of an event on a call leg for example), more actions can be taken. For example:&lt;br /&gt;
 MyCallFlowOrBehavior::OnCallLegAnswered()&lt;br /&gt;
 {&lt;br /&gt;
   // Ask to detect FAX tones&lt;br /&gt;
   CTBCMC_EVENT_ATTRIBUTE  Event;&lt;br /&gt;
   Event.AddToneString( &amp;quot;telcofax/eof&amp;quot; );&lt;br /&gt;
   GetIncomingActiveLeg()-&amp;gt;StartEventCollection( in_EventMask, NULL, TBX_FALSE /* Don't suppress tones */ );&lt;br /&gt;
 &lt;br /&gt;
   // Call base class to forward event to next behavior&lt;br /&gt;
   CTBCAFBehavior::OnCallLegAnswered();&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
During the call flow (upon reception of an event on a mixer for example), more actions can be taken. For example:&lt;br /&gt;
 MyCallFlowOrBehavior::OnMixerCreated()&lt;br /&gt;
 {&lt;br /&gt;
   // Immediately add call legs to the mixer&lt;br /&gt;
   GetFirstMixer()-&amp;gt;MixerJoin( GetIncomingActiveLeg().Get(), ptrJoinAttributes );&lt;br /&gt;
   GetFirstMixer()-&amp;gt;MixerJoin( GetOutgoingActiveLeg().Get(), ptrJoinAttributes );&lt;br /&gt;
 &lt;br /&gt;
   // Answer the incoming leg&lt;br /&gt;
   GetIncomingActiveLeg()-&amp;gt;AnswerCall();&lt;br /&gt;
 &lt;br /&gt;
   // Play background music on the conference&lt;br /&gt;
   GetFirstMixer()-&amp;gt;MixerPlayStream( PlayAttr );&lt;br /&gt;
 &lt;br /&gt;
   // Call base class to forward event to next behavior&lt;br /&gt;
   CTBCAFBehavior::OnMixerCreated();&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
For a more complete code example, please refer to the simple_call application, in file '''CTBS2GWSimpleCall.cpp''', or here:&lt;br /&gt;
  &lt;br /&gt;
[[CAF:_Leg_Creation_Samples#Bridging_an_Incoming_Call_Leg_.28using_CTBCAFBridge_.29|CTBCAFBridge creation]]&lt;br /&gt;
&lt;br /&gt;
=== Constructing leg attributes ===&lt;br /&gt;
==== Incoming call leg attributes ====&lt;br /&gt;
To create the incoming call leg, the following information is required:&lt;br /&gt;
* Smart pointer to incoming call leg attributes, received from [[Toolpack_Application:toolpack_engine|toolpack_engine]] through ''OnCallLegPresent''().&lt;br /&gt;
 ptrIncomingLegAttribute = tbnew CTBCMC_CALL_LEG_ATTRIBUTE( *(in_CallLegAttribute.GetCallLegAttribute()) );&lt;br /&gt;
* Smart pointer to incoming call leg protocol attributes, received from [[Toolpack_Application:toolpack_engine|toolpack_engine]] through ''OnCallLegPresent''().&lt;br /&gt;
 ptrIncomingLegProtocolAttributes = tbnew CTBCMC_PROTOCOL_ATTRIBUTE( in_ProtocolAttribute, TBX_TRUE );&lt;br /&gt;
* Smart pointer to empty protocol attributes that Behaviors can fill, and that will be used when accepting the call.&lt;br /&gt;
 ptrAcceptCallProtAttribute = tbnew CTBCMC_PROTOCOL_ATTRIBUTE;&lt;br /&gt;
&lt;br /&gt;
==== Outgoing call leg attributes ====&lt;br /&gt;
To create the outgoing call leg, the following information is required:&lt;br /&gt;
* Smart pointer to outgoing call leg attributes to use to create the call, generally derived from the incoming call attributes&lt;br /&gt;
 ptrOutgoingLegAttribute = tbnew CTBCMC_CALL_LEG_ATTRIBUTE();&lt;br /&gt;
 ptrOutgoingLegAttribute-&amp;gt;CopyLegAttributeFrom( *(ptrIncomingLegAttribute.Get()) );&lt;br /&gt;
* Smart pointer to empty protocol attributes that Behaviors can fill, and that will be used when creating the outgoing call (SIP invite, ISUP IAM, ISDN Setup, etc.)&lt;br /&gt;
&lt;br /&gt;
==== Mixer attributes ====&lt;br /&gt;
To create the mixer, the following information is required:&lt;br /&gt;
* Smart pointer to mixer attributes to use to create the mixer&lt;br /&gt;
 ptrMixerAttribute = tbnew CTBCMC_MIXER_ATTRIBUTE();&lt;br /&gt;
 ptrMixerAttribute-&amp;gt;SomeParameter = SomeValue;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Call leg initialization callbacks ===&lt;br /&gt;
All behaviors attached to the call flow will be notified of the creation of new call legs through callback '''OnInitIncomingCallLeg()''' or '''OnInitOutgoingCallLeg()'''.&lt;br /&gt;
 &lt;br /&gt;
==== '''OnInitIncomingCallLeg()''' ====&lt;br /&gt;
In this callback, each behavior may consult the incoming call attributes or protocol attributes, and can modify the protocol attributes that will be used to accept the call (actually providing protocol-specific information, like SS7 IEs, or SIP headers).&lt;br /&gt;
&lt;br /&gt;
==== '''OnInitOutgoingCallLeg()''' ====&lt;br /&gt;
In this callback, each behavior can modify the protocol attributes that will be used to create the call (actually providing protocol-specific information, like SS7 IEs, or SIP headers that will be used in the initial signaling message, as SIP Invite, ISUP IAM, or ISDN Setup).&lt;br /&gt;
&lt;br /&gt;
==== ''OnMixerInit()'' ====&lt;br /&gt;
In this callback, each behavior can modify the mixer attributes that will be used to create the mixer.&lt;br /&gt;
&lt;br /&gt;
== Destruction the ''CTBCAFCallFlow'' object, its legs and mixers ==&lt;br /&gt;
=== Self-destructing call legs, mixers, behaviors, and call flow ===&lt;br /&gt;
The ''CTBCAFCallFlow'' object contains smart pointers to it's call legs and mixers. Destruction of these will thus occur automatically when the last smart pointer reference is removed (that last reference can be either the smart pointer reference in the CTBCAFCallFlow object, or anywhere else in the application).&lt;br /&gt;
  &lt;br /&gt;
Upon destruction of the last call leg or last mixer (when no more leg or mixer are in the call flow), the objects based on ''CTBCAFCallFlow'' or ''CTBCAFCallBehavior'' will delete themselves automatically, by calling the attached &amp;quot;free listener&amp;quot; (that was provided in the constructor of the call flow object).&lt;br /&gt;
&lt;br /&gt;
=== Call leg termination callbacks and actions === &lt;br /&gt;
==== '''OnCallLegTerminatingIndication()''' ====&lt;br /&gt;
This callback means that [[Toolpack_Application:toolpack_engine|toolpack_engine]] has received a termination request from a call leg (SIP Bye, ISUP REL, for example).&lt;br /&gt;
A typical use of that event is to call '''TerminateCall()''' on both incoming and outgoing legs of a call flow, to hangup both sides.&lt;br /&gt;
&lt;br /&gt;
==== '''TerminateCall()''' ====&lt;br /&gt;
This function is used for the application to request the termination of a call leg.&lt;br /&gt;
It is also used to confirm that the application is done with a call leg, after '''OnCallLegTerminatingIndication()''' event was received (in that case, '''TerminateCall()''' can be called within the event callback, or later if the application has some more asynchronous cleanup to do).&lt;br /&gt;
&lt;br /&gt;
==== '''OnCallLegTerminated()''' ====&lt;br /&gt;
This callback confirms that [[Toolpack_Application:toolpack_engine|toolpack_engine]] has finished closing the data path and signaling for this call leg.&lt;br /&gt;
It will also be called when a leg is destroyed because of a lost of communication with [[Toolpack_Application:toolpack_engine|toolpack_engine]] (restart, network failure, crash).&lt;br /&gt;
 &lt;br /&gt;
==== '''FreeLeg()''' ====&lt;br /&gt;
It is MANDATORY that this function is called for each call leg after '''OnCallLegTerminated()'''.&lt;br /&gt;
 &lt;br /&gt;
It's up to the application to call the function immediately (within '''OnCallLegTerminated()''' for example) or later after doing some more job (like asynchronous database updates, for example)&lt;br /&gt;
&lt;br /&gt;
==== '''OnLegFreed()''' ====&lt;br /&gt;
This callback confirms that the leg is being freed.&lt;br /&gt;
  &lt;br /&gt;
It's the last chance for a call flow or a behavior to release things related to a call leg, like canceling timers for example.&lt;br /&gt;
   &lt;br /&gt;
*'''Important note:''' Behaviors that implement that function MUST, as the LAST line of their function, call the base class' '''CTBCAFCallBehavior::OnLegFreed'''. Not calling base class' function will cause the call to leak. Calling that before the last line of the function will cause crash, as the Behavior object could destroy itself within that function upon destruction of the last leg/mixer of the call.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Mixer termination callbacks and actions === &lt;br /&gt;
&lt;br /&gt;
==== '''MixerTerminate()''' ====&lt;br /&gt;
This function is used for the application to request the termination of a mixer.&lt;br /&gt;
&lt;br /&gt;
==== '''OnMixerTerminated()''' ====&lt;br /&gt;
This callback confirms that [[Toolpack_Application:toolpack_engine|toolpack_engine]] has finished destroying resources related to this mixer.&lt;br /&gt;
It will also be called when a leg is destroyed because of a lost of communication with [[Toolpack_Application:toolpack_engine|toolpack_engine]] (restart, network failure, crash).&lt;br /&gt;
 &lt;br /&gt;
==== '''FreeMixer()''' ====&lt;br /&gt;
It is MANDATORY that this function is called for each mixer after '''OnMixerTerminated()'''.&lt;br /&gt;
 &lt;br /&gt;
It's up to the application to call the function immediately (within '''OnMixerTerminated()''' for example) or later after doing some more job (like asynchronous database updates, for example)&lt;br /&gt;
&lt;br /&gt;
==== '''OnMixerFreed()''' ====&lt;br /&gt;
This callback confirms that the mixer is being freed.&lt;br /&gt;
  &lt;br /&gt;
It's the last chance for a call flow or a behavior to release things related to a mixer, like canceling timers for example.&lt;br /&gt;
   &lt;br /&gt;
*'''Important note:''' Behaviors that implement that function MUST, as the LAST line of their function, call the base class' '''CTBCAFCallBehavior::OnMixerFreed()'''. Not calling base class' function will cause the mixer and call to leak. Calling that before the last line of the function will cause crash, as the Behavior object could destroy itself within that function upon destruction of the last leg/mixer of the call.&lt;br /&gt;
&lt;br /&gt;
== Re-synchronizing with [[Toolpack_Application:toolpack_engine|toolpack_engine]] ==&lt;br /&gt;
There are a couple of cases where a CAF application needs to re-synchronize with [[Toolpack_Application:toolpack_engine|toolpack_engine]]:&lt;br /&gt;
* The CAF application was restarted&lt;br /&gt;
* The [[Toolpack_Application:toolpack_engine|toolpack_engine]] was restarted&lt;br /&gt;
* Network connection between CAF application and [[Toolpack_Application:toolpack_engine|toolpack_engine]] was momentarily down&lt;br /&gt;
 &lt;br /&gt;
When communication with [[Toolpack_Application:toolpack_engine|toolpack_engine]] is lost, all call legs and mixers are notified of the disconnection through '''OnSyncLost()''' and '''OnMixerSyncLost()'''. However, they are not immediately destroyed. They are kept in the CAF framework for 10 seconds waiting for the engine (or backup engine) to reconnect. After 10 seconds, legs and mixers are terminated in the CAF framwork. This does not mean, however, that they are terminated in the toolpack_engine. Upon reconnection with engine, legs and mixers still present in the engine will be sent back to the CAF application through '''OnCallLegSync()''' and '''OnMixerSync()'''.&lt;br /&gt;
 &lt;br /&gt;
Possible scenarios for a leg are thus:&lt;br /&gt;
* Engine is reconnected within 10 seconds:&lt;br /&gt;
** Some legs/mixers no more exist in [[Toolpack_Application:toolpack_engine|toolpack_engine]], and will be notified by '''OnCallLegTerminated()''' / '''OnMixerTerminated()'''.&lt;br /&gt;
** Legs/mixers that are still valid will be untouched (though they are notified with '''OnLegSync()''' / '''OnLinkSync()''' / '''OnMixerSync()''',  for convenience)&lt;br /&gt;
* Engine has been disconnected for more than 10 seconds:&lt;br /&gt;
** CAF framework will terminate call legs/mixers, and notify them through '''OnCallLegTerminated()''' / '''OnMixerTerminated()'''&lt;br /&gt;
** Later, when engine is reconnected after a &amp;gt;10:&lt;br /&gt;
*** Call legs/mixers that are still available in [[Toolpack_Application:toolpack_engine|toolpack_engine]] are pushed back to CAF application through '''OnCallLegSync()''', '''OnLinkSync()''' and '''OnMixerSync()'''&lt;br /&gt;
*** CAF application can refuse them, or re-build it's legs/mixers/call flow contexts to resume operation on these calls&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Re-synchronization sequence ===&lt;br /&gt;
&lt;br /&gt;
In all the cases above, the re-synchronization mechanism involves the following steps:&lt;br /&gt;
&lt;br /&gt;
=&amp;gt; Communication lost with [[Toolpack_Application:toolpack_engine|toolpack_engine]]&lt;br /&gt;
* '''OnCmcLibNotReady()''' (CAF application callback): Indicates that communication with [[Toolpack_Application:toolpack_engine|toolpack_engine]] has been interrupted. It will not be possible to perform actions (play file, ask for digit collection) on call legs/mixers until [[Toolpack_Application:toolpack_engine|toolpack_engine]] is ready again ('''OnCmcLibReady''').&lt;br /&gt;
* '''OnSyncLost()''' (CAF call flow and behavior callback): Same meaning as '''OnCmcLibNotReady()''', passed to each call leg contexts individually.&lt;br /&gt;
* '''OnMixerSyncLost()''' (CAF call flow and behavior callback): Same meaning as '''OnCmcLibNotReady()''', passed to each call mixer contexts individually.&lt;br /&gt;
&lt;br /&gt;
=&amp;gt; Communication re-established with [[Toolpack_Application:toolpack_engine|toolpack_engine]]&lt;br /&gt;
* '''OnCallLegSync()''' (CAF application callback): Indicates that the [[Toolpack_Application:toolpack_engine|toolpack_engine]] knows about a call leg that does not exist in the CAF application.&lt;br /&gt;
* '''OnLinkSync()''' (CAF application callback): Indicates that the [[Toolpack_Application:toolpack_engine|toolpack_engine]] knows about a link between two call legs (legs are joined, audio is flowing from one to the other directly).&lt;br /&gt;
* '''OnMixerSync()''' (CAF application callback): Indicates that the [[Toolpack_Application:toolpack_engine|toolpack_engine]] knows about a mixer that does not exist in the CAF application.&lt;br /&gt;
* '''OnCmcLibReady()''' (CAF application callback): Indicates that communication with [[Toolpack_Application:toolpack_engine|toolpack_engine]] has been restored, and that all legs, links and mixers have been re-synchronized&lt;br /&gt;
* '''OnSyncDone()''' (CAF call flow and behavior callback): Indicates to a call leg (that previously received '''OnSyncLost()''') that it is still present in the [[Toolpack_Application:toolpack_engine|toolpack_engine]], and ready to be controlled again.&lt;br /&gt;
* '''OnMixerSyncDone()''' (CAF call flow and behavior callback): Indicates to a mixer (that previously received '''OnMixerSyncLost()''') that it is still present in the [[Toolpack_Application:toolpack_engine|toolpack_engine]], and ready to be controlled again.&lt;br /&gt;
* '''OnCallLegTerminated()'''  (CAF call flow and behavior callback): When this function is called with Reason ''TBCMC_CALL_REASON_CODE_TOOLPACK_SYNC_DROP'', it indicates that this call leg is no more present in [[Toolpack_Application:toolpack_engine|toolpack_engine]] after re-synchronizing, and must thus be freed in the CAF application too.&lt;br /&gt;
* '''OnMixerTerminated()'''  (CAF call flow and behavior callback): When this function is called, it indicates that this mixer is no more present in [[Toolpack_Application:toolpack_engine|toolpack_engine]] after re-synchronizing, and must thus be freed in the CAF application too.&lt;br /&gt;
&lt;br /&gt;
=== Rebuilding new legs, mixers and call flow objects ===&lt;br /&gt;
When an application receives '''OnCallLegSync()''', it must take the decision to either keep the call leg (create a CTBCAFCallLeg object) or refuse it (tell [[Toolpack_Application:toolpack_engine|toolpack_engine]] that we don't want to re-synchronize it, and that it must be terminated).&lt;br /&gt;
&lt;br /&gt;
When an application receives '''OnMixerSync()''', it must take the decision to either keep the mixer (create a CTBCAFMixer object) or refuse it (tell [[Toolpack_Application:toolpack_engine|toolpack_engine]] that we don't want to re-synchronize it, and that it must be terminated).&lt;br /&gt;
 &lt;br /&gt;
==== Dropping re-synchronized legs ====&lt;br /&gt;
The static helper function '''CTBCMCLeg::RefuseLeg()''' has been provided by the class ''CTBCMCLeg'' to terminate re-synchronized call legs without having to worry about creating any object. An application that wants to refuse a re-synchronized leg should call it.&lt;br /&gt;
&lt;br /&gt;
==== Dropping re-synchronized links ====&lt;br /&gt;
The static helper function '''CTBCMCLeg::RefuseLink()''' has been provided by the class ''CTBCMCLeg'' to terminate re-synchronized links without having to worry about creating any object. An application that wants to refuse a re-synchronized link should call it.&lt;br /&gt;
&lt;br /&gt;
==== Dropping re-synchronized mixers ====&lt;br /&gt;
The static helper function '''CTBCMCMixer::RefuseMixer()''' has been provided by the class ''CTBCMCMixer'' to terminate re-synchronized mixer without having to worry about creating any object. An application that wants to refuse a re-synchronized mixer should call it.&lt;br /&gt;
&lt;br /&gt;
==== Keeping re-synchronized legs that are part of a link or a mixer ====&lt;br /&gt;
The helper class ''CTBCAFCallLegResync'' is provided to help creating CTBCAFCallLeg objects for re-synchronized legs, and later retrieve them and attach them to a CTBCAFCallFlow parent, upon '''OnLinkSync()''' or '''OnMixerSync()''':&lt;br /&gt;
&lt;br /&gt;
Upon '''OnLegSync()''', legs should be allocated inside the class ''CTBCAFCallLegResync'' using function '''AllocateCallLeg()'''. Legs don't yet need to be attached to a parent CTBCAFCallFlow, that's normally done upon '''OnLinkSync()''' or '''OnMixerSync()'''.&lt;br /&gt;
 &lt;br /&gt;
Upon '''OnLinkSync()''', the LegId of the two joined call legs are provided. Both legs must be retrieved from the ''CTBCAFCallLegResync'' (using functions '''FindCallLeg()''' and '''RemoveCallLeg()'''), then added to a CTBCAFCallFlow object that will resume the call flow of these two joined call legs.&lt;br /&gt;
&lt;br /&gt;
Upon '''OnMixerSync()''', the LegId of all legs in that mixer (along with Join Attributes) are provided. A new CTBCAFMixer object must be allocated, and all call legs from that mixer must be retrieved from the ''CTBCAFCallLegResync'' object (using functions '''FindCallLeg()''' and '''RemoveCallLeg()'''). The allocated mixer and found legs must then be assigned to a CTBCAFCallFlow object that will resume the call flow.&lt;br /&gt;
 &lt;br /&gt;
Finally, upon '''OnCmcLibReady()''', the application can destroy the CTBCAFCallLegResync object, which will take care of refusing (dropping) all call legs that it still references (that have not been removed by '''CTBCAFCallLegResync::RemoveCallLeg''')&lt;br /&gt;
&lt;br /&gt;
Simplified example code:&lt;br /&gt;
&lt;br /&gt;
 TBX_VOID CTBMyApp::OnCallLegSync&lt;br /&gt;
 (&lt;br /&gt;
   IN    TBCMC_LEG_ID                         in_LegId,&lt;br /&gt;
   IN    CTBCMC_CALL_LEG_ATTRIBUTE_COMMON&amp;amp;    in_CallLegAttribute&lt;br /&gt;
 )&lt;br /&gt;
 {&lt;br /&gt;
     // Upon first re-synchronized leg, allocate utility class to contain re-synchronized call legs&lt;br /&gt;
     if( !mpCallLegResync )&lt;br /&gt;
     {&lt;br /&gt;
         mpCallLegResync = new TBCAF::CTBCAFCallLegResync( MY_APP_MAX_CALLS );&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     // Re-create a CTBCAFCallLeg object for this re-synchronized leg&lt;br /&gt;
     mpCallLegResync-&amp;gt;AllocateCallLeg&lt;br /&gt;
     (&lt;br /&gt;
         NULL,                            // Not yet bound to a parent call flow&lt;br /&gt;
         in_LegId,                        // Use the leg Id of this re-synchronized call leg&lt;br /&gt;
         in_CallLegAttribute,             // Store the attributes of this re-synchronized call leg&lt;br /&gt;
         this,                            // Until it has a parent call flow, set ourself as &lt;br /&gt;
         TBCMC_MSG_CALL_LEG_STATE_ACTIVE  // Consider this call leg as active (answered)&lt;br /&gt;
                                          //  since only active calls can be re-synchronized&lt;br /&gt;
     );&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 TBX_VOID CTBMyApp::OnLinkSync&lt;br /&gt;
 (&lt;br /&gt;
   IN    TBCMC_LINK_ID              in_LinkId, &lt;br /&gt;
   IN    TBCMC_LEG_ID               in_SrcLegId, &lt;br /&gt;
   IN    TBCMC_LEG_ID               in_DstLegId, &lt;br /&gt;
   IN    CTBCMC_JOIN_ATTRIBUTE &amp;amp;    in_JoinAttribute&lt;br /&gt;
 )&lt;br /&gt;
 {&lt;br /&gt;
     // Find both call legs in the re-sync utility mpCallLegResync&lt;br /&gt;
     PTRCTBCAFCallLeg ptrSrcLeg = mpCallLegResync-&amp;gt;RemoveCallLeg( in_SrcLegId );&lt;br /&gt;
     PTRCTBCAFCallLeg ptrDstLeg = mpCallLegResync-&amp;gt;RemoveCallLeg( in_DstLegId );&lt;br /&gt;
 &lt;br /&gt;
     // Allocate a new call flow&lt;br /&gt;
     PITBCAFCallFlow pMyCallFlow = tbnew CTBCAFMyCallFlow&lt;br /&gt;
     (&lt;br /&gt;
         this,                // Set current application as free listener for my call flow&lt;br /&gt;
         in_LinkId,           // Id of the link between these two joined legs&lt;br /&gt;
         in_JoinAttribute,    // Attributes of the link between these two joined legs&lt;br /&gt;
         ptrSrcLeg,&lt;br /&gt;
         ptrDstLeg&lt;br /&gt;
     );&lt;br /&gt;
 &lt;br /&gt;
     // Re-attach behaviors to this call flow&lt;br /&gt;
     pMyCallFlow = tbnew CTBCAFMyFirstBehavior( pMyCallFlow, ... );&lt;br /&gt;
     pMyCallFlow = tbnew CTBCAFMySecondBehavior( pMyCallFlow, ... );&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 TBX_VOID CTBMyApp::OnCmcLibReady()&lt;br /&gt;
 {&lt;br /&gt;
     // Free all single call legs that remain&lt;br /&gt;
     // Deleting mpCallLegResync will automatically reject legs still in that object&lt;br /&gt;
     delete mpCallLegResync;&lt;br /&gt;
     mpCallLegResync = NULL;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 TBX_VOID CTBMyApp::OnCmcLibNotReady()&lt;br /&gt;
 {&lt;br /&gt;
     // Free all single call legs that remain&lt;br /&gt;
     // Deleting mpCallLegResync will automatically reject legs still in that object&lt;br /&gt;
     delete mpCallLegResync;&lt;br /&gt;
     mpCallLegResync = NULL;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For a more complete code example, please refer to the simple_call application, in file '''CTBS2GWSimpleCall.cpp'''.&lt;/div&gt;</summary>
		<author><name>Jasmin Letendre</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/CAF:_Working_With_Caf_Call_Legs</id>
		<title>CAF: Working With Caf Call Legs</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/CAF:_Working_With_Caf_Call_Legs"/>
				<updated>2012-01-20T14:48:05Z</updated>
		
		<summary type="html">&lt;p&gt;Jasmin Letendre: /* Incoming call leg attributes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview of CAF layer ==&lt;br /&gt;
TelcoBridges provides multiple API layers for managing calls.&lt;br /&gt;
The current page refers the the CAF API layer.&lt;br /&gt;
&lt;br /&gt;
[[File:CAFCallFlow_architecture.png|400px]]&lt;br /&gt;
&lt;br /&gt;
== Overview of CAF call architecture ==&lt;br /&gt;
&lt;br /&gt;
[[File:CAFCallFlow_ownership.png|400px]]&lt;br /&gt;
  &lt;br /&gt;
=== CAF Call leg (''CTBCAFCallLeg''): ===&lt;br /&gt;
The ''CTBCAFCallLeg'' (based on CTBCMCLeg base class) is the representation of communication with one peer, either through one protocol (SS7, ISDN, SIP, CAS) or media-only.&lt;br /&gt;
  &lt;br /&gt;
CTBCAFCallLeg objects can be created either after the [[Toolpack_Application:toolpack_engine|toolpack_engine]] has notified the CAF application that a new call has been received, or else when the CAF application asks [[Toolpack_Application:toolpack_engine|toolpack_engine]] to create a new outgoing call.&lt;br /&gt;
When creating a new outgoing call, attributes are provided to indicate [[Toolpack_Application:toolpack_engine|toolpack_engine]] which NAP to make the call to (which also defines the signaling protocol), which calling/called numbers to use, etc.&lt;br /&gt;
  &lt;br /&gt;
From the C++ point of view, the CTBCMCLeg contains most of the APIs require to manipulate call legs, while the ''CTBCAFCallLeg'' class is providing the interface to attach call legs to a parent ''CTBCAFCallFlow'' object&lt;br /&gt;
&lt;br /&gt;
=== CAF Mixer (''CTBCAFMixer''): ===&lt;br /&gt;
CAF Call Legs (''CTBCAFCallLeg'') have a built-in function to join with another leg, making audio flow from one leg to the other directly.&lt;br /&gt;
&lt;br /&gt;
However, when it is required to mix audio from multiple call legs or sources (building conferences for example), then the ''CTBCAFMixer'' object is used.&lt;br /&gt;
&lt;br /&gt;
The ''CTBCAFMixer'' (based on CTBCMCMixer base class) is the representation of a DSP resource used to mix audio from different sources (call legs, stream server, or other mixers).&lt;br /&gt;
  &lt;br /&gt;
From the C++ point of view, the CTBCMCMixer contains most of the APIs require to manipulate mixers, while the ''CTBCAFMixer'' class is providing the interface to attach mixers to a parent ''CTBCAFCallFlow'' object.&lt;br /&gt;
&lt;br /&gt;
The ''CTBCAFMixer'' object can be used for:&lt;br /&gt;
* Conferences&lt;br /&gt;
* Background music playing on a call&lt;br /&gt;
* Recording both call legs of a call into one mixed audio file&lt;br /&gt;
* etc.&lt;br /&gt;
&lt;br /&gt;
See more information on mixers here: [[http://docs.telcobridges.com/mediawiki/index.php/AudioMixers Audio Mixers]]&lt;br /&gt;
&lt;br /&gt;
=== CAF Call Flow (''CTBCAFCallFlow''): ===&lt;br /&gt;
  &lt;br /&gt;
The ''CTBCAFCallFlow'' base class contains one or multiple ''CTBCAFCallLeg'' objects, and optionally one or multiple ''CTBCAFMixer'' objects. The role of the ''CTBCAFCallFlow'' object is to implement a call flow that involves actions on legs and mixers that have a relation with each other.&lt;br /&gt;
&lt;br /&gt;
=== CAF Call Bridge (''CTBCAFBridge'', based on ''CTBCAFCallFlow''): ===&lt;br /&gt;
  &lt;br /&gt;
A typical implementation of a call flow is the ''CTBCAFBridge'' class (based on the ''CTBCAFCallFlow'' base class). This class is designed to&lt;br /&gt;
- Receive an incoming call&lt;br /&gt;
- Make a corresponding outgoing call&lt;br /&gt;
- Join them together&lt;br /&gt;
- Terminate both of them when one leg hangups.&lt;br /&gt;
&lt;br /&gt;
=== CAF Call Behavior (''CTBCAFCallBehavior''): ===&lt;br /&gt;
 &lt;br /&gt;
Behaviors ''CTBCAFCallBehavior'' can be attached to a call flow (''CTBCAFCallFlow''). Their role is to modify the basic call flow, decorating it with optional functionality (CDR logging, FAX detection, Ring tone playback, etc.)&lt;br /&gt;
&lt;br /&gt;
In order to implement their functionality, behavior objects, like their parent call flow object, receive events from all call legs and mixers of the call flow. They can also manipulate call legs and mixers.&lt;br /&gt;
&lt;br /&gt;
== Performing actions on call legs and mixers ==&lt;br /&gt;
=== Actions on call legs ===&lt;br /&gt;
The call flow (and it's behaviors) can perform various actions on each of it's call legs. Here is a list of the actions available on the CTBCAFCallLeg objects (please refer to the header file '''CTBCMCLeg.hpp''' for more information on each of these functions):&lt;br /&gt;
&lt;br /&gt;
[[http://docs.telcobridges.com/mediawiki/index.php/CAF:_Caf_Call_Leg_Actions Actions on CTBCAFCallLeg]]&lt;br /&gt;
&lt;br /&gt;
=== Actions on mixers ===&lt;br /&gt;
The call flow (and it's behaviors) can perform various actions on each of it's mixers. Here is a list of the actions available on the CTBCAFMixer objects (please refer to the header file '''CTBCMCMixer.hpp''' for more information on each of these functions):&lt;br /&gt;
&lt;br /&gt;
[[http://docs.telcobridges.com/mediawiki/index.php/CAF:_Caf_Mixer_Actions Actions on CTBCAFMixer]]&lt;br /&gt;
&lt;br /&gt;
== Receiving events from call legs and mixers ==&lt;br /&gt;
&lt;br /&gt;
[[File:CAFCallFlow_event.png|400px]]&lt;br /&gt;
&lt;br /&gt;
=== Events received from call legs by the CTBCAFCallFlow object ===&lt;br /&gt;
&lt;br /&gt;
The call flow object (as well as all it's behaviors) receive the following events from it's call legs (please refer to the header file '''ITBCAFCallFlow.hpp''' for more information on each of these functions):&lt;br /&gt;
&lt;br /&gt;
[[http://docs.telcobridges.com/mediawiki/index.php/CAF:_Caf_Call_Leg_Events Call flow events from it's call legs]]&lt;br /&gt;
&lt;br /&gt;
=== Events received from mixers by the CTBCAFCallFlow object ===&lt;br /&gt;
&lt;br /&gt;
The call flow object (as well as all it's behaviors) receive the following events from it's mixers (please refer to the header file '''ITBCAFCallFlowMixer.hpp''' for more information on each of these functions):&lt;br /&gt;
&lt;br /&gt;
[[http://docs.telcobridges.com/mediawiki/index.php/CAF:_Caf_Mixer_Events Call flow events from it's mixers]]&lt;br /&gt;
&lt;br /&gt;
=== Events behavior chain ===&lt;br /&gt;
All the events describe above are called consecutively on each behavior attached to the call flow, and ultimately, called on the call flow itself.&lt;br /&gt;
 &lt;br /&gt;
Each behavior in the chain can&lt;br /&gt;
* Pass the event to the next behavior in the chain&lt;br /&gt;
* Consume the event so other behaviors in the chain and the call flow are unaware that this event occurred&lt;br /&gt;
 &lt;br /&gt;
The ''CTBCAFCallBehavior'' default implementation is to forward the event to the next event in the chain.&lt;br /&gt;
 &lt;br /&gt;
When you implement your own behaviors, you can override only a couple of events (like OnCallLegAnswered() for example) to perform specific tasks, and leave all other events to the base class, so you don't have to write a lot of code to create a new behavior.&lt;br /&gt;
&lt;br /&gt;
== Example call flows ==&lt;br /&gt;
&lt;br /&gt;
Example call flow where an incoming call is received, accepted, then terminated from network side:&lt;br /&gt;
&lt;br /&gt;
[[File:example_call_flow.png|500px]]&lt;br /&gt;
&lt;br /&gt;
Example conference call flow with two incoming call legs, one outgoing call leg, and one audio mixer:&lt;br /&gt;
&lt;br /&gt;
[[File:example_call_flow_conf.png|400px]]&lt;br /&gt;
&lt;br /&gt;
== Creating the ''CTBCAFCallFlow'' object, its legs and mixers ==&lt;br /&gt;
Steps to create a new call flow are:&lt;br /&gt;
* Create a new object (using a class derived from ''CTBCAFCallFlow'' class)&lt;br /&gt;
* Attach behaviors to the call flow&lt;br /&gt;
* Add attributes of incoming and outgoing legs to create&lt;br /&gt;
* Add attributes for mixers to create&lt;br /&gt;
* Tell the call flow object to initialize itself, and create the call legs and mixers as requested&lt;br /&gt;
* Join legs together, join legs to mixers, or join mixers to other mixers&lt;br /&gt;
  &lt;br /&gt;
Here is a (over-simplified) example:&lt;br /&gt;
 ITBCAFCallFlow* pCallFlow;&lt;br /&gt;
 ITBCAFCallFlow* pParentCallOrBehavior;&lt;br /&gt;
 &lt;br /&gt;
 // Create the call flow object (here using the CTBCAFBridge class, based on CTBCAFCallFlow)&lt;br /&gt;
 pCallFlow = tbnew CTBCAFBridge( 0, this);&lt;br /&gt;
 &lt;br /&gt;
 // Optionally, attach behaviors&lt;br /&gt;
 pParentCallOrBehavior = pCallFlow;&lt;br /&gt;
 pParentCallOrBehavior = tbnew CTBCAFCallBehaviorBusyTone( pParentCallOrBehavior, ... );&lt;br /&gt;
 pParentCallOrBehavior = tbnew CTBCAFCallBehaviorBridgeCdr( pParentCallOrBehavior, ... );&lt;br /&gt;
 &lt;br /&gt;
 // Add an incoming call leg to that call flow (CTBCAFCallLeg object will get created based on provided attributes)&lt;br /&gt;
 pCallFlow-&amp;gt;AddIncoming( in_LegId, ptrIncomingLegAttribute, ptrIncomingLegProtocolAttributes, ptrAcceptCallProtAttribute );&lt;br /&gt;
 &lt;br /&gt;
 // Add an outgoing call leg&lt;br /&gt;
 pCallFlow-&amp;gt;AddOutgoing( ptrOutgoingLegAttribute, ptrOutgoingLegProtocolAttributes );&lt;br /&gt;
 &lt;br /&gt;
 // Create an audio mixer&lt;br /&gt;
 pCallFlow-&amp;gt;MixerCreate( ptrMixerAttribute );&lt;br /&gt;
 &lt;br /&gt;
 // Initialize the call (this actually creates the call legs)&lt;br /&gt;
 pCallFlow-&amp;gt;InitCall( &amp;amp;pCallFlow );&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
During the call flow (upon reception of an event on a call leg for example), more actions can be taken. For example:&lt;br /&gt;
 MyCallFlowOrBehavior::OnCallLegAnswered()&lt;br /&gt;
 {&lt;br /&gt;
   // Ask to detect FAX tones&lt;br /&gt;
   CTBCMC_EVENT_ATTRIBUTE  Event;&lt;br /&gt;
   Event.AddToneString( &amp;quot;telcofax/eof&amp;quot; );&lt;br /&gt;
   GetIncomingActiveLeg()-&amp;gt;StartEventCollection( in_EventMask, NULL, TBX_FALSE /* Don't suppress tones */ );&lt;br /&gt;
 &lt;br /&gt;
   // Call base class to forward event to next behavior&lt;br /&gt;
   CTBCAFBehavior::OnCallLegAnswered();&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
During the call flow (upon reception of an event on a mixer for example), more actions can be taken. For example:&lt;br /&gt;
 MyCallFlowOrBehavior::OnMixerCreated()&lt;br /&gt;
 {&lt;br /&gt;
   // Immediately add call legs to the mixer&lt;br /&gt;
   GetFirstMixer()-&amp;gt;MixerJoin( GetIncomingActiveLeg().Get(), ptrJoinAttributes );&lt;br /&gt;
   GetFirstMixer()-&amp;gt;MixerJoin( GetOutgoingActiveLeg().Get(), ptrJoinAttributes );&lt;br /&gt;
 &lt;br /&gt;
   // Answer the incoming leg&lt;br /&gt;
   GetIncomingActiveLeg()-&amp;gt;AnswerCall();&lt;br /&gt;
 &lt;br /&gt;
   // Play background music on the conference&lt;br /&gt;
   GetFirstMixer()-&amp;gt;MixerPlayStream( PlayAttr );&lt;br /&gt;
 &lt;br /&gt;
   // Call base class to forward event to next behavior&lt;br /&gt;
   CTBCAFBehavior::OnMixerCreated();&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
For a more complete code example, please refer to the simple_call application, in file '''CTBS2GWSimpleCall.cpp''', or here:&lt;br /&gt;
  &lt;br /&gt;
[[CAF:_Leg_Creation_Samples#Bridging_an_Incoming_Call_Leg_.28using_CTBCAFBridge_.29|CTBCAFBridge creation]]&lt;br /&gt;
&lt;br /&gt;
=== Constructing leg attributes ===&lt;br /&gt;
==== Incoming call leg attributes ====&lt;br /&gt;
To create the incoming call leg, the following information is required:&lt;br /&gt;
* Smart pointer to incoming call leg attributes, received from [[Toolpack_Application:toolpack_engine|toolpack_engine]] through ''OnCallLegPresent''().&lt;br /&gt;
 ptrIncomingLegAttribute = tbnew CTBCMC_CALL_LEG_ATTRIBUTE( *(in_CallLegAttribute.GetCallLegAttribute()) );&lt;br /&gt;
* Smart pointer to incoming call leg protocol attributes, received from [[Toolpack_Application:toolpack_engine|toolpack_engine]] through ''OnCallLegPresent''().&lt;br /&gt;
 ptrIncomingLegProtocolAttributes = tbnew CTBCMC_PROTOCOL_ATTRIBUTE( in_ProtocolAttribute, TBX_TRUE );&lt;br /&gt;
* Smart pointer to empty protocol attributes that Behaviors can fill, and that will be used when accepting the call&lt;br /&gt;
&lt;br /&gt;
==== Outgoing call leg attributes ====&lt;br /&gt;
To create the outgoing call leg, the following information is required:&lt;br /&gt;
* Smart pointer to outgoing call leg attributes to use to create the call, generally derived from the incoming call attributes&lt;br /&gt;
 ptrOutgoingLegAttribute = tbnew CTBCMC_CALL_LEG_ATTRIBUTE();&lt;br /&gt;
 ptrOutgoingLegAttribute-&amp;gt;CopyLegAttributeFrom( *(ptrIncomingLegAttribute.Get()) );&lt;br /&gt;
* Smart pointer to empty protocol attributes that Behaviors can fill, and that will be used when creating the outgoing call (SIP invite, ISUP IAM, ISDN Setup, etc.)&lt;br /&gt;
&lt;br /&gt;
==== Mixer attributes ====&lt;br /&gt;
To create the mixer, the following information is required:&lt;br /&gt;
* Smart pointer to mixer attributes to use to create the mixer&lt;br /&gt;
 ptrMixerAttribute = tbnew CTBCMC_MIXER_ATTRIBUTE();&lt;br /&gt;
 ptrMixerAttribute-&amp;gt;SomeParameter = SomeValue;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Call leg initialization callbacks ===&lt;br /&gt;
All behaviors attached to the call flow will be notified of the creation of new call legs through callback '''OnInitIncomingCallLeg()''' or '''OnInitOutgoingCallLeg()'''.&lt;br /&gt;
 &lt;br /&gt;
==== '''OnInitIncomingCallLeg()''' ====&lt;br /&gt;
In this callback, each behavior may consult the incoming call attributes or protocol attributes, and can modify the protocol attributes that will be used to accept the call (actually providing protocol-specific information, like SS7 IEs, or SIP headers).&lt;br /&gt;
&lt;br /&gt;
==== '''OnInitOutgoingCallLeg()''' ====&lt;br /&gt;
In this callback, each behavior can modify the protocol attributes that will be used to create the call (actually providing protocol-specific information, like SS7 IEs, or SIP headers that will be used in the initial signaling message, as SIP Invite, ISUP IAM, or ISDN Setup).&lt;br /&gt;
&lt;br /&gt;
==== ''OnMixerInit()'' ====&lt;br /&gt;
In this callback, each behavior can modify the mixer attributes that will be used to create the mixer.&lt;br /&gt;
&lt;br /&gt;
== Destruction the ''CTBCAFCallFlow'' object, its legs and mixers ==&lt;br /&gt;
=== Self-destructing call legs, mixers, behaviors, and call flow ===&lt;br /&gt;
The ''CTBCAFCallFlow'' object contains smart pointers to it's call legs and mixers. Destruction of these will thus occur automatically when the last smart pointer reference is removed (that last reference can be either the smart pointer reference in the CTBCAFCallFlow object, or anywhere else in the application).&lt;br /&gt;
  &lt;br /&gt;
Upon destruction of the last call leg or last mixer (when no more leg or mixer are in the call flow), the objects based on ''CTBCAFCallFlow'' or ''CTBCAFCallBehavior'' will delete themselves automatically, by calling the attached &amp;quot;free listener&amp;quot; (that was provided in the constructor of the call flow object).&lt;br /&gt;
&lt;br /&gt;
=== Call leg termination callbacks and actions === &lt;br /&gt;
==== '''OnCallLegTerminatingIndication()''' ====&lt;br /&gt;
This callback means that [[Toolpack_Application:toolpack_engine|toolpack_engine]] has received a termination request from a call leg (SIP Bye, ISUP REL, for example).&lt;br /&gt;
A typical use of that event is to call '''TerminateCall()''' on both incoming and outgoing legs of a call flow, to hangup both sides.&lt;br /&gt;
&lt;br /&gt;
==== '''TerminateCall()''' ====&lt;br /&gt;
This function is used for the application to request the termination of a call leg.&lt;br /&gt;
It is also used to confirm that the application is done with a call leg, after '''OnCallLegTerminatingIndication()''' event was received (in that case, '''TerminateCall()''' can be called within the event callback, or later if the application has some more asynchronous cleanup to do).&lt;br /&gt;
&lt;br /&gt;
==== '''OnCallLegTerminated()''' ====&lt;br /&gt;
This callback confirms that [[Toolpack_Application:toolpack_engine|toolpack_engine]] has finished closing the data path and signaling for this call leg.&lt;br /&gt;
It will also be called when a leg is destroyed because of a lost of communication with [[Toolpack_Application:toolpack_engine|toolpack_engine]] (restart, network failure, crash).&lt;br /&gt;
 &lt;br /&gt;
==== '''FreeLeg()''' ====&lt;br /&gt;
It is MANDATORY that this function is called for each call leg after '''OnCallLegTerminated()'''.&lt;br /&gt;
 &lt;br /&gt;
It's up to the application to call the function immediately (within '''OnCallLegTerminated()''' for example) or later after doing some more job (like asynchronous database updates, for example)&lt;br /&gt;
&lt;br /&gt;
==== '''OnLegFreed()''' ====&lt;br /&gt;
This callback confirms that the leg is being freed.&lt;br /&gt;
  &lt;br /&gt;
It's the last chance for a call flow or a behavior to release things related to a call leg, like canceling timers for example.&lt;br /&gt;
   &lt;br /&gt;
*'''Important note:''' Behaviors that implement that function MUST, as the LAST line of their function, call the base class' '''CTBCAFCallBehavior::OnLegFreed'''. Not calling base class' function will cause the call to leak. Calling that before the last line of the function will cause crash, as the Behavior object could destroy itself within that function upon destruction of the last leg/mixer of the call.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Mixer termination callbacks and actions === &lt;br /&gt;
&lt;br /&gt;
==== '''MixerTerminate()''' ====&lt;br /&gt;
This function is used for the application to request the termination of a mixer.&lt;br /&gt;
&lt;br /&gt;
==== '''OnMixerTerminated()''' ====&lt;br /&gt;
This callback confirms that [[Toolpack_Application:toolpack_engine|toolpack_engine]] has finished destroying resources related to this mixer.&lt;br /&gt;
It will also be called when a leg is destroyed because of a lost of communication with [[Toolpack_Application:toolpack_engine|toolpack_engine]] (restart, network failure, crash).&lt;br /&gt;
 &lt;br /&gt;
==== '''FreeMixer()''' ====&lt;br /&gt;
It is MANDATORY that this function is called for each mixer after '''OnMixerTerminated()'''.&lt;br /&gt;
 &lt;br /&gt;
It's up to the application to call the function immediately (within '''OnMixerTerminated()''' for example) or later after doing some more job (like asynchronous database updates, for example)&lt;br /&gt;
&lt;br /&gt;
==== '''OnMixerFreed()''' ====&lt;br /&gt;
This callback confirms that the mixer is being freed.&lt;br /&gt;
  &lt;br /&gt;
It's the last chance for a call flow or a behavior to release things related to a mixer, like canceling timers for example.&lt;br /&gt;
   &lt;br /&gt;
*'''Important note:''' Behaviors that implement that function MUST, as the LAST line of their function, call the base class' '''CTBCAFCallBehavior::OnMixerFreed()'''. Not calling base class' function will cause the mixer and call to leak. Calling that before the last line of the function will cause crash, as the Behavior object could destroy itself within that function upon destruction of the last leg/mixer of the call.&lt;br /&gt;
&lt;br /&gt;
== Re-synchronizing with [[Toolpack_Application:toolpack_engine|toolpack_engine]] ==&lt;br /&gt;
There are a couple of cases where a CAF application needs to re-synchronize with [[Toolpack_Application:toolpack_engine|toolpack_engine]]:&lt;br /&gt;
* The CAF application was restarted&lt;br /&gt;
* The [[Toolpack_Application:toolpack_engine|toolpack_engine]] was restarted&lt;br /&gt;
* Network connection between CAF application and [[Toolpack_Application:toolpack_engine|toolpack_engine]] was momentarily down&lt;br /&gt;
 &lt;br /&gt;
When communication with [[Toolpack_Application:toolpack_engine|toolpack_engine]] is lost, all call legs and mixers are notified of the disconnection through '''OnSyncLost()''' and '''OnMixerSyncLost()'''. However, they are not immediately destroyed. They are kept in the CAF framework for 10 seconds waiting for the engine (or backup engine) to reconnect. After 10 seconds, legs and mixers are terminated in the CAF framwork. This does not mean, however, that they are terminated in the toolpack_engine. Upon reconnection with engine, legs and mixers still present in the engine will be sent back to the CAF application through '''OnCallLegSync()''' and '''OnMixerSync()'''.&lt;br /&gt;
 &lt;br /&gt;
Possible scenarios for a leg are thus:&lt;br /&gt;
* Engine is reconnected within 10 seconds:&lt;br /&gt;
** Some legs/mixers no more exist in [[Toolpack_Application:toolpack_engine|toolpack_engine]], and will be notified by '''OnCallLegTerminated()''' / '''OnMixerTerminated()'''.&lt;br /&gt;
** Legs/mixers that are still valid will be untouched (though they are notified with '''OnLegSync()''' / '''OnLinkSync()''' / '''OnMixerSync()''',  for convenience)&lt;br /&gt;
* Engine has been disconnected for more than 10 seconds:&lt;br /&gt;
** CAF framework will terminate call legs/mixers, and notify them through '''OnCallLegTerminated()''' / '''OnMixerTerminated()'''&lt;br /&gt;
** Later, when engine is reconnected after a &amp;gt;10:&lt;br /&gt;
*** Call legs/mixers that are still available in [[Toolpack_Application:toolpack_engine|toolpack_engine]] are pushed back to CAF application through '''OnCallLegSync()''', '''OnLinkSync()''' and '''OnMixerSync()'''&lt;br /&gt;
*** CAF application can refuse them, or re-build it's legs/mixers/call flow contexts to resume operation on these calls&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Re-synchronization sequence ===&lt;br /&gt;
&lt;br /&gt;
In all the cases above, the re-synchronization mechanism involves the following steps:&lt;br /&gt;
&lt;br /&gt;
=&amp;gt; Communication lost with [[Toolpack_Application:toolpack_engine|toolpack_engine]]&lt;br /&gt;
* '''OnCmcLibNotReady()''' (CAF application callback): Indicates that communication with [[Toolpack_Application:toolpack_engine|toolpack_engine]] has been interrupted. It will not be possible to perform actions (play file, ask for digit collection) on call legs/mixers until [[Toolpack_Application:toolpack_engine|toolpack_engine]] is ready again ('''OnCmcLibReady''').&lt;br /&gt;
* '''OnSyncLost()''' (CAF call flow and behavior callback): Same meaning as '''OnCmcLibNotReady()''', passed to each call leg contexts individually.&lt;br /&gt;
* '''OnMixerSyncLost()''' (CAF call flow and behavior callback): Same meaning as '''OnCmcLibNotReady()''', passed to each call mixer contexts individually.&lt;br /&gt;
&lt;br /&gt;
=&amp;gt; Communication re-established with [[Toolpack_Application:toolpack_engine|toolpack_engine]]&lt;br /&gt;
* '''OnCallLegSync()''' (CAF application callback): Indicates that the [[Toolpack_Application:toolpack_engine|toolpack_engine]] knows about a call leg that does not exist in the CAF application.&lt;br /&gt;
* '''OnLinkSync()''' (CAF application callback): Indicates that the [[Toolpack_Application:toolpack_engine|toolpack_engine]] knows about a link between two call legs (legs are joined, audio is flowing from one to the other directly).&lt;br /&gt;
* '''OnMixerSync()''' (CAF application callback): Indicates that the [[Toolpack_Application:toolpack_engine|toolpack_engine]] knows about a mixer that does not exist in the CAF application.&lt;br /&gt;
* '''OnCmcLibReady()''' (CAF application callback): Indicates that communication with [[Toolpack_Application:toolpack_engine|toolpack_engine]] has been restored, and that all legs, links and mixers have been re-synchronized&lt;br /&gt;
* '''OnSyncDone()''' (CAF call flow and behavior callback): Indicates to a call leg (that previously received '''OnSyncLost()''') that it is still present in the [[Toolpack_Application:toolpack_engine|toolpack_engine]], and ready to be controlled again.&lt;br /&gt;
* '''OnMixerSyncDone()''' (CAF call flow and behavior callback): Indicates to a mixer (that previously received '''OnMixerSyncLost()''') that it is still present in the [[Toolpack_Application:toolpack_engine|toolpack_engine]], and ready to be controlled again.&lt;br /&gt;
* '''OnCallLegTerminated()'''  (CAF call flow and behavior callback): When this function is called with Reason ''TBCMC_CALL_REASON_CODE_TOOLPACK_SYNC_DROP'', it indicates that this call leg is no more present in [[Toolpack_Application:toolpack_engine|toolpack_engine]] after re-synchronizing, and must thus be freed in the CAF application too.&lt;br /&gt;
* '''OnMixerTerminated()'''  (CAF call flow and behavior callback): When this function is called, it indicates that this mixer is no more present in [[Toolpack_Application:toolpack_engine|toolpack_engine]] after re-synchronizing, and must thus be freed in the CAF application too.&lt;br /&gt;
&lt;br /&gt;
=== Rebuilding new legs, mixers and call flow objects ===&lt;br /&gt;
When an application receives '''OnCallLegSync()''', it must take the decision to either keep the call leg (create a CTBCAFCallLeg object) or refuse it (tell [[Toolpack_Application:toolpack_engine|toolpack_engine]] that we don't want to re-synchronize it, and that it must be terminated).&lt;br /&gt;
&lt;br /&gt;
When an application receives '''OnMixerSync()''', it must take the decision to either keep the mixer (create a CTBCAFMixer object) or refuse it (tell [[Toolpack_Application:toolpack_engine|toolpack_engine]] that we don't want to re-synchronize it, and that it must be terminated).&lt;br /&gt;
 &lt;br /&gt;
==== Dropping re-synchronized legs ====&lt;br /&gt;
The static helper function '''CTBCMCLeg::RefuseLeg()''' has been provided by the class ''CTBCMCLeg'' to terminate re-synchronized call legs without having to worry about creating any object. An application that wants to refuse a re-synchronized leg should call it.&lt;br /&gt;
&lt;br /&gt;
==== Dropping re-synchronized links ====&lt;br /&gt;
The static helper function '''CTBCMCLeg::RefuseLink()''' has been provided by the class ''CTBCMCLeg'' to terminate re-synchronized links without having to worry about creating any object. An application that wants to refuse a re-synchronized link should call it.&lt;br /&gt;
&lt;br /&gt;
==== Dropping re-synchronized mixers ====&lt;br /&gt;
The static helper function '''CTBCMCMixer::RefuseMixer()''' has been provided by the class ''CTBCMCMixer'' to terminate re-synchronized mixer without having to worry about creating any object. An application that wants to refuse a re-synchronized mixer should call it.&lt;br /&gt;
&lt;br /&gt;
==== Keeping re-synchronized legs that are part of a link or a mixer ====&lt;br /&gt;
The helper class ''CTBCAFCallLegResync'' is provided to help creating CTBCAFCallLeg objects for re-synchronized legs, and later retrieve them and attach them to a CTBCAFCallFlow parent, upon '''OnLinkSync()''' or '''OnMixerSync()''':&lt;br /&gt;
&lt;br /&gt;
Upon '''OnLegSync()''', legs should be allocated inside the class ''CTBCAFCallLegResync'' using function '''AllocateCallLeg()'''. Legs don't yet need to be attached to a parent CTBCAFCallFlow, that's normally done upon '''OnLinkSync()''' or '''OnMixerSync()'''.&lt;br /&gt;
 &lt;br /&gt;
Upon '''OnLinkSync()''', the LegId of the two joined call legs are provided. Both legs must be retrieved from the ''CTBCAFCallLegResync'' (using functions '''FindCallLeg()''' and '''RemoveCallLeg()'''), then added to a CTBCAFCallFlow object that will resume the call flow of these two joined call legs.&lt;br /&gt;
&lt;br /&gt;
Upon '''OnMixerSync()''', the LegId of all legs in that mixer (along with Join Attributes) are provided. A new CTBCAFMixer object must be allocated, and all call legs from that mixer must be retrieved from the ''CTBCAFCallLegResync'' object (using functions '''FindCallLeg()''' and '''RemoveCallLeg()'''). The allocated mixer and found legs must then be assigned to a CTBCAFCallFlow object that will resume the call flow.&lt;br /&gt;
 &lt;br /&gt;
Finally, upon '''OnCmcLibReady()''', the application can destroy the CTBCAFCallLegResync object, which will take care of refusing (dropping) all call legs that it still references (that have not been removed by '''CTBCAFCallLegResync::RemoveCallLeg''')&lt;br /&gt;
&lt;br /&gt;
Simplified example code:&lt;br /&gt;
&lt;br /&gt;
 TBX_VOID CTBMyApp::OnCallLegSync&lt;br /&gt;
 (&lt;br /&gt;
   IN    TBCMC_LEG_ID                         in_LegId,&lt;br /&gt;
   IN    CTBCMC_CALL_LEG_ATTRIBUTE_COMMON&amp;amp;    in_CallLegAttribute&lt;br /&gt;
 )&lt;br /&gt;
 {&lt;br /&gt;
     // Upon first re-synchronized leg, allocate utility class to contain re-synchronized call legs&lt;br /&gt;
     if( !mpCallLegResync )&lt;br /&gt;
     {&lt;br /&gt;
         mpCallLegResync = new TBCAF::CTBCAFCallLegResync( MY_APP_MAX_CALLS );&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     // Re-create a CTBCAFCallLeg object for this re-synchronized leg&lt;br /&gt;
     mpCallLegResync-&amp;gt;AllocateCallLeg&lt;br /&gt;
     (&lt;br /&gt;
         NULL,                            // Not yet bound to a parent call flow&lt;br /&gt;
         in_LegId,                        // Use the leg Id of this re-synchronized call leg&lt;br /&gt;
         in_CallLegAttribute,             // Store the attributes of this re-synchronized call leg&lt;br /&gt;
         this,                            // Until it has a parent call flow, set ourself as &lt;br /&gt;
         TBCMC_MSG_CALL_LEG_STATE_ACTIVE  // Consider this call leg as active (answered)&lt;br /&gt;
                                          //  since only active calls can be re-synchronized&lt;br /&gt;
     );&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 TBX_VOID CTBMyApp::OnLinkSync&lt;br /&gt;
 (&lt;br /&gt;
   IN    TBCMC_LINK_ID              in_LinkId, &lt;br /&gt;
   IN    TBCMC_LEG_ID               in_SrcLegId, &lt;br /&gt;
   IN    TBCMC_LEG_ID               in_DstLegId, &lt;br /&gt;
   IN    CTBCMC_JOIN_ATTRIBUTE &amp;amp;    in_JoinAttribute&lt;br /&gt;
 )&lt;br /&gt;
 {&lt;br /&gt;
     // Find both call legs in the re-sync utility mpCallLegResync&lt;br /&gt;
     PTRCTBCAFCallLeg ptrSrcLeg = mpCallLegResync-&amp;gt;RemoveCallLeg( in_SrcLegId );&lt;br /&gt;
     PTRCTBCAFCallLeg ptrDstLeg = mpCallLegResync-&amp;gt;RemoveCallLeg( in_DstLegId );&lt;br /&gt;
 &lt;br /&gt;
     // Allocate a new call flow&lt;br /&gt;
     PITBCAFCallFlow pMyCallFlow = tbnew CTBCAFMyCallFlow&lt;br /&gt;
     (&lt;br /&gt;
         this,                // Set current application as free listener for my call flow&lt;br /&gt;
         in_LinkId,           // Id of the link between these two joined legs&lt;br /&gt;
         in_JoinAttribute,    // Attributes of the link between these two joined legs&lt;br /&gt;
         ptrSrcLeg,&lt;br /&gt;
         ptrDstLeg&lt;br /&gt;
     );&lt;br /&gt;
 &lt;br /&gt;
     // Re-attach behaviors to this call flow&lt;br /&gt;
     pMyCallFlow = tbnew CTBCAFMyFirstBehavior( pMyCallFlow, ... );&lt;br /&gt;
     pMyCallFlow = tbnew CTBCAFMySecondBehavior( pMyCallFlow, ... );&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 TBX_VOID CTBMyApp::OnCmcLibReady()&lt;br /&gt;
 {&lt;br /&gt;
     // Free all single call legs that remain&lt;br /&gt;
     // Deleting mpCallLegResync will automatically reject legs still in that object&lt;br /&gt;
     delete mpCallLegResync;&lt;br /&gt;
     mpCallLegResync = NULL;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 TBX_VOID CTBMyApp::OnCmcLibNotReady()&lt;br /&gt;
 {&lt;br /&gt;
     // Free all single call legs that remain&lt;br /&gt;
     // Deleting mpCallLegResync will automatically reject legs still in that object&lt;br /&gt;
     delete mpCallLegResync;&lt;br /&gt;
     mpCallLegResync = NULL;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For a more complete code example, please refer to the simple_call application, in file '''CTBS2GWSimpleCall.cpp'''.&lt;/div&gt;</summary>
		<author><name>Jasmin Letendre</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/Toolpack:Create_an_ISUP_Circuit</id>
		<title>Toolpack:Create an ISUP Circuit</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/Toolpack:Create_an_ISUP_Circuit"/>
				<updated>2012-01-10T15:49:37Z</updated>
		
		<summary type="html">&lt;p&gt;Jasmin Letendre: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The TB640_MSG_ID_SS7_ISUP_OP_CIRCUIT_ALLOC (request/response) message is used to initialize (create) an instance representing one or many ISUP circuits.   Since a circuit represents a physical voice (or data) channel between this SS7 node and a remote SS7 node, it is likely that a system will have thousands of circuits created.   &lt;br /&gt;
&lt;br /&gt;
As mentioned before, a message TB640_MSG_SS7_ISUP_OP_CIRCUIT_ALLOC can instantiate more than one circuit at the same time.  This is to help the host application to reduce the number of messages to send toward the TB640 when it wants to allocate thousand of circuits.   The parameter un32NbCircuitAlloc tells the TB640 the number of consecutive circuit to allocate.  All configuration parameters for all circuits will be identical with the exception of un32CircuitId (which will be incremented by one for each circuit instance) and un16Cic (which will also be incremented by one for each circuit instance).  See configuration parameter description below for a better understanding of those two parameters.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' During multiple circuit instantiation, only the un32CircuitId and un16Cic will differ from the configuration from one circuit to the other.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The following enumeration lists the different configuration parameters and their description.  Unless specifically noted, all parameters are not reconfigurable:&lt;br /&gt;
&lt;br /&gt;
*The '''Circuit ID''' parameter is a 32-bit value, assigned by the host application, that is used as an opaque handle by the ISUP layer to refer to a specific circuit part of a specific interface which is in turn part of a specific userpart. The only two requirements are for this value to be unique for the ISUP overall stack and to not be equal to zero.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' The value of Circuit ID cannot be zero&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*The '''ISUP interface''' parameter is the handle provided by the TB640_MSG_SS7_ISUP_OP_INTERFACE_ALLOC message.  It is used to specify within which interface this/these circuit instance(s) is/are to be created. &lt;br /&gt;
*The '''CIC''' parameter is the circuit identification code that will be used for incoming and outgoing calls. Allowable values are protocol signaling standard-specific. For example, ITU-T allows 12bits CIC values and ANSI allows 14bits CIC values. Both standards have spare bits to extend this range to 16 bits but, according to specifications, can do so only with a common agreement/understanding over the SS7 network. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*The '''Control type''' parameter is used to determine which side is controlling call.  This is required when handling special cases such as call collisions or dual seizure.  This configuration parameter needs to be understood (i.e. properly configured) by both ends of the circuits.  Allowed values are:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! width=&amp;quot;150&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; |Control type&lt;br /&gt;
! width=&amp;quot;350&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; |Description&lt;br /&gt;
|-&lt;br /&gt;
| Incoming|| Circuit is always controlled by remote end for incoming calls. Only incoming calls are accepted on the circuit.  Outgoing call attempts will be refused.&lt;br /&gt;
|-&lt;br /&gt;
| Outgoing|| Circuit always controls the remote end for outgoing calls. Only outgoing calls are accepted on the circuit.  Incoming call attempts will be refused.&lt;br /&gt;
|-&lt;br /&gt;
| Bothway|| For call collision, the exchange with the higher signalling point code will control even-numbered CIC and the other exchange will control odd-numbered CIC.&lt;br /&gt;
&lt;br /&gt;
Both incoming and outgoing calls are allowed on the circuit.&lt;br /&gt;
|-&lt;br /&gt;
| Controlled|| Circuit is always controlled by remote end for all calls during a collision. Both incoming and outgoing calls are allowed on the circuit.&lt;br /&gt;
|-&lt;br /&gt;
| Controlling|| Circuit is always controlled by the local stack during a collision. Both incoming and outgoing calls are allowed on the circuit.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*The '''Outgoing continuity check''' parameter is used to instruct the ISUP layer to issue a continuity check request for outgoing calls on that circuit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*The '''Slot identification''' parameter contains the slot ID within a trunk group. This field is read while filling the CAM parameter for sending GRS from the ISUP layer. Moreover, the ISUP layer uses it to validate a CAM parameter with it receives a message with a CAM present. It is only used in ANSI95, ITU97 and ETSI variants. The format of the slot ID is shown below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 {| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! width=&amp;quot;150&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; |Slot identification&lt;br /&gt;
! width=&amp;quot;350&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; |Description&lt;br /&gt;
|-&lt;br /&gt;
| Normal|| MTP2 layer is used in conjunction with an above MTP3 layer&lt;br /&gt;
|-&lt;br /&gt;
| HSL|| MTP2 layer high speed link is used in conjunction with an above MTP3 layer&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7&lt;br /&gt;
&lt;br /&gt;
6&lt;br /&gt;
&lt;br /&gt;
5&lt;br /&gt;
&lt;br /&gt;
4&lt;br /&gt;
&lt;br /&gt;
3&lt;br /&gt;
&lt;br /&gt;
2&lt;br /&gt;
&lt;br /&gt;
1&lt;br /&gt;
&lt;br /&gt;
0&lt;br /&gt;
&lt;br /&gt;
Spare&lt;br /&gt;
&lt;br /&gt;
MRC supported ?&lt;br /&gt;
&lt;br /&gt;
MRC skipped ?&lt;br /&gt;
&lt;br /&gt;
Timeslot ID&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! width=&amp;quot;150&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; |Slot identification&lt;br /&gt;
! width=&amp;quot;350&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; |Description&lt;br /&gt;
|-&lt;br /&gt;
| Bits 0-4|| Represents the 0-31 (E1) or 0-23 (T1) timeslot within the trunk group. Should configure the Slot ID of the first position circuit in a trunk group as 0.&lt;br /&gt;
|-&lt;br /&gt;
| Bit 5|| Tells whether or not the circuit used for contiguous multi-rate calls or is skipped. Can only be used when the checking of starting circuit is done in accordance with Q.763 Table 3 is not required.&lt;br /&gt;
|-&lt;br /&gt;
| Bit 6|| Tells whether or not the circuit supporting contiguous multi-rate calls.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*The '''Dual seizure control for multi-rate''' parameter is used to indicate the controlling side for CIC for the entire trunk group, where at least one of the calls is a non-single rate connection.  This field is used only for ANSI95, ITU97 and ETSI variants.&lt;br /&gt;
*The '''Non-SS7 connection''' parameter is used to indicate if this circuit is connected to a non-SS7 network.  If set, the outgoing trunk group address provided by the parameter szOutTrkGrpNb is used.  This is also used to generate the EXIT message for outgoing calls.  The timer tEx (un32ExTimer parameter from the ISUP userpart configuration) is started when the IAM is sent.  Upon timer expiry, an EXIT message is sent.  This field is used only for ANSI88, ANSI92, ANSI95 and Telcordia variants.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*The '''Options''' parameter is used to active per-circuit options.  Allowed values are:&lt;br /&gt;
&lt;br /&gt;
Table  SEQ Table \* ARABIC 45 - ISUP circuit options&lt;br /&gt;
&lt;br /&gt;
Circuit options&lt;br /&gt;
&lt;br /&gt;
Description&lt;br /&gt;
&lt;br /&gt;
ANSI International    Used to support international calls in addition to national (default).  Used for ANSI networks only.&lt;br /&gt;
&lt;br /&gt;
Use Confusion Message    Activates the use of the CONFUSION message.&lt;br /&gt;
&lt;br /&gt;
Circuit Type Unknown     Indicates circuit group carrier information.&lt;br /&gt;
&lt;br /&gt;
Circuit Type Analog &lt;br /&gt;
&lt;br /&gt;
Circuit Type Digital&lt;br /&gt;
 &lt;br /&gt;
Circuit Type Analog Digital&lt;br /&gt;
&lt;br /&gt;
Alarm Carrier Unknown    Indicates the information of the alarm carrier.&lt;br /&gt;
&lt;br /&gt;
Alarm Carrier Software&lt;br /&gt;
&lt;br /&gt;
Alarm Carrier Hardware&lt;br /&gt;
&lt;br /&gt;
Continuity Check Unknown     Indicates the continuity check requirements. These options can be reconfigured.&lt;br /&gt;
&lt;br /&gt;
Continuity Check None&lt;br /&gt;
&lt;br /&gt;
Continuity Check Statistical &lt;br /&gt;
&lt;br /&gt;
Continuity Check Per Call&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*The '''First CIC''' parameter indicates the first circuit identification code in the circuit group.  This field is used only for ANSI88, ANSI92, ANSI95 and Telcordia.  When using one of those variants and receiving (or sending) a group command with a range of 0 (within the “range and status” IE), the ISUP layer uses un16FirstCic and un16NbCircuitInGroup to know which CICs are affected by the command.  Refer to section 6.3.3.1  08D0C9EA79F9BACE118C8200AA004BA90B0200000008000  for more information.&lt;br /&gt;
*The '''Number of circuits in group''' parameter (un16NbCircuitInGroup) indicates total number of CIC part of the circuit group.  This field is used only for ANSI88, ANSI92, ANSI95 and Telcordia.  When using one of those variants and receiving (or sending) a group command with a range of 0 (within the “range and status” IE), the ISUP layer uses un16FirstCic and un16NbCircuitInGroup to know which CICs are affected by the command.  Refer to section  6.3.3.1  08D0C9EA79F9BACE118C8200AA004BA90B020 for more information.&lt;br /&gt;
*The '''Outgoing trunk group nb''' parameter is used to store the outgoing trunk group number to be used in the EXIT messages for ANSI88, ANSI92, ANSI95 and Telcordia variants for non-SS7 circuits.  For SS7 circuits, this field is used to store the circuit ID name for the Telcordia variant.&lt;br /&gt;
*The '''Circuit identification name''' parameter is used to store the circuit identification name expected in the CVR message.  This field is only used for ANSI88, ANSI92, ANSI95 and Telcordia to validate the circuit identification name upon validation of incoming CRV messages.   Refer to the ANSI specification for the format of this field.&lt;br /&gt;
*The '''Location ID''' parameter is contains the common language name to identify the switching office by town, state and building subdivision.  This field is only used for ANSI88, ANSI92 and Telcordia variants.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*The '''Timer configuration''' parameters are defined as follows; all values must be expressed in milliseconds:  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 {| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! width=&amp;quot;150&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; |Connection mode&lt;br /&gt;
! width=&amp;quot;350&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; |Description&lt;br /&gt;
|-&lt;br /&gt;
| T3 Timer|| OVERLOAD message received.  Terminated normally after 2 minutes.&lt;br /&gt;
|-&lt;br /&gt;
| T12 Timer|| BLOCKING message sent.  Terminated normally when BLOCKING ACKNOWLEDGEMENT is received.  Typical values are 15 to 60 seconds.&lt;br /&gt;
|-&lt;br /&gt;
| T13 Timer|| INITIAL BLOCKING message sent.  Terminated normally when BLOCKING ACKNOWLEDGMENT is received.  Typical values are 5 to 15 minutes.&lt;br /&gt;
|-&lt;br /&gt;
| T14 Timer|| UNBLOCKING message sent.  Terminated normally when UNBLOCKING ACKNOWLEDGMENT is received.  Typical values are 15 to 60 seconds.&lt;br /&gt;
|-&lt;br /&gt;
| T15 Timer|| INITIAL UNBLOCKING message sent.  Terminated normally when UNBLOCKING ACKNOWLEDGMENT is received.  Typical values are 5 to 15 minutes.&lt;br /&gt;
|-&lt;br /&gt;
| T16 Timer|| RESET message sent. Terminated normally when RELEASE COMPLETE is received. Typical values are 15 to 60 seconds.&lt;br /&gt;
|-&lt;br /&gt;
| T17 Timer|| INITIAL RESET message sent.  Terminated normally when RELEASE COMPLETE is received. Typical values are 5 to 15 minutes.&lt;br /&gt;
|-&lt;br /&gt;
| Val Timer|| Circuit validation timer for ANSI88, ANSI92, ANSI95 and Telcordia. Typical value is 10 seconds.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' The following timers are not required for the UK: T3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following enumeration lists the different response parameters and their description:&lt;br /&gt;
*The '''Number of allocated circuit response''' parameter contains the number of circuits that were successfully allocated. If everything went well, this number should be equal to un32NbCircuitAlloc from the request part of the message (see above).&lt;br /&gt;
*The '''Number of non-allocated circuit response''' parameter contains the number of unsuccessful allocation attempts. If this number is non-zero, the host application must consider that the value for Number of Circuit Allocated was allocated. Since circuits are allocated sequentially in case of multiple allocations, the host application can assume that the first value for Number of Circuit Allocated was allocated.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' un32NbCircuitAllocated + un32NbCircuitNotAllocated = un32NbCircuitAlloc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' As specified in section 6.1.3  08D0C9EA79F9BACE118C8200AA004BA90B0, an ISUP circuit can only be part of a single ISUP interface.  On the other hand, multiple circuits can be attached to the same interface instance. Those circuits represent the voice channels available between the local SS7 node and the remote SS7 node.&lt;/div&gt;</summary>
		<author><name>Jasmin Letendre</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/ISDN</id>
		<title>ISDN</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/ISDN"/>
				<updated>2011-11-30T18:58:55Z</updated>
		
		<summary type="html">&lt;p&gt;Jasmin Letendre: Fixed link to Tutorial Guide for V2.5&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Integrated Systems Digital Network (ISDN) is a circuit-switched telephone system that integrated voice and data on the same lines.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TelcoBridges and ISDN ==&lt;br /&gt;
&lt;br /&gt;
Tmedia and Tdev systems can be configured to provide an ISDN signalling stack on the trunks of one or more units to meet system configuration requirements. ISDN signaling stacks are signaling resources that are assigned to a specific line of the Tmedia or Tdev unit. Based on the [http://en.wikipedia.org/wiki/Q.931 Q.931] switch variant that will be used by the system, a selection of ISDN variants are available. For each line service requiring ISDN signaling, an ISDN signaling stack is created with its own distinct signaling variant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ISDN signaling stacks.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note: The trunks of each Tmedia or Tdev unit can be configured to have their own ISDN signaling stack.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Related actions  ==&lt;br /&gt;
&lt;br /&gt;
'''Refer to the appropriate Toolpack release:''' &lt;br /&gt;
&lt;br /&gt;
*[[Web Portal Tutorial Guide v2.2#ISDN_Signaling|Toolpack v2.2: ISDN Signaling]] &lt;br /&gt;
*[[Web Portal Tutorial Guide v2.3#ISDN_Signaling|Toolpack v2.3: ISDN Signaling]] &lt;br /&gt;
*[[Web Portal Tutorial Guide v2.4#ISDN_Signaling|Toolpack v2.4: ISDN Signaling]] &lt;br /&gt;
*[[Web Portal Tutorial Guide v2.5#ISDN-SIP_Gateway_Configuration|Toolpack v2.5: ISDN Signaling]]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Integrated_Services_Digital_Network Wikipedia article]&lt;br /&gt;
*[[ISDN:Specification|Supported ISDN standards and variants]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Glossary]]&lt;/div&gt;</summary>
		<author><name>Jasmin Letendre</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/Toolpack_prerequisite_CentOS5_A</id>
		<title>Toolpack prerequisite CentOS5 A</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/Toolpack_prerequisite_CentOS5_A"/>
				<updated>2011-08-10T18:05:10Z</updated>
		
		<summary type="html">&lt;p&gt;Jasmin Letendre: Fixed typo in name of the aio library&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page shows the Toolpack 2-5 prerequisites for CentOS 5.5.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#B22222&amp;quot;&amp;gt;&lt;br /&gt;
''WARNING'': The host MUST have CentOS 5.5 installed. If you don't want to update your host, please follow the [[Toolpack_prerequisite_CentOS5_2-5_manual | manual procedure]] instead.&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#B22222&amp;quot;&amp;gt;&lt;br /&gt;
''WARNING'': If you followed the [[Toolpack_prerequisite_CentOS5_2-5_manual | manual procedure]] on the system before, you &amp;lt;b&amp;gt;MUST NOT&amp;lt;/b&amp;gt; use the steps on this page before doing a cleanup of the previously installed files. You should ask Telcobridges support for help with the cleanup.&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#B22222&amp;quot;&amp;gt;&lt;br /&gt;
''WARNING'': This procedure requires internet access&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CentOS update ==&lt;br /&gt;
&lt;br /&gt;
Update your system to CentOS 5.5&lt;br /&gt;
&lt;br /&gt;
 yum update&lt;br /&gt;
&lt;br /&gt;
== TelcoBridges repository ==&lt;br /&gt;
&lt;br /&gt;
Add TelcoBridges repository file&lt;br /&gt;
&lt;br /&gt;
  vim /etc/yum.repos.d/TB-Base.repo&lt;br /&gt;
&lt;br /&gt;
Paste the following information in that file:&lt;br /&gt;
&lt;br /&gt;
 # TelcoBridges-Base.repo&lt;br /&gt;
 #&lt;br /&gt;
 # This repository is using TelcoBridges frozen version of CentOS&lt;br /&gt;
 # to help client installing the required version of the&lt;br /&gt;
 # applications required to run Toolpack&lt;br /&gt;
 #&lt;br /&gt;
 &lt;br /&gt;
 [tb-base]&lt;br /&gt;
 name=TelcoBridges-$releasever - Base&lt;br /&gt;
 baseurl=http://repo.telcobridges.com/centos/5.5/os/$basearch/&lt;br /&gt;
 gpgcheck=1&lt;br /&gt;
 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5&lt;br /&gt;
 &lt;br /&gt;
 #released updates&lt;br /&gt;
 [tb-updates]&lt;br /&gt;
 name=TelcoBridges-$releasever - Updates&lt;br /&gt;
 baseurl=http://repo.telcobridges.com/centos/5.5/updates/$basearch/&lt;br /&gt;
 gpgcheck=1&lt;br /&gt;
 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5-tb&lt;br /&gt;
&lt;br /&gt;
Get TelcoBridges repository key&lt;br /&gt;
&lt;br /&gt;
 cd /etc/pki/rpm-gpg/&lt;br /&gt;
 wget http://repo.telcobridges.com/centos/RPM-GPG-KEY-CentOS-5-tb&lt;br /&gt;
&lt;br /&gt;
== Install Toolpack Prerequisites ==&lt;br /&gt;
&lt;br /&gt;
When asked to 'Importing GPG key', answer yes.&lt;br /&gt;
&lt;br /&gt;
 yum groupinstall Toolpack-Prerequisites&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Configure Toolpack Prerequisites ==&lt;br /&gt;
=== Configure ODBC ===&lt;br /&gt;
&lt;br /&gt;
 vim /etc/odbcinst.ini&lt;br /&gt;
&lt;br /&gt;
Remove the '#' in front of each lines of the [MySQL] section&lt;br /&gt;
Modify the 'Driver' line to set the correct driver&lt;br /&gt;
&lt;br /&gt;
Example for 32 bits system:&lt;br /&gt;
&lt;br /&gt;
 [MySQL]&lt;br /&gt;
 Description     = ODBC for MySQL&lt;br /&gt;
 Driver          = /usr/lib/libmyodbc5.so&lt;br /&gt;
 Setup           = /usr/lib/libodbcmyS.so&lt;br /&gt;
 FileUsage       = 1	&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example for 64 bits system:&lt;br /&gt;
&lt;br /&gt;
 [MySQL]&lt;br /&gt;
 Description     = ODBC for MySQL&lt;br /&gt;
 Driver          = /usr/lib64/libmyodbc5.so&lt;br /&gt;
 Setup           = /usr/lib/libodbcmyS.so&lt;br /&gt;
 FileUsage       = 1	&lt;br /&gt;
&lt;br /&gt;
=== Configure MySQL ===&lt;br /&gt;
&lt;br /&gt;
  vim /etc/my.cnf&lt;br /&gt;
&lt;br /&gt;
Add 2 new variables in the file under the [mysqld] section:&lt;br /&gt;
*log-bin&lt;br /&gt;
*server-id=''[UniqueId]''&lt;br /&gt;
&lt;br /&gt;
The server-id needs to be a non-zero unique value (do not use 0). If you use the host redundancy feature, the value needs to be different on each host .&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
Add max_allowed_packet to increase the maximum size of binary blobs in the database.&lt;br /&gt;
Make sure it is in the [mysqld] section AND [mysqldump] section&lt;br /&gt;
  max_allowed_packet = 200MB&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  [mysqld]&lt;br /&gt;
  datadir=/var/lib/mysql&lt;br /&gt;
  socket=/var/lib/mysql/mysql.sock&lt;br /&gt;
  user=mysql&lt;br /&gt;
  log-bin&lt;br /&gt;
  server-id=5876&lt;br /&gt;
  max_allowed_packet = 200MB&lt;br /&gt;
  # Default to using old password format for compatibility with mysql 3.x&lt;br /&gt;
  # clients (those using the mysqlclient10 compatibility package).&lt;br /&gt;
  old_passwords=1&lt;br /&gt;
  &lt;br /&gt;
  [mysqldump]&lt;br /&gt;
  max_allowed_packet = 200MB&lt;br /&gt;
&lt;br /&gt;
=== Start MySQL ===&lt;br /&gt;
&lt;br /&gt;
 service mysqld start&lt;br /&gt;
&lt;br /&gt;
=== Configure MySQL Users ===&lt;br /&gt;
&lt;br /&gt;
*Set password for the root user to 'tbdbpw' (TelcoBridges recommends that you set your own password for root)&lt;br /&gt;
*Enable root connection from localhost only&lt;br /&gt;
*Create a tbdb user (required by Toolpack)&lt;br /&gt;
*Remove anonymous connection&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 /usr/bin/mysqladmin -u root password tbdbpw&lt;br /&gt;
&lt;br /&gt;
 mysql -uroot -ptbdbpw&lt;br /&gt;
 DELETE FROM mysql.user WHERE !(Host = 'localhost' AND User = 'root');&lt;br /&gt;
 FLUSH PRIVILEGES;&lt;br /&gt;
 CREATE USER 'tbdb'@'%' IDENTIFIED BY 'tbdbpw';&lt;br /&gt;
 GRANT ALL PRIVILEGES ON *.* TO 'tbdb'@'%' IDENTIFIED BY 'tbdbpw';&lt;br /&gt;
 FLUSH PRIVILEGES;&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
== Toolpack Development Prerequisite (Optional) ==&lt;br /&gt;
The Toolpack System Development prerequisite section is only required for customers that will develop their own application using the Toolpack API:&lt;br /&gt;
&lt;br /&gt;
 yum install gcc-c++ libxml2-devel libpcap-devel unixODBC-devel libaio libaio-devel&lt;br /&gt;
&lt;br /&gt;
== Validation Guide (highly recommended) ==&lt;br /&gt;
If you would like to verify your installation go to the [[Toolpack_Installation:Validate_Toolpack_Installation_2-5|Toolpack Validation Guide]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Toolpack System installation ==&lt;br /&gt;
&lt;br /&gt;
Now that the prerequisite are installed, now it is time to install the [[toolpack_installer_2-4|Toolpack system]]&lt;/div&gt;</summary>
		<author><name>Jasmin Letendre</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/Toolpack:Configuring_tbSnmpAgent_A</id>
		<title>Toolpack:Configuring tbSnmpAgent A</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/Toolpack:Configuring_tbSnmpAgent_A"/>
				<updated>2011-06-21T20:52:31Z</updated>
		
		<summary type="html">&lt;p&gt;Jasmin Letendre: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Once you are logged into the Web Portal and have successfully activated the tbSnmpAgent application, follow these steps to configure the application to suit your needs:&lt;br /&gt;
&lt;br /&gt;
*Under the '''Applications''' heading, in the Web Portal navigation panel, click the '''Configurations''' tab.&lt;br /&gt;
[[File:Snmp_cfg_click_configurations.gif|border]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
*In the '''Application Configuration List''', find the entry for '''tbsnmpagent''' and click the link labeled '''edit''', next to that entry.&lt;br /&gt;
[[File:Snmp_cfg_click_edit.gif|border]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
===&amp;lt;u&amp;gt;The tbSnmpAgent '''Application Configuration''' window is divided into several sections, which may be of interest to customers&amp;lt;/u&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
#Under the '''Application Params''' heading, the following general application parameters can be configured:&lt;br /&gt;
#*SNMP IP Port: the '''IP port''' to use for making SNMP requests (standard default value is 161)&lt;br /&gt;
#*SNMP System Description: the textual description that will appear when polling the '''sysDescr''' variable of the SNMPv2-MIB&lt;br /&gt;
#*SNMP System Object ID: the value appended to TelcoBridges' value (.1.3.6.1.4.1.21776.3) for the SNMPv2-MIB variable '''sysObjectId'''&lt;br /&gt;
#*SNMP System Name: the textual description that will appear when polling the '''sysName''' variable of the SNMPv2-MIB&lt;br /&gt;
#*SNMP System Location: the textual description that will appear when polling the '''sysLocation''' variable of the SNMPv2-MIB&lt;br /&gt;
#*SNMP System Contact: the textual description that will appear when polling the '''sysContact''' variable of the SNMPv2-MIB&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;[[File:Snmp_cfg_application_params.gif|border]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#Under the '''Advanced Params''' heading, the following general application parameter can be configured:&lt;br /&gt;
#*Polling delay to generate traps: this sets the length for the time intervals at which the SNMP agent polls for newly generated traps. The value entered is in seconds&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;[[File:Snmp_cfg_advanced_params.gif|border]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#Under the '''SNMPv1 SNMPv2c Communities''' heading, new '''communities''' can be created for SNMP versions 1 or 2:&lt;br /&gt;
#*By default, the standard communities '''public''' (read-only access), and '''private''' (read-write access) have been created&lt;br /&gt;
#*Click [[Creating an SNMPv1/SNMPv2 Community|'''Create new community''']] to create a new community for SNMPv1, or SNMPv2&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;[[File:Snmp_cfg_communities.gif|border]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#Under the '''SNMPv3 Users''' heading, new '''users''' can be created for SNMP version 3:&lt;br /&gt;
#*By default, no SNMPv3 users are created&lt;br /&gt;
#*Click [[Creating an SNMPv3 User|'''Create new SNMPv3 user''']] to create a new user definition for SNMPv3&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;[[File:Snmp_cfg_create_user.gif|border]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#Under the '''SNMP Trap Destinations''' heading, destination addresses for SNMP traps can be defined:&lt;br /&gt;
#*By default, no SNMP trap destinations are defined&lt;br /&gt;
#*Click [[Creating an SNMP Trap Destination|'''Create New SNMP Trap Destination''']] to create a new destination for sending SNMP traps to&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;[[File:Snmp_cfg_create_trap.gif|border]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#Under the '''Log Params''' heading, logging parameters for the application can be set. The directory and format that logs are stored in can be selected.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#Under the '''Advance Params''' heading, operational time delays ca be modified.&lt;/div&gt;</summary>
		<author><name>Jasmin Letendre</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/TbSnmpAgent_Configuration</id>
		<title>TbSnmpAgent Configuration</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/TbSnmpAgent_Configuration"/>
				<updated>2011-06-21T20:51:13Z</updated>
		
		<summary type="html">&lt;p&gt;Jasmin Letendre: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The '''tbSnmpAgent''' is a software application that interfaces between the TMedia system hardware and the [http://www.net-snmp.org NetSnmp] implementation of the Simple Network Management Protocol (SNMP) that is supported by TelcoBridges.&lt;br /&gt;
By default, tbSnmpAgent is '''disabled'''. In order to use the SNMP protocol to monitor and manage your hardware, the following steps must be taken:&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
* tbSnmpAgent must be '''activated'''&lt;br /&gt;
* tbSnmpAgent must be '''configured''' to suit your needs&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
The aforementioned tasks can be accomplished through the [[Web Portal]]:&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
#[[Activating tbSnmpAgent|Activate tbSnmpAgent]]&lt;br /&gt;
#[[Configuring tbSnmpAgent|Configure tbSNMPAGENT to suit your needs]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Once these tasks have been completed, your TMedia platform is ready to expose system variables for polling with the Simple Network management Protocol (SNMP).&lt;/div&gt;</summary>
		<author><name>Jasmin Letendre</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/TbSnmpAgent_Configuration</id>
		<title>TbSnmpAgent Configuration</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/TbSnmpAgent_Configuration"/>
				<updated>2011-06-21T20:50:52Z</updated>
		
		<summary type="html">&lt;p&gt;Jasmin Letendre: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The '''tbSnmpAgent''' is a software application that interfaces between the TMedia system hardware and the [http://www.net-snmp.org NetSnmp] implementation of the Simple Network Management Protocol (SNMP) that is supported by TelcoBridges.&lt;br /&gt;
By default, tbSnmpAgent is '''disabled'''. In order to use the SNMP protocol to monitor and manage your hardware, the following steps must be taken:&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
* tbSnmpAgent must be activated&lt;br /&gt;
* tbSnmpAgent must be configured to suit your needs&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
The aforementioned tasks can be accomplished through the [[Web Portal]]:&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
#[[Activating tbSnmpAgent|Activate tbSnmpAgent]]&lt;br /&gt;
#[[Configuring tbSnmpAgent|Configure tbSNMPAGENT to suit your needs]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Once these tasks have been completed, your TMedia platform is ready to expose system variables for polling with the Simple Network management Protocol (SNMP).&lt;/div&gt;</summary>
		<author><name>Jasmin Letendre</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/TB-MIB</id>
		<title>TB-MIB</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/TB-MIB"/>
				<updated>2011-06-21T18:38:23Z</updated>
		
		<summary type="html">&lt;p&gt;Jasmin Letendre: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The TelcoBridges privately-defined MIB module, TB-MIB, is used to poll status information and usage statistics that have not been defined in standardized MIB modules.&lt;br /&gt;
The TB-MIB can be divided into four (4) main groups:&lt;br /&gt;
* tbDirectory&lt;br /&gt;
* tbCommon&lt;br /&gt;
* tbSignaling&lt;br /&gt;
* tbConformance&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
==TB-MIB Groups==&lt;br /&gt;
&lt;br /&gt;
*'''The tbDirectory Group:'''&amp;lt;br/&amp;gt;This group contains the tbModule table.&amp;lt;br/&amp;gt;This table can be used to view a list of all MIB-modules currently supported by TelcoBridges, and exposed by the TMedia hardware.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*'''The tbCommon Group:'''&amp;lt;br/&amp;gt;This group contains two tables: the tbHwCommon table, and the tbSwCommon table.&amp;lt;br/&amp;gt;These tables can be used to view general identification and performance details for TMedia hardware and software.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*'''The tbSignaling Group:'''&amp;lt;br/&amp;gt;This group contains sub-groups, each with a different number of tables, that define MIB objects for SS7 and SIGTRAN signaling protocols.&amp;lt;br/&amp;gt;Subgroups include:&lt;br /&gt;
**tbMtp2&lt;br /&gt;
**tbM2pa&lt;br /&gt;
**tbM2ua&lt;br /&gt;
**tbIua&lt;br /&gt;
**tbM3ua&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*'''The tbConformance Group:'''&amp;lt;br/&amp;gt;This group contains only conformance information for the TB-MIB module.&amp;lt;br/&amp;gt;This is SMIv2-compliant information for setting compliance standards, and does not contain fetchable information.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Category:Glossary|TB-MIB]]&lt;/div&gt;</summary>
		<author><name>Jasmin Letendre</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/SNMP</id>
		<title>SNMP</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/SNMP"/>
				<updated>2011-06-21T17:45:00Z</updated>
		
		<summary type="html">&lt;p&gt;Jasmin Letendre: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Simple Network Management Protocol (SNMP) is used in network management systems to monitor attached hardware for changes in operation activity. SNMP provides a standardized approach to monitoring and managing network systems. &lt;br /&gt;
&amp;lt;br/&amp;gt;For information on configuring your TMedia product to use the SNMP protocol, see the section labeled [[SNMP#Related Tasks|&amp;quot;'''Related Tasks'''&amp;quot;]].&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
== TelcoBridges and SNMP  ==&lt;br /&gt;
TelcoBridges offers basic support  for SNMP versions 1, 2, and 3. More specifically, this grants users the ability to remotely poll (or GET) system variables, known as Managed Objects, which are represented in files known as MIB modules.  TelcoBridges currently offers polling on '''standard''' MIB modules (RTP, SONET, DS1, DS3, ISDN, etc...) and on the TelcoBridges '''privately defined''' module ([[Media:TB-MIB-2011.txt|'''TB-MIB''']]).&lt;br /&gt;
&amp;lt;br/&amp;gt;SNMP '''traps''', which are automatically generated by the NetSnmp implementation, are currently supported for the ifTable of the IF-MIB module. This module allows users to monitor the operation status of all network interfaces, and receive notifications when the states change. &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Note:''' The SNMP '''SET''' ability is not currently supported by TelcoBridges. &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
====&amp;lt;u&amp;gt;List of MIB modules currently exposed by TMedia gateways&amp;lt;/u&amp;gt;==== &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
#[http://www.ietf.org/rfc/rfc1213.txt RFC 1213 MIB II (RFC1213-MIB)]&lt;br /&gt;
#*All tables of the RFC1213-MIB are supported, '''with the exception of''':&lt;br /&gt;
#**ipRouteTable&lt;br /&gt;
#**EGP group&lt;br /&gt;
#**atTable &lt;br /&gt;
#[http://www.ietf.org/rfc/rfc1573.txt RFC 1573 Evolution of Interfaces Group of MIB-II (IF-MIB)]&lt;br /&gt;
#*The following tables are supported:&lt;br /&gt;
#**ifTable&lt;br /&gt;
#**ifStackTable &lt;br /&gt;
#[http://www.rfc-editor.org/rfc/rfc2959.txt RFC 2959 Real-Time Transport Protocol Management Information Base (RTP-MIB)]&lt;br /&gt;
#*The following tables of the RTP-MIB are supported:&lt;br /&gt;
#**rtpSessionTable&lt;br /&gt;
#**rtpSenderTable&lt;br /&gt;
#**rtpRcvrTable&lt;br /&gt;
#[http://www.faqs.org/rfcs/rfc4805.html RFC 4805 DS1, J1, E1, DS2, and E2 Interfaces (DS1-MIB)]&lt;br /&gt;
#*The following tables of the DS1-MIB are supported:&lt;br /&gt;
#**Dsx1ConfigTable&lt;br /&gt;
#**Dsx1CurrentTable&lt;br /&gt;
#**Dsx1IntervalTable&lt;br /&gt;
#**Dsx1TotalTable&lt;br /&gt;
#[http://www.faqs.org/rfcs/rfc3896.html RFC 3896 - Definitions of Managed Object for the DS3/E3 Interface Type (DS3-MIB)]&lt;br /&gt;
#*The following tables of the DS3-MIB are supported:&lt;br /&gt;
#**Dsx3ConfigTable&lt;br /&gt;
#**Dsx3CurrentTable&lt;br /&gt;
#**Dsx3IntervalTable&lt;br /&gt;
#**Dsx3TotalTable&lt;br /&gt;
#[http://www.faqs.org/rfcs/rfc3592.html RFC 3592 - Definitions of Managed Object for the SONET/SDH Interface Type (SONET-MIB)]&lt;br /&gt;
#*The following tables of the SONET-MIB are supported: &lt;br /&gt;
#**sonetMediumTable&lt;br /&gt;
#**sonetSectionCurrentTable&lt;br /&gt;
#**sonetSectionIntervalTable&lt;br /&gt;
#**sonetLineCurrentTable&lt;br /&gt;
#**sonetLineIntervalTable&lt;br /&gt;
#**sonetFarendLineCurrentTable&lt;br /&gt;
#**sonetFarendLineIntervalTable&lt;br /&gt;
#**sonetPathCurrentTable&lt;br /&gt;
#**sonetPathIntervalTable&lt;br /&gt;
#**sonetFarendPathCurrentTable&lt;br /&gt;
#**sonetFarendPathIntervalTable&lt;br /&gt;
#**sonetVtCurrentTable&lt;br /&gt;
#**sonetVtIntervalTable&lt;br /&gt;
#**sonetFarendVtCurrentTable&lt;br /&gt;
#**sonetFarendVtIntervalTable&lt;br /&gt;
#[http://www.rfc-editor.org/rfc/rfc2127.txt RFC 2127 - ISDN Management Information Base using SMIv2 (ISDN-MIB)]&lt;br /&gt;
#*The following tables of the ISDN-MIB are supported:&lt;br /&gt;
#**isdnBearerGroup&lt;br /&gt;
#**isdnSignalingGroup&lt;br /&gt;
#[[Media:TB-MIB-2011.txt|Telcobridges Private MIB module (TB-MIB)]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Related Tasks ==&lt;br /&gt;
*[[tbSnmpAgent Configuration|Configuring the tbSnmpAgent application]]&lt;br /&gt;
*[[TB-MIB|Introduction to the TelcoBridges Private MIB Module (TB-MIB)]]&lt;br /&gt;
*[[Installing NetSNMP from an External Host]]&lt;br /&gt;
*[[TMG SNMP support|How to relay SNMP on TMG products]] &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Other Tasks ==&lt;br /&gt;
*[[How to start NTP|How to install and start NTP on TMG products]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== External Sources  ==&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Simple_Network_Management_Protocol Wikipedia article on SNMP]&lt;br /&gt;
*[http://www.net-snmp.org/ NetSNMP implementation of the SNMP protocol]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[Category:Glossary]]&lt;/div&gt;</summary>
		<author><name>Jasmin Letendre</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/SNMP</id>
		<title>SNMP</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/SNMP"/>
				<updated>2011-06-21T17:42:06Z</updated>
		
		<summary type="html">&lt;p&gt;Jasmin Letendre: /* TelcoBridges and SNMP */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Simple Network Management Protocol (SNMP) is a protocol used in network management systems to monitor attached hardware for changes in operation activity. SNMP provides a standardized approach to monitoring and managing network systems. &lt;br /&gt;
&amp;lt;br/&amp;gt;For information on configuring your TMedia product to use the SNMP protocol, see the section labeled [[SNMP#Related Tasks|&amp;quot;'''Related Tasks'''&amp;quot;]].&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
== TelcoBridges and SNMP  ==&lt;br /&gt;
TelcoBridges offers basic support  for SNMP versions 1, 2, and 3. More specifically, this grants users the ability to remotely poll (or GET) system variables, known as Managed Objects, which are represented in files known as MIB modules.  TelcoBridges currently offers polling on '''standard''' MIB modules (RTP, SONET, DS1, DS3, ISDN, etc...) and on the TelcoBridges '''privately defined''' module ([[Media:TB-MIB-2011.txt|'''TB-MIB''']]).&lt;br /&gt;
&amp;lt;br/&amp;gt;SNMP '''traps''', which are automatically generated by the NetSnmp implementation, are currently supported for the ifTable of the IF-MIB module. This module allows users to monitor the operation status of all network interfaces, and receive notifications when the states change. &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Note:''' The SNMP '''SET''' ability is not currently supported by TelcoBridges. &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
====&amp;lt;u&amp;gt;List of MIB modules currently exposed by TMedia gateways&amp;lt;/u&amp;gt;==== &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
#[http://www.ietf.org/rfc/rfc1213.txt RFC 1213 MIB II (RFC1213-MIB)]&lt;br /&gt;
#*All tables of the RFC1213-MIB are supported, '''with the exception of''':&lt;br /&gt;
#**ipRouteTable&lt;br /&gt;
#**EGP group&lt;br /&gt;
#**atTable &lt;br /&gt;
#[http://www.ietf.org/rfc/rfc1573.txt RFC 1573 Evolution of Interfaces Group of MIB-II (IF-MIB)]&lt;br /&gt;
#*The following tables are supported:&lt;br /&gt;
#**ifTable&lt;br /&gt;
#**ifStackTable &lt;br /&gt;
#[http://www.rfc-editor.org/rfc/rfc2959.txt RFC 2959 Real-Time Transport Protocol Management Information Base (RTP-MIB)]&lt;br /&gt;
#*The following tables of the RTP-MIB are supported:&lt;br /&gt;
#**rtpSessionTable&lt;br /&gt;
#**rtpSenderTable&lt;br /&gt;
#**rtpRcvrTable&lt;br /&gt;
#[http://www.faqs.org/rfcs/rfc4805.html RFC 4805 DS1, J1, E1, DS2, and E2 Interfaces (DS1-MIB)]&lt;br /&gt;
#*The following tables of the DS1-MIB are supported:&lt;br /&gt;
#**Dsx1ConfigTable&lt;br /&gt;
#**Dsx1CurrentTable&lt;br /&gt;
#**Dsx1IntervalTable&lt;br /&gt;
#**Dsx1TotalTable&lt;br /&gt;
#[http://www.faqs.org/rfcs/rfc3896.html RFC 3896 - Definitions of Managed Object for the DS3/E3 Interface Type (DS3-MIB)]&lt;br /&gt;
#*The following tables of the DS3-MIB are supported:&lt;br /&gt;
#**Dsx3ConfigTable&lt;br /&gt;
#**Dsx3CurrentTable&lt;br /&gt;
#**Dsx3IntervalTable&lt;br /&gt;
#**Dsx3TotalTable&lt;br /&gt;
#[http://www.faqs.org/rfcs/rfc3592.html RFC 3592 - Definitions of Managed Object for the SONET/SDH Interface Type (SONET-MIB)]&lt;br /&gt;
#*The following tables of the SONET-MIB are supported: &lt;br /&gt;
#**sonetMediumTable&lt;br /&gt;
#**sonetSectionCurrentTable&lt;br /&gt;
#**sonetSectionIntervalTable&lt;br /&gt;
#**sonetLineCurrentTable&lt;br /&gt;
#**sonetLineIntervalTable&lt;br /&gt;
#**sonetFarendLineCurrentTable&lt;br /&gt;
#**sonetFarendLineIntervalTable&lt;br /&gt;
#**sonetPathCurrentTable&lt;br /&gt;
#**sonetPathIntervalTable&lt;br /&gt;
#**sonetFarendPathCurrentTable&lt;br /&gt;
#**sonetFarendPathIntervalTable&lt;br /&gt;
#**sonetVtCurrentTable&lt;br /&gt;
#**sonetVtIntervalTable&lt;br /&gt;
#**sonetFarendVtCurrentTable&lt;br /&gt;
#**sonetFarendVtIntervalTable&lt;br /&gt;
#[http://www.rfc-editor.org/rfc/rfc2127.txt RFC 2127 - ISDN Management Information Base using SMIv2 (ISDN-MIB)]&lt;br /&gt;
#*The following tables of the ISDN-MIB are supported:&lt;br /&gt;
#**isdnBearerGroup&lt;br /&gt;
#**isdnSignalingGroup&lt;br /&gt;
#[[Media:TB-MIB-2011.txt|Telcobridges Private MIB module (TB-MIB)]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Related Tasks ==&lt;br /&gt;
*[[tbSnmpAgent Configuration|Configuring the tbSnmpAgent application]]&lt;br /&gt;
*[[TB-MIB|Introduction to the TelcoBridges Private MIB Module (TB-MIB)]]&lt;br /&gt;
*[[Installing NetSNMP from an External Host]]&lt;br /&gt;
*[[TMG SNMP support|How to relay SNMP on TMG products]] &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Other Tasks ==&lt;br /&gt;
*[[How to start NTP|How to install and start NTP on TMG products]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== External Sources  ==&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Simple_Network_Management_Protocol Wikipedia article on SNMP]&lt;br /&gt;
*[http://www.net-snmp.org/ NetSNMP implementation of the SNMP protocol]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[Category:Glossary]]&lt;/div&gt;</summary>
		<author><name>Jasmin Letendre</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/SNMP</id>
		<title>SNMP</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/SNMP"/>
				<updated>2011-06-21T17:41:57Z</updated>
		
		<summary type="html">&lt;p&gt;Jasmin Letendre: /* External Sources */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Simple Network Management Protocol (SNMP) is a protocol used in network management systems to monitor attached hardware for changes in operation activity. SNMP provides a standardized approach to monitoring and managing network systems. &lt;br /&gt;
&amp;lt;br/&amp;gt;For information on configuring your TMedia product to use the SNMP protocol, see the section labeled [[SNMP#Related Tasks|&amp;quot;'''Related Tasks'''&amp;quot;]].&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
== TelcoBridges and SNMP  ==&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
TelcoBridges offers basic support  for SNMP versions 1, 2, and 3. More specifically, this grants users the ability to remotely poll (or GET) system variables, known as Managed Objects, which are represented in files known as MIB modules.  TelcoBridges currently offers polling on '''standard''' MIB modules (RTP, SONET, DS1, DS3, ISDN, etc...) and on the TelcoBridges '''privately defined''' module ([[Media:TB-MIB-2011.txt|'''TB-MIB''']]).&lt;br /&gt;
&amp;lt;br/&amp;gt;SNMP '''traps''', which are automatically generated by the NetSnmp implementation, are currently supported for the ifTable of the IF-MIB module. This module allows users to monitor the operation status of all network interfaces, and receive notifications when the states change. &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Note:''' The SNMP '''SET''' ability is not currently supported by TelcoBridges. &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
====&amp;lt;u&amp;gt;List of MIB modules currently exposed by TMedia gateways&amp;lt;/u&amp;gt;==== &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
#[http://www.ietf.org/rfc/rfc1213.txt RFC 1213 MIB II (RFC1213-MIB)]&lt;br /&gt;
#*All tables of the RFC1213-MIB are supported, '''with the exception of''':&lt;br /&gt;
#**ipRouteTable&lt;br /&gt;
#**EGP group&lt;br /&gt;
#**atTable &lt;br /&gt;
#[http://www.ietf.org/rfc/rfc1573.txt RFC 1573 Evolution of Interfaces Group of MIB-II (IF-MIB)]&lt;br /&gt;
#*The following tables are supported:&lt;br /&gt;
#**ifTable&lt;br /&gt;
#**ifStackTable &lt;br /&gt;
#[http://www.rfc-editor.org/rfc/rfc2959.txt RFC 2959 Real-Time Transport Protocol Management Information Base (RTP-MIB)]&lt;br /&gt;
#*The following tables of the RTP-MIB are supported:&lt;br /&gt;
#**rtpSessionTable&lt;br /&gt;
#**rtpSenderTable&lt;br /&gt;
#**rtpRcvrTable&lt;br /&gt;
#[http://www.faqs.org/rfcs/rfc4805.html RFC 4805 DS1, J1, E1, DS2, and E2 Interfaces (DS1-MIB)]&lt;br /&gt;
#*The following tables of the DS1-MIB are supported:&lt;br /&gt;
#**Dsx1ConfigTable&lt;br /&gt;
#**Dsx1CurrentTable&lt;br /&gt;
#**Dsx1IntervalTable&lt;br /&gt;
#**Dsx1TotalTable&lt;br /&gt;
#[http://www.faqs.org/rfcs/rfc3896.html RFC 3896 - Definitions of Managed Object for the DS3/E3 Interface Type (DS3-MIB)]&lt;br /&gt;
#*The following tables of the DS3-MIB are supported:&lt;br /&gt;
#**Dsx3ConfigTable&lt;br /&gt;
#**Dsx3CurrentTable&lt;br /&gt;
#**Dsx3IntervalTable&lt;br /&gt;
#**Dsx3TotalTable&lt;br /&gt;
#[http://www.faqs.org/rfcs/rfc3592.html RFC 3592 - Definitions of Managed Object for the SONET/SDH Interface Type (SONET-MIB)]&lt;br /&gt;
#*The following tables of the SONET-MIB are supported: &lt;br /&gt;
#**sonetMediumTable&lt;br /&gt;
#**sonetSectionCurrentTable&lt;br /&gt;
#**sonetSectionIntervalTable&lt;br /&gt;
#**sonetLineCurrentTable&lt;br /&gt;
#**sonetLineIntervalTable&lt;br /&gt;
#**sonetFarendLineCurrentTable&lt;br /&gt;
#**sonetFarendLineIntervalTable&lt;br /&gt;
#**sonetPathCurrentTable&lt;br /&gt;
#**sonetPathIntervalTable&lt;br /&gt;
#**sonetFarendPathCurrentTable&lt;br /&gt;
#**sonetFarendPathIntervalTable&lt;br /&gt;
#**sonetVtCurrentTable&lt;br /&gt;
#**sonetVtIntervalTable&lt;br /&gt;
#**sonetFarendVtCurrentTable&lt;br /&gt;
#**sonetFarendVtIntervalTable&lt;br /&gt;
#[http://www.rfc-editor.org/rfc/rfc2127.txt RFC 2127 - ISDN Management Information Base using SMIv2 (ISDN-MIB)]&lt;br /&gt;
#*The following tables of the ISDN-MIB are supported:&lt;br /&gt;
#**isdnBearerGroup&lt;br /&gt;
#**isdnSignalingGroup&lt;br /&gt;
#[[Media:TB-MIB-2011.txt|Telcobridges Private MIB module (TB-MIB)]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
== Related Tasks ==&lt;br /&gt;
*[[tbSnmpAgent Configuration|Configuring the tbSnmpAgent application]]&lt;br /&gt;
*[[TB-MIB|Introduction to the TelcoBridges Private MIB Module (TB-MIB)]]&lt;br /&gt;
*[[Installing NetSNMP from an External Host]]&lt;br /&gt;
*[[TMG SNMP support|How to relay SNMP on TMG products]] &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Other Tasks ==&lt;br /&gt;
*[[How to start NTP|How to install and start NTP on TMG products]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== External Sources  ==&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Simple_Network_Management_Protocol Wikipedia article on SNMP]&lt;br /&gt;
*[http://www.net-snmp.org/ NetSNMP implementation of the SNMP protocol]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[Category:Glossary]]&lt;/div&gt;</summary>
		<author><name>Jasmin Letendre</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/SNMP</id>
		<title>SNMP</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/SNMP"/>
				<updated>2011-06-21T17:41:52Z</updated>
		
		<summary type="html">&lt;p&gt;Jasmin Letendre: /* Other Tasks */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Simple Network Management Protocol (SNMP) is a protocol used in network management systems to monitor attached hardware for changes in operation activity. SNMP provides a standardized approach to monitoring and managing network systems. &lt;br /&gt;
&amp;lt;br/&amp;gt;For information on configuring your TMedia product to use the SNMP protocol, see the section labeled [[SNMP#Related Tasks|&amp;quot;'''Related Tasks'''&amp;quot;]].&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
== TelcoBridges and SNMP  ==&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
TelcoBridges offers basic support  for SNMP versions 1, 2, and 3. More specifically, this grants users the ability to remotely poll (or GET) system variables, known as Managed Objects, which are represented in files known as MIB modules.  TelcoBridges currently offers polling on '''standard''' MIB modules (RTP, SONET, DS1, DS3, ISDN, etc...) and on the TelcoBridges '''privately defined''' module ([[Media:TB-MIB-2011.txt|'''TB-MIB''']]).&lt;br /&gt;
&amp;lt;br/&amp;gt;SNMP '''traps''', which are automatically generated by the NetSnmp implementation, are currently supported for the ifTable of the IF-MIB module. This module allows users to monitor the operation status of all network interfaces, and receive notifications when the states change. &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Note:''' The SNMP '''SET''' ability is not currently supported by TelcoBridges. &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
====&amp;lt;u&amp;gt;List of MIB modules currently exposed by TMedia gateways&amp;lt;/u&amp;gt;==== &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
#[http://www.ietf.org/rfc/rfc1213.txt RFC 1213 MIB II (RFC1213-MIB)]&lt;br /&gt;
#*All tables of the RFC1213-MIB are supported, '''with the exception of''':&lt;br /&gt;
#**ipRouteTable&lt;br /&gt;
#**EGP group&lt;br /&gt;
#**atTable &lt;br /&gt;
#[http://www.ietf.org/rfc/rfc1573.txt RFC 1573 Evolution of Interfaces Group of MIB-II (IF-MIB)]&lt;br /&gt;
#*The following tables are supported:&lt;br /&gt;
#**ifTable&lt;br /&gt;
#**ifStackTable &lt;br /&gt;
#[http://www.rfc-editor.org/rfc/rfc2959.txt RFC 2959 Real-Time Transport Protocol Management Information Base (RTP-MIB)]&lt;br /&gt;
#*The following tables of the RTP-MIB are supported:&lt;br /&gt;
#**rtpSessionTable&lt;br /&gt;
#**rtpSenderTable&lt;br /&gt;
#**rtpRcvrTable&lt;br /&gt;
#[http://www.faqs.org/rfcs/rfc4805.html RFC 4805 DS1, J1, E1, DS2, and E2 Interfaces (DS1-MIB)]&lt;br /&gt;
#*The following tables of the DS1-MIB are supported:&lt;br /&gt;
#**Dsx1ConfigTable&lt;br /&gt;
#**Dsx1CurrentTable&lt;br /&gt;
#**Dsx1IntervalTable&lt;br /&gt;
#**Dsx1TotalTable&lt;br /&gt;
#[http://www.faqs.org/rfcs/rfc3896.html RFC 3896 - Definitions of Managed Object for the DS3/E3 Interface Type (DS3-MIB)]&lt;br /&gt;
#*The following tables of the DS3-MIB are supported:&lt;br /&gt;
#**Dsx3ConfigTable&lt;br /&gt;
#**Dsx3CurrentTable&lt;br /&gt;
#**Dsx3IntervalTable&lt;br /&gt;
#**Dsx3TotalTable&lt;br /&gt;
#[http://www.faqs.org/rfcs/rfc3592.html RFC 3592 - Definitions of Managed Object for the SONET/SDH Interface Type (SONET-MIB)]&lt;br /&gt;
#*The following tables of the SONET-MIB are supported: &lt;br /&gt;
#**sonetMediumTable&lt;br /&gt;
#**sonetSectionCurrentTable&lt;br /&gt;
#**sonetSectionIntervalTable&lt;br /&gt;
#**sonetLineCurrentTable&lt;br /&gt;
#**sonetLineIntervalTable&lt;br /&gt;
#**sonetFarendLineCurrentTable&lt;br /&gt;
#**sonetFarendLineIntervalTable&lt;br /&gt;
#**sonetPathCurrentTable&lt;br /&gt;
#**sonetPathIntervalTable&lt;br /&gt;
#**sonetFarendPathCurrentTable&lt;br /&gt;
#**sonetFarendPathIntervalTable&lt;br /&gt;
#**sonetVtCurrentTable&lt;br /&gt;
#**sonetVtIntervalTable&lt;br /&gt;
#**sonetFarendVtCurrentTable&lt;br /&gt;
#**sonetFarendVtIntervalTable&lt;br /&gt;
#[http://www.rfc-editor.org/rfc/rfc2127.txt RFC 2127 - ISDN Management Information Base using SMIv2 (ISDN-MIB)]&lt;br /&gt;
#*The following tables of the ISDN-MIB are supported:&lt;br /&gt;
#**isdnBearerGroup&lt;br /&gt;
#**isdnSignalingGroup&lt;br /&gt;
#[[Media:TB-MIB-2011.txt|Telcobridges Private MIB module (TB-MIB)]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
== Related Tasks ==&lt;br /&gt;
*[[tbSnmpAgent Configuration|Configuring the tbSnmpAgent application]]&lt;br /&gt;
*[[TB-MIB|Introduction to the TelcoBridges Private MIB Module (TB-MIB)]]&lt;br /&gt;
*[[Installing NetSNMP from an External Host]]&lt;br /&gt;
*[[TMG SNMP support|How to relay SNMP on TMG products]] &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Other Tasks ==&lt;br /&gt;
*[[How to start NTP|How to install and start NTP on TMG products]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== External Sources  ==&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Simple_Network_Management_Protocol Wikipedia article on SNMP]&lt;br /&gt;
*[http://www.net-snmp.org/ NetSNMP implementation of the SNMP protocol]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[Category:Glossary]]&lt;/div&gt;</summary>
		<author><name>Jasmin Letendre</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/SNMP</id>
		<title>SNMP</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/SNMP"/>
				<updated>2011-06-21T17:41:44Z</updated>
		
		<summary type="html">&lt;p&gt;Jasmin Letendre: /* Related Tasks */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Simple Network Management Protocol (SNMP) is a protocol used in network management systems to monitor attached hardware for changes in operation activity. SNMP provides a standardized approach to monitoring and managing network systems. &lt;br /&gt;
&amp;lt;br/&amp;gt;For information on configuring your TMedia product to use the SNMP protocol, see the section labeled [[SNMP#Related Tasks|&amp;quot;'''Related Tasks'''&amp;quot;]].&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
== TelcoBridges and SNMP  ==&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
TelcoBridges offers basic support  for SNMP versions 1, 2, and 3. More specifically, this grants users the ability to remotely poll (or GET) system variables, known as Managed Objects, which are represented in files known as MIB modules.  TelcoBridges currently offers polling on '''standard''' MIB modules (RTP, SONET, DS1, DS3, ISDN, etc...) and on the TelcoBridges '''privately defined''' module ([[Media:TB-MIB-2011.txt|'''TB-MIB''']]).&lt;br /&gt;
&amp;lt;br/&amp;gt;SNMP '''traps''', which are automatically generated by the NetSnmp implementation, are currently supported for the ifTable of the IF-MIB module. This module allows users to monitor the operation status of all network interfaces, and receive notifications when the states change. &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Note:''' The SNMP '''SET''' ability is not currently supported by TelcoBridges. &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
====&amp;lt;u&amp;gt;List of MIB modules currently exposed by TMedia gateways&amp;lt;/u&amp;gt;==== &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
#[http://www.ietf.org/rfc/rfc1213.txt RFC 1213 MIB II (RFC1213-MIB)]&lt;br /&gt;
#*All tables of the RFC1213-MIB are supported, '''with the exception of''':&lt;br /&gt;
#**ipRouteTable&lt;br /&gt;
#**EGP group&lt;br /&gt;
#**atTable &lt;br /&gt;
#[http://www.ietf.org/rfc/rfc1573.txt RFC 1573 Evolution of Interfaces Group of MIB-II (IF-MIB)]&lt;br /&gt;
#*The following tables are supported:&lt;br /&gt;
#**ifTable&lt;br /&gt;
#**ifStackTable &lt;br /&gt;
#[http://www.rfc-editor.org/rfc/rfc2959.txt RFC 2959 Real-Time Transport Protocol Management Information Base (RTP-MIB)]&lt;br /&gt;
#*The following tables of the RTP-MIB are supported:&lt;br /&gt;
#**rtpSessionTable&lt;br /&gt;
#**rtpSenderTable&lt;br /&gt;
#**rtpRcvrTable&lt;br /&gt;
#[http://www.faqs.org/rfcs/rfc4805.html RFC 4805 DS1, J1, E1, DS2, and E2 Interfaces (DS1-MIB)]&lt;br /&gt;
#*The following tables of the DS1-MIB are supported:&lt;br /&gt;
#**Dsx1ConfigTable&lt;br /&gt;
#**Dsx1CurrentTable&lt;br /&gt;
#**Dsx1IntervalTable&lt;br /&gt;
#**Dsx1TotalTable&lt;br /&gt;
#[http://www.faqs.org/rfcs/rfc3896.html RFC 3896 - Definitions of Managed Object for the DS3/E3 Interface Type (DS3-MIB)]&lt;br /&gt;
#*The following tables of the DS3-MIB are supported:&lt;br /&gt;
#**Dsx3ConfigTable&lt;br /&gt;
#**Dsx3CurrentTable&lt;br /&gt;
#**Dsx3IntervalTable&lt;br /&gt;
#**Dsx3TotalTable&lt;br /&gt;
#[http://www.faqs.org/rfcs/rfc3592.html RFC 3592 - Definitions of Managed Object for the SONET/SDH Interface Type (SONET-MIB)]&lt;br /&gt;
#*The following tables of the SONET-MIB are supported: &lt;br /&gt;
#**sonetMediumTable&lt;br /&gt;
#**sonetSectionCurrentTable&lt;br /&gt;
#**sonetSectionIntervalTable&lt;br /&gt;
#**sonetLineCurrentTable&lt;br /&gt;
#**sonetLineIntervalTable&lt;br /&gt;
#**sonetFarendLineCurrentTable&lt;br /&gt;
#**sonetFarendLineIntervalTable&lt;br /&gt;
#**sonetPathCurrentTable&lt;br /&gt;
#**sonetPathIntervalTable&lt;br /&gt;
#**sonetFarendPathCurrentTable&lt;br /&gt;
#**sonetFarendPathIntervalTable&lt;br /&gt;
#**sonetVtCurrentTable&lt;br /&gt;
#**sonetVtIntervalTable&lt;br /&gt;
#**sonetFarendVtCurrentTable&lt;br /&gt;
#**sonetFarendVtIntervalTable&lt;br /&gt;
#[http://www.rfc-editor.org/rfc/rfc2127.txt RFC 2127 - ISDN Management Information Base using SMIv2 (ISDN-MIB)]&lt;br /&gt;
#*The following tables of the ISDN-MIB are supported:&lt;br /&gt;
#**isdnBearerGroup&lt;br /&gt;
#**isdnSignalingGroup&lt;br /&gt;
#[[Media:TB-MIB-2011.txt|Telcobridges Private MIB module (TB-MIB)]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
== Related Tasks ==&lt;br /&gt;
*[[tbSnmpAgent Configuration|Configuring the tbSnmpAgent application]]&lt;br /&gt;
*[[TB-MIB|Introduction to the TelcoBridges Private MIB Module (TB-MIB)]]&lt;br /&gt;
*[[Installing NetSNMP from an External Host]]&lt;br /&gt;
*[[TMG SNMP support|How to relay SNMP on TMG products]] &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Other Tasks ==&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*[[How to start NTP|How to install and start NTP on TMG products]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
== External Sources  ==&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Simple_Network_Management_Protocol Wikipedia article on SNMP]&lt;br /&gt;
*[http://www.net-snmp.org/ NetSNMP implementation of the SNMP protocol]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[Category:Glossary]]&lt;/div&gt;</summary>
		<author><name>Jasmin Letendre</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/TB-MIB</id>
		<title>TB-MIB</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/TB-MIB"/>
				<updated>2011-06-21T17:41:09Z</updated>
		
		<summary type="html">&lt;p&gt;Jasmin Letendre: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The TelcoBridges privately-defined MIB module, TB-MIB, is used to poll status information and usage statistics that have not been defined in standardized MIB modules.&lt;br /&gt;
The TB-MIB can be divided into four (4) main groups:&lt;br /&gt;
* tbDirectory&lt;br /&gt;
* tbCommon&lt;br /&gt;
* tbSignaling&lt;br /&gt;
* tbConformance&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
==TB-MIB Groups==&lt;br /&gt;
&lt;br /&gt;
*'''The tbDirectory Group:'''&amp;lt;br/&amp;gt;This group contains the tbModule table.&amp;lt;br/&amp;gt;This table can be used to view a list of all MIB-modules currently supported by TelcoBridges, and exposed by the TMedia hardware.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*'''The tbCommon Group:'''&amp;lt;br/&amp;gt;This group contains two table: the tbHwCommon table, and the tbSwCommon table.&amp;lt;br/&amp;gt;These tables can be used to view general identification and performance details for TMedia hardware and software.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*'''The tbSignaling Group:'''&amp;lt;br/&amp;gt;This group contains sub-groups, each with a different number of tables, that define MIB objects for SS7 and SIGTRAN signaling protocols.&amp;lt;br/&amp;gt;Subgroups include:&lt;br /&gt;
**tbMtp2&lt;br /&gt;
**tbM2pa&lt;br /&gt;
**tbM2ua&lt;br /&gt;
**tbIua&lt;br /&gt;
**tbM3ua&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*'''The tbConformance Group:'''&amp;lt;br/&amp;gt;This group contains only conformance information for the TB-MIB module.&amp;lt;br/&amp;gt;This is SMIv2-compliant information for setting compliance standards, and does not contain fetchable information.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Category:Glossary|TB-MIB]]&lt;/div&gt;</summary>
		<author><name>Jasmin Letendre</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/TB-MIB</id>
		<title>TB-MIB</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/TB-MIB"/>
				<updated>2011-06-21T17:40:56Z</updated>
		
		<summary type="html">&lt;p&gt;Jasmin Letendre: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The TelcoBridges privately-defined MIB module, TB-MIB, is used to poll status information and usage statistics that have not been defined in standardized MIB modules.&lt;br /&gt;
The TB-MIB can be divided into four (4) main groups:&lt;br /&gt;
* tbDirectory&lt;br /&gt;
* tbCommon&lt;br /&gt;
* tbSignaling&lt;br /&gt;
* tbConformance&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
==TB-MIB Groups==&lt;br /&gt;
&lt;br /&gt;
*'''The tbDirectory Group:'''&amp;lt;br/&amp;gt;This group contains the tbModule table.&amp;lt;br/&amp;gt;This table can be used to view a list of all MIB-modules currently supported by TelcoBridges, and exposed by the TMedia hardware.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*'''The tbCommon Group:'''&amp;lt;br/&amp;gt;This group contains two table: the tbHwCommon table, and the tbSwCommon table.&amp;lt;br/&amp;gt;These tables can be used to view general identification and performance details for TMedia hardware and software.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*'''The tbSignaling Group:'''&amp;lt;br/&amp;gt;This group contains sub-groups, each with a different number of tables, that define MIB objects for SS7 and SIGTRAN signaling protocols.&amp;lt;br/&amp;gt;Subgroups include:&lt;br /&gt;
**tbMtp2&lt;br /&gt;
**tbM2pa&lt;br /&gt;
**tbM2ua&lt;br /&gt;
**tbIua&lt;br /&gt;
**tbM3ua&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*'''The tbConformance Group:'''&amp;lt;br/&amp;gt;This group contains only conformance information for the TB-MIB module.&amp;lt;br/&amp;gt;This is SMIv2-compliant information for setting compliance standards, and does not contain fetchable information.&lt;br /&gt;
&lt;br /&gt;
[[Category:Glossary|TB-MIB]]&lt;/div&gt;</summary>
		<author><name>Jasmin Letendre</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/TB-MIB</id>
		<title>TB-MIB</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/TB-MIB"/>
				<updated>2011-06-21T17:40:49Z</updated>
		
		<summary type="html">&lt;p&gt;Jasmin Letendre: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The TelcoBridges privately-defined MIB module, TB-MIB, is used to poll status information and usage statistics that have not been defined in standardized MIB modules.&lt;br /&gt;
The TB-MIB can be divided into four (4) main groups:&lt;br /&gt;
* tbDirectory&lt;br /&gt;
* tbCommon&lt;br /&gt;
* tbSignaling&lt;br /&gt;
* tbConformance&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
==TB-MIB Groups==&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*'''The tbDirectory Group:'''&amp;lt;br/&amp;gt;This group contains the tbModule table.&amp;lt;br/&amp;gt;This table can be used to view a list of all MIB-modules currently supported by TelcoBridges, and exposed by the TMedia hardware.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*'''The tbCommon Group:'''&amp;lt;br/&amp;gt;This group contains two table: the tbHwCommon table, and the tbSwCommon table.&amp;lt;br/&amp;gt;These tables can be used to view general identification and performance details for TMedia hardware and software.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*'''The tbSignaling Group:'''&amp;lt;br/&amp;gt;This group contains sub-groups, each with a different number of tables, that define MIB objects for SS7 and SIGTRAN signaling protocols.&amp;lt;br/&amp;gt;Subgroups include:&lt;br /&gt;
**tbMtp2&lt;br /&gt;
**tbM2pa&lt;br /&gt;
**tbM2ua&lt;br /&gt;
**tbIua&lt;br /&gt;
**tbM3ua&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*'''The tbConformance Group:'''&amp;lt;br/&amp;gt;This group contains only conformance information for the TB-MIB module.&amp;lt;br/&amp;gt;This is SMIv2-compliant information for setting compliance standards, and does not contain fetchable information.&lt;br /&gt;
&lt;br /&gt;
[[Category:Glossary|TB-MIB]]&lt;/div&gt;</summary>
		<author><name>Jasmin Letendre</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/TB-MIB</id>
		<title>TB-MIB</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/TB-MIB"/>
				<updated>2011-06-21T17:40:21Z</updated>
		
		<summary type="html">&lt;p&gt;Jasmin Letendre: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The TelcoBridges privately-defined MIB module, TB-MIB, is used to poll status information and usage statistics that have not been defined in standardized MIB modules.&lt;br /&gt;
The TB-MIB can be divided into four (4) main groups:&lt;br /&gt;
* tbDirectory&lt;br /&gt;
* tbCommon&lt;br /&gt;
* tbSignaling&lt;br /&gt;
* tbConformance&lt;br /&gt;
&lt;br /&gt;
==TB-MIB Groups==&lt;br /&gt;
&lt;br /&gt;
*'''The tbDirectory Group:'''&amp;lt;br/&amp;gt;This group contains the tbModule table.&amp;lt;br/&amp;gt;This table can be used to view a list of all MIB-modules currently supported by TelcoBridges, and exposed by the TMedia hardware.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*'''The tbCommon Group:'''&amp;lt;br/&amp;gt;This group contains two table: the tbHwCommon table, and the tbSwCommon table.&amp;lt;br/&amp;gt;These tables can be used to view general identification and performance details for TMedia hardware and software.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*'''The tbSignaling Group:'''&amp;lt;br/&amp;gt;This group contains sub-groups, each with a different number of tables, that define MIB objects for SS7 and SIGTRAN signaling protocols.&amp;lt;br/&amp;gt;Subgroups include:&lt;br /&gt;
**tbMtp2&lt;br /&gt;
**tbM2pa&lt;br /&gt;
**tbM2ua&lt;br /&gt;
**tbIua&lt;br /&gt;
**tbM3ua&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*'''The tbConformance Group:'''&amp;lt;br/&amp;gt;This group contains only conformance information for the TB-MIB module.&amp;lt;br/&amp;gt;This is SMIv2-compliant information for setting compliance standards, and does not contain fetchable information.&lt;br /&gt;
&lt;br /&gt;
[[Category:Glossary|TB-MIB]]&lt;/div&gt;</summary>
		<author><name>Jasmin Letendre</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/TB-MIB</id>
		<title>TB-MIB</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/TB-MIB"/>
				<updated>2011-06-21T17:40:05Z</updated>
		
		<summary type="html">&lt;p&gt;Jasmin Letendre: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The TelcoBridges privately-defined MIB module, TB-MIB, is used to poll status information and usage statistics that have not been defined in standardized MIB modules.&lt;br /&gt;
The TB-MIB can be divided into four (4) main groups:&lt;br /&gt;
* tbDirectory&lt;br /&gt;
* tbCommon&lt;br /&gt;
* tbSignaling&lt;br /&gt;
* tbConformance&lt;br /&gt;
&lt;br /&gt;
==TB-MIB Groups==&lt;br /&gt;
&lt;br /&gt;
*'''The tbDirectory Group:'''&amp;lt;br/&amp;gt;This group contains the tbModule table.&amp;lt;br/&amp;gt;This table can be used to view a list of all MIB-modules currently supported by TelcoBridges, and exposed by the TMedia hardware.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
*'''The tbCommon Group:'''&amp;lt;br/&amp;gt;This group contains two table: the tbHwCommon table, and the tbSwCommon table.&amp;lt;br/&amp;gt;These tables can be used to view general identification and performance details for TMedia hardware and software.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
*'''The tbSignaling Group:'''&amp;lt;br/&amp;gt;This group contains sub-groups, each with a different number of tables, that define MIB objects for SS7 and SIGTRAN signaling protocols.&amp;lt;br/&amp;gt;Subgroups include:&lt;br /&gt;
**tbMtp2&lt;br /&gt;
**tbM2pa&lt;br /&gt;
**tbM2ua&lt;br /&gt;
**tbIua&lt;br /&gt;
**tbM3ua&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
*'''The tbConformance Group:'''&amp;lt;br/&amp;gt;This group contains only conformance information for the TB-MIB module.&amp;lt;br/&amp;gt;This is SMIv2-compliant information for setting compliance standards, and does not contain fetchable information.&lt;br /&gt;
&lt;br /&gt;
[[Category:Glossary|TB-MIB]]&lt;/div&gt;</summary>
		<author><name>Jasmin Letendre</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/TB-MIB</id>
		<title>TB-MIB</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/TB-MIB"/>
				<updated>2011-06-21T17:39:29Z</updated>
		
		<summary type="html">&lt;p&gt;Jasmin Letendre: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The TelcoBridges privately-defined MIB module, TB-MIB, is used to poll status information and usage statistics that have not been defined in standardized MIB modules.&lt;br /&gt;
The TB-MIB can be divided into four (4) main groups:&lt;br /&gt;
* tbDirectory&lt;br /&gt;
* tbCommon&lt;br /&gt;
* tbSignaling&lt;br /&gt;
* tbConformance&lt;br /&gt;
&lt;br /&gt;
==TB-MIB Groups==&lt;br /&gt;
&lt;br /&gt;
*'''The tbDirectory Group:'''&amp;lt;br/&amp;gt;This group contains the tbModule table.&amp;lt;br/&amp;gt;This table can be used to view a list of all MIB-modules currently supported by TelcoBridges, and exposed by the TMedia hardware.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*'''The tbCommon Group:'''&amp;lt;br/&amp;gt;This group contains two table: the tbHwCommon table, and the tbSwCommon table.&amp;lt;br/&amp;gt;These tables can be used to view general identification and performance details for TMedia hardware and software.&lt;br /&gt;
&lt;br /&gt;
*'''The tbSignaling Group:'''&amp;lt;br/&amp;gt;This group contains sub-groups, each with a different number of tables, that define MIB objects for SS7 and SIGTRAN signaling protocols.&amp;lt;br/&amp;gt;Subgroups include:&lt;br /&gt;
**tbMtp2&lt;br /&gt;
**tbM2pa&lt;br /&gt;
**tbM2ua&lt;br /&gt;
**tbIua&lt;br /&gt;
**tbM3ua&lt;br /&gt;
&lt;br /&gt;
*'''The tbConformance Group:'''&amp;lt;br/&amp;gt;This group contains only conformance information for the TB-MIB module.&amp;lt;br/&amp;gt;This is SMIv2-compliant information for setting compliance standards, and does not contain fetchable information.&lt;br /&gt;
&lt;br /&gt;
[[Category:Glossary|TB-MIB]]&lt;/div&gt;</summary>
		<author><name>Jasmin Letendre</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/TB-MIB</id>
		<title>TB-MIB</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/TB-MIB"/>
				<updated>2011-06-21T17:39:19Z</updated>
		
		<summary type="html">&lt;p&gt;Jasmin Letendre: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The TelcoBridges privately-defined MIB module, TB-MIB, is used to poll status information and usage statistics that have not been defined in standardized MIB modules.&lt;br /&gt;
The TB-MIB can be divided into four (4) main groups:&lt;br /&gt;
* tbDirectory&lt;br /&gt;
* tbCommon&lt;br /&gt;
* tbSignaling&lt;br /&gt;
* tbConformance&lt;br /&gt;
&lt;br /&gt;
==TB-MIB Groups==&lt;br /&gt;
&lt;br /&gt;
*'''The tbDirectory Group:'''&amp;lt;br/&amp;gt;This group contains the tbModule table.&amp;lt;br/&amp;gt;This table can be used to view a list of all MIB-modules currently supported by TelcoBridges, and exposed by the TMedia hardware.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*'''The tbCommon Group:'''&amp;lt;br/&amp;gt;This group contains two table: the tbHwCommon table, and the tbSwCommon table.&amp;lt;br/&amp;gt;These tables can be used to view general identification and performance details for TMedia hardware and software.&lt;br /&gt;
&lt;br /&gt;
*'''The tbSignaling Group:'''&amp;lt;br/&amp;gt;This group contains sub-groups, each with a different number of tables, that define MIB objects for SS7 and SIGTRAN signaling protocols.&amp;lt;br/&amp;gt;Subgroups include:&lt;br /&gt;
**tbMtp2&lt;br /&gt;
**tbM2pa&lt;br /&gt;
**tbM2ua&lt;br /&gt;
**tbIua&lt;br /&gt;
**tbM3ua&lt;br /&gt;
&lt;br /&gt;
*'''The tbConformance Group:'''&amp;lt;br/&amp;gt;This group contains only conformance information for the TB-MIB module.&amp;lt;br/&amp;gt;This is SMIv2-compliant information for setting compliance standards, and does not contain fetchable information.&lt;br /&gt;
&lt;br /&gt;
[[Category:Glossary|TB-MIB]]&lt;/div&gt;</summary>
		<author><name>Jasmin Letendre</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/Toolpack:Configuring_tbSnmpAgent_A</id>
		<title>Toolpack:Configuring tbSnmpAgent A</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/Toolpack:Configuring_tbSnmpAgent_A"/>
				<updated>2011-06-21T17:38:13Z</updated>
		
		<summary type="html">&lt;p&gt;Jasmin Letendre: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Once you are logged into the Web Portal and have successfully activated the tbSnmpAgent application, follow these steps to configure the application to suit your needs:&lt;br /&gt;
&lt;br /&gt;
*Under the '''Applications''' heading, in the Web Portal navigation panel, click the '''Configurations''' tab.&lt;br /&gt;
[[File:Snmp_cfg_click_configurations.gif|border]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
*In the '''Application Configuration List''', find the entry for '''tbsnmpagent''' and click the link labeled '''edit''', next to that entry.&lt;br /&gt;
[[File:Snmp_cfg_click_edit.gif|border]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
===&amp;lt;u&amp;gt;The tbSnmpAgent '''Application Configuration''' window is divided into several sections, which may be of interest to customers&amp;lt;/u&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
#Under the '''Application Params''' heading, the following general application parameters can be configured:&lt;br /&gt;
#*SNMP IP Port: the port to use for making SNMP requests (standard default value is 161)&lt;br /&gt;
#*SNMP System Description: the textual description that will appear when polling the '''sysDescr''' variable of the SNMPv2-MIB&lt;br /&gt;
#*SNMP System Object ID: the value appended to TelcoBridges' value (.1.3.6.1.4.1.21776.3) for the SNMPv2-MIB variable '''sysObjectId'''&lt;br /&gt;
#*SNMP System Name: the textual description that will appear when polling the '''sysName''' variable of the SNMPv2-MIB&lt;br /&gt;
#*SNMP System Location: the textual description that will appear when polling the '''sysLocation''' variable of the SNMPv2-MIB&lt;br /&gt;
#*SNMP System Contact: the textual description that will appear when polling the '''sysContact''' variable of the SNMPv2-MIB&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;[[File:Snmp_cfg_application_params.gif|border]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#Under the '''Advanced Params''' heading, the following general application parameter can be configured:&lt;br /&gt;
#*Polling delay to generate traps: this sets the length for the time intervals at which the SNMP agent polls for newly generated traps. The value entered is in seconds&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;[[File:Snmp_cfg_advanced_params.gif|border]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#Under the '''SNMPv1 SNMPv2c Communities''' heading, new '''communities''' can be created for SNMP versions 1 or 2:&lt;br /&gt;
#*By default, the standard communities '''public''' (read-only access), and '''private''' (read-write access) have been created&lt;br /&gt;
#*Click [[Creating an SNMPv1/SNMPv2 Community|'''Create new community''']] to create a new community for SNMPv1, or SNMPv2&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;[[File:Snmp_cfg_communities.gif|border]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#Under the '''SNMPv3 Users''' heading, new '''users''' can be created for SNMP version 3:&lt;br /&gt;
#*By default, no SNMPv3 users are created&lt;br /&gt;
#*Click [[Creating an SNMPv3 User|'''Create new SNMPv3 user''']] to create a new user definition for SNMPv3&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;[[File:Snmp_cfg_create_user.gif|border]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#Under the '''SNMP Trap Destinations''' heading, destination addresses for SNMP traps can be defined:&lt;br /&gt;
#*By default, no SNMP trap destinations are defined&lt;br /&gt;
#*Click [[Creating an SNMP Trap Destination|'''Create New SNMP Trap Destination''']] to create a new destination for sending SNMP traps to&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;[[File:Snmp_cfg_create_trap.gif|border]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#Under the '''Log Params''' heading, logging parameters for the application can be set. The directory and format that logs are stored in can be selected.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
#Under the '''Advance Params''' heading, operational time delays ca be modified.&lt;/div&gt;</summary>
		<author><name>Jasmin Letendre</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/Activating_tbSnmpAgent_A</id>
		<title>Activating tbSnmpAgent A</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/Activating_tbSnmpAgent_A"/>
				<updated>2011-06-21T17:37:23Z</updated>
		
		<summary type="html">&lt;p&gt;Jasmin Letendre: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Once you are logged into the Web Portal, follow these steps to activate the tbSnmpAgent application:&lt;br /&gt;
&lt;br /&gt;
*Click the '''Status''' tab in the navigation panel.&lt;br /&gt;
[[File:Snmp_click_status.gif|border]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
*In the '''status''' information window, click the '''Applications''' tab.&lt;br /&gt;
[[File:Snmp_click_applications.gif|border]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
*In the '''Applications''' information window, '''tbsnmpagent''' should appear in the '''Not running list'''. Click '''tbsnmpagent'''.&lt;br /&gt;
[[File:Snmp_click_tbSnmpAgent.gif|border]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
*In the '''Application instance status''' window for tbSnmpAgent, click the '''Oam target state''' dropdown box and select '''Run'''. Click '''Apply states'''.&lt;br /&gt;
[[File:Snmp_tbSnmpAgent_run.gif|border]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
*Return to the '''Applications''' information window. '''tbsnmpagent''' should now appear in the '''Ready list'''.&lt;br /&gt;
[[File:Snmp_tbSnmpAgent_active.gif|border]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
*'''The tbSnmpAgent application has now been activated'''.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
==Next Step==&lt;br /&gt;
*Now that you have activated the SNMP agent application, you are ready to [[Configuring tbSnmpAgent|configure the application for your needs]].&lt;/div&gt;</summary>
		<author><name>Jasmin Letendre</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/SNMP</id>
		<title>SNMP</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/SNMP"/>
				<updated>2011-06-21T17:17:54Z</updated>
		
		<summary type="html">&lt;p&gt;Jasmin Letendre: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Simple Network Management Protocol (SNMP) is a protocol used in network management systems to monitor attached hardware for changes in operation activity. SNMP provides a standardized approach to monitoring and managing network systems. &lt;br /&gt;
&amp;lt;br/&amp;gt;For information on configuring your TMedia product to use the SNMP protocol, see the section labeled [[SNMP#Related Tasks|&amp;quot;'''Related Tasks'''&amp;quot;]].&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
== TelcoBridges and SNMP  ==&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
TelcoBridges offers basic support  for SNMP versions 1, 2, and 3. More specifically, this grants users the ability to remotely poll (or GET) system variables, known as Managed Objects, which are represented in files known as MIB modules.  TelcoBridges currently offers polling on '''standard''' MIB modules (RTP, SONET, DS1, DS3, ISDN, etc...) and on the TelcoBridges '''privately defined''' module ([[Media:TB-MIB-2011.txt|'''TB-MIB''']]).&lt;br /&gt;
&amp;lt;br/&amp;gt;SNMP '''traps''', which are automatically generated by the NetSnmp implementation, are currently supported for the ifTable of the IF-MIB module. This module allows users to monitor the operation status of all network interfaces, and receive notifications when the states change. &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Note:''' The SNMP '''SET''' ability is not currently supported by TelcoBridges. &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
====&amp;lt;u&amp;gt;List of MIB modules currently exposed by TMedia gateways&amp;lt;/u&amp;gt;==== &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
#[http://www.ietf.org/rfc/rfc1213.txt RFC 1213 MIB II (RFC1213-MIB)]&lt;br /&gt;
#*All tables of the RFC1213-MIB are supported, '''with the exception of''':&lt;br /&gt;
#**ipRouteTable&lt;br /&gt;
#**EGP group&lt;br /&gt;
#**atTable &lt;br /&gt;
#[http://www.ietf.org/rfc/rfc1573.txt RFC 1573 Evolution of Interfaces Group of MIB-II (IF-MIB)]&lt;br /&gt;
#*The following tables are supported:&lt;br /&gt;
#**ifTable&lt;br /&gt;
#**ifStackTable &lt;br /&gt;
#[http://www.rfc-editor.org/rfc/rfc2959.txt RFC 2959 Real-Time Transport Protocol Management Information Base (RTP-MIB)]&lt;br /&gt;
#*The following tables of the RTP-MIB are supported:&lt;br /&gt;
#**rtpSessionTable&lt;br /&gt;
#**rtpSenderTable&lt;br /&gt;
#**rtpRcvrTable&lt;br /&gt;
#[http://www.faqs.org/rfcs/rfc4805.html RFC 4805 DS1, J1, E1, DS2, and E2 Interfaces (DS1-MIB)]&lt;br /&gt;
#*The following tables of the DS1-MIB are supported:&lt;br /&gt;
#**Dsx1ConfigTable&lt;br /&gt;
#**Dsx1CurrentTable&lt;br /&gt;
#**Dsx1IntervalTable&lt;br /&gt;
#**Dsx1TotalTable&lt;br /&gt;
#[http://www.faqs.org/rfcs/rfc3896.html RFC 3896 - Definitions of Managed Object for the DS3/E3 Interface Type (DS3-MIB)]&lt;br /&gt;
#*The following tables of the DS3-MIB are supported:&lt;br /&gt;
#**Dsx3ConfigTable&lt;br /&gt;
#**Dsx3CurrentTable&lt;br /&gt;
#**Dsx3IntervalTable&lt;br /&gt;
#**Dsx3TotalTable&lt;br /&gt;
#[http://www.faqs.org/rfcs/rfc3592.html RFC 3592 - Definitions of Managed Object for the SONET/SDH Interface Type (SONET-MIB)]&lt;br /&gt;
#*The following tables of the SONET-MIB are supported: &lt;br /&gt;
#**sonetMediumTable&lt;br /&gt;
#**sonetSectionCurrentTable&lt;br /&gt;
#**sonetSectionIntervalTable&lt;br /&gt;
#**sonetLineCurrentTable&lt;br /&gt;
#**sonetLineIntervalTable&lt;br /&gt;
#**sonetFarendLineCurrentTable&lt;br /&gt;
#**sonetFarendLineIntervalTable&lt;br /&gt;
#**sonetPathCurrentTable&lt;br /&gt;
#**sonetPathIntervalTable&lt;br /&gt;
#**sonetFarendPathCurrentTable&lt;br /&gt;
#**sonetFarendPathIntervalTable&lt;br /&gt;
#**sonetVtCurrentTable&lt;br /&gt;
#**sonetVtIntervalTable&lt;br /&gt;
#**sonetFarendVtCurrentTable&lt;br /&gt;
#**sonetFarendVtIntervalTable&lt;br /&gt;
#[http://www.rfc-editor.org/rfc/rfc2127.txt RFC 2127 - ISDN Management Information Base using SMIv2 (ISDN-MIB)]&lt;br /&gt;
#*The following tables of the ISDN-MIB are supported:&lt;br /&gt;
#**isdnBearerGroup&lt;br /&gt;
#**isdnSignalingGroup&lt;br /&gt;
#[[Media:TB-MIB-2011.txt|Telcobridges Private MIB module (TB-MIB)]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
== Related Tasks ==&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*[[tbSnmpAgent Configuration|Configuring the tbSnmpAgent application]]&lt;br /&gt;
*[[TB-MIB|Introduction to the TelcoBridges Private MIB Module (TB-MIB)]]&lt;br /&gt;
*[[Installing NetSNMP from an External Host]]&lt;br /&gt;
*[[TMG SNMP support|How to relay SNMP on TMG products]] &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
== Other Tasks ==&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*[[How to start NTP|How to install and start NTP on TMG products]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
== External Sources  ==&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Simple_Network_Management_Protocol Wikipedia article on SNMP]&lt;br /&gt;
*[http://www.net-snmp.org/ NetSNMP implementation of the SNMP protocol]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[Category:Glossary]]&lt;/div&gt;</summary>
		<author><name>Jasmin Letendre</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/Installing_NetSNMP_from_an_External_Host</id>
		<title>Installing NetSNMP from an External Host</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/Installing_NetSNMP_from_an_External_Host"/>
				<updated>2011-06-21T15:10:17Z</updated>
		
		<summary type="html">&lt;p&gt;Jasmin Letendre: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;All current TMedia products come with the NetSNMP implementation of the SNMP protocol pre-installed. However, for TDev customers and older TMedia customers, NetSNMP must be installed on the hardware from an external host.&lt;br /&gt;
The following commands will install NetSNMP from a '''Linux''' host:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-family:courier;border:solid;border-width:1px;padding:5px;width:25%;&amp;quot;&amp;gt;&lt;br /&gt;
yum install net-snmp&amp;lt;br/&amp;gt;&lt;br /&gt;
yum install net-snmp-utils&amp;lt;br/&amp;gt;&lt;br /&gt;
yum install net-snmp-libs&amp;lt;br/&amp;gt;&lt;br /&gt;
yum install lm-sensors&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
====Applications Installed====&lt;br /&gt;
*net-snmp: the core net-snmp application&lt;br /&gt;
*net-snmp-utils: utilities used by net-snmp to poll OIDs (GET, GET-NEXT, etc...)&lt;br /&gt;
*net-snmp-libs: libraries used by the net-snmp-utils&lt;br /&gt;
*lm-sensors: sensors used by net-snmp to poll hardware statistics&lt;/div&gt;</summary>
		<author><name>Jasmin Letendre</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/Installing_NetSNMP_from_an_External_Host</id>
		<title>Installing NetSNMP from an External Host</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/Installing_NetSNMP_from_an_External_Host"/>
				<updated>2011-06-21T15:09:48Z</updated>
		
		<summary type="html">&lt;p&gt;Jasmin Letendre: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;All current TMedia products come with the NetSNMP implementation of the SNMP protocol pre-installed. However, for TDev customers and older TMedia customers, NetSNMP must be installed on the hardware from an external host.&lt;br /&gt;
The following commands will install NetSNMP from a '''Linux''' host:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-family:courier;border:solid;border-width:1px;padding:5px;width:25%;&amp;quot;&amp;gt;&lt;br /&gt;
yum install net-snmp&amp;lt;br/&amp;gt;&lt;br /&gt;
yum install net-snmp-utils&amp;lt;br/&amp;gt;&lt;br /&gt;
yum install net-snmp-libs&amp;lt;br/&amp;gt;&lt;br /&gt;
yum install lm-sensors&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*net-snmp: the core net-snmp application&lt;br /&gt;
*net-snmp-utils: utilities used by net-snmp to poll OIDs (GET, GET-NEXT, etc...)&lt;br /&gt;
*net-snmp-libs: libraries used by the net-snmp-utils&lt;br /&gt;
*lm-sensors: sensors used by net-snmp to poll hardware statistics&lt;/div&gt;</summary>
		<author><name>Jasmin Letendre</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/Installing_NetSNMP_from_an_External_Host</id>
		<title>Installing NetSNMP from an External Host</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/Installing_NetSNMP_from_an_External_Host"/>
				<updated>2011-06-21T15:09:26Z</updated>
		
		<summary type="html">&lt;p&gt;Jasmin Letendre: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;All current TMedia products come with the NetSNMP implementation of the SNMP protocol pre-installed. However, for TDev customers and older TMedia customers, NetSNMP must be installed on the hardware from an external host.&lt;br /&gt;
The following commands will install NetSNMP from a Linux host:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-family:courier;border:solid;border-width:1px;padding:5px;width:25%;&amp;quot;&amp;gt;&lt;br /&gt;
yum install net-snmp&amp;lt;br/&amp;gt;&lt;br /&gt;
yum install net-snmp-utils&amp;lt;br/&amp;gt;&lt;br /&gt;
yum install net-snmp-libs&amp;lt;br/&amp;gt;&lt;br /&gt;
yum install lm-sensors&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*net-snmp: the core net-snmp application&lt;br /&gt;
*net-snmp-utils: utilities used by net-snmp to poll OIDs (GET, GET-NEXT, etc...)&lt;br /&gt;
*net-snmp-libs: libraries used by the net-snmp-utils&lt;br /&gt;
*lm-sensors: sensors used by net-snmp to poll hardware statistics&lt;/div&gt;</summary>
		<author><name>Jasmin Letendre</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/Toolpack:Creating_an_SNMP_Trap_Destination_A</id>
		<title>Toolpack:Creating an SNMP Trap Destination A</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/Toolpack:Creating_an_SNMP_Trap_Destination_A"/>
				<updated>2011-06-21T15:08:01Z</updated>
		
		<summary type="html">&lt;p&gt;Jasmin Letendre: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;SNMP traps are automatically generated on TMedia platforms by the NetSNMP installation, which monitors hardware and software interfaces registered with the ifTable of the IF-MIB module. When the operation status of an interface changes, a trap is generated by NetSNMP, and sent to a destination address for processing. In order for this mechanic to function, an '''SNMP trap destination''' must be defined in the Web Portal.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
To create an SNMP trap destination, carry out the following steps:&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''NOTE:''' The procedure is slightly different, dependng on whether you are creating a trap destination for SNMPv1/v2, or for SNMPv3.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
*Click Create New SNMP Trap Destination under the '''SNMP Trap Destinations''' heading&lt;br /&gt;
[[File:Snmp_cfg_create_trap.gif|border]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
====Creating an SNMPv1/v2 Trap Destination====&lt;br /&gt;
*In the trap destination configuration panel, set the following parameters '''if you are creating a trap destination for SNMPv1/v2''':&lt;br /&gt;
**Enter a '''name''' to identify the trap destination&lt;br /&gt;
**Enter a destination '''IP Address''' for sending generated traps&lt;br /&gt;
**Enter a destination '''port number''', on which to send generated traps (standard default value is 162)&lt;br /&gt;
**Click on the '''SNMP Version''' drop-down box and select version 1 or 2&lt;br /&gt;
**Enter the name of the SNMPv1/v2 '''community''' to use (configured previously)&lt;br /&gt;
**Click '''Create'''&lt;br /&gt;
[[File:Snmp_cfg_creating_trap_v1.gif|border]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
====Creating an SNMPv3 Trap Destination====&lt;br /&gt;
*In the trap destination configuration panel, set the following parameters '''if you are creating a trap destination for SNMPv3''':&lt;br /&gt;
**Enter a '''name''' to identify the trap destination&lt;br /&gt;
**Enter a destination '''IP Address''' for sending generated traps&lt;br /&gt;
**Enter a destination '''port number''', on which to send generated traps (standard default value is 162)&lt;br /&gt;
**Click on the '''SNMP Version''' drop-down box and select version 3&lt;br /&gt;
**Enter the name of the SNMPv3 '''user''' to use (configured previously)&lt;br /&gt;
**Click on the '''security level''' drop-down box, and select the appropriate '''security level''' for the user&lt;br /&gt;
**Click on the '''authentication''' drop-down box, and select the appropriate '''authentication algorithm''' for the user&lt;br /&gt;
**Enter the appropriate authentication '''pass phrase''' for the user&lt;br /&gt;
**Click on the '''privacy protocol''' drop-down box, and select the appropriate '''privacy standard''' for the user&lt;br /&gt;
**Enter the appropriate authentication '''privacy phrase''' for the user&lt;br /&gt;
**Click '''Create'''&lt;br /&gt;
[[File:Snmp_cfg_creating_trap_v3.gif|border]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
*Verify that the '''&amp;quot;SNMP Trap Destination was Successfully Created&amp;quot;''' message appears at the top of the following window&lt;br /&gt;
[[File:Snmp_cfg_trap_confirm.gif|border]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
*The new SNMP trap destination should appear under the '''SNMP Trap Destinations''' heading&lt;br /&gt;
[[File:Snmp_cfg_trap_created.gif|border]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jasmin Letendre</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/Toolpack:Creating_an_SNMP_Trap_Destination_A</id>
		<title>Toolpack:Creating an SNMP Trap Destination A</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/Toolpack:Creating_an_SNMP_Trap_Destination_A"/>
				<updated>2011-06-21T15:07:40Z</updated>
		
		<summary type="html">&lt;p&gt;Jasmin Letendre: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;SNMP traps are automatically generated on TMedia platforms by the NetSNMP installation, which monitors hardware and software interfaces registered with the ifTable of the IF-MIB module. When the operation status of an interface changes, a trap is generated by NetSNMP, and sent to a destination address for processing. In order for this mechanic to function, an '''SNMP trap destination''' must be defined in the Web Portal.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
To create an SNMP trap destination, carry out the following steps:&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
NOTE: The procedure is slightly different, dependng on whether you are creating a trap destination for SNMPv1/v2, or for SNMPv3.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
*Click Create New SNMP Trap Destination under the '''SNMP Trap Destinations''' heading&lt;br /&gt;
[[File:Snmp_cfg_create_trap.gif|border]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
====Creating an SNMPv1/v2 Trap Destination====&lt;br /&gt;
*In the trap destination configuration panel, set the following parameters '''if you are creating a trap destination for SNMPv1/v2''':&lt;br /&gt;
**Enter a '''name''' to identify the trap destination&lt;br /&gt;
**Enter a destination '''IP Address''' for sending generated traps&lt;br /&gt;
**Enter a destination '''port number''', on which to send generated traps (standard default value is 162)&lt;br /&gt;
**Click on the '''SNMP Version''' drop-down box and select version 1 or 2&lt;br /&gt;
**Enter the name of the SNMPv1/v2 '''community''' to use (configured previously)&lt;br /&gt;
**Click '''Create'''&lt;br /&gt;
[[File:Snmp_cfg_creating_trap_v1.gif|border]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
====Creating an SNMPv3 Trap Destination====&lt;br /&gt;
*In the trap destination configuration panel, set the following parameters '''if you are creating a trap destination for SNMPv3''':&lt;br /&gt;
**Enter a '''name''' to identify the trap destination&lt;br /&gt;
**Enter a destination '''IP Address''' for sending generated traps&lt;br /&gt;
**Enter a destination '''port number''', on which to send generated traps (standard default value is 162)&lt;br /&gt;
**Click on the '''SNMP Version''' drop-down box and select version 3&lt;br /&gt;
**Enter the name of the SNMPv3 '''user''' to use (configured previously)&lt;br /&gt;
**Click on the '''security level''' drop-down box, and select the appropriate '''security level''' for the user&lt;br /&gt;
**Click on the '''authentication''' drop-down box, and select the appropriate '''authentication algorithm''' for the user&lt;br /&gt;
**Enter the appropriate authentication '''pass phrase''' for the user&lt;br /&gt;
**Click on the '''privacy protocol''' drop-down box, and select the appropriate '''privacy standard''' for the user&lt;br /&gt;
**Enter the appropriate authentication '''privacy phrase''' for the user&lt;br /&gt;
**Click '''Create'''&lt;br /&gt;
[[File:Snmp_cfg_creating_trap_v3.gif|border]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
*Verify that the '''&amp;quot;SNMP Trap Destination was Successfully Created&amp;quot;''' message appears at the top of the following window&lt;br /&gt;
[[File:Snmp_cfg_trap_confirm.gif|border]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
*The new SNMP trap destination should appear under the '''SNMP Trap Destinations''' heading&lt;br /&gt;
[[File:Snmp_cfg_trap_created.gif|border]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jasmin Letendre</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/Toolpack:Creating_an_SNMP_Trap_Destination_A</id>
		<title>Toolpack:Creating an SNMP Trap Destination A</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/Toolpack:Creating_an_SNMP_Trap_Destination_A"/>
				<updated>2011-06-21T15:06:22Z</updated>
		
		<summary type="html">&lt;p&gt;Jasmin Letendre: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;SNMP traps are automatically generated on TMedia platforms by the NetSNMP installation, which monitors hardware and software interfaces registered with the ifTable of the IF-MIB module. When the operation status of an interface changes, a trap is generated by NetSNMP, and sent to a destination address for processing. In order for this mechanic to function, an '''SNMP trap destination''' must be defined in the Web Portal.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
To create an SNMP trap destination, carry out the following steps:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
*Click Create New SNMP Trap Destination under the '''SNMP Trap Destinations''' heading&lt;br /&gt;
[[File:Snmp_cfg_create_trap.gif|border]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
====Creating an SNMPv1/v2 Trap Destination====&lt;br /&gt;
*In the trap destination configuration panel, set the following parameters '''if you are creating a trap destination for SNMPv1/v2''':&lt;br /&gt;
**Enter a '''name''' to identify the trap destination&lt;br /&gt;
**Enter a destination '''IP Address''' for sending generated traps&lt;br /&gt;
**Enter a destination '''port number''', on which to send generated traps (standard default value is 162)&lt;br /&gt;
**Click on the '''SNMP Version''' drop-down box and select version 1 or 2&lt;br /&gt;
**Enter the name of the SNMPv1/v2 '''community''' to use (configured previously)&lt;br /&gt;
**Click '''Create'''&lt;br /&gt;
[[File:Snmp_cfg_creating_trap_v1.gif|border]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
====Creating an SNMPv3 Trap Destination====&lt;br /&gt;
*In the trap destination configuration panel, set the following parameters '''if you are creating a trap destination for SNMPv3''':&lt;br /&gt;
**Enter a '''name''' to identify the trap destination&lt;br /&gt;
**Enter a destination '''IP Address''' for sending generated traps&lt;br /&gt;
**Enter a destination '''port number''', on which to send generated traps (standard default value is 162)&lt;br /&gt;
**Click on the '''SNMP Version''' drop-down box and select version 3&lt;br /&gt;
**Enter the name of the SNMPv3 '''user''' to use (configured previously)&lt;br /&gt;
**Click on the '''security level''' drop-down box, and select the appropriate '''security level''' for the user&lt;br /&gt;
**Click on the '''authentication''' drop-down box, and select the appropriate '''authentication algorithm''' for the user&lt;br /&gt;
**Enter the appropriate authentication '''pass phrase''' for the user&lt;br /&gt;
**Click on the '''privacy protocol''' drop-down box, and select the appropriate '''privacy standard''' for the user&lt;br /&gt;
**Enter the appropriate authentication '''privacy phrase''' for the user&lt;br /&gt;
**Click '''Create'''&lt;br /&gt;
[[File:Snmp_cfg_creating_trap_v3.gif|border]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
*Verify that the '''&amp;quot;SNMP Trap Destination was Successfully Created&amp;quot;''' message appears at the top of the following window&lt;br /&gt;
[[File:Snmp_cfg_trap_confirm.gif|border]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
*The new SNMP trap destination should appear under the '''SNMP Trap Destinations''' heading&lt;br /&gt;
[[File:Snmp_cfg_trap_created.gif|border]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jasmin Letendre</name></author>	</entry>

	</feed>