第 305 章 SIP 组件
从 Camel 版本 2.5 开始提供
Camel 中的 sip 组件是一个通信组件,基于 Jain SIP 实施(在 JCP 许可证下可用)。
会话初始协议(SIP)是一种 IETF 定义信号协议,广泛用来控制多媒体通信会话,如语音和视频会议,如语音和视频调用互联网协议(IP)。SIP 协议是独立于底层传输层的应用程序层协议,它可以在传输控制协议(TCP)、用户数据报协议(UDP)或流控制传输协议(SCTP)上运行。
Jain SIP 实施仅支持 TCP 和 UDP。
Camel SIP 组件 只支持 SIP Publish 和 Subscribe 功能,如 RFC3903 - Session Initiation Protocol (SIP) Extension for Event所述
此 camel 组件支持生成者和消费者端点。
Camel SIP Producers (Event publishers)和 SIP Consumers (Event Subscribers)使用名为 SIP Presence Agent (有状态代理)的中间实体(有状态代理实体)传达事件和状态信息。
对于基于 SIP 的通信,带有侦听器的 SIP 堆栈 必须在 SIP Producer 和 Consumer 上实例化(如果使用 localhost,则使用单独的端口)。这是为了支持在通信期间 SIP 堆栈之间交换的握手和确认功能所必需的。
Maven 用户需要将以下依赖项添加到这个组件的 pom.xml
中:
<dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-sip</artifactId> <version>x.x.x</version> <!-- use the same version as your Camel core version --> </dependency>
305.1. URI 格式
sip 端点的 URI 方案如下:
sip://johndoe@localhost:99999[?options] sips://johndoe@localhost:99999/[?options]
此组件支持 TCP 和 UDP 的制作者和消费者端点。
您可以在 URI 中附加查询选项,格式为 ?option=value&option=value&…