Меню Рубрики

Установка freepbx для asterisk на freebsd

Блог простого админа

Советы, решения, конфиги, патчи, скрипты, утилиты для системного администратора Linux/FreeBSD

пятница, 15 марта 2013 г.

Установка FreePBX на FreeBSD

FreePBX — это полноценный веб-интерфейс для управления IP АТС Asterisk.

Разработчики FreePBX предлагают скачать установочный образ на базе CentOS. Очевидно, что для этого требуется новый отдельный сервер. В качестве альтернативы предлагается использовать инсталлятор, который предназначен для других дистрибутивов Linux. Поддержка FreeBSD не заявлена.

Тем не менее установку можно произвести вручную.

Сначала установим необходимые пакеты:

asterisk
bash
sudo
pidof
php53 (без suhosin)
php53-mysql
php53-mysqli
php53-ctype
php53-session
php53-posix
php53-gd
lame
libxml
tiff
pear-DB
mysql55-server
mpg123
apache22 (c поддержкой mod_php)

Внесем правки в конфигурационные файлы:

short_open_tag=On
upload_max_filesize=128M
max_execution_time = 30
memory_limit = 100M
error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR display_errors = Off
log_errors = On
default_charset = «utf8»;
magic_quotes_gpc = Off
timezone=’Europe/Moscow’

в httpd.conf
User asterisk
Group asterisk

Активируем сервисы в rc.conf:

apache22_enable=»YES»
mysql_enable=»YES»
asterisk_enable=»YES»

DirectoryIndex index.php index.html

А также добавим строки:
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

Кроме того DocumentRoot нужно заменить на /var/www/html

# service asterisk start
# service mysql-server start
# service apache22 start

ln -s /usr/local/bin/php /usr/bin/php
ln -s /usr/local/bin/bash /bin/bash
ln -s /usr/local/bin/lame /usr/bin/lame
ln -s /usr/local/bin/mpg123 /usr/bin/mpg123

ln -s /usr/local/etc/asterisk /etc/asterisk

mysql> create database asterisk;
mysql> GRANT ALL PRIVILEGES ON asterisk.* TO ‘asterisk’@’localhost’ IDENTIFIED BY ‘password’;
mysql> create database asteriskcdrdb;
mysql> GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO ‘asterisk’@’localhost’ IDENTIFIED BY ‘password’;

rm -f /etc/asterisk/extensions.conf /etc/asterisk/features.conf /etc/asterisk/iax.conf /etc/asterisk/logger.conf /etc/asterisk/sip.conf /etc/asterisk/sip_notify.conf

Вместо этих файлов будут созданы симлинки на файлы, сгенерированные FreePBX.

# cd freepbx-2.10.0/SQL
# cat newinstall.sql | mysql asterisk
# cat cdr_mysql_table.sql | mysql asteriskcdrdb

# install_amp —username=asterisk —password=asterisk —u >
Если все сделано правильно, то в браузере должен открыться интерфейс FreePBX.

26 комментариев:

Сначала установим необходимые пакеты:
mgp123 — это что за пакет?

Хочу уточнить. А в строке
# install_amp —username=asterisk —password=asterisk —webroot=/usr/local/www/FreePBX —u >в параметре —password=asterisk после символа «=» должен быть тот же пароль, что был задан при выполнении
mysql> GRANT ALL PRIVILEGES ON asterisk.* TO ‘asterisk’@’localhost’ IDENTIFIED BY ‘password’;
и
mysql> GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO ‘asterisk’@’localhost’ IDENTIFIED BY ‘password’;
?

Отвечу так: можете попробовать разные и напишите, что из этого получилось.

для тех кто устанавливает на FreeBSD 9.1, если собирать на php 5,4 то будут глюки в интерфейсе, так что собирайте из ports/lang/php53, так же lame можно не ставить, он ставиться вместе с астериском, и еще лучше веб содержимое кидать в var/www/html потому что инсталятор упорно туда лезет и вылезают ошибки, за которыми не всегда заметишь то что нужно

Ничего не получается. На последней стадии
sh install_amp —username=asterisk —password=asterisk —webroot=/usr/local/www/FreePBX —u >install_amp: cannot open ?php: No such file or directory
install_amp: //: Permission denied
install_amp: //: Permission denied
install_amp: //: Permission denied
install_amp: //: Permission denied
install_amp: //: Permission denied
install_amp: 8: Syntax error: word unexpected (expecting «)»)

