Это старая версия документа!
Содержание
VOIP Server (Asterisk+FreePBX+VTiger CRM) |
---|
Дано:
IP сервера, где все это будет стоять - 192.168.10.234
VTIGER
Скачиваем последнюю версию vtigercrm в исходных кодах *.tar.gz с сайта VTiger
Распаковываем файл в /var/www/htcdocs и на строим MySQL.
# mkdir /var/lib/mysql/mysql # mysql_install_db # chown -R mysql.mysql /var/lib/mysql/mysql # /etc/rc.d/rc.mysqld start # mysql mysql> set password for 'root'@'localhost' = password('mypassword'); mysql> FLUSH PRIVILEGES; mysql>\q
Создаём пользователя и группу:
# mkdir /var/lib/asterisk # groupadd asterisk # useradd -c "asterisk PBX" -d /var/lib/asterisk -g asterisk asterisk
Правим /etc/httpd/httpd.conf
User asterisk Group asterisk # Uncomment the following line to enable PHP: # Include /etc/httpd/mod_php.conf
Правим /etc/httpd/php.ini
upload_max_filesize = 20M date.timezone = Europe/Moscow display_errors = On max_execution_time = 600 error_reporting = E_ALL & ~E_DEPRECATED & ~E_NOTICE allow_call_time_pass_reference = On log_errors = Off short_open_tag = On
Даем права
# chown -R asterisk:asterisk /var/www/htdocs/vtigercrm # chown -R asterisk:asterisk /var/lib/php
Перезапуск апач (apache)
# /etc/rc.d/rc.httpd restart
Запускаем инсталятор через браузер http://192.168.10.234/vtigercrm/index.php
Согласимся с лицензией и должны увидеть такое окно:
Далее скажет, что не все параметры совпадают (потому, что есть NOT RECOMMENDED), говорим «Next» и видим такое окно;
( в левом окне пароли к мускулу, в правом пароль admina для входа в vtiger )
Проверив все введенные данные, говорим «Next» и по завершению получаем эти два окна:
Входим в систему, введя пароль, тот что задали при инсталляции.
Русифицируем vtiger:
Берем последнюю версию русской локали.Заходим в Settings → Module Manager → Custom Modules → Import New
Выбираем скачанный файл (*.zip), нажимаем на кнопки «Import» и «Yes»
Перезаходим, выбрав русский язык в окне приглашения и получаем русский ТИГР :)
Если сменили пароль в мускул уже после установки vtiger, то заходим в мускул и говорим:
# mysql -u root -p mysql> GRANT ALL PRIVILEGES ON vtigercrm521.* TO 'root'@'%' IDENTIFIED BY 'пароль_root'; mysql> FLUSH PRIVILEGES; mysql>\q
ASTERISK
Скачиваем, распаковываем и устанавливаем последнюю версию DAHDI:
# make # make install
Скачиваем, распаковываем и устанавливаем последнюю версию DAHDI-tools:
# ./configure # make # make install # make config
Скачиваем, распаковываем и устанавливаем последнюю версию libpri:
# make all # make install
Скачиваем, распаковываем и устанавливаем последнюю версию ядра ASTERISK:
# ./configure # make menuconfig # make # make install # make samples # make progdocs
Устанавливаем веб интерфейс для голосовой почты, для этого изменим в файле ./Makefile строку
HTTP_DOCSDIR=/var/www/htm
на
HTTP_DOCSDIR=/var/www/htdocs
и говорим
# make webvmail
Скачиваем, распаковываем и устанавливаем последнюю версию Asterisk-addons, (для версий 1.8 и выше не нужен)
# ./configure # make # make install # make samples
Создадим скрипт для запуска asterisk - rc.asterisk, положим его в /etc/rc.d/ и не забудем дать права на запуск.
#!/bin/sh AST_CONFIG=/etc/asterisk AST_SBIN=/usr/sbin . /etc/rc.d/init.d/functions if ! [ -x $AST_SBIN/asterisk ] ; then echo "ERROR: /usr/sbin/asterisk not found" exit 0 fi if ! [ -d $AST_CONFIG ] ; then echo "ERROR: $AST_CONFIG directory not found" exit 0 fi DAEMON=$AST_SBIN/asterisk SAFE_ASTERISK=$AST_SBIN/safe_asterisk CONFIG0=`readlink $0` if [ "$CONFIG0" = "" ]; then CONFIGFILE=/etc/sysconfig/`basename $0` else CONFIGFILE=/etc/sysconfig/`basename $CONFIG0` fi [ -x $CONFIGFILE ] && . $CONFIGFILE RETVAL=0 start() { # Start daemons. echo -n $"Starting asterisk: " if [ -f $SAFE_ASTERISK ] ; then DAEMON=$SAFE_ASTERISK fi if [ $AST_USER ] ; then ASTARGS="-U $AST_USER" fi if [ $AST_GROUP ] ; then ASTARGS="$ASTARGS -G $AST_GROUP" fi if [ $AST_CONFIG ]; then ASTARGS="$ASTARGS -C $AST_CONFIG" fi daemon $DAEMON $ASTARGS RETVAL=$? [ $RETVAL -eq 0 ] && touch /var/lock/asterisk echo return $RETVAL } stop() { # Stop daemons. echo -n $"Shutting down asterisk: " killproc asterisk RETVAL=$? [ $RETVAL -eq 0 ] && rm -f /var/lock/asterisk echo return $RETVAL } restart() { stop start } reload() { $DAEMON -rx 'reload' > /dev/null 2> /dev/null } case "$1" in start) start ;; stop) stop ;; restart) restart ;; reload) reload ;; condrestart) [ -f /var/lock/subsys/asterisk ] && restart || : ;; status) status asterisk ;; *) echo "Usage: asterisk {start|stop|restart|reload|condrestart|status}" exit 1 esac exit $?
Стартуем asterisk
# /etc/rc.d/rc.asterisk start
Заходим в консоль астериска, дабы убедиться, что он работает
# asterisk -rvvv Asterisk 1.6.2.20, Copyright (C) 1999 - 2010 Digium, Inc. and others. Created by Mark Spencer <markster@digium.com> Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details. This is free software, with components licensed under the GNU General Public License version 2 and other licenses; you are welcome to redistribute it under certain conditions. Type 'core show license' for details. ========================================================================= == Parsing '/etc/asterisk/asterisk.conf': == Found == Parsing '/etc/asterisk/extconfig.conf': == Found Connected to Asterisk 1.6.2.20 currently running on XXXXX (pid = 3718) Verbosity is at least 3 *CLI>
Как видим - работает!
Для выхода из консоли нужно набрать exit
FreePBX
Скачиваем FreePBX, распаковываем и в каталоге с программой создаем таблицы (вводим рутовый пароль мускула):
# mysqladmin create asteriskcdrdb -p # mysql -u root -p asteriskcdrdb < ./SQL/cdr_mysql_table.sql # mysqladmin create asterisk -p # mysql -u root -p asterisk < ./SQL/newinstall.sql
Даем права на базы.
# mysql -u root -p mysql> GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asteriskuser@localhost IDENTIFIED BY 'пароль'; mysql> GRANT ALL PRIVILEGES ON asterisk.* TO asteriskuser@localhost IDENTIFIED BY 'можно тот же пароль'; mysql> FLUSH PRIVILEGES; mysql> quit
Даем права на каталоги.
# chown –R asterisk:asterisk /var/lib/asterisk # chown –R asterisk:asterisk /var/log/asterisk # chown –R asterisk:asterisk /var/run/asterisk # chown –R asterisk:asterisk /var/spool/asterisk # chown –R asterisk:asterisk /usr/lib/asterisk # chmod –R 0770 /var/lib/asterisk # chmod –R 0770 /var/log/asterisk # chmod –R 0770 /var/run/asterisk # chmod –R 0770 /var/spool/asterisk # chmod –R 0770 /usr/lib/asterisk
Перезапускаем апач(apache) и астериск(asterisk):
# /etc/rc.d/rc.httpd restart # /etc/rc.d/rc.asterisk restart
Если версия FreePBX > 2.8.x.x, то редактируем файл ./amp_conf/htdocs/admin/librarie/utility.functions.php, комментируя использование функции dbug_write()
//dbug_write($txt); if ($dump==1) {//force output via var_dump ob_start(); var_dump($msg); $msg=ob_get_contents(); ob_end_clean(); //dbug_write($msg."\n\n\n"); elseif(is_array($msg)||is_object($msg)) { //dbug_write(print_r($msg,true)."\n\n\n"); else { //dbug_write($msg."\n\n\n")
Устанавливаем PEAR DB:
# pear install DB
В каталоге с FreePBX устанавливаем его и отвечаем на вопросы.
# ./install_amp Checking for PEAR DB..OK Checking for PEAR Console::Getopt..OK Checking user..OK Checking if Asterisk is running..running with PID: 4240..OK Checking for /etc/amportal.conf../etc/amportal.conf does not exist, copying default Creating new /etc/amportal.conf Enter your USERNAME to connect to the 'asterisk' database: [asteriskuser] Enter your PASSWORD to connect to the 'asterisk' database: [amp109] _пароль_что_дали_в_мускуле_ Enter the hostname of the 'asterisk' database: [localhost] Enter a USERNAME to connect to the Asterisk Manager interface: [admin] Enter a PASSWORD to connect to the Asterisk Manager interface: [amp111] _пароль_под_которым_будет_заходить_admin_в_гуй_ (не понятно зачем надо, ибо все равно входим с паролем «admin») Enter the path to use for your AMP web root: [/var/www/html] /var/www/htdocs// Enter the IP ADDRESS or hostname used to access the AMP web-admin: [xx.xx.xx.xx] _IP_для_подключения_к_веб_морде_по_сети (я дал 192.168.10.234) Enter a PASSWORD to perform call transfers with the Flash Operator Panel: [passw0rd] _пароль_для_подключения_к_панели_оператора_ Use simple Extensions [extensions] admin or separate Devices and Users [deviceanduser]? [extensions] Enter directory in which to store AMP executable scripts: [/var/lib/asterisk/bin] Enter directory in which to store super-user scripts: [/usr/local/sbin] /usr/sbin Please update your modules and reload Asterisk by visiting http://192.168.10.234/admin ************************************************************************* * Note: It's possible that if you click the red 'Update Now' bar BEFORE * * updating your modules, your machine will start dropping calls. Ensure * * that all modules are up to date BEFORE YOU CLICK THE RED BAR. As long * * as this is observed, your machine will be fully functional whilst the * * upgrade is in progress. * *************************************************************************
Если вдруг ошиблись или выдало ошибку, после исправления удаляем файл /etc/amportal.conf и заново устанавливаем. Или говорим
#./install_amp --username=asteriskuser --password=пароль_что_дали_в_мускуле
Для верности:
# amportal stop # amportal start Fetching FreePBX settings with gen_amp_conf.php.. SETTING FILE PERMISSIONS Permissions OK STARTING ASTERISK Asterisk Started STARTING FOP SERVER FOP Server Started
Для входа в FreePBX используем логин-пароль admin admin
Для смены пароля: ( взято с opencsta.org )
создаем файл new-freepbx-password.php вот с таким содержимым:
<?php $newpassword = 'somethingNEW123'; echo sha1($newpassword) ; ?>
Далее командуем:
# chmod a+x new-freepbx-password.php # php -f new-freepbx-password.php 658b27d9ab363eaab080ea65da35ceed21908fe5
Копируем в буфер полученное значение и в мускуле вставляем в таблицу:
# mysql -u root -p Enter password: mysql> use asterisk; Database changed mysql> update ampusers set password_sha1 = '658b27d9ab363eaab080ea65da35ceed21908fe5' where username = 'admin' limit 1; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> quit
Все, можно входить во FreePBX:
login: admin
пароль: somethingNEW123
Объединение
Для удобства приведем файл /var/www/htdocs/index.html к вот такому виду:
<nowiki><HTML> <HEAD> <head> <title>FreePBX</title> <meta http-equiv="Content-Type" content="text/html"> <link href="mainstyle.css" rel="stylesheet" type="text/css">. </head> <body> <div id="page"> <div class="header"> <a href="index.php"><img src="admin/images/freepbx.png"/></a> </div> <div class="message"> Welcome to company ! </div> <div class="content"> <h4><a href="recordings/index.php">Voicemail & Recordings (ARI)</a></h4> <h4><a href="panel/index.php">Flash Operator Panel (FOP)</a></h4> <h4><a href="admin/index.php">FreePBX Administration</a></h4> <h4><a href="vtigercrm/index.php">VtigerCRM</a></h4> <br><br><br><br><br><br> </div> <------></div> </body> </html></nowiki>
И настроим Vtiger для звонков. ( [http://wiki.vtiger.com/index.php/PBX_Manager_Module PBX_Manager_Module] )
Необходимо, что бы внутренние номера пользователей уже были в Asterisk'е !
Для связи с Asterisk'ом:
Настройки → Менеджер Модулей → Менеджер PBX
Далее, для каждого пользователя тигра вводим его внутренний номер и разрешаем звонки.
Мои Настройки →Конфигурация Asterisk
Чтобы звонки поступали в vtiger надо запустить скрипт, а еще лучше, добавить путь к скрипту в /etc/rc.d/rc.local - чтоб стартовал при пуске системы.
# /var/www/vtigercrm/cron/modules/PBXManager/AsteriskClient.php Connecting to asterisk server @ 2011-11-14 07:16:05 Connected successfully Trying to login to asterisk Logged in successfully to asterisk server
Перед запуском скрипта или в случаи ошибки проверим файл /etc/asterisk/manager.conf, если нужно поправим и рестартуем asterisk.
[general] enabled = yes port = 5038 bindaddr = 0.0.0.0 displayconnects=no ;only effects 1.6+ [admin] secret = пароль 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,config,command,dtmf,reporting,cdr,dialplan,originate write = system,call,log,verbose,command,agent,user,config,command,dtmf,reporting,cdr,dialplan,originate
Сюда же можно добавить отдельного пользователя для соединения vtiger.
Теперь, после заведения контрагента (клиента), кликаем на на его номер телефон и звоним прямо из vtiger. При этом сначала звонок идет на ваш внутренний номер и появляется такое окошко .
Обсуждение на форуме