ВидеоКонф(ВКС)  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Запись в файл номер из донабора

Новичком считается только что прочитавший «Астериск - будущее телефонии»
http://asterisk.ru/knowledgebase/books
и пытающийся сделать большее

Модераторы: april22, Zavr2008

Запись в файл номер из донабора

Сообщение alennox » 13 июл 2022, 15:05

Добрый день, коллеги подскажите пожалуйста, нужно передать в имя записываемого файла номер набираемого абонента,
не получается. Ничего не записывает.
Вот что есть и что пробовал. Пробовал в 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()
alennox
 
Сообщений: 86
Зарегистрирован: 28 июн 2021, 08:05

Re: Запись в файл номер из донабора

Сообщение ded » 13 июл 2022, 15:38

Это вы всё ещё проблему 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)
ded
 
Сообщений: 15801
Зарегистрирован: 26 авг 2010, 19:00

Re: Запись в файл номер из донабора

Сообщение alennox » 13 июл 2022, 17:00

Да там все понятно уже, это другой вопрос.
alennox
 
Сообщений: 86
Зарегистрирован: 28 июн 2021, 08:05

Re: Запись в файл номер из донабора

Сообщение alennox » 13 июл 2022, 17:03

Здесь звоню с внешнего номера на номер 556677, играет приветствие, нажимаю 9233 и звоню абоненту.
Нужно чтобы в имя файла записывался добавочный номер 9233
alennox
 
Сообщений: 86
Зарегистрирован: 28 июн 2021, 08:05

Re: Запись в файл номер из донабора

Сообщение Zavr2008 » 13 июл 2022, 17:19

Если запись уже началась, файл не перетащить.

Никто не мешает в том же MixMonitor вызывать скрипт по окончании звонка для постпроцессинга. Туда же и UniqueID / LInkedID скидывать. Ну а скрипт (например через SELECT по таблице cel) либо принимая переменную (экстен) уже может делать переименование или еще что.
Российские шлюзы E1 Alvis-GW. Модернизация УПАТС с E1, Установка FreePBX, Системы антифрод "в разрыв" потоков E1 PRI / SS#7 ISUP.
Аватар пользователя
Zavr2008
 
Сообщений: 2158
Зарегистрирован: 27 янв 2011, 01:35

Re: Запись в файл номер из донабора

Сообщение ded » 13 июл 2022, 17:34

В этом примере в 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)
ded
 
Сообщений: 15801
Зарегистрирован: 26 авг 2010, 19:00

Re: Запись в файл номер из донабора

Сообщение alennox » 14 июл 2022, 09:39

Да передает, Ded спасибо огромное, можете пояснить логику
Если синтаксис Gosub это перенаправление выполнение диалплана в <sub контекст, на расширение exten и указанный приоритет, передав заданные аргументы, с последующим возвращением в исходный контекст.
Почему в Gosub не передается добавочный номер, по приоритету он стоит первый, потом идет Dial ?
Туда приходит кто звонил и кому, а добавочный обрабатывается как то отдельно???
alennox
 
Сообщений: 86
Зарегистрирован: 28 июн 2021, 08:05

Re: Запись в файл номер из донабора

Сообщение alennox » 14 июл 2022, 09:47

Zavr2008 спасибо за идею!
alennox
 
Сообщений: 86
Зарегистрирован: 28 июн 2021, 08:05

Re: Запись в файл номер из донабора

Сообщение ded » 14 июл 2022, 11:30

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()
ded
 
Сообщений: 15801
Зарегистрирован: 26 авг 2010, 19:00

Re: Запись в файл номер из донабора

Сообщение alennox » 14 июл 2022, 20:49

Просто имя файла. Mixmonitor не нужен.
alennox
 
Сообщений: 86
Зарегистрирован: 28 июн 2021, 08:05


Вернуться в Вопросы новичков

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 29

© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH