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.
res_config_ldap.so
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
делаем:
rehash
в /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
Good luck!
=============================================================
===; Registering installation for asterisk-gui-2.0.4_6
===; Cleaning for asterisk-gui-2.0.4_6
делаем:
rehash
правим:
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 (pid = 999)
Далее выполняем поочерёдно:
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
callwaitingcallerid=yes
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
callwaitingcallerid=yes
transfer=yes
canpark=yes
cancallforward=yes
callreturn=yes
callgroup=1
pickupgroup=1
host=dynamic
context=
cid_number=6000
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 ибо опИсанное выше — это лишь «вершина
айсберга».
FreeBSD