» » » Джим Меггелен - Asterisk™: будущее телефонии Второе издание


Авторские права

Джим Меггелен - Asterisk™: будущее телефонии Второе издание

Здесь можно скачать бесплатно "Джим Меггелен - Asterisk™: будущее телефонии Второе издание" в формате fb2, epub, txt, doc, pdf. Жанр: Программное обеспечение. Так же Вы можете читать книгу онлайн без регистрации и SMS на сайте LibFox.Ru (ЛибФокс) или прочесть описание и ознакомиться с отзывами.
Рейтинг:
Название:
Asterisk™: будущее телефонии Второе издание
Издательство:
неизвестно
Год:
неизвестен
ISBN:
нет данных
Скачать:

99Пожалуйста дождитесь своей очереди, идёт подготовка вашей ссылки для скачивания...

Скачивание начинается... Если скачивание не началось автоматически, пожалуйста нажмите на эту ссылку.

Вы автор?
Жалоба
Все книги на сайте размещаются его пользователями. Приносим свои глубочайшие извинения, если Ваша книга была опубликована без Вашего на то согласия.
Напишите нам, и мы в срочном порядке примем меры.

Как получить книгу?
Оплатили, но не знаете что делать дальше? Инструкция.

Описание книги "Asterisk™: будущее телефонии Второе издание"

Описание и краткое содержание "Asterisk™: будущее телефонии Второе издание" читать бесплатно онлайн.








• Условные циклы и переходы по условию.

• Переменные.

• Сложные структуры данных.

• Интеграция с базой данных/LDAP.

• Использование библиотек сторонних производителей.

• Обмен и распространение функциональности VoIP.

• Расширение конфигурационных языков.

• Плохая обработка ошибок.

• Плохая обработка даты и времени.

• Сопоставление с шаблонами.

• Единообразие использования.

• Организация исходного кода.

Многие решают эти проблемы, реализуя расширенную логику во внешних программах на таких языках программирования, как Perl и PHP, и соединяясь с Asterisk через AMI и AGI. К сожалению, обеспечивая желаемую мощь, эти решения не всегда упрощают жизнь разработчика. Наоборот, они зачастую еще более усложняют процесс разработки. Используя существующие технологии в Asterisk, но имея целью обеспечение мощи и простоты, Adhearsion предлагает новый подход.

Разработка в Asterisk с использованием Adhearsion

Adhearsion - это инфраструктура с открытым исходным кодом (распространяемая по лицензии LGPL), которая разработана с целью улучшения реализации решений Asterisk. Она располагается поверх системы Asterisk, обрабатывая части или весь диалплан, и обеспечивает несколько уникальных способов управления доступом к Asterisk посредством ряда улучшенных интерфейсов. Adhearsion выполняется в отдельном процессе-демоне и интегрируется через уже представленные выше интерфейсы Gateway (AGI) и Manager (AMI), поэтому конфигурирование контекста на ее использование заключается просто в добавлении нескольких строк в диалплан или пользователя в файл manager.conf.

Adhearsion преимущественно использует высокодинамичный объектно-ориентированный язык программирования Ruby, но может поддерживать другие языки, такие как С или Java. В мире VoIP многие вещи существуют как концептуальные объекты, то есть применение объектно-ориентированного программирования вполне логично. У тех, кто хорошо знаком с Python, Perl или другими языками сценариев, не должно возникнуть проблем с Ruby. Для тех, кто не работал до этого с языками сценариев, Ruby - замечательное начало.

Установка Adhearsion

Программное обеспечение Ruby, как правило, устанавливается с помощью диспетчера пакетов (аналогичного диспетчерам пакетов Linux, но созданного специально для платформы Ruby). Adhearsion входит в стандарт RubyGems, поэтому, если установлены Ruby и RubyGems, вы находитесь на расстоянии одной команды от установки Adhearsion.

Установка Ruby/RubyGems в AsteriskNOW

