::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: VoiceRD Wiki Documentation and FAQ - Plain Text Version www.voicerd.com Copyright ©2011 - Novacoast Inc www.novacoast.com Download PDF version at: http://www.voicerd.com/downloads/VoiceRD_Wiki_FAQ.pdf ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ************************************************************************ VoiceRD Appliance VoiceRD Professional installed by the VoiceRD team on certified hardware. Full managed solution. ************************************************************************ VoiceRD Appliance Installation ------------------------------------------------------------ Coming soon.... VoiceRD Appliance and Pro Configuration ------------------------------------------------------------ HP Proliant integrated Lights Out (iLO) ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: The "integrated Lights Out" device is a special management processor (actually a mini-computer) integrated on most HP ProLiant servers that allows system monitoring, power control, console access, and other features. The iLO product documentation is available at http://h18004.www1.hp.com/products/servers/management/ilo/documentation.html. the "User Guide" and "Best Practices" documents provide a complete explaination of the iLO product. There is also a PCI card version called the "remote integrated Lights Out" (riLO). Setup ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: * If your system is brand new it comes with a removable system information tag (attached via elastic or glue) that lists information such as: Serial No: EAGZLDN42B User Name: Administrator DNS Name: ILOEAGZLDN42B Password: KVJJRUF4 - Note: login and password are case sensitive. * Plug-in Power and a Network Cable Into the iLO Once powered, the iLO sends out a dhcp request that includes the "DNS Name" from the system information tag in the request. Check your dhcp server log for the IP address your server issued. An example iLO request looks like: dhcpd: DHCPDISCOVER from 00:0e:7f:b2:c1:2e via eth2 dhcpd: DHCPOFFER on 10.100.100.25 to 00:0e:7f:b2:c1:2e (ILOEAGZLDN42B) via eth2 dhcpd: DHCPREQUEST for 10.100.100.25 (10.0.0.1) from 00:0e:7f:b2:c1:2e (ILOEAGZLDN42B) via eth2 dhcpd: DHCPACK on 10.100.100.25 to 00:0e:7f:b2:c1:2e (ILOEAGZLDN42B) via eth2 Point your web browser at that IP address (10.100.100.25 in the above example) and record the MAC address for later use. * Configuring the iLO Once connected to the iLO secure web page, use the login listed on the system information tag to login. Then complete the following steps in the web interface. * Setup iLO Users Administration -> User Administration Change the Administrator password, setup additional accounts as needed. Note that "User Name" and "Login Name" can be confusing given the contradiction with the "User Name" on the system's removable tag. Don't confuse them or you can lock yourself out. ("User Name:" on the tag is actually "Login Name:" using the UI terminology) * Change the iLO's Network Settings If you are currently connected to the iLO via a dynamic IP address that your DHCP server assigned you will probably want to change to a static address. You can either configure your DHCP server to hand out a static address to the iLO (note that you have the MAC address in the DHCP server logs like in the example above) or you can hard code it using the web Administration -> Network Settings interface or via the ROM Based Setup Utility (explained below). If you have problems accessing the iLO after the address change, see the note in the troubleshooting section below. * Poke Around a Little and Note the Other Features Take a look around the web interface and note features that you might find useful. Some features require a license. Information from: http://www.lackof.org/matt/hacking/proliant/Debian-ProLiant-Guide.html#iLO About VoiceRD framework ------------------------------------------------------------ Introduction ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: This is the Free Open Source version of VoiceRD. There are also non-free versions of VoiceRD available for puchase (see http://www.voicerd.com). This open source solution is primarily a managment interface for Asterisk. It uses LDAP to store the dialplan and other configuration settings for Asterisk. It also uses the Asterisk Realtime Architecture(ARA) which is still under development and will hopefully soon be included in a future release of Asterisk. The VoiceRD Management Console is similar to the structure of the Asterisk Managemnet Portal(AMP) but attempts to be scalable to handle an Enterprise Level installation of Asterisk, so, more than a few hundred users. In the next few sections, I will give an overview of the framework of this piece of software, how all the parts tie together, and provide some insight into why this solution scales to handle massive VOIP networks. A note about configuration with LDAP ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: A bare bones Asterisk installation can be configured by editing several text files; obviously, this can quickly become a nuisance for anything more than a handful of users. These text-files are loaded on restart of Asterisk and some of the files can be loaded by issuing a "reload" command in Asterisk. Asterisk also has an internal database, AstDB, which makes it a bit more dynamic, it can be modified within Asterisk(CLI interface) or by connecting to it over a socket. By using the ARA with LDAP, VoiceRD stores all the complicated configuration settings in LDAP with all the advantages that implies, including hierarchical fine grained access control, lightning fast reads, as well as easy integration with user data from other directories(i.e., Identity Management). The LDAPget() application is also used for items that would normally be stored in the asterisk database. For now, make sure you get the LDAPget() from this page as it has been extended to do LDAPput() etc, as well as the perl and php AGI modules. The Dialplan ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: Although several configuration files are stored in asterisk, the dialplan is probably the most important one; this is where the routing of the calls happen and various applications are called. The applications are either built-in Asterisk applications, or custom Asterisk Gateway Interface(AGI) applications on the asterisk server. With ARA, each line in the dialplan is stored in LDAP. There are two ways of doing this, dynamically(objects in LDAP are called Just In Time(JIT) for execution of the dialplan(i.e., when a call is made)) or statically; the static part of the dialplan is called when asterisk starts up or on a reload of the configuration file. A base configuration of the dialplan needs to be in place for asterisk as the VoiceRD managent interface just adds on to this base. The base consists of a logical framework for the dialplan as well as some macros and calls to the AGI applications; by modifying this base a server can be configured to do pretty much anything, except maybe fetching your beer, while still allowing the admin to manage user accounts and overall maintenance from the VoiceRD management interface. Appliance Installation Guide ------------------------------------------------------------ Coming Soon... Administation Guide ------------------------------------------------------------ Assuming you already have VoiceRD installed, you are now ready to configure the system for your users. Create an Asterisk Admin user ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: If you do not already have an administrator user for asterisk in the o=voicerd tree, you will have to create one or edit the EmplyeeType attribute of an existing user to AsteriskAdmin. Note: You cannot have a user in 'o=voicerd,ou=Users' be an Asterisk Admin. When you edit a user here it will be deleted and recreated, so any custom changes will be lost. Set Up a Trunk ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: Click Call Management -> Routing -> Trunks Click New button Enter Trunk specifics. The name for the trunk should be one word and no spaces. Maximum number of channels is 23 per T1. Click Submit button. Click Search button and see your new trunk listed. The rest ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: Configure the rest of the options under the configuration tree in a similar fashion. Setting up Linksys ATA adapter (for faxing) ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: Dial 110# on an analog phone connected to adapter to get IP Enter IP into web browser Click Admin login link Click Line 1 link Enter these settings Proxy and Registration: Proxy: Subscriber Information: Display name: User id: Password: Auth id: Use auth id: yes Submit all changes Note: Line 1 Status, Registration state must be set to Registered Backup System ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: Under the 'General' tab is the option to backup the VoiceRD system. Simply check the parts you wish to backup and specify a destination on the server that apache may write to OR download the file directly. Restore a Backup ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: With the exception of LDAP and Mysql data, the system may be restored by simply restoring the directories from the .zip file. Developers Guide ------------------------------------------------------------ Code Base ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: Most of the code is written in PHP5 with the XTemplate templating library. For an overview of the code layout, the best place to start is probably the comments in the source files. Changes to the Dialplan Base ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: Please post any additions to the dialplan base as a new page with a link from this page. Creating a custom module with or without tree view menu. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: To create a custom module with a treeview you need the following three files: If you have a page in your module call test.php then you need one in templates called test_header.tpl.php and test.tpl.php (this one can actually be set in your test.php file. You will also need a file call leftmenu.php.tpl in your templates folder. To create a custom module with no treeview or defined left panel: If you have a page called test.php you simply have to set _FILENAME_MODULE in your language file to the template file name. ************************************************************************ VoiceRD Pro VoiceRD Professional allows you to install and configure VoiceRD on your own VoiceRD certified hardware using our installation DVD. ************************************************************************ VoiceRD Pro Installation ------------------------------------------------------------ Pictured - VoiceRD Pro Boot Prompt Pictured - VoiceRD Pro SLES 10 Installing Pictured - VoiceRD Install URL Displayed after OS install VoiceRD Professional allows you to install and configure VoiceRD on your own VoiceRD certified harware using our installation DVD. (Check the Hardware Certification List before installing). VoiceRD Appliance includes the VoiceRD professional pre-installed. The appliance can optionally include pre-installed integration modules. It is recommended to have a VoiceRD certified engineer to perform an installation on-site to coordinate the proper setup of the server, VoiceRD configuration, and final testing of the complete system. Please refer to this PDF for the VoiceRD Pro installation guide. http://voicerd.org/VRDProInstallation.pdf The following steps walk you through installing a VoiceRD Professional version: Insert the VoiceRD DVD and start the server. Make sure the server is set to boot from the VoiceRD DVD. Select "Installation" on the SLES 10 Boot Screen. The VoiceRD DVD will install SLES 10 and all the required packages (You may accept all installation defaults). Upon boot, SLES 10 will attempt to obtain an IP address using DHCP. If no DHCP server is found, you will need to configure your IP manually using ifconfig or yast. After the initial boot you may log in as root with password: "password", and run the command: ifconfig eth0 Make sure the IP address is reachable from within your LAN. Note: You can run 'yast lan' to setup the network via the YaST2 text Interface The server will display a URL to enter from a workstation to walk through the VoiceRD install process. Normally it is something like: http://:8181/ Enter the URL in a web browser to initiate the VoiceRD installer and step through the install process. Tip: One thing to look out for is to make sure that the VoiceRD LDAP tree is named differently than any existing tree. VoiceRD Appliance and Pro Configuration ------------------------------------------------------------ (See Above) About VoiceRD framework ------------------------------------------------------------ Introduction ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: This is the Free Open Source version of VoiceRD. There are also non-free versions of VoiceRD available for puchase (see http://www.voicerd.com). This open source solution is primarily a managment interface for Asterisk. It uses LDAP to store the dialplan and other configuration settings for Asterisk. It also uses the Asterisk Realtime Architecture(ARA) which is still under development and will hopefully soon be included in a future release of Asterisk. The VoiceRD Management Console is similar to the structure of the Asterisk Managemnet Portal(AMP) but attempts to be scalable to handle an Enterprise Level installation of Asterisk, so, more than a few hundred users. In the next few sections, I will give an overview of the framework of this piece of software, how all the parts tie together, and provide some insight into why this solution scales to handle massive VOIP networks. A note about configuration with LDAP ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: A bare bones Asterisk installation can be configured by editing several text files; obviously, this can quickly become a nuisance for anything more than a handful of users. These text-files are loaded on restart of Asterisk and some of the files can be loaded by issuing a "reload" command in Asterisk. Asterisk also has an internal database, AstDB, which makes it a bit more dynamic, it can be modified within Asterisk(CLI interface) or by connecting to it over a socket. By using the ARA with LDAP, VoiceRD stores all the complicated configuration settings in LDAP with all the advantages that implies, including hierarchical fine grained access control, lightning fast reads, as well as easy integration with user data from other directories(i.e., Identity Management). The LDAPget() application is also used for items that would normally be stored in the asterisk database. For now, make sure you get the LDAPget() from this page as it has been extended to do LDAPput() etc, as well as the perl and php AGI modules. The Dialplan ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: Although several configuration files are stored in asterisk, the dialplan is probably the most important one; this is where the routing of the calls happen and various applications are called. The applications are either built-in Asterisk applications, or custom Asterisk Gateway Interface(AGI) applications on the asterisk server. With ARA, each line in the dialplan is stored in LDAP. There are two ways of doing this, dynamically(objects in LDAP are called Just In Time(JIT) for execution of the dialplan(i.e., when a call is made)) or statically; the static part of the dialplan is called when asterisk starts up or on a reload of the configuration file. A base configuration of the dialplan needs to be in place for asterisk as the VoiceRD managent interface just adds on to this base. The base consists of a logical framework for the dialplan as well as some macros and calls to the AGI applications; by modifying this base a server can be configured to do pretty much anything, except maybe fetching your beer, while still allowing the admin to manage user accounts and overall maintenance from the VoiceRD management interface. Administation Guide ------------------------------------------------------------ (See Above) Developers Guide ------------------------------------------------------------ Code Base ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: Most of the code is written in PHP5 with the XTemplate templating library. For an overview of the code layout, the best place to start is probably the comments in the source files. Changes to the Dialplan Base ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: Please post any additions to the dialplan base as a new page with a link from this page. Creating a custom module with or without tree view menu. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: To create a custom module with a treeview you need the following three files: If you have a page in your module call test.php then you need one in templates called test_header.tpl.php and test.tpl.php (this one can actually be set in your test.php file. You will also need a file call leftmenu.php.tpl in your templates folder. To create a custom module with no treeview or defined left panel: If you have a page called test.php you simply have to set _FILENAME_MODULE in your language file to the template file name. Hardware Certification List ------------------------------------------------------------ Certified VoiceRD Hardware: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: * VoiceRD PRO REQUIRES a DVD drive for installation. Servers: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: * HP Proliant DL 360 and 380 - http://h10010.www1.hp.com/wwpc/us/en/sm/WF04a/15351-15351-3328412-241644-241475.html * IBM System X (Tested x3550) - http://www-03.ibm.com/systems/x/rack/x3550/index.html Zaptel T1/E1 Digital Cards: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: * Digium digital interface cards - http://www.digium.com/en/products/digital/ ************************************************************************ VoiceRD Open Source The VoiceRD Management Console. This is still beta software. There is no installer so get ready to get your hands dirty. ************************************************************************ About VoiceRD framework ------------------------------------------------------------ (See Above) About VoiceRD FAQ ------------------------------------------------------------ VoiceRD Open Source FAQ Below are some frequently asked questions about the VoiceRD open source version: What phones does VoiceRD support? You can use most SIP or IAX phones with VoiceRD; however, VoiceRD has a graphical built-in configuration interface for Polycom phones. What hardware is supported? IBM's eServers and HP's Proliant DL 360 and 380's What operating systems are supported? Any system that runs Asterisk will work. Recommended platform is Linux. Open Source Installation Guide ------------------------------------------------------------ OK, so you decided to install the VoiceRD Management Console. Keep in mind that this is still beta software. There is no installer so get ready to get your hands dirty. SLES SP2 Note: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: These instructions will work with SLES SP2, although there are some package conflicts with some Perl packages. We are still testing to see what functionality is missing, but you should be able to get an install working corrently. Downloading everything and installing system packages ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: Start by downloading all the necessary packages. You will need: Latest release files from the forge. http://forge.voicerd.org Novell's eDirectory 8.8 http://download.novell.com Install dependencies SLES: yast2 -> software -> software management -> (Some packages may have been renamed) apache2-mod_php5 apache2 php5 php5-ldap php5-sockets kernel-source kernel-syms mysql mysql-client mysql-shared mysql-devel ncurses-devel openssl-devel openssl ldapcpplib-devel gcc gcc-c++ make automake autoconf gnutls slang slang-devel tcl tcl-devel libogg libogg-devel curl curl-devel perl-ldap perl-net-telnet compat-libstdc++ tftp - recommended for phones (Polycom SoundPoint telephones are the best we've tested.) mime-construct tiff2ps ps2pdf python-xml Accept any automatic changes to package selections. Extract VoiceRD release packages from Forge ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: tar xzvf vrdasterisk.tar.gz tar xzvf VoiceRDv12-tar.gz Change into the "voicerd" directory created. cd voicerd Install Packages ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: (These packages are in the "voicerd" directory created by the tar archive - version numbers may vary) rpm -Uhv libpri-*.rpm rpm -Uhv zaptel-*.rpm rpm -Uhv imap-*.rpm rpm -Uhv python-cheetah-*.rpm rpm -Uhv newt-*.rpm rpm -Uhv newt-devel*.rpm rpm -Uhv speex-*.rpm Install Asterisk ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: (These packages are from the vrdasterisk.tar.gz archive) rpm -Uhv asterisk-*.rpm rpm -Uhv asterisk-addons-*.rpm Install Simba ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: (In the voicerd directory) rpm -Uhv simba-*.rpm Install eDirectory ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: The directions below pertain to Novell eDirectory 8.8 If you choose to use a different directory feel free to add documentation to wiki. Download eDirectory from Novell's page at http://download.novell.com version 8.8 Caution: eDirectory does not work well with the network service Network Manager. Do not use Network Manager on the server hosting eDirectory. Unzip the file cd eDirectory/setup ./nds-install -c server -c admutils -u Edit /root/.profile Add the following: Note: This file may not exist on your system, in which case create it. PATH=/opt/novell/eDirectory/bin:/opt/novell/eDirectory/sbin:$PATH LD_LIBRARY_PATH=/opt/novell/eDirectory/lib:/opt/novell/eDirectory/lib/nds-modules:/opt/novell/lib:$LD_LIBRARY_PATH MANPATH=/opt/novell/man:/opt/novell/eDirectory/man:$MANPATH TEXTDOMAINDIR=/opt/novell/eDirectory/share/locale export PATH export LD_LIBRARY_PATH export MANPATH For these profile changes to take effect you will have to logout of your system and log back in as root, or place the file .profile into the home directory of your local user. You can test your path by tying "which ndsconfig". It should return the path to ndsconfig. ndsconfig new -t VOICERDTREE -n o=voicerd -a cn=admin.o=voicerd enter a password leave the paths at their defaults This should start eDirectory for you(check it with ndsstat). If it does not you will have to start it with rcndsd start Modify the eDirectory / LDAP configuration so you can you use ice to import with no TLS. ldapconfig -s ldapTLSRequired=no User FDN: cn=admin.o=voicerd User Password: somepassword ldapconfig -s "Require TLS for Simple Binds with Password"=no User FDN: cn=admin.o=voicerd User Password: somepassword Note: For FDN use dot format(not comma). Install VoiceRD LDAP packages ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: (These packages are in the "voicerd" directory) rpm -Uhv VoiceRD-ldap-*.rpm rpm -Uhv VoiceRD-misc-*.rpm Create & Configure Tree Name ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: Create /var/lib/simba/vrd/conf/treename.xml The contents should be as follows: TREENAME Replace "TREENAME" with the name of the eDir tree that you created in the steps above. Install the eDir Configuration Package (This package is in the "voicerd" directory) rpm -Uhv eDir_config-88-6.i586.rpm There will be quite a bit of ICE ldap messages scrolling past your screen. If it complains about eDir-Linux not being installed, install the eDir rpm package first. Installing Final VoiceRD Packages ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: (These packages are in thee "voicerd" directory) rpm -Uhv VoiceRD-etc-*.rpm rpm -Uhv VoiceRD-asteriskperl-*.rpm rpm -Uhv VoiceRD-web-*.rpm VoiceRD-asteriskperl should also be installed, however this package along with a few others gives an error on SLES SP2 Start Services ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: /etc/init.d/apache2 start /etc/init.d/mysql start asterisk If Asterisk does not start, check to make sure it is not already running and that the /var/run/asterisk/ directory exists. Make sure your date is set correctly on the sever ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: You may do this with the date command, for example: date -s 'Thu Oct 15 14:01:01' or ntpdate pool.ntp.org Setting up the mysql for CDR ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: rcmysql start mysql -u root -p NOTE: If your mysql root password is blank just the command above without the p flag: mysql -u root mysql> create database cdrdb; mysql> use cdrdb; In the file ~/asterisk-addons-1.2.3/doc/cdr_mysql.txt you will find the table below which you should copy-paste this into your mysql command prompt: mysql> CREATE TABLE cdr ( calldate datetime NOT NULL default '0000-00-00 00:00:00', clid varchar(80) NOT NULL default ' ', src varchar(80) NOT NULL default ' ', dst varchar(80) NOT NULL default ' ', dcontext varchar(80) NOT NULL default ' ', channel varchar(80) NOT NULL default ' ', dstchannel varchar(80) NOT NULL default ' ', lastapp varchar(80) NOT NULL default ' ', lastdata varchar(80) NOT NULL default ' ', duration int(11) NOT NULL default '0', billsec int(11) NOT NULL default '0', disposition varchar(45) NOT NULL default ' ', amaflags int(11) NOT NULL default '0', accountcode varchar(20) NOT NULL default ' ', uniqueid varchar(32) NOT NULL default ' ', userfield varchar(255) NOT NULL default ' ' ); Setting up TFTP for Phone Configuration files ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: (This package is in the "voicerd" directory) rpm -Uhv VoiceRD-tftpboot-*.rpm You may need to start xinetd / tftpd manually. Faxing with Hylafax & IAXModem ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: Faxing over VOIP is a big problem. If you want to know why, go here: http://www.voip-info.org/wiki-Asterisk+fax One way to overcome potential problems is by using a combination of Hylafax ( http://www.hylafax.org ) and IAXmodem ( https://sourceforge.net/projects/iaxmodem ). In short, you let your existing fax machine do outbound faxing, which tends to be more reliable than answering faxes over VOIP, and let asterisk/IAXmodem/hylafax answer faxes. This guide assumes that you have an existing fax machine. Install IAXmodem ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: The procedure is as follows: Install dependencies: tiff libtiff libtiff-devel libjpeg libjpeg-devel mgetty g3utils Download, compile, & install IAXmodem: https://sourceforge.net/projects/iaxmodem tar zxvf iaxmodem-*.*.*.tar.gz cd iaxmodem-*.*.* ./configure ./build static cp iaxmodem /usr/bin/ cd lib/spandsp ./configure make make install mkdir /etc/iaxmodem cd /etc/iaxmodem/ edit iaxmodem-cfg.ttyIAX (from iaxmodem source tarball) peername user# password userpassword cp iaxmodem-cfg.ttyIAX /etc/iaxmodem/ttyIAX Start iaxmodem iaxmode ttyAIX Install Hylafax ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: rpm -Uhv hylafax.rpm Setup hylafax faxsetup Defaults are OK Area Code ? Serial port that modem is connected to ? ttyIAX Add an IAX user via the VoiceRD web interface using the same login info provided in /etc/iaxmodem/ttyIAX Make sure youre extconfig.conf file points the iaxpeers and iaxusers to ldap, and that the IAX ldap object has the correct settings. This was broken in some earlier releases. Start the hylafax service /usr/sbin/hylafax start Start the iaxmodem service /usr/local/bin/iaxmodem ttyIAX) Try to fax the new iaxmodem extension and see if it answers. If it works, you'll have a tiff file in /var/spool/hylafax/recvq Change the Incoming Route to go to the new IAXmodem extension Make sure that you put both Hylafax and IAXmodem in /etc/inittab so that they start on boot. edit /etc/inittab mo:35:respawn:/usr/sbin/faxgetty /dev/ttyIAX IAX:2345:respawn:/usr/local/bin/iaxmodem ttyIAX Making hylafax do something ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: Note: In addition to saving the faxes as tiff files hylafax is typically used for other options. Use the following guides for additonal options: http://www.hylafax.org/content/How-To We recommend your existing fax machine set up to default cups printer and add this bit to the end of the /var/spool/hylafax/bin/faxrcvd file: if [ -n "$SENDTO" ]; then echo "" echo "The facsimile was automatically dispatched to: $SENDTO." else /usr/bin/fax2ps $FILE | lpr fi == Known Issues Good luck! Upgrade Guide ------------------------------------------------------------ To manually update a VoiceRD OpenSource Install, start here: Installation_Guide#Extending_the_eDirectory_Schema Administation Guide ------------------------------------------------------------ (See Above) Role Based Services Guide ------------------------------------------------------------ Troubleshooting FAQ ------------------------------------------------------------ Troubleshooting VoiceRD Installation FAQ This FAQ assumes your testing your installed and configured VoiceRD. Most of the errors mentioned are seen from viewing asterisk console in verbose mode. More information on how to configure and setup your system is available in the HOWTOs section. Voicemail ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: Operator Problem: Pressing 0 when in Voicemail does not do anything. Solution: This should redirect to operator or whatever is set in macro-vm assuming that the operator=yes variable is set in voicemail.conf voicerd*CLI> dialplan show macro-vm 'o' => 1. Background(one-moment-please) [pbx_config] 2. GotoIf($["foo${FROM_DID}" = "foo"]?from-pstn|s|1:from-pstn|${FROM_DID}|1) [pbx_config] The FROM_DID variable is set in the ext-did context as a channel variable. Modify the second priority of the 'o' extension by adding an object to ou=custom,ou=extensionsConf,ou=Conf,o=voicerd and make sure that the oxyPBXConfigVariableMetric is lower than the corresponding object in ou=static,ou=extensionsConf,ou=Conf,o=voicerd. For example you could set it to something like: 'o' => 1. Background(one-moment-please) [pbx_config] 2. Goto(aa_MyMenu|s|1) [pbx_config] to have it go to the auto attendant menu named MyMenu. Message Waiting Indicator(MWI) Problem: Message Waiting Indicator(MWI) does not work. Solution: Make sure that the mailbox is set properly on the SIP device/line. You can check this in the CLI by running the "sip show peer " voicerd*CLI> sip show peer 1234 voicerd*CLI> * Name : 1234 Realtime peer: No Secret : MD5Secret : Context : from-internal Subscr.Cont. : Language : AMA flags : Unknown Transfer mode: open CallingPres : Presentation Allowed, Not Screened Callgroup : Pickupgroup : Mailbox : 1234@default VM Extension : asterisk LastMsgsSent : 0/0 Call limit : 0 Dynamic : Yes Callerid : "" <1234> MaxCallBR : 384 kbps Expire : 40 Insecure : no Nat : Always ACL : No T38 pt UDPTL : No CanReinvite : No PromiscRedir : No User=Phone : No Video Support: Yes Trust RPID : Yes Send RPID : Yes Subscriptions: Yes Overlap dial : Yes DTMFmode : inband LastMsg : 0 ToHost : Addr->IP : 192.168.1.10 Port 5060 Defaddr->IP : 0.0.0.0 Port 5060 Def. Username: 1234 SIP Options : (none) Codecs : 0x3f1fff (g723|gsm|ulaw|alaw|g726|adpcm|slin|lpc10|g729|speex|ilbc|g726aal2|g722|jpeg|png|h261|h263|h263p|h264) Codec Order : (none) Auto-Framing: No Status : OK (4 ms) Useragent : VoiceRD/1.01 (Novacoast Inc.) Reg. Contact : sip:1234@192.168.1.10:5060 The mailbox is set to 1234@default in this example. That will notify this device/line if there are any new messages in that mailbox. MeetMe conference rooms ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: All rooms Invalid Problem: Conference rooms are all invalid. Solution: MeetMe conferences require either a valid configured Zaptel card. If you don't have one, load the 'ztdummy' module. Some rooms Invalid Problem: Specific conference rooms are invalid. Solution: Make sure you do not include the "8" prefix in the conference room number when you create it. Problem: There is no beep when users log into my conference room. Solution: Make sure the admin pin is not set to the same as the user pin in asterisk. You will not be notified when an admin logs in. Creating a SIP trunk ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: Problem: The SIP provider requires that I set attributes that are not available under the Trunk configuration page in the web interface. Solution: The creation of a SIP trunk will create two devices that appear as objects in LDAP. Install an LDAP browser(e.g., ConsoleOne from Novell) and add the attribute you need to the appropriate device. In ConsoleOne you will need to authenticate by entering the following credentials: Login name: vrdadmin Password: Tree: Context: o=voicerd Browse to: ou=SIPAccount,o=voicerd and locate the SIP device you would like to modify. Right-click the device and select Properties. Select the Other Tab. Make sure Attributes: is highlighted and click Add... The mapping between the LDAP attributes and the attributes asterisk expects can be found in the /etc/asterisk/res_ldap.conf file under the sip section. Add the attribute you need(e.g., oxyPBXAccountFromUser) and type in the appropriate value. User Guide ------------------------------------------------------------ User Applications The are several "soft-applications" available to VoiceRD users. Some of the soft-applications may have counterparts on some of the phones you are using(e.g., Do-Not-Disturb button on Polycoms). Intercom Cheat Sheet ------------------------------------------------------------ Developers Guide ------------------------------------------------------------ (See Above) Known Issues ------------------------------------------------------------ Here are the known issues(i.e., bugs and cleanup notes) with the current open source version of VoiceRD. Configuration Files ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: The configuration of the web interface is a bit messy. Only the includes/common.php file should be used for configuration settings. Some old configuration files need to go and some of the variables of the voicerd_config array are superfluous. $voicerd_config['VoiceRD']['Authentication']['ldapServer']='your.server.com'; //IP of Authentication server $voicerd_config['VoiceRD']['Authentication']['ldapPort']=389; //Port of Authentication server $voicerd_config['VoiceRD']['Authentication']['baseDN']='o=voicerd'; //base DN of user to be authenticated //this user should only have browse rights: $voicerd_config['VoiceRD']['Authentication']['userDN']='cn=vrdadmin,o=voicerd'; $voicerd_config['VoiceRD']['Authentication']['userPWD']='somepassword'; //VoiceRD server to send Asterisk configuration to.(Needs to have o=voicerd) $voicerd_config['VoiceRD']['ldapServer']='your.server.com'; $voicerd_config['VoiceRD']['ldapPort']=389; $voicerd_config['VoiceRD']['UserBaseDN']='ou=Users,o=voicerd'; //this is where our users are stored //Asterisk Manager $voicerd_config['VoiceRD']['MGR']['HOST'] = 'localhost'; $voicerd_config['VoiceRD']['MGR']['USER'] = 'jiveuser'; $voicerd_config['VoiceRD']['MGR']['PWD'] = 'somepassword'; //Asterisk DB(can use instead of $voicerd_config['VoiceRD']['DB']['HOST'] = 'localhost'; $voicerd_config['VoiceRD']['DB']['NAME'] = 'cdr'; $voicerd_config['VoiceRD']['DB']['DB_TYPE'] = 'mysql'; //Asterisk Recording Interface $voicerd_config['VoiceRD']['ARI']['USER'] = 'ariuser'; $voicerd_config['VoiceRD']['ARI']['PWD'] = 'somepassword'; $voicerd_config['VoiceRD']['WEBROOT'] = 'localhost'; $voicerd_config['VoiceRD']['FSROOT'] = '/srv/www/htdocs'; $voicerd_config['VoiceRD']['CDR']['HOST'] = '192.168.1.60';//or may public ip or domain name? $voicerd_config['VoiceRD']['CDR']['PORT'] = '3306'; $voicerd_config['VoiceRD']['CDR']['USER'] = 'someuser'; $voicerd_config['VoiceRD']['CDR']['PWD'] = 'somepassword'; $voicerd_config['VoiceRD']['CDR']['DBNAME'] = 'yourcdrdb'; $voicerd_config['VoiceRD']['CDR']['TABLE'] = 'cdr'; $voicerd_config['VoiceRD']['CDR']['DB_TYPE'] = 'mysql'; // mysql or postgres ************************************************************************ Integration Modules VoiceRD Integration modules are part of our GEL solution. The goal of GEL is to provide the glue between voice and your business critical applications. ************************************************************************ VoiceRD Integration modules are part of our GEL solution. The goal of GEL is to provide the glue between voice and your business critical applications. VoiceRD / Asterisk Integration for SugarCRM ------------------------------------------------------------ HISTORY ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: The Asterisk VoiceRD Integration patch for SugarCRM comes in 2 flavors. OpenSource (OS) and Professional (PRO), not to be confused with the flavors of SugarCRM. Once the patch is installed, it will generate links or icons (Optional Configuration Setting) for phone numbers in the Accounts, Contacts, and Leads module. When clicked, the Asterisk/VoiceRD Server will proceed to ring the SugarCRM users' VOIP phone, after the user picks up his phone, the Asterisk/VoiceRD server will then go ahead and dial the number which was clicked. The OS Version of the patch allows for simplistic click to call capabilities. The PRO version allows for many more features through the use of a popup. In the popup you can quickly create a note, a task, or schedule a future meeting or call. You also get more details about the caller listed on the popup itself. An easy click button that can be used to generate a call log for the current call and a button to begin recording the call. INSTALLATION ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 1. Acquire the latest release of the Asterisk VoiceRD Integration zip file. Free version can be downloaded from (http://www.sugarforge.org/frs/?group_id=204). Professional Version can be found (http://www.voicerd.com/VoiceRD_purchase.php) 2. Log into your sugarcrm instance using a priveldged user account like admin. 3. Select the "Admin" link at the top right of the web browser. 4. Select the "Upgrade Wizard" link whithin the "System" grouping. 5. Follow the on screen prompts and provide the zip file when asked. ADMIN CONFIGURATION ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: Admin configuration consists of some system settings information being provided to the SugarCRM instance so that connection can be established to the Asterisk/VoiceRD server. ADMIN CONFIGURATION - ASTERISK ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 1. Edit "/etc/asterisk/manager.conf" on the Asterisk/VoiceRD server as follows: [general] enabled = yes port = 5038 bindaddr = 0.0.0.0 ; Each user has a section labeled with the username ; so this is the section for the user named "sugaruser" [sugaruser] secret = secretpass deny=0.0.0.0/0.0.0.0 permit=192.168.0.1/255.255.255.0 permit=127.0.0.1/255.255.255.0 read = system,call,log,verbose,command,agent,user write = system,call,log,verbose,command,agent,user 2. Make sure the IP of the system that the SugarCRM integration module is running on is correctly set in a "permit=" line. 3. For more information on configuring the manager.conf in Asterisk/VoiceRD, please visit: (http://www.voip-info.org/tiki-index.php?page=Asterisk%20config%20manager.conf) ADMIN CONFIGURATION - SUGARCRM ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 1. Log into your SugarCRM instance using a priveldged user account like admin. 2. Select the "Admin" link at the top right of the web browser. 3. Select the "System Settings" link whithin the "System" grouping. 4. Scroll until you find the Asterisk/VoiceRD configuration section that was just added by the patch. 5. Check the box to enable Asterisk/VoiceRD integration. 6. Check the box to enable Asterisk/VoiceRD Pro Version NOTE: If you do not have the PRO version of the Asterisk/VoiceRD Patch, checking this box will display a link of where the PRO version can be acquired. NOTE: Asterisk Auto Pickup feature requires that you have phones Polycom phones configured with the VoiceRD web console. 7. Fill in the rest of configuration values as they pertain to your instance of Asterisk/VoiceRD 8. Click the "Save" button at either the top of bottom of the page to save your settings. USER CONFIGURATION ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: In order for a given user to use the Asterisk/VoiceRD click to dial capability, they must complete their own configuration 1. Log into your SugarCRM instance using your own user account. 2. Select the "My Account" link at the top right of the web browser. 3. Choose "Edit" to change your personal information.: 5. If configured by the administrator, check the "Asterisk Auto Pickup" box to enable your phone to automatically pickup a call from the Asterisk/VoiceRD Server. 4. Fill in the "Asterisk Phone Extension" with your phone extension. NOTE: Valid extension formats include: 5820 (392) 283-2834. SIP/3923 or IAX/3923 (or any other technology).
5. Click the "Save" button at either the top or bottom of the page to save your personal settings. ************************************************************************ HOWTOs Tips, tricks & features for your VoiceRD system. ************************************************************************ Auto Pickup ------------------------------------------------------------ Auto Pickup With Polycom phones ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: Some phones allow for automatic pickup by setting a configuration preference on your phone. For example, with the pro version of X-Lite from CounterPath, you can configure the phone to do automatic pickup for all incoming lines. The Polycom phones allow for a little more flexibility in determining which call should be set to auto pickup. What to Dial ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: In VoiceRD, dialing *3XXXX, will attempt to auto pickup any SIP device that is configured as a line on a Polycom, assuming that the polycom is configured properly, we'll get to that next. Since it is difficult to dial letters on a phone, make sure that the XXXX in *3XXXX are numbers not letters(e,g,. configure a SIP device/line named 1234 and dial *31234). The dialplan ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: This will call the app-intercom in the dialplan we run this command: SIPAddHeader(Alert-Info: Ring Answer) If you are trying to do this with a phone other than Polycom, you may want to add: ChanIsAvail(...) with the appropriate logic to make sure we don't barge into an existing phonecall. Creating the Polycom configuration files ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: Now, make a copy of the /tftpboot/sip.cfg file(for the Polycom, not to be confused with sip.conf for asterisk) and name it something appropriately like: sip-autopickup.cfg. Make the appropriate modifications: the alertInfo.1.class matches the number in the ringType section: if it is set to 4, that refers to the RING_ANSWER ringType. Configuring the Polycom phone in the Web interface ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: Go to the Configuration tab and navigate to User -> Phones page. Create a new phone and make sure to set the "Default Configuration File" to: sip-autopickup.cfg or whatever you named your modified sip.cfg file. Also, don't forget to add the line you configured under the User -> lines section. Call Waiting ------------------------------------------------------------ Set the call-limit on the device/line to 0 to enable call waiting and 1 to disable it. In /var/lib/asterisk/agi-bin/dialparties.agi you can set if you want to check for availability of the devices. This is accomplished through the hint in the dialplan. If the device/line is not available and the VoiceRDDeviceCW attribute on the users primary device(the primary device is the device that has as its name the same digits as the extension of the user) is set to ENABLED, asterisk will pass the call through. Tip: To pass all calls through without checking for CW edit the is_ext_avail() function to always return -1. Hints ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: To see the hints and the status, go into the CLI (by typing "asterisk -r" on the commandline) end enter the command: core show hints A hint is much like an extension in the dialplan that tells you the status of a number of devices. Although the devices are lumped together with & (i.e., and), they are actually compared with "or" logic. IMPORTANT: If you create a line and add a default user. The hint for the extension of that user is not created until you edit that user and save your changes. Also, since hints are static parts of the dialplan, it is necessary to reload the dialplan for it to take effect. Polycom ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: For polycom phones you may need to set "Calls per LineKey" to something other than 1. Faxing ------------------------------------------------------------ Faxing with Hylafax & IAXModem ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: Faxing over VOIP is a big problem. If you want to know why, go here: http://www.voip-info.org/wiki-Asterisk+fax One way to overcome potential problems is by using a combination of Hylafax ( http://www.hylafax.org ) and IAXmodem ( https://sourceforge.net/projects/iaxmodem ). In short, you let your existing fax machine do outbound faxing, which tends to be more reliable than answering faxes over VOIP, and let asterisk/IAXmodem/hylafax answer faxes. This guide assumes that you have an existing fax machine. Install IAXmodem ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: The procedure is as follows: Install dependencies: tiff libtiff libtiff-devel libjpeg libjpeg-devel mgetty g3utils Download, compile, & install IAXmodem: https://sourceforge.net/projects/iaxmodem tar zxvf iaxmodem-*.*.*.tar.gz cd iaxmodem-*.*.* ./configure ./build static cp iaxmodem /usr/bin/ cd lib/spandsp ./configure make make install mkdir /etc/iaxmodem cd /etc/iaxmodem/ edit iaxmodem-cfg.ttyIAX (from iaxmodem source tarball) peername user# password userpassword cp iaxmodem-cfg.ttyIAX /etc/iaxmodem/ttyIAX Start iaxmodem iaxmode ttyAIX Install Hylafax ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: rpm -Uhv hylafax.rpm Setup hylafax faxsetup Defaults are OK Area Code ? Serial port that modem is connected to ? ttyIAX Add an IAX user via the VoiceRD web interface using the same login info provided in /etc/iaxmodem/ttyIAX Make sure youre extconfig.conf file points the iaxpeers and iaxusers to ldap, and that the IAX ldap object has the correct settings. This was broken in some earlier releases. Start the hylafax service /usr/sbin/hylafax start Start the iaxmodem service /usr/local/bin/iaxmodem ttyIAX) Try to fax the new iaxmodem extension and see if it answers. If it works, you'll have a tiff file in /var/spool/hylafax/recvq Change the Incoming Route to go to the new IAXmodem extension Make sure that you put both Hylafax and IAXmodem in /etc/inittab so that they start on boot. edit /etc/inittab mo:35:respawn:/usr/sbin/faxgetty /dev/ttyIAX IAX:2345:respawn:/usr/local/bin/iaxmodem ttyIAX Making hylafax do something ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: Note: In addition to saving the faxes as tiff files hylafax is typically used for other options. Use the following guides for additonal options: http://www.hylafax.org/content/How-To We recommend your existing fax machine set up to default cups printer and add this bit to the end of the /var/spool/hylafax/bin/faxrcvd file: if [ -n "$SENDTO" ]; then echo "" echo "The facsimile was automatically dispatched to: $SENDTO." else /usr/bin/fax2ps $FILE | lpr fi Good luck! Presence-Buddy Watch ------------------------------------------------------------ Presence awareness(a.k.a., buddy watch) is configurable through the HINT extensions in the dialplan(see Call Waiting#Hints) User/Phone Configuration of phone to be monitored ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: Configure the user with a primary device/line named the same as the extension of the user. Make sure this device/line is configured as the first line on the Polycom. It is important that it is configured as the first line because of how the Polycoms report availability. Polycom configuration ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: On the phone that will monitor the availability of a user you will need to add a directory entry under the phone configuration page on the web interface. The CONTACT parameter must match the extension of the phone you wish to monitor and the WATCH BUDDY parameter must be set to "enabled". Note: Older versions of the Polycom firmware(1.5.2) would sometimes forget the status of a buddy. Also, before firmware 1.6.6 the 601 had a limit of 8 watchable buddies(now changed to 48). Note: Remember to enable presence in the sip.cfg file associated with the phone. Rename an eDir Tree ------------------------------------------------------------ To rename an eDir tree the following command will work ndsmerge -r NEWTREE OLDTREE Renaming the tree will likely break the Web Console, so be sure to modify the files below to reflect the new tree name: /etc/asterisk/res_ldap.conf /etc/asterisk/ldap.conf /etc/astersik/ldap_php.conf /srv/www/htdocs/voicerd/includes/config.php Three Way Conference ------------------------------------------------------------ Call-limit set to 0, 2 or greater than 2. This will allow three way conferencing. Note: This will show the line as idle even if the person is one the phone Presence and (Call-waiting or Three way conferencing) are mutually exclusive Note: To enable presence call-limit must be set to 1. Note: This may have changed with newer versions of asterisk. -- Please update Wildfire setup ------------------------------------------------------------ Wildfire Installation and setup to work with inbound dialer popup ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: Requirements: * VoiceRD Pro -- sorry, not released for open source * Need Java 1.5 or higher installed. Visit http://java.sun.com/javase/downloads/index_jdk5.jsp to get the correct version of java 1) Install Wildfire: Linux: - Install the Wildfire rpm rpm -Uvh wildfire-3.0.0-1.i586.rpm - set java environment variable JAVA_HOME ex: add the line export JAVA_HOME=/usr/java/jre1.5.0_11 to the /opt/wildfire/bin/wildfire file right after the line that says "#!/bin/sh". NOTE: JAVA_HOME should be set according to where java is installed on your system. - start wildfire by running the /etc/init.d/wildfired script Windows -unzip wildfire-3.0.0.zip in C:\Program Files - start wildfire by cd-ing to the wildfire bin directory and run wildfire.bat 2) Wildfire Setup Once Wildfire has been started, open up your browser to http://:9090 or https://:9091 I) Select language of choice then click 'Continue' II) Use default Server Settings then click 'Continue' III) Select 'Standard Database Connection' or 'Embedded Database' connection then click 'Continue' Ex: to set up a 'Standard Database' connection, such as a mysql database, instead of using the wildfire 'Embedded Database' : a) first start your mysql service (assumming you have it installed somewhere) b) create a database (ex: CREATE DATABASE wildfire;) c) create database user and password and grant access (ex: GRANT ALL ON wildfire.* TO 'somename'@'someIP' IDENTIFIED BY 'somepassword'; ) IV) Use username, password, IP, and database name from number (III) to fill in the 'Database Settings' form. - 'Database Driver Presets' should be 'MySQL' in our case - use default driver for 'JDBC Driver Class' - fill in 'Database URL' accordingly - fill in username and password accordingly - use default settings for everything else and click 'Continue' once done filling out the form V) - enter email address for wildfire admin user - set password for admin user VI) - click on link provided to log in to Wildfire Administration Console. - admin username should be 'admin' and the password should be the one provided from step (V) above. VII) Once logged in as admin user, - click on the 'Asterisk-IM' tab, which will take you to the asterisk-im 'General Settings' - enable asterisk-im by selecting the appropriate radio button then click on the 'save' button near bottom of page VIII) - click the 'Add Server' link to create a phone server - fill in server information then click the 'Create Server' button - you should see a 'Server Created Successfully' message and the server added to the table IX) - add a user by clicking on the 'Users/Groups' tab - fill in user information then click 'Create User' X) - click on the 'Asterisk-IM' tab and select 'Phone Mappings' from the menu on the left - the username should be the user created from step (IX) - device should be something like "SIP/1234" - extension should be something like "1234" - caller ID can be something like "1234" - click 'Add' button to add phone mapping XI) - click on 'Asterisk-IM' tab and select 'Sugar Settings' from the menu on the left - fill in sugar server information (assumming you have Sugar installed and setup) - click on 'Set' button - you should see the message 'Sugar information successfully set.' DTMF ------------------------------------------------------------ Overview ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: Dual-tone multi-frequency (DTMF) signaling is used for telephone signaling over a line for the voice-frequency band to the call switching center. The version of DTMF used for telephone tone dialing is known by the trademarked term Touch-Tone, and is standardized by ITU-T Recommendation Q.23. Other multi-frequency systems are used for signaling internal to the telephone network. [[1]] SIP DMTF signaling is done with INFO messages or with RTP messages, the media protocol. This is defined here: http://www.ietf.org/rfc/rfc2833.txt More information on the DTMF types in Asterisk can be found here: http://www.voip-info.org/wiki/view/Asterisk+sip+dtmfmode Inband DTMF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: We have discovered that some SIP providers do not support either rfc2833 or SIP INFO messages (they only send the audio). In this case, the only solution is to use inband DTMF signaling. The only drawback to this solution is that you must use ulaw or alaw for your voice codec. If you try to use another codec, the compression can cause the tones to be unrecognizable. (Pictured - Diagram) In the diagram above, you can see that the VoiceRD PBX is able to accept all types of incoming DTMF signals from the phone. VoiceRD then sends the DTMF signals out to our SIP provider via inband DTMF; this assumes that the SIP provider is setup as a Device in the VoiceRD system. The DTMF type is on a per-device basis. You can change the DTMF type for each device on the Device Settings page of the VoiceRD web console. IMPORTANT NOTE: You MUST use alaw or ulaw for your codec or inband DTMF will fail. See image for an example: (Pictured - Screenshot) Setting DTMF and Codecs for our Device Asterisk DTMF and Telasip ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: Telasip is a SIP provider. http://www.telasip.com/ This is how you can configure VoiceRD to correctly handle DTMF when using Telasip as a SIP provider. The context you send your SIP user to, must start with the following line: exten => _X.,1,SIPDtmfMode(rfc2833) This will force incoming calls using the Telasip trunk to use the rfc2833 DTMF protocol. Outgoing calls will use inband DTMF (see image and instructions in the section above). This setup provides the best compatibility with older traditional phone systems. Reload Zaptel ------------------------------------------------------------ If your T1 connection to the VoiceRD server fails and wont automatically reconnect, this is how you can reload Zaptel to fix it. Login to VoiceRD and start the Asterisk CLI Console asterisk -r Check zap status voicerd*CLI> zap show status Description Alarms IRQ bpviol CRC4 T4XXP (PCI) Card 0 Span 1 NOP 0 0 0 T4XXP (PCI) Card 0 Span 2 NOP 0 0 0 T4XXP (PCI) Card 0 Span 3 NOP 0 0 0 T4XXP (PCI) Card 0 Span 4 NOP 0 0 0 "NOP" is bad, our spans are not operational. To fix "NOP" exit the VoiceRD Asterisk CLI exit Run ztcfg ztcfg -vv To check if it reloaded properly, login to then VoiceRD Asterisk CLI: asterisk -r Check zap status. voicerd*CLI> zap show status Description Alarms IRQ bpviol CRC4 T4XXP (PCI) Card 0 Span 1 OK 0 0 0 T4XXP (PCI) Card 0 Span 2 OK 0 0 0 T4XXP (PCI) Card 0 Span 3 OK 0 0 0 T4XXP (PCI) Card 0 Span 4 OK 0 0 0 "OK" is good, our spans are operational. Test by making an outgoing or incoming call that uses a Zaptel trunk More trouble shooting ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: With T1 lines you can also run a check on the pri settings. voicerd*CLI> pri show spans PRI span 1/0: Provisioned, Up, Active PRI span 2/0: Provisioned, Up, Active PRI span 3/0: Provisioned, Up, Active PRI span 4/0: Provisioned, Up, Active The above status is good. If you are having serious hardware problems it may be necessary to shutdown asterisk and reload the modules voicerd:~ # asterisk -r voicerd*CLI> stop now voicerd:~ # lsmod | grep zaptel zaptel 184612 204 zttranscode,wct4xxp crc_ccitt 6144 1 zaptel voicerd:~ # modprobe -r wct4xxp voicerd:~ # modprobe -r zttranscode voicerd:~ # modprobe -r zaptel voicerd:~ # modprobe wct4xxp voicerd:~ # ztcfg -vv voicerd:~ # asterisk Enable Custom Container and extensions-custom.conf ------------------------------------------------------------ Purpose of this HOWTO: Add a custom container to the LDAP tree, which allows a VoiceRD administrator to make changes to individual steps in the dialplan. We will also include a flat config file "extensions-custom.conf" that can be used to make direct additions and modifications to the dialplan. Here is the LDIF which creates the objects: dn: ou=custom,ou=extensionsConf,ou=Conf,o=voicerd changetype: add objectclass: top objectclass: organizationalUnit ou: custom dn: cn=extensions-customConf,ou=custom,ou=extensionsConf,ou=Conf,o=voicerd changetype: add oxyPBXConfigVariableMetric: 3 oxyPBXConfigCategoryMetric: 1 oxyPBXConfigCategory: dummy oxyPBXConfigFilename: extensions.conf oxyPBXConfigVariableValue: extensions-custom.conf oxyPBXConfigVariableName: #include oxyPBXConfigCommented: FALSE objectClass: oxyPBXConfig objectClass: Top cn: extensions-customConf dn: cn=extensions-customConf-context,ou=custom,ou=extensionsConf,ou=Conf,o=voicerd changetype: add oxyPBXConfigVariableMetric: 1 oxyPBXConfigCategoryMetric: 1 oxyPBXConfigCategory: dummy oxyPBXConfigFilename: extensions.conf oxyPBXConfigVariableValue: _X.,1,Macro(hangupcall) oxyPBXConfigVariableName: exten oxyPBXConfigCommented: FALSE objectClass: oxyPBXConfig objectClass: Top cn: extensions-customConf-context Instructions for importing a LDIF: ice -S LDIF -f ext-custom.ldif -D LDAP -s server1.acme.com -p 389 -d cn=vrdadmin,o=voicerd -w secret Digium Hardware Configuration ------------------------------------------------------------ This page will show some example setups for different hardware. For complete documentation, we recommend the following resources: http://www.voip-info.org/wiki-Asterisk+config+zaptel.conf http://www.voip-info.org/wiki-Asterisk+config+zapata.conf http://www.digium.com/en/supportcenter/ - For card specific setup instructions. Example Setups ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: TDM400p (Analog card with 4 FXO modules) The Wildcard TDM400P is a half-length PCI 2.2-compliant card that supports FXS and FXO station interfaces for connecting analog telephones and analog POTS lines through a PC. http://www.digium.com/en/products/analog/tdm400p.php The TDM400P uses the wctdm module. Add this line to your /etc/init.d/boot.local so the module loads on boot. modprobe wctdm Example 1 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: In this example, our TDM400P has 4 FXO modules. /etc/zaptel.conf defaultzone=us loadzone=us fxsks=1,2,3,4 /etc/asterisk/zapata.conf [channels] usecallerid=yes usecallingpres=yes hidecallerid=no callwaiting=yes threewaycalling=yes transfer=yes echocancel=yes echocancelwhenbridged=yes rxgain=0.0 txgain=0.0 Group=0 signalling=fxs_ks context=from-fxo channel=1,2,3,4 /etc/asterisk/extensions-custom.conf (Must be enabled, see Enable_Custom_Container_and_extensions-custom.conf) [from-fxo] exten => s,1,Goto(aa_TestAA,s,1) In the above setup, we create a context in zapata.conf "from-fxo" that all of the incoming channels will use. We then create a custom extension that takes us to an Auto Attendant. Example 2 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: In this example, our TDM400P has 4 FXO modules. /etc/zaptel.conf defaultzone=us loadzone=us fxsks=1,2,3,4 /etc/asterisk/zapata.conf [channels] ##### Add your custom stuff below this line ###### usecallerid=yes usecallingpres=yes hidecallerid=no callwaiting=yes threewaycalling=yes transfer=yes echocancel=yes echocancelwhenbridged=yes rxgain=2.0 txgain=2.0 Group=0 signalling=fxs_ks context=from-fxo1 channel=1 context=from-fxo2 channel=2 context=from-fxo3 channel=3 context=from-fxo4 channel=4 /etc/asterisk/extensions-custom.conf (Must be enabled, see Enable_Custom_Container_and_extensions-custom.conf) [from-fxo1] exten => s,1,Goto(ext-group|4500|1) [from-fxo2] exten => s,1,Goto(ext-local|2500|1) [from-fxo3] exten => s,1,Goto(ext-local|1000|1) [from-fxo4] exten => s,1,Goto(aa_TestAA,s,1) In this setup, we have separated the channels into individual contexts, and send them to various extensions, ring-groups, and an AutoAttendant. Outbound dialing ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: Create a trunk of type "ZAP" in "Call Management -> Routing -> Trunks" on the VoiceRD web console. Maximum Channels should be set to "4" because we have four FXO modules. Add custom dial patterns as needed. For the "ZAP ID" we will set it to G0 or g0 (uppercase G uses channels in descending order, lowercase g ascending). Create an outbound route in "Call Management -> Routing -> Outbound" Select the Trunk that we created in the previous step and save. ************************************************************************ Support FAQ ************************************************************************ Q: Where do I post problems with the Open Source installation? A: Try our forums. Q: Why is it called VoiceRD? A: The Voice part should be obvious. RD is short for Rapid Deployment and is a reference to the methodology that is used for VoiceRD installs in enterprise environments. Q: Can I use OpenLDAP or Open Directory instead of eDirectory? A: Yes! See the forum thread here: http://forums.voicerd.org/viewtopic.php?t=90 (Attach Page Here) Q: What about MS Active Directory? A: Not a recommended implementation since Active Directory is not completely LDAP compliant; however, if you want to provision users in VoiceRD as they are created in Active Directory this can be accomplished with an Identity Management Solution (e.g., Novell's Identity Manager ) Q: What hardware is compatible with VoiceRD Pro? A: Check here: Hardware Certification List