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}/>