Чтение онлайн

на главную

Жанры

Asterisk™: будущее телефонии Второе издание
Шрифт:

Этот метод также позволяет вызывать другие механизмы речевого воспроизведения текста, такие как популярный речевой механизм производства компании Cepstral , который является недорогой коммерческой производной Festival с очень приятными голосами. Для этого примера будем считать, что Cepstral установлен в папку /usr/local/cepstral/: exten => 125,1,Answer

exten => 125,2,System(/usr/local/cepstral/bin/swift -o /tmp/swift.wav

"Это проверка Cepstral")

exten => 125,3,Playback(/tmp/swift)

exten => 125,4,System(rm /tmp/swift.wav)

exten => 125,5,Hangup

Появление следующего вывода означает, что в список доступа в файле festival.scm не был добавлен хост, вследствие чего соединение

было отклонено:

[root@asterisk ~]# festival --server

server Sun May 1 18:30:52 2005 : Festival server started on port 1314 client(1) Sun May 1 18:32:32 2005 : rejected from asterisk.localdomain not in access list

Файлы вызовов

Файлы вызовов позволяют создавать вызовы в оболочке Linux. Эти мощные события запускаются путем размещения файла .call в папке /var/spool/asterisk/outgoing/. Фактически имя файла не имеет значения, но хорошей практикой является давать ему информативное имя и заканчивать его расширением .call.

Когда файл вызова появляется в папке исходящих вызовов, Asterisk практически немедленно начинает действовать согласно содержащимся в нем инструкциям [131] .

Файлы вызовов записываются в следующем формате. Сначала определяем, куда будем звонить:

Channel: канал

Можно задать время ожидания ответа на звонок (по умолчанию 45 с), время между повторными попытками дозвониться и максимальное число попыток. Если параметр MaxRetries (максимальное число попыток) опущен, выполняется только одна попытка вызова:

131

Речь здесь идет о миллисекундах. Не верите? Проверьте сами!

WaitTime: число RetryTime: число MaxRetries: число

Если ответ на звонок получен, здесь мы определяем, где он должен обрабатываться:

Context: имя-контекста Extension: добавочный номер Priority: приоритет

В качестве альтернативы можно задать только приложение и передавать аргументы в него:

Application: Playback Data: hello-world

Далее задаем Caller ID (ID звонящего) исходящего звонка:

CallerID: Asterisk 800-555-1212

Задаем переменные канала следующим образом:

SetVar: john=Zap/1/5551212 SetVar: sally=SIP/1000

и добавляем код учетной записи CDR:

Account: документация

Нельзя создавать файл вызова из папки, в которой находится очередь. Asterisk активно отслеживает подкачку и попытается захватить файл даже еще до того, как он будет закончен! Файлы вызовов должны создаваться в какой-то другой папке, потом в той же папке создается копия этого файла и эта копия с помощью команды mv перемещается в папку подкачки. Заметьте, что мы назвали команду mv, не cp. Это важно, потому что процесс копирования в Linux реализован таким образом, что файл появляется в папке назначения еще до того, как он оказывается там полностью. В противоположность этому, использование операции mv не позволит файлу появиться в папке назначения до полного завершения операции перемещения. При копировании очень велика вероятность того, что Asterisk начнет читать файл до того, как он весь будет перенесен туда, что приведет к непредвиденным результатам.

DUNDi

Если бы возникли опасения, что Марк Спенсер может исчерпать свой запас интересных идей, система Distributed Universal Number Discovery (DUNDi) с легкостью пресекла бы их. DUNDi

