LogoLogo
Help
  • Overview
    • Introduction
    • Characteristics
    • Platforms
  • INITIAL Installation
    • 1. Instructions by platform
      • ProSBC Requirements Matrix
      • Baremetal Installation
        • List of Supported Network Interface Cards
        • SBC Certified Hardware
          • High Performance Baremetal Server
          • Medium Performance Baremetal Server
          • Ciena 3906mvi server for Customer Premises Equipment (CPE)
          • Qotom Barebone server for Customer Premises Equipment (CPE)
          • Lanner Barebone server for Customer Premises Equipment (CPE)
          • Telco Systems virtualization platform on Lanner NCA-2510 server for Customer Premises Equipment(CPE)
      • Virtual, self-hosted Installation
        • Virtual - Proxmox
        • Virtual - VMware
          • Launching an Instance of VMware vSphere
          • Deploying ProSBC on VMware
          • Adding Network Interfaces in VMware
          • Configuring Passtrough interfaces on VMware
      • Cloud Installation
        • Cloud - AWS
          • AWS Installation
          • Cloud Formation Installation
          • Instance Upgrade
          • AWS Additional Interface
          • AWS Installation Troubleshooting
          • Recovering an Elastic IP address
        • Cloud - Azure
    • 2. Initial Configuration
      • Initial Setup
        • SBC Management IP configuration
      • Basic configuration
        • Configuring IP interfaces
        • Creating a SIP stack
        • Creating a SIP transport server
        • Allocating an SIP NAP
        • Allocating a SIP open NAP
        • SIP Transport DNS settings
        • Creating a first call route
    • 3. Uploading a License
      • Host-control
        • SELinux
        • SELinux management
      • Add/Change Licenses
        • Add/Change Licenses Manually
  • Use Cases
    • Applications
      • Carrier Interconnection
      • Monitoring as a Service (MaaS)
      • NGN Interconnection
      • Operator Interconnection
      • SIP subscribe notify publish forwarding
      • STIR/SHAKEN
      • Transcoding
      • SIP Trunking
      • Hosted PBX
      • SIP Network Peering
      • Remote Workers
    • Interoperability Examples
      • STIR/SHAKEN with Transnexus and ClearIP
      • Fraud Detection [YouMail]
      • Skype Connect
      • Skype for Business S4B TCP
      • Skype for Business S4B TLS
      • Asterisk
      • 3CX
      • FreePBX
      • FusionPBX
      • FreeSWITCH
      • Twilio
      • Sippy
      • Avaya IP Office
      • Cisco UCM 12
      • Brekeke PBX
      • VitalPBX
      • Yeastar P-Series Cloud
      • VoIP.ms
      • Wildix
  • CONFIGURATION DETAILS
    • Configuration By Web Portal Category
      • System Settings
        • Setting the Role to Standalone
        • Setting the Role to a Primary Unit in a 1+1 System
        • Setting the Role to a Secondary Unit in a 1+1 System
        • Resetting the Host Role
        • Resetting the Network Device Role
        • Create Session Border Gateway Access Control List (ACL)
        • Session Border Gateway: Advanced Parameter Settngs
        • Create Session Border Gateway Access Control List (ACL) Filters
        • Connecting to the Web Server and Logging on to the Web Portal
        • Logging Off
        • Modifying Security Settings
        • Creating Web User groups
        • Creating Web Users
        • Modifying Web User Permissions
        • Enabling and Disabling a User
        • Deleting a User
        • Accessing Audit Logs
        • Activating the Configuration
        • Configuring a Web Portal Profile
        • Configuring the Date, Time, Timezone and NTP servers
        • Configuring the DNS
        • Create HTTP Service
        • Use HTTPS service
        • Configure HTTPS certificates
        • Configuring letsencrypt certificate
        • Configuring the ICMP
        • Configuring the SSH
        • Upgrade Telcobridges linux software packages
        • Retrieving a Software Release
        • Uploading a Software Release
        • Activating a Software Release
        • Retrieving a License
        • Uploading a License
        • Database Backup
        • Downloading a Database Backup
        • Uploading a Database Backup
        • Restoring a Database
        • Enabling the SNMP Agent
        • Configuring the SNMP Agent
        • Creating an SNMPv1/SNMPv2 Community
        • Creating an SNMPv3 User
        • Creating an SNMP Trap Destination
      • IP Network Settings
        • Configuring a Virtual Port
        • Configuring a VLAN
        • Configuring an IP Port Range
        • Configuring IP Interfaces
        • Configuring NAT Traversal
          • Local NAT Traversal
          • Remote NAT Traversal
        • DNS Configuration
          • Creating a DNS Local Entry
        • Configuring VoIP Interfaces
      • SIP
        • Creating a SIP Stack
        • Creating a SIP Transport Server
        • TLS/SRTP
          • Creating TLS Certificates
          • Adding TLS Certificates
          • Configuring TLS Profiles
        • Enabling SIP-I/SIP-T
        • SIPREC Forwarding
      • SIP Registrar
        • Creating a SIP Domain
        • Creating a SIP Registrar
        • Creating a SIP Register Filtering Rule
        • Creating a SIP Register Filtering Rule Condition
        • Creating a SIP Register Filtering Rule Action
      • Network Access Points (NAP)
        • Allocating a SIP Open Network Access Point (NAP)
        • SIP NAP Polling
      • NAP Profiles
        • Profile SDP Description
        • Fax Settings
          • Configuring Fax Relay
          • Configure Fax Passthrough
          • Configure Fax T38
          • Configure Fax NSE
          • Configure Fax VBD
      • Call Routing
        • Creating a First Call Route
        • Enable Flexible NOA Routing Script
        • Add NOA Columns in Routes
        • Import Customized Routing Script
        • Add Customer Column in Routes
        • Add Customized Filter Script To Main Script
        • Adding Label Routing to a Routing Script
        • Assign Routing Script Database Files to the Gateway Application
        • Add Digitmap Files to the System
        • Add Routeset Definition Files to the System
        • Assign Definition Digitmap Files on a per NAP Basis
        • Generate Dynamic Routes
        • Steps to configure label routing for Group of DIDs to a single outbound NAPs
        • Steps to configure label routing for Group of DIDs to multiple outbound NAPs
        • Group of DIDs to multiple outbound NAPs: Load-sharing mode
        • Group of DIDs to multiple outbound NAPs: Priority Mode
        • Update the Digitmap Files
        • Update the Routeset Definition Files
        • Configuring RADIUS Authorization
        • Importing a RADIUS Custom Dictionary
      • Lawful Intercept
        • Lawful Intercept Status
        • Verifying lawful interception
        • Importing a Lawful Interception .CSV File
        • Enabling Lawful Interception in a Routing Script
        • Configuring Lawful Interception
      • Call Detail Records (CDR)
        • CDR Variables
          • Call statistics format
        • Retrieve Text CDRs
          • Automatic CDR Retrieval
        • RADIUS CDRs
          • Configuring RADIUS
          • Adding RADIUS Server(s)
          • RADIUS CDR attributes
      • Routing Scripts
        • Development Guides & Tutorials
          • Accessing Routing Script Parameters
          • Parameter Mapping
          • Script Parameters Definition
          • Script Parameters Definition for SIP
          • Accessing Information about Registered Users
          • Route Parameters and Call Routing
          • Playing prompts, announcements, and tones
          • Recording
          • User-to-User Information
          • Radius Authorization
          • ENUM Query
          • DNS Query
          • Call Diversion Options
          • Call Transfer Requests
          • Redirection
          • Connect Number
          • Terminating Calls
          • NAP Status and other NAP Information
          • Telephony Services (CNAM Requests over SS7)
          • Custom User Context
          • Routing Script Tests
          • Create New Routing Script
          • Enable Routing Script
    • Configuration By Use Case
      • SIP Trunking Configuration
        • Configuration Files for SIP Trunking Scenario
        • SIP Trunk Configuration Instruction with 3CX
        • SIP Trunk Configuration Instruction with FreePBX
        • SIP Trunk Configuration Instruction with FusionPBX
        • SIP Trunk Configuration Instruction with FreeSWITCH
        • SIP Trunk Configuration Instruction with Twilio Elastic trunking
        • SIP Trunk Configuration Instruction with Avaya IP Office
        • SIP Trunk Configuration Instruction with Brekeke PBX
        • SIP Trunk Configuration Instruction with Avaya IP Office
        • SIP Trunk Configuration Instruction with Yeastar P-Series Cloud
        • SIP Trunk Configuration Instruction with Cisco UCM
        • SIP Trunk Configuration Instruction with VoIP.ms SIP trunking
        • SIP Trunk Configuration Instruction with Wildix Cloud VoIP PBX
        • Configuration for Adding ProSBC as a SIP Trunk in the FreePBX Server
        • FreePBX Extension Creation
        • FusionPBX SIP Trunk Creation
        • FusionPBX Extension Creation
        • FreeSWITCH SIP Trunk Creation
        • Twilio Elastic SIP Trunking Configuration
        • Sippy SIP Trunk Creation
        • Avaya IP Office Trunk Creation
        • Cisco UCM 12 Trunk Creation
        • Adding ProSBC as a SIP Trunk in the Brekeke PBX
        • VitalPBX Extension Creation
        • Adding ProSBC as a SIP Trunk in the Yeastar P-Series Cloud
        • Adding ProSBC as a SIP Trunk in the Wildix Cloud VoIP PBX
        • SIP Trunk Configuration Instruction with VitalPBX
        • VitalPBX SIP Trunk Creation
      • Configuring SIP Registration to SIP Proxy
      • Configuring a Hosted PBX
      • Multiple Domains/Hosted PBXs
      • SIP Network Peering / IP Carrier Interconnection
      • Remote Workers
        • Configuration Files for Remote Office/Workers
        • Remote Workers Configuration Instruction with FusionPBX
        • Remote Workers Configuration Instruction with 3CX
        • Remote Workers Configuration Instruction with FreePBX
        • Remote Workers Configuration Instruction with VitalPBX
      • ProSBC and ClearIP (TransNexus)
        • Configuration for STIR/SHAKEN with Transnexus' ClearIP service
        • Configuration for CNAM Verification and Robocall Analytics with Transnexus' ClearIP service
        • Configuration for Robocall Mitigation with Transnexus' ClearIP service
        • Configuration for 302 Redirect routing with Transnexus' ClearIP service
        • Configuration for CAPTCHA Authentication – 302 Redirect with Transnexus' ClearIP service
        • Configuration for STIR/SHAKEN with Transnexus' ClearIP service
      • Transcoding Unit Configuration
        • Baremetal and Virtual Machine
        • Show the Hardware Units menu
        • Adding Transcoding Unit
      • Configuration for Adding YouMail Script to Routing Scripts
      • Skype Connect Example Configuration
      • Skype for Business Example Configuration
      • 3CX Phone Provisioning Configuration
        • Configuration for 3CX PBX Server with the ProSBC to receive T38 Faxes
        • Configuration for 3CX PBX Server with the ProSBC as SIP trunk
      • SIP Emergency
      • SIP registration forwarding
        • Creating a SIP Domain
        • Configuring SIP Registration for Open NAP
        • Configuring SIP Registration for regular NAP
      • RTP no-anchoring
        • Parameter: Allow low-delay media relay
          • Configuring an IP Port Range
        • Creating Profiles
          • Modifying SDP Profile Settings
          • Modifying SIP Profile Settings
          • Modifying RTP and Audio Settings
          • Modifying FAX Relay Profile Settings
          • Modifying Telephony Profile Settings
          • Modifying Tones and Call Progress Options
          • Modifying IVR Record Profile Settings
          • Modifying LNP Profile Settings
          • Modifying Multilevel Precedence and Preemption (MLPP) Options
          • Modifying Call Transfer Profile Settings
          • Modifying Tone Definition Profile Settings
    • Configuration Parameters (all)
    • Routing Script - SIP 302 Handling
  • Maintenance & Troubleshooting
    • Maintenance Guide
      • Check Disk Space
      • ProSBC Processor Usage
      • Troubleshooting Toolpack
      • Restoring a Database
    • System Upgrades
      • Migrate current database
      • Upgrade Telcobridges linux software packages
    • Software version release notes
    • Software version release download
    • ProSBC public roadmap
  • Troubleshooting & Support
    • Troubleshooting Tips & Actions
      • Configuring Call Trace
        • Retrieving Call Trace
        • Call Trace Filter Parameters
      • Creating a test call
      • tbsigtrace: Signaling trace capture tool
        • Accessing Device
          • TMG:Change Management IP Address
          • Password less ssh
          • How to setup ssh tunnel with PuTTY
        • Live Signaling Capture with tbsigtrace
      • How to Get Rid of Sub Optimal Warning
      • How to Lower The Trace Level on an Application
      • TBReport
      • VoIP Ethernet Capture on a ProSBC
      • Enabling Call Recording
      • Accessing the Call Recording
      • Routing Scripts
        • Update Your Routing Scripts
        • Disabling a Call Route
    • Troubleshooting Common Problems
    • Support Links
      • Support Forums
      • ProSBC Training
      • Customer Dashboard User Guide
      • Contacting TelcoBridges technical support
      • Frequently Asked Questions
      • Sending Large Files to TelcoBridges
    • How to use tbx cli tools remote program
  • Tools, Tips, and Tricks
    • TelcoBridges Magic Bookmark
    • Video Library
    • RESTful API
      • Postman Examples
      • Ruby Examples
      • TBConfig Examples
        • Exporting a Configuration
        • Importing a Configuration
        • Activating a Configuration
        • Updating a Route
        • Dropping Calls
      • ProSBC:Restful API SIP Domain
      • ProSBC:Restful API SIP Domain Registrar
      • Extracting Call Traces with the API
    • TBStatus API
      • Tbstatus monitoring
      • Status API
      • Dropping calls
  • Appendices
    • Appendix A: Glossary
      • Glossary: Call Detail Records (CDR)
      • Glossary: Call routing
      • Glossary: DNS
      • Glossary: Mean Opinion Score (MOS)
      • Glossary: NAP
      • Glossary: RADIUS
      • Glossary: Ringback tones
      • Glossary: SAP
      • Glossary: Signaling protocols
      • Glossary: SIP
        • Glossary: Route retry
        • Glossary: SIGTRAN
        • Glossary: SIP-I/SIP-T
        • Glossary: SIP gateway
        • Glossary: SIP Registration
      • Glossary: Softswitch
      • Glossary: Toolpack
        • Glossary: Web server
        • Glossary: tboamapp
          • Glossary: Tbtoolpack Service
            • System Id
              • Gateway Port
          • Primary/Secondary
          • Master/Slave
            • Active/Standby
      • Glossary: Unified communications
      • Glossary: Web Portal
      • Glossary: DTMF Relay
    • Appendix B: Product Datasheets
