Проиграть два файла на две стороны канала
в asterisk
Откуда: Москва
Сообщений: 25
|
Re: Проиграть два файла на две стороны канала
в общем, ваши требования логически не возможны. все равно что быть одновременно в двух местах. похоже вы плохо понимаете что такое астериск и как он работает.
Да я понимаю, что в одном канале невозможно проиграть два файла в разные стороны.
Поэтому и предложил сделать два канала очень быстро, проиграть для каждого отдельно файлы и очень быстро связать их.
Других решений я пока не вижу.
А что вам не ясно в номерах? :)
|
Откуда: Уфа
Сообщений: 5856
|
Re: Проиграть два файла на две стороны канала
вы не ответили, зачем вам синхронность. и какая синхронность, доли секунды?
|
Откуда: Москва
Сообщений: 25
|
Re: Проиграть два файла на две стороны канала
switch, когда раньше вместо Asterisk был FrontRange, в wsc-скриптах такой проблемы не возникало, потому что в javascript всё было синхронно и был CRN входящих и исходящих звонков.
Поскольку тогда такие задачи были реализованы, то сейчас их надо перенести на новую платформу, что и делается, собственно :)
Синхронность может хотя бы на доли секунды расходиться, но не более того. Сначала запустить один файл, потом второй, ход функций последовательный, но вторая должна начинаться не тогда, когда закончится первая, а сразу же после запуска первой.
|
Откуда: Уфа
Сообщений: 5856
|
Re: Проиграть два файла на две стороны канала
тогда такой вариант:
входящий вызов помещается в контекст, где ему воспроизводится файл. AMI смотрит что файл начал воспроизводится и инициирует вызов оператору, который молниеносно снимает трубку и в ту же секунду слышит файл. затем оба канала соединяются.
но, по большому счету, это глупость и попахивает идиотизмом.
|
Откуда: Москва
Сообщений: 25
|
Re: Проиграть два файла на две стороны канала
switch, ну да... на дозвон в приложениях, как правило, стоит время порядка 20 секунд.
и при чём тут оператор? Я его только как пример привёл. Вызовы могут перенаправляться куда угодно, а не только в колл центр :)
|
Откуда: Уфа
Сообщений: 5856
|
Re: Проиграть два файла на две стороны канала
все равно я принципиально не понимаю, для чего нужна строгая синхронность в случае, когда оба объекта не зависят друг от друга, тем более что оба этих объекта - довольно медленные существа вроде людей.
|
Откуда: Москва
Сообщений: 25
|
Re: Проиграть два файла на две стороны канала
К сожалению, заявки на выполнение составляю не я :)
Как бы это ни было дибильно, а задача есть задача :(
Понять бы ещё, как связку сделать этих двух каналов...
P.S. схематически это должно выглядеть вроде вот так
http://img291.imageshack.us/img291/1174/41046191dp4.png
Но я могу ошибаться, и это будет не одновременно :)
Сначала проиграется Playback, а когда он закончится, то запустится Dial :(
|
Откуда: Уфа
Сообщений: 5856
|
Re: Проиграть два файла на две стороны канала
ну типа того я и предлагал.а по-другому-то как? но абсолютной синхронности не добьетесь все равно ...
если вам поставят задачу сгонять на Марс за камушками, тоже исполнять будете? Будьте адекватны!
|
Сообщений: 1573
|
Re: Проиграть два файла на две стороны канала
Это можно сделать диалпланом. В версии 1.6 появилась команда - Bridge, которая позволяет соединять каналы. После проигрывания файлов можно воспользоваться ей.
В версии 1.4 ее нет, и первое что приходит на ум, то после проигрывания файлов, перебросить оба вызова в конференцию. Это если нужно, что бы вызовы после проигрывания файлов, соединились.
Что бы не тянуть кота за хвост ... ) , попробуйте примерно так:
exten => _X.,1,NoOp
exten => _X.,2,Set(__CONF=${RAND(200|250)})
exten => _X.,3,Dial(SIP/${EXTEN},,G(4))
exten => _X.,4,Goto(play,1)
exten => _X.,5,Goto(play,4)
exten => play,1,Playback(file1)
exten => play,2,MeetMe(${CONF},Md1)
exten => play,4,Playback(file2)
exten => play,5,GoTo(2)
|
Откуда: Москва
Сообщений: 25
|
Re: Проиграть два файла на две стороны канала
cron333, Спасибо :) Попробую перевести это на язык AGI
К сожалению, у нас стоит 1.4 :(
|
|