Настройка IP-PBX

Описание развёртывания IP телефонии
Scorp
Сообщения: 22
Зарегистрирован: 16 янв 2009, 14:19

Настройка очереди звонков

Сообщение Scorp »

Наткнулся тут на интересную функцию астериска, а именно настройка очереди звонков и решил попробовать у себя:
прописал в queues.conf группу (отдел) с которой буду работать

Код: Выделить всё

[peo]
timeout=5
strategy = rrmemory
member => SIP/2422
member => SIP/2421
member => SIP/2420
в extensions.conf прописал правило

Код: Выделить всё

[gorod-in]
exten => 2422,1,Answer
exten => 2422,2,Queue(peo,t,,)
exten => 2422,3,Hangup
контекст gorod-in - это у меня сюда идут звонки с шлюза (города)

в sip.conf добавил

Код: Выделить всё

[default]
limitonpeers = yes
без этого работать очередь не будет!!!

В итоге городской входящий звонок у меня приходит рандомно на любой из 3 номеров (2420-2422) и переходит между ними через каждые 5 сек. если не берут трубку.

Также есть другие режимы strategy:

Код: Выделить всё

    * ringall: вызываются все доступные участники до тех пор, пока кто-то из них не ответит на вызов (по умолчанию).
    * roundrobin: циклически вызывается каждый из доступных участников. (Устарело в версии 1.4, используйте: rrmemory)
    * leastrecent: Вызывается первый свободный участник, который меньше всего вызывался из этой очереди.
    * fewestcalls: Вызывается первый свободный участник, который обработал наименьшее количество вызовов из данной очереди.
    * random: случайным образом вызывается не занятый участник, обрабатывающий очередь.
    * rrmemory: циклическое распределение с памятью, запоминается последний участник, ответивший на вызов. 
Scorp
Сообщения: 22
Зарегистрирован: 16 янв 2009, 14:19

Запись разговоров

Сообщение Scorp »

Озадачился я тут вопросом записи определенных разговоров в Asterisk - для этих целей существует функция MixMonitor, но т.к она пишет в формате wav и получаемые файлы занимают много места, то естественно нам хочется сконвертировать в более сжатый формат (например mp3), для этого установим:

Код: Выделить всё

# cd /usr/ports/audio/lame
# make install clean
# rehash
Диалплан у меня получился следующий:

Код: Выделить всё

exten => 2400,1,Set(fname=/work/asterisk/${STRFTIME(,,%G/%m/%d)}/${STRFTIME(${EPOCH},,%Y%m%d%H%M)}-${CALLERID(number)}-${EXTEN})
exten => 2400,n,Set(monopt=nice -n 19 /usr/local/bin/lame -b 16 --silent ${fname}.wav ${fname}.mp3 && rm -f ${fname}.wav)
exten => 2400,n,MixMonitor(${fname}.wav,b,${monopt})
exten => 2400,n,Dial(SIP/2400)
таким образом звонок поступивший на 2400 запишется в определенной папке по дате и с уникальным именем файла в сжатом формате mp3.
Последний раз редактировалось Scorp 08 фев 2012, 08:19, всего редактировалось 1 раз.
Scorp
Сообщения: 22
Зарегистрирован: 16 янв 2009, 14:19

Готовое решение для диспетчеров

Сообщение Scorp »

Правила исходящих звонков (khk - местные номера, slugby - 2-х и 3-х значные номера различных служб) extensions.conf:

Код: Выделить всё

############### Стол заказов ##############################################################################################
[zakaz]
include => khk
include => slugby
include => gorod-zakaz
include => mejgorod-zakaz
include => demo

[gorod-zakaz]
exten => _XXXXX,1,Set(fname=/work/asterisk/${STRFTIME(,,%G/%m/%d)}/${STRFTIME(${EPOCH},,%Y%m%d%H%M)}-${CALLERID(number)}-${EXTEN})
exten => _XXXXX,n,Set(monopt=nice -n 19 /usr/local/bin/lame -b 16 --silent ${fname}.wav ${fname}.mp3 && rm -f ${fname}.wav)
exten => _XXXXX,n,MixMonitor(${fname}.wav,b,${monopt})
exten => _XXXXX,n,Dial(SIP/${EXTEN}@192.168.34.10,120)

