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.  http://www.nmscommunications.com/  http://www.dialogic.com/press/press_releases/pr_20081124_NMS.htm  http://www.nmscommunications.com/DevPlatforms/OpenAccess/IP 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; - Certification; - 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 configuration is: - 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 possibilities. - 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; - hold/retrieve; - 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 architecture. 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 directory. 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 http://www.nmscommunications.com/manuals/62415-10/default.htm 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: [Board0] 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 given inside. 3. In Asterisk dial-plan (extensions.conf) you can refer to chan_nms as NMS/callee-number or NMS/-1/callee-number NMS/trunk-number/callee-number NMS/trunk-number/timeslot-number/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 Google http://groups.google.com/group/chan-nms 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.