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

Показаны сообщения с ярлыком Operating Systems. Показать все сообщения
Показаны сообщения с ярлыком Operating Systems. Показать все сообщения

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

Настройка FreePBX

FreePBX это полнофункциональный веб-интерфейс для конфигурации Asterisk PBX ( Asterisk GUI ). Если Вы знакомы с Asterisk, то знаете, настройка АТС осуществляется при помощи конфигурационных файлов. FreePBX предлагает простой, интуитивно понятный интерфейс для настройки и управления Asterisk PBX. FreePBX также поставляется со многими дистрибьютивами
http://www.freepbx.org/

Basic

  • Extensions - Используется для создания екстеншенов.
  • Feature Codes - Коды абонентских функций.
  • General Settings - Основные системные установки.
  • Outbound Routes - Маршрутизирует исходящие вызовы по требуемым транкам.
  • Trunks - Управляет ZAP (Dahdi), SIP, IAX каналами для выхода в общую телефонную сеть, или соединения АТС.
  • Administartors - Используется для назначения адмистраторов :!: Этот модуль не будет работать, если в файле /etc/amportal.conf, AUTHTYPE установлено значение none.Смотри также Изменение пароля FreePBX

VoIP-GSM шлюз для Asterisk на USB модеме HUAWEI E1550

Asterisk (PBX)Image via Wikipedia

:!: Голосовой модуль по умолчанию активирован только в модемах МТС. :!:
Рекомендованное ядро Linux 2.6.33+
Asterisk 1.6.+
Заведомо рабочие прошивки (firmware - не путать с dashboard):
МТС 11.608.12.00.143
11.608.14.15.311
Нерабочая firmware:
Мегафон 11.608.12.10.209 -при активированном голосе из под винды звонит, из под Linux - нет.
Активировать голосовую функцию можно программой DC-UNLOCKER за 4 кредита - 4 евро.

Установка asterisk из исходников

# wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-1.6.2-current.tar.gz
# tar zxvf asterisk-1.6.2-current.tar.gz
# cd asterisk-1.6.2-current.tar.gz
# apt-get install g++ libncurses-dev libxml2-dev subversion
# ./configure
# make install
# make config
# make samples

Установка модуля канала chan_datacard для Huawei

Файл datacard.conf из ~/chan_datacard/etc копируем в каталог /etc/asterisk
# svn co http://www.makhutov.org/svn/chan_datacard/trunk/ chan_datacard
# cd ~/chan_datacard/
# ./configure
# make install
# cp ~/chan_datacard/etc/datacard.conf /etc/asterisk

NAT, SIP и Asterisk

Asterisk (PBX)Image via Wikipedia

Трансляция сетевых адресов (NAT) является обычной практикой в сети и нередко мешает прохождению голосовых пакетов и инициализации соединений. Решение этой проблемы требует понимания принципов работы NAT и VoIP. В этой статье рассматривается протокол SIP и Asterisk, но проблемы и решения применимы и к большинству других приложений и протоколов.
NAT используется, чтобы скрыть многочисленные локальные адреса, за каким-то внешним узлом, обеспечивая безопасность и структуризацию сети.
Когда пакет проходит шлюз (gateway), IP-адрес локального источника заменяется на внешний IP-адрес. При ответе шлюз направляет пакет на исходный локальный адрес. Также шлюз блокирует внешние запросы не имеющие явных внутренних источников, но возможно пробросить пакеты пришедшие на определенные порты, на заранее заданные IP адреса внутри сети.

Reinvite

Первый абонент запрашивает соединение у второго , сообщая свой IP адрес. Второй отвечает, сообщая свой IP. Голосовые пакеты направляются напрямую абонентам, минуя SIP сервер. Передача голосовых пакетов напрямую абонентам, минуя Asterisk, называется RE-INVITE или Native Bridge.
NAT может вызвать проблемы в нескольких местах.

  • Если одна из АТС находится за NAT, другая АТС не сможет связаться с ней, без проброса портов.
  • Если телефон находится за NAT, голосовые пакеты могут быть направлены на немаршрутизируемый адрес в сети, что приведет к потере звука.

Клиент за NAT

В простейшей ситуации SIP клиент находясь за NAT, обращается к внешнему интерфейсу Asterisk. SIP клиент при регистрации на сервере создает запись в таблице трансляций, которая сохраняется, пока проходит хотя бы один пакет в минуту. В файле sip.conf требуется определить параметры сети и свойства удаленного пира.


