Это старая версия документа!


Содержание

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 и выше не нужен) <code> # ./configure # make # make install # make samples </code> Создадим скрипт для запуска //asterisk// - **rc.asterisk**, положим его в ///etc/rc.d/// и не забудем дать права на запуск. <code> #!/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 $? </code> Стартуем //asterisk// <code> # /etc/rc.d/rc.asterisk start </code> Заходим в консоль астериска, дабы убедиться, что он работает <code> # 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> </code> Как видим - работает! \\ Для выхода из консоли нужно набрать //exit// ====== FreePBX ====== Скачиваем [[http://www.freepbx.org/download-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 //**<nowiki>http://192.168.10.234/admin</nowiki>//** 
 
 *************************************************************************
 * 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
Для смены пароля: ( взято с [http://wiki.opencsta.org/index.php/FreePBX_-_password_sha1_change_in_database_for_admin_to_reset_lost_password 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. При этом сначала звонок идет на ваш внутренний номер и появляется такое окошко .

Обсуждение на форуме

Навигация
Печать/экспорт
QR Code
QR Code wiki:articles:voip (generated for current page)