Общая телефонная книга, основанная на CMS/LAMP и используемая Asterisk PBX, имя и номер заносятся в базу MySQL и выводятся, например, в XML-браузере хардфона или браузере. Click to Dial из браузера.
Установка Asterisk Phonebook
Требуются следующие приложения
- Apache Webserver 2.x +
- PHP-Standard-Module 4.2 +
- Asterisk 1.4 +
- MySQL 4.1 +
- FreePBX или trixbox (опционально)
# cd /var/www/htmlСкачайте исходник с помощью wget.
# wget http://www.a-enterprise.ch/ipline/phonebook/phonebook.tar.gzРаспакуйте архив
# tar -xzvf phonebook.tar.gzСоздайте директорию ~/phonebook/upload и установите права на неё rwxrwxrwx
# mkdir phonebook/upload \\ # chmod 777 /var/www/html/phonebook/uploadОтредактируйте php.ini
register_globals = On
Создание базы данных MySQL
CREATE DATABASE IF NOT EXISTS `asterisk` ; CREATE TABLE `pbook` ( `id` int(11) NOT NULL auto_increment, `calld` varchar(50) NOT NULL, `name` varchar(50) NOT NULL, `bemerkung` text NOT NULL, `Diverses` int(1) NOT NULL default '0', KEY `id` (`id`), KEY `calld` (`calld`), KEY `name` (`name`) ) ; CREATE TABLE `pbook_directory` ( `id` int(9) NOT NULL, `tel` varchar(20) NOT NULL, `name` varchar(50) NOT NULL, `strasse` varchar(50) NOT NULL, `ort` varchar(50) NOT NULL, KEY `tel` (`tel`), KEY `name` (`name`) ) ; CREATE TABLE IF NOT EXISTS `users` ( `extension` varchar(20) NOT NULL default '', `password` varchar(20) default NULL, `name` varchar(50) default NULL, `voicemail` varchar(50) default NULL, `ringtimer` int(3) default NULL, `noanswer` varchar(100) default NULL, `recording` varchar(50) default NULL, `outboundcid` varchar(50) default NULL, `directdid` varchar(50) default NULL, `didalert` varchar(50) default NULL, `faxexten` varchar(20) default NULL, `faxemail` varchar(50) default NULL, `answer` tinyint(1) default NULL, `wait` int(2) default NULL, `privacyman` tinyint(1) default NULL ) ; CREATE TABLE IF NOT EXISTS `events` ( `id` int(10) unsigned NOT NULL auto_increment, `timestamp` datetime NOT NULL default '0000-00-00 00:00:00', `event` longtext, `uxtime` int(11) NOT NULL, `DEST` varchar(20) NOT NULL, `SRC` varchar(20) NOT NULL, `UID` varchar(20) NOT NULL, `CID` varchar(20) NOT NULL, `CIDNAME` varchar(50) NOT NULL, `IDdest` varchar(20) NOT NULL, `IDsrc` varchar(20) NOT NULL, `EVNT` varchar(20) NOT NULL, PRIMARY KEY (`id`) ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; CREATE DATABASE IF NOT EXISTS `asteriskcdrdb` ; CREATE TABLE IF NOT EXISTS `cdr` ( `calldate` datetime NOT NULL default '0000-00-00 00:00:00', `clid` varchar(80) NOT NULL default '', `src` varchar(80) NOT NULL default '', `dst` varchar(80) NOT NULL default '', `dcontext` varchar(80) NOT NULL default '', `channel` varchar(80) NOT NULL default '', `dstchannel` varchar(80) NOT NULL default '', `lastapp` varchar(80) NOT NULL default '', `lastdata` varchar(80) NOT NULL default '', `duration` int(11) NOT NULL default '0', `billsec` int(11) NOT NULL default '0', `disposition` varchar(45) NOT NULL default '', `amaflags` int(11) NOT NULL default '0', `accountcode` varchar(20) NOT NULL default '', `uniqueid` varchar(32) NOT NULL default '', `userfield` varchar(255) NOT NULL default '' ) ;Смотри также Команды mysql
Настройки Phonebook
Внесите изменения в файл config.php
Для MySQL
Для MySQL
$mysql_host="localhost"; // eg, localhost - хост MySQL $mysql_user="root"; // пользователь базы данных mysql $mysql_password="********"; // пароль к базе данных mysql $mysql_db_book="asterisk"; // mysql settings DB asteriskcdrdb for cdr tables $cdr_mysql_host="localhost"; // eg, localhost - should not be empty for productive servers $cdr_mysql_user="root"; // mysql db user, if you not shure prefer root $cdr_mysql_password="********"; // insert your password $cdr_mysql_db_book="asteriskcdrdb"; // should be wellОбщие настройки
// Language $language="en"; // A-Z register $anz_numbers=40; // количество записей // диапазон внутенних номеров asterisk: $local_from=1; // range begin $local_to=1000; // range end $local_list="100,209"; // дополнительные номера через запятую $local_freepbx=1; // внутренние номера freepbx, если freepbx нет: $local_freepbx=0 ; // отображаемая длина номера $clidlen=25; // мониторинг событий // пример : $sip_monitoring="100,101,111,112,113"; // 100 = ваш номер $sip_monitoring="100,101,111,112,113"; // 1 = show all report entries | 0 = only the local phone number $report_show_all=1;Для Asterisk
/// Asterisk //////////////////////////////////// // Location of Asterisk LOGFILE $logfile = "/var/log/asterisk/cdr-csv/Master.csv"; // Настройки для Asterisk API в 'manager.conf' // [phonebook] // secret = 1234 // 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 // write = system,call,log,verbose,command,agent,user $UserName="phonebook"; $Secret="1234"; // контекст из которого будет производится набор в extensions.conf $context="from-internal"; //// end of config.php //////////////////////////
Включить поиск по CID для FreePBX
Отредактируйте /etc/asterisk/extensions.conf
# ;; найдите следующий контекст [macro-user-callerid] ;;;; вместо этой строки exten => s,1,Noop(user-callerid: ${CALLERID(name)} ${CALLERID(number)}) ;;;; вставьте следующие две exten => s,n,DBGet(name=cidname/${CALLERIDNUM}) exten => s,n,SetCIDName(${name}) ;;;; дальше отставить код exten => s,n,GotoIf($["${CHANNEL:0:5}" = "Local"]?report) exten => s,n,GotoIf($["${REALCALLERIDNUM:1:2}" != ""]?start) exten => s,n,Set(REALCALLERIDNUM=${CALLERID(number)})Перезапустите Asterisk
CLI> reload
Использование Phonebook
Откройте в браузере http://your_pbx/phonebook/book.php
Укажите в настройках номер своего екстеншена и префикс выхода на внешние линии (если требуется) и сохраните ссылку.
Укажите в настройках номер своего екстеншена и префикс выхода на внешние линии (если требуется) и сохраните ссылку.
Дополнительно
Еслит Вам требуется ограничить доступ к телефонной книге используйте .htaccess.Order deny,allow Allow from localhost Allow from 192.168.1. Deny from all Satisfy any
Оригинальный readme
1 комментарий:
>[macro-user-callerid]
>;;;; вместо этой строки
не вместо, а после.
Отправить комментарий