Asterisk app: ForkCDR
Краткий обзор
Создает разветвление CDR для текущего канала.
Описание
Это приложение заставляет механизм записи данных вызова (CDR) вызвать разветвление CDR, начиная с момента вызова данного приложения. Разветвленный CDR будет соединен с концом CDR связанного с каналом.
Синтаксис
ForkCDR([options])
Аргументы
options
- 'a' - Обновляет время ответа на новом CDR сразу после его запуска. Новый CDR уже может быть отвечен. Сброс который делает ForkCDR, стирает время ответа. Данная опция вернет его, но время ответа будет копией вермени разветвления/запуска. Это будет сделано только в том случае, если исходный CDR был отвечен.
- 'A' - Блокирует обновление времени ответа для оригинального CDR. Это позволит расположению на исходном CDR остаться прежним.
- 'D' - Очистить dstchannel на новом CDR после сброса.
- 'e' - Завершает оригинальный CDR. Используйте это после того, как все необходимые данные скопированы с исходного CDR на новый, разветвленный CDR.
- 'r' - НЕ сбрасывать новый CDR.
- 's(name = val)' - Задает имя переменной CDR в исходном CDR со значением val.
- 'T' - Отмечает оригинальный CDR флагом DONT_TOUCH. Команды setvar, answer и end cdr будут подчиняться этому флагу. В обычных условиях они не соблюдают флаг LOCKED установленный в исходном CDR.
- 'v' - Когда новый CDR отделяется, он получает копию переменных, прикрепленных к текущему CDR. Переменные, прикрепленные к исходному CDR, удаляются, если не указана эта опция.
Пример
[context-1] exten => 100,1,Answer() ; Отвечаем на вызов. exten => 100,n,Verbose(${CDR(dst)} ) ; Просматриваем набранный номер (отобразится "100"). exten => 100,n,GoTo(context-2,123,1) ; Переходим в контекст [context-2], к экстеншену 123, первому приоритету.
Перейдя на экстеншн в другом контексте и просмотрев набранный номер мы увидим номер набранный изначально (100):
[context-2] exten => 123,1,Verbose(${CDR(dst)})
Но если после перехода в новый контекст мы разветвим CDR то просмотрев набранный номер увидим уже новое значение из нового CDR (123):
[context-2] exten => 123,1,ForkCDR() ; Производим разветвление CDR. exten => 123,n,Verbose(${CDR(dst)})
Смотри также