AsteriskNOW стандартно поставляется с Ruby, но без RubyGems (по причинам поддержки). К счастью, RubyGems можно без труда установить из коллекции Ruby rPath, используя следующую команду:

conary update rubygems=ruby.rpath.org@rpl:devel source /etc/profile

Установка Ruby/RubyGems в Linux

Диспетчеры пакетов многих дистрибутивов Linux содержат пакет Ruby, хотя в некоторых до сих пор нет RubyGems. В предпочтительном приложении управления разработкой и сопровождением ПО своего дистрибутива установите Ruby 1.8.5 или более позднюю версию и RubyGems, если он доступен. Если RubyGems недоступен в CentOS, Ruby можно установить, введя следующее: yum install ruby

Далее необходим RubyGems. Чтобы получить его, перейдите в /usr/ src/ и введите следующее:

wget http://rubyforge.Org/frs/download.php/20585/rubygems-0.9.3.tgz tar zxvf rubygems-0.9.3.tgz cd rubygems-0.9.3 ruby setup.rb

Установка Ruby/RubyGems в Mac OS X

Фактически Ruby поставляется с OS X, но понадобится обновить его и установить RubyGems с MacPorts, диспетчера пакетов OS X. Если

MacPorts установлен (доступен на http://www.macports.org, если у вас его еще нет), Ruby и RubyGems можно установить, используя следующую команду:

sudo port install ruby rb-rubygems

Также может понадобиться добавить /opt/local/bin в переменную PATH в/etc/profile.

Ruby/RubyGems в Windows

Для Windows существует замечательная программа установки «одним щелчком». Этот инсталлятор за несколько минут автоматически установит Ruby, RubyGems и несколько других обычно используемых пакетов. Инсталлятор можно скачать по адресу http://rubyforge.org/ projects/rubyinstaller.

Установка Adhearsion из RubyGems

Выполнив для своей системы все представленные выше инструкции и получив Ruby и RubyGems, установите Adhearsion, используя следующую команду:

gem install adhearsion

Если обнаружены какие-либо зависимости, вероятно, необходимо разрешить их установку, чтобы обеспечить нормальную работу Adhearsion.

Создание нового проекта Adhearsion

После того как Adhearsion установлена, можно приступать к созданию и запуску нового проекта Adhearsion с использованием новой команды ahn, утилиты командной строки, которая выполняет в Adhearsion практически все.

Вот пример команды для создания нового проекта Adhearsion:

ahn create ~/новыйпроект При этом в заданной папке создается подпапка, содержащая папку и иерархию файлов, необходимые для работы Adhearsion. У вас сразу же должно получиться запустить новое приложение по команде

ahn start ~/новыйпроект Чтобы ознакомиться с системой Adhearsion, просмотрите папки приложения и прочитайте сопутствующую документацию.

Написание диалплана в Adhearsion

Как правило, новички начинают с использования возможности написания диалпланов в Adhearsion. Поскольку Ruby допускает тонкую настройку самого языка во время выполнения, одна из функций, выполняемых Adhearsion, - реализация эстетических изменений, которые призваны упростить процесс разработки диалпланов.

Ниже приведено приложение Hello World (Здравствуй, мир), написанное в Adhearsion:

мой_первый_контекст { play "hello-world"

}

Это абсолютно допустимый синтаксис Ruby, но не все приложения Ruby так выглядят. В Adhearsion очень удобно объявлять имена контекстов, поскольку сценарий диалплана здесь обрабатывается особым образом. Ваши сценарии будут располагаться в корневой папке вновь созданного приложения Adhearsion.

Когда вызовы поступают в Asterisk и потом в Adhearsion, Adhearsion вызывает собственную версию имени контекста, из которого происходит AGI-запрос. Таким образом, имя контекста в файле extensions.conf должно гарантированно быть таким же, чтобы обеспечить соответствующее перенаправление вызовов в Adhearsion.

Синтаксис направления вызовов в Adhearsion следующий:

[мой_первый_контекст]

exten => _.,1,AGI(agi://127.0.0.1)

Любой набранный шаблон фиксируется здесь и отправляется в Adhearsion через AGI для реализации инструкций по обработке вызова. Предоставленный здесь IP, конечно, должен быть заменен на IP, который обеспечит доступ к вашему серверу Adhearsion.

Теперь, имея базовое понимание того, как взаимодействуют Adhearsion и Asterisk, можно перейти к более реалистичному примеру диалплана в Adhearsion:

internal {

case extension when 10..99

dial SIP/extension when 6000..6020, 7000..7030

# Присоединяемся к конференции MeetMe с помощью join join extension

when _'21XX'

if Time.now.hour.between? 2, 10

dial SIP/"berlin-office"/extension[2..4] else speak "The German office is closed" end

when US_NUMBER

dial SIP/'us-trunk-out'/extension when /~\d{11,}$/ # Perl-подобное регулярное выражение

# Передаем все остальные длинные номера прямо в наш

# магистральный канал связи.

dial IAX/'intl-trunk-out'/extension else

play %w'sorry invalid extension please-try-again' end

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

• Переменная extension (которую Adhearsion создает для нас) используется в условном выражении.

• Набор номера от 10 до 99 направляет нас к равноправному участнику SIP с соответствующим числовым именем пользователя.

• Любой номер в диапазоне от 6000 до 6200 или от 7000 до 7030 направляется в конференцию MeetMe под тем же номером. Конечно, для этого требуется, чтобы номера данных конференций были сконфигурированы в meetme.conf.

• Опция 21XX' точно отвечает стилю шаблонов Asteris. Начало строки с символа подчеркивания в Adhearsion обеспечивает неявный вызов метода, который возвращает регулярное выражение Ruby. В Ruby-выражении case регулярные выражения могут использоваться в выражении when для выполнения сопоставления с шаблоном. Конечный результат должен быть очень хорошо знаком тем, кто имеет опыт написания extensions.conf.

• Синтаксис Adhearsion для представления каналов также происходит непосредственно из традиционного формата Asterisk. SIP/123 может использоваться как есть для представления равноправного участника SIP 123. Если бы использовался магистральный канал, синтаксис был бы такой: SIP/имяканала/имяпользователя.

• Метод speak() обобщает лежащий в основе механизм преобразования текста в речь. Он может быть сконфигурирован на использование наиболее популярных механизмов.

• В выражении when для осуществления более сложного сопоставления с шаблонами, если шаблонов Asterisk недостаточно, может использоваться полноценное Perl-подобное регулярное выражение.

• Adhearsion определяет несколько констант, которые могут быть полезны при написании диалпланов. Константа US_NUMBER здесь - это регулярное выражение, соответствующее телефонному номеру в США.

• Если необходимо воспроизводить несколько файлов последовательно, play() принимает массив имен файлов. К счастью, в Ruby есть удобный способ создания массива строковых значений (String).


На Facebook В Твиттере В Instagram В Одноклассниках Мы Вконтакте
Подписывайтесь на наши страницы в социальных сетях.
Будьте в курсе последних книжных новинок, комментируйте, обсуждайте. Мы ждём Вас!

Похожие книги на "Asterisk™: будущее телефонии Второе издание"

Книги похожие на "Asterisk™: будущее телефонии Второе издание" читать онлайн или скачать бесплатно полные версии.


Понравилась книга? Оставьте Ваш комментарий, поделитесь впечатлениями или расскажите друзьям

Все книги автора Джим Меггелен

Джим Меггелен - все книги автора в одном месте на сайте онлайн библиотеки LibFox.

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Отзывы о "Джим Меггелен - Asterisk™: будущее телефонии Второе издание"

Отзывы читателей о книге "Asterisk™: будущее телефонии Второе издание", комментарии и мнения людей о произведении.

А что Вы думаете о книге? Оставьте Ваш отзыв.