Asterisk
Содержание:
- Введение
- Настройка Web сервера
- Кастомная запись разговоров с отображением в Asterisk CDR FreePBX 12
- Установка
- Установка Asterisk
- Установка Mariadb
- Установка Asterisk
- Решение:
- Установка Asterisk Phonebook
- VTiger6 Asterisk интеграция
- Темы блога
- Простые CLI приемы
- extensions_custom.conf sip_custom.conf from-internal-custom
- Заключение
Введение
Устанавливать Asterisk 16 на Centos 8 будем из исходников. Это не для того, чтобы показать олдскул и крутость самостоятельной сборки софта. Это вынужденная мера. Всегда, когда есть возможность установить из пакетов, лучше ей воспользоваться. Либо можно собрать свой пакет и ставить уже из него. Сборка софта из исходников крайняя мера, когда готового пакета просто не существует.
Я устанавливаю версию 16, хотя есть уже 17-я. Именно 16-я версия имеет статус LTS, то есть длительная поддержка. Если вам не нужны новые фичи промежуточных версий, рекомендую всегда ставить lts версии.
Для установки Asterisk 16 на свежую Centos 8 я не нашел репозитория, где бы были собраны все пакеты с зависимостями для быстрой и безпроблемной установки. Так что будем по старинке собирать все руками. Ничего сложного тут нет. Все примерно так же, как и в прошлых версиях. Каких-то новых сложностей или нюансов я не заметил.
Если у вас еще нет готового сервера, то рекомендую мои статьи по установке и настройке Centos.
Настройка Web сервера
Для работы панели FreePBX нужен web сервер с php. Я буду использовать версию php 7.1. Более подробно про настройку web срвера на Centos вы можете прочитать отдельно. Сейчас же коротко пройдем по шагам весь процесс.
Подключаем репозиторий epel, если еще не сделали это ранее.
# yum install epel-release
Подключаем remi репозиторий для centos 7.
# rpm -Uhv http://rpms.remirepo.net/enterprise/remi-release-7.rpm
Ставим пакет yum-utils.
# yum install yum-utils
Активируем репу remi-php71, для этого выполняем команду.
# yum-config-manager --enable remi-php71
Устанавливаем необходимые пакеты для работы сервера voip.
# yum install wget php php-pear php-cgi php-common php-curl php-mbstring php-gd php-mysql php-gettext php-bcmath php-zip php-xml php-imap php-json php-process php-snmp
Далее установим httpd. Он, по идее, должен установиться в качестве зависимости на предыдущем шаге, но на всякий случай проверьте.
# yum install httpd
Теперь нам нужно изменить некоторые параметры httpd — запустить его от пользователя asterisk и включить опцию AllowOverride. Это можно сделать руками в файле /etc/httpd/conf/httpd.conf, либо автоматически с помощью sed.
# sed -i 's/^\(User\|Group\).*/\1 asterisk/' /etc/httpd/conf/httpd.conf # sed -i 's/AllowOverride None/AllowOverride All/' /etc/httpd/conf/httpd.conf
Мы просто выставили следующие параметры:
- User asterisk
- Group asterisk
- AllowOverride All
Httpd запускать пока не надо, так как пользователя asterisk мы еще не создали. Сделаем это после установки asterisk.
Изменим параметр php, который отвечает за максимальный размер загружаемого файла. Дефолтное значение слишком низкое для freepbx. Для этого в /etc/php.ini устанавливаем параметр.
upload_max_filesize = 120M
Сделать это можно либо руками, либо автоматически с помощью sed.
# sed -i 's/\(^upload_max_filesize = \).*/\120M/' /etc/php.ini
С веб сервером закончили. Продолжаем подготовку к установке FreePBX на CentOS.
Кастомная запись разговоров с отображением в Asterisk CDR FreePBX 12
Предположим у вас имеется АТС соединенная транком Е1 с Asterisk, абоненты которой совершают звонки через Asterisk и далее наружу через канал E1 провайдера подключенный к Asterisk.
Исходящие вызовы должны записываться, а ссылки на записанные файлы отображаться во встроенном интерфейсе CDR FreePBX привязанные к внутреннему номеру абонента удаленной АТС. Вызовы же наружу должны закрываться внешним номером CID.
include => record exten => _X.,1,Set(CALLERID(all)="${CALLERID(num)}" <8123216111>) exten => _X.,n,Set(CDR(userfield)=avaya/${CALLERID(name)}) exten => _X.,n,Gosub(sub-record-check-custom1,s,1(out,${EXTEN},)) exten => _X.,n,Dial(DAHDI/g0/${EXTEN} exten => s,1,Set(REC_POLICY_MODE_SAVE=${REC_POLICY_MODE}) exten => s,n,GotoIf($?check) exten => s,n,ResetCDR() exten => s,n,GotoIf($?check) exten => s,n,Set(AUDIOHOOK_INHERIT(MixMonitor)=yes) exten => s,n,MixMonitor(${MIXMON_DIR}${YEAR}/${MONTH}/${DAY}/${CALLFILENAME}.${MIXMON_FORMAT},a,${MIXMON_POST}) exten => s,n(check),Set(__MON_FMT=${IF($?WAV:${MIXMON_FORMAT})}) exten => s,n,GotoIf($?next) exten => s,n,Set(CDR(recordingfile)=${CALLFILENAME}.${MON_FMT}) exten => s,n,Return() exten => s,n(next),ExecIf($?Return()) exten => s,n,ExecIf($?Set(__REC_POLICY_MODE=${ARG3})) exten => s,n,GotoIf($?${ARG1},1) exten => s,n,Set(__REC_STATUS=INITIALIZED) exten => s,n,Set(NOW=${EPOCH}) exten => s,n,Set(__DAY=${STRFTIME(${NOW},,%d)}) exten => s,n,Set(__MONTH=${STRFTIME(${NOW},,%m)}) exten => s,n,Set(__YEAR=${STRFTIME(${NOW},,%Y)}) exten => s,n,Set(__TIMESTR=${YEAR}${MONTH}${DAY}-${STRFTIME(${NOW},,%H%M%S)}) ;exten => s,n,Set(__FROMEXTEN=${IF($?${AMPUSER}:${IF($?${REALCALLERIDNUM}:unknown)})}) exten => s,n,Set(__FROMEXTEN=${CALLERID(name)}) exten => s,n,Set(__CALLFILENAME=${ARG1}-${ARG2}-${FROMEXTEN}-${TIMESTR}-${UNIQUEID}) exten => s,n,Goto(${ARG1},1) ;exten => out,1,ExecIf($?Set(__REC_POLICY_MODE=${DB(AMPUSER/${FROMEXTEN}/recording/out/external)})) ;статус записи вкл exten => out,1,ExecIf($?Set(__REC_POLICY_MODE=always)) exten => out,n,GosubIf($?record,1(exten,${ARG2},${FROMEXTEN})) exten => out,n,Return() exten => record,1,Set(AUDIOHOOK_INHERIT(MixMonitor)=yes) exten => record,n,MixMonitor(${MIXMON_DIR}${YEAR}/${MONTH}/${DAY}/${CALLFILENAME}.${MIXMON_FORMAT},,${MIXMON_POST}) exten => record,n,Set(__REC_STATUS=RECORDING) exten => record,n,Set(CDR(recordingfile)=${CALLFILENAME}.${MON_FMT}) exten => record,n,Return()
Установка
Установку можно выполнить с помощью команды apt install asterisk. Но в данной инструкции мы разберем установку путем сборки из исходников.
Рекомендуется установить Asterisk с DAHDI (драйверы плат интерфейсов телефонии) и LibPRI (библиотека для работы с потоковыми TDM-интерфейсами). Сначала необходимо собрать DAHDI, затем LibPRI и только потом — Asterisk.
Устанавливаем пакеты, необходимые для корректной сборки DAHDI и LibPRI:
apt install make gcc
Сборка DAHDI
Загружаем исходник:
wget https://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz
Распаковываем его и переходим в распакованный каталог:
tar -xvf dahdi-linux-complete-current.tar.gz
cd dahdi-linux-complete-*
Собираем пакет и устанавливаем его:
make
make install
make config
Выходим из каталога dahdi:
cd ..
Сборка LibPRI
Загружаем исходник:
wget https://downloads.asterisk.org/pub/telephony/libpri/libpri-current.tar.gz
Распаковываем:
tar -xvf libpri-current.tar.gz
cd libpri-*
Собираем и устанавливаем:
make
make install
Выходим из каталога libpri:
cd ..
Установка Asterisk
wget https://downloads.asterisk.org/pub/telephony/asterisk/asterisk-15-current.tar.gz
* в моем случае, последняя версия была 15.
Распаковываем архив и переходим в папку, появившуюся после распаковки:
tar -xvf asterisk-*.tar.gz
cd asterisk-*
Устанавливаем зависимости:
./contrib/scripts/install_prereq install
./contrib/scripts/install_prereq install-unpackaged
Удаляем мусор:
make distclean
Устанавливаем библиотеки для работы с mp3:
./contrib/scripts/get_mp3_source.sh
Конфигурируем исходник:
./configure —prefix=/usr —sysconfdir=/etc —localstatedir=/var —libdir=/usr/lib64 —with-dahdi —with-pri —with-iconv —with-libcurl —with-speex
* где:
- —with-dahdi — с драйверами DAHDI.
- —with-pri — с библиотекой PRI.
- —with-iconv — с возможностью конвертации кодировок (будет не лишним для поддержки русских символов).
- —with-libcurl — возможность извлекать данные посредством CURL-запросов (по http).
- —with-speex — дополнительный VBR-кодек (используется на многих софт-фонах).
** список всех доступных опций можно посмотреть командой ./configure -h.
Мы должны увидеть логотип астериска:
.$$$$$$$$$$$$$$$=..
.$7$7.. .7$$7:.
.$$:. ,$7.7
.$7. 7$$$$ .$$77
..$$. $$$$$ .$$$7
..7$ .?. $$$$$ .?. 7$$$.
$.$. .$$$7. $$$$7 .7$$$. .$$$.
.777. .$$$$$$77$$$77$$$$$7. $$$,
$$$~ .7$$$$$$$$$$$$$7. .$$$.
.$$7 .7$$$$$$$7: ?$$$.
$$$ ?7$$$$$$$$$$I .$$$7
$$$ .7$$$$$$$$$$$$$$$$ :$$$.
$$$ $$$$$$7$$$$$$$$$$$$ .$$$.
$$$ $$$ 7$$$7 .$$$ .$$$.
$$$$ $$$$7 .$$$.
7$$$7 7$$$$ 7$$$
$$$$$ $$$
$$$$7. $$ (TM)
$$$$$$$. .7$$$$$$ $$
$$$$$$$$$$$$7$$$$$$$$$.$$$$$$
$$$$$$$$$$$$$$$$.
Вызываем оконное меню настройки модулей:
make menuselect
Для большинства случаев, настройки можно оставить по умолчанию. В противном случае рекомендуется изучить опции и выбрать необходимые. После нажимаем Save & Exit.
Затем собираем исходник:
make
И выполняем установку:
make install
Установим примеры конфигурационных файлов и документацию:
make samples
make progdocs
Устанавливаем скрипт инициализации (для автозапуска):
make config
Устанавливаем скрипты для отсекания логов:
make install-logrotate
Создаем конфигурационный файл для указания дополнительного пути с библиотеками:
vi /etc/ld.so.conf.d/asterisk.conf
Добавляем в него одну строчку:
/usr/lib64
* это путь до каталога с библиотеками, с которым мы собирали asterisk (опция —libdir).
Применяем настройку:
ldconfig
Установка Asterisk
Скачиваем архив последней версии Asterisk с официального сайта.
# cd ~ && wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-16-current.tar.gz
Распаковываем исходники.
# tar zxvf asterisk-*.tar.gz
Переходим в директорию с исходниками.
# cd asterisk*
Выполняем скрипт для установки пакетов с зависимостями для asterisk.
# contrib/scripts/install_prereq install
Запускаем скрипт для скачивания исходников для работы с mp3.
# contrib/scripts/get_mp3_source.sh
Настраиваем конфигурацию:
# ./configure --with-pjproject-bundled --with-jansson-bundled --with-crypto --with-ssl=ssl --with-srtp
Запускаем меню для выбора параметров:
make menuselect
В целом, можно оставить дефолтную настройку, если вы не очень разбираетесь, что тут выбирать. Более подробно можете посмотреть в моей статье про подробную настройку asterisk.
Можно запускать установку asterisk.
# make && make install && make config && make samples && ldconfig
Настроим запуск астериск от системного пользователя asterisk. Для этого редактируем скрипт запуска /usr/sbin/safe_asterisk, установив параметр.
ASTARGS="-U asterisk"
Можете то же самое сделать автоматически.
# sed -i 's/ASTARGS=""/ASTARGS="-U asterisk"/g' /usr/sbin/safe_asterisk
Создадим этого пользователя и назначим нужные права на каталоги.
# useradd -m asterisk # chown asterisk.asterisk /var/run/asterisk # chown -R asterisk.asterisk /etc/asterisk # chown -R asterisk.asterisk /var/{lib,log,spool}/asterisk # chown -R asterisk.asterisk /usr/lib/asterisk
Запускаем Asterisk.
# systemctl start asterisk
Проверьте сразу, что он запустился.
# systemctl status asterisk
Если у вас будут ошибки:
radcli: rc_read_config: rc_read_config: can't open /etc/radiusclient-ng/radiusclient.conf: No such file or directory
То отредактируйте конфигурационные файлы asterisk, заменив в некоторых строках пути на правильные.
# sed -i 's";\"\"g' /etc/asterisk/cdr.conf # sed -i 's";radiuscfg => /usr/local/etc/radiusclient-ng/radiusclient.conf"radiuscfg => /etc/radcli/radiusclient.conf"g' /etc/asterisk/cdr.conf # sed -i 's";radiuscfg => /usr/local/etc/radiusclient-ng/radiusclient.conf"radiuscfg => /etc/radcli/radiusclient.conf"g' /etc/asterisk/cel.conf
После этого перезапустите asterisk, ошибок быть не должно.
Установка Mariadb
В своей работе FreePBX использует базу данных Mysql. В качестве mysql сервера будем использовать mariadb. Подключаем репозиторий со свежей версией MariaDB. Для этого создаем файл /etc/yum.repos.d/MariaDB.repo следующего содержания.
# MariaDB 10.3 CentOS repository list - created 2019-04-01 09:11 UTC # http://downloads.mariadb.org/mariadb/repositories/ name = MariaDB baseurl = http://yum.mariadb.org/10.3/centos7-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1
Устанавливаем MariaDB.
# yum install MariaDB-server MariaDB-client MariaDB-shared
Запускаем mariadb и добавляем в автозагрузку.
# systemctl start mariadb # systemctl enable mariadb
Установка Asterisk
Установка астериска выполняется путем сборки исходников. Сама процедура проходит в 3 этапа:
- Установка DAHDI (драйверов плат интерфейсов);
- Установка LibPRI (библиотека для работы с потоковыми TDM-интерфейсами);
- Собственно, сборка и установка Asterisk.
1. Сборка DAHDI
Загружаем исходник, распаковываем его и переходим в распакованный каталог:
wget https://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz
tar -xvf dahdi-linux-complete-current.tar.gz
cd dahdi-linux-complete-*
Выполняем сборку и установку:
make
make install
make config
Выходим из каталога с исходником:
cd ..
2. Сборка LibPRI
Процедура, во многом, похожа на сборку DAHDI. Загружаем исходник, распаковываем его и переходим в распакованный каталог:
wget https://downloads.asterisk.org/pub/telephony/libpri/libpri-current.tar.gz
tar -xvf libpri-current.tar.gz
cd libpri-*
Выполняем сборку и установку:
make
make install
Выходим из каталога с исходником:
cd ..
3. Установка самого астериска
Для начала, загружаем исходник на сервер. Так как мы планируем установить LTS версию, заходим на страницу https://www.asterisk.org/downloads/asterisk/all-asterisk-versions, раздел «Long Term Support (LTS) Releases» и копируем ссылку на загрузку пакета:
* Certified Asterisk — бизнес версия с поддержкой для коммерческих клиентов.
Используя ссылку, скачиваем на сервер программу:
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-13-current.tar.gz
Распаковываем архив и переходим в него:
tar -xvf asterisk-*.tar.gz
cd asterisk-*
Используем встроенный скрипт, чтобы установить зависимости для астериска:
./contrib/scripts/install_prereq install
./contrib/scripts/install_prereq install-unpackaged
Чистим образовавшиеся временные файлы:
make distclean
Добавляем библиотеку для работы с mp3:
./contrib/scripts/get_mp3_source.sh
Конфигурируем исходник:
./configure —prefix=/usr —sysconfdir=/etc —localstatedir=/var —libdir=/usr/lib64 —with-dahdi —with-pri —with-iconv —with-libcurl —with-speex —with-mysqlclient
* полный перечень опция и что они означают можно посмотреть командой ./configure -h.
Продолжаем настройку:
make menuselect
Выбираем необходимые компоненты (в данном примере res_config_mysql, app_mysql, cdr_mysql):
Запускаем сборку и установку:
make
make install
Устанавливаем скрипты для автозапуска АТС и готовые конфигурационные файлы:
make config
make samples
Установка завершена!
Решение:
В Интернете много вариантов, все они ориентированы на чистый Asterisk.
Примеры:https://wiki.merionet.ru/ip-telephoniya/55/ocenka-raboty-operatora-posle-zvonka-na-asterisk/https://habr.com/ru/post/147122/http://asterisk-service.com/blog/asterisk-1/post/2-0-53
Моя же реализация заключается в том, что все настройки можно делать в Web-интерфейсе FreePBX.Реализация тестировалась и работает на:
— версии Asterisk 1.8.10.1
— FreePBX версии 12.0.76.6
— PHP версии 5.3.10-1ubuntu3.26
— библиотека PHPAGI версии 2.20 2010/09/30 02:21:00 (качаем тут: phpagi.zip)
Первым делом нам нужно определить как генерируется постановка вызова в очередь. Выполняем на сервере Asterisk:
Ищем контекст с названием . Внутри должны быть строки вида
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
ext-queues include => ext-queues-custom exten => 11,1,Macro(user-callerid,) exten => 11,n,Answer exten => 11,n,Macro(blkvm-set,reset) exten => 11,n,ExecIf($"${REGEX("(M(auto-blkvm))" ${DIAL_OPTIONS})}" != "1"?Set(_DIAL_OPTIONS=${DIAL_OPTIONS}M(auto-blkvm))) exten => 11,n,Set(__NODEST=${EXTEN}) exten => 11,n,Set(QCIDPP=${IF($${LEN(${VQ_CIDPP})}>?${VQ_CIDPP} )}) exten => 11,n,Set(VQ_CIDPP=) exten => 11,n,ExecIf($"${QCIDPP}"!=""?Macro(prepend-cid,${QCIDPP})) exten => 11,n,Set(QAINFO=${IF($${LEN(${VQ_AINFO})}>?${VQ_AINFO} )}) exten => 11,n,Set(VQ_AINFO=) exten => 11,n,ExecIf($"${QAINFO}"!=""?Set(__ALERT_INFO=${QAINFO})) exten => 11,n,Set(QJOINMSG=${IF($${LEN(${VQ_JOINMSG})}>?${IF($"${VQ_JOINMSG}"!="0"?${VQ_JOINMSG} )}customzednannja-vstanovleno)}) exten => 11,n,Set(VQ_JOINMSG=) exten => 11,n,Set(QRINGOPTS=r) exten => 11,n,Set(QRETRY=${IF($${LEN(${VQ_RETRY})}>?${VQ_RETRY}n)}) exten => 11,n,Set(VQ_RETRY=) exten => 11,n(qoptions),Set(QOPTIONS=${IF($${LEN(${VQ_OPTIONS})}>?${VQ_OPTIONS}t)}${QCANCELMISSED}${QRINGOPTS}${QRETRY}) exten => 11,n,Set(VQ_OPTIONS=) exten => 11,n(qgosub),Set(QGOSUB=${IF($${LEN(${VQ_GOSUB})}>?${VQ_GOSUB}${QGOSUB})}) exten => 11,n,Set(VQ_GOSUB=) exten => 11,n(qagi),Set(QAGI=${IF($${LEN(${VQ_AGI})}>?${VQ_AGI}${QAGI})}) exten => 11,n,Set(VQ_AGI=) exten => 11,n(qrule),Set(QRULE=${IF($${LEN(${VQ_RULE})}>?${IF($"${VQ_RULE}"!="0"?${VQ_RULE} )}${QRULE})}) exten => 11,n,Set(VQ_RULE=) exten => 11,n(qposition),Set(QPOSITION=${IF($${LEN(${VQ_POSITION})}>?${VQ_POSITION}${QPOSITION})}) exten => 11,n,Set(VQ_POSITION=) exten => 11,n,Gosub(sub-record-check,s,1(q,11,dontcare)) exten => 11,n,ExecIf($"${QJOINMSG}"!=""?Playback(${QJOINMSG}, )) exten => 11,n,QueueLog(11,${UNIQUEID},NONE,DID,${FROM_DID}) exten => 11,n,Set(QAANNOUNCE=${IF($${LEN(${VQ_AANNOUNCE})}>?${IF($"${VQ_AANNOUNCE}"!="0"?${VQ_AANNOUNCE} )} )}) exten => 11,n,Set(VQ_AANNOUNCE=) exten => 11,n,Set(QMOH=${IF($"${VQ_MOH}"!=""?${VQ_MOH} )}) exten => 11,n,Set(VQ_MOH=) exten => 11,n,ExecIf($"${QMOH}"!=""?Set(__MOHCLASS=${QMOH})) exten => 11,n,ExecIf($"${MOHCLASS}"!=""?Set(CHANNEL(musicclass)=${MOHCLASS})) exten => 11,n,Set(QMAXWAIT=${IF($${LEN(${VQ_MAXWAIT})}>?${VQ_MAXWAIT} )}) exten => 11,n,Set(VQ_MAXWAIT=) exten => 11,n,Set(QUEUENUM=11) exten => 11,n,Set(QUEUEJOINTIME=${EPOCH}) exten => 11,n(qcall),Queue(11,${QOPTIONS},,${QAANNOUNCE},${QMAXWAIT},${QAGI},,${QGOSUB},${QRULE},${QPOSITION}) exten => 11,n,Macro(blkvm-clr,) exten => 11,n,Gosub(sub-record-cancel,s,1()) exten => 11,n,Set(__NODEST=) exten => 11,n,Set(_QUEUE_PRIO=) exten => 11,n,Set(QRINGOPTS=) exten => 11,n,Set(QDEST=${VQ_DEST}) exten => 11,n,Set(VQ_DEST=) exten => 11,n(gotodest),GotoIf($"${QDEST}"=""?ext-group,505,1${CUT(QDEST,^,1)},${CUT(QDEST,^,2)},${CUT(QDEST,^,3)}) |
здесь нас интересует строка:
Приложение Queue() генерирует постановку вызова в очередь. Как видим с примера — приложению передаются параметры, которые были сгенерированные перед выполнением приложения Queue(). Смотрим в документацию: https://asterisk-pbx.ru/wiki/asterisk/app/queue
Как видим по документации, если при выполнении приложения Queue(), добавить в аргумент «options» параметр «c», то диаплан продолжит свое выполнения, когда вызываемый (оператор) положил трубку. В нашем случае — диаплан перейдет на пункт «Fail Over Destination» в FreePBX.
По контексту определяем, что если перед поступлением звонка в очередь, мы установим значение «c» переменной VQ_OPTIONS, то приложение Queue() згенерирует постановку вызова в очередь с этим параметом.
Установка Asterisk Phonebook
Требуются следующие приложения
- Apache Webserver 2.x +
-
php 4.2 — 5.3 (в 5.4 без register_globals = On не работает) php 5.4 register_globals
register_globals fix
register_globals fix
foreach (array('_GET', '_POST', '_COOKIE', '_SERVER') as $_SG) { foreach ($$_SG as $_SGK => $_SGV) { $$_SGK = $_SGV; } }
Добавить в начала исполняемого php скрипта.
- Asterisk 1.4 — Asterisk 12
- MySQL 4.1 +
- FreePBX (опционально)
# cd /var/www/html
Скачайте исходник
Распакуйте архив
# tar -xzvf phonebook_asterisk.tar.gz
Создайте директорию ~/phonebook/upload и установите права на неё rwxrwxrwx
# mkdir phonebook_asterisk/upload \\ # chmod 777 /var/www/html/phonebook_asterisk/upload
Отредактируйте php.ini
register_globals = On
VTiger6 Asterisk интеграция
Всплывающие окно входящего вызова (call popups)
При входящем вызове, когда вызов поступает на телефон привязанный к аккаунту агента VTiger,
всплывает окно сообщающее о вызове и предлагающее создать полноценный Контакт или Обращение.
Детализированный отчет о звонках
Ведется полный отчет о совершенных вызовах и запись телефонных переговоров.
Доступна функция Click-To-Call. Если кликнуть на сохраненный номер в отчете о звонках или Контакте, Организации и т.д.,
VTiger вызовет сначала внутренний номер агента, привязанный к аккаунту VTiger,
а когда агент поднимет трубку произведет набор внешнего номера.
Сохраненный контакт.
Каждую запись в Vtiger легко найти и отредактировать.
Благодаря продуманной структуре вся связанная с клиентом информация, также будет под рукой.
Чтобы вы ни искали — Обращения, Контакты, Организации или Контрагентов, вы увидите связанные с ними сообщения емайл, сделки и заметки.
Темы блога
Microsoft Windows
(59)
Microsoft
(58)
Asterisk
(52)
Linux
(51)
Operating system
(47)
Operating Systems
(36)
Windows XP
(34)
Protocols
(28)
Windows
(28)
Business
(19)
(18)
Programming
(18)
FAQs Help and Tutorials
(17)
Windows 7
(17)
Windows Vista
(15)
Администратору на заметку
(14)
Windows Server 2008
(13)
Domain Name System
(12)
IP address
(11)
Open source
(11)
Clients
(10)
Security
(10)
DNS
(9)
Internet Protocol
(9)
Server
(9)
Windows 2000
(9)
Active Directory
(8)
Hardware
(8)
IPhone
(8)
Shareware
(8)
Skype
(8)
Windows Server
(8)
Windows Server 2003
(8)
DNS Providers
(7)
Virtual private network
(7)
Apple
(6)
Domain name
(6)
Dynamic DNS
(6)
Internet Explorer
(6)
Internet Protocol Suite
(6)
Hard disk drive
(5)
RAID
(5)
Web Tools
(5)
Windows NT
(5)
Windows Server 2008 R2
(5)
Cisco Systems
(4)
Computers and Internet
(4)
Dynamic Host Configuration Protocol
(4)
Firewall
(4)
Personal computer
(4)
Search Engines
(4)
Storage
(4)
Symantec
(4)
Yahoo
(4)
DVD
(3)
Local area network
(3)
NTFS
(3)
Opera
(3)
Remote Desktop
(3)
Remote Desktop Protocol
(3)
Router
(3)
Terminal Services
(3)
Wi-Fi
(3)
Window 7
(3)
YouTube
(3)
Сервер терминалов
(3)
Синий экран смерти
(3)
восстановление данных
(3)
BIOS
(2)
Blue Screen of Death
(2)
CD-ROM
(2)
Cisco
(2)
Data recovery
(2)
Disk Management
(2)
General Packet Radio Service
(2)
Internet
(2)
Mac OS
(2)
NTLDR
(2)
RSS
(2)
Remote Access
(2)
Service pack
(2)
Sony Ericsson
(2)
Terminal server
(2)
Transmission Protocols
(2)
Unix
(2)
Window XP
(2)
Windows Mobile
(2)
ntdetect.com
(2)
Почта
(2)
Серверное оборудование
(2)
Cisco IOS
(1)
Conficker
(1)
DirectX
(1)
IPSec
(1)
Java
(1)
Motherboard
(1)
Net-Worm
(1)
Printer
(1)
Telnet
(1)
VentaFax
(1)
Windows 98/ME/NT
(1)
Windows 9x
(1)
Windows Me
(1)
Windows Mobile 6
(1)
Windows XP Professional
(1)
Windows XP editions
(1)
Winsock
(1)
Wireless
(1)
dlink
(1)
ВОССТАНОВЛЕНИЕ ФАЙЛОВ
(1)
Горячие клавиши
(1)
Защита от вирусов
(1)
Интернет
(1)
ОГО
(1)
Сборками Windows
(1)
Серверные шкафы
(1)
Сетевые черви
(1)
Тонкий клиент
(1)
прокси proxy
(1)
Простые CLI приемы
Есть несколько трюков, которые помогут вам в интерфейсе командной строки Asterisk.
Очень удобно завершение неполного ввода клавишей TAB. Если вы введете начало команды и нажмите клавишу Tab, Asterisk попытается завершить имя команды, или покажет возможные команды, которые начинаются с буквы, которые Вы ввели. Например, введите ‘co’, а затем нажмите клавишу Tab.
localhost*CLI> co confbridge config core localhost*CLI> co
Теперь наберите ‘cor’, и нажмите TAB снова. На этот раз Asterisk завершит слово, т.к. ‘core’ является единственной командой, которая начинается с ‘cor’.
Этот трюк также работает с под-командами. Например, наберите ‘core show’ и нажмите TAB. (Возможно, вам придется дважды нажать вкладку, если вы не поставили пробел после слова ‘show’.) Asterisk покажет вам все под-команды.
localhost*CLI> core show application applications calls channel channels channeltype channeltypes codec codecs config file function functions hanguphandlers help hint hints image license profile settings sound sounds switches sysinfo taskprocessors threads translation uptime version warranty localhost*CLI> core show
Повторение предыдущих команд.
Для просмотра ранее введенных команд, нажмите стрелочку вверх, таким образом можно пролистать всю историю назад и вперед.
Run Linux Shell Commands from The Asterisk CLI
Восклицательный знак перед командой позволяет предавать команды оболочке Linux.
localhost*CLI> !whoami root localhost*CLI>
Asterisk -rx
Иногда удобно дать команду, или получить информацию, не подключаясь непосредственно к консоли. Для этого используется ключ ‘-x’.
Например, получить список sip пиров:
# asterisk -rx 'sip show peers'
Команда может заключаться, как в одинарные, так и в двойные кавычки.
Также можно отфильтровать полученные данные командой grep:
# asterisk -rx "sip show peers" | grep unreachebale
logger.conf
Консоль является объектом модуля логов в Asterisk. Что должно отображаться в консоли при подключении, настраивается в конфиге logger.conf
extensions_custom.conf sip_custom.conf from-internal-custom
Во FreePBX предусмотрено использование пользовательских (custom) файлов.
Эти файлы находятся в директории конфигурационных файлов Asterisk и имеют отличительные названия, например:
extensions_custom.conf
sip_custom.conf
и т.д. и т.п.
для более подробной информации о структуре файлов и контекстов FreePBX смотрите статью Файлы и стандартные контексты FreePBX
Стандартный контекст FreePBX from-internal включает в себя файл extensions_custom.conf
Таким образом, если задать какой-либо шаг диалплана в файле extensions_custom.conf
без , это действие будет включено в контекст from-internal и выполняться как диалплан FreePBX.
exten => _810./_1XX,1,Playback(tt-monkeys)
Стандартный контекст FreePBX from-internal включает в себя контекст from-internal-custom.
Создайте контекст с таким именем в файле extensions_custom.conf
и заданный там диалплан будет выполняться, как диалплан FreePBX.
exten => _810./_2XX,1,Goto(app-blackhole,hangup,1)
Рассмотрим простой пример:
Для более гибкого использования FreePBX, может потребоваться написание собственных контекстов в диалплане.
Требуется преобразовывать набираемый номер #XX в *XX.
Замените стандартный контекст екстеншенов from-internal на собственный custom.
В файле /etc/asterisk/extensions_custom.conf создайте контекст:
exten => _1XX,1,Goto(from-internal,${EXTEN},1) exten => _.,1,Goto(from-internal,${EXTEN},1) exten => _#.,1,Noop(add) exten => _#.,n,Set(add=*) exten => _#.,n,Goto(custom-add,${EXTEN},1) exten => _#.,1,Goto(from-internal,${add}${EXTEN:1},1)
При наборе внутренних номеров начинающихся на <1>, а также номеров на другие цифры, вызов будет направлен на обработку в стандартный контекст from-internal.
Набранная же решетка <#>, будет заменена звездочкой <*> и направлена туда же.
Заключение
Настройка Asterisk с нуля не окажется трудной как специалисту, так и новичку. Asterisk является отличным решением компьютерной телефонии.
Сервис работает на многих операционных системах, которые можно подобрать под версию ядра системы пользователя. Астериск обладает множеством функций, таких как конференц-связь, голосовая почта, Calldetailrecord и другие.
Астериск доступен в Ubuntu, но его также можно установить и на Windows.
Для удобства можно использовать Freepbx, так как это функциональный интерфейс для настройки Астериска. Он переводит текст программы на понятный язык, что облегчает задачу. С помощью данной программы можно легко менять количество абонентов, так как платформа очень гибкая и многое позволяет.
Не надо ставить лишние пробелы и ошибаться в написании команд. Совсем незаметные ошибки могут не допустить работу программы.
Разобравшись в этой системе, можно получить много новых возможностей, которые не были доступны всем раньше.