電話を転送したいのですが。内線番号を定義し、電話に出て、Dial コマンドを使用できます。しかし、tは私が望むものではありません。すぐに電話に出たくない。2 番目の呼び出しに応答するのを待ちたいと思います。
どうやってするの?応答せずに Dial(Sip/...) を使用すると、両側が完全に無音になります。
ファックスを無効にすることで解決できることを読みました ( http://fonality.com/trixbox/forums/trixbox-forums/open-discussion/call-forward-without-answer-dialplanを参照)。FAX モジュールをアンロードしましたが、問題は解決しませんでした。同じページで、 http://www.voip-info.org/wiki/view/Asterisk%20auto-dial%20outのようなものを試すことができると読みましたが、それは高度すぎるようです。
別のアイデアがあります。Dial(Sip/..., 60, M(a-macro)) を使用します。しかし、これら 2 つの呼び出しをマクロで結合する方法がわかりません。
何か案が?
編集:明確にするために。Dial (SIP/uri) または Dial(SIP/uri, 60, r) などの Dial のみを使用すると、次のようになります。
- 発信者:鳴る
- SIP 電話 (またはソフトウェア) が鳴る
- コールは SIP 電話から応答されます
- SIP電話:音が出ません。
- 発信者:鳴り止む、音が出ない
Dial(...) コマンドの前にコマンド Playback(invalid) を追加すると、まったく異なります。
- 発信者:鳴る
- 発信者: 通話に応答し、「無効」というメッセージが読み上げられます。
- 発信者: 呼び出し音が鳴ります (ただし、電話に応答し、発信者はこの呼び出し時間を支払います)
- SIP 電話 (またはソフトウェア) が鳴る
- コールは SIP 電話から応答されます
- 通話は正常に接続されました
Dial(...) コマンドの前に (たとえば、Playback(...) または Answer() を介して) 呼び出しが明示的に応答されない場合にのみ、問題が発生するようです。したがって、次のようなものが役立つ場合があります (JQuery のような疑似コード)。
call_1.Dial(...).onAnswer(function(call_2){
call_1.Answer();
});
アスタリスクは似たようなことを試みますが、アスタリスクのやり方にはバグがあります。
もちろん、Dial(...) の前に Answer() を追加しても機能しますが、リダイレクトされた通話に応答するまで通話に応答したくありません。
Dial(SIP/..., timeout, A(invalid)) を使用してほぼ解決しました。ここで、別の (ゼロ長またはほぼゼロ長の) サウンドを使用する必要があります。