[general]
localnet=192.168.0.0/255.255.255.0 ; локальная сеть
externip=x.x.x.x                   ; внешний ip адрес

[sip_phone]             
nat=yes
qualify=300                    ; проверять соединение каждые 300 мс.
При такой конфигурации Asterisk использует внешний IP адрес externip для вызовов клиентов с параметром nat=yes . Дополнительно параметр qualify=yes поддерживает соединение, не позволяя удалять запись из таблицы трансляций.

Открытый 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

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

Asterisk (PBX)Image via Wikipedia
Asterisk использует несколько папок в системе Linux для организации различных аспектов системы, таких как запись сообщений голосовой почты, голосовые сообщения и конфигурационные файлы. В данном разделе обсуждаются необходимые папки. Все они создаются во время установки и конфигурируются в файле asterisk.conf. /etc/asterisk/

В папке /etc/asterisk/ располагаются конфигурационные файлы Asterisk. Однако один файл, zaptel.conf, находится в папке /etc/. Аппаратные средства Zaptel изначально были разработаны Джимом Диксоном (Jim Dixon), сотрудником компании Zapata Telephony Group, как подходящее и доступное по цене оборудование для компьютерной телефонии. Asterisk использует это оборудование, но любое другое ПО также может воспользоваться устройствами и драйверами Zaptel. Поэтому конфигурационный файл zaptel.conf вынесен из папки /etc/ asterisk/.
/usr/lib/asterisk/modules/

В папке /usr/lib/asterisk/modules/ располагаются все загружаемые модули Asterisk. В этой папке находятся различные приложения, кодеки, форматы и каналы, используемые Asterisk. По умолчанию Asterisk загружает все эти модули при запуске системы. Любые неиспользуемые модули можно отключить в файле modules.conf, но при этом необходимо помнить, что некоторые модули необходимы Asterisk или являются зависимостями других модулей. Попытка загрузить Asterisk без этих модулей приведет к ошибке при запуске.
/var/lib/asterisk


В папке /var/lib/asterisk/ находится файл astdb и ряд подпапок. Файл astdb содержит информацию локальной базы данных Asterisk, что несколько напоминает реестр Microsoft Windows. База данных Asterisk -простая реализация на базе версии 1 Berkeley BD. Один из исходных файлов Asterisk, db.c, информирует, что эта версия была выбрана по следующей причине: «Реализация DB3 создана по альтернативной лицензии, несовместимой с общедоступной лицензией (General Public License, GPL). Таким образом, чтобы не усложнять лицензирование Asterisk, было решено использовать версию 1, поскольку она выпущена по лицензии BSD».
Папка /var/lib/asterisk/ включает следующие подпапки: agi-bin/
В папке agi-bin/ находятся специальные сценарии, которые могут взаимодействовать с Asterisk через различные встроенные приложения AGI. Подробнее об AGI рассказывается в главе 8.
firmware/

Папка firmware/ содержит встроенное ПО для различных совместимых с Asterisk устройств. В настоящее время в этой папке имеется только подпапка iax/, в которой находится двоичное отображение встроенного ПО для IAXy производства Digium.
images/

Приложения, которые соединяются с каналами, поддерживающими изображения, ищут папку images/. Большинство каналов не поддерживают передачу изображений, поэтому эта папка используется редко. Однако если появится больше устройств, поддерживающих и использующих изображения, эта папка станет более значимой.
keys/

Asterisk может использовать систему открытых/закрытых ключей для аутентификации равноправных участников сети, которые соединяются с модулем, используя цифровую подпись RSA. Если поместить открытый ключ такого участника сети в свою папку keys/, этот участник сети сможет быть аутентифицирован каналами, поддерживающими данный метод (такими, как каналы IAX2). Закрытый ключ никогда не предоставляется. Справедливо и обратное: вы можете предоставить свой открытый ключ равноправным участникам сети, что позволит вам проходить аутентификацию с использованием своего закрытого ключа. И открытый, и закрытый ключи - файлы с расширениями .pub и .key соответственно - хранятся в папке keys/.
mohmp3/

Если Asterisk сконфигурирована на воспроизведение музыки при ожидании, приложения, использующие эту функцию, ведут поиск файлов в формате MP3 в папке mohmp3/. Asterisk несколько требовательна к форматированию МР3-файлов, поэтому следует использовать кодирование с постоянной скоростью передачи данных (constant bitrate, CBR) и удалять теги ID3 из файлов. sounds/

Все доступные для Asterisk голосовые сообщения находятся в папке sounds/. Основные сообщения, поставляемые с Asterisk, объединены в файл sounds.txt, размещающийся в папке исходного кода Asterisk. Дополнительные подсказки находятся в файле sounds-extra. txt, расположенном в той папке, в которую ранее в этой главе был извлечен из архива пакет asterisk-sounds.
/var/spool/asterisk/

Папка Asterisk spool имеет несколько подпапок, включая dictate/, meetme/, monitor/, outgoing/, system/, tmp/ и voicemail/ (рис. 3.4). Asterisk отслеживает папку outgoing на наличие текстовых файлов, содержащих информацию запросов вызовов. Эти файлы позволяют производить вызов, просто перемещая правильно структурированный файл в папку outgoing/.
Файлы вызовов, помещенные в папку outgoing/, могут содержать полезную информацию, такую как Context (Контекст), Extension (Расширение) и Priority (Приоритетность), соответственно которой должен начинаться ответ на вызов, или просто приложение и его аргументы. Также в них можно задать переменные и определить код учетной записи для Call Detail Records (Записи параметров вызовов). Более подробная информация об использовании файлов вызовов представлено в главе 9.

dictate/ - папка, в которой приложение Dictate() ищет файлы по умолчанию.
meetme/ - папка, в которой сохраняются записи конференций, организованных приложением MeetMe().
Записи, полученные с помощью любого приложения для записи «в одно касание» (флаги w и W для приложения Dial()), MixMonitor() или Monitor(), хранятся в папке monitor/.
Папка system/ используется приложением System() для временного хранения данных.
Папка tmp/, как это ни смешно, используется для хранения временной информации. Некоторым приложениям может потребоваться место для записи файлов перед копированием их окончательных версий в постоянное местоположение. Это предотвращает попытки одновременной записи и чтения файла разными процессами.
Все сообщения голосовой почты и приветствия пользователя находятся в папке voicemail/. Для добавочных номеров, заданных в voicemail. conf и по крайней мере один раз зарегистрировавшихся в системе, в voicemail/ создаются подпапки.
/var/run/

Папка /var/run/ содержит идентификаторы процессов (Process ID, PID) для всех активных процессов системы, включая Asterisk (как определено в файле asterisk.conf). Обратите внимание, что в разных ОС для этих целей могут использоваться различные папки.
/var/log/asterisk/

Папка /var/log/asterisk/ является местом хранения журнала Asterisk. Редактируя файл logger.conf, находящийся в папке /etc/asterisk/, можно управлять типом информации, протоколируемой в различных файлах. Базовая конфигурация файла logger.conf рассматривается в приложении D.
/var/log/asterisk/cdr-csv

Папка /var/log/asterisk/cdr-csv используется для хранения записей параметров вызовов (CDR) в формате CSV (с разделяющими запятыми). По умолчанию информация хранится в файле Master.csv, но для отдельных учетных записей с помощью опции accountcode можно организовать хранение их CDR в отдельных файлах (подробнее об этом рассказывается в приложении А).
Enhanced by Zemanta

Руководство по решению проблем: настройка моста/ повторителя WDS

Введение

Многие модели устройств 802.11g могут работать в качестве моста или повторителя WDS, но, к сожалению, их настройка пока не так проста, как хотелось бы. В этом руководстве мы рассмотрим и сравним WDS с предыдущими технологиями создания беспроводных мостов и дадим несколько советов, которые помогут вам в построении беспроводных мостов WDS.
Мы подробно рассмотрим два примера, которые помогут разобраться с параметрами настройки и понять, как можно использовать WDS. Кроме этого, мы приведём несколько примеров использования "сложных" конфигураций WDS.
Примечание Примечание: Точками доступа в этой статье будем называть не только сами точки доступа, но и беспроводные маршрутизаторы, если не сказано иначе.

Технология WDS

Термин WDS расшифровывается как "беспроводная система распределения" (Wireless Distribution System), которая поддерживается всё большим количеством точек доступа 802.11. Проще говоря, она позволяет точкам доступа устанавливать беспроводное соединение между собой, вместо того, чтобы использовать проводные Ethernet-каналы.
Соединения WDS основываются на MAC-адресах и используют специальный тип кадров, в которых задействованы все четыре поля для MAC-адресов, определённые стандартом 802.11, вместо трёх при обычной передаче данных между точкой доступа и клиентом.
Использование четырёх полей MAC-адресов в кадре - единственное, что реализовано в стандартах 802.11, но этого оказалось достаточно для реализации функций моста в точках доступа уровня предприятия, то есть в дорогих моделях 802.11b, появившихся ещё в конце 90-х годов прошлого века. Те решения работали на уровне доступа к среде передачи данных (MAC), а технология была разработана компанией Choice Microsystems.
Точки доступа с функцией беспроводного моста оставались весьма дорогими примерно до осени 2002 года, когда беспроводные мосты перешли в разряд массовых устройств. Известная многим компания D-Link была первой, кто снизил цену устройств подобного класса, выпустив бесплатное обновление прошивки к своей точке доступа DWL-900AP+, подробнее с которой можно познакомиться здесь. Благодаря этому обновлению, на рынке появился первый недорогой продукт, поддерживающий функции моста и повторителя (см. ниже). Другие компании вслед за D-Link тоже выпустили подобные обновления, а также представили беспроводные мосты в виде самостоятельных устройств, например, Linksys WET11 [рассмотренный здесь].

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

Asterisk (PBX)Image via Wikipedia
Оригинал: http://www.asterisk-support.ru/documentation/bulk/LinuxAsteriskSetup


   В данной статье пойдет речь не об установке какого-то либо
   дистрибутива линукс, а об общих мерах, которые нужно предпринять для
   стабильной и безопасной работы asterisk на linux. Итак,


Установка
   Абсолютно не важно, какой дистрибутив линукса вы собираетесь
   использовать. При установке выбирайте минимальную конфигурацию.
   Asterisk не нуждается офисных пакетах, играх и графических оболочках.
   Чем меньше всякого хлама установите, тем лучше.

   Пакеты, которые нужны, это:

     * glibc-devel - заголовочные файлы стандартных библиотек. Без этого
       пакета ничего не откомпилируется.
     * kernel-devel и kernel-header - исходные тексты ядра Linux. нужны
       для сборки zaptel. Даже если у вас и не планируется использовать
       железо от Digium, для нормальной работы MusicOnHold? и
       конференций понадобится собрать модуль ztdummy, который обеспечит
       тактирование от USB подсисемы.
     * db-devel - астериск использует встроенную базу данных.
     * gcc,cpp,binutils,bison,expat-devel и ncurses - компиляторы,
       препроцессоры и другие утилиты. curses нужен для сбоки консльного
       менеджера astman.
     * openssl, openssl-devel - библиотеки
   Если каких-то пакетов не хватает, установите их после установки
   системы. В linux при помощи комманды rpm -i package-1.1.rpm , в
   slackware при помощи installpgk package.tgz


Зачистка системы
   Еще не встречал такого дистрибутива, после установки которого не
   приходилось бы брать напильник (а это нормально - все предусмотреть
   нельзя). Итак, что надо сделать сразу после установки.

     * Проверка сетевых служб. netstat -atnup выведет список всех сокетов
       TCP/UDP, которые открыты на данный момент. Так как у нас только
       asterisk сервер, то работать только служба SSH (для удаленного
       администрирования) и астериск. Кстати, чем меньше портов вы
       обнаружите открыми, тем более "правильно (минимально)" вы
       устновили линукс. Комманда netstat выведет номер процесса, и его
       pid узнайте название. Далее при помощи ntsysv или chkconfig
       откючите ненужную службу.

Asterisk Голосова пошта

Asterisk (PBX)Image via Wikipedia
Щоб правильно використовувати голосової пошти Asterisk, Ви повинні виконати ряд кроків налаштування. Додержуйтеся інструкцій у цій статті, і Ви можете насолоджуватися поштою.

Основна конфігурація для Asterisk і голосова пошта

Використання інтерфейсу FreePBX і натисніть на компонент "Загальні налаштування".
У розділі "Параметри набору", змінити таким:
Опції Commandes де numérotation : TRW
Замовлення Параметри вихідної : TW
T: Дозволяє апелянти перевести дзвінок, натиснувши #
г: Генерує сигнал для заявника
в: Дозволяє апелянти, щоб почати запис, натиснувши * 1
У "Голосова пошта", змінити таким:
Час за замовчуванням рінгтон: 20
20 це кількість секунд телефон задзвонить до відправки виклику на голосову пошту. Це дасть вам більше часу для відповіді на дзвінок.
Повідомлення тип доступу до голосової пошти: Недоступний
Це дозволить уникнути проблем при використанні функції "Йди за мною", перешкоджатиме система грає повідомлення за замовчуванням і дозволяє грає персональної повідомлення.
У розділі "Бізнес-довідник", змінити таким:
Пошук користувачів в каталозі компанії з: ім'я
Це дозволить абонентам шукати вашу систему на більш підходящі житлові. Я користуюся, як моя гіпотеза, що всі ті ж прізвища.
У полі "Факс", змінити таким:
Розширення для отримання факсів: Система
Вибір системи для системи отримувати факси та відправляє їх по електронній пошті. Якщо у вас є факс підключений до аналогової лінії, з продовженням на цьому шляху, як значення параметра. Якщо ця опція вимкнена, він буде відповідати на дзвінки швидше, але ви не будете мати можливість факс.
Email Факс: VOTRE_ADRESSE@gmail.com
Адреса електронної пошти буде використовуватися, якщо система варіант був вибраний для факсу розширення визначено вище. Це дозволить вам отримувати факси прямо у вашу поштову скриньку.
Email викидів факс: VOTRE_ADRESSE@gmail.com
Адреса електронної пошти, факсу, буде відображатися, якщо система була обрана для факсу розширення визначено вище.
У полі "Мережеве оновлення", змінити таким:
Перевірка оновлень: та
Адреса електронної пошти оновлення: VOTRE_ADRESSE@gmail.com

Повідомлення про голосових повідомлень по-французьки

Якщо ви хочете думку голос повідомлень, переданих по електронній пошті дані по-французьки, виконати наведені нижче інструкції:
Для редагування конфігураційних файлів, Ви можете використовувати редактор "VI", або "Джо" на засіданні "Shell". Ви також можете робити редагування з FreePBX за допомогою компонента "Змінити конфігурацію", перебуває в "Інструменти", і виберіть потрібний файл.
Freepbx_Edittion
Відредагуйте файл / ETC / зірочка / vm_email.inc
Змініть рядок :
;emailbody = $ () VM_NAME,\ П \ nМожливо новий голосової пошти в поштовій скриньці $ () VM_MAILBOX:\ N \ п \ tFrom:\ Т $ (VM_CALLERID) \ п \ tLength:\ T $ () VM_DUR секунд \ п \ TDate:\ Т $ (VM_DATE) \ п \ nDial * 98 для доступу до голосової пошти по телефону. \ NVisit HTTP:/ / AMPWEBADDRESS / запису / index.php для перевірки голосової пошти з веб-браузером. \ П
Для цього :

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. Queue. Очередь звонков в Asterisk.

Asterisk Flash Operator PanelImage via WikipediaПри телефонизации офисов, вопрос с созданием очереди звонков возникает достаточно часто. Например при наличии более 1 менеджера по продажам, руководство хочет, что бы им на отдел поступали звонки и звонки равномерно распределялись по менеджерам, да в прочем, даже если они хотят, что бы все звонки поступали ко всем сразу все это реализуемо и работает. Работает с помощью Queue.

А настраивается это так. В первую очередь опишем в sip.conf наших менеджеров:
[manager1]
type=friend
secret=manager1
host=dynamic
username=manager1
context=sip-users
callerid=101
call-limit=1
 
[manager2]
type=friend
secret=manager2
host=dynamic
username=manager2
context=sip-users
callerid=102
call-limit=1
 
Да и обязательно в секции [default] sip.conf, если у вас Asterisk 1.4.29 или старше, должно быть:
limitonpeers = yes
иначе очередь работать не будет.

И сделаем:
asterisk -r
sip reload

Теперь организуем саму очередь. Описывается она в queues.conf. Добавим в конце описание нашей очереди:
[managers]
strategy = rrmemory
member => SIP/manager1
member => SIP/manager2
 
Здесь описаны состав очереди,manager1 и manager2 и тип распределения звонков strategy = rrmemory. Это роунд-робин – то есть менеджеры по очереди будут получать звонки. До недавнего времени он так и назывался, кстати, roundrobin, а потом, по непонятной причине был переименован в rrmemory.
Еще доступные варианты strategy = ringall – телефон звонит у всех. Вариант, поступления звонка к оператору, который дольше всех не отвечал на звонки: startegy = leastrecent. random – случайный выбор оператора и fewestcalls – звонок будет поступать оператору с наименьшей длительностью разговоров.

