2

マルチスレッド環境で jain SIP スタックを使用する方法が明確ではありません。異なるスレッドから複数の SIP セッションを作成する必要があります。たとえば、各クライアントは独自のトランザクションで処理する必要があります。以下にいくつかのオプションを示します。

  • SipProviderSIP リクエストの送受信にはシングルを使用し、アプリケーション側で多重化を行います。SipProviderはスレッドセーフではないため、リクエストの送信には適切なロックが必要です。
  • クライアントごとに新しいものSipProviderと新しいものを作成します。ListeningPointこれが今の私にとっての仕組みです。しかし、私はそれがあまり好きではありません。そして、SipStackがスレッドセーフかどうかは明らかではありません
  • SipStackクライアントごとにの新しいインスタンスを作成する
4

2 に答える 2

2

JAIN-SIP (またはその件については SIP や Java でさえも) について考えてから長い時間が経ちましたが、次のようになります。

  1. スタックを作成するときに再入可能リスナー フラグを設定します。(javadocを調べてください)。スレッド プール サイズを指定します。sip リクエストまたはレスポンスが来ると、スタックが新しいスレッドを作成し、リスナーを呼び出す可能性があります。

  2. クリティカル セクションは SipListener の実装です。永久にブロックしないでください。そうしないと、ブロックした時点で処理されていたトランザクションの sip リスナーに、新しい受信要求と応答がルーティングされません。

それがあなたの質問に答えることを願っています。ハッピーハッキング。

それでおしまい。

于 2013-10-29T15:42:52.120 に答える