[mejgorod-zakaz]
exten => _8.,1,Set(fname=/work/asterisk/${STRFTIME(,,%G/%m/%d)}/${STRFTIME(${EPOCH},,%Y%m%d%H%M)}-${CALLERID(number)}-${EXTEN})
exten => _8.,n,Set(monopt=nice -n 19 /usr/local/bin/lame -b 16 --silent ${fname}.wav ${fname}.mp3 && rm -f ${fname}.wav)
exten => _8.,n,MixMonitor(${fname}.wav,b,${monopt})
exten => _8.,n,Dial(SIP/${EXTEN}@192.168.34.10,120)
exten => _X.,1,Set(fname=/work/asterisk/${STRFTIME(,,%G/%m/%d)}/${STRFTIME(${EPOCH},,%Y%m%d%H%M)}-${CALLERID(number)}-${EXTEN})
exten => _X.,n,Set(monopt=nice -n 19 /usr/local/bin/lame -b 16 --silent ${fname}.wav ${fname}.mp3 && rm -f ${fname}.wav)
exten => _X.,n,MixMonitor(${fname}.wav,b,${monopt})
exten => _X.,n,Dial(SIP/${EXTEN}@192.168.34.10,120)
#########################################################################################################################
Правила входящих звонков в extensions.conf:

Код: Выделить всё

[gorod-in]
exten => 2437,1,Set(fname=/work/asterisk/${STRFTIME(,,%G/%m/%d)}/${STRFTIME(${EPOCH},,%Y%m%d%H%M)}-${CALLERID(number)}-${EXTEN})
exten => 2437,n,Set(monopt=nice -n 19 /usr/local/bin/lame -b 16 --silent ${fname}.wav ${fname}.mp3 && rm -f ${fname}.wav)
exten => 2437,n,MixMonitor(${fname}.wav,b,${monopt})
exten => 2437,n,Answer
exten => 2437,n,Queue(zakaz,tT,,)
exten => 2437,n,Hangup
Обращаю ваше внимание на то, что в sip.conf телефоны стола заказов должны описаны быть "context=zakaz", а номер привязанный к городским линиям "context=gorod-in"

Правило в очереди queues.conf:

Код: Выделить всё

[zakaz]
timeout=10
strategy = rrmemory
periodic-announce = queue-callswaiting
periodic-announce-frequency = 30
member => SIP/2437
member => SIP/2438
member => SIP/2439
Тут мы имеем 3 телефона, между которыми звонки будут переходить через каждые 10 сек, а если заняты все телефоны, то через 30 сек ожидания девушка скажет "Ожидайте пожалуйста ответа оператора".

Звуковые файлы с русской озвучкой необходимо распаковать в /usr/local/share/asterisk/sounds/, в sip.conf должно быть указано "language=ru", можно файлы прослушать и вставить что то свое.

Русскую озвучку можно скачать здесь:
http://192.168.34.2/asterisk-sounds-ru- ... -28.tar.gz
http://192.168.34.2/asterisk-sounds-ru- ... -28.tar.gz
http://192.168.34.2/asterisk-sounds-ru- ... -28.tar.gz

Дополнение статьи по ТЗ от САП
Для проигрывания сообщения "Внимание, в целях улучшения качества обслуживания, разговоры записываются" при входящих звонках диспетчеру от клиента , в начало нашего "диалплана" добавляем:

Код: Выделить всё

exten => 2400,1,Playback(/usr/local/share/asterisk/sounds/ru/calls-are-recorded)
и не забываем сменить нумерацию приоритетов!!!

Для проигрывания сообщения на стороне клиента при исходящем звонке от диспетчера:

Код: Выделить всё

exten => 2400,1,Dial(SIP/2400,,A(/usr/local/share/asterisk/sounds/ru/calls-are-recorded),)
Для ограничения архива записей неделей, создадим скрипт mp3tosap.sh следующего содержания:

Код: Выделить всё

#!/bin/sh
find /work/asterisk/ \! -newerct '7 days ago' -delete
дадим ему права на выполение:

Код: Выделить всё

chmod +x mp3tosap.sh
и пропишем в задания крона /etc/crontab на выполение этого скрипта ночью:

