Поиск по моему блогу

Показаны сообщения с ярлыком Asterisk (PBX). Показать все сообщения
Показаны сообщения с ярлыком Asterisk (PBX). Показать все сообщения

Защищаем сервер Asterisk с помощью fail2ban


Итак, пришло время поговорить о защите. На написание поста меня сподвигла атака из США жестким брутом. Дело было так, я зашел на сервер оптимизировать конфиг users.conf(Об этом в следующей статье). После правки файла, я благополучно зашел в консоль Asterisk и увидел кучу сообщений (примерно 5 раз в секунду) о том, что с такого-то IP попытка зайти под пользователем 104. Меня это сначала смутило. А потом я решил поставить fail2ban, чтобы обезопасить себя. Итак, статья в моем стиле - поэтому никакой лишней инфы не будет, только то что нужно чтобы закрыть доступ для атакующего IP. Защищать будем Asterisk, ну и бонусом SSH.

Шаг 1. Установка fail2ban.
# apt-get install fail2ban

Шаг 2. Установка python и iptables. Возможно вам понадобиться установить эти пакеты, поэтому
# apt-get install iptables python

Шаг 3. Конфигурация fail2ban. Итак, займемся конфигурацией. Для этого перейдем в каталог  /etc/fail2ban/filter.d.
# cd /etc/fail2ban/filter.d

Установка Asterisk с веб интерфейсом FreePBX и модемом Huawey E1550 на Ubuntu 10.10


Февраль 27
Раздел: Linux
1. Устанавливаем необходимые пакеты:

sudo apt-get update
sudo apt-get install php5-mysql libapache2-mod-php5 mysql-server libmysqlclient15-dev php-db php5-gd php-pear sox curl g++ libncurses-dev libxml2-dev subversion libspandsp-dev
sudo -i

2. Скачиваем исходники Asterisk и FreePBX, и устанавливаем:
cd /tmp
tar xvzf asterisk-1.8.2.4.tar.gz
tar xvzf asterisk-addons-1.6.2.3.tar.gz
tar xvzf freepbx-2.8.1.tar.gz

cd /tmp/ asterisk-1.8.2.4
./configure
make install
make config
make samples

Installing FreePBXv3 in Elastix-2.0 RC3 - Установка FreePBXv3 в Elastix-2.0 RC3

Yes it’s surprisingly easy, and yes you too can have it today!

This is still very much a work-in-progress, as we’re merging two unfinished products and I’ve not had enough of a chance to test it thoroughly either so I’m hoping for some response from the community on this one. I think this is quite possibly the first time that FreePBXv3 has been tied into a major distro, and I reckon it’d be cool to see Elastix-2.0 support FreePBXv3 officially.

I have however tested Ext’s registering happily, calling each other, so I know that FreePBXv3 is tied in correctly.

Anyway, I’ve tar’d up a slightly older version of FreePBXv3, as they’re undergoing some design changes right at the moment which mean that the current version doesn’t install. So, we’ll be using this.

Total installation should only take about 5 minutes, so this How-To will be nice and short!

So what you’re going to do is start by installing the latest Elastix-2.0 RC3. In my case I used i386.

Once it’s installed, ssh into the server and run:
 cd /var/www/html
wget http://c2s.co.nz/dumpfiles/freepbxv3.tar.bz2
tar xvjf freepbxv3.tar.bz2
cd freepbxv3
sh preinstall.sh
It’s 8.5MB, and this is the snapshot of FreePBXv3 that we’re going to be using.

I’ve already modified the preinstall.sh so it uses the user “asterisk” instead of “nobody”, keeping in line with how Elastix does things.

You’re going to then run the following commands to upgrade PHP:
 yum install yum-priorities
cd /etc/yum.repos.d/
wget http://dev.centos.org/centos/5/CentOS-Testing.repo
yum --enablerepo=c5-testing install php
/etc/init.d/httpd restart
We need PHP-5.2 because of one of the FreePBX dependencies (Kohana) and Elastix only comes with PHP-5.1

