現状試行錯誤してこんな感じにしました。
[door]
exten => 321,1,Wait(1)
exten => 321,n,Dial(SIP/***/***********,,tTg)←転送先電話へDial
exten => 321,n,Wait(1)
exten => 321,n,SendDTMF(##,500,${PHONE-00})←発信元へ"##"を送信
exten => 321,n,Wait(5)
exten => 321,n,Dial(SIP/***/***********,240,tTg)←転送先電話へDial
exten => 321,n,Wait(1)
exten => 321,n,SendDTMF(*#,500,${PHONE-00})←発信元へ"*#"を送信
exten => 321,n,Hangup()
大まかな動作は以下のようになります。
1.とりあえず転送先の携帯を呼する
2.呼を受けた携帯はドアホンワープの音声案内が始まるまで待つ(音声案内が始まらないとDTMFを受け付けてくれない)
3.音声案内がはじまったら携帯を切る
4.asteriskが送信元へDTMFを送る
5.もう一度転送先の携帯を呼する(この時点でボイスワープが確立している)
6.ドアホンと話す
7.携帯を切る
8.asteriskが送信元へDTMFを送る(この時点でボイスワープが切断される)
9.Hangup
とりあえず動作としてはボイスワープを確立しました。
通話の品質は後日確認したいと思います。
ただ、ドアホンからのボイスワープを確立するまでにすごく時間がかかります。
それまで、来訪者が待ってくれるかのほうが問題かもしれません。