Код: Выделить всё

# 7 Days mp3 Asterisk
0<----->1<----->*<----->*<----->*<----->root<-->/usr/local/etc/mp3tosap.sh
Последний раз редактировалось Scorp 14 фев 2012, 15:12, всего редактировалось 10 раз.
asorochenkov
Сообщения: 14
Зарегистрирован: 11 мар 2011, 09:59

Re: Настройка IP-PBX

Сообщение asorochenkov »

Сегодня столкнулся с астериском, пытаюсь перейти на asterisk10,появились проблемы с модулями, далее описание что и зачем, может кому поможет
Как известно, программная АТС Asterisk использует модульную структуру, и по умолчанию Asterisk загружает большое количество модулей, которые в принципе вам никогда могут и не пригодится - различные кодеки, команды, средства для работы с базами данных, каналы. А отключение лишних модулей позволит освободить память и сделать вашу АТС менее уязвимой.

К сожалению, информация о различных модулях разбросана по интернету и не систематизирована, тем более мало информации, переведенной на русский язык. У меня в ходе работы накопилось n-ое количество записей о всевозможных модулях, сейчас постараюсь собрать и в общую кучку и выложить на всеобщее обозрение.

Итак, существует две схемы загрузки модулей - загрузка всех модулей, находящися в директории, указанной в параметре astmoddir из секции [directories] файла asterisk.conf, и загрузка только модулей, указанных к загрузке в файле modules.conf. Параметр autoload в секции [modules] этого файла отвечает за выбор одной из этих схем. Параметр может принимать значения yes (загрузка всех модулей) и no (загрузка только указаных модулей). Я пользуюсь первой схемой. В этом случае вам нужно в секции [modules] файла modules.conf перечислить модули, которые вы хотите отключить, следующим образом: noload => модуль. Ниже я привожу список модулей, отключенных таким образом на моих системах:

pbx_ael.so
Парсер для The Asterisk Extension Language (AEL). AEL планировался для того, чтобы предоставить настоящий язык программирования, который бы мог быть использован для написания диалплана Астериска.

pbx_lua.so
Модуль pbx_lua, дающий возможность писать диал планы на lua - «легковесном» скриптовом языке.

res_timing_pthread.so
Один из нескольких альтернативных модулей для получения синхронизирующего временного сигнала.

res_jabber.so
Модуль для подключения Астериска к серверу XMPP в качестве клиента. Астериск может взаимодействовать с джаббер-сервер следующим образом: 1) сообщать о звонках пользователю; 2)узнавать о состоянии (presence) пользователя у джаббер-сервера, и в зависимости от этого принимать решение о передаче звонка по тому или иному направлению.

res_config_ldap.so
Модуль, позволяющий использовать LDAP сервер как источник данных для конфигурации в реальном времени.

chan_jingle.so
Модуль канала Jingle. Jingle — это дополнение к протоколу XMPP, позволяющее передавать между двумя клиентами аудио- и видеоданные.

chan_gtalk.so
Модуль канала Gtalk. Предназначен для совершения звонков с помощью сервиса Google Talk.

app_chanspy.so
Модуль для прослушивания каналов астериска.

app_dictate.so
Модуль записи и воспроизведения надиктованного текста (Virtual Dictation Machine).

app_forkcdr.so
Модуль для получения из одной CDR-записи двух раздельных.

app_adsiprog.so
Модуль для программирования ADSI-телефона заданным скриптом.

app_festival.so
Модуль для произнесения заданного текста абоненту, используя систему синтеза речи Festival.

app_getcpeid.so
Получение и отображение CPE ID для ADSI-телефонов.

app_morsecode.so
Передача заданной строки азбукой Морзе.

app_page.so
Пейджинг через телефоны, т.е. передача голосового сообщения через насколько телефонов. Команда Page совершает исходящий вызов абонентов и соединяет их всех в одну конференцию, как участников с отключенными микрофонами. Абонент, совершающий вызов, помещается в эту конференцию, как единственный участник, который может в ней говорить, а после его выхода из конференции она будет закрыта и уничтожена.

app_sendtext.so
Отправка текста клиенту через канал, на котором уже установлено соединение.