Now you need to fire up the Elastix WebUI, but instead of just going to the regular URL, add in /freepbxv3/ to the end and you should be greeted with the install window:


Agree, hit Next.

You will be prompted with a pre-flight checklist. It should pass the lot. Again, hit Next.


Now, on the next screen, you’re going to see the database details.

Set the database to freepbxv3, the username to “root” and put in the default Elastix root MySQL password: eLaStIx.2oo7

You might also want to adjust your timezone.

Создание шаблона TrixBox для OpenVZ



Продолжаем заметки о Linux.
Сегодня будем самостоятельно изготавливать шаблон для OpenVZ. Для большинства популярных linux-дистрибутивов не составляет труда найти готовый шаблон в интернете (например на сайте OpenVZ), но не для всех. Поэтому будем учиться тому, как изготовить шаблон самостоятельно. В качестве цели я выбрал дистрибутив Trixbox версии 2.8 (текущий стабильный релиз 2.8.0.4).
Собственно Trixbox 2.8 это CentsOS 5.5 с предустановленными Asterisk, FreePBX и прочими приятными мелочами. Распространяется он в виде iso-файла. Наша конечная цель - сделать из этого iso полноценный шаблон для OpenVZ и заставить его работать.

Первое, что нам нужно сделать это установить систему на отдельный компьютер или на виртуальную машину. Разницы нет никакой, выбирайте тот вариант, который удобней вам. Я буду устанавливать в виртуалку на VMWare. Выделите для системы 512 Mb оперативки и диск размером 10 Gb - нам понадобится сделать архив всей системы.
Установка Trixbox не отличается от установки любого другого дистрибутива linux, только вопросов при установке будет значительно меньше. Система полностью сконфигурирована, вам останется только выбрать ваш регион и задать пароль root-а. После этого система самостоятельно установится в течении 10 минут.

Asterisk & Skype

Есть 3 способа поженить скайп и астериск – запустить собственный шлюз, купить лицензию Skype for Asterisk (chan_skype) или арендовать у скайпа SIP-канал.
Первый способ крив по-определению, требует гуя, скайпа и эмулирующей звуковую карту софт. Второй – $66/канал. Аренда канала у скайпа – $6.95 в месяц (за каждый канал), купить SFA – конешн выгодней в долгосрочном плане, а вот «на попробовать» – 7 баксов небольшие деньги. Это и запользуем.
Что необходимо:
  1. Рабочий, настроенный Asterisk
  2. Бизнес-аккаунт (регистрация бесплатна) Skype
В разделе «Функции/Features» добавляем профиль Skype Connect, после списания месячной

Настройка IP-телефонии на смартфонах Nokia с использованием сервера IP PBX Astersk и сети SIPNet.

Настройка SIP клиента на Nokia E52 и других смартфонах от Нокии с использованием сервера IP PBX Astersk ( Elastix, FreePbx )

Если ваше устройство в этом списке, у вас регулярно есть доступ к WiFi, но вы до сих пор платите деньги за междугородние и международные разговоры своему ОСС, не говоря уже о пребывании в роуминге, значит эта заметка для вас.
Первоисточник для продвинутых. Но его для настройки E52, E55, E72 не хватит, так как не хватает настроек именно VoIP, о чем ниже.

Итак, есть анлимный или почти бесплатный интернет в виде WiFi, есть VoIP провайдеры, которые берут на порядок меньше денег, чем операторы сотовой связи, есть телефон со встроенной поддержкой SIP VoIP. Значит надо все настроить так, чтобы не загружать никаких программ ни на мобиле, ни на тем более компьютере, а просто нажать "Call" на телефоне и автоматически использовать VoIP. Неплохо бы также показывать вызываемому абоненту не "Номер засекречен" или какую-то пугающую хрень, а свой привычный номер.
Все это можно сделать за десять минут.

Install Flash Operator Panel 2 in Elastix

