2017-08-25 9 views
0

特定の電話(Sip Phone)が応答または発信するたび、およびそのコールを終了するたびに、アスタリスクにスクリプトを実行させようとしています。その目的は、同じ部屋の電話機で通話が行われたときに自動的にテレビをミュートすることです。アスタリスクを実行して電話の応答と発信のコール

システムコマンドを使用しようとしましたが、応答した電話に関する情報が表示されません。私は複数の電話が鳴っているので、それが実際にテレビの隣にある電話か完全に別の電話かを区別することはできません。私が発呼のために持っているのと同じ問題。

別の方法がありますか?私もAMIを使用しようとしましたが、特定のピア(オフライン、オンライン、コール中、遅れている)のステータスを取得する方法が見つかりませんでした。

答えて

0

[ローカル/ 111 @から、内部は非常に特殊/ Nの代わりにSIP/111

のように、そのコール・拡張した後内線SIP/111

サポート延長

[from-internal-very-special] 
exten => 111,1,UserEvent(TVRingStarted) 
same => n,Set(CHANNEL(hangup_handler_push)=from-internal-very-special,ends,1) 
same => n,Dial(SIP/111,,U(from-internal-very-special,answer,1)) 

exten =>answer,1,UserEvent(TVRingAnswer) 
same => n,Set(GOSUB_RESULT=);we accept call 
same => n,Return;continue 

exten => ends,1,Noop(end of call) 
same => n,UserEvent(TVRingEnds) 
same => n,Return; 

を考えてみましょう

AMIで解析できるユーザーイベントがあります。あるいは、システムコールで置き換えてもかまいません。

+0

私は1分で試してみましょう、ありがとう!そして、私はそれを特別な文脈に入れる必要がありますか、それをどのように処理できますか?私のデフォルトのコンテキストには多くのエクステンションが含まれているので、それを含めるだけで、その前後にスクリプトを実行するのが最も簡単なのでしょうか? – Flole

+0

あなたは、チャンネル名を確認できる答え(U)にダイヤルオプションgosubを入れることができます。しかし、私はずっと複雑なスタッフになるだろうと思っています。 – arheops

+0

ええ、それは絶対にすべてのDialコマンドに数百回追加しなければならないので、間違いなくもっと複雑になります。あなたの助けてくれてありがとう、私はあなたのソリューションに若干の変更を加えました。 – Flole

関連する問題