app_controlplayback.so
Проигрывание звукового файла с возможностью перемотки вперед, назад и останова.

app_milliwatt.so
Генерация чистого тона 1000Hz с уровнем 0dbm.

app_disa.so
Точка входа в систему DISA - позволяет позвонить на определенный номер в АТС извне и далее совершать вызовы с АТС на другие телефоны.

app_image.so
Отправка изображения в канал, если он поддерживает эту возможность.

app_sayunixtime.so
Команда, проговаривающая дату и/или время абоненту.

app_sms.so
Отправка SMS из Asterisk. "SMS" трактуется в этом случае не как сервис сообщений GSM-сетей, а скорее как сервис обмена мгновенных сообщений типа MSN.

app_url.so
Заставляет клиента перейти по заданному URL.

app_zapateller.so
Блокировка telemarketers с использованием специального информационного тонального сигнала.

app_flash.so
Отправка сигнала "Flash" через DAHDI (Zap) транк.

app_talkdetect.so
Проигрывает в фоне звуковой файл, совершает переход на екстеншен, выбранный пользователем при помощи DTMF или на екстеншен "talk", если на линии обнаружен голос.

chan_mgcp.so
Media Gateway Control Protocol (Протокол контроля медиа-шлюзов).

chan_skinny.so
Драйвер протокола для "Cisco Skinny Client Control Protocol" Это корпоративный (проприетарный) протокол, в настоящее время принадлежащий Cisco Systems Inc.

chan_phone.so
Канал для работы с драйвером "Linux Telephony".

chan_unistim.so
Модуль канала, позволяющий использовать с Asterisk телефоны Nortel, работающие по протоколу Unistim.

chan_alsa.so
chan_oss.so

Драйверы каналов OSS и ALSA, которые позволяет использовать канал CONSOLE (консоль). Нельзя грузить оба драйвера.

cdr_odbc.so
Модуль для хранения данных CDR в локальной или удаленной базе данных посредством интерфейса ODBC.

cdr_csv.so
Модуль для хранения данных CDR в текстовых файлах CSV.

cdr_radius.so
Модуль для отправки CDR записей на сервер RADIUS.

cdr_tds.so
Модуль для хранения данных CDR в базе данных FreeTDS.

cdr_sqlite.so
Модуль для хранения данных CDR в базе данных SQLite.

cdr_pgsql.so
Модуль для хранения данных CDR в базе данных PostgreSQL.

chan_capi.so
С помощью этого модуля вы можете работать с ISDN BRI картами с CAPI.
Vitamin
Сообщения: 14
Зарегистрирован: 02 мар 2010, 13:50
Контактная информация:

Настройка голосового меню

Сообщение Vitamin »

Появилась необходимость голосового меню, задача поставлена, делаем.
Определился, что буду выводить "дерево" меню в отдельный файл, так мне показалось удобным.
Начинаем:
Создадим сразу файлик нашего "дерева", как назвать его, в принципе всё-равно. ;)

Код: Выделить всё

voip# cd /usr/local/etc/asterisk/
voip# touch slavpek.ru
Пока бросаем его, идём в extensions.conf и добавляем в общий план маршрутизации наш файлик.
В самом начале конфнига:

Код: Выделить всё

#include "slavpek.ru"
(#) - решётку обязательно.
Далее перейдём в контекст для в ходящих вызовов, у меня это [default] и добавим туда строку:

Код: Выделить всё

exten => 5699,1,Goto(slavpek_ru,s,1)
В данном случае я использовал у себя свободный номер 5699, как у вас будет не известно.
С планом закончили, переходим к созданному файлу slavpek.ru, и непосредственно к самому голосовому дереву.
Начнём, одно из простейших голосовых меню:

Код: Выделить всё

[slavpek_ru] ; Собстно название
exten => s,1,Answer() ; Привет входящий вызов
exten => s,n,Background(ИМЯ ФАЙЛА) ; Проигрываем приветствие
exten => s,n(menu),Background(ИМЯ ФАЙЛА) ; Описание нашего дерева
exten => s,3,WaitExten(10) ; Десять секунд чтоб осмыслить услышанное.
exten => 1,1,Goto(one,s,1) ;  Переход в контекст one по нажатии клавиши "один"
exten => 2,1,Goto(two,s,1) ; Переход в контекст two по нажатии клавишы "два"
exten => 3,1,Goto(three,s,1) ; Переход в контекст three по нажатии клавишы "три"
exten => i,1,Playback(pbx-invalid) ; Проигрывает файлик из базы, при неправильном наборе
exten => i,n,Goto(s,menu) ; И отправляет его обратно к описанию дерева
exten => t,1,Dial(SIP/НОМЕР СЕКРЕТАРЯ,120) ; Если не набрали ничего, отправляет к секретарю
exten => t,n,Playback(vm-nobodyavail) ; Серкетарь не ответил, можно завернуть к директору звонок, но пока не будем ;-)
exten => t,n,Hangup() ; Кладём трубку

[one] ; Контекст one
exten => s,1,Dial(SIP/НОМЕР,120) ; Звоним товарищу one
exten => s,n,Playback(vm-nobodyavail) ; Никто не ответил
exten => s,n,Hangup() ; Кладём трубку

[two] ; Контекст two
exten => s,1,Dial(SIP/НОМЕР,120) ; Звоним товарищу two
exten => s,n,Playback(vm-nobodyavail) ; Никто не ответил
exten => s,n,Hangup() ; Кладём трубку

[three] ; Контекст three
exten => s,1,Dial(SIP/НОМЕР,120) ; Звоним товарищу three
exten => s,n,Playback(vm-nobodyavail) ; Никто не ответил
exten => s,n,Hangup() ; Кладём трубку
Ну вот как-то так.
Заходим в Астериск, перегружаем.

Код: Выделить всё

voip# asterisk -r
voip*CLI>reload
Звоним на 5699 и наслаждаемся, нет не наслаждаемся, :roll: образовался маленький косячёк с DTMF сигналами.
Дополнительные сигналы не обрабатываются то с IP телефонов то с телефонов LDK 300, пичалька.
Идём в sip.conf, находим параметр dtmfmode, меняем его значение на auto.
Опять же перегружаемся и теперь наслаждаемся проделанным.
Да, не забываем что если звонки нужно направить не на Asterisk, а на LDK, то звонить товарищам мы будем так:

Код: Выделить всё

exten => s,1,Dial(SIP/НОМЕР@192.168.0.1,120)
В данном случае звонок уходит на cisco, а оттуда на LDK 300
RomA
Сообщения: 358
Зарегистрирован: 05 авг 2008, 14:53
Контактная информация:

Вебморда - Установка

Сообщение RomA »

Внимание, вебморда сотрёт все ваши старые конфиги и даже не сделат бекапов!!!!

Вступление:
1) статья написана "для того что бы была"
2) мне не понравилось управлять через вебморду
3) вам не советую
4) предупреждаю что при установке и работе затирает ваши конфиги

Задача:
Установить вебморду управления asterisk

Подготовка:
Выбираем вебморды:
1) http://monast.sf.net
+ есть в портах
- последний релиз год назад

2) asterisk-gui
+ вроде как родная
- почему то не применяется даже самими авторами
- нет в портах

3) FreePBX - с неё и начнём
+ рекомендуется авторами
+ распространена
- нет в портах

Реализация:
Скачиваем дистрибутив и распаковываем

Код: Выделить всё

gw# tar -xzf freepbx-2.10.0.tar.gz 
затем правим файлик

находясь в корне распаковываного дистрибутива создадим БД и зальём структуру таблиц

Код: Выделить всё

mysqladmin create asterisk -pВашПароль
mysqladmin create asteriskcdrdb -pВашПароль
mysql asterisk < SQL/newinstall.sql -pВашПароль
mysql asteriskcdrdb < SQL/cdr_mysql_table.sql -pВашПароль
mysql -pВашПароль
GRANT ALL PRIVILEGES ON asterisk.* TO asteriskuser@localhost IDENTIFIED BY 'ВашПароль';
GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asteriskuser@localhost IDENTIFIED BY 'ВашПароль';
flush privileges;
quit;
Теперь надо запустить астериск, убедиться что он работает

Код: Выделить всё

servre#chown -R asterisk:asterisk /usr/local/share/asterisk
servre#/usr/local/etc/rc.d/asterisk start
Starting asterisk.

