Поскольку большинство Dial options действуют на вызываемой стороне, а не вызывающего абонента, вы должны получить мало творческих. Это немного странно, чтобы делать такие вещи вызывающему, а не вызываемой стороне, но, эй, это Asterisk: обычно есть способ сделать то, что вы хотите.
Один из подходов заключается в использовании менее известного (и несколько странного) G. Цитирование из документации:
Если на вызов отвечает, передайте вызывающему абоненту указанный приоритет, а вызываемый - указанному приоритету плюс один.
- контекст
- Экстен
- приоритет
В принципе, вариант G принимает вызывающего/вызываемого канала и - вместо мостов их вместе - отскакивает оба из них к диалплан. Затем вы можете сделать небольшое творческое упражнение для выполнения операции воспроизведения, прежде чем объединять их в Bridge. Следующий Диалплан должен работать (предостережение: я не проверял это, и я сижу на ноутбук на диване, но это должно закрыть):
[default]
exten => 1000,1,NoOp()
same => n,Dial(SIP/alice,,G(default^bridge_and_play^1))
same => n,Hangup()
exten => bridge_and_play,1,Goto(jump_caller,1)
same => n,Goto(jump_called,1)
same => n,Hangup()
exten => jump_caller,1,NoOp()
same => n,Answer()
same => n,Playback(tt-monkeys)
same => n,Bridge(${bridge_this})
same => n,Hangup()
exten => jump_called,1,NoOp()
same => n,Set(MASTER_CHANNEL(bridge_this)=${CHANNEL})
same => n,Wait(1000)
same => n,Hangup()
Я хотел бы играть записанное приветственное сообщение вызывающего абонента. –