Quantcast
Channel: IP АТС Asterisk
Viewing all 1135 articles
Browse latest View live

Asterisk queuerules.conf

$
0
0

Asterisk queuerules.conf

queuerules - правила позволяющие динамически изменять значения переменных QUEUE_MIN_PENALTYи QUEUE_MAX_PENALTY, в зависимости от времени ожидания вызывающего абонента.

Penalty

Каждый оператор очереди Asteriskимеет параметр penalty.
Пенальти может быть определен в настройках пользователя очереди:

  member ⇒ interface[,penalty][,membername][,state_interface][,ringinuse]

или при добавлении динамического агента:

  queue add member <dial string> to <queue> [[[penalty <penalty>] as <membername>] state_interface <interface>] 

Данный параметр определяет приоритет для посылки вызова на оператора, чем ниже пенальти, тем выше приоритет при выборе оператора для вызова.
Если пенальти не задан, то по умолчанию = 0

Предположим, очередь обслуживают 3 оператора с пенальти - 0,1 и 2 соответственно.
Первым будет вызван оператор с пенальти = 0 и только если он недоступен, оператор с пенальти = 1 и так далее.

Пенальти оператора может быть динамически изменен, например через CLI:

 queue set penalty <penalty> on <interface> [in <queue>]

или через AMI Actions QueuePenalty.

Перед тем как входящий вызов будет поставлен в очередь, можно задать переменные канала - QUEUE_MIN_PENALTYи QUEUE_MAX_PENALTY. Они укажут диапазон пенальти операторов очереди, для посылки вызова.
Например:

exten => s,1,NoOp(**penalty**)
   same = n,Set(QUEUE_MIN_PENALTY=1)
   same = n,Set(QUEUE_MAX_PENALTY=2)
   same = n,Queue(queue101)

Вызовы очереди queue101будут распределены между операторами с пенальти 1 и 2. Но предположим, что все операторы с пенальти 1 и 2 заняты или недоступны. В этом случае можно применить queuerules.

Правила связываются с конкретной очередью параметром defaultrule:
etc/asterisk/queues.conf

 [queuename]
 defaultrule = myrule

etc/asterisk/queuerules.conf

 penaltychange => <время ожидания в секундах>,<абсолютное или относительное изменение QUEUE_MAX_PENALTY>[,абсолютное или относительное изменение QUEUE_MIN_PENALTY]

[myrule]
penaltychange => 30,+3   
; через 30 секунд ожидания в  увеличить QUEUE_MAX_PENALTY на +3, но не менять QUEUE_MIN_PENALTY;
;где +3 относительное значение 
penaltychange => 60,10,5 
; через 60 секунд ожидания в  установить значение QUEUE_MAX_PENALTY = 10 и установить QUEUE_MIN_PENALTY = 5
;где 10 абсолютное значение
penaltychange => 75,,7   
; через 75 секунд ожидания не изменять QUEUE_MAX_PENALTY, но установить QUEUE_MIN_PENALTY = 7;

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

Правила могут получаться в реальном времени из хранилища Realtime. Для это включите опцию в секции [general] конфига queuerules.conf:

 [general]
 realtime_rules = yes

Данная опция не требует работы строго c реалтайм базами данных. При выполнении команды queue reload rulesвсе правила, независимо от расположения в БД или конфигурационном файле, будут применены, при условии, что они имеют уникальные имена и правильную конфигурацию мин/макс пенальти.

В etc/asterisk/extconfig.confопределите таблицу БД в которой находятся правила:

 queue_rules => odbc,asterisk,queue_rules

И создайте таблицу в используемой БД.

rule_nametimemin_penaltymax_penalty
'default''10''20''30'
'queue1''20''30''55'
'queue2''25''-11''+1111'
'queue2''400''112''333'
'queue3''0''4564''46546'
'queue_rule''40''15''50'
Spoiler

Asterisk: AddQueueMember

Asterisk: PauseQueueMember

Asterisk: Queue

Asterisk: QueueLog

Asterisk: RemoveQueueMember

Asterisk: UnpauseQueueMember

function 'QUEUE_EXISTS'

function 'QUEUE_MEMBER'

function 'QUEUE_MEMBER_LIST'

function 'QUEUE_VARIABLES'

function 'QUEUE_WAITING_COUNT'

Asterisk:Лог очереди (queue) в mysql

FreePBX Queues

Asterisk Call Center Stats


Команды диалплана Asterisk

$
0
0

Команды диалплана Asterisk

В данном документе приведен список команд, которые Вы можете использовать в плане набора (extensions.conf). Получить список и описание приложений, доступных на вашем сервере Asterisk Вы можете командами CLI:
core show applicationsи core show application <name>.

Asterisk Dialplan Applications

Asterisk: AddQueueMember: Динамическое добавление агента для очереди

Asterisk application ADSIProg: Загрузка ADSI скрипта Asterisk в телефон

AELSub: Launch subroutine built with AEL

Asterisk application: AGI: Выполнить AGI приложение.

Answer: Ответить на вызов.

Asterisk application: Authenticate: Авторизовать пользователя

BackGround: Проиграть аудио файл с возможностью посылки DTMFкоманд

BackgroundDetect: Распознавать речь при проигрывании аудио файла

Bridge: Соединить два канала

BridgeWait: Put a call into the holding bridge.

Busy: Установить состояние занято.

CallCompletionCancel: Cancel call completion service

CallCompletionRequest: Request call completion service for previous call

CELGenUserEvent: Generates a CEL User Defined Event.

Asterisk: ChangeMonitor: Изменения имени файла для записи разговора.

ChanIsAvail: Проверка доступности канала связи.

ChannelRedirect: Переадресация существующего канала в другую точку плана набора

