355 500 произведений, 25 200 авторов.

Электронная библиотека книг » Джим Меггелен » Asterisk™: будущее телефонии Второе издание » Текст книги (страница 31)
Asterisk™: будущее телефонии Второе издание
  • Текст добавлен: 7 октября 2016, 17:17

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


Автор книги: Джим Меггелен


Соавторы: Джаред Смит,Лейф Мадсен

Жанр:

   

ОС и Сети


сообщить о нарушении

Текущая страница: 31 (всего у книги 41 страниц)

Считается, что вызываемая сторона является автоответчиком. HUMAN (человек)

Считается, что вызываемая сторона является человеком, а не автоответчиком.

NOTSURE (не уверен)

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

HANGUP (разрыв)

В процессе определения произошел разрыв соединения. Приложение AMD() также указывает в переменной канала AMDCAUSE причину, на основании которой делается заключение, обозначенное в переменной AMDSTATUS. Для переменной AMDCAUSE будет задано одно из следующих значений: TOOLONG-общее_время

INITIALSILENCE-продолжительность_паузы-начальная_пауза HUMAN-продолжительность_паузы-пауза_после_приветствия MAXWORDS-количество_слов-максимальное_число_слов LONGGREETING-продолжительность_разговора-приветствие Все параметры данного приложения помогают настроить его так, чтобы оно могло более эффективно оценивать разницу между человеком и автоответчиком. Если параметры не переданы в это приложение, Asterisk прочитает значения по умолчанию, описанные в amd.conf. К этим параметрам относятся:

initialSilence (начальная пауза)

Максимальная продолжительность паузы перед приветствием. Если это значение превышено, для переменной AMDSTATUS будет задано значение MACHINE.

greeting (приветствие)

Максимальная продолжительность приветствия. Если превышена, для переменной AMDSTATUS будет задано значение MACHINE.

afterGreetingSilence (пауза после приветствия)

Максимальная пауза после обнаружения приветствия. Если превышена, для переменной AMDSTATUS будет задано значение MACHINE.

totalAnalysisTime (общее время анализа)

Максимальное время, предоставляемое алгоритму для принятия решения о том, является ли вызываемая сторона человеком или автоответчиком. minimumWordLength (минимальная длина слова)

Если продолжительность разговора короче, чем minimumWordLength, это не будет считаться речью человека. betweenWordsSilence (пауза между словами)

Минимальная пауза после слова, чтобы считать следующий аудиосигнал новым словом.

maximumNumberOfWords (максимальное число слов)

Максимальное число слов в приветствии. Если это значение превышено, для переменной AMDSTATUS будет задано значение MACHINE.

silenceThreshold (пороговая продолжительность паузы) Чувствительность алгоритма при выявлении паузы.

; Используем алгоритм выявления автоответчика. Если ; вызываемая сторона является человеком, устанавливаем ; соединение с Бобом. В противном случае воспроизводим ; сообщение и разрываем соединение exten => 123,1,Answer() exten => 123,n,AMD()

exten => 123,n,GotoIf($["${AMDSTATUS}" = "HUMAN"]?human:machine) exten => 123,n(machine),WaitForSilence(2000) exten => 123,n,Playback(asterisk-friend) exten => 123,n,Hangup()

