SIP Client SIP Server
-------------------------register-------------------->
<-----------------401Unauthorize--------------
-------------------------register-------------------->
<----------------------200 ok------------------------
再看注册流程之前需要先了解几个名词
User-Agent 用户代理
用户代理是发送或接收SIP消息并管理SIP会话的逻辑网络端点。用户代理具有客户端和服务器组件。用户代理客户端(UAC)发送SIP请求。用户代理服务器(UAS)接收请求并返回SIP响应。与其他固定客户端和服务器角色的网络协议(例如,HTTP)不同,在网络协议中,Web浏览器仅充当客户端,而不充当服务器,SIP要求两个对等方都实现这两个角色。UAC和UAS的角色仅在SIP事务期间持续。
User Agent Client:用来发起SIP请求的客户程序。
User Agent Server: 收到SIP请求后负责与用户联系并代表用户回送响应的服务程序。该响应可以表示接受、拒绝或重定向请求消息。
请求消息类型包括: INVITE,ACK,OPTIONS,BYE,CANCEL 和 REGISTER 消息等
INVITE:用于邀请用户加入一个呼叫。
ACK:用于对请求消息的响应消息进行确认。
OPTIONS:用于请求能力信息。
BYE:用于释放已建立的呼叫。
CANCEL:用于释放尚未建立的呼叫。 REGISTER:用于向SIP网络服务器登记用户位置信息。
响应消息由状态码来区分,状态码包含三位整数,状态码的第一位用于定义响应类型,另外两位用于进一步对响应进行更加详细的说明,包括:1xx,2xx,3xx,4xx,5xx,6xx 1xx:临时响应,表示已经接收到请求消息,正在对其进行处理; 2xx:成功响应,表示请求已经被接收、处理并被成功接受 3xx:重定向响应,表示为完成请求消息需要采取进一步的行动 4xx:客户机错误,表示请求消息中包含语法错误或者SIP服务器不能完成对该请求消息的处理。 5xx:服务器错误,表示SIP服务器故障不能完成对正确消息的处理 6xx:全局故障,表示请求不能在任何SIP服务器上实现
具体的请参考:https://blog.csdn.net/keyanting_2018/article/details/81704833
SIP消息一般有起始行、消息头两部分组成。 起始行一般包含消息名称、URI、版本。 请求消息头至少包括From、To、CSeq、Call-ID、Max-Forwards、Via 六个头字段,它们是构建SIP消息基本单元 消息体一般采用SDP(Session Description Protocol)协议,会话描述协议
通过强大wirshark我们可以很清晰的看懂四步交互过程。
来源:CSDN
作者:NewSunRise
链接:https://blog.csdn.net/ak66366/article/details/104071418