NetBorder SS7 Gateway - Configuration Guides
- 1 Why is there no ring back on incoming calls?
- 2 Why are unanswered calls being dropped after 60 seconds?
- 3 How to add national (0) or international (00) prefix on inbound calls?
- 4 How to block/unblock callerid on incoming calls based on privacy variable?
- 5 Why can't I configure my SPC?
- 6 NSG-ISO: How to reset your password ?
- 7 How Do I Status The Raid Controller?
- 8 How to change algorithm of choosing timeslots for new calls. (1,2,3,4 or 30,29,28 or random or 1, 3, 5, 7 etc)?
- 9 How to enable even/odd hunting algorithm
- 10 How to set SIP timers (T1,T2 etc if possible)?
- 11 How to enable/disable T.38?
- 12 How to enable/disable/configure V.152 (vbd for gpmd) in the SDP?
- 13 How to switch Echo Cancellation on/off?
- 14 How to enable/disable Comfort Noise (CNG G.165)?
- 15 How to configure adaptive amplifier (AGC G.165/G.168)?
- 16 How to configure adaptive jitter buffer?
- 17 How to set frequencies for Ring Back Tone etc (needed Russian variant)?
- 18 How to set RX/TX level on the E1 side?
- 19 How to set 3-way call with 3-way mixing on the box?
- 20 How to use DNS SRV to register with NSG to SoftSwitch?
- 21 How to get DHCP Option 120 and then to use external script to change SIP Proxy setting?
- 22 How to set channel name on which call needs to be bridge?
- 23 How to allow calls for specific IP?
- 24 How to remove sending of INFO messages if NSG is sending X-FS-Support: update_display,send_info in Invite message ?
- 25 How to fill Calling Party Number in Remote Party Header if Presentation Restricted is received for Calling Party Number header?
- 26 How to suppress comfort noise and to avoid adding "silenceSupp" line in SDP?
- 27 How to remap sip response hangup cause code to ISUP specific hangup cause code?
- 28 How to re-map isup/isdn/q850 channel hangup cause to particular sip specific hangup cause code?
- 29 How to remove stop sending cid name in SETUP forwarded by NSG?
- 30 How to change/set bearer capability in SETUP/IAM forwarded by NSG?
Why is there no ring back on incoming calls?
Answer: By default NSG does not play "ringing" for incoming calls when in the progress media state.
FIX: Add the following line to the dialplan after determining that you will accept the call (i.e. before bridging the call to a SIP endpoint)
<action application="set" data="ringback=%(<on time>, <off time>, <freq 1>, <freq 2>)"/> |
http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf
Example: Below is an example for the Canadian ring back tone. Insure this is added under the extension "from-pstn" (<extension name="to-pstn">). Also insure you save the file after adding the line.
Line Added: <action application="set" data="ringback=%(2000,4000, 440,480)"/>
Why are unanswered calls being dropped after 60 seconds?
Answer: NSG's dialplan runs an internal timer (call_timeout) that hangs up an unanswered call after 60 seconds. This can interfere with ISUP timer T9 testing which is 90-180 seconds.
FIX: To increase the NSG call_timeout timer add the following line to the dialplan before you run the bridge application:
<action application="set" data="call_timeout=200"/> |
Example: Below is an example for the Canadian ring back tone. Insure this is added under the extension "from-pstn" (<extension name="to-pstn">). Also insure you save the file after adding the line.
How to add national (0) or international (00) prefix on inbound calls?
It is the responsibility of the remote pbx connected to the NSG server to add the national/international prefixes, however, if your pbx does not have the capacity to do so, you may implement this feature the NSG dialplan. Below will indicate how to append national and international prefixes and export the prefixed number via SIP
From the NSG webgui, navigate to the Dialplan via the left column. Edit the information inside the "to-sip" extension, which resides inside the "from-pstn" context. Below is an example of a stock NSG dialplan:
Within the "to-sip" extension tags add the following syntax to prefix the inbound call for national (0) or international (00) calls:
National call:
<condition field="${freetdm_ss7_clg_nadi}" expression="3" break="never">
<action application="export" data="sip_h_X-FreeTDM-CallerNumber=0${caller_id_number}"/>
</condition> |
International call:
<condition field="${freetdm_ss7_clg_nadi}" expression="4" break="never">
<action application="export" data="sip_h_X-FreeTDM-CallerNumber=00${caller_id_number}"/>
</condition> |
Below is an example that implements the above:
*Note: make sure to add the above syntax BEFORE the bridge dialstring (or add to top of context):
<action application="bridge" data="${sofia_contact($${gwuser}@$${domain})}"/> |
For informational purposes only:
Below is an example from a wireshark trace of the NADI value (Nature of Address)
national
| international
|
How to block/unblock callerid on incoming calls based on privacy variable?
It is the responsibility of the remote pbx connected to the NSG server (receiving the calls) to use the privacy variables set from NSG to block/unblock the callerid, however, if your pbx does not have the capacity to do so, you may implement this feature in the NSG dialplan.
From the NSG webgui, navigate to the Dialplan via the left column. Edit the information inside the "to-sip" extension, which resides inside the "from-pstn" context. Below is an example of a stock NSG dialplan:
Within the "to-sip" extension tags add the following syntax to enable NSG to block/unblock the incoming call's callerID before sending it out, depending on the value received for the "presentation_ind" variable :
<condition field="${presentation_ind}" expression="presentation-restricted" break="never">
<action application="log" data="crit Privacy"/>
<action application="set" data="effective_caller_id_number=annonymous"/>
<action application="export" data="sip_h_X-FreeTDM-CallerNumber={annonymous}"/>
</condition> |
Below is a sample dialplan with the added syntax:
How to delay Answer message for inbound SS7 calls that connect to answering machine/voicemail
Typically, when a call connects with an answering machine/voicemail system, NSG sends the ANSWER message immediately to the MSC. The idea here is to delay the ANSWER message for a set period of time (i.e. 3 seconds).
In order to do this, you must delay the 200 OK message that is sent from your registered Asterisk/FreeSWITCH to NSG.
In your Asterisk/FreeSWITCH dialplan:
Specify no answer at the beginning of the call
playback a short audio file (the delay time you require, such as 3 seconds)
Answer the call after the file is played
Below is a sample Asterisk Diaplan:
[inbound_call]
exten => 100,1,SET(SS7_NADI=${SIP_HEADER(X-FreeTDM-NADI)})
exten => 100,n,GotoIf($["${SS7_NADI}"="3"]?next,s,1)
exten => 100,n(continuer),Agi(bv-set-uniqueid.agi)
exten => 100,n,.............
[next]
exten => s,1,Playback(emptyprompt,noanswer)
exten => s,n,Goto(inbound_call,100,continuer) |
See below for a diagram of the implementation:
Asterisk/FreeSWITCH NSG Telco
------------------------------------------------------------
< --------- Invite -- < ---------- IAM
------------ > 183 ----- > ACM -- >
Playback ---- > --- > early media
<<<<<< 3 sec later>>>>>>>>
------- > 200 ok --- > ANS-- > |
Why can't I configure my SPC?
The list of valid SPC's needs to be defined in your license file. If you are trying to add a new SPC, or changing SPC's, we will need to regenerate a license file for that specific configuration.
NSG-ISO: How to reset your password ?
If you have forgotten your log-in credentials to your NSG-SS7 Appliance, here is how you can reset the password:
connect keyboard and mouse
power down the appliance
power on the appliance. As soon as you power it on, you need to interrupt the boot sequence, so keep pressing the ESCAPE key a the appliance boots up
it it works you should come to a blue looking screen that has a few kernel entries. Press 'e' for edit
at the very end of the kernel line enter the following, with a space before 'init=/bin/bash ' (dont put the ' ' quotes)
then press enter.
you will need to press 'b' to boot
then after the system reboots you will enter the following to change the password:
passwd root
then it will ask you to put in the new password. put 'sangoma'
then reboot the system and you should be able to use 'root' and 'sangoma' for the password (From webGUI)
How Do I Status The Raid Controller?
To check the status of the raid controller you can use the command below which will give a quick summary.
Run: dmraid -s
Output:
--> Active Subset
name : isw_bdhabhdhai_Volume0
size : 62527488
stride : 128
type : mirror
status : ok
subsets: 0
devs : 2
spares : 0
You can also get a detailed report by running the command below as well.
Run: dmraid -n
Output:
/dev/sdb (isw):
0x000 sig: " Intel Raid ISM Cfg Sig. 1.1.00"
.........
0x1dc isw_dev[0].vol.map[0].disk_ord_tbl[1]: 0x1
/dev/sda (isw):
0x000 sig: " Intel Raid ISM Cfg Sig. 1.1.00"
.........
0x1dc isw_dev[0].vol.map[0].disk_ord_tbl[1]: 0x1
How to change algorithm of choosing timeslots for new calls. (1,2,3,4 or 30,29,28 or random or 1, 3, 5, 7 etc)?
NSG support Ascending and Descending hunting order.
Hunting order is configured via NSG GUI
GUI -> Configuration -> Global
<!-- PSTN settings -->
<X-PRE-PROCESS cmd="set" data="pstn_default_group=g1"/>
<X-PRE-PROCESS cmd="set" data="pstn_default_hunting=A"/> |
pstn_default_group=g1
g1 - indicates group 1
By default the NSG dialplan routes all DIDs from SIP to TDM via a single trunk group.Groups are assigned to Spans in : Configuration -> TDM section.
Routing between SIP to TDM is performed in: Configuration DialplanIf NSG requires multiple groups, then the Dialplan has to be modified to route based on DID
pstn_default_hunting=A
A - Indicates dscending order - Highest to Lowest Channel/CIC
a - Indicates aescending order - Lowest to Highest Channel/CIC
R - Round-robin ascending
r - Round-robin descending
Note
Gateway needs to be restarted for Global configuration to take effect.
How to enable even/odd hunting algorithm
Add below line in dialplan ( via GUI -> Configuration - >Dialplan) before bridging the call.
GUI -> Configuration -> Dialplan
<action application="set" data="freetdm_hunt_even_only=yes" /> |
Save the Diaplan.
Note, that Dialplan changes can be applied in real time without the need to restart the gateway.
How to turn on/off Ring-Back tone generating by a gateway as to SIP as to TDM (early media, etc) ?
By default early media is enabled. Gateway does not generate ring tones.
How to collect Q931 data per TS or per whole E1 with different debug levels?
NSG supports PCAP tracing on Ethernet and TDM interfaces.
GUI -> Reports -> Network Capture
Select Network interfaces to capture: Ethernet and/or TDM
Click on Capture
Perform call tests or just wait for data to collect
Click to Stop Capture
Download PCP file to your Workstation
Open the PCAP file using Wireshark application.
Note:
Wireshark is a network analysis tool that can be freely downloaded on the internet.
SIP DTMF configuration can be modified in NSG GUI
GUI -> Configuration -> Global
<!-- DTMF type values: info, rfc2833 or none -->
<X-PRE-PROCESS cmd="set" data="sip_dtmf_type=rfc2833"/> |
sip_dtmf_type=[rfc2833|none|info]
rfc2833 Enable RFC2833 DTMF
info Enable SIP INFO DTMF
none Disable DTMF in SIP Header. Relay on Inband DTMF
Node that by default NSG Gateway removes all inband DTMF tones.
Along with this option, user must set Inband DTMF Removal Buffer to Zero for each SPAN.GUI->Configuration->TDM->
For each Span: Physical Config -> Edit -> Advanced Options -> Inband DTMF Removal Buffer = 0
Note:
Gateway needs to be restarted for Global configuration to take effect.
How to set SIP timers (T1,T2 etc if possible)?
NSG SIP Timers T1 and T2 are set by default
T1=500ms
T2=4000ms
Transaction Timeout=32000ms
To change these settings
GUI -> Configuration -> File Editor
Select sip_profiles from left hand side
Select internal.xml
Add the following parameters to the bottom of the parameter list
<param name="timer-T1" value="500" /> <param name="timer-T2" value="4000" /> <param name="timer-T1X64" value="32000" />
T1 - Initial retransmission interval (in milliseconds).
T2 - Maximum retransmission interval (in milliseconds)
timer-T1X64 - Transaction timeout (defaults to T1 * 64)
Gateway needs to be restarted for File editor configuration to take effect.
How to enable/disable T.38?
NSG enables T.38 by default. The T.38 is triggered by the CNG or V.21 tone.
These values are configured in Dialplan
GUI -> Configuration - >Dialplan
This is default configuration that enables T.38
<action application="set" data="fax_enable_t38_request=true" />
<action application="set" data="fax_enable_t38=true" />
<action application="export" data="nolocal:execute_on_answer_1=tone_detect fax_disable_ec 2100 r +5000 disable_ec 1" />
<action application="export" data="nolocal:execute_on_answer_2=t38_gateway peer ced_preamble" /> |
To disable T.38, comment out the four actions using <!-- --> headers.
<!-- <action application="set" data="fax_enable_t38_request=true" /> -->
<!-- <action application="set" data="fax_enable_t38=true" /> -->
<!-- <action application="export" data="nolocal:execute_on_answer_1=tone_detect fax_disable_ec 2100 r +5000 disable_ec 1" /> -->
<!-- <action application="export" data="nolocal:execute_on_answer_2=t38_gateway peer ced_preamble" /> --> |
Save the Diaplan.
Note, that Dialplan changes can be applied in real time without the need to restart the gateway.
How to enable/disable/configure V.152 (vbd for gpmd) in the SDP?
general purpose media description (gpmd) attribute is not supported.
How to switch Echo Cancellation on/off?
By default Echo Canellation is always enabled NSG gateway.
Echo can be disabled in Dialplan.
The following command must be appended to the diaplan before the "bridge" command
GUI->Configuration->Dialplan
Disable EC
<action application="disable_ec" /> |
That EC will always be re-enabled on next call start.
Save the Diaplan.
Note, that Dialplan changes can be applied in real time without the need to restart the gateway.
How to enable/disable Comfort Noise (CNG G.165)?
NSG support CNG.
When both sides are supporting RFC 3389 (they agree in SDP message exchange, rtpmap:13), NSG will send CN packets.
How to configure adaptive amplifier (AGC G.165/G.168)?
AGC is not supported.
How to configure adaptive jitter buffer?
Jitter buffer is not enabled by default.
To enable jitter buffer, following line must be appened to the DIalplan before the "bridge" command.
GUI->Configuration->Dialplan
Fixed Jitterbuffer
<action application="jitterbuffer" data="60"/> |
Adapter Jitterbuffer: 60 ms jitter buffer with 200ms max length and 20 ms max drift
<action application="jitterbuffer" data="60:200:20"/> |
Save the Diaplan.
Note, that Dialplan changes can be applied in real time without the need to restart the gateway.
How to set frequencies for Ring Back Tone etc (needed Russian variant)?
To enable custom ring back, following line must be appened to the DIalplan before the "bridge" command.
GUI->Configuration->Dialplan
US Ring
<action application="set" data="ringback=%(2000,4000,440.0,480.0)"/> |
Russia Ring
<action application="set" data="ringback=%(800,3200,425)"/> |
Ringback will not be sent unless the variable is set *and* there's a ringing indication from the party that is being called.
If you want to use fake ringback via the ringback variable and you want it to happen instantly, you can also do:
<action application="set" data="instant_ringback=true"/> |
Save the Diaplan.
Note, that Dialplan changes can be applied in real time without the need to restart the gateway.
Common Ring Cadences per country
be-ring=%(1000,3000,425)
ca-ring=%(2000,4000,440,480)
cn-ring=%(1000,4000,450)
cy-ring=%(1500,3000,425)
cz-ring=%(1000,4000,425)
de-ring=%(1000,4000,425)
dk-ring=%(1000,4000,425)
dz-ring=%(1500,3500,425)
eg-ring=%(2000,1000,475,375)
es-ring=%(1500,3000,425)
fi-ring=%(1000,4000,425)
fr-ring=%(1500,3500,440)
hk-ring=%(400,200,440,480);%(400,3000,440,480)
hu-ring=%(1250,3750,425)
il-ring=%(1000,3000,400)
in-ring=%(400,200,425,375);%(400,2000,425,375)
jp-ring=%(1000,2000,420,380)
ko-ring=%(1000,2000,440,480)
pk-ring=%(1000,2000,400)
pl-ring=%(1000,4000,425)
ro-ring=%(1850,4150,475,425)
rs-ring=%(1000,4000,425)
ru-ring=%(800,3200,425)
sa-ring=%(1200,4600,425)
tr-ring=%(2000,4000,450)
uk-ring=%(400,200,400,450);%(400,2000,400,450)
us-ring=%(2000,4000,440,480) |
How to set RX/TX level on the E1 side?
The Rx/Tx E1 gain can be sent in 2 different ways
GUI Span Configuration
Real time using NSG CLI
GUI Span Configuration
GUI - > Configuraiton -> TDM
Fore each span
Click on Physical Config -> Edit -> Advanced Parameters -
Set Tx Gain
Set Rx Gain
GUI -> Configuration -> Apply configuration
Real time NSG CLI
GUI -> Configuraiton -> Command Execution -> NSG Command Window
Enter the command and click ExecuteAdjust gains for whole span
ftdm gains <rxgain> <txgain> <span_id>
Adjust gains for span chan
ftdm gains <rxgain> <txgain> <span_id> <chan_id>
Note that real time commands do not persist after reboot.
How to set 3-way call with 3-way mixing on the box?
3-way call with 3-way mixing can be enabled through the dial plan using attended_xfer application. To make a three way call, just press the DTMF digit 0 when the last party answers the call during an attended transfer. Here is an example of dial plan:
GUI -> Configuration - >Dialplan
Make a dialplan feature which read the number to make an attended transfer.
<extension name="att_xfer">
<condition field="destination_number" expression="^att_xfer$">
<action application="read" data="3 4 sounds/getdigits.wav attxfer_callthis 30000 #"/>
<action application="att_xfer" data="sofia/default/${attxfer_callthis}"/>
</condition>
</extension> |
Then bind this feature to DTMF 3.
<action application="bind_meta_app" data="3 a a execute_extension::att_xfer XML features"/> |
During call press *3 to activate the feature. Feed it the number then it will make the call.
If you press DTMF 0 (after the other leg answered) then it will convert it to a three-way.
How to use DNS SRV to register with NSG to SoftSwitch?
NSG supports DNS SRV natively.
In order to register to a remote SoftSwtich, a gateway must be configured in NSG.
NSG Architecture
SIP Profile
Used to listen to SIP Port eg: 5060
Handles incoming connections
SIP Gateway
Also know as SIP Trunk
Used to connect to remote SIP server
Contains credentials and configuration necessary to establish the connection
SIP Domain
Used to implement local registration
Contains local user info and credentials
SIP Domain must be attached do the SIP Profile
SIP Gateway/SIP Trunk Configuration
GUI - > Configuration -> File Editor
From the left hand side click on sip_profiles
Open internal.xml
Append gateway configuration to the bottom of the file
<include>
<gateway name="remote-softswitch">
<param name="username" value="specify-user-name-here"/>
<param name="realm" value="sip.itsp.com"/>
<param name="from-domain" value="sip.itsp.com"/>
<param name="password" value="password"/>
<param name="extension" value="can-be-same-as-user-name"/>
<param name="proxy" value="dns-srv-url"/> <!-- example using the DNS SRV record. -->
<param name="expire-seconds" value="60"/>
<param name="register" value="true"/>
<param name="retry-seconds" value="60"/>
</gateway>
</include> |
How to get DHCP Option 120 and then to use external script to change SIP Proxy setting?
Refs:
Request DHCP option 120
In /etc/dhcp/dhclient-eth0.conf add following lines:
option sip-server code 120 = { unsigned int 8, ip-address }; also request sip-server;
This instructs dhclient to request option 120 and to decode is as uint8 (encoding) and an ipaddress(v4)
Didn't find yet the proper way to decode fqdn (encoding 0) but here is an alternative that can do the job with little tweak in hook script (see below)
option sip-server code 120 = domain-list; also request sip-server;
Decode/Handle option 120
Create dhclient handler script in /etc/dhcp/dhclient.d/sip_server.sh (chmod +x)
#!/bin/bash
sip_server_config() {
echo '-------------------------------------------------------------------------' >> /tmp/dhcp.txt
date >> /tmp/dhcp.txt
echo 'config' >> /tmp/dhcp.txt
IFS=' ' read -ra _TMP <<< "$new_sip_server"
_encoding=${_TMP[0]}
_address=${_TMP[1]}
echo "Encoding=$_encoding" >> /tmp/dhcp.txt
echo "SIP Server IP=$_address" >> /tmp/dhcp.txt
# Change NSG settings
sed -i "s/\(sip_remote_ip=\)\(.*\)\(\".*\)/\1${_address}\3/g" /usr/local/nsg/conf/nbess7.xml }
sip_server_restore() {
echo 'restore' >> /dev/null
} |
In case of ipaddr encoding fields are extracted correctly:
encoding=1
sip-server=1.2.3.4
In case of fqdn emcoding fields are almost extracted correctly:
encoding=..
sip-server=sip.sangoma.local.
So above hook script must account for encoding being .. (instead of 0) and remove trailing . (dot) at the end of sip-server value.
Hook script in the end replace the remote sip ip address by the one returned by dhcp in NSG xml file (WIP script have to account for errors and above mentioned use case (fqdn)) - we also have to instruct FS to reload its configuration.
How to set channel name on which call needs to be bridge?
By default calls are bridge generally based on hunting and span
To enable sending/bridging to a specified , following line must be appended to the DIalplan before the "bridge" command within condition
GUI -> Configuration -> Dialplan
<condition field="${channel_name}" expression="^(FreeTDM/X:Y/)$/>
where X = span number
Y = channel number |
In order to set span 2 channel 1 below lines needs to be included in dialplan:
<condition field="${channel_name}" expression="^(FreeTDM/2:1/)$/> |
How to allow calls for specific IP?
By default calls are allowed and executed based in destination number
To enable allowing calls from specific IP's, following condition must be appended to the DIalplan inside "to-pstn" context
GUI -> Configuration -> Dialplan
<condition regex="any" break="on-false">
<!-- IP address to validate against -->
<regex field="network_addr" expression="182\.74\.83\.246" />
<!-- In case it does not match respond with 403 -->
<anti-action application="respond" data="403" />
</condition> |
To add multiple IP's continue adding network_addr one after the another as per requirement
<condition regex="any" break="on-false">
<!-- IP address to validate against -->
<regex field="network_addr" expression="182\.74\.83\.246" />
<regex field="network_addr" expression="61\.90\.47\.116" />
......
<!-- In case it does not match respond with 403 -->
<anti-action application="respond" data="403" />
</condition> |
NOTE: The IP are the dummy IP's for exmaple purpose. Please use the IP to which calls needs to be bridge
How to remove sending of INFO messages if NSG is sending X-FS-Support: update_display,send_info in Invite message ?
To stop sending INFO messages, in case INVITE is generating X-FS-Support with update_display,send_info below changes are required in dialplan and sip_profile to stop sending X-Fs-Support Header witin SIP INVITE
NOTE: Sending of update_display,send_info in X-FS-Support header may lead to delay in sending BYE to remote IP until INFO message timer is expired
GUI -> Configuration -> Dialplan
Add condition before bridging the call
<action application="set" data="ignore_display_updates=true" /> |
GUI -> Configuration -> SIP
Add this configuration
<param name="pass-callee-id" value="false" /> |
How to fill Calling Party Number in Remote Party Header if Presentation Restricted is received for Calling Party Number header?
By default calls are allowed and executed based in destination number and destination number is filled based on Presentation value received from peer SS7 side.
In order to fill calling party number in remote party header even if the received presentation is restricted , following condition must be appended to the DIalplan inside "to-sip" context.
GUI -> Configuration -> Dialplan
<!-- If we receive Presentation restricted for caling party number from SS7
side then expose below parameter to fill calling party number in Remote
party header -->
<condition field="${freetdm_ss7_pres_ind}" expression="^(1)$" break="never">
<action application="export" data="rpid_callee_id_number=${freetdm_ss7_clg_num}"/>
<action application="log" data="rpid_callee_id_number = ${rpid_callee_id_number}"/>
</condition> |
How to suppress comfort noise and to avoid adding "silenceSupp" line in SDP?
To stop sending "silenceSupp" line included in SDP, below changes are required in dialplan.
GUI -> Configuration -> Dialplan
Add condition before bridging the call
<!-- To suppress comfort noise and avoid adding "silenceSupp" line in SDP -->
<action application="export" data="sip_silence_supp_off_indication=true"/>
<action application="export" data="suppress_cng=true"/> |
How to remap sip response hangup cause code to ISUP specific hangup cause code?
In order to remap sip response hangup cause code to ISUP specific hangup cause code dialplan changes are required.
Please find below example of mapping 503 Server Unavailable to ISUP cause code 34 i.e. NORMAL CIRCUIT CONGESTION
GUI -> Configuration -> Dialplan
Add below condition in dialplan
<!-- Transfer to specific context on failure -->
<action application="set" data="continue_on_fail=true" />
<action application="bridge" data="sofia/internal/${destnumber}@${sip_remote_ip}:${sip_remote_port}"/>
<action application="transfer" data="dohangup XML dohangup"/> |
Add below context and condition in dialplan
<!-- SIP Cause Code mapping to ISUP cause code -->
<context name="dohangup">
<extension name="dohangup">
<condition field="${last_bridge_proto_specific_hangup_cause}" expression="^(sip:503)$" break="on-true">
<action application="hangup" data="NORMAL_CIRCUIT_CONGESTION"/>
</condition>
<condition>
<action application="hangup" data="${last_bridge_hangup_cause}"/>
</condition>
</extension>
</context> |
How to re-map isup/isdn/q850 channel hangup cause to particular sip specific hangup cause code?
In order to re-map q850 channel hangup cause code to sip specific hangup cause code dialplan changes are required.
Please find below example of mapping q850 chanel hangup cause 19 (NOT FOUND)to SIP hangup cause code 406 with sip reason header as "NO ANSWER"
GUI -> Configuration -> Dialplan
Add below condition in dialplan
<!-- Transfer to specific context on failure -->
<action application="set" data="continue_on_fail=true" />
<action application="bridge" data="sofia/internal/${destnumber}@${sip_remote_ip}:${sip_remote_port}"/>
<action application="transfer" data="dohangup XML dohangup"/> |
Add below context and condition in dialplan
<!-- SIP Cause Code mapping to ISUP cause code -->
<context name="dohangup">
<extension name="dohangup">
<condition field="${q850_term_cause}" expression="^(19)" break="on-true">
<action application="set" data="sip_reason=NO_ANSWER"/>
<action application="set" data="last_bridge_proto_specific_hangup_cause=sip:406"/>
</condition>
<condition>
<action application="hangup" data="${last_bridge_hangup_cause}"/>
</condition>
</extension>
</context> |
How to remove stop sending cid name in SETUP forwarded by NSG?
In order to stop sending cid name in SETUP as forwarded by NSG dialplan changes are required.
Please find below example in order to achieve the same:
GUI -> Configuration -> Dialplan
Add below condition in dialplan within "from-voip-to-pstn" context:
<!-- To stop sending cid name in isdn SETUP message -->
<action application="export" data="freetdm_isdn.send_cid_name=no" /> |
How to change/set bearer capability in SETUP/IAM forwarded by NSG?
In order to change/set bearer capability to user defined value in SETUP/IAM as forwarded by NSG dialplan changes are required.
Please find below example in order to achieve the same:
GUI -> Configuration -> Dialplan
Add below condition in dialplan within the context as per user requirement:
<action application="export" data="freetdm_bearer_capability=3" />
OR
<action application="set" data="freetdm_bearer_capability=3" /> |
Below are the list of values one can set for Bearer Capability:
Set Value | Description |
---|---|
0 | Speech |
1 | Unrestricted Digital |
2 | Restricted Digital |
3 | 3.1 Khz Audio |
4 | 7 Khz Audio or Unrestricted digital w tones |
5 | 15 Khz Audio |
6 | Video |