является такой же революционной разработкой, как и Asterisk. Лучшее определение дано на веб-сайте DUNDi : «DUNDi™ - это одноранговая система для поиска интернет-шлюзов в сервисы телефонии. В отличие от традиционных централизованных сервисов (таких, как необыкновенно простой и лаконичный стандарт ENUM;http://www.faqs.org/rfc/ rfc2916.txt), DUNDi является полностью распределенным и вообще не имеет никакой централизованной службы». DUNDi - это в некотором роде протокол маршрутизации для VoIP.

Как работает DUNDi

DUNDi можно рассматривать как большую телефонную книгу, которая позволяет запрашивать у равноправных участников сети альтернативный VoIP-маршрут к добавочному номеру или телефонному номеру PSTN.

Например, предположим, вы подключены к сети DUNDi-test (это бесплатная и открытая сеть, которая обеспечивает звонки на традиционные номера PSTN). Вы спрашиваете своего друга Боба, знает ли он, как связаться с номером 1-212-555-1212, к которому у вас нет прямого доступа. Боб отвечает: «Я не знаю, как позвонить на этот номер, но сейчас спрошу у своей подружки Салли (которая является равноправным участником сети)».

Боб спрашивает Салли, не знает ли она, как связаться с требуемым номером, и она отвечает: «С этим номером можно связаться по адресу IAX/ dundi:очень_длинный_пароль@имяхоста/добавочный номер». Боб сохраняет этот адрес в своей базе данных и передает вам информацию о том, как связаться с 1-800-555-1212 через VoIP, предоставляя альтернативный метод достижения той же цели по другой сети. Поскольку Боб сохранил найденную информацию, он сможет предоставлять ее всем равноправным участникам сети, которые будут запрашивать этот же номер у него позже, таким образом, им не придется продолжать свои поиски. Это способствует снижению нагрузки на сеть и сокращает время ответа для часто запрашиваемых номеров. (Однако следует отметить, что DUNDi создает циклически сменяющийся ключ, таким образом, хранящаяся информация остается действительной лишь ограниченный период времени.)

DUNDi выполняет поиск динамически или с помощью выражения switch => в вашем файле extensions.conf, или используя приложение DUNDiLookup. DUNDi доступен только в Asterisk версии 1.2 и выше.

DUNDi-протокол может использоваться и в локальной сети. Скажем, вы администратор системы Asterisk в очень большой корпорации и желаете упростить процесс управления добавочными номерами. В этой ситуации мог бы использоваться DUNDi, обеспечивая возможность нескольким серверам Asterisk (предположительно расположенным в разных офисах компании и объединенным в одноранговую сеть) выполнять динамические поиски VoIP-адресов добавочных номеров в сети.

Конфигурация Asterisk для использования с DUNDi

Для работы с DUNDi необходимо сконфигурировать три файла: dundi. conf, extensions.conf и iax.conf [132] . Файл dundi.conf управляет аутентификацией равноправных участников, которым мы разрешаем выполнять поиск в нашей системе. Этот файл также содержит список равноправных участников сети, которым мы можем направлять свои запросы поиска. Поскольку на одном сервере могут выполняться несколько разных сетей, для каждого равноправного участника необходимо определить собственный раздел и затем сконфигурировать сети, в которых ему разрешено выполнять поиски. Кроме того, необходимо определить, каких равноправных участников мы желаем использовать для осуществления поисков.

132

Обязательно должны быть сконфигурированы файлы dundi.conf и extensions.conf. Мы выбрали iax.conf для предоставления информации о нашем адресе по сети, но DUNDi является протоколо-независимым, и таким образом, вместо iax.conf мы могли бы использовать sip.conf, h323.conf или mgcp.conf.

Поделиться:
Популярные книги

Изгой. Трилогия

Михайлов Дем Алексеевич
Изгой
Фантастика:
фэнтези
8.45
рейтинг книги
Изгой. Трилогия

Старатель 2

Лей Влад
2. Старатели
Фантастика:
боевая фантастика
космическая фантастика
5.00
рейтинг книги
Старатель 2

Купеческая дочь замуж не желает

Шах Ольга
Фантастика:
фэнтези
6.89
рейтинг книги
Купеческая дочь замуж не желает

Кодекс Охотника. Книга IX

Винокуров Юрий
9. Кодекс Охотника
Фантастика:
боевая фантастика
городское фэнтези
попаданцы
5.00
рейтинг книги
Кодекс Охотника. Книга IX

Школа Семи Камней

Жгулёв Пётр Николаевич
10. Real-Rpg
Фантастика:
фэнтези
рпг
5.00
рейтинг книги
Школа Семи Камней

Тайны ордена

Каменистый Артем
6. Девятый
Фантастика:
боевая фантастика
попаданцы
7.48
рейтинг книги
Тайны ордена

Убивать чтобы жить 9

Бор Жорж
9. УЧЖ
Фантастика:
героическая фантастика
боевая фантастика
рпг
5.00
рейтинг книги
Убивать чтобы жить 9

Мимик нового Мира 11

Северный Лис
10. Мимик!
Фантастика:
юмористическое фэнтези
постапокалипсис
рпг
5.00
рейтинг книги
Мимик нового Мира 11

Пришествие бога смерти. Том 5

Дорничев Дмитрий
5. Ленивое божество
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Пришествие бога смерти. Том 5

Аномальный наследник. Том 3

Тарс Элиан
2. Аномальный наследник
Фантастика:
фэнтези
7.74
рейтинг книги
Аномальный наследник. Том 3

Опер. Девочка на спор

Бигси Анна
5. Опасная работа
Любовные романы:
современные любовные романы
эро литература
5.00
рейтинг книги
Опер. Девочка на спор

Имя нам Легион. Том 4

Дорничев Дмитрий
4. Меж двух миров
Фантастика:
боевая фантастика
рпг
аниме
5.00
рейтинг книги
Имя нам Легион. Том 4

Приручитель женщин-монстров. Том 8

Дорничев Дмитрий
8. Покемоны? Какие покемоны?
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Приручитель женщин-монстров. Том 8

Личник

Валериев Игорь
3. Ермак
Фантастика:
альтернативная история
6.33
рейтинг книги
Личник