305.4. 将消息发送到/从 SIP 端点
305.4.1. 创建 Camel SIP publisher
复制链接链接已复制到粘贴板!
						在以下示例中,创建一个 SIP publisher 来向 
 用户"agent@localhost:5152"发送 SIP 事件发布。这是 SIP Presence Agent 的地址,它充当 SIP publisher 和 Subscriber 之间的代理
					
- 使用名为 client 的 SIP Stack
- 使用一个名为 evtHdrName 的基于 registry 的 eventHeader
- 使用一个名为 evtId 的基于 registry 的 eventId
- 从带有 Listener 的 SIP 堆栈中,设置为 user2@localhost:3534
- 发布的事件是 EVENT_A
- 名为 REQUEST_METHOD 的 Mandatory Header 设置为 Request.Publish 因此,将端点设置为 Event publisher"
producerTemplate.sendBodyAndHeader(
    "sip://agent@localhost:5152?stackName=client&eventHeaderName=evtHdrName&eventId=evtid&fromUser=user2&fromHost=localhost&fromPort=3534",
    "EVENT_A",
    "REQUEST_METHOD",
    Request.PUBLISH);
producerTemplate.sendBodyAndHeader(
    "sip://agent@localhost:5152?stackName=client&eventHeaderName=evtHdrName&eventId=evtid&fromUser=user2&fromHost=localhost&fromPort=3534",
    "EVENT_A",
    "REQUEST_METHOD",
    Request.PUBLISH);305.4.2. 创建 Camel SIP Subscriber
复制链接链接已复制到粘贴板!
						在以下示例中,创建一个 SIP Subscriber 来接收发送到 
 的 SIP 事件发布程序"johndoe@localhost:5154"
					
- 使用名为 Subscriber 的 SIP Stack
- 使用名为 agent@localhost:5152 的 Presence Agent 用户注册
- 使用一个名为 evtHdrName 的基于 registry 的 eventHeader。evtHdrName 包含事件,该事件为 se to "Event_A"
- 使用一个名为 evtId 的基于 registry 的 eventId
Camel SIP 组件也附带了一个 Presence Agent,仅用于测试和演示目的。以上提供了实例化 Presence Agent 的示例。
请注意,Presence Agent 设置为用户 agent@localhost:5152,能够与 publisher 和 Subscriber 通信。它有一个与 publisher 和 Subscriber 不同的 SIP stackName。虽然它被设置为 Camel Consumer,但它实际上不会将任何消息与路由一起发送到端点 "mock:neverland"。