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

${DIALEDPEERNUMBER} в имени записанного файла

0

Хочу писать в имя файла, ответившего на вызов (в примере всего один, т.к. это тестовый план). В CDR ответившего удается записать, а вот файл начинает писаться когда ещё не известно кто ответит. Выходит, что пишем не зная ещё конечное имя файла. После записи, файл нужно переименовать. Пробую сделать так. Срабатывает все, кроме System. В консоли видно, что команда отрабатывается и если скопировать её вывод в консоль системы, то файл переименовывается, т.е. команда в System передается верная, но, то ли файл ещё не создан в это время (пробовал добавлять sleep 5), то ли другая беда, хз.

[incoming-call-203013]
exten=>203013,1,Set(fname=${STRFTIME(${EPOCH},,%Y-%m-%d__%H-%M-%S)}__${CALLERID(number)}-${EXTEN})
    same=>n,Set(dfname=${path2rec}/203013/${fname})
    same=>n,Set(monopt=nice -n 19)
    same=>n,Set(AUDIOHOOK_INHERIT(MixMonitor)=yes)
    same=>n,MixMonitor(${dfname}.wav,,oggenc -Qq0 ${dfname}.wav && rm -f ${dfname}.wav)
    same=>n,Dial(SIP/128,60,t)
    same=>n,Hangup
exten=>h,1,Set(CDR(dialedpeernumber)=${DIALEDPEERNUMBER})
    same=>n,Set(CDR(record)=${fname}_${DIALEDPEERNUMBER}.ogg)
    same=>n,Set(CDR(userfield)=in)
    same=>n,System(mv ${dfname}.ogg ${dfname}_${DIALEDPEERNUMBER}.ogg)

====== РЕШЕНИЕ ======

Вот так удалось дописать ответившего в имя файла, здесь диалплан другого офиса, но они отличаются только номерами телефонов.

[incoming-call-rabotaem]
exten=>s,1,Set(fname=${STRFTIME(${EPOCH},,%Y-%m-%d__%H-%M-%S)}__${CALLERID(number)}-${EXTEN})
    same=>n,Set(dfname=${path2rec}/${fname})
    same=>n,Set(monopt=nice -n 19)
    same=>n,Set(AUDIOHOOK_INHERIT(MixMonitor)=yes)
    same=>n,MixMonitor(${dfname}.wav)
    same=>n,Dial(SIP/501&SIP/502,60,t)
    same=>n,Hangup
exten=>h,1,Set(CDR(dialedpeernumber)=${DIALEDPEERNUMBER})
    same=>n,Set(fname2=${fname}_${DIALEDPEERNUMBER})
    same=>n,Set(dfname2=${path2rec}/${fname2})
    same=>n,Set(CDR(record)=${fname2}.ogg)
    same=>n,Set(CDR(userfield)=in)
    same=>n,System(oggenc ${dfname}.wav -Q -q 0 -o ${dfname2}.ogg && rm -f ${dfname}.wav)
удалить закрыть спам изменить тег редактировать

спросил 2013-10-22 09:39:07 +0400

thunderamur Gravatar thunderamur
405 61 8 27

обновил 2013-10-28 09:36:25 +0400

2 Ответа

0

Делайте ваш System в exten => h,1,xxx

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

ответил 2013-10-22 10:36:07 +0400

komrad123 Gravatar komrad123
3780 5 3 42

Comments

System уже там, или я неверное написал конфиг? same=>n после exten=>h

thunderamur ( 2013-10-22 12:14:59 +0400 )редактировать
1

да что то не заметил h / n. есть подозрение что в момент система нету того .ogg еще. Конвертацию из wav в ogg тоже в h вытащите.

komrad123 ( 2013-10-22 12:18:18 +0400 )редактировать

Так и я про то пишу, что мб нет этого файла ещё, но попробовал ввести задержку sleep 5, не вышло и успокоился, однако, не пойму почему сразу не попробовал вынос в h - это помогло, спасибо!

Рабочий код в вопросе, т.к. в комментариях глючат спец. символы.

thunderamur ( 2013-10-28 09:32:06 +0400 )редактировать
0

скорее всего файл не получается переименовать т/к он в это время занят (записью разговора). используйте exten => h

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

ответил 2013-10-22 10:38:36 +0400

boffart Gravatar boffart flag of Russian Federation
51 3 1 4
http://www.telefon1c.ru/

Comments

Глянь мой диалплан, я уже пользуюсь exten=>h. Как раз для того, чтобы получить значение "кто ответил" и т.д. Или я где-то ошибся?

thunderamur ( 2013-10-22 12:14:07 +0400 )редактировать

покажи лог звонка при

asterisk -rvvvvv

boffart ( 2013-10-22 14:08:18 +0400 )редактировать

Ваш ответ

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

Статистика

Задан: 2013-10-22 09:39:07 +0400

Просмотрен: 623 раз

Обновлен: Oct 28 '13

Похожие вопросы:

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