0

Kamailio プロキシ バージョン 4.0.4 を使用しています。同じ URI で登録された 2 つの UAC (Bob1、Bob2) があります。次に、3 番目の UAC (Alice) が INVITE をプロキシに送信します。両方の UAC がこの Invite を受信し、両方とも通話を受け入れます。Kamailio は 2 番目 (Bob2) をキャンセルし、最初 (Bob1) の 200 Ok を Alice に転送します。

ただし、Bob1 と Bob2 から Alice への両方の 200 OK 応答を取得する必要があります。アリスは、同時に彼らと話したいと思っています。

これはkamailioで可能ですか?2 番目の 200 Ok がキャンセルされないようにするにはどうすればよいですか?

4

1 に答える 1

3

ステートフル モードで (tm モジュールを介して) ルーティングする場合、Kamailio は 200ok を受信すると、他のすべてのアクティブなブランチをキャンセルします。2 つの 200ok が同時に生成されると思われるかもしれませんが、それらは次々に処理される可能性が非常に高いため、1 つのブランチがキャンセルされます。

ステートレス ルーティングを行うことで、目的を達成できるはずです。tm モジュールの関数を使用してリクエストを送信する代わりに、 forward() 関数を使用します。ロジックは次のようになります。

  • r-uri ($ru) を最初の目的地に設定
  • 前方()
  • r-uri ($ru) を 2 番目の宛先に設定
  • 前方()

宛先が lookup("location") によって設定されている場合、最初の宛先が r-uri に入り、forward() を実行できます。2 つ目は、$branch(...) 変数を介して詳細を取得し、r-uri を設定してから、ネクスト ホップに関連するその他の属性を設定する必要があります。

于 2015-09-14T20:49:28.920 に答える