Powered by GitBook
On this page
  • Introduction
  • Resolve ENUM Query down to type A records
  • Add dynamic routes

Was this helpful?

  1. CONFIGURATION DETAILS
  2. Configuration By Web Portal Category
  3. Routing Scripts
  4. Development Guides & Tutorials

ENUM Query

PreviousRadius AuthorizationNextDNS Query

Last updated 7 months ago

Was this helpful?

Introduction

Starting with release 3.1, it is possible to issue ENUM Query requests to DNS servers from routing scripts. To do so, the params[:enum_query] object must be filled with the required ENUM Query attributes params[:enum_query][:fqdn] and with reason :enum_query_required.

When ENUM Query completes, the routing script is called again with the result. The params[:enum_query] object will be filled with the ENUM Query attributes from the response. The params[:enum_query][:result] field will also contain a string indicating the result of the ENUM Query:

  • ok: The ENUM Query was successful.

  • timeout: The ENUM Query was not answered.

The params[:enum_query][:responses_list] field will contain a list of hash responses for each NAPTR records.

NAPTR records contain:

  • :uri

  • :order

  • :preference

Example:


params[:enum_query][:responses_list] [{:order=>"200", :preference=>"10", :uri=>"!^03111.*$!!"}, {:order=>"100", :preference=>"1", :uri=>"!^03222.*$!!"}, {:order=>"200", :preference=>"1", :uri=>"!^03111.*$!!"}]


