[ConferenceAudio]
; Users would join the conference at extension 100
exten => 100,1,Goto(start,1)
; Trigger audio playback with extension 200
exten => 200,1,Originate(Local/inject@ConferenceAudio/n,exten,
ConferenceAudio,quiet_join,1)
; Users join the conference here
exten => start,1,NoOp()
same => n,Answer()
same => n,MeetMe(31337,d)
same => n,Hangup()
; Use a couple flags to quietly enter the conference
exten => quiet_join,1,NoOp()
same => n,Answer()
same => n,MeetMe(31337,dtq)
; This triggers the file to be played into the conference
exten => inject,1,NoOp()
same => n,Playback(silence/1&tt-weasels)
same => n,Hangup()
Подскажите пожалуйста, в том ли направлении работаю? Или есть еще какие то варианты?
То есть, грубо говоря,
*1 - проиграть первый файл
*2 - второй
*3 - третий
и т. д.
*50 - пятидесятый
Или же вообще хранить кучи вариантов в DB и загружать их в динамике
_________________
P4 3.0 + 1Gb CentOS 5.8 Aster 1.8.16
Не люблю gui-сборки: натуральный продукт вкуснее.
И еще: я ПРОФИ так как НЕ ЛЕНЮСЬ читать литературу.
Позвонил клиент? Менеджеру на компе автоматом высветилась вся инфа (берём по callerid) + какие звуки конкретно у него будут на каких кнопках для этого конкретного клиента.
_________________
P4 3.0 + 1Gb CentOS 5.8 Aster 1.8.16
Не люблю gui-сборки: натуральный продукт вкуснее.
И еще: я ПРОФИ так как НЕ ЛЕНЮСЬ читать литературу.
| Цитата: |
| загружать их в динамике |
Вызываем макрос, а он уже разбирает всё что хочет. Запросы к базе, выборка нужных данных...
Но на данном этапе features / sh / macro подходят.
Советую app_conference, meetme нестабильна временами. Решение на app_conference много надежнее.
Если кому интересно, то сделал все через phpAGI:
1. При звонке в БД записываю название канала, по которому идет разговор, только пропускаю его через URLENCODE() - иначе Originate не выполнится
Для аудио-вставок:
1. В плане набора прописал екстеншн, который перенаправляет на выполнение аги скрипта.
exten => _*4XXX,1,Answer
exten => _*4XXX,n,AGI(scripts/Main.php,listen)
exten => _*4XXX,n,Hangup
XXX - caller_id
еще прописал
[whisper-channel]
exten => _spy-.,1,NoOp()
same => n,Set(EncodedChannel=${CUT(EXTEN,-,2-3)})
same => n,Set(ChannelToSpy=${URIDECODE(${EncodedChannel})})
same => n,ChanSpy(${ChannelToSpy},wsqEB)
same => n,Hangup()
exten => audio,1,NoOp()
same => n,Answer()
same => n,Wait(0.4)
same => n,Set(VOLUME(TX)=-3)
same => n,Playback(/usr/share/asterisk/agi-bin/test)
same => n,Hangup()
2. Потом в скрипте получаю название канала по caller_id и выполняю $this->agi->exec('Originate',"Local/spy-".$res['chanel_name']."@whisper-channel,exten,whisper-channel,audio,1");
И все, вроде гуд. Возможно метод немного кривоватый, но все же рабочий. Для моей задачи вполне подходит
_________________
P4 3.0 + 1Gb CentOS 5.8 Aster 1.8.16
Не люблю gui-сборки: натуральный продукт вкуснее.
И еще: я ПРОФИ так как НЕ ЛЕНЮСЬ читать литературу.