0

具体的に言うと、Heartbeat アクティブ/パッシブ クラスターでアスタリスクを使用しています。クラスターには 2 つのノードがあります。Asterisk1 Asterisk2 としましょう。私のクラスターではすべてが適切に構成されています。ノードの 1 つでインターネット接続が失われると、アスタリスク サービスが失敗するか、アスタリスク 1 がオフになり、アスタリスク サービスとフェールオーバー IP が存続しているノード (アスタリスク 2) に移行されます。

問題は、アスタリスク 1 が落ちたときに実際に通話を処理していた場合、アスタリスクが通話を停止し、アスタリスク サービスがアスタリスク 2 で起動するまでリダイヤルできることです (5 秒、悪い時間ではありません)。

しかし、私の質問は次のとおりです。通話中に接続が失われたときに、アスタリスクをスカイプのように機能させる方法はありますか? つまり、通話を停止して通話を再接続しようとせず、Asterisk2 でアスタリスク サービスが稼働しているときに再接続しますか?

4

3 に答える 3

0

このような動作をサポートする商用システムがいくつかあります。

非商用システムで実行する場合は、次の 2 つの方法があります。

1) 自動応答フラグを持つすべての電話にコールバックを強制します。要求: アスタリスクの達人。

2) xen とメモリ マッピング/ミラー システムを使用して、同じメモリ状態 (同じ実行中のアスタリスク) を持つ他のノード vps を維持します。要件: XEN の第一人者。たとえば、これを参照してください: http://adrianotto.com/2009/11/remus-project-full-memory-mirroring/

申し訳ありませんが、どちらの方法でもグルの知識レベルが必要です。

openvpn トンネルを介して sip を行う場合、インターネットが最大 20 秒間ダウンしても、トンネル内でコールが失われない可能性が非常に高いことに注意してください。それはまさにあなたが尋ねたものではありませんが、うまくいきます。

于 2013-06-02T12:39:49.333 に答える
0

ほぼ2年経っても受け入れられた回答がないので、1つ提供します:いいえ。理由は次のとおりです。

  1. 1 つの Asterisk サーバー 1 から Asterisk サーバー 2 にフェールオーバーした場合、Asterisk サーバー 2 はどの呼び出し (つまり、エンドポイントからエンドポイントへ) が進行中であったかを認識しません。(着信番号のデータベースを共有している場合でも、アスタリスクリアルタイムなどを使用してください)。アスタリスクがコールの両方のレグを同じ番号に接続しようとした場合、これらはコールの同じエンドポイントではない可能性があります。

  2. 別のサーバーは、最後のサーバーで終了したため、他のサーバーの SIP TCP セッションを再開できません。

  3. MAC 送信元/宛先ポートが同一である可能性があり、ファイアウォールは同じセッションを継続しようとしていることを認識しません。

等.....

電話サービスの高可用性が目標である場合は、VoIP Info Web サイトを参照してください。残りのすべて (ネットワークの冗長性、ディスクの冗長性、共有ブロック ストレージ デバイス、ルーター フェールオーバー プロトコルなど) は気を散らすものです...代わりに、電話サービスの提供に関連するすべてのトランク/ルート/デバイス全体の障害を早期に検出することに焦点を当てます。デバイスを共有することなく、最高度の回復を実現します。(単一障害点を作成するディスク、チャネル バンクなどを共有する HA ソリューションが多すぎる)

于 2015-04-17T02:06:12.397 に答える