305.4. 将消息发送到 SIP 端点
305.4.1. 创建 Camel SIP publisher 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
在以下示例中,创建了一个 SIP publishers,将 SIP Event publications 发送到
用户 "agent@localhost:5152"。这是 SIP Presence Agent 的地址,它充当 SIP publisher 和 Subscriber 之间的代理
- 使用名为 client 的 SIP Stack
- 使用名为 evtHdrName 的基于 registry 的事件标头
- 使用基于 registry 的 eventId,名为 evtId
- 从将 Listener 设置为 user2@localhost:3534 的 SIP 堆栈
- 发布的事件是 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 Event publications 用户 "johndoe@localhost:5154"
- 使用名为 Subscriber 的 SIP Stack
- 使用名为 agent@localhost:5152 的 Presence Agent 用户注册
- 使用名为 evtHdrName 的基于 registry 的事件标头。evtHdrName 包含事件,其 se to "Event_A"
- 使用基于 registry 的 eventId,名为 evtId
Camel SIP 组件也附带一个 Presence Agent,它仅用于测试和演示目的。上面提供了一个实例化预备代理的示例。
请注意,Presence Agent 设置为一个用户 agent@localhost:5152,能够同时与 publisher 和 Subscriber 进行通信。它一个独立的 SIP stackName 与 publisher 和 Subscriber 不同。虽然它被设置为 Camel Consumer,但它实际上不会向端点 "mock:neverland" 发送任何信息。