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

Как заменить кусочек переменной в 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'?

удалить закрыть спам изменить тег редактировать

спросил 2014-05-08 09:57:11 +0400

thunderamur Gravatar thunderamur
444 70 12 38

2 Ответа

1

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

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

ответил 2014-05-08 14:24:54 +0400

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

Comments

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

zzuz ( 2014-05-08 14:32:27 +0400 )редактировать
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
ссылка удалить спам редактировать

ответил 2014-05-08 14:14:24 +0400

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 ленту новостей

Статистика

Задан: 2014-05-08 09:57:11 +0400

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

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

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