ChanSpy: Прослушивание канала.

ClearHash: Clear the keys from a specified hashname.

ConfBridge: Conference bridge application.

Congestion: Indicate the Congestion condition.

ContinueWhile: Restart a While loop.

ControlPlayback: Play a file with fast forward and rewind.

DAHDIRAS: Executes DAHDI ISDN RAS application.

DAHDIScan: Scan DAHDI channels to monitor calls.

DAHDISendCallreroutingFacility: Send an ISDN call rerouting/deflection facility message.

DAHDISendKeypadFacility: Send digits out of band over a PRI.

DateTime: Says a specified time in a custom format.

DBdel: Delete a key from the asterisk database.

DBdeltree: Delete a family or keytree from the asterisk database.

DeadAGI: Executes AGI on a hungup channel.

Asterisk application: Dial: Пытается установить соединение, одного устройства с другим..

Dictate: Virtual Dictation Machine.

Directory: Provide directory of voicemail extensions.

DISA: Direct Inward System Access.

DumpChan: Dump Info About The Calling Channel.

EAGI: Executes an EAGI compliant application

Echo: Echo media, DTMF back to the calling party

EndWhile: End a while loop.

Exec: Executes dialplan application.

ExecIf: Executes dialplan application, conditionally.

ExecIfTime: Conditional application execution based on the current time.

ExitWhile: End a While loop.

ExtenSpy: Listen to a channel, and optionally whisper into it.

ExternalIVR: Interfaces with an external IVR application.

Flash: Flashes a DAHDI Trunk.

ForkCDR: Forks the current Call Data Record for this channel.

GetCPEID: Get ADSI CPE ID.

Gosub: Jump to label, saving return address.

GosubIf: Conditionally jump to label, saving return address.

Goto: Jump to a particular priority, extension, or context.

GotoIf: Conditional goto.

GotoIfTime: Conditional Goto based on the current time.

Hangup: Hang up the calling channel.

HangupCauseClear: Clears hangup cause information from the channel that is available through HANGUPCAUSE.

IAX2Provision: Provision a calling IAXy with a given template.

ICES: Encode and stream using 'ices'.

ImportVar: Import a variable from a channel into a new variable

Incomplete: Returns AST_PBX_INCOMPLETE value.

Log: Send arbitrary text to a selected log level.

Asterisk app Macro: Macro Implementation.

MacroExclusive: Exclusive Macro Implementation.

MacroExit: Exit from Macro

MacroIf: Conditional Macro implementation

MailboxExists: Check to see if Voicemail mailbox exists.

MessageSend: Send a text message.

Milliwatt: Generate a Constant 1004Hz tone at 0dbm (mu-law).

MinivmAccMess: Record account specific messages.

MinivmDelete: Delete Mini-Voicemail voicemail messages.

MinivmGreet: Play Mini-Voicemail prompts.

MinivmMWI: Send Message Waiting Notification to subscriber(s) of mailbox.

MinivmNotify: Notify voicemail owner about new messages.

MinivmRecord: Receive Mini-Voicemail and forward via e-mail.

Asterisk: MixMonitor: Record a call and mix the audio during the recording. Use of StopMixMonitor is required to guarantee the audio file is available for processing during dialplan execution.

Asterisk: Monitor: Monitor a channel.

Morsecode: Plays morse code.

MP3Player: Play an MP3 file or M3U playlist file or stream.

MSet: Set channel variable(s) or function value(s).

MusicOnHold: Play Music On Hold indefinitely.

MYSQL: Do several mySQLy things

NBScat: Play an NBS local stream.

NoCDR: Tell Asterisk to not maintain a CDR for this channel.

NoOp: Do Nothing (No Operation).

Originate: Originate a call.

Page: Page series of phones

Asterisk: PauseMonitor: Pause monitoring of a channel.

Asterisk: PauseQueueMember: Pauses a queue member.

Pickup: Directed extension call pickup.

PickupChan: Pickup a ringing channel.

Playback: Play a file.

PlayTones: Play a tone list.

PrivacyManager: Require phone number to be entered, if no CallerID sent

Proceeding: Indicate proceeding.

Progress: Indicate progress.

Asterisk: Queue: Queue a call for a call queue.

Asterisk: QueueLog: Writes to the queue_log file

RaiseException: Handle an exceptional condition.

Read: Read a variable.

ReadExten: Read an extension into a variable.

ReceiveFAX: Receive a FAX and save as a TIFF/F file.

Record: Record to a file.

Asterisk: RemoveQueueMember: Dynamically removes queue members.

ResetCDR: Resets the Call Data Record.

RetryDial: Place a call, retrying on failure allowing an optional exit extension.

Return: Return from gosub routine.

Ringing: Indicate ringing tone.

SayAlpha: Say Alpha.

SayAlphaCase: Say Alpha.

SayCountPL: Say Polish counting words.

SayDigits: Say Digits.

SayNumber: Say Number.

SayPhonetic: Say Phonetic.

SayUnixTime: Says a specified time in a custom format.

SendDTMF: Sends arbitrary DTMF digits

SendFAX: Sends a specified TIFF/F file as a FAX.

SendImage: Sends an image file.

SendText: Send a Text Message.

SendURL: Send a URL.

Set: Set channel variable or function value.

SetAMAFlags: Set the AMA Flags.

SetMusicOnHold: Set default Music On Hold class.

SIPAddHeader: Add a SIP header to the outbound call.

SIPDtmfMode: Change the dtmfmode for a SIP call.

SIPRemoveHeader: Remove SIP headers previously added with SIPAddHeader

SMS: Communicates with SMS service centres and SMS capable analogue phones.

SoftHangup: Hangs up the requested channel.

SpeechActivateGrammar: Activate a grammar.

