DescriptionNetsapiens NDP works with a NMS server providing on demand configuration files for many different types of Phones and ATA's. The list of currently supported devices is below. A configuration can be created based on a MAC address and will pull needed information from the application server itself. The only needed information will be the MAC address and at least one user device, the rest will be handled by the NDP server. NDP itself is a Java based application running under Netsapiens-tomcat. It incorporates an http server(80&443 proxied from apache), tftp(69) server, and syslog(514) server all customized to provide optimal performance for remote sip devices. The UI is PHP based and runs under apache. Release NotesPlease see NDP Release Notes Supported Devices(Updated 08/2011)Below is a list of tested and supported devices. Devices that are not listed, but are manufactured by a company below might work as well!
OS Installation InstructionsServer and Application Setup
Add a SiPbx to NDP
![]()
Creating A New Device Configuration
Pointing a Device to the NDP server
AastraFrom Phone
From Web UI
![]() Cisco
Counterpath
GrandStream
![]() Linksys
![]() Polycom
Panasonic
![]() Snom
![]()
Mediatrix
![]() Yealink
![]()
![]()
LG-Ericsson
ReadyNet
![]() Device Options, Defaults, OverridesThere are four types of defaults and overrides to assist you in customizing your configurations. The priority goes in the order below from top to bottom where the lastone is the highest priority. *Brand defaults (by server) **Model defaults ***Domain overrides *****Device overrides For example if there is a similar parameter set on a device and a model then the device override will be taken and put into the configuration file. Brand Defaults
![]()
![]()
![]() Yealink special syntax Since Yealink is a bit different, they require more than just a parameter and a value. The file is segmented into sections with a header in [] then there is a path which is a internal file association. Both need to be provided with each parameter. In the examples below you can see overrides set using the syntax header;path;parameter then the value set separably. ";" will seperate the 3 pieces of info that are needed with all going in the NDP "parameter" section.
That would add the following into the file.
[ Default ] path=/yealink/config/voip/tone.ini stutter=0 [ Country ] path=/yealink/config/voip/tone.ini Country=Custom
|
Server | ![]() |
Value | Description |
---|---|---|---|
LAX | MX-SYSTEM-CONFIG-MIB_sysConfigDownloadConfigFile;1.3.6.1.4.1.4935.15.3.1.30.1;0 | 3 | Request config at boot |
<!-- Defaults and overrides --><Object Name="MX-SYSTEM-CONFIG-MIB_sysConfigDownloadConfigFile" Prefix="1.3.6.1.4.1.4935.15.3.1.30.1" Suffix="0" Value="3"/>
Domain Specific Overrides
- Options can overridden for each domain.
- Overrides can be added from "Configuration -> Defaults -> Domain Specific"
- If the domain is not already in the list click "add"
- Enter the domain in the "parameter" field and the options in the "value" field
- The correct syntax for entering and option would be, option="value"
- Multiple option/value pairs can be configured by placing spaces between them.
- Example syntax for multiple options: option1="value1" option2="value 2" option3="1234"
Device Specific Overrides
- Options can overridden for each device.
- Overrides can be added from "Configuration -> Devices", and clicking on the MAC address.
- At the bottom there is an overrides field, enter the overrides here.
- The correct syntax for entering and option would be, option="value"
- Multiple option/value pairs can be configured by placing a spaces between them.
- Example syntax for multiple options: option1="value1" option2="value 2" option3="1234"
- It is important to select the brand specific options when creating domain and user specific overrides. If a domain has more than one brand of device then choose the appropriate options for each option you wish to set.
Time_Zone="GMT-05:00" - Linksys
time_zone="EST" - Cisco
Managing firmware
- Most devices will also try to pull firmware from the provisioning server as well as configurations.
- If the NDP server creates a file, it will look to a local directory before returning a 404.
- The local directory is /usr/local/NetSapiens/ndp/frm/. Any file you want to make available copy into that directory or use the UI (ver > 0.9.0)
- You can manage the files through "System --> Files & Firmware", it allows the ability to upload and delete on a per file basis.
- To upload a new file click on the upload button and the enter the name and location of file to upload on the next screen. example below:

- You can save a file by right clicking and going to "File Save as"
- You can delete a file by clicking the "delete" button on the right side of the file browse window.
Brand Specific Firmware Upgrades
Cisco
- By default all Cisco devices will request their config file during a provisioning cycle.
- A required line is image_version which tells the device which firmware to load if it doesn't have or currently match.
- image_version is controlled in the defaults page under Cisco, but can be overridden by domain or device overrides.
- The default value for image_version is P0S3-07-5-00, which is the correct syntax for Cisco release 7.5 of there sip firmware.
- If you would like the ability to change code, you can place the files in the folder described above.
Polycom
- {note} polycom now offers all firmware on there website. You will need to get it from them.
- By default all Polycom's will request sip.ld during a provisioning cycle.
- NDP allows you to change the filename by setting an option
- In defaults, domain overrides, or device overrides you can set sip.ld_var to equal the version of sip.ld you want
- If you set sip.ld_ver="2.1.2" then it will look for sip2.1.2.ld in the normal file location described above.
- Also if you set sip.cfg_ver="2.1.2" then it will look for sip2.1.2.cfg in the normal file location described above.
- When adding new code to the NDP available files folder please change the sip.ld filename adding the version in e.g sip2.1.2.ld.
- If no version is selected it will look for sip.ld like normal.
Linksys
- You will need to use overrides and brand defaults to manage linksys firmare.
- The options needed will be similar to Upgrade_Enable"Yes" Upgrade_Rule="http://ndp.netsapiens.com/cfg/spa8000-6-1-3.bin"
Request Re-Sync
- NDP offers the ability to trigger a re-sync of a configuration file remotely.
- A device must previously have been configured to pull from the NDP
- From the device page in the UI click the green re-sync arrow on the needed Mac address.
- This will pop a Confirmation window, NDP pulls information from the SiPbx based on the line 1 extension not MAC address.
- Double check that the ip address and device are the correct because a reboot may occur after or before the re-sync.
- Specific brands need special settings to allow for the resync. Add the following settings to the NDP defaults for the brands below.
- The settings below need to be provisioned and rebooted prior to attempting a re-sync
- Polycom
- voIpProt.SIP.specialEvent.checkSync.alwaysReboot="1" //will force a reboot on check-sync notify
- Linksys
- Auth_Resync-Reboot[1]="No" //with not challenge notify
- Cisco
- nothing needed
- Grandstream
- not currently working
- Polycom
Directory Designer
- Currently only supported on Polycom's and Grandstreams (as of 1.2.0)
Creating a new Directory
- Navigate to Configurations --> Directory Designer
- Click Add
- Enter a Unique name for this directory (Note: no spaces)
- Select a domain and server from the drop down propagated from domains/servers already configured.
- Enter a Description, example: "Company X Receptionist directory"
- Select from a list of Directory Assist options described below.
- insert alphabetical - adds in all users in the domain, with "domain list" on, in alphabetical order by last name
- insert by extension - adds in all users in the domain, with "domain list" on, in numerical order by extension
- insert as unused - adds in all users in the domain, with "domain list" on, in the unused column.
- none - creates a empty directory
- Click Create
Modifying a Directory
- Navigate to Configurations --> Directory Designer
- Click Modify on the row of the directory you wish to Modify.
- You can now drag and drop the entries into the order you wish.
- Unwanted entries cannot be deleted, but can be moved to the two right most columns as those wont be added in a generation time.
- The order is set from top down on columns going form left to right. Unbalanced columns are OK and will be cleaned up on saving.
- If you wish to edit a specific entry including its presence setting double click the entry to bring up a edit screen.

