Configuring Sangoma's NetBorder CPA(Call Progress Analysis, aka ParaXip) to work with VICIDIAL.

NOTE: Sangoma's CPD/CPA/Lyra product went end-of-life July 2017 and is no longer available for purchase

This walk through assumes the following things:
- That you have a working installation of Vicidial that is able to place outbound calls. VICIbox Server (www.vicibox.com) will set this up for you.
- That you have the asterisk source code on the VICIDIAL server. VICIbox server installs Asterisk from source so it will meet this requirement.
- That you have a SIP Carrier that does not use an outbound proxy and is setup to use host based authentication.
- That you have used the Carrier configuration section of VICIDIAL to setup your SIP Carrier.
- That you have at least one phone setup on the VICIDIAL system and you are able to place outbound phone calls from this phone to your SIP Carrier.
- That you have a Windows system already setup. According to the NetBorder documentation, NetBorder works with Windows XP, Windows 2003 Server, or Windows Vista. We highly recommend installing it on Windows 2003 Server. It is possible, though not confirmed, that it will work on Windows Server 2008.
- The Windows system is able to ping your carrier and its firewall is configured to allow traffic on the following ports UDP 5060 to 5069 and 10000 to 20000 and TCP 5060 to 5069.

Section 1. NetBorder Installation.

Step 1. On the Windows system go to www.sangoma.com.
Step 2. Go to "Products and Solutions" -> "Software Building Blocks" -> "NetBorder(TM) Suite for Contact Centers" and click on "Call Analyzer Call Progress Analysis"
Step 3. Click on the "Try It Now!" tab.
Step 4. Click on the "Download now" button.
Step 5. Fill out the form and click the "Submit" button. 
Step 6. The download should start. If not click the link to begin the download.
Step 7. Once the download is complete, unzip the file to the Desktop.
Step 8. Open the extracted directory.
Step 9. Run the ParaxipNetBorderSetup.VERSION.exe file.
Step 10. Read the License Agreement and then click "I Agree" (unless you don't. Then you should probably exit).
Step 11. Where it says "Call Progress Analysis Service" click the check box that is appropriate for your area of the world. For North America you would check the "North American models". Then click "Next". 
Step 12. Next you will be prompted on where you want to install NetBorder. Change this if you like, then click "Install".
Step 13. During the install process, Windows may ask you if you want to unblock certain ports. If it does it means that the firewall is not properly configured. It needs to allow traffic on the following ports UDP 5060 to 5069, UDP 10000 to 20000, and TCP 5060 to 5069.
Step 14. Once the installer is complete click the "Close" button.


Section 2. Initial NetBorder Configuration

Step 1. In the Windows Start menu click find the Paraxip NetBorder section and click on the "Start Session Controller" short cut.
Step 2. Go to the Windows Control Panel and double click on "Administrative Tools".
Step 3. Double click on Services.
Step 4. Scroll down to the Paraxip services and verify that the "Paraxip NetBorder Session Controller" and "Paraxip NetBorder Call Progress Analysis" services are both started. If they have not you will need to contact Sangoma's technical support staff.
Step 5. To start these services automatically when Windows starts right click each of them and click on Properties. Then change the Startup Type from Manual to Automatic.
Step 6. Reboot the windows system to verify that these services start on boot up.
Step 7. Once the windows system is back up, log in and go back to Services in the Administrative Tools (see step 16).
Step 8. Scroll back down to the Paraxip Section and verify that the "Paraxip NetBorder Session Controller" and "Paraxip NetBorder Call Progress Analysis" services started on their own. If not, this might be caused by issues with your version of Windows. Contact Sangoma technical support for more details.
Step 9. Open up My Computer and browser to the directory where you installed Paraxip. The default should be "C:\Program Files\Paraxip NetBorder\".
Step 10. Open the "config" directory.
Step 11. Right click the "sip-hub.properties" file and click Open.
Step 12. Choose "Select the program from a list" and click OK.
Step 13. Choose "WordPad" from the available programs and click OK.
Step 14. Change the line that reads "paraxip.sip.userAgent.IPAddress=INADDER_ANY:5062/udp" to "paraxip.sip.userAgent.IPAddress=INADDER_ANY:5060/udp".
Step 15. Change the line that reads "#paraxip.net.primaryIPAddress=x.x.x.x" to "paraxip.net.primaryIPAddress=IPADRESS" where IPADDRESS is the IP address of the windows system. If you have two IP addresses change this to the one where paraxip will be accepting the connections from the VICIDIAL system (usually the internal IP).
Step 16. Go back to the NetBorder config directory and double click the cpa_media_uas.properties file (note windows may now be hiding the ".properties" at the end of the filename).
Step 17. Change the line that reads "#paraxip.net.primaryIPAddress=x.x.x.x" to "paraxip.net.primaryIPAddress=IPADRESS" where IPADDRESS is the IP address of the windows system just like you did in the sip-hub.properties file.


Section 2. Patching and recompiling Asterisk.

Step 1. On the Linux console of your VICIDIAL system change to the Asterisk source code directory (on a VICIbox Server installation this is located at /usr/src/asterisk-1.2.30.4). The command to do so will look something like this "cd /usr/src/asterisk-1.2.30.4".
Step 2. Copy the version (1.2 or 1.4) of the paraxip patch that matches the version of Asterisk which is installed on your VICIDIAL system from the extras directory of the VICIDIAL source code (on a VICIbox Server installation this is the 1.2 version and it is located in the /usr/src/astguiclient/extras/ directory) to the asterisk source code directory. The command to do so will look something like this "cp /usr/src/astguiclient/extras/vicidial_paraxip_chan_sip-1.2.patch ." Adjust this command according to the location of your VICIDIAL source code and the version of asterisk that you are using(new version for Asterisk 1.4: netborder-cpd-1.4.patch).
Step 3. Patch the chan_sip.c file in the channels directory. The command to do so will look something like this "patch channels/chan_sip.c -p1 < vicidial_paraxip_chan_sip-1.2.patch". If you are using 1.4 asterisk be sure to adjust this command accordingly.
Step 4. Now it is time to recompile asterisk. If you are using 1.2 Asterisk the command to do so is this "make clean && make all && make install". If you are using 1.4 asterisk the command to do so is this "./configure && make clean && make all && make install". This process will take some time. What ever you do, do NOT run "make samples" as this will wipe out your existing asterisk configurations.


Section 3. Configuring your Carrier in VICIDIAL.

Step 1. Log into the VICIDIAL admin page and go to the Admin -> Carriers section.
Step 2. Click on the MODIFY link for your Carrier on the right hand side.
Step 3. In the "Account Entry" section add the following:
	outboundproxy=NETBORDERIP
	port=5060
Where NETBORDERIP is the ip address of the Windows system that you are running NetBorder on. If "outboundproxy" is already set for your carrier it may not be possible to use NetBorder with them.


Section 4. Testing.

Step 1. On the Linux console of your VICIDIAL system enter the Asterisk CLI by typing "asterisk -r".
Step 2. Using the phone that you have already configured to use with Vicidial try placing several test calls.
Step 3. If everything is configured correctly your call should go out to your carrier and connect. If not it is either a problem with your VICIDIAL carrier configuration, the patching of Asterisk, or with the Configuration of NetBorder.
Step 4. If step 3 worked correctly, you should now be able to set the "CPD AMD Action" in your campaigns. The process of which is explained in the VICIDIAL Managers Manual available from eflo.net.


Section 6. Final NetBorder Configuration.

Once you have successfully placed some test calls through ParaXip you should turn down the level of logging that NetBorder is performing. This will increase the number of calls NetBorder is able to handle.

Step 1. Go to NetBorder config directory and open the sip-hub.properties file.
Step 2. Find the line that reads "log4cplus.rootLogger=WARN, NTEVENTLOG, DEVUG_APPENDER, CALL_LOG_APPENDER" to "log4cplus.rootLogger=WARN, NTEVENTLOG".
Step 3. Find the line that reads "log4cplus.appender.NTEVENTLOG.filters.1.LogLevelMin=WARN" to "log4cplus.appender.NTEVENTLOG.filters.1.LogLevelMin=ERROR".
Step 4. Go to NetBorder config directory and open the cpa_media_uas.properties file.
Step 5. Find the line that reads "log4cplus.rootLogger=WARN, NTEVENTLOG, DEVUG_APPENDER, CALL_LOG_APPENDER" to "log4cplus.rootLogger=WARN, NTEVENTLOG".
Step 6. Find the line that reads "log4cplus.appender.NTEVENTLOG.filters.1.LogLevelMin=WARN" to "log4cplus.appender.NTEVENTLOG.filters.1.LogLevelMin=ERROR".
Step 7. Click the windows Start menu and go to the Paraxip NetBorder section and click the "Stop Session Controller" shortcut.
Step 8. Got back to the Paraxip NetBorder section of the Start menu and click the "Start Session Controller" shortcut.


Congratulations! The free trial of NetBorder CPA Analysis and Vicidial are now successfully integrated. The free trial has a limit of 30 concurrent channels. If you try and dial more than this your calls will fail. Also keep an eye on the CPU load on the windows system. If the load gets higher than 60% Paraxip will not be able to react in time. You might get choppy audio or a higher rate of false positives or false negatives.





VICIDIAL Additional statuses for pre-Answer results:

***** SEE extras/cpd_statuses.sql SQL FILE FOR THE INSERTS OF THE CPD STATUSES *****

\. /usr/src/astguiclient/trunk/extras/cpd_statuses.sql




Marketing Description of the Sangoma Netborder Call Analyzer:

Call Progress Analysis is the process of detecting pre-connect information about failed outbound call attempts and the destination party’s media type for connected outbound calls.

Strictly speaking, Call Progress Analysis (CPA) is the automated determination by a piece of telecommunications equipment as to the result of dialing a number. For example, the result of the analysis might be a busy tone, an answered call, ringing at the other end but no answer after a preset number of rings or after a specified duration of time, and so on. The analysis involves detecting the various call progress tones generated by the telephone network as the call is put through.

Traditional Call Progress Analysis implementations rely on simple rule-based algorithms, which provide sub-optimal accuracy of speed of processing, leading to significant inefficiencies in operations. In a number of real-life campaigns, dialing applications often reach their target in less than 30% of the call attempts.

Call Analyzer's Call Progress Analysis engine is patent-pending technology that is built on statistical models that represent the potential outcomes of call attempts. The result is a virtual machine that learns the patterns of what constitutes a call attempt that result in a voice mail versus a live human versus a special intercept tone, etc. The Call Analyzer functions much like the human brain and is able to adapt to a wide variety of noise conditions, ringing patterns and telecom network conditions.

Sangoma has run its own internal benchmarking of various technologies, out of the box, without tuning; using a database of live recordings of approximately 5000 calls. Sangoma provides 15% increase in accuracy over competing technologies. While this does not constitute a guarantee, live deployments should experience similar results and performance over a statistically significant sample of calls.

Features:
    * Best-in-industry accuracy and response time
      With patent-pending algorithms, NetBorder Call Analyzer delivers the highest accuracy and fastest call delivery rates available for automated calling applications.
    * Optimized Detection
          o Configurable pre-connect tone detection
          o Post-connect analysis
          o End of Greeting
    * Resilient against different calling conditions
      Statistical models used by NetBorder Call Analyzer are robust, regardless of background noise and network conditions.
    * Integrate via Standards-Based SIP
      No proprietary Application Programming Interfaces. Support for both PSTN and VoIP networks.
    * Operate in a dynamic environment
      Call progress confidence measures enable the system to adapt according to contact center operating conditions.
    * Streamlined tuning process The statistical approach eliminates the need for long and frequent tuning cycles of the call progress parameters.