SpeechBackground: Play a sound file and wait for speech to be recognized.

SpeechCreate: Create a Speech Structure.

SpeechDeactivateGrammar: Deactivate a grammar.

SpeechDestroy: End speech recognition.

SpeechLoadGrammar: Load a grammar.

SpeechProcessingSound: Change background processing sound.

SpeechStart: Start recognizing voice in the audio stream.

SpeechUnloadGrammar: Unload a grammar.

StackPop: Remove one address from gosub stack.

StartMusicOnHold: Play Music On Hold.

Stasis: Invoke an external Stasis application.

Asterisk: StopMixMonitor: Stop recording a call through MixMonitor, and free the recording's file handle.

Asterisk: StopMonitor: Stop monitoring a channel.

StopMusicOnHold: Stop playing Music On Hold.

StopPlayTones: Stop playing a tone list.

System: Execute a system command.

TestClient: Execute Interface Test Client.

TestServer: Execute Interface Test Server.

Transfer: Transfer caller to remote extension.

TryExec: Executes dialplan application, always returning.

TrySystem: Try executing a system command.

Asterisk: UnpauseMonitor: Unpause monitoring of a channel.

Asterisk: UnpauseQueueMember: Unpauses a queue member.

UserEvent: Send an arbitrary user-defined event to parties interested in a channel (AMI users and relevant res_stasis applications).

Verbose: Send arbitrary text to verbose output.

VMAuthenticate: Authenticate with Voicemail passwords.

VMSayName: Play the name of a voicemail user

VoiceMail: Leave a Voicemail message.

VoiceMailMain: Check Voicemail messages.

VoiceMailPlayMsg: Play a single voice mail msg from a mailbox by msg id.

Wait: Waits for some time.

WaitExten: Waits for an extension to be entered.

WaitForNoise: Waits for a specified amount of noise.

WaitForRing: Wait for Ring Application.

WaitForSilence: Waits for a specified amount of silence.

WaitMusicOnHold: Wait, playing Music On Hold.

WaitUntil: Wait (sleep) until the current time is the given epoch.

While: Start a while loop.

Zapateller: Block telemarketers with SIT.

Настройка Asterisk

Asterisk application ADSIProg

$
0
0

Asterisk application ADSIProg

Загрузка asterisk ADSI скрипта в телефон

This application programs an ADSI Phone with the given script

Синтаксис

ADSIProg([script])

[Arguments]

script - adsi скрипт для использования. Если не задано используется скрипт по умолчанию - «asterisk.adsi»

см также

GetCPEID

Команды диалплана Asterisk

Asterisk app: AELSub

$
0
0

Asterisk app: AELSub

Приложение диалплана Atserisk AELSub.
Перейти в AEL (asterisk extension Language) подпрограмму.

Описание

Выполняет указанную подпрограмму, назначенную в AEL, из другого языка диалплана: extensions.conf, realtime или Lua.

СинтаксисAELSub(routine[,args])

Аргументы

routine - наименование подпрограммы в extensions.ael

см также

Команды диалплана Asterisk

agi 'answer'

$
0
0

agi 'answer'

Команда AGI интерфейса Asterisk: Ответить на вызов

Синтаксис

answer

Описание

Ответить на вызов, если еще не отвечено. Возвращает '-1' при неудаче и '0' при успешном выполнении.

выполнять в мертвом канале

НЕТ

см. также hangup

Asterisk app: AGI

agi 'asyncagi break'

$
0
0

agi 'asyncagi break'

Команда AGI интерфейса Asterisk:Прерывает выполнение асинхронных команд AGI.

синтаксис

asyncagi break

описание

Прерывает поток асинхронных команд AGI и возвращает контроль источнику (например диалплану).

Выполнять в мертвом канале

agi 'channel status'

$
0
0

agi 'channel status'

Команда AGI интерфейса Asterisk:Получить статус запрошенного канал.

синтаксис

channel status [<channelname>]

описание

Возвращает статус указанного канала. Если канал не указан, возвращает статус текущего канала. Возвращает значения:

  • 0 - Channel is down and available.
  • 1 - Channel is down, but reserved.
  • 2 - Channel is off hook.
  • 3 - Digits (or equivalent) have been dialed.
  • 4 - Line is ringing.
  • 5 - Remote end is ringing.
  • 6 - Line is up.
  • 7 - Line is busy.

[Synopsis] Returns status of the connected channel.

[Runs Dead] No

[See Also] Not available

Asterisk app: AGI

$
0
0

Asterisk app: AGI

Выполнить приложение Aasterisk Gateway Interface (AGI) в канале вызова.

Описание

AGI позволяет Asterisk запустить внешнюю программу, написанную на любом языке,
для контроля над каналами связи, воспроизведением аудио, чтения DTMFсигналов и др.,
связываясь с Asterisk через стандартный потоковый ввод/вывод - stdin/stdout:

AGI >>>-stdout->>> Asterisk 
Asterisk >>>-stdin->>> AGI

AGI приложение отправляет команды через STDOUT,
Asterisk передает данные через STDIN.

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

Запущенный локально AGI скрипт получит сигнал SIGHUP, при разъединении в канале, если только не используется DeadAGI

FastAGI (удаленный) сервер, соответственно, получит HANGUP. Оба этих сигнала могут быть отключены установкой переменной Set(AGISIGHUP=no), непосредственно перед выполнением скрипта AGI.

Если же требуется, чтобы AGI приложение завершалось немедленно, после получения информации о разъединении канала, установите переменную Set(AGIEXITONHANGUP=yes)

Используйте команду 'agi show commands' CLI, для получения полного списка команд AGI или 'agi show commands topic <command_name>' для описания указанной команды:

*CLI> agi show commands

Приложение диалплана Asterisk AGI возвращает ${AGISTATUS} переменную с одним из следующих значений:

  • SUCCESS
  • FAILURE
  • NOTFOUND
  • HANGUP
Синтаксис

AGI(command,arg1,arg2,…)

См. также

Команды диалплана Asterisk


agi 'database del'

$
0
0

agi 'database del'

Команда AGI:database del
Удалить одиночную запись во внутренней БД asterisk для указанных значений - <family> <key>.
Возвращает '1' при успешном выполнении, '0' при неудаче.

Выполнять в мертвом канале

Yes

Например существует регистрация sip пира с соответствующей записью в astdb:

# asterisk -rx 'database show' | grep Registry

 /SIP/Registry/4887 192.168.100.194:5091:3600:4887:sip:4887@192.168.100.194:5091;rinstance=21000ece683be6c2;transport=UDP                             

удалить ее можно конструкцией:

database del SIP Registry/4887

где SIP - <family>, а Registry/4887 - <key>

Asterisk app: AGI

agi 'database deltree'

$
0
0

agi 'database deltree'

синтаксис

database deltree <family> [<keytree>]

Описание

Удалить <family> или указанное дерево <keytree> без <family> в astdb.

Возвращает '1' если успешно, '0'- неудачно.

Выполнять в мертвом канале

Yes

Например, есть <family> DEVICE:

asterisk -rx 'database show' | grep DEVICE

/DEVICE/4887/default_user                         : 4887
/DEVICE/4887/dial                                 : SIP/4887
/DEVICE/4887/type                                 : fixed
/DEVICE/4887/user                                 : 4887
/DEVICE/4889/default_user                         : 4889
/DEVICE/4889/dial                                 : PJSIP/4889
/DEVICE/4889/type                                 : fixed
/DEVICE/4889/user                                 : 4889

удалим дерево 4887:

 database deltree DEVICE 4887

где DEVICE - family, 4887 - keytree

Будут удалены строки:

/DEVICE/4887/default_user                         : 4887
/DEVICE/4887/dial                                 : SIP/4887
/DEVICE/4887/type                                 : fixed
/DEVICE/4887/user                                 : 4887

Asterisk app: AGI

agi 'database get'

$
0
0

agi 'database get'

Синтаксис

database get <family> <key>

Описание