exten => 123,n(human),Verbose(3, We've got a human on the line!)

exten => 123,n,Playback(transfer)

exten => 123,n,Dial(SIP/bob)

exten => 123,n,Playback(im-sorry)

exten => 123,n,Hangup()

Смотрите также

WaitForSilence()

Answer()

Устанавливает соединение, если по каналу поступает вызов

Answer([задержка])

Обусловливает установление соединения Asterisk с каналом, если по нему в настоящий момент поступает вызов. Если по текущему каналу вызов не производится, это приложение ничего не делает. Если задана задержка, Asterisk ответит на вызов и перейдет к следующему приоритету диалплана только по прошествии заданного количества миллисекунд.

Если нет веских оснований не делать этого, Answer() рекомендуется использовать для канала перед вызовом всех остальных приложений. Существует несколько ключевых приложений, которые требуют, чтобы перед их выполнением было выполнено приложение Answer(). В противном случае они могут работать некорректно: exten => 123,1,Answer(750) exten => 123,n,Playback(tt-weasels)

Смотрите также

Hangup()

AppendCDRUserField()

Добавляет значение в поле пользователя записи Call Detail Record

AppendCDRUserField( .значение)

Добавляет значение в поле пользователя записи Call Detail Record (CDR). Поле пользователя часто используется для хранения произвольных данных о вызове, которые не подходят для всех остальных полей:

; задаем в поле пользователя значение 'abcde' exten => 123,1,SetCDRUserField(abcde) ; теперь добавлям в конец 'xyz' exten => 123,1,AppendCDRUserField(xyz)

Это приложение было признано устаревшим и заменено CDR– функцией.

exten => 123,1,Set(CDR(userfield)=${CDR(userfield)}12345)

Смотрите также

SetCDRUserField(), ForkCDR(), NoCDR(), ResetCDR(), CDR

Authenticate()

Требует от вызывающего абонента введения правильного пароля для продолжения выполнения

Authenticate(пaроль[,опции[, максимумсимволов]])

Требует от вызывающего абонента ввести заданный пароль, чтобы продолжать выполнение следующего приоритета диалплана. Authenticate() дает вызывающему абоненту три попытки для правильного введения пароля. Если за эти три попытки вызывающий абонент так и не смог ввести правильный пароль, выполняется разрыв соединения.

Если пароль начинается с символа /, он трактуется как файл, содержащий список действительных паролей (по одному в строке). Пароли также могут храниться в базе данных Asterisk (AstDB); см. опцию d ниже. Параметр максимумсимволов задает максимальное число символов, которое может ввести вызывающий абонент. Если этот параметр не задан, приложение будет принимать неограниченное число символов и станет ожидать от вызывающего абонента нажатия кнопки # после введения кода аутентификации.

Может быть задана одна или несколько опций из следующего списка:

a

Присваивает CDR-полю accountcode, а переменной канала ACCOUNTCODE – значение введенного пароля.

d

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

j

Поддерживает переход к приоритету n + 101 в случае неудачной аутентификации.

m

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

r

Удаляет ключ базы данных после успешного входа (действительна только с опцией d).

; вынуждаем вызывающего абонента ввести пароль,

; прежде чем выполнять остальные действия,

; и сохраняем введенный пароль в CDR-поле 'accountcode'

exten => 123,1,Answer()

exten => 123,n,Authenticate(1234,a)

exten => 123,n,Playback(pin-number-accepted)

exten => 123,n,SayDigits(${ACCOUNTCODE})

Смотрите также

VMAuthenticate(), DISA(), главу 6

Background()

Воспроизводит файл, принимая при этом сигналы тонального набора (DTMF)

Background(имяфайла1[&имяфайла2...][,опции[, язык]])

Воспроизводит заданные аудиофайлы в процессе ожидания введения пользователем DTMF-кодов. Как только пользователь начинает вводить DTMF-коды, воспроизведение прекращается. Asterisk пытается найти соответствующий добавочный номер в целевом контексте (или текущем контексте, если целевой контекст не задан), и, как только будет найдено однозначное соответствие, выполнение диалплана продолжится в соответствующем добавочном номере.

имяфайла должно быть задано без расширения файла, поскольку Asterisk автоматически выбирает формат файла с минимальными затратами на преобразование.

Допустимыми опциями являются следующие:

s

Сообщение воспроизводиться не будет, если канал находится не в состоянии «соединен» (то есть еще не получен ответ на вызов). Если s задана, приложение будет возвращаться сразу же, как только канал окажется не в состоянии «соединен».

n

Не отвечать на вызов до воспроизведения заданного файла. Без этой опции ответ на вызов будет произведен автоматически перед воспроизведением звука. Не все каналы поддерживают воспроизведение сообщений до ответа на вызов.

m

Прерывать воспроизведение, только если введенный код соответствует одноразрядному добавочному номеру в целевом контексте.

Аргумент язык может использоваться для задания языка воспроизводимого приглашения, если он отличается от используемого языка канала.

exten => 123,1,Answer()

exten => 123,2,Background('exter-ext-of-person');

Смотрите также

ControlPlayback(), WaitExten(), BackgroundDetect(), TIMEOUT

BackgroundDetect()

Воспроизводит файл в фоновом режиме и выявляет разговор

BackgroundDetect(имяфайла[, sil[,min[, max]]])

Аналогично Background(), но пытается выявить разговор.

Во время воспроизведения файла выполняется отслеживание аудиосигналов во входящем потоке. Если период отсутствия тишины длится больше min миллисекунд, но еще меньше max миллисекунд и за ним следует пауза продолжительностью как минимум sil миллисекунд, воспроизведение звука прерывается и выполнение переходит в добавочный номер talk (разговор), если таковой доступен.

Если не заданы, параметры sil, min и max по умолчанию принимают значения 1000 мс, 100 мс и бесконечное количество соответственно.

exten => 123,1,BackgroundDetect(tt-monkeys) exten => 123,2,Playback(im-sorry) exten => talk,1,Playback(yes-dear)

Смотрите также

Playback(), Background()

Busy()

Обозначает состояние занятости канала

Busy([времяожидaния])

Указывает каналу обозначить состояние «занято», а затем ожидает, когда пользователь повесит трубку или разрыва соединения по истечении времени ожидания (заданного необязательным параметром вре– мяожидания в секундах).

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

способ оповещения вызывающего абонента о состоянии занятости. Можно использовать Playtones(busy) для воспроизведения сигнала «занято».

exten => 123,1,Playback(im-sorry) exten => 123,2,Playtones(busy) exten => 123,3,Busy()

Смотрите также

Congestion(), Progress(), Playtones(), Hangup()

ChangeMonitor()

Меняет имя файла для записи разговора по каналу

ChangeMonitor(базовое_имяфайла)

Меняет имя записанного файла для канала, созданного приложением Monitor(). Это приложение не оказывает никакого эффекта, если на канале не производится запись разговора. Аргумент базовое_имяфайла – это новое базовое имя файла, которое должно использоваться для записи разговора в канале.

; начинаем запись разговора в данном канале, ; используя базовое имя файла 'sample' exten => 123,1,Monitor(sample) ; меняем базовое имя файла на 'example' exten => 123,2,ChangeMonitor(example)

Смотрите также

Monitor(), StopMonitor(), MixMonitor()

ChanIsAvail()

Определяет, доступен ли в настоящее время заданный канал

ChanIsAvall(технология1/ресурс1[&технолоигя2/ресурс2...][, опции])

Проводит проверку на определение доступности какого-либо из запрашиваемых каналов. Это приложение также задает следующие переменные каналов:

AVAILCHAN

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

AVAILORIGCHAN

Каноническое имя канала, используемое для его создания, то есть имя канала без номера сеанса.

AVAIiSTATUS

Код статуса канала.

Если задана опция s (означающая state – состояние), Asterisk будет считать используемый канал недоступным, даже если он может принять другой вызов.

Если задана опция j и не доступен ни один из запрашиваемых каналов, выполнение переходит в приоритет n + 101 (где n – текущий приоритет), если этот приоритет существует.

; проверяет, доступны ли каналы Zap/1 и Zap/2 exten => 123,1,ChanIsAvail(Zap/1&Zap/2) ; выводит имя доступного канала в CLI Asterisk exten => 123,2,Verbose(0,${AVAILORIGCHAN})

Г~ 1 Это приложение работает некорректно для каналов MGCP.

ChannelRedirect()

Перенаправляет канал в новую точку диалплана

ChannelRedirect(кaнaл,[[контекст,]добaвочныйномер,]приоритет)

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

; Перенаправляет SIP/Bob к музыке во время ожидания

; при наборе добавочного номера 123

exten => 123,1,ChannelRedirect(SIP/Bob,124,1)

exten => 124,1,Answer()

exten => 124,2,MusicOnHold()

Смотрите также

Transfer()

ChanSpy()

Слушает разговор в канале и может посылать сигналы в вызывающий канал

ChanSpy([префикскaнaлa[,опции]])

Это приложение используется для прослушивания аудиосигнала, проходящего по каналу Asterisk в обоих направлениях. Если задан параметр префиксканала, прослушиваться будут только каналы, начинающиеся с этого префикса.

При прослушивании канала могут осуществляться следующие действия:

• Набор # циклически меняет уровень громкости.

• Набор * заставит приложение перейти к прослушиванию следующего доступного канала.

• Набор последовательности символов, завершенный нажатием кнопки #, создает имя канала (которое будет добавлено после префикска– нала). Например, если запустить ChanSpy(Zap), а затем в процессе прослушивания набрать символы 42#, начнется прослушивание канала Zap/42.

Параметр опции может содержать нуль или более следующих опций:

b

Прослушивать только соединенные каналы.

g(группа)

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

q

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

r[(базовоеимя)]

Записывает разговор, ведущийся по каналу, в папку очереди для записей разговоров (обычно это /var/spool/asterisk/monitor). Необязательное базовоеимя задает базовое имя файла для записей, значение по умолчанию – chanspy.

v([значение])

Настраивает громкость прослушиваемого аудиосигнала. Значение должно быть в диапазоне от 4 до -4. Отрицательное значение сделает звук тише, тогда как положительное – громче.

w

Режим шепота. Позволяет прослушивающему каналу «говорить» с прослушиваемым каналом. При этом ни один другой соединенный канал не сможет слышать этот разговор.

W

Закрытый режим шепота. Позволяет прослушивающему каналу «говорить» с прослушиваемым каналом без возможности слышать аудиосигнал из прослушиваемого канала.

; Прослушиваем каналы Zap в режиме шепота exten => 123,1,ChannelSpy(Zap,w)

Смотрите также

ExtenSpy()

Congestion()

Устанавливает состояние перегрузки канала

Congestion([времяожидания])

Указывает каналу индицировать перегрузку, а затем ожидает, когда пользователь повесит трубку или разрыва соединения по истечении времени ожидания (заданного необязательным параметром времяожида– ния в секундах).

Это приложение сигнализирует о перегрузке только на дальний конец соединения; оно фактически не воспроизводит тональный сигнал перегрузки линии абоненту. Для воспроизведения сигнала перегрузки используйте приложение Playtones(congestion).

При использовании данной команды без времени ожидания возникает риск того, что канал задержится в этом состоянии. В этом нет необходимости, когда вы просто хотите проинформировать пользователя о перегруженности канала. Используйте приложение Playtones(congestion), чтобы абонент услышал сигнал «занято» повышенной частоты, а затем выполните Hangup().

Всегда завершается аварийно:

; для Caller ID 555-1234 всегда воспроизводить ; сигнал перегруженности линии

exten => 123,1,GotoIf($[${CALLERID(num)} = 5551234]?5:2)

exten => 123,2,Playtones(congestion)

exten => 123,3,Congestion(3)

exten => 123,4,Hangup()

exten => 123,5,Dial(Zap/1)

Смотрите также

Busy(), Progress(), Playtones(), Hangup()

ContinueWhile()

Выполняет перезапуск цикла While()

ContinueWhile()

Возвращается к началу цикла While() и повторно вычисляет условное выражение.

Смотрите также

While(), ExitWhile()

ControlPlayback()

Воспроизводит файл с возможностью ускоренной перемотки вперед и назад

ControlPlayback(файл[,skipms[, ff [, rew[,stop[, pause[, restart[, опции]]]]]]])

Воспроизводит указанный файл (без расширения файла), предоставляя при этом пользователю возможность перемещаться по файлу вперед и назад, нажимая кнопки ff и rew. По умолчанию можно использовать кнопки * и # для перемотки файла назад и вперед соответственно. Опция skipms определяет, на сколько секунд записи вперед или назад выполняется переход при каждом нажатии кнопки ff или rew. Если задан аргумент stop, приложение будет останавливать воспроизведение при нажатии кнопки stop.

Также может быть задан аргумент pause, который определяет, что при нажатии кнопки pause воспроизведение файла будет приостановлено. При повторном нажатии кнопки pause воспроизведение файла возобновится.

Если задан параметр restart, то при нажатии определенной кнопки воспроизведение файла будет начато сначала.

Если для параметра опции задано значение j и указанного файла не существует, приложение переходит в приоритет n + 101, если таковой присутствует (где n – номер текущего приоритета).

Приложение ControlPlayback() по завершении выполнения задает значение для переменной канала CPLAYBACKSTATUS. Переменной CPLAYBACK STATUS будет присвоено одно из следующих значений: SUCCESS (успех)

USERSTOPPED (остановлен пользователем) ERROR (ошибка)

; позволяет вызывающему абоненту управлять ; воспроизведением этого файла

exten => 123,1,ControlPlayback(tt-monkeys3000#*5)

Смотрите также

Playback(), Background(), Dictate(),

DateTime()

Проговаривает дату и/или время в указанном пользователем формате

DateTime([unixtime[, часовойпояс[, формат]]])

Если задан параметр unixtime, приложение проговаривает эти дату и время. В противном случае оно проговаривает текущие дату и время. Если задан часовойпояс, дата и время вычисляются соответственно этому часовому поясу. В противном случае используется зональная настройка сервера Asterisk. Если задан параметр формат, дата и время будут проговариваться соответственно этому формату. (Подробнее о формате даты и времени можно узнать из образца файла voicemail.conf.)

; проговаривает текущую дату и время

; в нескольких часовых поясах

exten => 123,1,DateTime(,America/New_York)

exten => 123,2,DateTime(,America/Chicago)

exten => 123,3,DateTime(,America/Denver)

exten => 123,4,DateTime(,America/Los_Angeles)

DBdel()

Удаляет ключ из AstDB

DBdel(семейство/ключ)

Удаляет ключ, заданный параметром ключ, из семейства ключей семейство в AstDB.


exten => 123,1,DBput(test/name=John) ; добавляем имя в AstDB
exten => 123,2,DBget(NAME=test/name) ; извлекаем имя из AstDB
exten => 123,3,DBdel(test/name) ; удаляем из AstDB

Это приложение является устаревшим и заменено функцией

DB_DELETE().

Смотрите также

DB_DELETE(), DBdeltree(), DB

Dbdeltree()

Удаляет семейство или дерево ключей из AstDB

DBdeltree(семейство[/деревоключей])

Удаляет заданное семейство или деревоключей из AstDB.

; создает пару записей в AstDB exten => 123,1,DBput(test/blue) exten => 123,2,DBput(test/green) ; теперь удаляем семейство ключей test exten => 123,3,DBdeltree(test)

Смотрите также

DB_DELETE(), DBdel(), DB

DeadAGI()

Выполняет AGI -совместимый сценарий для «мертвого» (разъединенного) канала

DeadAGI(программа, аргументы)

Выполняет AGI-совместимую программу для «мертвого» (разъединенного) канала. AGI позволяет Asterisk запускать внешние программы, написанные практически на любом языке программирования, для управления каналом связи, воспроизведения аудиофайлов, чтения DTMF-сигналов и т. д. посредством обмена информацией по AGI-про– токолу по STDIN и STDOUT. Аргументы, заданные параметром аргументы, будут переданы в программу.

Это приложение было написано специально для «мертвых» каналов, поскольку обычный AGI-интерфейс не работает корректно, если канал разъединен.

Чтобы получить список всех доступных команд AGI, используйте команду интерфейса командной строки show agi.

exten => h,1,DeadAGI(agi-test)

Смотрите также

AGI(), FastAGI()

Dial()

Пытается соединить каналы

Dlal(технология/имяпольгзователя:пароль(Фимяхоста/добавочныйномер[&технология2/peer2. . . ] [,времяожидания-ответа[, флаги[, URi]]])

Позволяет соединять все возможные типы каналов[145]145
  Тот факт, что Asterisk может успешно соединять IAX, SIP, H.323, Skinny, PRI, FX(O/S) и все что угодно, поразителен, но, вероятно, самое удивительное – это локальный (Local) канал. Благодаря тому что одной командой Dial() можно соединять множество локальных каналов, событие Dial() может запускать множество совершенно независимых и уникальных действий в других частях диалплана. Данная концепция поистине революционная, и ее надо испытать, чтобы поверить в это.


[Закрыть]
. Dial() – самое важное приложение в Asterisk; наверняка вы периодически будете возвращаться к этому разделу.

Для приложения Dial() приемлем любой действительный тип каналов (такие, как SIP, IAX2, H.323, MGCP, Local или Zap), но то, какие параметры необходимо будет передать для канала, зависит от информации, которая требуется каналу данного типа для работы. Например, SIP-ка– налу для соединения понадобится сетевой адрес и пользователь, тогда как Zap-канал потребует телефонный номер.

Когда задается сетевой тип канала, в качестве опций Dial() могут передаваться хост назначения (имя или IP-адрес), имя пользователя, пароль и удаленный добавочный номер или можно указать имя записи канала в соответствующем файле .conf; тогда вся необходимая информация должна поступать из этого файла. Имя пользователя и пароль можно заменить именем, указанным в квадратных скобках ([]) в конфигурационном файле канала. Имя хоста является необязательным.

Вот действительное выражение Dial:

exten => s,1,Dial(SIP/sake:[email protected])

Такая запись аналогична предыдущей:

exten => s,1,Dial(SIP/some_SIP_friend) но будет работать, только если в sip.conf есть канал [some_SIP_friend], описание которого включает fromuser=sake, password=arigato и host= thathostoverthere.tld.

Часто добавочный номер указывается после адреса:

exten => s,1,Dial(IAX2/user:[email protected]/500) Таким образом мы указываем дальнему концу соединения направить вызов на добавочный номер 500 в том же контексте, в который поступил вызов. Необязательно указывать добавочный номер в Dial(), поскольку может использоваться информация конфигурационного файла канала удаленного конца соединения или удаленный сервер передаст вызов на добавочный номер s в контексте, в котором поступил вызов. В конечном счете, дальний конец соединения управляет тем, что происходит с вызовом; вы можете только запрашивать определенную обработку. Если не задан параметр времяожидания-ответа, канал будет совершать вызов неопределенно долго. Это не всегда плохо, поэтому не надо полагать, что это обязательный параметр; просто знайте, что «неопределенно долго» может означать «очень долго». Параметр времяожидания-отве– та задается в секундах и всегда следует за адресной информацией: exten => s,1,Dial(IAX2/user:[email protected]/500,времяожидания-ответа) Мощь приложения Dial() во многом определяется флагами. Они указываются после адреса и времени ожидания:

exten => s,1,Dial(IAX2/user:[email protected]/500,60,флаги)

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

exten => s,1,Dial(IAX2/user:[email protected]/500,,флаги)

Для приложения Dial() могут использоваться следующие флаги:

A( x )

Воспроизводится приветствие для вызываемой стороны; x – имя звукового файла, используемого в качестве приветствия.

C

Выполняется сброс записи Call Detail Record для звонка. Поскольку в CDR выставляется время ответа (Answer()) на звонок, вероятно, вы захотите сбросить запись CDR, чтобы пользователю не приходилось оплачивать время, прошедшее до вызова приложения Dial().

d

Пользователь может набирать одноразрядный добавочный номер в процессе ожидания ответа на звонок. Тогда звонок перейдет на

этот добавочный номер (или в текущем контексте, или, если производится выход, в контексте, заданном переменной EXITCONTEXT).

D([ вызываемый ][: вызывающий ])

DTMF-коды передаются после ответа на звонок, но до того, как выполнено соединение. Параметр вызываемый передается вызываемой стороне, а параметр вызывающий – вызывающей стороне. Эти параметры могут использоваться по отдельности.

f

Caller ID (ID звонящего) вызывающей стороны принудительно устанавливается как добавочный номер, связанный с каналом, с помощью подсказки диалплана. Часто это используется, когда провайдер разрешает задавать в качестве Caller ID только выделенные для вас номера. Например, при наличии PRI флаг f использовался бы для переопределения любого заданного локально Caller ID для SIP– телефона.

g

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

G( контекст " добавочныйномер " приоритет )

Когда ответ на звонок получен, вызывающая сторона переводится в заданный приоритет, а вызываемая сторона – в заданный приоритет + 1. В сочетании с этой опцией не могут использоваться никакие дополнительные опции, определяющие операции после ответа.

h

Позволяет вызванному абоненту разорвать соединение нажатием кнопки *.

H

Позволяет вызывающему абоненту разорвать соединение нажатием кнопки *.

i

Asterisk будет игнорировать все попытки перенаправить вызов для данной попытки вызова.

Asterisk будет переходить в приоритет n + 101 в случае занятости запрашиваемых каналов (где n – текущий приоритет).

L( x [: у ][: z ])

Продолжительность звонка ограничивается x миллисекундами, дается предупреждение, когда осталось у миллисекунд, и предупреждение повторяется каждые у миллисекунд вплоть до истечения допустимой продолжительности разговора. Параметр x – обязательный; y и z – необязательные. Для обеспечения дополнительного контроля могут использоваться следующие специальные переменные:

LIMIT_PLAYAUDIO_CALLER=yes|no

Определяет, воспроизводится ли звуковой файл для вызывающего абонента. По умолчанию – yes.

LIMIT_PLAYAUDIO_CALLEE=yes|no

Определяет, воспроизводится ли звуковой файл для вызываемого абонента.

LIMIT_TIMEOUT_FILE= имяфайла

Определяет, какой файл воспроизводится, когда время истекло. LIMIT_CONNECT_FILE= имяфайла

Определяет, какой файл воспроизводится в начале вызова. LIMIT_WARNING_FILE=имяфайла

Определяет, какой файл воспроизводится, если определен аргумент y. По умолчанию проговаривается оставшееся время.

m[класс]

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

M( x [ "аргумент ])

При соединении выполняется макрос x и передаются (необязательно) аргументы, разделенные символом ". Макрос также может задавать одно из приведенных ниже значение для переменной канала MACRO_RESULT, чтобы обозначить, что должно произойти после завершения макроса:

ABORT (прервать)

Повесить трубку на обоих концах соединения. CONGESTION (перегрузка)

Действовать так, как при перегрузке линии. BUSY(занято)

Действовать так, как при занятости линии. Если задана опция j, вызов перенаправляется в приоритет n + 101, где n – текущий приоритет.

CONTINUE (продолжить)

Отключить вызываемую сторону и продолжить выполнение диал– плана.

GOTO:<контекст>"<добавочныйномер>"<приоритет>

Выполнить переадресацию вызова в заданную точку.

В сочетании с этой опцией нельзя использовать никакие дру– I гие дополнительные опции, определяющие действия после ответа. Также сервисы офисной АТС не выполняются для вызванного канала, поэтому не получится задать значения времени ожидания посредством функции TIMEOUT в этом макросе.

n

Эта опция является модификатором для экранного/конфиденциального режима (screen/privacy mode). Она определяет, что вступления (introductions) не должны сохраняться в папке priv-callerintros.

N

Эта опция является модификатором для экранного/конфиденциального режима. Она указывает Asterisk не экранировать вызов, если представлен Caller ID.

o

Использует Caller ID, полученный по входящему плечу вызова, в качестве Caller ID на исходящем плече вызова. Это полезно, если вы принимаете вызов и перенаправляете его в другую точку, но хотите передать Caller ID из входящего плеча вызова, а не заменять его локальным Caller ID. Таким было поведение по умолчанию Asterisk в версиях до 1.0.

O[x]

Эта опция включает режим услуг оператора (Operator Services) для канала Zaptel. При использовании в не-Zaptel-интерфейсе эта опция будет проигнорирована. После ответа вызываемой стороны (предположительно, станции услуг оператора) источник вызова теряет контроль над линией. Вызывающий абонент может повесить трубку, но линия не будет освобождена да тех пор, пока не повесит трубку вызываемая сторона (оператор). Если аргумент не задан или задана 1, то, когда вызывающая сторона вешает трубку, ее телефон немедленно зазвонит. Если задан аргумент 2, то, когда «оператор» выполняет мгновенный сброс магистральной линии, зазвонит телефон вызывающего абонента.

p

Активирует режим экранирования. По сути, это конфиденциальный режим без запоминания.

P[(x)]

Задает конфиденциальный режим. Может быть задан необязательный параметр x как значение семейство/ключ локальной базы данных AstDB. Эта опция полезна для принятия звонков на основании черного списка (явно запрещающего звонки с указанных номеров) или белого списка (явно перечисляющего номера, звонки с которых должны приниматься обязательно). См. также LookupBlacklist().

Указывает генерировать сигналы вызова вызывающему абоненту, не передавая никаких аудиосигналов до тех пор, пока не получен ответ на звонок. Обычно этот флаг не нужен, поскольку Asterisk сама будет генерировать сигналы вызова.

S(x)

Прерывает звонок через x секунд после ответа вызываемой стороны.

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

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

Разрешает ответившему абоненту начинать и останавливать запись разговора на диск, нажав последовательность кнопок automon (которая задана в файле features.conf). Если задана переменная TOUCH_ MONITOR, ее значение будет передано как аргумент в приложение Monitor() в начале записи. Если переменная не задана, в Monitor() передаются значения по умолчанию, WAV||m.

W

Позволяет вызывающему абоненту записывать разговор на диск, нажав последовательность кнопок automon (которая задана в файле features.conf).

k

Позволяет ответившему абоненту парковать вызов (переключать на другой телефон), передав DTMF-последовательность, определенную для парковки вызовов в файле features.conf.

K

Позволяет вызывающей стороне парковать вызов, передав DTMF– последовательность, определенную для парковки вызовов в файле features.conf.


    Ваша оценка произведения:

Популярные книги за неделю