携帯が呼に応じた後に呼元にDTMFを送るextenを書きたいです

383 views
Skip to first unread message

ixtal...@gmail.com

unread,
Jul 21, 2016, 3:24:55 AM7/21/16
to 日本Asteriskユーザ会
パナソニックのドアホンとボイスワープ機能を使ってドアホンを携帯電話で受ける機能を作ろうとしています。
ドアホンを、IP-8N-SW101Aで受けるところまで成功しています。
ボイスワープはドアホンを転送するとき、音声ガイダンスで"##"の入力を求めます。また終了時は"*#"を求めます。
しかし携帯電話の場合、ボイスワープを受ける際にchan_mobileを経由しているので、DYMFが正確に再現できません。
なので、以下のようなextenを書きたいのですが、不勉強なので教えて頂くよろしくお願いします。

構成
・asterisk11
・Grandstream HT701
・chan_mobile

⒈ドアホンのボイスワープをHT701から携帯電話へ呼ぶ
⒉携帯電話が呼に応答したら、asteriskから、HT701へ"##"を流す。
⒊通話が終了したらasteriskからHT701へ"*#"を流してhungup する。
あくまで携帯電話が呼に応じた後にDTMFを送りたい
そのためanswer→SendDTMF→Dialという表現にしたくない
上記のextenだと、ドアホンのコントロールをasteriskに取られてしまい、ドアホン本体から応答出来なくなってしまうと思う

よろしくお願いします。

ixtal...@gmail.com

unread,
Jul 22, 2016, 6:41:07 AM7/22/16
to 日本Asteriskユーザ会
現状試行錯誤してこんな感じにしました。

[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

とりあえず動作としてはボイスワープを確立しました。
通話の品質は後日確認したいと思います。
ただ、ドアホンからのボイスワープを確立するまでにすごく時間がかかります。
それまで、来訪者が待ってくれるかのほうが問題かもしれません。
Reply all
Reply to author
Forward
0 new messages