Я пишу план набора в Asterisk
, где мне необходимо реализовать функцию закладки. Если пользователь звонит, и вызов прерывается, при повторном наборе пользователь должен быть переведен в тот же самый клип, на котором был сброшен или отключен последний вызов. План набора номера (с функцией закладки) в настоящее время выглядит примерно так:
[some-context]
exten => 0,n,System(progressmarker.sh ${CALLERID(num)} ${CONTEXT})
exten => 0,1,Background(wav1)
exten => 0,n,Background(wav2)
Есть сотни таких команд. progressmarker
берет контекст и помещает его в файл. Когда пользователь хочет продолжить старый сеанс, он начинается с последнего контекста, в котором он находился. Если вызов сбрасывается после wav1
или wav2
, пользователь должен начинать с wav1
или wav2
, а не с последний контекст.
Есть один способ сделать это:
exten => 0,n(wav1),Background(wav1)&System(progressmarker.sh ${CALLERID(num)} ${CONTEXT} wav1)
Но вы можете видеть, что этот способ не элегантен и обременителен, тем более что таких команд сотни. Есть ли лучший способ реализовать функцию закладки?