Red Hat Training

A Red Hat training course is available for Red Hat Fuse

283.3.2. Camel SIP サブスクライバーの作成

以下の例では、SIP Subscriber が作成され、
ユーザー "johndoe@localhost:5154" に送信される SIP イベントの公開を受け取ります。

  • Subscriber という名前の SIP スタックの使用
  • agent@localhost:5152 という名前の Presence Agent ユーザーを使用した登録
  • evtHdrName と呼ばれるレジストリーベースの eventHeader の使用。evtHdrName には、「Event_A」に設定されたイベントが含まれます。
  • evtId と呼ばれるレジストリーベースの eventId の使用
@Override
protected RouteBuilder createRouteBuilder() throws Exception {
    return new RouteBuilder() {
        @Override
        public void configure() throws Exception {
            // Create PresenceAgent
            from("sip://agent@localhost:5152?stackName=PresenceAgent&presenceAgent=true&eventHeaderName=evtHdrName&eventId=evtid")
                .to("mock:neverland");

            // Create Sip Consumer(Event Subscriber)
            from("sip://johndoe@localhost:5154?stackName=Subscriber&toUser=agent&toHost=localhost&toPort=5152&eventHeaderName=evtHdrName&eventId=evtid")
                .to("log:ReceivedEvent?level=DEBUG")
                .to("mock:notification");

        }
    };
}

Camel SIP コンポーネントには、テストおよびデモの目的にのみ使用するための Presence Agent も同梱されます。上記の Presence Agent をインスタンス化する例を紹介します。

Presence Agent はユーザー agent@localhost:5152 として設定されており、Publisher と Subscriber の両方と通信できることに注意してください。これには、Publisher と Subscriber とは別の SIP stackName があります。Camel コンシューマーとして設定されますが、実際にはルート内のメッセージをエンドポイント「mock:neverland」に送信しません。