поправьте пожалуйста
ls -s /usr/local/bin/lame /usr/bin/lame
на
ln -s /usr/local/bin/lame /usr/bin/lame

а я уперся уже в браузере. Не применяет изменения.
Reload failed because retrieve_conf encountered an error: 126
exit: 126
/var/lib/asterisk/bin/retrieve_conf: ������������ ����������
1 error(s) occurred, you should view the notification log on the dashboard or main screen to check for more details.

все еще пытаюсь разобраться .
при установке ./install_amp —username=asterisk —password=asterisk —u >такие сообщения не нравятся
PHP Fatal error: Class ‘freepbx_conf’ not found in /var/lib/asterisk/bin/freepbx_setting on line 37
sudo: unable to execute /var/lib/asterisk/bin/freepbx_setting: Permission denied

убедитесь, что есть права на чтение и выполнение /var/lib/asterisk/bin/freepbx_setting

я их сам выставляю когда начианет сыпаться sudo: unable to execute /var/lib/asterisk/bin/freepbx_setting: Permission denied, но они все равно ставятся по своему
root@asterisk:/root # ls -la /var/lib/asterisk/bin/freepbx_setting
-rwxrwxr-x 1 asterisk asterisk 3206 13 янв 08:13 /var/lib/asterisk/bin/freepbx_setting

На FreeBSD11 с 13 астериксом/freepbx проблема с retrieve_conf при применении изменений решена. Нужен из портов ZendFramework. Также добавить права на каталог /usr/local/freepbx. Проверка — запуска — «sudo -u asterisk /usr/local/freepbx/bin/fwconsole»

Читайте также:  Установка и обслуживание подъездных домофонов

Ух, секс еще тот, но я выробатал алгоритм, практически гарантированной установки.
Все ставим по статье (великое спасибо за неё)
НО делаем папки ПЕРЕД установкой
mkdir /var/lib/asterisk
mkdir /var/lib/asterisk/bin
mkdir /var/www/
mkdir /var/www/html/

Если веб морда не видит астериск то проверяем пароли в manager.conf и amportal.conf (должны быть одинаковые для админа) и если с пинка не заводится переставляем pear-DB, у меня завелось только после этого

кстати в php.ini вместо timezone=’Europe/Moscow’ нада date.timezone=’Europe/Moscow’ иначе матерится))

ааа и еще права не забываем для астериска дать на www/html и кофиги

при исполнении последнего действия (install_amp —username=asterisk —password=asterisk —u >Checking for PEAR DB..OK
Checking for PEAR Console::Getopt..OK
Using username: asterisk
Using password: ********
Setting ownership (user) to asterisk
Setting ownership (group) to asterisk
Checking user..OK
Checking if Asterisk is running..pidof: not found
FAILED
[FATAL] ./install_amp
Asterisk must be running. If this is a first time install, you should start
Asterisk by typing ‘./start_asterisk start’
For upgrading, you should run ‘amportal start’
как её победить?

Обратите внимание на сообщение об ошибке:
Asterisk must be running.
Убедитесь, что он запущен

я все же домучал FreePBX. Мои сообщения от 13 января и ранее.
Учитывая все здесь сказанное поставил на FreeBSD 9.1 в JAIL
PHP53
и все заработало 🙂
разбираюсь дальше .

еще и 3G модем прикрути Huawei E171, вроде работает. Завтра пойду симку с городским номером куплю.

Уже год на фряхе пашет )
Маленькая тонкость: установку делать под bash.

Статья огонь, но появляется ошибка: ./install_amp

PHP Fatal error: Call to undefined function sprintf_() in /usr/home/GMoSuk/freepbx/amp_conf/htdocs/admin/libraries/BMO/GPG.class.php on line 277

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

