从整理几款sip phone,到简单修改播放声音文件,发现少了最基本的环境搭建及源码的认识,现在重新记录下。
1.sip简要介绍
这里提及一些sip相关的必要知识,方便对该协议有个整体的了解,同时也可以为后续相关的应用开发提供准备。更详细的内容可以参考对应的RFC文档(RFC3261等等)。sip(Session Initiation Protocol)会话初始协议,简单来说就是负责多媒体通信(两个或者多个终端)会话的建立、修改和终止,而且是一个应用层控制协议。可以看到它是不足以支撑完整的多媒体会话的,但它可以方便的通过与SDP(会话描述协议,协商采用的协议)、RTP(实时传输协议)等结合提供完整多媒体通信功能。后面在介绍这款Java sip phone(peers)的源码框架时会看到。
单就sip协议来说(RFC3261),sip协议的功能实现用户的注册,会话的邀请或者接受会话,会话参数服务的修改,会话的结束等(没有用官方的用户定位等功能描述,需要的可以自己查看),因此需要注册服务器、代理服务器实现用户注册,位置查找,进而实现会话邀请等sip消息(主要就是请求和响应两种)的转发,对应的客户端有UserAgent(包括UAC:UserAgent Client和UAS:UserAgent Server )来负责实现会话的邀请和响应等。
sip协议栈如下图所示,但据说只是逻辑实体,真正的实现上可能会有所重合的
SIP的最底层是语法和编码层(对应上图协议栈),其上是传输层(记住sip协议是应用层协议),传输层之上是事务层,再上是事务用户层;其中一个事务定义为UAC发送的一个请求报文和由这个请求报文所引起的所有由UAS发送的响应报文。事务层负责处理应用层的报文超时重传、定时器设置、报文排序、重复报文处理和响应报文与请求报文的匹配等等;事务用户层它描述了不同SIP实体在事务
1.sip简要介绍
这里提及一些sip相关的必要知识,方便对该协议有个整体的了解,同时也可以为后续相关的应用开发提供准备。更详细的内容可以参考对应的RFC文档(RFC3261等等)。sip(Session Initiation Protocol)会话初始协议,简单来说就是负责多媒体通信(两个或者多个终端)会话的建立、修改和终止,而且是一个应用层控制协议。可以看到它是不足以支撑完整的多媒体会话的,但它可以方便的通过与SDP(会话描述协议,协商采用的协议)、RTP(实时传输协议)等结合提供完整多媒体通信功能。后面在介绍这款Java sip phone(peers)的源码框架时会看到。
单就sip协议来说(RFC3261),sip协议的功能实现用户的注册,会话的邀请或者接受会话,会话参数服务的修改,会话的结束等(没有用官方的用户定位等功能描述,需要的可以自己查看),因此需要注册服务器、代理服务器实现用户注册,位置查找,进而实现会话邀请等sip消息(主要就是请求和响应两种)的转发,对应的客户端有UserAgent(包括UAC:UserAgent Client和UAS:UserAgent Server )来负责实现会话的邀请和响应等。
sip协议栈如下图所示,但据说只是逻辑实体,真正的实现上可能会有所重合的

SIP的最底层是语法和编码层(对应上图协议栈),其上是传输层(记住sip协议是应用层协议),传输层之上是事务层,再上是事务用户层;其中一个事务定义为UAC发送的一个请求报文和由这个请求报文所引起的所有由UAS发送的响应报文。事务层负责处理应用层的报文超时重传、定时器设置、报文排序、重复报文处理和响应报文与请求报文的匹配等等;事务用户层它描述了不同SIP实体在事务