Using enum_called_remap.rb before filter script allows handling of ENUM query requests/responses. The match and replace regular expression from ENUM query responses are applied to params[:call][:called] to get "new called". This script allows update of the call parameters according to "new called" value. Refer to enum_called_remap.rb before filter script to get instructions on how to integrate this script into the main routing script (i.e. simple_routing_sbc.rb):


... require 'enum_called_remap' unless defined?(EnumCalledRemap) ... include EnumCalledRemap ... before_filter :method => :enum_called_remap ...


Resolve ENUM Query down to type A records

The ENUM query could also resolve uri from responses and get matching outgoing NAP, NAP proxy IP and port through a sequence of DNS queries (i.e. NAPTR, SRV down to type A records). This behavior could be requested using "dns_query" parameter:


params[:enum_query][:dns_query] = true


When ENUM and DNS Queries complete, the routing script is called again with the results. The params[:enum_query] and params[:dns_query] objects will be filled with the ENUM Query and the DNS Query attributes from the responses. The DNS query responses are available through params[:dns_query][:responses_list] call parameters:


params[:dns_query][:responses_list] [{:nap=>"NAP_UDP", :nap_proxy_ip=>"10.3.14.191", :nap_proxy_port=>"8080", :transport=>"UDP", :order=>"100", :preference=>"1", :priority=>"0", :weight=>"5"}, {:nap=>"NAP_TCP", :nap_proxy_ip=>"10.3.14.192", :nap_proxy_port=>"8081", :transport=>"TCP", :order=>"100", :preference=>"2", :priority=>"1", :weight=>"10"}]


Add dynamic routes

The ENUM query could also add dynamic routes base on DNS query responses. This could be requested using the "add_dynamic_routes" call parameter:


params[:enum_query][:dns_query] = true params[:enum_query][:add_dynamic_routes] = true


Note that it is mandatary to send DNS query to add dynamic routes.

The "base_routing.rb" script version should be greater then 1.37 in order to allow dynamic routes creation base on DNS query responses.

When requesting to add_dynamic_routes, the dns_query responses are used to create routes. Make sure that your configuration includes a route with remapped_nap = "Registered or DNS users". A route will be created for each DNS query responses. The routes "remapped_nap" takes NAP value from DNS query responses.

It is required to modify main routing script (i.e. simple_routing_sbc.rb) to forward IP/port values from params[:routes] to params[:call] like we are doing for NAP. See following example:


...

# This will select the outgoing NAP for this call according to the "remapped_nap" route parameter route_remap :call_field_name => :nap, :route_field_name => :remapped_nap

# This will select the outgoing NAP proxy ip address for this call according to the "remapped_nap_proxy_ip" route parameter route_remap :call_field_name => :nap_proxy_ip, :route_field_name => :remapped_nap_proxy_ip

# This will select the outgoing NAP proxy port for this call according to the "remapped_nap_proxy_port" route parameter route_remap :call_field_name => :nap_proxy_port, :route_field_name => :remapped_nap_proxy_port ...

an exception must be raised
sip:123456782@example-2.com
sip:123456782@example-3.com
sip:123456782@example-1.com