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

MixMonitor не выполняет скрипт

1

exten => _3XXXXX,1,Set(monopt=nice -n 20 /usr/local/bin/lame -b 16 --silent "${WAV}/${UNIQUEID}.wav" "${MP3}/${UNIQUEID}.mp3" && rm -f "${WAV}/${UNIQUEID}.wav")
exten => _3XXXXX,n,MixMonitor(${WAV}/${UNIQUEID}.wav,b,${monopt})
exten => _3XXXXX,n,Dial(sip/1002/${EXTEN},30,Tt)
exten => _3XXXXX,n,Hangup()

Есть вот такой кусок экстеншена, и вроде все выполняется, ток вот не работает

в консоле пишет
== MixMonitor close filestream
== Executing [nice -n 20 /usr/local/bin/lame -b 16 --silent "/var/log/asterisk/wav/1312534733.226.wav" "/var/www/html/mp3/1312534733.226.mp3" && rm -f "/var/log/asterisk/wav/1312534733.226.wav"]
== End MixMonitor Recording SIP/1001-000000e2

Звонок записывается в вав но не перекодируется в мп3, как я понимаю проблема в том, что пока не "End MixMonitor Recording SIP/1001-000000e2" файл перекодировать не получится.

если выполнить руками nice -n 20 /usr/local/bin/lame -b 16 --silent "/var/log/asterisk/wav/1312534733.226.wav" "/var/www/html/mp3/1312534733.226.mp3" && rm -f "/var/log/asterisk/wav/1312534733.226.wav"
то все работает

У кого есть мысли как решить проблему?

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

спросил 2011-08-05 13:14:03 +0400

itprofit Gravatar itprofit
768 24 3 27
http://itprofit32.ru/

4 Ответа

1

Написать переконвертацию в экстеншене h. И поставить задержку, допустим, в секунду.

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

ответил 2011-08-05 15:14:13 +0400

samael28 Gravatar samael28
211 2 6
http://odicom.com.ua/

Comments

если можно, то поподробнее как это сделать. на сколько я знаю миксмонитор как раз после экстеншена h завершается. Но попробовать стоит этот екстеншен просто в контекст добавить и все? itprofit ( 2011-08-05 16:08:35 +0400 )редактировать
Есть волшебная команда StopMixMonitor. Ее выполнить первой. Потом - задержка в 1 сек. Потом - переконвертация. samael28 ( 2011-08-05 16:13:57 +0400 )редактировать
0

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

asterisk -vvvgc

тогда будет сообщение о реальной ошибке. также можно его посмотреть на консоли - по умолчанию alt-9.

наиболее вероятная ошибка - нельзя && в вызове систем использовать. напишите скрипт и все туда упакуйте, включая условия если надо.

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

ответил 2011-08-05 15:53:55 +0400

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

обновил 2011-08-05 15:55:15 +0400

Comments

asterisk -vvvgc ничего нового не показал, && на тягу не влияет, т.к. даже то, что до этого стоит не выполняется itprofit ( 2011-08-05 16:02:24 +0400 )редактировать
0

Нужно полностью прописать путь до nice, и nice может быть выполнен только рутом, если астериск запущен не от рута - он не выполнится.

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

ответил 2011-08-05 14:35:03 +0400

um2010 Gravatar um2010
2056 70 13 55

Comments

nice может быть запущен и от простого пользователя, если не понижает, а повышает "вежливость" процесса. То-есть в данном случае все ок. А вот так -- nice -n -20 /что/то/там/запустить -- от простого пользователя сделать не получится, только root zunkree ( 2011-08-05 15:12:00 +0400 )редактировать
не правда. через su можно что угодно сдлеать meral ( 2011-08-05 15:52:47 +0400 )редактировать
nice тоже на тягу не влияет, без него так же не работает itprofit ( 2011-08-05 16:14:55 +0400 )редактировать
0

exten => h,1,StopMixMonitor() exten => h,n,System(${monopt})

все решено, всем спасибо! ОСОБЫЙ РЕСПЕКТ samael28

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

ответил 2011-08-05 16:42:43 +0400

itprofit Gravatar itprofit
768 24 3 27
http://itprofit32.ru/

Comments

Мне эти строки почему то не помогли:

exten => 7831XXXXXXX,1,Set(CALLFILENAME=${STRFTIME(${EPOCH},,%d-%m-%Y%H:%M)}-${CALLERID(number)}-${EXTEN}) exten => _7831XXXXXXX,n,Set(monopt=nice —n 19 /usr/bin/lame —b 16 —noshort —silent "/home/share/monitor/${CALLFILENAME}.wav" "/home/share/monitor/${CALLFILENAME}.mp3") exten => _7831XXXXXXX,n,MixMonitor(/home/share/monitor/${CALLFILENAME}.wav,b,) exten => _7831XXXXXXX,n,DIAL(${OUTSIP}/${EXTEN},20) exten => _7831XXXXXXX,n,Hangup() exten => _7831XXXXXXX,n,StopMixMonitor() exten => _7831XXXXXXX,n,System(${monopt})

alexstat ( 2012-06-10 10:51:35 +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 ленту новостей

Статистика

Задан: 2011-08-05 13:14:03 +0400

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

Обновлен: Aug 05 '11

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