VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Случайный выбор музыкального файла

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

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

Ответить
Vadruz
Сообщения: 4
Зарегистрирован: 21 ноя 2013, 15:47

Случайный выбор музыкального файла

Сообщение Vadruz »

Господа, как можно реализовать случайный выбор музыкального файла из определенной директории?
Чувствую что делается это не сложно, но докопаться не смог
Аватара пользователя
Wapo
Сообщения: 795
Зарегистрирован: 02 мар 2011, 17:53

Re: Случайный выбор музыкального файла

Сообщение Wapo »

В musiconhold.conf прописать класс музыки-папку и sort random
Vadruz
Сообщения: 4
Зарегистрирован: 21 ноя 2013, 15:47

Re: Случайный выбор музыкального файла

Сообщение Vadruz »

Это, я так понимаю, для воспроизведения рандомной музыки для холда. У меня другая цель: при прохождении ivr используя определенный донабор заставлять астериск проигрывать файлы из определенной директории...
Vadruz
Сообщения: 4
Зарегистрирован: 21 ноя 2013, 15:47

Re: Случайный выбор музыкального файла

Сообщение Vadruz »

Т.е. при нажатии "2" звонящий должен услышать воспроизведение любого файла:
exten => 2,1,Playback(любой файл из /var/lib/asterisk/sounds/custom)
dmitriy.tarasov
Сообщения: 17
Зарегистрирован: 07 авг 2013, 17:03

Re: Случайный выбор музыкального файла

Сообщение dmitriy.tarasov »

Мир вам.
Не знаю, может быть есть какое-то более изящное решение, но:
можно названия файлов задавать с использованием переменной, значение которой выбирается с использованием функции SHELL, в которой нужно использовать /dev/random. Нужно просто (для простоты) дать файлам цифровые названия и вывод /dev/random формировать в этом диапазоне значений.
А дальше - просто использовать Playback / Background и значение названия будет меняться каждый раз.
Vadruz
Сообщения: 4
Зарегистрирован: 21 ноя 2013, 15:47

Re: Случайный выбор музыкального файла

Сообщение Vadruz »

Ваше мнение, стоит ли покапаться в направлении таком:
при определенном донаборе заставить заставить астериск проигрывать hold, ну а как сделать случайную выборку музыки для холда известно как. Остается разобраться как принудительно проигрыть холд. Править его я могу, т.к. в обычном формате он у меня не используется и не будет нужен...
Или туповатая идея?
gosha
Сообщения: 375
Зарегистрирован: 06 сен 2010, 17:41
Контактная информация:

Re: Случайный выбор музыкального файла

Сообщение gosha »

Код: Выделить всё

exten => _X.,1,Set(FILE=${SHELL( perl -e '$_=( sort {rand(1000)<=>rand(1000)} glob("/var/lib/asterisk/sounds/custom/*.*") )[0]\;chomp\; s#\.(\w+)$##\; print' )})
exten => _X.,n,Playback(${FILE})
ded
Сообщения: 15620
Зарегистрирован: 26 авг 2010, 19:00

Re: Случайный выбор музыкального файла

Сообщение ded »

А зачем шелл и перл? У Астериска есть функция

Код: Выделить всё

*CLI> 
  -= Info about function 'RAND' =- 

[Syntax]
RAND([min][,max])

[Synopsis]
Choose a random number in a range

[Description]
Choose a random number between min and max.  Min defaults to 0, if not
specified, while max defaults to RAND_MAX (2147483647 on many systems).
  Example:  Set(junky=${RAND(1,8)}); 
  Sets junky to a random number between 1 and 8, inclusive.
gosha
Сообщения: 375
Зарегистрирован: 06 сен 2010, 17:41
Контактная информация:

Re: Случайный выбор музыкального файла

Сообщение gosha »

автор говорил, что файлы у него вида 0...2147483647 ? даже если предположить переимменовать то потом поддерживать ( удаление/добавление фойлов ) это будед адом.
ded
Сообщения: 15620
Зарегистрирован: 26 авг 2010, 19:00

Re: Случайный выбор музыкального файла

Сообщение ded »

Так это уже ад!
Ужисть, ужисть!
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH