Страница 1 из 1
Запись в файл номер из донабора
Добавлено: 13 июл 2022, 14:05
alennox
Добрый день, коллеги подскажите пожалуйста, нужно передать в имя записываемого файла номер набираемого абонента,
не получается. Ничего не записывает.
Вот что есть и что пробовал. Пробовал в fname передавать ${EXTEN} подставляет в файл s
Пробовал DIALEDPEERNUMBER, CHANNEL(Name).
GoSub показывает в CLI номер из донабора, но дальше в Recording2 его не передает.
Код: Выделить всё
[ivr]
exten => s,1,Answer()
exten => s,n,Background(/etc/asterisk/ivr/hello)
exten => s,n,WaitExten(5)
exten => _92XX,1,GoSub(recording2,s,1,${EXTEN})
exten => _92XX,n,Dial(DAHDI/g1/${EXTEN},30,t)
[recording2]
exten => s,1,Set(fname=${STRFTIME(${EPOCH},,%Y-%m-%d-%H_%M_%S)}_from_${CALLERID(number)}_to_${CALLERID(dnid)}_${EXTEN})
exten => s,n,MixMonitor(${DIR_RECORDS}${fname}.wav,b,${monopt})
exten => s,n(no),Verbose(Exit record)
exten => s,n,Return()
Re: Запись в файл номер из донабора
Добавлено: 13 июл 2022, 14:38
ded
Это вы всё ещё проблему Asterisk Parabel Panasonic TDE100, TDE200, CallerName решаете?
Код: Выделить всё
[ivr]
exten => s,1,Answer()
exten => s,n,Background(/etc/asterisk/ivr/hello)
exten => s,n,WaitExten(5)
exten => _92XX,1,Set(fname=${STRFTIME(${EPOCH},,%Y-%m-%d-%H-%M-%S)}-from-${CALLERID(number)}-to-${EXTEN}))
exten => _92XX,n,Dial(DAHDI/g1/${EXTEN},30,t)
Re: Запись в файл номер из донабора
Добавлено: 13 июл 2022, 16:00
alennox
Да там все понятно уже, это другой вопрос.
Re: Запись в файл номер из донабора
Добавлено: 13 июл 2022, 16:03
alennox
Здесь звоню с внешнего номера на номер 556677, играет приветствие, нажимаю 9233 и звоню абоненту.
Нужно чтобы в имя файла записывался добавочный номер 9233
Re: Запись в файл номер из донабора
Добавлено: 13 июл 2022, 16:19
Zavr2008
Если запись уже началась, файл не перетащить.
Никто не мешает в том же MixMonitor вызывать скрипт по окончании звонка для постпроцессинга. Туда же и UniqueID / LInkedID скидывать. Ну а скрипт (например через SELECT по таблице cel) либо принимая переменную (экстен) уже может делать переименование или еще что.
Re: Запись в файл номер из донабора
Добавлено: 13 июл 2022, 16:34
ded
В этом примере в fname запишется добавочный номер 9233
Код: Выделить всё
[ivr]
exten => 556677,1,Answer()
exten => 556677,n,Background(/etc/asterisk/ivr/hello)
exten => 556677,n,WaitExten(5)
exten => _92XX,1,Set(fname=${STRFTIME(${EPOCH},,%Y-%m-%d-%H-%M-%S)}-from-${CALLERID(number)}-to-${EXTEN}))
exten => _92XX,n,Dial(DAHDI/g1/${EXTEN},30,t)
Re: Запись в файл номер из донабора
Добавлено: 14 июл 2022, 08:39
alennox
Да передает, Ded спасибо огромное, можете пояснить логику
Если синтаксис Gosub это перенаправление выполнение диалплана в <sub контекст, на расширение exten и указанный приоритет, передав заданные аргументы, с последующим возвращением в исходный контекст.
Почему в Gosub не передается добавочный номер, по приоритету он стоит первый, потом идет Dial ?
Туда приходит кто звонил и кому, а добавочный обрабатывается как то отдельно???
Re: Запись в файл номер из донабора
Добавлено: 14 июл 2022, 08:47
alennox
Zavr2008 спасибо за идею!
Re: Запись в файл номер из донабора
Добавлено: 14 июл 2022, 10:30
ded
alennox писал(а):Да передает, Ded спасибо огромное, можете пояснить логику ?
Я только показал ответ на ваш вопрос:
alennox писал(а):Нужно чтобы в имя файла записывался добавочный номер 9233
в примере (выше) в имя файла записывается добавочный номер. Но вам нужна запись MixMoniyor, а не просто имя файла, верно?
Все самописные системы так или иначе повторят всё то, что уже давно написано во FreePBX. Зачем снова и снова открывать таблицу Менделеева или снова изобретать велосипед? Вот только часть макроса sub-record-check:
Код: Выделить всё
exten => recordcheck,1,Noop(Starting recording check against ${ARG1})
exten => recordcheck,n,Goto(${ARG1})
exten => recordcheck,n(dontcare),Return()
exten => recordcheck,n(always),Noop(Detected legacy "always" entry. Mapping to "force")
exten => recordcheck,n(force),Set(__REC_POLICY_MODE=FORCE)
exten => recordcheck,n,GotoIf($["${REC_STATUS}"!="RECORDING"]?startrec)
exten => recordcheck,n,Return()
exten => recordcheck,n(delayed),Noop(Detected legacy "delayed" entry. Mapping to "yes")
exten => recordcheck,n(yes),ExecIf($["${REC_POLICY_MODE}" = "NEVER" | "${REC_POLICY_MODE}" = "NO" | "${REC_STATUS}" = "RECORDING"]?Return())
exten => recordcheck,n,Set(__REC_POLICY_MODE=YES)
exten => recordcheck,n,Goto(startrec)
exten => recordcheck,n(no),Set(__REC_POLICY_MODE=NO)
exten => recordcheck,n,Return()
exten => recordcheck,n(never),Set(__REC_POLICY_MODE=NEVER)
exten => recordcheck,n,Goto(stoprec)
exten => recordcheck,n(startrec),Noop(Starting recording: ${ARG2}, ${ARG3})
exten => recordcheck,n,Set(__CALLFILENAME=${ARG2}-${ARG3}-${FROMEXTEN}-${TIMESTR}-${UNIQUEID})
exten => recordcheck,n,MixMonitor(${MIXMON_DIR}${YEAR}/${MONTH}/${DAY}/${CALLFILENAME}.${MON_FMT},a${MONITOR_REC_OPTION}i(LOCAL_MIXMON_ID)${MIXMON_BEEP},${MIXMON_POST})
exten => recordcheck,n,Set(__MIXMON_ID=${LOCAL_MIXMON_ID})
exten => recordcheck,n,Set(__RECORD_ID=${CHANNEL(name)})
exten => recordcheck,n,Set(__REC_STATUS=RECORDING)
exten => recordcheck,n,Set(CDR(recordingfile)=${CALLFILENAME}.${MON_FMT})
exten => recordcheck,n,Return()
exten => recordcheck,n(stoprec),Noop(Stopping recording: ${ARG2}, ${ARG3})
exten => recordcheck,n,Set(__REC_STATUS=STOPPED)
exten => recordcheck,n,System(${AMPBIN}/stoprecording.php "${CHANNEL(name)}")
exten => recordcheck,n,Return()
Re: Запись в файл номер из донабора
Добавлено: 14 июл 2022, 19:49
alennox
Просто имя файла. Mixmonitor не нужен.