chown —recursive asterisk:asterisk /var/lib/asterisk
chown —recursive asterisk:asterisk /var/log/asterisk
chown —recursive asterisk:asterisk /var/run/asterisk
chown —recursive asterisk:asterisk /var/spool/asterisk
chown —recursive asterisk:asterisk /usr/lib/asterisk
# chown —recursive asterisk:asterisk /dev/zap
## ZAP/or DAHDI
chown —recursive asterisk:asterisk /dev/dahdi
#—————————————————-
chmod —recursive u=rwX,g=rwX,o= /var/lib/asterisk
chmod —recursive u=rwX,g=rwX,o= /var/log/asterisk
chmod —recursive u=rwX,g=rwX,o= /var/run/asterisk
chmod —recursive u=rwX,g=rwX,o= /var/spool/asterisk
chmod —recursive u=rwX,g=rwX,o= /usr/lib/asterisk
# chmod —recursive u=rwX,g=rX,o= /dev/zap
chmod —recursive u=rwX,g=rX,o= /dev/dahdi
#—————————————————-
chown —recursive asterisk:asterisk /etc/asterisk
chmod —recursive u=rwX,g=rwX,o= /etc/asterisk

Может проще в 10.1 64-bit в BHyVe запустить FreePBX distro (CentOS 6.5)

Уверен что куча модулей не будут без переписывания кода работать

Также FreePBX 2.10 давно не актуален — везде 2.11

Может и проще, но статья не об этом.

Отличная статья. Установил FreePBX 14 + Astertisk 13 + FreeBSD 11

Примечание. Отправлять комментарии могут только участники этого блога.

источник

Media UniX

freebsd команды, настройка, установка сервера и не только

Asterisk на FreeBSD. Установка и минимальная настройка.

Asterisk – это программная АТС.
Основные возможности:

  • Звонки абонентов друг другу бесплатно, используя как программный телефон, так и хардварный ИП-телефон.
  • Бесплатные звонки клиентам Skype
  • Голосовая почта
  • Конференции
  • Музыка ожидания
  • Звонки на городские
  • Звонки на сотовые
  • Очередь вызовов

Установка Asterisk производилась на FreeBSD версии 7.1 . Она не находится за шлюзом, имеет свой белый IP.
Не устанавливаю из /usr/ports/net/asterisk , так как проинсталилась версия 1.8 и подружить её с веб-интерфейсом не удалось.

Ставлю asterisk 1.4 из портов:
cd /usr/ports/net/asterisk14/
make config

Options for asterisk14 1.4.37_1
[X] OGGVORBIS Enable Ogg Vorbis support
[X] ODBC Enable ODBC support
[ ] POSTGRES Enable PostgreSQL support
[ ] RADIUS Enable RADIUS accounting support
[X] SNMP Enable SNMP support
[ ] H323 Enable H.323 support
[X] FREETDS Enable FreeTDS support
[X] JABBER Enable Jabber and Gtalk support
[X] SQLITE Enable SQLITE support
[ ] CODEC_PATCH Apply codec negotiation patch
[ ] ILBC Enable iLBC codec
[ ] MISC_PATCHES Apply additional patches
[ ] DAHDI Enable DAHDI support

Читайте также:  Установка предпускового подогревателя самарский

выполняю:
make install clean

установилось:
+—- Asterisk Installation Complete ——-+
+ +
+ YOU MUST READ THE SECURITY DOCUMENT +
+ +
+ Asterisk has successfully been installed. +
+ If you would like to install the sample +
+ configuration files (overwriting any +
+ existing config files), run: +
+ +
+ gmake samples +
+ +
+—————— or ———————+
+ +
+ You can go ahead and install the asterisk +
+ program documentation now or later run: +
+ +
+ gmake progdocs +
+ +
+ **Note** This requires that you have +
+ doxygen installed on your local system +
+——————————————-+
WARNING WARNING WARNING

Your Asterisk modules directory, located at
/usr/local/lib/asterisk/modules
contains modules that were not installed by this
version of Asterisk. Please ensure that these
modules are compatible with this version before
attempting to run Asterisk.

WARNING WARNING WARNING
===; Installing rc.d startup script(s)
===; Compressing manual pages for asterisk14-1.4.37_1
===; Registering installation for asterisk14-1.4.37_1
===; SECURITY REPORT:
This port has installed the following files which may act as network
servers and may therefore pose a remote security risk to the system.
/usr/local/lib/asterisk/modules/chan_skinny.so
/usr/local/lib/asterisk/modules/chan_iax2.so
/usr/local/lib/asterisk/modules/pbx_dundi.so
/usr/local/lib/asterisk/modules/chan_sip.so
/usr/local/sbin/asterisk
/usr/local/lib/asterisk/modules/chan_mgcp.so