servre#asterisk -r
Asterisk 10.11.1, Copyright (C) 1999 - 2012 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.
=========================================================================
Connected to Asterisk 10.11.1 currently running on gw (pid = 57067)
server*CLI> exit
servre# 
и только после этого приступать к установке вебморды.
Тут уместно упомянуть что использует вебморда и что должно быть уже установленно. Конечно это вебсервер, asterisk и php, причём последний собранный с CLI. ну а так же (обратите внимание что по мимо установки создаю симлинки, а для pear генерирую БД):

Код: Выделить всё

cd /usr/ports/shells/bash && make install clean && rehash
ln -s /usr/local/bin/bash /bin/bash
cd /usr/ports/sysutils/pidof && make install clean && rehash
cd /usr/ports/sysutils/sudo && make install clean && rehash
cd /usr/ports/devel/pear && make install clean && rehash && pear install DB && rehash
Итак, частично с чем то мы справились - с этим нам очень сильно помог последний совет вот по этой ссылке http://www.freepbx.org/support/document ... or-freebsd

Для правильного назначения прав скрипт установки использует sudo и для его работы мне пришлось выполнить вот такую команду

Код: Выделить всё

chmod -s /usr/local/bin/sudo
Правим файлы на предмет нахождения обьектов у нас
asterisk.conf

Код: Выделить всё

[directories]
astetcdir => /usr/local/etc/asterisk
astmoddir => /usr/local/lib/asterisk/modules
astvarlibdir => /usr/local/share/asterisk
astagidir => /usr/local/share/asterisk/agi-bin
astspooldir => /var/spool/asterisk
astrundir => /var/run/asterisk
astlogdir => /var/log/asterisk

[options]
transmit_silence_during_record = yes.
languageprefix=yes
execincludes=yes
amportal.conf

Код: Выделить всё

AMPDBHOST=localhost
AMPDBENGINE=mysql
AMPENGINE=asterisk
AMPMGRUSER=admin
AMPMGRPASS=AMPMGRPASS
AMPBIN=/usr/local/share/asterisk/bin
AMPSBIN=/usr/local/sbin
AMPWEBROOT=/usr/local/www/freepbx
AMPCGIBIN=/usr/local/www/apache22/cgi-bin 
FOPWEBROOT=/usr/local/www/freepbx/panel
FOPPASSWORD=passw0rd
ARI_ADMIN_USERNAME=admin
ARI_ADMIN_PASSWORD=ari_password
AUTHTYPE=database
AMPEXTENSIONS=extensions
install_amp - тут привожу только то, что правил, ибо файл большой

Код: Выделить всё

define("ASTERISK_CONF", "/usr/local/etc/asterisk/asterisk.conf");
$webroot<------>= "/usr/local/www/freepbx";
Но не смотря на это огромное колличество путей прописано в самих скриптах, потому всё же прийдётся сделать

Код: Выделить всё

ln -s /usr/local/etc/asterisk/ /etc/asterisk
ln -s /usr/local/share/asterisk /var/lib/asterisk
mkdir /var/www/
chmod 777 /var/www/
ln -s /usr/local/www/freepbx/ /var/www/html
И зачем я только пути в начале правил... ну да ладно - приступаем к установке вебморды

Код: Выделить всё

server# ./install_amp
Checking for PEAR DB..OK
Checking for PEAR Console::Getopt..OK
Checking user..OK
Checking if Asterisk is running..running with PID: 89050..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] AMPMGRPASS
Enter the path to use for your AMP web root:
 [/usr/local/www/freepbx] 

PHP Warning:  filesize(): stat failed for /var/log/asterisk/freepbx_debug in /usr/local/install/freepbx-2.10.0/amp_conf/htdocs/admin/libraries/utility.functions.php on line 641
Created /usr/local/www/freepbx
Enter the IP ADDRESS or hostname used to access the AMP web-admin:
 [192.168.1.1] 192.168.10.100
Use simple Extensions [extensions] admin or separate Devices and Users [deviceanduser]?
 [extensions] 
Enter directory in which to store AMP executable scripts:
 [/usr/local/share/asterisk/bin] 

Created /usr/local/share/asterisk/bin
Enter directory in which to store super-user scripts:
 [/usr/local/sbin] 

