openanswer · openanswer user guide for it administrators / installers / maintainers final v022616...
TRANSCRIPT
OpenAnswer User Guide for IT ADMINISTRATORS / INSTALLERS / MAINTAINERS
Final v022616 2
OpenAnswer User Guide for IT & System Administrators / Installers / Maintainers
Version 1.2
Copyright © 2016 VoiceNation, LLC. All Rights Reserved.
The information in this document is furnished for informational use only and is subject to change
without notice. This documentation may NOT be copied, reused, distributed, or modified without prior
written consent of the copyright holder. Contact VoiceNation, LLC, 5089 Bristol Industrial Way, Suite B,
Buford, GA 30518, 866-766-5050 for further information.
VOICENATION, LLC ASSUMES NO RESPONSIBILITY OR LIABILITY FOR ANY ERRORS, OMISSIONS, OR
INACCURACIES THAT MAY APPEAR IN THIS DOCUMENT AND MAKES NO WARRANTY OF ANY KIND
WITH RESPECT TO THIS PUBLICATION. IN NO EVENT SHALL VOICENATION, LLC BE LIABLE TO ANY
PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST
PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
VOICENATION, LLC HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
VOICENATION, LLC EXPRESSLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE
SOFTWARE AND ACCOMPANYING DOCUMENTATION, IF ANY, PROVIDED HEREUNDER IS PROVIDED "AS
IS". VOICENATION, LLC HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES,
ENHANCEMENTS, OR MODIFICATIONS.
Other product and company names mentioned in this Guide may be the trademarks of their respective
owners. We use trademark names in an editorial fashion to the benefit of the trademark holder;
therefore, these names are not marked with trademark symbols. We cannot attest to the accuracy of
this usage, and usage of a term in this Guide should not be regarded as affecting the validity of any
trademark or service mark.
OpenAnswer User Guide for IT ADMINISTRATORS / INSTALLERS / MAINTAINERS
Final v022616 3
TABLE OF CONTENTS
1.0 What is OpenAnswer? – Introduction ............................................................................................................. 5
1.1 Purpose and Advantages of Using OpenAnswer ............................................................................................... 5
1.2 Intended Audience................................................................................................................................................... 5
1.3 How to Use This Guide ........................................................................................................................................... 5
1.4 System Description and Key Features ................................................................................................................. 6
1.4.1 OpenAnswer ........................................................................................................................................................ 8
1.4.2 OpenConnector ................................................................................................................................................... 8
1.4.3 OpenQview ........................................................................................................................................................... 8
2.0 What Do I Need In Order to Use OpenAnswer? - System Requirements.................................................. 9
2.1 Overview ................................................................................................................................................................... 9
2.2 SIP Trunk Provider Requirements ...................................................................................................................... 11
2.3 Server Requirements ............................................................................................................................................ 11
2.3.1 Hardware Requirements .................................................................................................................................. 11
2.3.1.1 Expected Performance vs. Hardware .................................................................................................... 11
2.3.1.2 Minimum Requirements vs. Recommended Requirements ............................................................... 11
2.3.2 Operating System Requirements .................................................................................................................... 12
2.3.2.1 Supported Systems vs. Recommended Systems ............................................................................... 12
2.3.3 Additional Software Components ................................................................................................................... 12
2.3.4 Internet Connection & Supported Browsers .................................................................................................. 12
2.4 Agent Requirements ............................................................................................................................................. 13
2.4.1 Hardware Requirements .................................................................................................................................. 13
2.4.1.1 Workstation ................................................................................................................................................ 13
2.4.1.1.1 Web Browsers Supported .................................................................................................................. 13
2.4.1.1.2 Minimum Requirements vs. Recommended Requirements ......................................................... 13
2.4.1.2 Telephones ................................................................................................................................................ 13
2.4.1.2.1 SoftPhone ............................................................................................................................................. 13
2.4.1.2.2 Hard Phone .......................................................................................................................................... 14
2.4.1.2.3 Headsets .............................................................................................................................................. 14
3.0 What is the Recommended Installation Procedure? – Two Servers ....................................................... 15
3.1 Overview of What’s Needed ................................................................................................................................ 15
3.2 Supported Systems vs. Recommended Systems ............................................................................................ 15
3.3 Configure Server #1 – Install Asterisk + FreePBX ........................................................................................... 16
3.3.1 Operating System Installation from the Official Distribution Site ................................................................ 16
3.3.2 Configuration of Inbound Routes .................................................................................................................... 18
OpenAnswer User Guide for IT ADMINISTRATORS / INSTALLERS / MAINTAINERS
Final v022616 4
3.4 Configure Server #2 – Install OpenAnswer Suite ............................................................................................. 18
3.4.1 Preliminary Configurations ............................................................................................................................... 18
3.4.2 Dependency Installations ................................................................................................................................. 21
3.4.3 OpenAnswer Packages Installation ................................................................................................................ 24
3.4.4 Database and Webserver Configuration ........................................................................................................ 24
3.4.5 Installation and Configuration of OpenAnswer Component ........................................................................ 30
3.4.5.1 Download Source Code Files ................................................................................................................. 30
3.4.5.2 Finish Installation and Configuration of OpenAnswer Component ................................................... 30
3.4.6 Installation and Configuration of OpenConnector Component ................................................................... 32
3.4.7 Installation and Configuration of OpenQview Component (OPTIONAL) .................................................. 33
3.4.8 Add Cron Jobs to Set Up Other Task Executions ........................................................................................ 34
3.4.8.1 Timing Syntax ........................................................................................................................................... 35
3.4.8.2 Add Specific Cron Jobs ........................................................................................................................... 36
4.0 How Do I Install Everything on Just One Server? – Install Asterisk + FreePBX + OpenAnswer ........ 37
5.0 How Do I Fix This? – Common Errors and Troubleshooting Tips ........................................................... 47
6.0 Additional Support ........................................................................................................................................... 48
7.0 Documentation Feedback ............................................................................................................................... 49
8.0 Appendix ............................................................................................................................................................ 50
8.1 Asterisk Server Setup – Dialplan Example for OpenAnswer .......................................................................... 50
Index ................................................................................................................................................................................ 55
OpenAnswer User Guide for IT ADMINISTRATORS / INSTALLERS / MAINTAINERS
Final v022616 5
1.0 What is OpenAnswer? – Introduction
1.1 Purpose and Advantages of Using OpenAnswer
OpenAnswer is a dynamic, cross-platform application designed for inbound call centers
and telephone answering service providers. OpenAnswer is an open source software
package that extends the functionality of standard PBX systems (specifically Asterisk) for
call centers of all sizes. The application is primarily written in PHP and JavaScript and is
designed from the ground up to be easily customized.
OpenAnswer is built on the open source telephony software Asterisk and has been
carefully crafted to support busy call centers of all sizes. It is highly configurable and
built using the latest web development protocols including node.js, PHP and jQuery.
This means that your IT team can install and customize the software as needed on a
LAMP stack with no licensing hassles or contracts.
1.2 Intended Audience
This Guide is intended to be used by IT or System Administrators and others
experienced in working with server applications. This Guide should be used with the
OpenAnswer Open Source Telephone Answering Software to configure your
organization’s server to communicate with the OpenAnswer software applications.
Administrators should be familiar with the command line interface and should be
comfortable configuring ports and network traffic routing. Administrators should also
be comfortable working with the Linux operating system.
1.3 How to Use This Guide
This Guide serves as a reference manual for installing and configuring the OpenAnswer
Telephone Answering Software on your server. The recommended procedures listed
throughout this Guide are intended to help you easily and safely integrate all of the
necessary OpenAnswer components into your call center environment.
OpenAnswer User Guide for IT ADMINISTRATORS / INSTALLERS / MAINTAINERS
Final v022616 6
There are helpful notations and symbols incorporated throughout this Guide and are
annotated by the following:
This symbol indicates that a failure to follow the instructions provided could cause the system to fail or be unusable or could prevent your software from working properly.
Code
This formatting indicates the actual code that should be input for the installation or configuration steps described in this Guide. Such code will be highlighted with a gray background and in bold Courier font typeface.
This symbol indicates an example is illustrated for purposes of further explaining the concept or topic presented. The screen shot examples used throughout this Guide are for illustrative purposes only and should not be construed as actual client data.
This symbol indicates that there is a bit of additional detail to go along with the subject, topic or illustration listed.
This symbol indicates that there is another section in the Guide or an external resource that contains more information about the subject or topic listed.
This symbol indicates a useful idea or suggestion for improving your user experience.
1.4 System Description and Key Features
For years, the call center industry, and other businesses and organizations alike, have been held back and bound by a locked-in, rigid, very expensive call center solution mindset. This solution consisted of a business or organization needing to set-up a stationary workstation, phone, and computer for each call center agent that was needed in a sales, customer service, or hospitality environment. After spending hundreds of thousands of dollars on the call center setup itself, the business would then need to purchase software and licenses to be able to take, route, and process calls. This
CAUTION
EXAMPLE
NOTE
REFERENCE
TIP
OpenAnswer User Guide for IT ADMINISTRATORS / INSTALLERS / MAINTAINERS
Final v022616 7
could be close to $1,000 per seat. This does not include what might be spent on scaling and flexing the call center for growth, after-hours, additional advanced functions, etc. OpenAnswer is here to change this whole dynamic and turn the call center and answering service software industry upside down. OpenAnswer is the state of the art telephony solution that will make your call center manageable, flexible, and scalable for years to come. Starting with a selection of features that are well above what is currently availability in normal, basic call center software packages and what is considered market standard, we have built a software solution that is ready for a business to spin up and begin working in a shorter time frame and drastically lower cost, with a richer feature set out of the gate. OpenAnswer is a web-based open source platform with no contracts, intuitive administration, highly configurable, and a clean user interface. With the ease of setting up in-house or remote agents and the free Appointment setting feature, which is usually another cost on top of the extreme cost of an in-house answering service solution, you have to wonder why a business is not already using this comprehensive new solution. As you can see, the benefits of OpenAnswer are substantial and keep piling up. From extreme cost savings to growth solutions and scalability, to business sustainability, businesses everywhere and of every type can utilize this groundbreaking call center solution starting today. If you think it can’t get better than that, well it can. We have a Commercial OpenAnswer solution available that includes even more robust features as well as access to a certified OpenAnswer Tech Support agent. For more information on this solution please go to: www.voicenation.com/openanswer or call 1-866-766-5050, today. Whether you are a non-profit with a low budget, a startup company just getting your wheels turning, or a solid business that is growing by leaps and bounds, you can plainly see that the OpenAnswer call center software solution is what you need to be able to make your business or organization successful and reap the benefits of growth. If you are a non-profit, please consider reading our case study with GeorgiaCALLS, a non-profit Re-entry program located in Georgia that utilizes OpenAnswer for its call center. You will find the case study HERE. OpenAnswer is a browser-based call center software suite designed to interface with the Asterisk Open-Source PBX. When you install the OpenAnswer software suite, there are actually three different components that are installed:
OpenAnswer - call center browser application (CakePHP application).
OpenAnswer User Guide for IT ADMINISTRATORS / INSTALLERS / MAINTAINERS
Final v022616 8
NOTE
REFERENCE
OpenConnector – Node.js application running as a daemon that connects OpenAnswer and OpenQview clients to the Asterisk server.
OpenQview - real-time call center monitoring browser application (CakePHP application).
OpenQview is an OPTIONAL application and does not need to be installed in order for the call center software to work.
For a bit more information on OpenAnswer, OpenConnector or
OpenQview, please refer to the next sections.
1.4.1 OpenAnswer
OpenAnswer is the web-based user interface used by the agents. OpenAnswer
is freely available to download, install, and modify within the AGPL license
constraints. There are no licensing fees and call center owners get unlimited
seats and scalability in their call center. OpenAnswer is operating system-
independent and simply requires a properly configured Asterisk server and a
modern browser for the agent station.
1.4.2 OpenConnector
OpenConnector is the non-visible piece of the application that runs behind the
scenes. OpenConnector translates all of the communication between
OpenAnswer, OpenQview and the back-end applications (e.g., Asterisk call
manager).
1.4.3 OpenQview
OpenQview is the real-time dashboard for call center supervisors and managers.
Built-in reporting features in OpenQview analyze call flow and allows for real-
time call and queue monitoring.
OpenAnswer User Guide for IT ADMINISTRATORS / INSTALLERS / MAINTAINERS
Final v022616 9
REFERENCE
NOTE
2.0 What Do I Need In Order to Use OpenAnswer? - System Requirements
2.1 Overview
To ensure trouble-free operation, you should pay special attention to the following
MINIMUM requirements for your server configuration:
32-bit Linux operating system
2 GHz processor (Pentium 4 or higher)
4 GB RAM
T-1 level Internet speeds
64 kbps dedicated bandwidth available for each simultaneous phone call you
expect
The hardware and software requirements needed for successful installation and
operation of the OpenAnswer application suite include the following:
Asterisk server running version 13
OpenAnswer will also work with Asterisk version 11.
FreePBX (OPTIONAL)
FreePBX is an all-in-one platform that installs everything you need to build a
phone system. This is highly recommended for all but the most advanced IT or
Systems Administrators.
This Guide will reference setting up the Asterisk server using
the FreePBX GUI manager for Asterisk. See Section 4.0 for
instructions for installing on a bare system.
OpenAnswer User Guide for IT ADMINISTRATORS / INSTALLERS / MAINTAINERS
Final v022616 10
REFERENCE
NOTE
NOTE
CAUTION
A Linux webserver with the following installed:
o LAMP
o Redis server
o Node.JS (tested with v0.12.3)
o Node version manager (nvm)
This will allow easy installation of different node
versions and easy switching between versions.
o Node-gyp
yum install node-gyp
This is required to compile some of the node
module binaries.
o mysql-devel
yum install mysql-devel
o PHP phpredis extension (https://github.com/phpredis/phpredis)
Each of the OpenAnswer components requires an assigned domain and should have the identical primary domain.
OpenAnswer oa.mydomain.com
OpenConnector oc.mydomain.com
OpenQview oq.mydomain.com
Make sure .htaccess override and mod_rewrite are enabled on the
OpenQview (if installed) and OpenAnswer directories.
Refer to http://book.cakephp.org/2.0/en/installation/url-
rewriting.html for more information.
EXAMPLE
OpenAnswer User Guide for IT ADMINISTRATORS / INSTALLERS / MAINTAINERS
Final v022616 11
TIP
NOTE
2.2 SIP Trunk Provider Requirements
A SIP (Session Initiated Protocol) is the technology used for establishing a voice
communication session on a data network (e.g., over the Internet). A SIP session might
be a regular voice-over IP (VoIP) phone call between two participants or a multi-party
conference call.
A SIP Trunk provides the same service you get from a traditional analog phone line. But
instead of a physical wire, a SIP Trunk is a “virtual” phone line which is provided by a SIP
trunk provider. SIP trunking eliminates the need for a physical connection to a phone
company.
In order to take advantage of SIP trunking, you must have:
a PBX that connects to all internal end users;
an Internet telephony service provider (ITSP) and
a gateway that serves as the interface between the PBX and the ITSP.
As a typical rule of thumb, you’ll need approximately one SIP Trunk
for each 2-3 users.
Network considerations that must be considered include total
available bandwidth, quality of service (QoS), and firewalls.
2.3 Server Requirements
2.3.1 Hardware Requirements
2.3.1.1 Expected Performance vs. Hardware
2.3.1.2 Minimum Requirements vs. Recommended Requirements
OpenAnswer User Guide for IT ADMINISTRATORS / INSTALLERS / MAINTAINERS
Final v022616 12
CAUTION
CAUTION
2.3.2 Operating System Requirements
2.3.2.1 Supported Systems vs. Recommended Systems
The OpenAnswer application suite is designed to run on most Linux
distributions, including:
CentOS
Debian
Fedora
Red Hat
Ubuntu
OpenAnswer is compatible with Red Hat/CentOS 6 or higher. However,
CentOS 6.6 has been tested and is the recommended version.
We only currently test against CentOS 6 distributions.
Any attempt to use a different distribution is at the
discretion of the user.
2.3.3 Additional Software Components
2.3.4 Internet Connection & Supported Browsers
We recommend that each agent workstation has access to high speed
broadband Internet in order to eliminate delay or lagging issues with the
application.
The OpenAnswer application suite has been successfully tested with:
Mozilla Firefox
Google Chrome
While other browsers may function correctly, we do not
currently recommend or support them.
OpenAnswer User Guide for IT ADMINISTRATORS / INSTALLERS / MAINTAINERS
Final v022616 13
2.4 Agent Requirements
2.4.1 Hardware Requirements
2.4.1.1 Workstation
2.4.1.1.1 Web Browsers Supported
Mozilla Firefox and Google Chrome are officially supported
and tested browsers for the OpenAnswer application suite.
2.4.1.1.2 Minimum Requirements vs. Recommended Requirements
Agent workstations should have, at a MINIMUM, the following
specifications:
Pentium 4
2 Ghz
1 GB RAM
Any operating system that can run the supported
browsers
For best performance, we recommend:
2.6 Ghz Intel Core 2 Duo or greater
2 GB RAM or greater
2.4.1.2 Telephones
2.4.1.2.1 SoftPhone
A softphone is basically a piece of software that resides on an
agent's PC. The agent connects a telephony headset to his PC
and can then make and take calls without the use of a
traditional telephone.
OpenAnswer User Guide for IT ADMINISTRATORS / INSTALLERS / MAINTAINERS
Final v022616 14
OpenAnswer can support softphone technology, but this is
not the recommended approach. A softphone setup often
competes with other applications for resources. And this,
coupled with other potential network issues, can adversely
affect audio and call quality.
2.4.1.2.2 Hard Phone
A hard phone is what we know as the traditional telephone –
the physical phone with a dial pad and a handset that resides
on the agent's desktop. This is the recommended phone type
for OpenAnswer due to its reliability (voice quality,
emergency calls, agent usage).
The recommended brands that have been tested include:
Avaya
Cisco
Digium
Polycom
2.4.1.2.3 Headsets
Headsets are essential for all agents of a call center. We
recommend noise-cancelling headsets since they block out
background noise. Detachable components are also
preferred, as this helps to promote good hygiene.
A supervisor cable is a useful and cost-effective device that
allows managers to listen in on calls for training and quality
control purposes.
OpenAnswer User Guide for IT ADMINISTRATORS / INSTALLERS / MAINTAINERS
Final v022616 15
TIP
3.0 What is the Recommended Installation Procedure? – Two Servers
3.1 Overview of What’s Needed
This set of installation instructions assumes that all three components (OpenAnswer,
OpenConnector, OpenQview) are installed on the same server. These instructions also
assume that Linux is running with the necessary components already installed (as
previously discussed under System Requirements in Section 2.1)
The two CakePHP installations (OpenAnswer and OpenQview)
should be assigned domain names that have the same primary
domain (e.g., oa.mydomain.com and oq.mydomain.com).
The general installation process, described in the sections that follow, will look like this:
3.2 Supported Systems vs. Recommended Systems
We recommend installing FreePBX and Asterisk from the official FreePBX Distribution.
We also recommend using Asterisk 13. However, Asterisk 11 will also work with
OpenAnswer.
SERVER #1:
I) Install FreePBX + Asterisk
II) Configure Asterisk
settings
SERVER #2: III) Complete Preliminary Configurations
IV) Install OA Dependencies
V) Install OA Packages
VI) Configure MySQL, REDIS, APACHE
VII) Install & Configure OA
VIII) Install & Configure OC
IX) Install & Configure OQ
OpenAnswer User Guide for IT ADMINISTRATORS / INSTALLERS / MAINTAINERS
Final v022616 16
3.3 Configure Server #1 – Install Asterisk + FreePBX
3.3.1 Operating System Installation from the Official Distribution Site
Step Action
1
Install FreePBX and Asterisk 13
Download from http://schmoozecom.com/distro-download.php
Next, there are a few Asterisk settings that we have to configure. (continued on next page)
SERVER #1:
I) Install FreePBX + Asterisk
II) Configure Asterisk Settings
OpenAnswer User Guide for IT ADMINISTRATORS / INSTALLERS / MAINTAINERS
Final v022616 17
REFERENCE
CAUTION
NOTE
Step Action
2
Configure the API to allow OpenAnswer to communicate with Asterisk: /etc/asterisk/manager.conf
3
Then add the following under the [admin] section: [oa-admin]
secret=Password
deny=0.0.0.0/0.0.0.0
permit=127.0.0.1/255.255.255.0
read=system,call,log,verbose,command,agent,user,all
write=system,call,log,verbose,command,agent,user,all
4
Then add in the queues for the proper call routing. The PBX system requires at least one queue to be set up within FreePBX. The Asterisk setup
illustrated in this Guide assumes that the user has set up the necessary queues and extensions for the calls to be routed properly to the agents.
Parking a call in OpenQview requires that a Park Queue is created in FreePBX. By default, OpenConnector expects the park queue to be
Queue 998. Modify the asterisk_park_queue setting in
OpenConnector’s settings.js file.
5
The Asterisk server requires some additional customization of the Dialplan in order for OpenAnswer to work properly. Set up your extensions for your Dialplan: /etc/asterisk/extensions_custom.conf
A sample Dialplan can be found in the Appendix or at
http://www.voicenation.com/openanswer/documentation/installation/asterisk
SERVER #1:
I) Install FreePBX + Asterisk
II) Configure Asterisk Settings
OpenAnswer User Guide for IT ADMINISTRATORS / INSTALLERS / MAINTAINERS
Final v022616 18
NOTE
CAUTION
CAUTION
3.3.2 Configuration of Inbound Routes
3.4 Configure Server #2 – Install OpenAnswer Suite
These instructions assume that you are familiar with editing files manually using the Vi
editor, Nano, or another suitable text editor within Linux.
In addition, the example commands illustrated here are written with the assumption
that you are using the root user account.
If that is not the case, you will need to prepend most of the
commands with ‘sudo’ in order to perform them as a
superuser in Linux.
These instructions assume that you have already completed the basic
installation of CentOS 6.6 on the server, and this server is configured
with Internet access available.
3.4.1 Preliminary Configurations
All of the example commands listed here assume that you are using the
recommended CentOS 6.6 distribution.
These instructions may require modification or
alternate commands if you are using a different OS
distribution.
OpenAnswer User Guide for IT ADMINISTRATORS / INSTALLERS / MAINTAINERS
Final v022616 19
NOTE
Step Action
6
Make sure you are logged into the server through the console or SSH as the root user or can perform any commands required as the superuser (sudo).
7
SELinux
By default, SELinux is installed and active on CentOS 6.6 and will interfere with the installation and usage of OpenAnswer unless properly configured. Therefore, for purposes of these installation instructions, we will disable SELinux:
A) Edit the file: /etc/selinux/config
B) Change the line “SELINUX=” to “SELINUX=disabled”
C) Save the file
D) Reboot the server for the changes to take effect
8
IPTables
IPTables is the default software firewall that is included with CentOS 6.6. It may be configured to only allow specific network access to the server. Those specific configurations are outside the scope of this Guide. Therefore, for purposes of these installation instructions, we will disable IPTables:
A) /etc/init.d/iptables save
B) /etc/init.d/iptables stop
C) chkconfig iptables off
After this install is complete, you may re-enable IPTables with rules that allow for recommended access to ports 22, 80, 443, and 8081.
(continued on next page)
SERVER #2: III) Complete Preliminary
Configurations IV) Install OA Dependencies V) Install OA Packages
VI) Configure MySQL, REDIS, APACHE
VII) Install & Configure OA VIII) Install & Configure OC
IX) Install & Configure OQ
OpenAnswer User Guide for IT ADMINISTRATORS / INSTALLERS / MAINTAINERS
Final v022616 20
CAUTION
Step Action
9
EPEL
The Extra Packages for Enterprise Linux (EPEL) repository contains additional packages for Linux that include some of the prerequisites that OpenAnswer requires. Therefore, for purposes of these installation instructions, we will enable the EPEL repository:
A) yum install epel-release –y
As of November 2015, the installed configuration has an issue that must be manually resolved.
To resolve this issue, we must perform the following additional steps:
B) Manually edit the file: /etc/yum.repos.d/centos.repo
C) Modify the URL for all lines that begin with mirrorlist= so that https:// is instead changed to http://
D) Save the file
10
CentOS
Update the CentOS with the most recent packages: yum update
SERVER #2: III) Complete Preliminary
Configurations IV) Install OA Dependencies V) Install OA Packages
VI) Configure MySQL, REDIS, APACHE
VII) Install & Configure OA VIII) Install & Configure OC
IX) Install & Configure OQ
OpenAnswer User Guide for IT ADMINISTRATORS / INSTALLERS / MAINTAINERS
Final v022616 21
3.4.2 Dependency Installations
Now it’s time to install the remaining OpenAnswer dependencies.
Step Action
11
WGET
WGET is used for non-interactive downloading of files from the Internet and supports HTTP, HTTPS , and FTP protocols. The command to install this is: yum install wget -y
12
HTTPD
HTTPD is the Apache HyperText Transfer Protocol (HTTP) server program. It is designed to be run as a standalone daemon process. OpenAnswer uses this to serve browser requests from clients. The command to install this is: yum install httpd -y
13
MySQL
MySQL provides a collection of command-line utilities that are used for maintaining and administering MySQL servers. The command to install this is: yum install mysql -y
14
MySQL Server
MySQL server is the database engine used by OpenAnswer. The command to install this is: yum install mysql-server –y
15
MySQL Devel
MySQL devel provides the shared development libraries for MySQL that are used by other components for MySQL access. The command to install this is: yum install mysql-devel –y
(continued on next page)
SERVER #2: III) Complete Preliminary
Configurations IV) Install OA Dependencies V) Install OA Packages
VI) Configure MySQL, REDIS, APACHE
VII) Install & Configure OA VIII) Install & Configure OC
IX) Install & Configure OQ
OpenAnswer User Guide for IT ADMINISTRATORS / INSTALLERS / MAINTAINERS
Final v022616 22
Step Action
16
PHP
PHP is the server side scripting language and interpreter upon which OpenAnswer is built. The command to install this is: yum install php –y
17
GIT
GIT is a version control system and method for interfacing with a remote software repository (such as the ones used by OpenAnswer). The command to install this is: yum install git –y
18
PERL
LIBWWW-PERL is a collection of perl modules that provides the ability to interface with www sites. These modules are used by other components for interfacing with the Internet. The command to install this is: yum install perl-libwww-perl –y
19
NVM
NVM is a node version manager and allows you to easily install and manage multiple versions of node. For purposes of these installation instructions, we use it so that we can download and use a specific version of node that has been tested to work with OpenAnswer. To install NVM:
A) wget -qO- http://raw.githubusercontent.com/creationix/n
vm/v0.29.0/install.sh | bash
B) Log out of the server and log back in (the installation requires
that you reload your terminal session).
(continued on next page)
SERVER #2: III) Complete Preliminary
Configurations IV) Install OA Dependencies V) Install OA Packages
VI) Configure MySQL, REDIS, APACHE
VII) Install & Configure OA VIII) Install & Configure OC
IX) Install & Configure OQ
OpenAnswer User Guide for IT ADMINISTRATORS / INSTALLERS / MAINTAINERS
Final v022616 23
Step Action
20
NODE.JS
NODE.JS is a JavaScript runtime engine that allows for the creation of servers that can process event-driven functions. OpenConnector runs on top of it to process events between OpenAnswer, OpenQview, and Asterisk. The command to install this is: nvm install v0.12.3
21
PHP-MySQL
PHP-MYSQL is a library for accessing MySQL databases from within PHP. The command to install this is: yum install php-mysql –y
22
PHP-XMLRPC
PHP-XMLRPC is a PHP library for working with XMLRPC servers. The command to install this is: yum install php-xmlrpc –y
23
REDIS
REDIS is an in-memory data structure store, much like a database server such as MySQL. However, REDIS is designed to store very simple structures and retrieve them quickly. OpenAnswer uses this as a way to quickly store PHP:and retrieve browser session information, such as login data. The command to install this is: yum install redis –y
24
PHP-REDIS
PHP-REDIS is a PHP library for working with the REDIS in-memory data structure store. The command to install this is: yum install php-redis –y
SERVER #2: III) Complete Preliminary
Configurations IV) Install OA Dependencies V) Install OA Packages
VI) Configure MySQL, REDIS, APACHE
VII) Install & Configure OA VIII) Install & Configure OC
IX) Install & Configure OQ
OpenAnswer User Guide for IT ADMINISTRATORS / INSTALLERS / MAINTAINERS
Final v022616 24
3.4.3 OpenAnswer Packages Installation
Next we need to download and decompress the OpenAnswer installation file.
Step Action
25
To download and decompress the tarball (tar archive file):
A) cd/var/www/html/
B) wget
http://www.voicenation.com/downloads/OpenAnswer
_1.0.2.tar.gz
C) tar xvfz OpenAnswer_1.0.2.tar.gz
This should create the following three (3) directories under “/var/www/html/”:
i) openanswer ii) openconnector iii) openqview
3.4.4 Database and Webserver Configuration
Next we need to configure MySQL since by default, MySQL is preconfigured with
a blank root password, anonymous user access, and a set of test databases. With
this next set of instructions, we will set a root password and configure some
security options as well.
SERVER #2: III) Complete Preliminary
Configurations IV) Install OA Dependencies V) Install OA Packages VI) Configure MySQL, REDIS,
APACHE VII) Install & Configure OA
VIII) Install & Configure OC IX) Install & Configure OQ
OpenAnswer User Guide for IT ADMINISTRATORS / INSTALLERS / MAINTAINERS
Final v022616 25
CAUTION
NOTE
CAUTION
Step Action
26
Start up the installed server: service mysqld start
27
Run the MySQL secure installation script and follow the instructions it provides: mysql_secure_installation
Make sure to specify a root password and to secure the installation to your preferences.
28
OpenAnswer depends on time zone information provided by MySQL, which is loaded from the operating system into a set of tables. The command to run this is: mysql_tzinfo_to_sql /usr/share/oneinfo | mysql -u root -p mysql
Make sure to enter your MySQL root password when prompted.
You may see one or two errors about time zones that could not be loaded. This is normal!
(continued on next page)
SERVER #2: III) Complete Preliminary
Configurations IV) Install OA Dependencies V) Install OA Packages
VI) Configure MySQL, REDIS, APACHE
VII) Install & Configure OA VIII) Install & Configure OC
IX) Install & Configure OQ
OpenAnswer User Guide for IT ADMINISTRATORS / INSTALLERS / MAINTAINERS
Final v022616 26
Step Action
29
MySQL
Now we need to configure a user for OpenAnswer to use when connecting to MySQL.
A) mysql -u root -p
B) Log in using the root password you created for MySQL
C) In the MySQL client: create user oauser@'%' identified by 'PASSWORD'
Replace PASSWORD with the password you want to use for your installation.
While still in the client, perform the following:
D) GRANT USAGE ON *.* TO ‘oauser’@’%’ IDENTIFIED BY ‘PASSWORD’ Again, replace PASSWORD with the password you are using for your installation.
Create the database used by OpenAnswer:
E) create database openanswer Create the database used by OpenQview:
F) create database openqview Then, while still in the client:
G) grant all privileges on openanswer.* to oauser@’%’
H) grant all privileges on openqview.* to oauser@’%’
I) exit to exit the client
(continued on next page)
SERVER #2: III) Complete Preliminary
Configurations IV) Install OA Dependencies V) Install OA Packages
VI) Configure MySQL, REDIS, APACHE
VII) Install & Configure OA VIII) Install & Configure OC
IX) Install & Configure OQ
OpenAnswer User Guide for IT ADMINISTRATORS / INSTALLERS / MAINTAINERS
Final v022616 27
Step Action
30
MySQL
Next we need to load the OpenAnswer and OpenQview table structures. Execute the following:
A) mysql –h localhost –u root –p openanswer < /var/www/html/openanswer/openanswer.sql
B) mysql –h localhost –u root –p openqview < /var/www/html/openqview/openqview.sql
31
MySQL
Next we need to restart MySQL and configure it to automatically start when the server boots up.
A) service mysqld restart
B) chkconfig mysqld on
32
REDIS
We next need to specify a password for our Redis server and configure it to automatically start. Edit the file: /etc/redis.conf :
A) In the SECURITY section of this file, uncomment the line that starts with requirepass
B) Modify the password to what you want to use
C) Save the file
D) Restart Redis: service redis restart
E) Configure Redis to start up on boot: chkconfig redis on
(continued on next page)
SERVER #2: III) Complete Preliminary
Configurations IV) Install OA Dependencies V) Install OA Packages
VI) Configure MySQL, REDIS, APACHE
VII) Install & Configure OA VIII) Install & Configure OC
IX) Install & Configure OQ
OpenAnswer User Guide for IT ADMINISTRATORS / INSTALLERS / MAINTAINERS
Final v022616 28
CAUTION
Next we need to set up our Apache configuration by enabling .htaccess override
for OpenAnswer/OpenQview and by enabling the ‘LoadModule rewrite_module’
and ‘mod_rewrite.so’. Then we will set up the VirtualHosts.
Step Action
33
APACHE
Create /etc/httpd/conf.d/openanswer.conf and enter the following: <Directory "/home/openAnswer/app/webroot">
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
< /Directory>
34
APACHE
Create /etc/httpd/conf.d/openqview.conf and enter the following:
This step is NOT necessary if you are NOT installing OpenQview!
<Directory "/home/openQview/app/webroot">
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
< /Directory>
(continued on next page)
SERVER #2: III) Complete Preliminary
Configurations IV) Install OA Dependencies V) Install OA Packages
VI) Configure MySQL, REDIS, APACHE
VII) Install & Configure OA VIII) Install & Configure OC
IX) Install & Configure OQ
OpenAnswer User Guide for IT ADMINISTRATORS / INSTALLERS / MAINTAINERS
Final v022616 29
CAUTION
Step Action
35
VirtualHost
Add virtual hosts for OpenAnswer, OpenQview (if installed) and VOIP in /etc/httpd/conf/httpd.conf
Add the following to the bottom: <VirtualHost *:80>
Header set Access-Control-Allow-Origin "*"
RewriteEngine On
ServerAdmin [email protected]
DocumentRoot /var/www/html/admin
ServerName voip.mydomain.com
ErrorLog logs/voip.mydomain.com-error_log
CustomLog logs/voip.mydomain.com-access_log common
< /VirtualHost>
<VirtualHost *:80>
Header set Access-Control-Allow-Origin "*"
RewriteEngine On
ServerAdmin [email protected]
DocumentRoot /home/openAnswer/app/webroot
ServerName oa.mydomain.com
ErrorLog logs/oa.mydomain.com-error_log
CustomLog logs/oa.mydomain.com-access_log common
< /VirtualHost>
The instruction below is NOT necessary if you are NOT installing OpenQview!
<VirtualHost *:80>
Header set Access-Control-Allow-Origin "*"
RewriteEngine On
ServerAdmin [email protected]
DocumentRoot /home/openQview/app/webroot
ServerName oq.mydomain.com
ErrorLog logs/oq.mydomain.com-error_log
CustomLog logs/oq.mydomain.com-access_log common
< /VirtualHost>
36
And for good measure: service httpd restart
SERVER #2: III) Complete Preliminary
Configurations IV) Install OA Dependencies V) Install OA Packages
VI) Configure MySQL, REDIS, APACHE
VII) Install & Configure OA VIII) Install & Configure OC
IX) Install & Configure OQ
OpenAnswer User Guide for IT ADMINISTRATORS / INSTALLERS / MAINTAINERS
Final v022616 30
NOTE
CAUTION
3.4.5 Installation and Configuration of OpenAnswer Component
3.4.5.1 Download Source Code Files
Using the download link as outlined here will provide
you with the most recently TESTED version of the
software.
Step Action
37
Go to http://www.voicenation.com/openanswer-download. Enter your email address (optional) and click on the Download button.
38
Rename the OA directory to match your VirtualHost configuration. You must match the location of OpenAnswer to what you have set in your VirtualHost config from above. You can move it to /var/www/html if necessary.
3.4.5.2 Finish Installation and Configuration of OpenAnswer Component
PHP phpredis extension must be installed
(https://github.com/phpredis/phpredis) for
OpenAnswer to work properly.
Once you have downloaded the source code files (see Section 3.4.5.1
above), follow the steps below to complete the installation of the
OpenAnswer component.
SERVER #2: III) Complete Preliminary
Configurations IV) Install OA Dependencies V) Install OA Packages
VI) Configure MySQL, REDIS, APACHE
VII) Install & Configure OA VIII) Install & Configure OC
IX) Install & Configure OQ
OpenAnswer User Guide for IT ADMINISTRATORS / INSTALLERS / MAINTAINERS
Final v022616 31
TIP
Step Action
39
Copy the OpenAnswer source code to the root web directory for the domain name you have configured for OpenAnswer (e.g., oa.mydomain.com).
40
Create the OpenAnswer database: openanswer
41
Execute the sql script openanswer.sql to create the necessary tables: mysql openanswer < openanswer.sql
42
Copy app/Config/core.php.default to app/Config/core.php and modify to reflect your server
setup.
The port setting portion (8081 by default) of the URL specified for OpenConnectorServer should match the websocket port number
specified in OpenConnector's settings.js file.
43
Copy app/Config/database.php.default to
app/Config/database.php and modify to reflect your server setup.
44
Copy app/Config/bootstrap.php.default to app/Config/bootstrap.php and modify to reflect your
server setup.
45
Copy app/Config/email.php.default to app/Config/email.php and modify to reflect your server setup.
46 Make sure app/tmp and all of its subdirectories are owned and writable by the web server user.
(continued on next page)
SERVER #2: III) Complete Preliminary
Configurations IV) Install OA Dependencies V) Install OA Packages
VI) Configure MySQL, REDIS, APACHE
VII) Install & Configure OA VIII) Install & Configure OC
IX) Install & Configure OQ
OpenAnswer User Guide for IT ADMINISTRATORS / INSTALLERS / MAINTAINERS
Final v022616 32
NOTE
TIP
NOTE
Step Action
47
The installation comes with a default user, having administrative privileges, with the username admin and password admin.
You should be able to pull up the OpenAnswer login page by pointing your web browser to the domain you created
(e.g., http://oa.mydomain.com).
3.4.6 Installation and Configuration of OpenConnector Component
Once you have downloaded the source code files (see Section 3.4.5.1 above),
follow the steps below to complete the installation of the OpenConnector
component.
Step Action
48 Copy the OpenConnector source files into the directory where you want the Node.js application to reside.
49 Copy settings.default.js to settings.js and modify to
reflect your server setup.
50 From that directory, execute npm install to install all of the module dependencies for the Node.js application.
51
To run OpenConnector as a daemon, we created an Upstart script (see misc/openconnector.conf in the downloaded installation package) that runs the Node.js
app at startup and will also restart the app in case of a crash.
If using the Upstart script, place openconnector.conf in the /etc/init directory and make sure to edit the file to match the actual path to the OpenConnector
Node.js installation.
(continued on next page)
SERVER #2: III) Complete Preliminary
Configurations IV) Install OA Dependencies V) Install OA Packages
VI) Configure MySQL, REDIS, APACHE
VII) Install & Configure OA VIII) Install & Configure OC
IX) Install & Configure OQ
SERVER #2: III) Complete Preliminary
Configurations IV) Install OA Dependencies V) Install OA Packages
VI) Configure MySQL, REDIS, APACHE
VII) Install & Configure OA VIII) Install & Configure OC
IX) Install & Configure OQ
OpenAnswer User Guide for IT ADMINISTRATORS / INSTALLERS / MAINTAINERS
Final v022616 33
TIP
Step Action
52
Upon startup of the server, OpenConnector will automatically start running.
To manually START OpenConnector (using the provided Upstart script), execute start openconnector from the command line.
To manually STOP OpenConnector (using the provided Upstart script), execute stop
openconnector from the command line.
3.4.7 Installation and Configuration of OpenQview Component (OPTIONAL)
Once you have downloaded the source code files (see Section 3.4.5.1 above),
follow the steps below to complete the installation of the OpenQview
component.
Step Action
53 Copy the OpenQview source code to the root web directory (e.g., /var/www/html/openQview).
54 Create the OpenQview database: openqview
55 Execute the sql script openqview.sql to create the necessary tables: mysql openqview < openqview.sql
56 Copy app/Config/core.php.default to app/Config/core.php and modify to reflect your server setup.
57
Copy app/Config/database.php.default to
app/Config/database.php and modify to reflect your server setup.
(continued on next page)
SERVER #2: III) Complete Preliminary
Configurations IV) Install OA Dependencies V) Install OA Packages
VI) Configure MySQL, REDIS, APACHE
VII) Install & Configure OA VIII) Install & Configure OC
IX) Install & Configure OQ
SERVER #2: III) Complete Preliminary
Configurations IV) Install OA Dependencies V) Install OA Packages
VI) Configure MySQL, REDIS, APACHE
VII) Install & Configure OA VIII) Install & Configure OC
IX) Install & Configure OQ
OpenAnswer User Guide for IT ADMINISTRATORS / INSTALLERS / MAINTAINERS
Final v022616 34
TIP
NOTE
Step Action
58
Make sure app/tmp and all its subdirectories are owned and writable by the web server user.
On a Linux server, the web server user is most likely Apache.
59
Point your OpenQview domain name to the OpenQview installation. Ensure that OpenQview shares the same primary domain as the OpenConnector installation (e.g., oq.mydomain.com and oc.mydomain.com).
60 The installation comes with a default user, having administrative privileges, with the username admin and password admin.
3.4.8 Add Cron Jobs to Set Up Other Task Executions
The software utility “Cron” is a time-based job scheduler that is used to schedule
commands or shell scripts to run periodically at certain fixed times, dates, or
other intervals. OpenAnswer relies on cron jobs to perform some background
checks and task executions, including:
1) sending out message summaries;
2) cleaning up the database; and
3) processing the email queue.
To complete our OpenQview installation, we’ll need to set a few cron jobs.
There are two main parts:
1) The first part (e.g., */15****) is where we schedule the timer.
2) The rest of the line is the command as it would run from the command
line.
SERVER #2: III) Complete Preliminary
Configurations IV) Install OA Dependencies V) Install OA Packages
VI) Configure MySQL, REDIS, APACHE
VII) Install & Configure OA VIII) Install & Configure OC
IX) Install & Configure OQ
OpenAnswer User Guide for IT ADMINISTRATORS / INSTALLERS / MAINTAINERS
Final v022616 35
CAUTION
EXAMPLE
3.4.8.1 Timing Syntax
This is the first part of the cron job string and determines how often and when
the cron job is going to run. It consists of five parts:
minute
hour
day of month
month
day of week
To send out a message summary every fifteen minutes, use the
following timing syntax: 15 * * * *.
Don’t forget to change the necessary items to reflect your
specific installation setup (e.g., your MySQL information),
particularly changing the “mydomain.com” to YOUR specified domain.
OpenAnswer User Guide for IT ADMINISTRATORS / INSTALLERS / MAINTAINERS
Final v022616 36
3.4.8.2 Add Specific Cron Jobs
Now we’re ready to add our cron jobs.
Step Action
61
#clear out old queue statistics if openQview is installed
0 1 * * * /usr/bin/mysql -uUSERNAME -pPASSWORD -h
localhost openqview -e "DELETE FROM queue_statistics WHERE
created < (now() - INTERVAL 2 MONTH)"
# Check the email queue for emails to send out.
*/2 * * * * /usr/bin/GET
http://oa.mydomain.com/EmailQueues/process >>
/var/log/openconnector/emailqueues.log
# Send out message summaries set at 15, 30, and 60 minute
intervals. Also send out summaries set to send out once a
day at specified time
*/15 * * * * /usr/bin/GET
http://oa.mydomain.com/MessagesSummary/msg_summary_execute
/15 >> /var/log/openconnector/OASummary_15.log
*/30 * * * * /usr/bin/GET
http://oa.mydomain.com/MessagesSummary/msg_summary_execute
/30 >> /var/log/openconnector/OASummary_30.log
0 */1 * * * /usr/bin/GET
http://oa.mydomain.com/MessagesSummary/msg_summary_execute
/60 >> /var/log/openconnector/OASummary_60.log
*/5 * * * * /usr/bin/GET
http://oa.mydomain.com/MessagesSummary/msg_summary_execute
>> /var/log/openconnector/OASummary.log
# Check for messages that are marked with 'hold until' and
set the minders once time is up
*/5 * * * * /usr/bin/GET
http://oa.mydomain.com/Messages/process_hold_until >>
/var/log/openconnector/HoldUntil.log
SERVER #2: II) Complete Preliminary
Configurations III) Install OA Dependencies IV) Install OA Packages V) Configure MySQL, REDIS,
APACHE VI) Install & Configure OA
VII) Install & Configure OC VIII) Install & Configure OQ
OpenAnswer User Guide for IT ADMINISTRATORS / INSTALLERS / MAINTAINERS
Final v022616 37
REFERENCE
4.0 How Do I Install Everything on Just One Server? – Install Asterisk + FreePBX + OpenAnswer
The steps listed here are consolidated from the Recommended Installation
procedures discussed in Sections 3.3 and 3.4. Please refer to those sections
for more detailed explanations.
Step Action
1 Install FreePBX and Asterisk 13 by downloading from http://schmoozecom.com/distro-download.php.
2 /etc/asterisk/manager.conf
3
Add under the [admin] section: [oa-admin]
secret=Password
deny=0.0.0.0/0.0.0.0
permit=127.0.0.1/255.255.255.0
read=system,call,log,verbose,command,agent,user,all
write=system,call,log,verbose,command,agent,user,all
4 Add in the queues for the proper call routing.
5
Set up your extensions for your Dialplan. /etc/asterisk/extensions_custom.conf
6 Make sure you are logged into the server through the console or SSH as the root user or can perform any commands required as the superuser (sudo).
7
Disable SELinux.
A) Edit the file: /etc/selinux/config B) Change the line “SELINUX=” to “SELINUX=disabled” C) Save the file D) Reboot the server for the changes to take effect
OpenAnswer User Guide for IT ADMINISTRATORS / INSTALLERS / MAINTAINERS
Final v022616 38
Step Action
8
Disable IPTables.
A) /etc/init.d/iptables save B) /etc/init.d/iptables stop C) chkconfig iptables off
9
Enable the EPEL repository.
A) yum install epel-release –y B) Manually edit the file: /etc/yum.repos.d/centos.repo C) Modify the URL for all lines that begin with mirrorlist= so that
https:// is instead changed to http:// D) Save the file
10
Update the CentOS with the most recent packages. yum update
Install the remaining OpenAnswer dependencies.
Step Action
11 yum install wget -y
12 yum install httpd -y
13 yum install mysql -y
14 yum install mysql-server -y
15 yum install mysql-devel -y
16 yum install php -y
17 yum install git -y
18 yum install perl-libwww-perl -y
(continued on next page)
OpenAnswer User Guide for IT ADMINISTRATORS / INSTALLERS / MAINTAINERS
Final v022616 39
Step Action
19
A) wget -qO- http://raw.githubusercontent.com/creationix/nvm/v0.29.0/i
nstall.sh | bash
B) Log out of the server and log back in (the installation requires that you reload
your terminal session).
20 nvm install v0.12.3
21 yum install php-mysql –y
22 yum install php-xmlrpc -y
23 yum install redis –y
24 yum install php-redis –y
Next we need to download and decompress the OpenAnswer installation file.
Step Action
25
To download and decompress the tarball (tar archive file): A) cd/var/www/html/
B) wget
http://www.voicenation.com/downloads/OpenAnswer_1.0.2.tar.gz
C) tar xvfz OpenAnswer_1.0.2.tar.gz
This should create the following three (3) directories under “/var/www/html/”:
i) openanswer ii) openconnector iii) openqview
Then we need to configure the database and webserver.
OpenAnswer User Guide for IT ADMINISTRATORS / INSTALLERS / MAINTAINERS
Final v022616 40
Step Action
26 service mysqld start
27 mysql_secure_installation
28 mysql_tzinfo_to_sql /usr/share/oneinfo | mysql -u root -p mysql
29
A) mysql -u root -p
B) Log in using the root password you created for MySQL
C) In the MySQL client: create user oauser@'%' identified by 'PASSWORD'
Replace PASSWORD with the password you want to use for your installation.
While still in the client, perform the following:
D) GRANT USAGE ON *.* TO ‘oauser’@’%’ IDENTIFIED BY ‘PASSWORD’ Again, replace PASSWORD with the password you are using for your installation.
E) create database openanswer
F) create database openqview
G) grant all privileges on openanswer.* to oauser@’%’
H) grant all privileges on openqview.* to oauser@’%’
I) exit
(continued on next page)
OpenAnswer User Guide for IT ADMINISTRATORS / INSTALLERS / MAINTAINERS
Final v022616 41
Step Action
30
A) mysql –h localhost –u root –p openanswer < /var/www/html/openanswer/openanswer.sql
B) mysql –h localhost –u root –p openqview < /var/www/html/openqview/openqview.sql
31
service mysqld restart
chkconfig mysqld on
32
Edit the file /etc/redis.conf :
A) In the SECURITY section of this file, uncomment the line that starts with requirepass
B) Modify the password to what you want to use C) Save the file D) Restart Redis: service redis restart E) Configure Redis to start up on boot: chkconfig redis on
Next we need to set up our Apache configuration by enabling .htaccess override for
OpenAnswer/OpenQview and enabling the ‘LoadModule rewrite_module’ and
‘mod_rewrite.so’. Then we will set up the VirtualHosts.
Step Action
33
Create /etc/httpd/conf.d/openanswer.conf and enter the following: <Directory "/home/openAnswer/app/webroot">
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
< /Directory>
34
Create /etc/httpd/conf.d/openqview.conf and enter the following: <Directory "/home/openQview/app/webroot">
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
< /Directory>
(continued on next page)
OpenAnswer User Guide for IT ADMINISTRATORS / INSTALLERS / MAINTAINERS
Final v022616 42
Step Action
35
Add virtual hosts for OpenAnswer, OpenQview (if installed) and VOIP in /etc/httpd/conf/httpd.conf
Add the following to the bottom: <VirtualHost *:80>
Header set Access-Control-Allow-Origin "*"
RewriteEngine On
ServerAdmin [email protected]
DocumentRoot /var/www/html/admin
ServerName voip.mydomain.com
ErrorLog logs/voip.mydomain.com-error_log
CustomLog logs/voip.mydomain.com-access_log common
< /VirtualHost>
<VirtualHost *:80>
Header set Access-Control-Allow-Origin "*"
RewriteEngine On
ServerAdmin [email protected]
DocumentRoot /home/openAnswer/app/webroot
ServerName oa.mydomain.com
ErrorLog logs/oa.mydomain.com-error_log
CustomLog logs/oa.mydomain.com-access_log common
< /VirtualHost>
<VirtualHost *:80>
Header set Access-Control-Allow-Origin "*"
RewriteEngine On
ServerAdmin [email protected]
DocumentRoot /home/openQview/app/webroot
ServerName oq.mydomain.com
ErrorLog logs/oq.mydomain.com-error_log
CustomLog logs/oq.mydomain.com-access_log common
< /VirtualHost>
36 service httpd restart
Now we’re ready to install and configure OpenAnswer.
Step Action
37 Download the source code files from http://www.voicenation.com/openanswer-download.
38 Rename the OA directory to match your VirtualHost configuration.
(continued on next page)
OpenAnswer User Guide for IT ADMINISTRATORS / INSTALLERS / MAINTAINERS
Final v022616 43
Step Action
39 Copy the OpenAnswer source code to the root web directory for the domain name you have configured for OpenAnswer (e.g., oa.mydomain.com).
40 Create the OpenAnswer database: openanswer
41 mysql openanswer < openanswer.sql
42
cp app/Config/core.php.default app/Config/core.php
Modify to reflect your server setup.
43
cp app/Config/database.php.default app/Config/database.php
Modify to reflect your server setup.
44
cp app/Config/bootstrap.php.default app/Config/bootstrap.php
Modify to reflect your server setup.
45
cp app/Config/email.php.default app/Config/email.php
Modify to reflect your server setup.
46 Make sure app/tmp and all of its subdirectories are owned and writable by the web server user.
47 You should be able to pull up the OpenAnswer login page by pointing your web browser to the domain you created (e.g., http://oa.mydomain.com).
Next we’ll install and configure the OpenConnector component.
Step Action
48 Copy the OpenConnector source code files into the directory where you want the Node.js application to reside.
49
cp settings.default.js settings.js
Modify to reflect your server setup.
50 npm install
(continued on next page)
OpenAnswer User Guide for IT ADMINISTRATORS / INSTALLERS / MAINTAINERS
Final v022616 44
NOTE
TIP
TIP
Step Action
51
To run OpenConnector as a daemon, we created an Upstart script (see misc/openconnector.conf in the downloaded installation package) that runs the Node.js app at startup and
will also restart the app in case of a crash.
If using the Upstart script, place openconnector.conf in the /etc/init directory and make sure to edit the file to match the actual path to the OpenConnector Node.js installation.
52
Upon startup of the server, OpenConnector will automatically start running.
To manually START OpenConnector (using the provided Upstart script), execute start openconnector from the command line.
To manually STOP OpenConnector (using the provided Upstart script), execute stop openconnector from the command line.
And finally, we’re ready to install and configure the OpenQview component.
Step Action
53 Copy the OpenQview source code to the root web directory (e.g., /var/www/html/openQview).
54 Create the OpenQview database: openqview
55 mysql openqview < openqview.sql
56
cp app/Config/core.php.default app/Config/core.php
Modify to reflect your server setup.
57
cp app/Config/database.php.default app/Config/database.php
Modify to reflect your server setup.
(continued on next page)
OpenAnswer User Guide for IT ADMINISTRATORS / INSTALLERS / MAINTAINERS
Final v022616 45
REFERENCE
CAUTION
Step Action
58 Make sure app/tmp and all of its subdirectories are owned and writable by the web server user.
59 Point your OpenQview domain name to the OpenQview installation.
60 The installation comes with a default user, having administrative privileges, with the username admin and password admin.
Lastly, to complete our OpenQview installation, we’ll need to set a few cron jobs.
Please refer to Section 3.4.8 for more detailed information on cron jobs.
Don’t forget to change the necessary items to reflect your specific installation
setup (e.g., your MySQL information), particularly changing the
“mydomain.com” to YOUR specified domain.
(continued on next page)
OpenAnswer User Guide for IT ADMINISTRATORS / INSTALLERS / MAINTAINERS
Final v022616 46
Step Action
61
#clear out old queue statistics if openQview is installed
0 1 * * * /usr/bin/mysql -uUSERNAME -pPASSWORD -h localhost
openqview -e "DELETE FROM queue_statistics WHERE created < (now()
- INTERVAL 2 MONTH)"
# Check the email queue for emails to send out.
*/2 * * * * /usr/bin/GET
http://oa.mydomain.com/EmailQueues/process >>
/var/log/openconnector/emailqueues.log
# Send out message summaries set at 15, 30, and 60 minute
intervals. Also send out summaries set to send out once a day at
specified time
*/15 * * * * /usr/bin/GET
http://oa.mydomain.com/MessagesSummary/msg_summary_execute/15 >>
/var/log/openconnector/OASummary_15.log
*/30 * * * * /usr/bin/GET
http://oa.mydomain.com/MessagesSummary/msg_summary_execute/30 >>
/var/log/openconnector/OASummary_30.log
0 */1 * * * /usr/bin/GET
http://oa.mydomain.com/MessagesSummary/msg_summary_execute/60 >>
/var/log/openconnector/OASummary_60.log
*/5 * * * * /usr/bin/GET
http://oa.mydomain.com/MessagesSummary/msg_summary_execute >>
/var/log/openconnector/OASummary.log
# Check for messages that are marked with 'hold until' and set
the minders once time is up
*/5 * * * * /usr/bin/GET
http://oa.mydomain.com/Messages/process_hold_until >>
/var/log/openconnector/HoldUntil.log
OpenAnswer User Guide for IT ADMINISTRATORS / INSTALLERS / MAINTAINERS
Final v022616 47
5.0 How Do I Fix This? – Common Errors and Troubleshooting Tips
Problem Possible Cause(es) Solution(s)
The following error message appears when you navigate to your OpenQview page in your browser:
You are not authorized to access that location.
An Internal Error Has Occurred.
Installed to a different directory
Check the logs where you installed OpenQview: /var/www/html/openqview/app/tmp/logs/error.log If you installed to a different directory than “openqview,” just replace that in the line above to find your logs.
The following message appears in the OpenQview error log: Table users for model AsteriskUser was not found in datasource asterisk.
OpenQview uses a MySQL table that is installed with FreePBX/Asterisk, and it cannot find that table.
In the following config file, it should be pointing to this Asterisk server/database. You should also check to make sure this is set correctly: /var/www/html/openQview/app/Config/database.php
The default line looks like this: public $asterisk = array( 'datasource' => 'Database/Mysql', 'persistent' => false, 'host' => 'myasterisk.mydomain.com', 'login' => 'username', 'password' => 'password', 'database' => 'asterisk' );
In FreePBX, you should have AT LEAST one (1) queue set up.
OpenAnswer User Guide for IT ADMINISTRATORS / INSTALLERS / MAINTAINERS
Final v022616 48
6.0 Additional Support
If you experience a problem that is not otherwise addressed in this Guide, follow these steps:
1. Visit our support website at www.voicenation.com/openanswer. This is the fastest source
for up-to-date software information and assistance.
2. Visit our online forum at www.voicenation.com/openanswer/forum.
3. Call our technical support specialists at _______________________ or email them at
_______________________.
OpenAnswer User Guide for IT ADMINISTRATORS / INSTALLERS / MAINTAINERS
Final v022616 49
7.0 Documentation Feedback
To improve the quality of our OpenAnswer documentation, we invite you to make comments
or suggestions. When doing so, please include as much information about your experience
using this documentation as possible (e.g., which version of OpenAnswer you are using, what
specific topic you are commenting about, etc.).
Email your comments and suggestions to [email protected].
We cannot respond to technical support or project consulting issues at this address. We are
mainly interested in problems with the documentation itself – such as erroneous information,
grammatical and spelling errors, or suggestions for topics to include in the next release of the
software.
OpenAnswer User Guide for IT ADMINISTRATORS / INSTALLERS / MAINTAINERS
Final v022616 50
8.0 Appendix
8.1 Asterisk Server Setup – Dialplan Example for OpenAnswer
The following is an example of a Dialplan for OpenAnswer. You can copy and paste this
Dialplan into /etc/asterisk/extensions_custom.conf.
[from-pstn-custom]
exten => s,1,Macro(pre-init-tas-vars)
[previous-ext-did-post-custom]
exten => _X.,n,Noop(No Asterisk Route - Lookup DID in TAS)
exten => _X.,n,GotoIf($["${TASACCT}foo" = "foo"]?notfound)
exten => _X.,n,Noop(Found openanswer Acct ${TASACCT} for DID ${FROM_DID})
exten => _X.,n,Noop(Found openanswer Acct Name ${TASNAME} FOR did ${FROM_DID})
exten => _X.,n,Set(__TASPRIORITY=${ODBC_LOOKUPTASPRIORITY(${TASACCT})})
exten => _X.,n,Noop(Found OA Priority ${TASPRIORITY} FOR did ${FROM_DID})
exten => _X.,n,Set(__FROM_DID=${EXTEN})
exten => _X.,n,Set(CDR(userfield)=${TASACCT})
exten => _X.,n,Gosub(app-blacklist-check,s,1)
exten => _X.,n,ExecIf($[ "${CALLERID(name)}" = "" ] ?Set(CALLERID(name)=${CALLERID(num)}))
exten => _X.,n,Set(__CALLINGPRES_SV=${CALLINGPRES_${CALLINGPRES}})
exten => _X.,n,SetCallerPres(allowed_not_screened)
exten => _X.,n,GotoIf($["${TASPRIORITY}" = "1"]?priorityone)
exten => _X.,n,GotoIf($["${TASPRIORITY}" = "2"]?prioritytwo)
exten => _X.,n,GotoIf($["${TASPRIORITY}" = "3"]?prioritythree)
exten => _X.,n,GotoIf($["${TASPRIORITY}" = "4"]?priorityfour)
exten => _X.,n,GotoIf($["${TASPRIORITY}" = "5"]?priorityfive)
exten => _X.,n,GotoIf($["${TASPRIORITY}" = "6"]?prioritysix)
exten => _X.,n,GotoIf($["${TASPRIORITY}" = "7"]?priorityseven)
exten => _X.,n,GotoIf($["${TASPRIORITY}" = "8"]?priorityeight)
exten => _X.,n,GotoIf($["${TASPRIORITY}" = "9"]?prioritynine)
exten => _X.,n,Goto(ext-queues,999,1)
exten => _X.,n(priorityone),Noop("TAS DID ${EXTEN} for P1 Q991.")
exten => _X.,n,Goto(ext-queues,991,1)
exten => _X.,n(prioritytwo),Noop("TAS DID ${EXTEN} for P2 Q992.")
exten => _X.,n,Goto(ext-queues,992,1)
exten => _X.,n(prioritythree),Noop("TAS DID ${EXTEN} for P3 Q993.")
exten => _X.,n,Goto(ext-queues,993,1)
exten => _X.,n(priorityfour),Noop("TAS DID ${EXTEN} for P4 Q994.")
exten => _X.,n,Goto(ext-queues,994,1)
exten => _X.,n(priorityfive),Noop("TAS DID ${EXTEN} for P5 Q995.")
exten => _X.,n,Goto(ext-queues,995,1)
exten => _X.,n(prioritysix),Noop("TAS DID ${EXTEN} for P6 Q996.")
exten => _X.,n,Goto(ext-queues,996,1)
exten => _X.,n(priorityseven),Noop("TAS DID ${EXTEN} for P7 Q997.")
exten => _X.,n,Goto(ext-queues,997,1)
exten => _X.,n(priorityeight),Noop("TAS DID ${EXTEN} for P8 Q998.")
exten => _X.,n,Goto(ext-queues,998,1)
exten => _X.,n(prioritynine),Noop("TAS DID ${EXTEN} for P9 Q999.")
exten => _X.,n,Goto(ext-queues,999,1)
OpenAnswer User Guide for IT ADMINISTRATORS / INSTALLERS / MAINTAINERS
Final v022616 51
exten => _X.,n(notfound),Noop("TAS DID ${EXTEN} not found.")
[from-internal-custom]
exten => 555,1,Macro(user-callerid)
exten => 555,2,Authenticate(1234)
exten => 555,3,Read(QVSPYNUM,agent-newlocation)
exten => 555,4,Macro(qview-supervise)
exten => 555,n,Hangup
exten => 556,1,NoOp(Qview Supervise Request)
exten => 556,2,NoOp(${QVSPYNUM})
exten => 556,3,Macro(user-callerid)
exten => 556,4,GotoIf($[{$QVSPYNUM}]?5:6)
exten => 900,1,NoOp(Agent Callback Login from ${CALLERIDNUM})
exten => 900,2,AgentCallbackLogin(,,${CALLERIDNUM}@ext-local)
exten => 900,3,Hangup
[qvapps]
exten => 556,1,NoOp(Qview Supervise Request)
exten => 556,2,NoOp(${QVSPYNUM})
exten => 556,3,Macro(user-callerid)
exten => 556,4,GotoIf($[{$QVSPYNUM}]?5:6)
exten => 556,5,Macro(qview-supervise)
exten => 556,6,NoOp(supervise done)
exten => 556,7,Hangup
[qvredirect]
exten => _X.,1,Set(MIXMONITOR_FILENAME=${EXTEN}-${STRFTIME(${EPOCH},,%Y%m%d-
%H%M%S)}-${UNIQUEID})
exten => _X.,n,NoOp(QVRedirect to ${EXTEN} and record to ${MIXMONITOR_FILENAME} call from
${CALLERID(num)})
exten => _X.,n,ResetCDR(w)
exten => _X.,n,ExecIf($["${CDR(oc_uniqueid)}foo" =
"foo"]?Set(CDR(oc_uniqueid)=${OCUNIQUEID}))
exten => _X.,n,Dial(Local/${EXTEN}@qvredirect-txfr/n)
exten => _X.,n,Goto(ext-queues,998,1)
exten => h,1,Macro(hangupcall)
[qvredirect-txfr]
exten => _X.,n,ExecIf($["${CDR(oc_uniqueid)}foo" =
"foo"]?Set(CDR(oc_uniqueid)=${OCUNIQUEID}))
exten => _X.,1,Goto(default,${EXTEN},1)
[macro-qview-supervise]
exten => s,1,ChanSpy(SIP/${QVSPYNUM))
[qvmusiconhold]
exten => _X.,1,Answer
exten => _X.,n,ExecIf($["${CDR(oc_uniqueid)}foo" =
"foo"]?Set(CDR(oc_uniqueid)=${OCUNIQUEID}))
exten => _X.,n,StartMusicOnHold()
exten => _X.,n,Wait(3600)
exten => _X.,n,Hangup
exten => i,1,Answer
OpenAnswer User Guide for IT ADMINISTRATORS / INSTALLERS / MAINTAINERS
Final v022616 52
exten => i,n,MusicOnHold()
[qvpark]
exten => h,1,Hangup
exten => _X.,1,Answer
exten => _X.,n,ExecIf($["${CDR(oc_uniqueid)}foo" =
"foo"]?Set(CDR(oc_uniqueid)=${OCUNIQUEID}))
exten => _X.,n,Wait(1)
exten => _X.,n,ParkAndAnnounce(,,,ext-local,${QVPARKEDBY},1)
exten => i,1,Answer
exten => i,n,Wait(1)
exten => i,n,ParkAndAnnounce(,,,ext-local,${QVPARKEDBY},1)
[qvmeetme]
exten => h,1,StopMixMonitor()
exten => h,n,Macro(hangupcall)
exten => _X.,1,Answer
exten => _X.,n,NoOp(QVMeetme Bridge ${EXTEN})
exten => _X.,n,ExecIf($["${FROM_ACCT}foo" != "foo"]?Set(CDR(userfield)=${FROM_ACCT}))
exten => _X.,n,ExecIf($["${CDR(oc_uniqueid)}foo" =
"foo"]?Set(CDR(oc_uniqueid)=${OCUNIQUEID}))
exten => _X.,n,StopMixMonitor()
exten => _X.,n,SetAMAFlags(billing)
exten => _X.,n,Wait(1)
exten => _X.,n,GotoIf($["${FROM_TASAGENT}foo" != "foo"]?from_tasagent)
exten => _X.,n,MeetMe(${EXTEN},1dFqAx)
exten => _X.,n,MeetMeAdmin(${EXTEN},K)
exten => _X.,n,Hangup
exten => _X.,n,Return()
exten => _X.,n(from_tasagent),Noop("MEETME SETUP FROM AGENT ${FROM_TASAGENT} for
${FROM_DID}")
exten => _X.,n,MeetMe(${EXTEN},1dFqAx)
exten => _X.,n,MeetMeAdmin(${EXTEN},K)
exten => _X.,n,Hangup
exten => _X.,n,Return()
[qvpickup]
exten => h,1,StopMixMonitor()
exten => h,n,Macro(hangupcall)
exten => _X.,1,Answer
exten => _X.,n,NoOp(QVPickup Bridge ${EXTEN})
exten => _X.,n,ExecIf($["${FROM_ACCT}foo" != "foo"]?Set(CDR(userfield)=${FROM_ACCT}))
exten => _X.,n,ExecIf($["${CDR(oc_uniqueid)}foo" =
"foo"]?Set(CDR(oc_uniqueid)=${OCUNIQUEID}))
exten => _X.,n,Wait(1)
exten => _X.,n,SetAMAFlags(billing)
exten => _X.,n,MeetMe(${EXTEN},1dFqx)
exten => _X.,n,Hangup
[qvcallpickup]
exten => h,1,StopMixMonitor()
exten => h,n,Macro(hangupcall)
exten => _X.,1,Answer
exten => _X.,n,NoOp(QVCallPickup Bridge ${EXTEN} for ${FROM_TASAGENT})
OpenAnswer User Guide for IT ADMINISTRATORS / INSTALLERS / MAINTAINERS
Final v022616 53
exten => _X.,n,ExecIf($["${FROM_ACCT}foo" != "foo"]?Set(__TASACCT=${FROM_ACCT}))
exten => _X.,n,ExecIf($["${CDR(oc_uniqueid)}foo" =
"foo"]?Set(CDR(oc_uniqueid)=${OCUNIQUEID}))
exten => _X.,n,ExecIf($["${FROM_DID}foo" != "foo"]?Set(CDR(accountcode)=${FROM_DID}))
exten => _X.,n,ExecIf($["${TASACCT}foo" != "foo"]?Set(CDR(userfield)=${TASACCT}))
exten => _X.,n,Set(CDR(agent)=${FROM_TASAGENT})
exten => _X.,n,MeetMe(${EXTEN},1dFqx)
exten => _X.,n,Hangup
[qvremoteagent]
exten => h,1,Hangup
exten => s,1,Answer
exten => s,n,Wait(1)
exten => s,n,Authenticate(5089)
exten => s,n,NoOp(QV Remote Agent Login from ${CALLERIDNUM})
exten => s,n,Wait(1)
exten => s,n,AgentLogin()
exten => s,n,Hangup
exten => _X.,1,Answer
exten => _X.,n,Wait(1)
exten => _x.,n,Authenticate(5089)
exten => _X.,n,NoOp(QV Remote Agent Login from ${CALLERIDNUM})
exten => _X.,n,Wait(1)
exten => _X.,n,AgentLogin()
exten => _X.,n,Hangup
[qvdummy]
exten => _X.,1,NoCDR()
exten => _X.,n,Answer()
exten => _X.,n,Wait(30)
exten => _X.,n,Hangup
exten => h,1,Hangup
[pause-queue-from-internal]
exten => _X.,1,PauseQueueMember(,SIP/${EXTEN})
exten => _X.,n,Goto(from-internal,${EXTEN},1)
[unpause-queue-from-openanswer]
exten => _X.,1,UnPauseQueueMember(,SIP/${FROM_TASAGENT})
exten => _X.,n,Goto(from-openanswer,${EXTEN},1)
[from-openanswer]
exten => h,1,StopMixMonitor()
exten => h,n,Macro(hangupcall)
exten => _X.,1,ExecIf($["${REALCALLERIDNUM}foo" != "foo"]?Set(__KEEPCID=TRUE))
exten => _X.,n,ExecIf($["${FROM_DID}foo" = "foo"]?Set(__FROM_DID=${REALCALLERIDNUM}))
exten => _X.,n,ExecIf($["${TASACCT}foo" = "foo"]?Gosub(app-prep-tas-vars,s,1))
exten => _X.,n,ExecIf($["${FROM_DID}foo" != "foo"]?Set(CDR(accountcode)=${FROM_DID}))
exten => _X.,n,ExecIf($["${TASACCT}foo" = "foo"]?Set(__TASACCT=${FROM_ACCT}))
exten => _X.,n,ExecIf($["${TASACCT}foo" != "foo"]?Set(CDR(userfield)=${TASACCT}))
exten => _X.,n,ExecIf($["${CDR(oc_uniqueid)}foo" =
"foo"]?Set(CDR(oc_uniqueid)=${OCUNIQUEID}))
exten => _X.,n,ExecIf($["${REALCALLERIDNUM}foo" !=
"foo"]?Set(__OUTCID_2=${REALCALLERIDNUM}))
OpenAnswer User Guide for IT ADMINISTRATORS / INSTALLERS / MAINTAINERS
Final v022616 54
exten => _X.,n,Set(CDR(agent)=${FROM_TASAGENT})
exten => _X.,n,Set(MIXMONITOR_FILENAME=OUT${FROM_TASAGENT}-
${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)}-${UNIQUEID})
exten => _X.,n,Goto(from-internal,${EXTEN},1)
[app-prep-tas-vars]
exten => s,1,NoOp(In app-prep-tas-vars)
exten => s,n,Set(__TASACCT=)
exten => s,n,Set(__TASACCT=${ODBC_LOOKUPTASDID(${FROM_DID})})
exten => s,n,ExecIf($["${FROM_ACCT}foo" != "foo"]?Set(__TASACCT=${FROM_ACCT}))
exten => s,n,ExecIf($["${TASACCT}foo" !=
"foo"]?Set(__TASNAME=${ODBC_LOOKUPTASNAME(${TASACCT})}-))
exten => s,n,ExecIf($["${TASACCT}foo" != "foo"]?Set(CDR(userfield)=${TASACCT}))
exten => s,n,Return()
[app-check-tas-loop]
exten => s,1,Set(__TASLOOP=)
exten => s,n,ExecIf($["${CALLERID(num)}foo" !=
"foo"]?Set(__TASLOOP=${ODBC_LOOKUPTASDID(${CALLERID(num)})}))
exten => s,n,ExecIf($["${TASLOOP}foo" != "foo"]?Set(__TASNAME=*TASLOOP*-${TASNAME}))
exten => s,n,Return()
[macro-check-meetme-recording]
exten => h,1,MacroExit
exten => h,n,Set(MEETME_RECORDINGFILE=)
exten => h,n,MacroExit
exten => s,1,MacroExit
exten => s,n,Set(MEETME_RECORDINGFILE=)
exten => s,n,MacroExit
[macro-pre-init-tas-vars]
exten => s,1,Set(__FROM_DID=${MACRO_EXTEN})
exten => s,n,Set(CALLINGPRES=0)
exten => s,n,ExecIf($[ "${CHANNEL:0:5}" = "DAHDI" ]?Wait(1))
exten => s,n,Set(CDR(accountcode)=${MACRO_EXTEN})
exten => s,n,Set(CDR(oc_uniqueid)=${UNIQUEID})
exten => s,n,Set(__OCUNIQUEID=${UNIQUEID})
exten => s,n,ExecIf($[${LEN(${MACRO_EXTEN})}>9]?Gosub(app-prep-tas-vars,s,1))
exten => s,n,ExecIf($[${LEN(${MACRO_EXTEN})}>9]?Gosub(app-check-tas-loop,s,1))
exten => s,n,Set(__CALLINGCHANNEL=${CHANNEL})
OpenAnswer User Guide for IT ADMINISTRATORS / INSTALLERS / MAINTAINERS
Final v022616 55
Index
A
Agent requirements .................................................................. 13
Apache .......................................................................... 28, 34, 41
API............................................................................................. 17
Asterisk ....................................................... 7, 8, 9, 15, 16, 37, 47
Dialplan................................................................................ 50
Settings ................................................................................ 17
Avaya ........................................................................................ 14
C
CakePHP................................................................................ 7, 15
Call Routing ......................................................................... 17, 37
CentOS .............................................................. 12, 18, 19, 20, 38
Chrome ............................................................................... 12, 13
Cisco.......................................................................................... 14
Cron Jobs ...................................................................... 34, 36, 45
D
Debian....................................................................................... 12
Dialplan ......................................................................... 17, 37, 50
Digium....................................................................................... 14
Domain
Assigned .............................................................................. 10
Names ......................................................... 15, 31, 34, 43, 45
Primary .................................................................... 10, 15, 34
E
EPEL .................................................................................... 20, 38
F
Fedora ....................................................................................... 12
Firefox ................................................................................. 12, 13
FreePBX ........................................................ 9, 15, 16, 17, 37, 47
G
GIT ...................................................................................... 22, 38
Google Chrome ......................................................... See Chrome
H
Hard phone .............................................................................. 14
Headsets ................................................................................... 14
htaccess override ......................................................... 10, 28, 41
HTTPD ..................................................................... 21, 29, 38, 42
I
IPTables .............................................................................. 19, 38
L
LAMP .................................................................................... 5, 10
LIBWWW-PERL ................................................................... 22, 38
Linux ....................................................................... 12, 15, 18, 20
Operating system .............................................................. 5, 9
Webserver ..................................................................... 10, 34
LoadModule ....................................................................... 28, 41
M
mod_rewrite ............................................................................ 10
mod_rewrite.so............................................................. 28, 41
Mozilla Firefox .............................................................See Firefox
MySQL ................................. 21, 23, 24, 25, 26, 27, 35, 40, 45, 47
mysql-devel ................................................................... 10, 21
N
Nano ......................................................................................... 18
Node version manager ....................................................... 10, 22
Node.js ...................................................... 5, 8, 10, 23, 32, 43, 44
Node-gyp .................................................................................. 10
NVM .................................................. See Node version manager
OpenAnswer User Guide for IT ADMINISTRATORS / INSTALLERS / MAINTAINERS
Final v022616 56
O
One Server ................................................................................ 37
Online forum............................................................................. 48
OpenAnswer ........................ 7, 8, 9, 10, 17, 19, 20, 24, 30, 34, 50
Dependencies ................................................................ 21, 38
Purpose, Advantages ............................................................. 5
Supported Browsers ............................................................ 12
Supported Systems .............................................................. 12
System Description, Key Features ......................................... 7
OpenConnector ................................ 8, 15, 17, 23, 32, 33, 43, 44
OpenConnectorServer ......................................................... 31
OpenQview ... 8, 10, 15, 17, 23, 26, 27, 28, 29, 33, 34, 41, 42, 44,
45, 47
P
Park queue ................................................................................ 17
Perl ................................................................. See LIBWWW-PERL
PHP ................................................................................. 5, 22, 38
PHP-MYSQL ......................................................................... 23
PHP-REDIS............................................................................ 23
PHP-XMLRPC ....................................................................... 23
Polycom .................................................................................... 14
Port
Number ............................................................................... 31
Setting ................................................................................. 31
Ports ..................................................................................... 5, 19
R
Red Hat ..................................................................................... 12
REDIS....................................................................... 10, 23, 27, 41
rewrite_module .................................................................. 28, 41
S
SELinux ............................................................................... 19, 37
settings.js ............................................................... 17, 31, 32, 43
SIP trunk ................................................................................... 11
SoftPhone ................................................................................. 13
Source code ........................................... 30, 31, 32, 33, 42, 43, 44
Sudo ................................................................................... 18, 19
Support website ....................................................................... 48
System requirements ............................................................... 12
System Requirements
Overview ............................................................................... 9
T
Timing syntax ........................................................................... 35
U
Ubuntu ..................................................................................... 12
Upstart script ................................................................ 32, 33, 44
V
Vi editor .................................................................................... 18
VirtualHost ............................................................. 28, 29, 30, 42
W
WGET ...................................................................... 21, 22, 24, 39