0

Asterisk.NET を使用して、C# WinForms でアスタリスク クライアントを作成しています。私のクライアントは 1 つの内線だけを聞いています。通話を表示したり、内線番号に着信する通話を拒否または転送したりできます。コールを転送するにはソース チャネルが必要ですが、ソース チャネルはダイヤル イベントからのみ取得できます。最近、サーバーに接続された内線のいずれかがダイヤルを開始するたびにダイヤル イベントが発生することに気付きました。私はそれを除外したいのですが、私の内線だけにかかってくる電話だけです。

    void manager_Dial(object sender, DialEvent e)
    {

        CallingInfo.src_channel = e.Channel;
    }

e.dialString は宛先内線番号を教えてくれます。ただし、サーバーの状態によってはnullになるかどうかはわかりません。さらに、外部からの電話がかかってきて、ダイヤル イベントやソース チャネルを取得できず、転送できない場合はどうなりますか。右 ?

4

1 に答える 1

0

できません。

アスタリスクはそのような機能を許可しません。

すべてを読み取り、コードに必要な拡張子でフィルタリングできます。サーバーでフィルタリングし、必要なデーモンのみをアプリに送信するデーモンを作成できます。

理由: アスタリスクは pbx です。pbx 以外の機能はすべて制限されています。

また、ダイヤルする前と応答後に必要なフィールドを含むダイヤルプラン UserEvent を送信し、UserEvent のみをキャッチすることもできます。

于 2014-06-26T12:13:28.047 に答える