First time here? Check out the FAQ!

Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

Как заменить кусочек переменной в extensions.conf

0

Есть такой кусок диалплана:

[macro-record-transfer]
exten
=>s,1,Set(fname=${STRFTIME(${EPOCH},,%Y-%m-%d__%H-%M-%S)}__${CALLERID(number)}-${CDR(dst)})
    same
=>n,Set(dfname=${path2rec}/${fname})
    same
=>n,Set(monopt=nice -n 19)
    same
=>n,MixMonitor(${dfname}.wav)
    same
=>n,Dial(${ARG1},30,t)
    same
=>n,Hangup
exten
=>h,1,Set(fname2=${fname}_${DIALEDPEERNUMBER})
    same
=>n,Set(dfname2=${path2rec}/${fname2})
    same
=>n,System(oggenc ${dfname}.wav -Q -q 0 -o ${dfname2}.ogg && rm -f ${dfname}.wav)
    same
=>n,Set(CDR(userfield)=internal)
    same
=>n,Set(CDR(record)=${fname2}.ogg)
    same
=>n,Set(CDR(dialedpeernumber)=${DIALEDPEERNUMBER})

В некоторых ситуациях в переменной ${DIALEDPEERNUMBER} может быть "natali/603" или "ys/2015". Далее при записи файла имя файла с "/" создает понятную проблему. Как в диалплане заменить "/" на "-". Может быть как-то можно использовать

sed -e 's/\//-/g'?

спросил May 8 '14

thunderamur Gravatar thunderamur
444 70 12 39

2 Ответа

1

${REPLACE()} , либо если интересен sed , то

exten=>h,1,Set(fname2=${SHELL(echo -n "${DIALEDPEERNUMBER}" | sed 's/\//-/')})
ссылка удалить спам редактировать

ответил May 8 '14

zzuz Gravatar zzuz flag of Russian Federation
7174 2 6 75
http://line24.ru/

Comments

Плюс REPLACE в версиях 1.8+

zzuz (May 8 '14)edit
1
 core show function REPLACE 

 
-= Info about function 'REPLACE' =-

[Synopsis]
Replace a set of characters in a given string with another character.

[Description]
Iterates through a string replacing all the <find-chars> with <replace-ch
ar
>.  <replace-char> may be either empty or contain one character.  If empty,
all
<find-chars> will be deleted from the output.
NOTE
: The replacement only occurs in the output.  The original variable is
not altered.

[Syntax]
REPLACE
(varname,find-chars[,replace-char])

[Arguments]
Not available

[See Also]
Not available
ссылка удалить спам редактировать

ответил May 8 '14

meral Gravatar meral flag of Ukraine
23347 24 20 177
http://pro-sip.net/

Ваш ответ

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!
[скрыть предварительный просмотр]

Закладки и информация

Добавить закладку

подписаться на rss ленту новостей

Статистика

Задан: May 8 '14

Просмотрен: 1,175 раз

Обновлен: May 08 '14

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.