Извлекает значение из внутренней БД Asterisk (astdb), для требуемых <family> и <key>.
Возвращает '0' если <key> не задан и '1' если <key> существует.
Также возвращает значение gthtvtyyjq d crj,rf[.

Пример возвращаемого кода: 200 result=1 (testvariable)

Например в astdb определено <family> - blacklist:

 /blacklist/2666                                   : 1

Запросим:

 database get blacklist 2666

Получим:

 200 result=1 (1)
Выполнять в мертвом канале

agi 'database put'

$
0
0

agi 'database put'

Синтаксис

database put <family> <key> <value>

=Описание== Добавить или обновить запись во внутренней БД Asterisk(astdb) для указанных <family>, <key>, и <value>..
Возвращает '1' ля удачной операции ли '0'.

Выполнять в мертвом канале

Yes

Пример: отключить номер для блокирования вызовов (blacklist):

Номер в блекисте:

asterisk -rx 'database show' | grep blacklist/2666

 /blacklist/2666                                   : 1

Установим значение '0' вместо '1' :

 database put blacklist 2666 0

asterisk -rx 'database show' | grep blacklist/2666

 /blacklist/2666                                   : 0

значение '0' разрешает номеру 2666 вызовы.

Asterisk app: AGI

agi 'exec'

$
0
0

agi 'exec'

Синтаксис

exec <application> <options>

Описание

Выполняет приложение диалплана Asterisk c указанными опциями для заданной команды

Выполнять в мертвом канале

Yes

пример задать переменную:

 $agi->exec(‘Set’,”variable_name”, $variable_value);

Asterisk app: AGI

FreePBX Queues

$
0
0

FreePBX Queues

Очереди звонков Колл Центр Asterisk GUI

Очереди позволяют управлять большим количеством входящих вызовов и создать Call center.

Queue Setup

Queue number

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

Queue Name

Краткое название очереди. Используется только в веб-интерфейсе для удобства идентификации.

Queue Password

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

CID Name Prefix

Агенты могут обслуживать более чем одну очередь, Полезно видеть из какой очереди принимается вызов, например «sales» или «service».

Static Agents

Это телефоны постоянно зарегистрированные для обслуживания очереди.

Dynamic Members

Динамические агенты, могут входить в очередь при помощи набора кода(по умолчанию Queue Toggle - *45<номер очереди>) и обслуживать входящие вызовы. Динамический агент может находится за пределами системы, дозвонившись авторизоваться и принимать вызовы с незарегистрированного в системе телефона.

Agent Restrictions

Call As Dialed - вызывать агента как обычный екстеншен, если установлено follow me, будет выполнена переадресация.
No Follow-Me or Call Forward - как и следует из названия, установки follow me и call forward будут игнорироваться.
Extensions Only - вызывать екстеншен «как есть» без проверки.

Queue Options

Agent Announcement

Это сообщение проигрывается агенту, перед тем как он будет соединен с клиентом. Например: «Этот вызов поступил из очереди тех. обслуживания». Полезно если телефоны агентов не принимают CallerID. Управление сообщениями производится в System Recordings

Join Announcement

Это объявление проигрывается звонящему при постановке в очередь.

Hold Music Category

Музыка проигрываемая абоненту во время ожидания в очереди. Назначается в Music On Hold/

Ringing Instead of MoH

Заменить музыку гудками

Max Wait Time

Максимальное время ожидания в очереди, до перенаправления вызова в Fall Over Destination.

Max Callers

Максимальное количество ожидающих в очереди. При переполнении вызовы будут также направлены в Fall Over Destination.

Join Empty

Разрешает звонящим вставать в очередь, в которой нет агентов.

Leave When Empty

Установите «yes», чтобы удалить абонентов из очереди в которой нет агентов.

Ring Strategy

Существует 6 моделей приема вызовов:

  • ringall: звонят все свободные агенты (по умолчанию)
  • roundrobin: вызываются поочередно все свободные агенты.
  • leastrecent: вызов поступает на недавно присоединившегося агента
  • fewestcalls: вызов поступает на наименее загруженного агента
  • random: случайный выбор
  • rrmemory: запоминает предыдущего ответившего и вызывает следующего.

см также: startegy - queues.conf

Agent Timeout

Таймаут после предыдущего вызова.

Retry

Время ожидания перед повторным вызовом всех агентов.

Wrap-up-time

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

Call Recording

Записывать входящие вызовы.

Caller Announcements

Frequency

Как часто обьявляется позиция в очереди и приблизительное время ответа агента, Установите 0 для полного отключения этой функции.

Announce Position

Установите «yes» для объявления позиции.

Announce Hold Time

Анонсировать время ожидания в очереди. Не объявляется если осталось менее минуты.

Periodic Announcements

Объявление в разрыв. Назначается в IVR

Fail Over Destination

Это стандартное место назначения, которые используются для Max Wait Time / Max callers, которые описаны выше.

FreePBX

Дополнительные материалы по теме: Очереди Asterisk

agi 'get data'

$
0
0

agi 'get data'

синтаксис

get data <file> [<timeout>] [<maxdigits>]

описание

Транслировать указанный <file> и принимать DTMFсигналы.
Возвращает цифры полученные из канала.

выполнять в мертвом канале

Asterisk application: Dial

$
0
0

Asterisk application: Dial

Команда плана набора Asterisk "Dial"

Краткий обзор

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

Описание

Данное приложение направляет вызовы на один или несколько назначенных каналов. Как только один из запрашиваемых каналов отвечает, происходит соединение. Эти два канала и составляют активное соединение. Вызовы на остальные запрашиваемые каналы прекращаются (hangup).
Если тайм-аут не назначен, вызов будет ждать бесконечно, пока кто-то из пользователей не произведет отбой, или все вызываемые каналы получат статус «занят» или «недоступен»(busy or unavailable).

Если ${OUTBOUND_GROUP}переменная установлена, все каналы созданные этим приложением будут группированы, как (Set(GROUP()=…).

При использовании переменной ${OUTBOUND_GROUP_ONCE}все каналы созданные этим приложением будут также сгруппированы, как (Set(GROUP()=…),
но в отличии от ${OUTBOUND_GROUP}, после использование значение не сохранится и будет удалено.

Приложение «Dial» также возвращает следующие переменные:

${DIALEDTIME}: Время с начала набора до разъединения вызова.

${ANSWEREDTIME}: Фактическое время соединения (разговора).

${DIALSTATUS}: Состояние вызова.

  • CHANUNAVAIL
  • CONGESTION
  • NOANSWER
  • BUSY
  • ANSWER
  • CANCEL
  • DONTCALL: Для Privacy и Screening Modes. Будет установлен, если вызываемый абонент выбирает для отправки вызывающему абоненту сценария «Go Away».
  • TORTURE: Для Privacy и Screening Modes. Будет установлен, если вызываемый абонент выбирает для отправки вызывающему абоненту сценария «Torture».
  • INVALIDARGS

Синтаксис

Dial(Technology/Resource[&Technology2/Resource2[&…]][,timeout[,options[,URL]]])

Аргументы

Technology/Resource - Определение устройств для вызова в формате 'Technology/Resource', где <Technology> означает специфическую технологию драйвера канала, а <Resource> доступные для заданной технологии каналы.

  • DAHDI/1 - Вызов устройства DAHDI.
  • DAHDI/g0/${EXTEN} - Вызов через группу каналов DAHDI
  • SIP/100 - Вызов SIPпира.
  • PJSIP/${EXTEN}@pjsip_trunk - вызов через PJSIP транк.
  • Local/100@from-internal/n - вызов через локальный прокси драйвер Asterisk.

Technology2/Resource2 - Параллельный вызов дополнительных устройств. Если требуется вызвать более одного устройства используйте синтаксис: Technology2/Resource2&Technology3/Resourse3&…..

timeout - Таймаут вызова устройства. Если не задано, время по умолчанию 136 лет.

 exten => _1XXX,1,Dial(PJSIP/${EXTEN},60,)

Опции

  • A(x): Воспроизведение голосового сообщения для вызывающей стороны. Где (х) звуковой файл.
 exten => _1XXX,1,Dial(PJSIP/${EXTEN},60,A(demo-congrats))
  • a: Ответить на вызов, вне зависимости от состояния вызываемого канала. Обычно ответ на вызов происходит, когда отвечает вызываемый канал, но иногда требуется ответить до того, как поднимут трубку. Например при использовании опций A() и M().
  • b([[context^]exten^]priority[(arg1[^...][^argN])]): Перед началом исходящего вызова создается новый канал и выполняется GoSub. Gosub будет выполняться для каждого канала назначения.

[icoming]
exten => _9981138,1,Dial(SIP/666&PJSIP/89219981138@siptrunk,,b(option-b,s,1))

[option-b]
exten => s,1,Verbose(*option b*)
exten => s,n,return
  • B([[context^]exten^]priority[(arg1[^...][^argN])]): Выполнить переход, аналогичный GoSub до того, как будет вызван канал указанный в Technology/Resource

[sub-4555]
exten => s,1,playback(${ARG1})
exten => s,n,return
[from-4555]
exten => _4555,1,Answer
exten => _4555,n,Dial(PJSIP/2829@fs_pjsip,60,B(sub-4555,s,1(demo-congrats)))

Таким образом, опция 'b' работает для нескольких каналов, перечисленных в Technology/Resource, 'B' - для одного.

  • C: Не создавать запись детализированного отчета о звонках (CDR) для этого вызова.
  • c: Если приложение Dial() отменяет этот вызов, всегда устанавливать HANGUPCAUSE в 'answered elsewhere'
  • d: Позволяет вызывающему абоненту набрать одну цифру, во время ожидания ответа. Расширение должно быть назначено в текущем контексте ил и в контексте определенном переменной EXITCONTEXT.
  • D([called][:calling[:progress]]): Отправить DTMFстроку набора, после ответа на вызов, но до того как каналы будут соединены.

DTMFможет быть отправлен как вызываемой стороне, так и вызывающей. Оба аргумента могут быть использованы отдельно. Если указан PROGRESS, его DTMFпосылается к вызываемой стороне сразу после получения сообщения PROGRESS message. (пример: использовать для автоматического донабора пин-кода в карточных системах).

  • e: Выполнить расширение 'h' после завершения вызова.
  • f([x]): Если <x> задано, принудительно подставить значение в качестве CallerID.
  • F(context,exten,priority) - Когда вызывающийабонент завершает вызов, переадресовать вызываемого абонента аналогично GoTo по указанному назначению и выполнить.
    • F - если вызывающийабонент завершает вызов а параметры не заданы, перейти на 'n' следующий приоритет в текущем контексте.
  • g - Когда вызов завершен вызываемойстороной (в отличии от опции F), выполнить следующий приоритет в текущем контексте.
  • G - Если вызов отвечен, переадресовать вызывающую сторону на указанный приоритет(context,exten,priority), а вызываемую на указанный приоритет плюс 1.

[incoming]
exten => _9981138,1,Set(_callbackdest=${CALLERID(num)}) ;сохраним callerid в переменной
exten => _9981138,n,Dial(SIP/666,,G(callback,s,1)) ;вызов с опцией G
[callback]
exten => s,1,Goto(s,called) ; переход для вызывающего абонента
exten => s,n,Verbose(*callback init*) ; приоритет для инициации callback (приоритет 1 плюс 1)
exten => s,n,Wait(5) ; ждем 5 секунд
exten => s,n,Dial(PJSIP/${callbackdest}@siptrunk,,) ; вызываем абонента по его callerid
exten => s,n,hangup
exten => s,n(called),Verbose(*callback dest*) ; сюда попадает вызывающий абонент и далее вызов разъединяется, чтобы система сама перезвонила ему.
exten => s,n,hangup
  • h - Разрешить вызывающейстороне послать сигнал завершения вызова DTMFкодом из features.conf.
  • H - Разрешить вызываемойстороне послать сигнал завершения вызова DTMFкодом из features.conf.
  • i - Игнорировать любые запросы на переадресацию вызова.
  • I - Asterisk will ignore any connected line update requests or any redirecting party update requests it may receive on this dial attempt.
  • k - Разрешить вызываемой (called) стороне припарковать вызов набором DTMFкода, назначенного в features.conf.
  • K - Разрешить вызывающей (calling) стороне припарковать вызов набором DTMFкода, назначенного в features.conf.
  • L(x[:y][:z]) - Ограничить продолжительность вызова до Хмиллисекунд. Воспроизвести сообщение, когда Yмиллисекунд осталось. Повторять каждые Zмиллисекунд, пока не истечет время. Опции зависят от следующих переменных:
    • LIMIT_PLAYAUDIO_CALLER - Воспроизвести сообщение вызывающему. YES по умолч.: (true) \ NO
    • LIMIT_PLAYAUDIO_CALLEE - Воспроизвести сообщение вызывамому. YES по умолч.: (true) \ NO
    • LIMIT_TIMEOUT_FILE - If specified, filename specifies the sound prompt to play when the timeout is reached. If not set, the time remaining will be announced. FILENAME
    • LIMIT_CONNECT_FILE - If specified, filename specifies the sound prompt to play when the call begins. If not set, the time remaining will be announced. FILENAME
    • LIMIT_WARNING_FILE - If specified, filename specifies the sound prompt to play as a warning when time x is reached. If not set, the time remaining will be announced. FILENAME
      • x - Maximum call time, in milliseconds
      • y - Warning time, in milliseconds
      • z - Repeat time, in milliseconds
  • m(class) - Назначить для данного вызова специфический класс Музыки на Удержании (MOH).
  • M(x) - Выполнить указанный (x) Макро-контекст, когда вызываемая сторона ответит на вызов. Аргументы разделяются запятой. Возвращает переменную ${MACRO_RESULT}и выполняет по завершению Macro:
    • ABORT - Отключить оба канала.
    • CONGESTION - Канал переполнен.
    • BUSY - Канал занят.
    • CONTINUE - Отключить вызываемую сторону и и продолжить для вызывающей стороны выполнение диалплана со следующего приоритета.
    • GOTO:[[<CONTEXT>^]<EXTEN>^]<PRIORITY> - Переадресовать вызов в указанный контекст.
      • macro - Макрос для выполнения.
      • arg - Аргументы Макроса.

Пример опции Dial(,,,M(x))

exten => _4886,1,Dial(SIP/4886,,M(testM,argument1,argument2))

[macro-testM]
exten = s,1,verbose(${ARG1})
    same => n,verbose(${ARG2})
	same => n,set(MACRO_RESULT=BUSY)
вывод консоли для приведенного выше диалплана
  • n(delete) - Mодификатор экранного/конфиденциального режима (screen/privacy mode). Определяет, что вступления (introductions) не должны сохраняться в папке priv-callerintros.
    • delete - удалить группу если не указано или установлено - 0, записанное представление не будет удалено, если вызывающий абонент повесит трубку до ответа. если установлено 1 - вступление всегда удаляется.
  • N - This option is a modifier for the call screening/privacy mode. It specifies that if Caller*ID is present, do not screen the call.
  • o(x) - Использует Caller ID входящего вызова,в качестве Caller ID для исходящего вызова. Это полезно, если вы переадресовали вызов и хотите, чтобы адресат трансфера видел callerid внешнего абонента. Если o(${CALLERID(all)})аналогично oбез параметра.
  • O(x) - Включает режим оператора услуг. Эта опция работает только при вызове каналом DAHDI, другого DAHDIканала. Если используется не DAHDIинтерфейс опция буден проигнорирована. Когда оператор ответил, вызывающий канал теряет контроль над линией и не может, например, прервать вызов, пока это не сделает оператор.
    • mode:
      • 1 - если звонящий повесит трубку, раньше оператора, то будет немедленно вызван снова.
      • 2 - вернет вызов оператору, если он повесит трубку.
  • p - Включает режим экрана( screening mode). Это основной privacy mode без запоминания.
  • P(x) - Включает частный режим (privacy mode). Использует параметр x, как family/key в AstDB. Если (x) не задан, в качестве ДБ family/key используется текущий екстеншен.
  • r(tone) - По умолчанию: Генерирует КПВ вызывающей стороне, даже если вызываемая сторона на самом деле не звонит. Аудио канал не подключается, пока вызываемая сторона не ответит.
    • tone - генерирует КПВ тон, назначенный в indications.confдля текущей зоны.
  • R - Тоже, что и r, но разрешает заменить КПВ, если early media получен для данного канала.
  • S(x) - Повесить трубку через (x) секунд после ответа.
  • s(x) - принудительно подставить (х) callerid для исходящего вызова. Работает с опцией f
  • t - Разрешает вызываемойстороне, переадресовать вызов DTMFкодом, назначенным в features.conf.
  • T - Разрешает вызывающейстороне, переадресовать вызов DTMFкодом, назначенным в features.conf.

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

  • U(x[^arg[^…]]): - Выполнить GoSubмаршрут, после ответа вызываемой стороны. синтаксис: U(sub^ARG1^ARG2). После выполнения возвращает переменную ${GOSUB_RESULT}:
    • GOSUB_RESULT
      • ABORT - Всем отбой.
      • CONGESTION - Канал переполнен.
      • BUSY - Канал занят.
      • CONTINUE - Выполнить следующий приоритет. если вызываемая сторона положила трубку.
      • GOTO:[[<CONTEXT>^]<EXTEN>^]<PRIORITY> - перейти на указанный контекст.
    • x - имя контекста GoSub.
    • arg - аргументы GoSub

Пример использования опции U()

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

[internal]
exten => _4XXX,n,Dial(SIP/${EXTEN},30,trU(sub-monitor,s,1))
[sub-monitor]
exten => s,1,Set(WAV=/var/spool/asterisk/monitor/${UNIQUEID})
exten => s,n,Set(MP3=/var/spool/asterisk/monitor/mp3/${UNIQUEID})
exten => s,n,Set(monopt=nice -n 19 /usr/local/bin/lame -b 32  --silent "${WAV}.wav"  "${MP3}.mp3" && rm -f "${WAV}.wav" && chmod o+r "${MP3}.mp3")
exten => s,n,Set(CDR(recordingfile)=${UNIQUEID}.mp3)
;exten => s,n,Set(CDR(userfield)=${ARG1})
exten => s,n,MixMonitor(${WAV}.wav,b,${monopt})
exten => s,n,return
  • u(x) - Работает совместно с опцией f.
    • x - принудительно установить исходящий callerid индикатор в одно из значений, заданных как (x):
      • allowed_not_screened allowed_passed_screen
      • allowed_failed_screen allowed
      • prohib_not_screened prohib_passed_screen
      • prohib_failed_screen prohib unavailable
  • w - Разрешить вызывающейстороне включить запись разговора приложением Monitorнабором DTMFкода, назначенного в features.conf.
  • W - Разрешить вызываемойстороне включить запись разговора приложением Monitorнабором DTMFкода, назначенного в features.conf.
  • x - Разрешить вызывающейстороне включить запись разговора приложением MixMonitorнабором DTMFкода, назначенного в features.conf.
  • X - Разрешить вызываемойстороне включить запись разговора приложением MixMonitorнабором DTMFкода, назначенного в features.conf..
  • z - При форвардинге вызова, отменить любой тайм-аут набора, который был установлен для данного вызова.

URL - Добавить значение Access-URL:в SIP Invite.
Если вызываемое устройство поддерживает данную функцию, возможно вывести на дисплей телефона дополнительную информацию.

Команды диалплана Asterisk

Asterisk: Настройка

$
0
0

Asterisk: Настройка

Документация по настройке Asterisk на русском языке.
Диалплан, SIPи DAHDIканалы, очереди, конференции, CDRи др.

Asterisk Настройка - Диалплан, Контексты, Екстеншены

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

* Asterisk Dialplan - extensions.conf

* Использование переменных в плане набора Asterisk

Команды или по другому приложения (applications) диалплана Asterisk

Функции диалплана Астериск

Asterisk Dialplan functions

Функции Asterisk используются в диалплане. Это не командыдиалпланаи не могут быть использованы прямо. Функции возвращают значение для дальнейшего использования в логике диалплана.

NAT

Конфигурационные файлы Asterisk

Большинство настроек Asterisk контролируются с помощью конфигурационных файлов, расположеных в директории /etc/asterisk. Синтаксис конфигурационных файлов был разработан для упрощенного взаимодействия с ПО (например FreePBX) или же редактирования вручную.

Каналы SIP, IAX2, DAHDI и H.323 и др.

Каналы в asterisk - это внешние или внутренние соединения, по которым производиться доставка вызовов в АТС Asterisk. Каналом может быть соединение с обычным телефонным аппаратом или с обычной телефонной линией, или он может быть виртуальным (логическим) каналом для совершения вызовов (как, например, совершение телефонных вызовов через Интернет). Сервер Asterisk не делает различий между классами каналов «FXO» и «FXS» (это значит, что он не делает различий между телефонными линиями и телефонными аппаратами). Каждый совершаемый или принимаемый вызов производиться через какой-либо определенный канал.

Шифрование в Asterisk

Очереди и Агенты Asterisk

В Asterisk поддерживается несколько очередей вызовов. Их определения находятся в файле Настройка очередей (queues.conf) Asterisk, имена очередей вызовов используются в качестве аргумента команды Queue в файле конфигурации плана набора extensions.conf. Агенты, которые обрабатывают вызовы, поступающие в очередь, описываются в файле /etc/asterisk/agents.conf.

Конференции

Asterisk позволяет организовать телеконференции с неограниченным числом пользователей.

Коды Asterisk - Абонентские функции и их свойства - feartures.conf

В файле features.conf назначаются пользовательские коды абонентских функций Asterisk и опции абонентских функций, такие как:
Переадресация вызова(transfer), перехват вызова (pickup), запись по требованию (record on demand), таймауты между набора и переадресации (digit timeout), паркинг (park) и др.

CDR

Детализированный отчет о звонках (CDR) backend для сохранения данных о входящих, исходящих и внутренних вызовах Asterisk. Полное описание на русском языке CDR, MySQL, ODBC etc.

logger

CLI - интерфейс командной строки Asterisk.

Командная строка является мощным инструментом для мониторинга и управления работой Asterisk PBX

Asterisk AMI

Asterisk manager Interface - интерфейс управления.

Asterisk ARI

Настроим Asterisk, FreeSWITCH, IP АТС.

$
0
0

Настроим Asterisk, FreeSWITCH, IP АТС.

Интегратор облачных систем телефонных коммуникаций.

Реализуем сложные ТЗ.

Удаленно, в любой точке мира.

Установка IP АТС на открытом программном обеспечении включает в себя следующие этапы:

  1. Разработка технического задания с учетом требований заказчика и возможностей IP АТС.
  2. Подготовка договора на установку и настройку и, если требуется, поставку оборудования.
  3. Подготовка счета на оплату с учетом технического задания, согласование сроков и порядка оплаты.
  4. Удаленная установка IP АТС в любой точке мира.
  5. Установка IP АТС с выездом на объект (Санкт Петербург).
  6. Предварительная настройка оборудования в нашем сервисном центре.
  7. Сдача проекта. Проверка работоспособности всех компонентов и алгоритмов работы IP АТС.
  8. Обучение для дальнейшей эксплуатации IP АТС сотрудниками заказчика.
  9. Бесплатная техническая поддержка в течении месяца с момента запуска в эксплуатацию.

Мы находимся в Санкт-Петербурге, но работаем по всему миру!

Решения

VoIPАТС

  • Неограниченное количество VoIPабонентов и транков.
  • Запись разговоров и детализированный отчет о звонках.
  • Факс на e-mail.
  • Русскоязычный интерфейс.
  • CTI - Интеграция со сторонними приложениями.

Колл Центр

Дополнительно

  • Аудит и обслуживание уже установленных систем Asterisk, FreeSWITCH и др.
  • Написание кастомизированного диаплана под любые нужды.
  • Интеграция с устаревшими TDMАТС (Avaya, NEC, Nortel, Samsung, Panasonic, LG).
  • Аудит и настройки безопасности VoIPсистем.
  • Биллинг. Многопользовательские системы.
  • SIP proxy, SBC.

Напишите нам!

Свяжитесь с нами для получения подробной информации!
Офисная АТС

Only edit this fieldset if “Функционал” is set to “Офисная АТС”.

Колл Центр

Only edit this fieldset if “Функционал” is set to “Колл Центр”.

Кастомные решения

Only edit this fieldset if “Функционал” is set to “Все сложно”.

Скачать Asterisk

Asterisk app: Answer

$
0
0

Asterisk app: Answer

Приложение Asterisk: Ответить на вызов.

Описание

Отвечает на вызов, если соединение еще не установлено. (If the call has not been answered, this application will answer it. Otherwise, it has no effect on the call.)

Синтаксис

Answer([delay])

Аргументы

delay - время в миллисекундах, между ответом и переходом к выполнению последующих шагов диалплана

exten => s,1,Answer()

Пример использования Answer:

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

[ivr-main]
exten => s,1,Answer()
exten => s,n,Background(demo-congrats)
exten => s,n,WaitExten(10)
exten => _1,1,Dial(PJSIP/1000@office&PJSIP/1001@office,60,tr)
exten => _2,1,Dial(PJSIP/2000@office,60,tr)
exten => _[12]XXX,1,(Dial(PJSIP/${EXTEN}@office,60,tr)
exten => i,1,Dial(PJSIP/1000@office&PJSIP/1001@office,60,tr)
exten => t,1,Dial(PJSIP/1000@office&PJSIP/1001@office,60,tr)
  same => n,Hangup

Hangup()

Команды диалплана Asterisk

Viewing all 1135 articles
Browse latest View live


Latest Images

<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>