- Entries with presence disabled will be grayed out.
- You can add an additional entry (new user, cell phone speed dial, etc..) by clicking Add at the bottom of the screen.
- Fill in the needed information
- First Name
- Last Name
- Extension - either a extension on the domain or a DID outside the domain
- You
an import used extension from a domain, by clicking the "import unused"
button. This will import all users not currently in the directory and
place them in the unused column for relocation to the directory if
desired.
- You can also bulk delete all users in the unused section if desired by clicking on "delete unused".
Setting a Device to use specific Directory
- Navigate to Configurations -->Devices
- Under the Directory column select the current value.
- You will not have a drop down box with you options
- Disabled - No directory will be sent to device
- Automatic - automatic forming of directory each time requested, alphabetical and included user submitted entries via phone (polycom).
- Custom - there will be a list of all directories available in the domain set on that device
Device Definitions
- NDP now (1.2.0) allows you to add new device to the list of support devices.
- You can also change existing features of devices to better fit your provisioning needs.
- To add a device navigate to System --> Device Definitions. Then click Add.
- Fill in the required info described below.
- Brand - Manufacture of device
- Model - Model number
- Type - Device (phone or Ata), analog gateway, digital gateway
- NDP code Structure - Internal code structure to be used when building config file.
- Force HTTS - blocks non encrypted requests
- Allow TFTP - allows this model to send over tftp.
- # of Phone Lines - The number of phone extension available on this device.
- # of FXS Lines - The number of FXS ports available on this device.
- # of FXO Lines - The number of FXO ports available on this device.
- Directory Enabled - Does this device support pushing of directory, for either speed dials or presence
- Presence Support - Does this device support presence on the directory
- Sidecar Support - Can this model support a sidecar
- Resync Support - Does this device work with the sip info message triggered via NMS.
- Firmware Support - Is firmware managment supported for this device
- Firmware Options - List in commo seperated format all available options for firmware for this device. Default is the first one. Example: sip.ld, sip3.0.ld
- Overrides - Enter model specific overrides. Enter in the form, parameter="value" parameter1="value 1"
- Description - Anything you want to make note of device.

- After creating this options then the option created will be available in the model drop down labeled with the Brand and Model Provided.
Enhanced Security
To allow the most support for all kinds of devices NDP is by default fairly open. There are several things available in ndp version 3.0.1 and greater that will tighten security on the system. You can do any or all of the items bellow, but will potentially cause extra steps or possible incompatibility.Allow/disallow TFTP
- Added in version 3.0 you can now on a per device model basis turn off the ability for the tftp interface to generate.
- This will block tftp if the device is not supported. This is in efforts to stop any phishing attacks on tftp.
- turning this on will break support for tftp only devices such as the older cisco 97xx series.
Force HTTPS
- Added in version 3.0 you can now on a per device model basis turn off the ability for unsecured http connections.
- This will block http if the device is set to only allow secure connections. This is in effort to force only encrypted data to be sent over the network.
- turning this on will break support for devices that dont support https or need a cert if you dont have a valid cert installed.
Require Username for http/https
- Added in version 3.0 you can now set a configuration parameter that will force all config files to request and verify a global username and password.
- Configuration settings are found in System -> configration.
- Parameter to turn on passwords is "PasswordProtectFiles". If Set it will also need "username" and "password".
- If you wish to take the additional step of having different credentials for each device you can set "PerDevicePasswords". This will open up the auth user and auth password parameter settings on each mac address.
- Syntax for values for PerDevicePasswords and PasswordProtectFiles and lowercase "yes" and "no"
Import/Export
- Import and Export functionality can be accessed from "Configurations" menu
- Data is managed via .csv files
- On import any additional information is pulled from the SiPbx's database
- Valid csv fields are below
Mac | Device Model # | Server | Domain | Line 1 | Line 2 | Line 3 | Line 4 | Line 5 | Line 6 | Line 7 | Line 8 | Overrides |
Provisioning Flow