This port has installed the following startup scripts which may cause
these network services to be started at boot time.
/usr/local/etc/rc.d/asterisk

If there are vulnerabilities in these programs there may be a security
risk to the system. FreeBSD makes no guarantee about the security of
ports included in the Ports Collection. Please type ‘make deinstall’
to deinstall the port if this is a concern.

For more information, and contact details about the security
status of this software, see the following webpage:
http://www.asteriskpbx.com
===; Cleaning for net-snmp-5.5_4
===; Cleaning for asterisk14-1.4.37_1

в /etc/rc.conf добавлям строку для автоматического старта asterisk после перезагрузки ОС:
asterisk_enable=»YES»

Устанавливаем веб-интерфейс:
cd /usr/ports/www/asterisk-gui/
make install clean

встало:
+—- Asterisk GUI Installation Complete —+
+ +
+ YOU MUST READ THE SECURITY DOCUMENT +
+ +
+ Asterisk-GUI has successfully been +
+ installed. +
+ +
+——————————————-+
+ +
+ BEFORE THE GUI WILL WORK +
+ +
+ Before the GUI will run, you must perform +
+ some modifications to the Asterisk +
+ configuration files in accordance with +
+ the README file. When done, you can +
+ check your changes by doing: +
+ +
+ gmake checkconfig +
+ +
+——————————————-+

=============== Asterisk GUI FreeBSD Instalation =============

You just installed asterisk-gui into /usr/local.

Make sure to check out the following items:
* Configure you PBX enrivonment
* Check the configs: make checkconfig
* Asterisk is running
* manager.conf has ‘write’ uncommented

You should be able to access the web gui in:
http://localhost:8088/asterisk/static/config/index.html

правим:
ee /usr/local/etc/asterisk/http.conf

до след состояния:

[general]
enabled = yes
bindaddr = 0.0.0.0
bindport = 8088
prefix = asterisk
enablestatic = yes

а теперь правим:
ee /usr/local/etc/asterisk/manager.conf

до состояния:
[general]
enabled = yes
webenabled = yes

port = 5038
bindaddr = 0.0.0.0

debug = on ; enable some debugging info in AMI messages (default off).
; Also accessible through the «manager debug» CLI command.

[admin]
secret = pass
write = system,call,log,verbose,command,agent,user,config
; здесь
; admin – логин для веб-интерфейса
; pass – пароль для administrator
; write = system,call,log,verbose,command,agent,user,config – права на запись пользователю administrator

стартуем asterisk:
/usr/local/etc/rc.d/asterisk start

пере стартовать его можно asterisk можно следующим образом:
запускаем консоль asterisk:
asterisk -r