Anyone that has been involved with Asterisk based systems, will generally know about the product called Flash Operator Panel. It has been around for years, and is included in many of the popular Asterisk distributions including Elastix. Its Author,  Nicolas Gudino, has, after many years released a major revamp of this popular tool in the guise of FOP2 or Flash Operator Panel 2.
Whilst this new version has a cost, and a very reasonable one ($US40), it can be used on many home, micro-business PBX systems without the need for a licence (upto 15 buttons which include trunks, extension, queues, conference as buttons).
So this tutorial is to assist Elastix users in implementing FOP2 onto their systems.
 First step is to disable the old Flash Operator panel

To do this , type

nano /var/www/html/panel/op_server.cfg (note nano is an editor that I use and installed, you can use VI or similar )
Look for the following line

pic1_original_fop1_port.png

 
 
Your config file may show the listen_port line commented out. Remove the semicolon if it is there and change the port over to 4446 (not worried what port, just need it to stop listening on 4445). So the line should look like this

pic2_changed_fop1_port.png
 
 
Save and exit.

Now the first thing we need to do is to setup a user in the Asterisk Management Interface (AMI). This is done via the
unembedded Freepbx. Click on the tools table and then click on Asterisk API.

Linksys PAP2 Dial Plan Basics

Linksys PAP2 Dial Plan Basics

VoIPStunt Offer Free Calls to 39 Countries (more...)
As with most ATAs (Analog Telephone Adapters), the Linksys PAP2 is an extremely versatile and customizable piece of VoIP equipment. In April of 2005, Cisco Systems (The parent company of Linksys) bought the privately-held VoIP company, Sipura. This resulted in the 're branding' of Sipura and integration of the Sipura product line into the Linksys family. As a result, the Linksys PAP2, shares many commonalities (though few cosmetic) with the Sipura line of ATAs and the Dial Plan basics that I'll be talking about also relate to some of the Sipura VoIP adapters (e.g., the SPA-2000 line).
I should point out that this tutorial is by no means intended as an authoritative text on Linksys/Sipura dial plans. The purpose is merely to assist you in writing a basic dial plan that will help you to customize your VoIP adapter and provide a foundation on which you can build should you wish to create more customized dial plans.

Direct IP calls in the dial plan

For your first point, you will find that the PAP2 is functionally identical to the SPA-2000. That includes being able to use the Sipura User Guide (download from www.sipura.com/support) as a reference. You will learn in that document that "Enable IP Dialing" lets you pick up the attached phone and dial, for example, 12345*192*168*100*44*5060# to reach sip:12345@192.168.100.44:5060. Not very useful.

Rather than enabling this feature, you should seed your Dial Plan with elements that translate dial codes into desired URIs. You can find examples of how to do this in the "How do I craft a dial plan?" sticky at the top of this forum.

