Sangoma SS7 - Controlling NADI values
Definition:
The NADI or NAI (Nature of Address Indicator) is used to determine the scope of the address value for routing purposes.
Standard:
Called NADI - ITU Q.764 Section 3.9 b)
Calling NADI - ITU Q.764 Section 3.10 b)
RDNIS NADI - ITU Q.763 Section 3.44
Usage:
The format of the NADI field: <nadi value>
The NADI values can be set 2 ways: via the dial plan for per-call manipulation or by hard-coding them per ISUP interface.
When setting the value via the dial plan:
<action application="export" data="freetdm_ss7_cld_nadi=<nadi value>"/>
<action application="export" data="freetdm_ss7_clg_nadi=<nadi value>"/>
<action application="export" data="freetdm_ss7_rdnis_nadi=<nadi value>"/>
When setting the value via the ISUP interface configuration:
<param name=cld_nadi" value="<nadi value>"/>
<param name=clg_nadi" value="<nadi value>"/>
<param name=rdnis_nadi" value="<nadi value>"/>
Currently the following values are accepted for the NADI value:
| Value | Calling | Called |
| 0 | spare | spare |
| 1 | subscriber number | subscriber number |
| 2 | unknown | unknown |
| 3 | national | national |
| 4 | international | international |
Example:
FreeSWITCH (configuration):
<isup_interface name="interface1">
<param name="spc" value="131"/>
<param name="mtp_route" value="route1"/>
<param name="ssf" value="nat"/>
<param name="license" value="/etc/wanpipe/site1.txt" />
<param name="clg_nadi" value="4"/>
<param name="cld_nadi" value="4"/>
<param name="rdnis_nadi" value="4"/>
</isup_interface>
FreeSWITCH (setting):
<action application="set" data="clg_nadi=3"/> <!-- set the calling number nadi to national-->
<action application="set" data="cld_nadi=4"/> <!-- set the called number nadi to international -->
<action application="export" data="freetdm_ss7_clg_nadi=${clg_nadi}"/> <!-- export the private variables to the proper FreeTDM named variable -->
<action application="export" data="freetdm_ss7_cld_nadi=${cld_nadi}"/> <!-- export the private variables to the proper FreeTDM named variable -->
<action application="export" data="freetdm_ss7_rdnis_nadi=${rdnis_nadi}"/> <!-- export the private variables to the proper FreeTDM named variable -->
<action application="bridge" data="freetdm/g1/a/${destination_number}/> <!-- dial out on group 1 using ascending hunting -->
FreeSWITCH (receiving):
<action application="log" data="INFO The incoming called number has a NADI=[${freetdm_ss7_cld_nadi}]"/>
<action application="log" data="INFO The incoming calling number has a NADI=[${freetdm_ss7_clg_nadi}]"/>
<action application="log" data="INFO The incoming RDNIS number has a NADI=[${freetdm_ss7_rdnis_nadi}]"/>
Asterisk (via NSG) (setting):
NOTE: SIP X-HEADER support needs to be enabled in freetdm.conf.xml
exten => _X., n, SIPAddHeader(X-freetdm-cld-nadi: 4)
exten => _X., n, SIPAddHeader(X-freetdm-clg-nadi: 3)
exten => _X., n, SIPAddHeader(X-freetdm-RDNIS-NADI: 3)
exten => _X., n, dial(sip/${EXTEN}-g=g1-h=a@nsg)
Asterisk (via NSG) (receiving)
NOTE: SIP X-HEADER support needs to be enabled in freetdm.conf.xml
exten => _X., n, noop(The incoming called number has a NADI=${SIP_HEADER(X-freetdm-cld-nadi)})
exten => _X., n, noop(The incoming calling number has a NADI=${SIP_HEADER(X-freetdm-clg-nadi)})
exten => _X., n, noop(The incoming RDNIS number has a NADI=${SIP_HEADER(X-freetdm-rdnis-nadi)})
Generic Number
The following variables can be used to set/receive parameters within the Generic Number IE (Section 3.26 of ITU Q.763)
| Variable | Description |
| freetdm_ss7_gn_digits | Digits |
| freetdm_ss7_gn_numqual | Number Qualifier |
| freetdm_ss7_gn_nadi | Nature of Address Indicator |
| freetdm_ss7_gn_screen_ind | Screening Indicator |
| freetdm_ss7_gn_pres_ind | Presentation Indicator |
| freetdm_ss7_gn_npi | Numbering Plan Indicator |
| freetdm_ss7_gn_num_inc_ind | Number Incomplete Indicator |
Freeswitch Receiving:
<action application="log" data="INFO The incoming generic number is=[${freetdm_ss7_gn_digits}]"/>
<action application="log" data="INFO The incoming generic number has a NADI=[${freetdm_ss7_gn_nadi}]"/>
Freeswitch Transmitting:
<action application="bridge"
data="{freetdm_ss7_gn_digits=12345, freetdm_ss7_gn_numqual=6, freetdm_ss7_gn_nadi=3, freetdm_ss7_gn_screen_ind=3,
freetdm_ss7_gn_pres_ind=0, freetdm_ss7_gn_npi=1, freetdm_ss7_gn_num_inc_ind=1} freetdm/g1/a/${destination_number}/>