дальше было много всего непонятного
Ну вот - что-то он сделал. в конце написал что надо перезупустить апачь - воспользуемся советом

Код: Выделить всё

server# /usr/local/etc/rc.d/asterisk stop
Stopping asterisk
server# /usr/local/etc/rc.d/asterisk start
Starting asterisk.
server# 
Теперь хотелось бы увидеть уже то, ради чего старались, но пока что рано - надо настроить апачь на то чудо, что мы воздвигли. У меня на сервере ничего не стоит, потому не долго думая в файле /usr/local/etc/apache22/httpd.conf вместо юзера www прописал юзера asterisk

Код: Выделить всё

User asterisk
Group asterisk
Ну как-то же ему надо усправлять астериском, не от пользователя же веба )))
В этой же файл вносим ещё одно изменение - открываем виртуалхосты

Код: Выделить всё

# Virtual hosts
Include etc/apache22/extra/httpd-vhosts.conf
по сути мы просто разкоментировали, что бы этот файл подключался - нужно это что бы прописать нашу вебморду (можно и по дургому - симлинком или там просто в корень переместить - я выбрал такой путь)- в файле /usr/local/etc/apache22/extra/httpd-vhosts.conf

Код: Выделить всё

<VirtualHost *:80>
    ServerAdmin roman@serevr.ru
    DocumentRoot "/usr/home/www/freepbx"
    ServerName freepbx.server.ru
    ServerAlias www.freepbx.server.ru
    ErrorLog "/var/log/www/freepbx-error_log"
    CustomLog "/var/log/www/freepbx-access_log" common
    <Directory "/usr/home/www/freepbx/">
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>
после этого апачь следует перезапустить, заодно применятся те модули php, которые вы наверняка наставили, когда скрипт пытались запустить )))

Код: Выделить всё

gw# /usr/local/etc/rc.d/apache22 stop
Stopping apache22.
Waiting for PIDS: 6735.
gw# /usr/local/etc/rc.d/apache22 start
Performing sanity check on apache22 configuration:
Syntax OK
Starting apache22.
gw# 
Но и это ещё не всё... дело в том, что у меня стоит php5.4 для которого явно не адаптирована данная версия FreePBX так что для работы надо поправить файлик /usr/local/www/freepbx/admin/modules/recordings/functions.inc.php а именно найти там $_REQUEST и заменить на $REQUEST - то есть удалить нижнее подчёркивание - таких мест у вас в файле будет 3 шт

ну а теперь можно и посмотреть на вебморду )))))