Теперь в консоли астериска(asterisk -r) делаем:
reload app_queue.ko

А теперь осталось направить входящие звонки на Queue. Для этого в extensions.conf, в том контексте в котором должны поступать звонки на очередь, прописываем:
exten => 1000,1,Answer
exten => 1000,2,Wait(1)
exten => 1000,3,Queue(managers|t||)
exten => 1000,4,Hangup
 
Тут соответсвенно 1000 – номер на который будут поступать звонки.
Перегружаем диалплан:
extensions reload
и в общем то все. Настройка простейшей очереди закончена.
Enhanced by Zemanta

Asterisk. Перехват (PickUP) звонка.

Asterisk (PBX)Image via WikipediaЕще одна из востребованных функций – это перехват звонка. То есть, если ваш сосед вышел, а у него звонит телефон, нужно перехватить звонок. Очень полезная функция. Она по умолчанию включена в Asterisk. По умолчанию за перехват звонка отвечает комбинация клавиш *8. Проверить что у вас учтановлено можно с помощью консоли Asterisk(asterisk -r):
show features

и должны увидеть строку:
Pickup                    *8      *8
Изменить эту комбинацию можно в файле features.conf.
pickupexten = *8
Теперь остается определить кто чьи звонки может перехватывать.
Делается это с помощью опций pickupgroup и callgroup. Устанавливаются они на соответствующих абонентов.

Например для sip абонентов это будет выглядеть так:
[manager1]
type=friend
secret=manager1
pickupgroup=1
callgroup=1
host=dynamic
username=manager1
context=sip-users
callerid=101
call-limit=2
 
[manager2]
type=friend
secret=manager2
pickupgroup=1
callgroup=1
host=dynamic
username=manager2
context=sip-users
callerid=102
call-limit=2
 
И еще. Звонок можно перехватить даже еслт он шел в Queue и любой может быть членом нескольких pickup и call групп.
Enhanced by Zemanta

Установка голосовых файлов в Asterisk

Asterisk (PBX)Image via WikipediaТак уж случилось, что в поставку Asterisk не входит ни русского языка, ни украинского. Но тщательно погуглив, можно найти готовые голосовые файлы приемлемого качества. Правда только русскоязычные, но этого в принципе достаточно.
Астериск держит звуковые файлы в директории /usr/local/share/asterisk/sounds/. Это под FreeBSD, под Linuxами в /usr/share/asterisk/sounds/.
То что непосредственно находится в директории sounds – это англоязычные файлы. Английский язык – он по умолчанию. Внутри этой директории находятся файлы, которые отвечают за базовый функционал.

То есть к примеру в базовый функционал Asterisk входит модуль голосовой почты и к примеру файлы vm-* – они относятся к этой голосовой почте. Файлы conf-* к модулю конференций. И так далее. Название каждого файла жестко определено. Кроме того, в этой директории можно видеть поддиректории es и fr. Это директории содержат локализированные начитки. То есть, по простому – файлы испанского и французского языков.
И нам, что бы сделать русскую локализацию, нужно создать директорию ru и положить в нее необходимые начитки. Начитки могут быть как в формате gsm, так и wav. Главное что бы само имя файла совпадало.
А для того, что бы астериск знал, что нужно использовать начитки русского языка, нужно указывать в начале диалплана такую стоку:
exten => 5740000,1,Set(CHANNEL(language)=ru)
Естественно, устанавливать эту переменную нужн для каждого экстеншена персонально.
Enhanced by Zemanta

Skype SIP транк

Image representing Digium as depicted in Crunc...Image via CrunchBase

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)

Факс сервер на 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

Работа с Видео в Asterisk

Asterisk (PBX)Image via Wikipedia

Некоторые каналы сервера Asterisk имеют поддержку передачи видео:



Каналы H323 (chan_h323, chan_oh323, chan_ooh323) не позволяют в данный момент совершать вызовы с поддержкой видео.

Поддерживаемые видео кодеки:

  • H.261
  • H.263
  • H.263p (Начиная с Asterisk, версии 1.4)
  • H.264 (Начиная с Asterisk, версии 1.4)

Стоит отметить, что поддержка видео в Asterisk версии 1.4 до сих пор в зачаточном состоянии (см. главу: основные моменты, ниже). Суммируя нижеизложенное, получаем:
  • Asterisk 1.4 имеет проблемы, связанные с согласованием видеокодеков.
  • Сервер Asterisk не обменивается и не распознает расширенные атрибуты для видеопотоков, такие как: profile/level (H.263+, MPEG4, H.264), полоса пропускания, standard annexes, частота кадров и размеры изображения.
  • Сервер Asterisk не предоставляет возможностей по проигрыванию файлов в классических видеоформатах, таких как: .mov, MP4 или файлов в формате 3gp.
  • Сервер Asterisk не предоставляет функционала по перекодировке из одного видеокодека в другой.

Для включения возможности совершать вызовы с поддержкой видео (для протокола SIP), отредактируйте файл sip.conf и добавьте параметр:

[general]
videosupport=yes


Для каждого SIP пользователя, Вам нужно указать поддерживаемые видеокодеки (см. примеры на этой странице). Если Вы не хотите полагаться на согласование видокодеков, которое существует в непропатченном сервере Asterisk версии 1.4.x (и не всегда корректно работает), убедитесь, что вы разрешили только один кодек для видео в Вашем файле sip.conf. Для решения этой проблемы, можно воспользоваться патчем, который описан ниже. И конечно, видеокодеки должны поддерживаться SIP телефонами, которые подключены к серверу Asterisk. Asterisk может работать только в прозрачном режиме при передаче видеопотоков.

Видеоконверторы для Asterisk

  • FFasterisk: Утилита для создания видео контекста для Asterisk. Она позволяет конвертировать MOV файлы в пару файлов .H.263 (для видео) и .wav (для звука), с которыми может работать сервер Asterisk.

Программное обеспечение для создания видеоконференций в Asterisk.

  • 1videoConference: VVoIP Решение с открытыми исходными кодами от Adiance.
  • Mediamixer от Sergio Murillo.
  • app_conference: имеет ограниченную поддержку видео.
  • Confiance.

Некоторые основные моменты, относительно использования видео в Asterisk


В сервере asterisk версии 1.4, выбор видеокодека содержит дефекты в алгоритме (также смотри данный bug report). Для решения это проблемы IVèS предложил патч, но он не был принят. Кроме того, другая независимая разработка с названием Asterisk videocaps, позволяет надлежащим образом согласовывать fmtp атрибуты, связанные с передачей видеопотоков, в SDP. Это решение было включено в trunk и может быть появится в Asterisk 1.6.

В asterisk 1.6 запланирована глобальная перестройка поддержки видео для различных каналов, но никаких технических условий по реализации не было опубликовано. Кто-то просто хочет включить поддержку videocaps и остановиться на этом. Некоторые имеют более амбициозные планы на этот счет. Рекомендуется ознакомиться со списком рассылки: Asterisk video.

Автоматическая перезагрузка компьютера при зависании (Watchdog)

Вариант 1

Признаком нормальной работы компьютера в данном случае служит наличие сигнала на выходе TxD одного из COM портов. Защищаемая от "зависания" программа должна постоянно выводить в него данные. Какие - значения не имеет. Это может быть полезная информация, предназначенная для подключённого к порту устройства, либо другая, лишь бы сигнал на выходе TxD не прерывался на длительное время.
Значения выпрямленного диодами VD1 и VD2 напряжения на конденсаторах C2 и C3 равны по абсолютной величине (~10 В), но противоположны по знаку. В результате напряжение на базе транзистора VT1 близко к нулю и он закрыт. После прекращения сигнала TxD конденсатор C3 разряжается быстрее, чем C2, ёмкость которого в несколько раз больше. Напряжение на базе транзистора VT1 становится положительным и открывает его. Цепь "Сброс" компьютера соединяется с общим проводом до полной разрядки конденсатора C2.
В результате компьютер начнёт работу с загрузки операционной системы и выполнения команд Autoexec.bat. Среди них не должно быть команд, требующих оператора (например, ввод пароля). Только загрузка необходимых резидентных драйверов и вызов рабочей программы. В течении всего перезапуска "сторож" не оказывает влияния на работу компьютера, т.к. сигнал TxD отсутствует, конденсаторы разряжены, а транзистор закрыт. С появлением сигнала первым заряжается конденсатор C3, затем C2, и устройство готово к работе.

Реклама от BigBN