携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第13天,点击查看活动详情
通过VoIP(IP电话)建立呼叫时,大多数情况下使用所谓的SIP协议。SIP(SessionInitiationProtocol)是一种信令协议,它通过SIP请求和相应的SIP响应在两个或多个参与者之间建立连接,参与者的终端设备通过它相互通信,从而发起呼叫的建立或终止。
SIP如何工作?
SIP是一种应用层协议,与HTTP等基于文本的应用层协议非常相似,它本身是不提供通信服务的;它在开放系统互连(OSI)通信模型的应用层中工作。
SIP是一种请求 - 响应协议,接收来自客户端的请求和来自服务器的响应。请求可以通过任何传输协议发送,例如UDP,SCTP或TCP。
SIP确定要用于会话的终端系统,通信媒体和媒体参数,以及被叫方是否同意参与通信。一旦确保这些,SIP就在通信的任一端建立呼叫参数,也处理呼叫转移和终止。
SIP请求
IP电话中使用的SIP请求一共有14个(前6个是基本请求):
- INVITE:邀请对方加入通话(发起会话)
- ACK:确认INVITE请求
- BYE:结束会话
- CANCEL:取消挂起的请求
- REGISTER:向服务器传输参与者的位置信息(主机名、IP地址)
- OPTIONS:提供有关呼叫中涉及的SIP电话支持的功能的信息
- PRACK:作为请求的初步确认
- SUBSCRIBE:订阅某个事件发生时的通知
- NOTIFY:发生状态变化时发送通知(事件监控)
- PUBLISH:主动向服务器传输状态或事件信息
- INFO:在通话过程中传输控制和监控信息
- REFER:请求接收者转发现有连接
- MESSAGE:发送即时消息
- 更新:更改通话状态
SIP响应
SIP响应是对SIP请求的响应。有六类SIP响应,有许多响应选项:
1xx:提供信息性消息(180表示,例如,接收者的振铃)
2xx:报告请求成功
3xx:报告重定向
4xx:表示请求错误
5xx:通知服务器错误
6xx:报告一般错误