Решение 1
Можно просто проиграть оператору ОДИН файл, а после этого обоим одинаковый другой файл, но тоже ОДИН:
Код: Выделить всё
channel["LIMIT_PLAYAUDIO_CALLER"]:set("yes")
channel["LIMIT_PLAYAUDIO_CALLEE"]:set("yes")
channel["LIMIT_CONNECT_FILE"]:set("client1")
app.dial("SIP/50,60,L(9999999)A(operator1)")
Решение 2
Можно через макрос добиться проигрывания НЕСКОЛЬКИХ файлов оператору и ОДИН файл клиенту.
Код: Выделить всё
function test_dial_takeup(ctx, ext)
app.background("operator1")
app.background("operator2")
app.background("operator3")
app.background("operator4")
app.background("operator5")
end
...
...
channel["LIMIT_PLAYAUDIO_CALLER"]:set("yes")
channel["LIMIT_PLAYAUDIO_CALLEE"]:set("yes")
channel["LIMIT_CONNECT_FILE"]:set("client1")
app.dial("SIP/50,60,M(test-dial-takeup)L(9999999)")
Но клиенту мы по прежнему играем только ОДИН файл! Как сделать несколько?
Пробовал указывать несколько файлов через символы , ^ | &, но ничего не помогло (считает эти спец.символы за часть имени файла и не находит его).
Решения 3, 4 и 5
Пробовал несколько вариантов через Originate и ChanSpy:
Код: Выделить всё
app.Originate("Local/50@test,app,Playback,operator1")
Код: Выделить всё
app.Originate("SIP/50,app,Playback,operator1")
Код: Выделить всё
app.ChanSpy("SIP/" .. ext .. ",BEq")
Можно попробовать создать call-файл. Но что-то не догоняю саму суть - с какой командой?
Чую, что нужно сунуть ногу к клиенту (пока не соединенному с оператором) и проговорить файлы.
И хотелось бы избежать параллельных звонков, они мусорят всюду. Хотелось бы как-то нативно и логично: одной стороне вызвать одни Playback'и, другой стороне другие и после этого сбриджевать абонентов.
Как, толкните меня в правильное русло, весь мозг выел себе уже