Telcobridges - Session Border Controllers
Would you like to react to this message? Create an account in a few clicks or log in to continue.

Adding ENUM query for LNP

Go down

Adding ENUM query for LNP Empty Adding ENUM query for LNP

Post by Admin on Fri Jan 24, 2020 5:28 am

NUM (E.164 Number to URI Mapping) translates telephone numbers into Internet addresses, meaning mapping traditional telephone numbers to SIP, SMTP (e-mail), and other internet services. ENUM is defined in RFC-6114, which is a Dynamic Delegation Discovery System (DDDS) Application specification.

ProSBC supports DNS functionality, and is also able to parse NAPTR and SRV records. This functionality has been enhanced to support ENUM routing and ENUM LNP functionality.

When sending an ENUM query to a configured ENUM server, ProSBC uses an NAPTR record type as the record requested. When an NAPTR response is received from the ENUM DNS server, BorderNet verifies that it contains the proper service parameters for ENUM, namely either 'E2U+SIP', 'E2U+pstn:tel' or 'E2U+pstn:sip'.

This section provides ProSBC configuration for the solution.

Install dnsruby gem

1. Automatic Installation
Code:
gem install dnsruby -v1.54
tbtoolpack stop
tbtoolpack start

2. Manual Installation
Code:
Download the gem from https://rubygems.org/downloads/dnsruby-1.54.gem
Upload to SBC with sFTP
gem install --force --local dnsruby -v1.54
tbtoolpack stop
tbtoolpack start

Configure Routing Script

1. Enable routing script
Code:
Gateway->Use script

2. Load routing scripts
Code:
Gateway->Routes->Routing Script->Import Script File
File->naptr_called_replacement.rb
ScriptType->Filter
Load on startup->checked

3. Adding ENUM script to main script
Code:
Gateway->Routes->Routing Script->simple_routing_sbc.rb [Edit]

Three things need to be added.
At the start of the script:
Code:
require 'called_pre_remap'

In the main class:
Code:
include EnumLNP
Code:
before_filter :method => :naptr_called_replacement

Modifying ENUM Script

1. To set ENUM server IP in the script modify the following script parameter in the naptr_called_replacement.rb:
Code:
res = Dnsruby::Resolver.new (:nameserver => ['IPaddress'])  IP address must be ENUM Server IP address

2. To set the Domain Name for ENUM queries, change the following parameter in the naptr_called_replacement.rb:
Code:
$domain = "IPAddress/FQDN"
Query examples;
 8.6.8.0.4.7.2.0.3.5.0.9.e164.arpa, e164.arpa is the domain
 8.6.8.0.4.7.2.0.3.5.0.9.e164.arpa.net, e164.arpa.net is the domain
 8.6.8.0.4.7.2.0.3.5.0.9.telcobridges.com, telcobridges.com is the domain
 8.6.8.0.4.7.2.0.3.5.0.9.187.202.34.12, 187.202.34.12 is the domain

3. In the answer check the Service and update the script. Service can be returned in the following and other formats;

Service: E2U+SIP, Service: E2U+sip, Service: SIP+E2U, Service: sip+E2U and others

Code:
if a.service == "sip+E2U" || a.service == "SIP+E2U" ==> Change it here

4. In the answer, ENUM server can return "." or "@" or any other character in the regex after the number;

Code:
if it is "."
params[:call][:called] = tb_naptr_query("#{naptr_called}.#{$domain}", params)

if it is "@"
params[:call][:called] = tb_naptr_query("#{naptr_called}@#{$domain}", params)

Please contact with Telcobridges Support to get ENUM script.

Admin
Admin

Number of Messages : 373
Point : 916
Registration Date : 2017-11-27

http://freesbc.yetkinforum.com

Back to top Go down

Back to top


 
Permissions in this forum:
You cannot reply to topics in this forum