CHAN_NMS is an Asterisk PBX channel driver that supports NMS Communications 
(acquired by Dialogic ) Open Access line of products, that includes E1/T1
boards  for PCI(-X), PCIe, and cPCI(e) bus.
What are the features of NMS stack this driver can bring to Asterisk?
- Broad protocol support: PRI ISDN, SS7, and various CAS;
- High-level call control channel driver, yet easily extendable to handle
protocol specific nuances and services;
- G.729, G.723.1, and iLBC codecs implemented by on-board DSPs;
- RTP streams directly from card's onboard Ethernet ports;
- NMS brand can make things happen in some situations when you have troubles
selling Asterisk alone.
The software is released under permissive 2-clause BSD license, but it's up
to you to work out all the licensing details for Asterisk, NMS software, and
codecs royalties that might apply to your product and/or environment.
The downside of using proprietary binary kernel driver is that you must run
RedHat Enterprise Linux kernel. CentOS is compatible and works very well as
a free alternative.
Currently we have CG6565 4-port PRI board working with E1 EuroISDN and T1 NI2
in a test lab with the equipment from Avaya, Samsung, Kvant. The supported
- Asterisk 1.2 and 1.4.
- Single CG6565 card with ISDN protocol for all trunks. Up to 8 trunks are
supported by single PCI board, and 16 trunks by cPCI. The protocol details
are configured in NMS board configuration file and there are lot of tuning
- Single Asterisk dial-plan context for incoming calls is selected in
channel configuration file.
- When making outgoing call you can select trunk and/or timeslot, alternatively
first free timeslot across all trunks will be used.
The channel driver should be considered an ALPHA quality product. In subsequent
releases we will implement more features:
- Asterisk 1.6 support, probably also CallWeaver and FreeSWITCH;
- multiple cards support;
- NFAS setups;
- more protocols - CAS, also SS7 and SIGTRAN;
- call transfer;
- overlapped sending and receiving;
- more configuration parameters;
- testing scenarios and scripts for automated testing;
- CG6565 has Ethernet ports, so it might be possible to offload RTP from
the host after call is established - not sure it is possible due to Asterisk
To build chan_nms you need to do three things:
1. Install Natural Access libraries and drivers.
2. Due to Natural Access issues, /usr/sbin/asterisk binary must be linked to NMS
libraries. Apply asterisk-Makefile.diff and re-link it.
3. Edit build.sh and build chan_nms.so, then copy to /usr/lib/asterisk/modules
To start using chan_nms do the following:
1. Configure the board. Supplied cg6565board0_e1/t1.cfg configuration files is a
good start for 4-trunk E1 EuroISDN and T1 NI2, respectively. All the details
could be found at
In essence the procedure is:
- Assure init.d/ NMS services are started.
- Source /etc/profile.d/naprofile.sh - this will put /opt/nms/bin into PATH
and will set necessary environment variables.
- Copy appropriate cg6565board0.cfg to /opt/nms/cg/cfg
- Modify /opt/nms/oam/cfg/oamsys.cfg to include:
Product = CG_6565_4
# Logical board number, physical bus, physical slot
Number = 0
Bus = 0
Slot = 10
File = cg6565board0.cfg
Substitute appropriate numbers for Bus and Slot, use 'cg6ktool -A'
or 'lspci' to obtain the info.
- Boot the card by starting 'oamsys'.
- Monitor trunk status with 'trunkmon'.
2. Copy nms.conf into /etc/asterisk. Edit to suit your needs, comments are
3. In Asterisk dial-plan (extensions.conf) you can refer to chan_nms as
NMS/callee-number or NMS/-1/callee-number
For example, Dial(NMS/2/5678) will dial number 5678 on first free timeslot
in 2-nd trunk. Trunks numeration starts with 0, timeslots numeration also
starts with 0 and doesn't include D-channel.
4. Start Asterisk. As usual, chan_nms will output a lot of debug information
if Asterisk verbosity level is set to 2 (-vv) or 3 (-vvv).
To get help or suggest a feature, please join CHAN_NMS discussion group at
In case you want to send a private mail with a patch, or maybe a business
proposal, or you want to participate in development process, please write to
Arkadi.Shishlov at GMail.Com.