第六章 传输层
Transport是用来通过网络发送/接收消息的。PJSIP的transport框架是可扩展的,这意味着程序可以自己的transport来传输消息。
传输层设计
类图
下图展示了transport层的各个实例之间的关系。
Transport Manager
Transport Manager(pjsip_tpmgr)管理所有的transport对象和工厂。它提供以下功能:
- 通过使用引用计数器和空闲的定时器管理transport的生命周期
- 管理transport工厂
- 从transport接收包,解析包并把SIP消息传给Endpoint
- 基于transport的类型和远端的地址,找到匹配的transport来给指定地点发送SIP消息
- 当不存在可用的transport来发送SIP消息时,动态创建transport
每个Endpoint只有一个transport manager。Transport manager通常是应用不可见的,应用需要使用Endpoint提供的函数。
Transport工厂
Transport工厂(pjsip_tpfactory)是用来创建与远端Endpoint的连接。这种类型的连接的一个例子就是TCP transport。每个目的地址需要创建一个TCP transport。
当transport manager检测到它需要为新的地址创建新的transport,它将会找到符合的transport工厂,并让工厂创建一个连接。
Transport
Transport对象用pjsip_transport结构表示。每个实例代表一个socket