The User Guide will also tell you that there is a method of coding username and password into a Dial Plan element, but only for the SPA-3000 (and, even so, it's reported to not be very reliable).

Настройка связки DVG-7111S <=> Asterisk

DVG-7111S представляет собой недорогой голосовой шлюз с одним портом FXS и одним портом FXO. Давайте настроим его для работы с *. Я буду описывать только те параметры, которые отличаются от дефолтных.
В FreePBX создадим SIP trunk для FXO, пусть в него будет воткнута линия с номером 5499057:
Maximum channels: 1
Dial Rules: .
Trunk Name: 5499057
PEER Details:
host=dynamic
type=friend
username=5499057
secret=fxo_password
qualify=yes
context=from-trunk
USER Details оставляем пустым.
Еще сразу создадим SIP extension для FXS с номером 777:
User Extension: 777
Dislpay Name: FXS
secret: fxs_password
Подключаем LAN порт шлюза в сеть, заходим с рабочей станции на WEB интерфейс управления: http://192.168.8.254, логин admin, пароль пустой.
Идем в Internet Setup и настраиваем WAN порт. Далее идем в VoIP Setup и редактируем запись под номером 1. Наш * имеет доменное имя pbx.spnet.ru.
Ставим галку Enable Support of SIP Proxy Server / Soft Switch, ITSP Name : «pbx.spnet.ru».
Phone 1 FXS:
Number: «777″, cтавим галки Register и Invite with ID / Account.
User ID / Account : «777″
Password : «fxs_password»
Confirm Password : «fxs_password»
Phone 2 FXO:
Number: «5499057″, cтавим галки Register и Invite with ID / Account.
User ID / Account :
«5499057″,
Password : «fxo_password»
Confirm Password : «fxo_password»
Proxy Server IP / Domain : «pbx.spnet.ru»
Жмем Apply, идем на вкладку Advanced.
VoIP -> Codec
Preferred Codec Type : «G.711 u-law»
VoIP -> DTMF & PULSE
Ставим галку Enable Out-of-Band DTMF
VoIP -> Hot Line
Phone 2 – FXO
Ставим галку Hot Line и вписываем в поле Hot Line No. : номер *, на который будет попадать звонок, пришедший на порт FXO
Снимаем галку Enable FXO / Trunk Extension Number
VoIP -> Line
FXS Impedance и FXO Impedance ставим в «Russia 600 Ohm», снимаем галку Enable IVR Option
VoIP -> SIP Advanced
Снимаем галку Enable Non-SIP Inbox Call
Вот и все, не забудьте установить пароли администратора и пользователя. Если шлюз не будет определять сингал занято, нужно проанализировать сигнал занято, получаемый от АТС и настроить его в VoIP -> CPT / Cadence. Методика анализа подробно описана на сайте nsgate.ru в документе «Процедура анализа нестандартных disconnect-тонов«.
Бывает, что данный шлюз ведет себя странно с входящими вызовами – hotline начинает звонит в течении 2-5 секунд, а затем происходит завершение вызова. В этом случае нужно установить «PSTN Ring OFF Length :» в 20000, это позволяет хотя бы как-то решить данную проблему.
Обратите внимание, что данный шлюз не дружит с Mozilla – «PSTN Ring OFF Length :» мне удалось изменить только в IE :(
Enhanced by Zemanta

Using the Linksys SPA400 with Asterisk

A Cisco 7960 VoIP telephone displaying a Sonus...Image via WikipediaIntroduction
For small- and medium-sized businesses, going all-VoIP is not an easy decision.
Fortunately, the switch-over, which can result in substantial savings and add bold new capabilities to tired old office phone systems, can be done in baby-steps: Purchase an Internet Protocol (IP) based phone system, but keep the PSTN lines, for now.
It is indeed possible to integrate VoIP into an existing office analog system, keeping current phone services intact while routing costly toll calls out over IP. Until recently, though, the hardware needed for such integration was difficult to use and expensive.
There are two ways to route calls between VoIP and the PSTN: subscribe to an Internet Telephony Service Provider (ITSP) or keep the PSTN lines and purchase equipment to make the conversion.
Keeping the PSTN lines requires VoIP gateways to convert the PSTN signal to a VoIP signal. For analog lines, these gateways need a Foreign Exchange Office (FXO) port.
Until recently, most reasonably priced VoIP gateways had only one or two FXO ports - enough ports for home use, but too few for small businesses and remote offices.
The average price for a four FXO port VoIP gateway was $400-$500, until Linksys released the SPA400.
The Linksys SPA400 is an attractive low-cost four FXO port solution that costs $100 less than its peers.
The official position from Linksys is that the SPA400 will only work with the Linksys SPA9000, but in this article, we explain how to configure the SPA400 to work with Asterisk - the Open Source PBX . We also have a related configuration for the CommuniGate Pro Internet Communication System.
This article covers the SPA400 with firmware version 1.0.0.3 and Asterisk version 1.2.7.1. The configuration for new product versions may differ, so check the Voxilla Forums for updated information.
[h1]Configuring the SPA400[/h1]
Connect to the SPA400 via the Web interface. The default username is Admin (case sensitive) and no password.
Setup->Basic Setup
SPA400_setup.jpg
SPA400 Setup->Basic Setup Tab
  1. Go to the Basic Setup screen.
  2. Setup the Fixed IP Address information for the SPA400. Do not use Dynamic IP Addresses – the Asterisk server must find the SPA400 and register with it.
  3. Setup the SPA400 DNS and NTP information.
  4. Click Save Settings.

FreePBX за NAT

Asterisk (PBX)Image via Wikipedia

Установите модуль Asterisk SIP Settings
Предполагается что с вашего сервера/роутера проброшены порты:
5060 UDP - для инициации SIP соединения.
10000 - 20000 UDP - для голосовых пакетов. (диапазон можно уменьшить в файле /etc/asterisk/rtp.conf)
Установите следующие значения
NAT - yes
IP configuration - Static IP
Extern IP - 123.123.123.123 -внешний IP адрес
Local Networks - 192.168.0.0/255.255.255.0 -локальная сеть
Reinvite Behavior - No

Скриншоты

sip_setting_1.pngsip_setting_2.pngsip_setting_3.pngsip_setting_module.png
Enhanced by Zemanta

Открытый SIP Skype шлюз от SIPNET.

Asterisk (PBX)Image via Wikipedia

Для вызова контакта Skype из сети SIPNET укажите в своем IP-телефоне адрес вызываемого абонента в формате user@skype.sipnet.ru или user@skype.com .
Если Вы используете Asterisk например:
exten ⇒ 111,1,Dial(SIP/skype_user1@skype.sipnet.ru,,)
exten ⇒ 112,1,Dial(SIP/skype_user1@skype.sipnet.ru,,) и т.д.
Для FreePBX можно создать екстеншен и в поле dial прописать
SIP/skype_user@skype.sipnet.ru
В сети Skype шлюз для доступа в SIPNET имеет идентификатор skype.sipnet.ru , именно от этого имени будут поступать входящие вызовы.
Передача текстовых сообщений, файлов и видео не поддерживается. Skype Out не поддерживается.

Звонок из Skype абоненту SIPNET

Для вызова контактов SIPNET из сети Skype внесите имя skype.sipnet.ru в список контактов Skype.
Чтобы позвонить абоненту SIPNET выберите из списка контактов Skype имя skype.sipnet.ru и нажмите клавишу «Позвонить» («Call»).
Услышав голосовое приветствие, можно вводить SIP ID вызываемого абонента:
  • В версии Skype 2.x и 3.x можно набирать цифры с клавиатуры сразу после установления соединения
  • В версии Skype 4.x после установления соединения следует дополнительно вызвать номеронабиратель. Для этого необходимо нажать на кнопку с изображением треугольника справа от регулятора громкости и в выпадающем меню выбрать «Набор» («Display dial pad»). На появившейся на экране цифровой клавиатуре (или на клавиатуре компьютера) можно набрать SIP ID вызываемого абонента.
Enhanced by Zemanta

Skype SIP транк

Asterisk (PBX)Image via Wikipedia

SipToSis

- это программное обеспечение которое позволяет совершать и принимать звонки Skype на SIP адаптер или SIP атс (например Asterisk).

Требования к системе для Skype Gateway


  • Skype клиент

  • Java 1.5 или выше (для Linux используйте SUN's java)

  • SIP / VoIP шлюз (например Linksys SPA 2102), или Asterisk / любая АТС с поддержкой SIP (например LG ipLDK).

Пример настройки Skype to Sip соединения для Windows и Asterisk

Есть комп под Windows с установленным Skype и комп с установленным Asterisk.

Настройки Asterisk

sip.conf
[skypetosip]
username=skypetosip
type=friend
context=your_context
secret=mypassword
host=IP адрес машины где установлен Skype (SipToSis)
dtmfmode=auto
port=5070
qualify=yes
disallow=all
allow=alaw
allow=ulaw
Настройте план набора в соответствии с вашими требованиями.
Например звонок на Эхо тест Скайп:
extensions.conf
[your_context]
exten => 123,1,Dial(SIP/skypetosip/echo123)

Настройки Skype SIP


  • Установите Skype и зарегистрируйте аккаунт.

  • Установите java 1.5 или выше скачать java

Установка сервера IP-телефонии Asterisk + FreePBX в Debian Lenny

Asterisk (PBX)Image via WikipediaВ предыдущих статьях (1, 2, 3, 4) подробнейшим образом рассматривались различные аспекты установки и настройки сервера IP телефонии Asterisk. С того времени утекло много воды, вышли новые версии пакетов. На днях пришлось столкнуться повторно с настройкой Asterisk-а. Решил поделиться, может кому поможет. В статье будет также рассмотрена настройка FreePBX - веб-интерфейса для управления астериском.
По традиции буду показывать степ-бай-степ хаутушку на свежеустановленном Debian Lenny.
Поставим минимальный софт, чтобы зацепиться по ssh и более-менее комфортно продолжать настройку по сети
# apt-get install zip unzip bzip2 arj mc ssh sudo
Пропишем дополнительные репы в /etc/apt/sources.list закомментируем привод
# vim /etc/apt/sources.list

# deb cdrom:[Debian GNU/Linux 5.0.3 _Lenny_ - Official i386 CD Binary-1 20090905-08:23]/ lenny main

deb http://ftp2.de.debian.org/debian/ lenny main contrib non-free
deb-src http://ftp2.de.debian.org/debian/ lenny main contrib non-free

deb http://security.debian.org/ lenny/updates main
deb-src http://security.debian.org/ lenny/updates main

deb http://volatile.debian.org/debian-volatile lenny/volatile main
deb-src http://volatile.debian.org/debian-volatile lenny/volatile main

deb ftp://ftp.debian-multimedia.org lenny main non-free
Прежде чем обновлять список пакетов, добавим ключик для debian-multimedia, чтобы apt не ругался
# wget http://www.debian-multimedia.org/pool/main/d/debian-multimedia-keyring/d...
# dpkg -i debian-multimedia-keyring_2008.10.16_all.deb
# rm debian-multimedia-keyring_2008.10.16_all.deb
Теперь можно обновлять список пакетов реп и апгрейдить систему
# apt-get update
# apt-get upgrade

Установка необходимых пакетов для Asterisk

Идём на сайт астериска и вытягиваем необходимые пакеты. на сайте, как правило представлены 4 пакета астериска. В порядке убывания версий они классифицируются следующим образом: trunk, stable, release, old. К примеру на текущий момент выложены следующие версии:
Asterisk 1.6.2 - trunk     Asterisk 1.6.1 - stable     Asterisk 1.6.0 - release     Asterisk 1.4 - old
Транк, естественно, трогать не будем. Для себя я выбрал Stable. Качаем его + некоторые дополнительные пакеты, которые в дальнейшем нам могут пригодиться. Кратко поясню что и для чего надо:

Asterisk + FreePBX + sipnet. Настройка Asterisk для звонков на городские телефоны

Asterisk (PBX)Image via WikipediaВ предыдущей статье была рассмотрена настройка сервера IP-телефонии. При минимальных настройках можно совершать IP-звонки внутри организации. Достаточно просто завести аккаунты. Но что делать, если нужно позвонить на городской телефон. Для осуществления звонков по аналоговым линиям, на серваке лолжно стоять соответсвующее оборудование. Если нет железок - можно воспользоваться услугами sipnet.ru. В данной статье я постараюсь описать что и как надо настраивать для осуществления звонков на обычные телефоны. Итак, приступим.
Для начала идём на сайт sipnet.ru, регистрируем себе аккаунт. Нам выдают ID, пароль мы придумываем свой.
Теперь добавим аккаунт на нашем Asterisk серваке. Идём а админку FreePBX: Setup - Extensions. Жмём "Add Extension" в правом верхнем углу.
Device - Generic SIP Device. Жмём Submit. Откроется окно с настройками нового аккаунта, в котором можно указать различные парамется, как то: Наличие голосового майлбокса, необходимость записи и пр. В принципе, всё заполнять необязательно достаточно User Extension и Display Name. В поле Secret можно при желании вколотить пароль.

Asterisk. Интерфейс AGI. Функция GotoIf.

Asterisk (PBX)Image via WikipediaAsterisk Gateway Interface или сокращенно AGI – интерфейс взаимодействия с внешними скриптами. С помощью AGI можно получить информацию, которая не доступна напрямую из астериска. Вообще скрипты из Asterisk можно выполнять из функций System и через AGI. System выполняет скрипты без обратной связи, через AGI можно устанавливать переменные используемые далее в extensions.conf.
К примеру можно воспользоватся вызовом скрипта для определения типа дня недели. Подобная информация может понадлбится если вам нужно проигрывать один вид меню, а в выходные дни другой.

Для определения дня недели воспользуемся таким скриптом:

#!/usr/bin/perl -w
use Date::Calc qw(Day_of_Week Now Today);
 
($year,$month,$day) = Today();
$dow = Day_of_Week($year,$month,$day);
 
if($dow eq 6 or $dow eq 7)
{
  print "SET VARIABLE DOW WEEKEND\n";
}
else
{
  print "SET VARIABLE DOW WORKDAY\n";
}
 
Для работы скрипта понадобится Date::Calc – модуль перла для работы с датой и временем.

Установить его можно из портов:
cd /usr/ports/devel/p5-Date-Calc
make install clean

Теперь можно доработать меню, так что бы в будний день проигрывалась начитка welcome.wav, а в субботу и воскресенье была начитка weekend.wav.

Диалплан теперь будет выглядеть так:
[sip-dialout]
exten => 444,1,Goto(menu,s,1)
 
[menu]
exten => s,1,Set(home="/home/menu")
exten => s,2,AGI(${home}/bin/date.pl)
exten => s,3,NoOp(" day ${DOW} ")
exten => s,4,GotoIf( $["${DOW}" = "WEEKEND"]?8)
exten => s,5,Playback(${home}/welcome)
exten => s,6,NoOp(WEEKEND)
exten => s,7,Goto(s,10)
exten => s,8,Playback(${home}/weekend)
exten => s,9,NoOp( WEEKEND )
exten => s,10,WaitExten()
 
exten => 1,1,Playback(${home}/tariff)
exten => 1,2,Goto(s,1)
 
exten => 2,1,Dial(SIP/operator)
 
exten => t,1,Playback(make_choice)
exten => t,2,Goto(s,1)
 
exten => i,1,Playback(wrong_choice)
exten => i,2,Goto(s,1)
 
В нашем примере появилась новая функция GotoIf, функция условного перехода. Мы проверяем какой тип дня недели и в случае выходного дня, осуществляется переход на соответсвующую метку меню. Таким образом в случае выходного дня, мы переходим на начитку weekend.wav и пропускаем welcome.wav.
Функцию GotoIf можно применять не только с AGI, но и для переходов по проверке любых переменных установленных в extensions.
Enhanced by Zemanta

Asterisk. Автоматические исходящие звонки.

Asterisk (PBX)Image via WikipediaМногие сталкивались со звонками от крупных компаний, когда происходит звонок и зачитывается автоматическое сообщение, рекламное или уведомление о просроченой оплате. Такую систему можно сделать на астериске с помощью внешнего скрипта.
Исходящий звонок Asterisk может выполнять при размещении специального файла в директории /var/spool/asterisk/outgoing.

Файл должен выглядеть так:
Channel: SIP/prov1/8067xxxxxxx
MaxRetries: 2
RetryTime: 60
WaitTime: 30
Context: auto-dialout
Extension: 800 
Priority: 1

В этом файле. первая строка – канал через который будет осуществляться звонок и номер телефона на который будет исходить звонок. MaxRetries – здесь описывается число повторных звонков, пока система не дозвонится абоненту. RetryTime – время через которое осуществится повторный звонок. WaitTime – время ожидания ответа вызываемого абонента, то есть попросту через сколько секунд система положит трубку не дождавшись того, что вызываемая сторона снимет трубку. Context – контекст в котором определена последовательность действий при дозвоне. Extension – в указанном контексте, определен в extensions.conf. И Priority – строка обработки описанного экстеншена в указанном контексте.

Контекст должен быть определен так(в примере мы просто проиграем файл tariff.wav):
[auto-dialout]
exten => 800,1,Playback(/home/menu/tariff)
 
Для автоматических исходящих звонков голосовое меню можно создавать точно такое же как и для обычного IVR, отличий нет. Единственное – не абонент звонит нам, а мы звоним абоненту и предлагаем ему вступить в диалог с нашей системой.
Enhanced by Zemanta

Факс сервер на Asterisk

Asterisk (PBX)Image via Wikipedia


Это решение отличается от факса по умолчанию во FreePBX, использующего rxfax и txfax. Вместо этого, с помощью HylaFax, вы получите полнофункциональный факс-сервер корпоративного класса.
  • CentOS 5.3
  • Asterisk должен быть установлен.
  • IAXmodem требует SPANDSP
  • HylaFax имеет зависимости:
    • libtiff-3.5.5 или выше
    • ghostscript-5.50 или выше
    • ghostscript-fonts-5.50 или выше
Скачать Hylafax
Вопросы при FaxSetup:
Should an entry be added for the FaxMaster to /etc/aliases )yes(? yes
Users to receive fax-related mail )root? ( root 
HylaFAX configuration parameters are:
1 Init script starts faxq: yes
2 Init script starts hfaxd yes
3 Start old protocol: no
4 Start paging protocol: no
Are these ok yes? yes
Скачать Iaxmodem
-Прочтите README из IAXmodem для установки.
-В завершении установки, скопируйте бинарник iaxmodem в /usr/local/sbin
Создайте файл /etc/iaxmodem/ttyIAX0
device /dev/ttyIAX0  #IAX1, IAX2 и т.д. 
owner uucp:uucp
mode 660
port 4570  #уникальный порт для каждого устройства!
refresh 300
server 127.0.0.1
peername iaxmodem0  # это IAX экстеншн в Asterisk!
secret 12345  # пароль экстеншена
cidname Fax1
cidnumber 78123216111
codec alaw
Настройте IAX экстеншн в Asterisk.
iax.conf
[iaxmodem0]
type=friend
username=iaxmodem0
context=modembank
secret=12345
host=127.0.0.1
qualify=yes
disallow=all
allow=ulaw;
trunk=no
Теперь, когда, IAXmodem сконфигурирован, научим Hylafax обращаться к нему. В исходниках IAXmodem есть файл config.ttyIAX. Скопируйте его в /var/spool/hylafax/etc/ изменяя название для каждого модема - config.ttyIAX0, config.ttyIAX1 и т.д.
Чтобы Hylafax начал принимать факсы, надо запустить IAXmodem и ttyIAX устройство. Вручную это можно сделать командами:
/usr/local/sbin/iaxmodem ttyIAX0

Несколько OpenVZ и Asterisk внутри каждой из них.

Logo de AsteriskImage via Wikipedia

Лаболаторная работа.
Дано:
1. Три (3) виртуальных среды на одной хост системе.
2. Они клоны. Во все трех запущен Asterisk.
Цель: проверить работоспособность Asterisk внутри виртуальной среды в трех экземплярах на одной хост-системе.
Тест 1.
На каждом астериске настроен диалплан, который принимает входящий звонок и 300 секунд играет входящему Music On Hold.
В три ствола прозваниваемся с той же хост системы софтфоном на все астериски одновременно. Работает.
Тест 2.
Второй астериск в 30-каналов звонит на первый. Оба астериска слушают свой Music On Hold. Параллельно автор звонит на первый и второй астериски и слушает их Music On Hold. Работает без помех.
Тест 3.
Второй и Третий астериски по 30 каналов звонят на первый. Соответственно на каждом из них открыто по 60 каналов. Параллельно звоним софтфоном на каждый из них и слушаем Music On Hold. Работает без проблем.
Вывод: Можно запустить несколько одинаковых Virtual Environment's с Asterisk IP PBX внутри на одной хост-системе. Работать будет.
Enhanced by Zemanta

Реклама от BigBN