Configuration Settings
- Set the timezone of the APP for logging last sync time.
- TimeZone = the ID for a
TimeZone
, either an abbreviation such as "PST", a full name such as "America/Los_Angeles", or a custom ID such as "GMT-8:00"
Event Traces
- Most everything NDP does is logged to DB and available through "Diagnostics -> Events"
- Each Http & Tftp request is logged
- Info on each configuration build including mac, domain, configuration lines, number of defaults and overrides used is saved.
- Options are available to show ndp or syslog data. "ndp" is generated by the app itself, while "syslog" is anything that comes from a remote device through port 514.
- Filtering at the top can be used to search against any part of the message,domain, or mac
Example of successful linksys provision events (read from bottom up) :
Type | Device | Mac | Domain | Message | Time |
---|---|---|---|---|---|
syslog | SPA-2102 | 000e08e80318 | netsapiens.com | Successful resync http://66.185.168.201:443/cfg/spa000e08e80318.cfg | 2007-10-08 22:53:43 |
ndp | NDP | 000e08e80318 | netsapiens.com | Sent file spa000e08e80318.cfg | 2007-10-08 22:53:40 |
ndp | NDP | 000e08e80318 | netsapiens.com | Built Linksys file for 000e08e80318. Included 29 configuration lines w/ 10 defaults used and 1 overrides used | 2007-10-08 22:53:40 |
ndp | NDP | 000e08e80318 | netsapiens.com | Encryption: spc: generated SPA2102 /tmp/cfgTemp targeted for 000e08e80318 len=14256 bytes | 2007-10-08 22:53:40 |
ndp | NDP | 000e08e80318 | netsapiens.com | Attempting to build/find file spa000e08e80318.cfg, device mac= 000e08e80318 or local Path = /usr/local/NetSapiens/ndp/frm/spa000e08e80318.cfg | 2007-10-08 22:53:40 |
ndp | NDP | 000e08e80318 | netsapiens.com | Http request received for file spa000e08e80318.cfg | 2007-10-08 22:53:40 |
syslog | SPA-2102 | 000e08e80318 | netsapiens.com | Requesting resync http://66.185.168.201:443/cfg/spa000e08e80318.cfg | 2007-10-08 22:53:39 |
Example of successful polycom provision events (read from bottom up) :
Type | Device | Mac | Domain | Message | Time |
---|---|---|---|---|---|
ndp | NDP | - | - | Sent file SoundPointIPWelcome.wav | 2007-10-09 21:16:25 |
ndp | NDP | - | - | Found SoundPointIPWelcome.wav on local drive | 2007-10-09 21:16:25 |
ndp | NDP | - | - | Attempting to build/find file SoundPointIPWelcome.wav, device mac= SoundPointIPWelcome.wav or local Path = /usr/local/NetSapiens/ndp/frm/SoundPointIPWelcome.wav | 2007-10-09 21:16:25 |
ndp | NDP | - | - | Http request received for file SoundPointIPWelcome.wav | 2007-10-09 21:16:24 |
ndp | NDP | 0004f210a4b8 | netsapiens.com | Http PUT request recieved for file 0004f210a4b8-app.log | 2007-10-09 21:16:18 |
ndp | NDP | 0004f210a4b8 | netsapiens.com | Sent file 0004f210a4b8-directory.xml | 2007-10-09 21:15:57 |
ndp | NDP | 0004f210a4b8 | netsapiens.com | Built Polycom directory file for 0004f210a4b8. Included 23 contacts. 1 of them were originally inputed via the phone. | 2007-10-09 21:15:57 |
ndp | NDP | 0004f210a4b8 | netsapiens.com | Attempting to build/find file 0004f210a4b8.xml, device mac= 0004f210a4b8 or local Path = /usr/local/NetSapiens/ndp/frm/0004f210a4b8.xml | 2007-10-09 21:15:56 |
ndp | NDP | 0004f210a4b8 | netsapiens.com | Http request received for file 0004f210a4b8-directory.xml | 2007-10-09 21:15:56 |
ndp | NDP | 0004f210a4b8 | netsapiens.com | Built Polycom file for 0004f210a4b8. Included 2 configuration lines w/ 0 defaults used and 0 overrides used | 2007-10-09 21:15:49 |
ndp | NDP | 0004f210a4b8 | netsapiens.com | Attempting to build/find file 0004f210a4b8-phone.cfg, device mac= 0004f210a4b8 or local Path = /usr/local/NetSapiens/ndp/frm/0004f210a4b8-phone.cfg | 2007-10-09 21:15:48 |
ndp | NDP | 0004f210a4b8 | netsapiens.com | Http request received for file 0004f210a4b8-phone.cfg | 2007-10-09 21:15:48 |
ndp | NDP | - | - | Sent file phone1.cfg | 2007-10-09 21:15:36 |
ndp | NDP | - | - | Found phone1.cfg on local drive | 2007-10-09 21:15:36 |
ndp | NDP | - | - - | Attempting to build/find file phone1.cfg, device mac= phone1 or local Path = /usr/local/NetSapiens/ndp/frm/phone1.cfg | 2007-10-09 21:15:36 |
ndp | NDP | - | - - | Http request received for file phone1.cfg | 2007-10-09 21:15:35 |
ndp | NDP | - | - - | Sent file sip.cfg | 2007-10-09 21:15:25 |
ndp | NDP | - | - - | Found sip.cfg on local drive | 2007-10-09 21:15:24 |
ndp | NDP | - | - - | Attempting to build/find file sip.cfg, device mac= sip or local Path = /usr/local/NetSapiens/ndp/frm/sip.cfg | 2007-10-09 21:15:24 |
ndp | NDP | - | - - | Http request received for file sip.cfg | 2007-10-09 21:15:24 |
ndp | NDP | 0004f210a4b8 | netsapiens.com | Sent file poly-0004f210a4b8.cfg | 2007-10-09 21:15:24 |
ndp | NDP | 0004f210a4b8 | netsapiens.com | Attempting to build/find file poly-0004f210a4b8.cfg, device mac= 0004f210a4b8 or local Path = /usr/local/NetSapiens/ndp/frm/poly-0004f210a4b8.cfg | 2007-10-09 21:15:22 |
ndp | NDP | 0004f210a4b8 | netsapiens.com | Http request received for file poly-0004f210a4b8.cfg | 2007-10-09 21:15:21 |
ndp | NDP | - | - | Sent file sip.ld | 2007-10-09 21:15:21 |
ndp | NDP | - | - | The remote device closed the connection, possibly not needing the rest of the file - sip.ld | 2007-10-09 21:15:21 |
ndp | NDP | - | - | Found sip.ld on local drive | 2007-10-09 21:15:20 |
ndp | NDP | - | - | Attempting to build/find file sip.ld, device mac= sip.ld or local Path = /usr/local/NetSapiens/ndp/frm/sip.ld | 2007-10-09 21:15:20 |
ndp | NDP | - | - | Http request received for file sip.ld | 2007-10-09 21:15:19 |
ndp | NDP | 0004f210a4b8 | netsapiens.com | Sent file 0004f210a4b8.cfg | 2007-10-09 21:15:12 |
ndp | NDP | 0004f210a4b8 | netsapiens.com | Built Polycom file for 0004f210a4b8. Included 2 configuration lines w/ 0 defaults used and 0 overrides used | 2007-10-09 21:15:12 |
ndp | NDP | 0004f210a4b8 | netsapiens.com | Attempting to build/find file 0004f210a4b8.cfg, device mac= 0004f210a4b8 or local Path = /usr/local/NetSapiens/ndp/frm/0004f210a4b8.cfg | 2007-10-09 21:15:12 |
ndp | NDP | 0004f210a4b8 | netsapiens.com | Http request received for file 0004f210a4b8.cfg | 2007-10-09 21:15:12 |
ndp | NDP | - | - | Sent file 404 FILE NOT FOUND for bootrom.ld | 2007-10-09 21:15:06 |
ndp | NDP | - | - | Attempting to build/find file bootrom.ld, device mac= bootrom.ld or local Path = /usr/local/NetSapiens/ndp/frm/bootrom.ld | 2007-10-09 21:15:06 |
ndp | NDP | - | - | Http request received for file bootrom.ld | 2007-10-09 21:15:06 |
Logs
- Only used by Polycom.
- Polycom's will upload logs during system boots to the provised server. We accept and store them in Diagnostics --> Logs
Troubleshooting
- Most logging is done through the application itself and can be displayed by going to "Diagnostics -> events"
- If issues arise that are not logged to the DB, then check the tomcat logs @ /usr/local/NetSapiens/tomcat/logs/catalina.out
Purging Tomcat Logs
- Log in to the Linux console (SSH)
- Enter the command df-h (to find out how much space you have left). The output should be similar to this:
Filesystem | Size Used | Available |
Use% |
2.8G |
2.8G | 0 | 100% <-----This is bad, it means that you are using 100% of HD |
99M | 11M | 84M |
11% |
217M | 0 |
217M |
0% |
- Delete files in:
- /var/log/httpd
- /usr/local/NetSapiens/tomcat/logs
- Purge files using the following command
- echo " " > file.ext (with catalina.out the command reads like this: echo " " > catalina.out)
- Restart httpd and tomcat5 with these commands:
- /etc/init.d/httpd restart
- service netsapiens-tomcat start
- Please note that these log files are there for a reason, and normally they rotate, but if HD space is reaching full capacity before rotating it may be necessary to purge the logs.
- If you run the df -h file again you can see the amount of space you are using.