Видим приветствие консоли:
Asterisk 1.4.37, Copyright (C) 1999 — 2010 Digium, Inc. and others.
Created by Mark Spencer
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 1.4.37 currently running on bsd (p >

Далее выполняем поочерёдно:
reload
exit

после того как стартанули, заходим на веб-интерфейс:
http://ip_сервера:8088/asterisk/static/config/index.html
вписываем логин и пасс, которые указывали в /usr/local/etc/asterisk/manager.conf . В примере это:
admin
pass

что то там произошло в момент первого входа. Попадаем на первую страницу.
Перешёл на страницу с Outgoing Calling Rules, она была пуста, нажал «Restore Default Calling Rules», после чего появились:
Longdistance _91XXXXXXXXXX! None Assigned None Selected EditDelete
IAXTEL _91700XXXXXXX! None Assigned None Selected EditDelete
Local_AreaCode _9256XXXXXXX! None Assigned None Selected EditDelete
International _9011XXXXX. None Assigned None Selected EditDelete
Local_7_digits _9XXXXXXX! None Assigned None Selected EditDelete
Emergency _911! None Assigned None Selected EditDelete

Читайте также:  Установка ламп на перекрытии

Далее идём Options — во вкладку Advanced Options — жмём кнопку «Show Advanced Options»

В столбце слева появится пункт «File Editor», который позволяет редактировать конфигурационные файлы, как если бы вы правили из консольки. В File Editor’e в раскрывающемся списке выбираем файл users.conf и нажав на «+» напротив [general] , раскрываем его содержимое.

Здесь видим стандартного пользователя, созданного при инсталяции автоматически:
fullname=New User
userbase=6000
hasvoicemail=yes
vmsecret=1234
hassip=yes
hasiax=yes
hasmanager=no
callwaiting=yes
threewaycalling=yes
callwaitingcaller > transfer=yes
canpark=yes
cancallforward=yes
callreturn=yes
callgroup=1
pickupgroup=1

Я исправил эти строки до состояния:
fullname=root
userbase=6000
hasvoicemail=yes
vmsecret=0000
hassip=yes
hasiax=yes
hasmanager=no
callwaiting=yes
threewaycalling=yes
callwaitingcaller > transfer=yes
canpark=yes
cancallforward=yes
callreturn=yes
callgroup=1
pickupgroup=1
host=dynamic
context=
c > email=адрес_электронной_почты
hasdirectory=no
hasagent=no
secret=пароль_для_пользователя_с_номером_6000
nat=yes
canreinvite=no
dtmfmode=rfc2833
insecure=no
call-limit=100
autoprov=no
label=
macaddress=
linenumber=
LINEKEYS=1
disallow=all
allow=gsm,speex,alaw,ulaw

здесь вам надо исправить:
fullname – на имя вашего пользователя
cid_number и userbase – его номер (дабы избавиться от путаницы, тоже советую сделать одинаковыми)
email – электронная почта этого пользователя

Без строки host=dynamic при попытке позвонить через свой сип-сервер из другой подсети, в CLI вывалится:
[Apr 13 10:15:40] ERROR[999]: chan_sip.c:9661 register_verify: Peer ‘6000’ is trying to register, but not configured as host=dynamic
[Apr 13 10:15:40] NOTICE[999]: chan_sip.c:16721 handle_request_register: Registration from » failed for ‘ip_servera’ — Peer is not supposed to register

Эти данные (логин и пароль) уже можно использовать, вписав в софтварном телефоне, например в Express Talk (в m$ w!nd0w$) где при установке можно выбрать:

вписать данные для авторизации:

и позвонив на номер 500, мы услышим голос робота-девушки, впечатляющей нас на англ. языке, а позвонив на номер 600, можно услышать себя (микрофон не забудьте включить). Если всё так и происходит, значит всё пока в порядке. Если нет, то запускаем консоль asterisk’а:
asterisk –r
и смотрим, что туда вываливается (варнинги, эрроры…предупреждения были у меня, но ошибок не было)

Примечание 1:
Дабы сразу не наводить путаницу и неудобства, содержимое раздела [general] я стёр, перенёс все строки оттуда в созданный мною подпункт, нажав «Add context», вписав название подраздела (я назвал его «6000») и вставив вырезанные из [general] строки.
Таким образом, создаём кучу пользователей, выделив каждого из низ в отдельный подпункт, однако они по-прежнему хранятся в одном файле /usr/local/etc/asterisk/users.conf

Примечание 2:
не забываем про правила для фаервола (я использую ipfw):
#asterisk
/sbin/ipfw -q add 00830 allow all from any to any 8088
/sbin/ipfw -q add 00831 allow all from any 8088 to any
/sbin/ipfw -q add 00832 allow all from any to any 5038
/sbin/ipfw -q add 00833 allow all from any 5038 to any
/sbin/ipfw -q add 00834 allow all from any to any 5060
/sbin/ipfw -q add 00835 allow all from any 5060 to any

Примечание 3:
Для того, чтобы на почту приходили голосовые сообщения, вероятно вам надо будет поставить и настроить ssmtp на freebsd.

В принципе, пользователи, созданные аналогично примеру выше в файле /usr/local/etc/asterisk/users.conf уже могут звонить друг другу, а, не дозвонившись до абонента, можно оставить ему голосовое сообщение, которое придёт ему на электронный ящик.
Как всегда, буду рад видеть людей, желающих поделиться знаниями в области FreeBSD+Asterisk ибо опИсанное выше — это лишь «вершина айсберга».

Добавить комментарий Отменить ответ

Для отправки комментария вам необходимо авторизоваться.

источник

Добавить комментарий