Вывод:
1) Установка проходит очень сложно - мне так и не удалось избивиться от всех ошибок
2) В портах нет, потому многое приходится додумывать
3) Мусорит по всей системе - особенно это заметно при обновлении - там вообще не действуют те новые пути, что мы прописали - она ломится на старые
4) Затирает не только старые файлы конфига астериска, но и удаляет те изменения, которые вы внесли не через неё
5) Так и не удалось настроить русский язык в интерфейсе :(

Итого, для работы совершенно бесполезная вещь, так как сложность присутствует и в установки, и в обновлении и в работе.

Ну и на последок немного картинок как это выглядит:
Стартовая страничка
Стартовая страничка
1.jpg (18.98 КБ) 17737 просмотров
Вебинтерфейс голосовой почты
Вебинтерфейс голосовой почты
2.jpg (33.08 КБ) 17737 просмотров
Стартовая страничка управления
Стартовая страничка управления
3.jpg (163.17 КБ) 17737 просмотров
RomA
Сообщения: 358
Зарегистрирован: 05 авг 2008, 14:53
Контактная информация:

Вебморда - Интерфейс и работа

Сообщение RomA »

Данная статья является продолжение предыдущей и призвана показать вебинтерфейс, что бы вы сделали вывод - нужно ли оно вам или нет.
Первоначальные скрины входа в систему преведены так же в предыдущей статье, потому продолжаем.

Для начала обновим существующие модули и установим новые, которые нам пригодятся - делается это в Admin -> Module Admin
4.jpg
4.jpg (142.58 КБ) 17736 просмотров
5.jpg
5.jpg (116.27 КБ) 17736 просмотров
6.jpg
6.jpg (102.71 КБ) 17736 просмотров
7.jpg
7.jpg (39.04 КБ) 17736 просмотров
8.jpg
8.jpg (17.42 КБ) 17736 просмотров
9.jpg
9.jpg (46.78 КБ) 17736 просмотров
10.jpg
10.jpg (41.04 КБ) 17736 просмотров
11.jpg
11.jpg (84.4 КБ) 17736 просмотров
Итак мы закончили обновлять модули (11 скриншотов, а следовательно и шагов, что бы обновиться- жесть)
Теперь давайте создадим хоть один телефончик - делается это в Applications -> Extensions где мы выбираем Generic SIP Device
Но что бы астериск об этом знал нам прийдётся залезть в консоль и в конец файла /usr/local/etc/asterisk/sip.conf добавить следующие строки

Код: Выделить всё

#include sip_additional.conf
#include sip_general_additional.conf
и в файл /usr/local/etc/asterisk/extensions.conf

Код: Выделить всё

#include extensions_additional.conf
После чего продолжим копаться в вебе
12.jpg
12.jpg (35.33 КБ) 17736 просмотров
добавляем новый номер
13.jpg
13.jpg (67.54 КБ) 17736 просмотров
при необходимости добавляем ещё один и сохраняемся
14.jpg
14.jpg (40.66 КБ) 17736 просмотров
Я добавил 2 номера и позвонил друг на друга. В качестве context я списывал from-internal-additional - без этого звонки не ходили. Его же я поставил и в глобальных настройках SIP - Settings -> Asterisk SIP Settings
16.jpg
16.jpg (71.68 КБ) 17736 просмотров
Если вам лень позвонить на другой телефон - воспользуйтесь уже готовыми кодами, описанными в Reports -> Print Extensions
Feature Code Admin
Asterisk General Call Pickup *8
Blacklist a number *30
Blacklist the last caller *32
Call Forward All Activate *72
Call Forward All Deactivate *73
Call Forward All Prompting Deactivate *74
Call Forward Busy Activate *90
Call Forward Busy Deactivate *91
Call Forward Busy Prompting Deactivate *92
Call Forward No Answer/Unavailable Activate *52
Call Forward No Answer/Unavailable Deactivate *53
Call Forward Toggle *740
Call Trace *69
Call Waiting - Activate *70
Call Waiting - Deactivate *71
Camp-On Cancel *83
Camp-On Request *82
Camp-On Toggle *84
ChanSpy 555
Check Recording *99
Dial System FAX 666
Dial Voicemail *98
Directed Call Pickup **
DND Activate *78
DND Deactivate *79
DND Toggle *76
Echo Test *43
Email completed dictation *35
Findme Follow Toggle *21
In-Call Asterisk Attended Transfer *2
In-Call Asterisk Blind Transfer ##
In-Call Asterisk Disconnect Code **
In-Call Asterisk Toggle Call Recording *1
Intercom prefix *80
My Voicemail *97
Perform dictation *34
Phonebook dial-by-name directory 411
Queue Toggle *45
Remove a number from the blacklist *31
Save Recording *77
Simulate Incoming Call 7777
Speak Your Exten Number *65
Speaking Clock *60
User Intercom Allow *54
User Intercom Disallow *55
User Logoff *12
User Logon *11
ZapBarge 888
Следующее, что хочется - это звонить наружу из нашей АТС - для этого служит такой механизм, как Транки.
17.jpg
17.jpg (137.78 КБ) 17735 просмотров
ну а теперь можно создать правило для звонка через описанный выше транк
18.jpg
18.jpg (129.74 КБ) 17735 просмотров
Пробуем совершить звонок. У меня получилось :-)

К слову сказать входящие звонки тоже работают. так что минимальная настройка завершена.

Вывод:
Нужно очень сильно любить окошки, что бы использовать эту вебморду. Так элементарно нельзя копировать телефонные номера - так что каждый новый номер надо заводить с нуля. Отсутствуют какие либо шаблоны настроек, что тоже совсем не облегчает жизнь. Никаких диагностических сообщений в веб тоже не выдаётся - так что всё время пока я писал эту статью я сидел в консоли и смотрел ошибки там. Даже не знаю для чего можно применить этот продукт.
Ответить