You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
opensips/ch1/sip-overview/
SIP是VoIP的基石,相当于HTTP协议在Web服务器里的角色。如果你熟悉HTTP协议,那么你可以在SIP协议中找到许多和HTTP中熟悉的东西,例如请求头,请求体,响应码之类概念,这是因为SIP协议的设计,很大程度上参考了HTTP协议。
如果想要学习VoIP,那么SIP协议是你务必掌握敲门砖。
拓扑隐藏:隐藏所有内部网络的信息。 媒体流管理:设置语音流编码规则,转换等 增加能力:例如Refer, 3CPP 维护NAT映射: 访问控制 媒体加密:例如外部网络用SRTP, 内部网络用RTP 3. sip注册过程 下面简化注册逻辑,省略了验证和过期等字段:
对于分机来说,注册服务器的地址是需要设置的 分机向注册服务器发请求,说:你好,注册服务器,我是8005,我的地址是200.180.1.1,以后你可以用这个地址联系我。 注册服务器回复:好的,注册成功 4. sip服务器的类型 4.1. 代理服务器 4.2. 重定向服务器 4.3. 背靠背UA服务器 背靠背UA服务器有两个作用
隐藏网络拓扑结构 有些时候,路由无法到达,只能用背靠背UA服务器 5. 常用sip请求方法 比较常用的是下面的
常用的几个是:register, invite, ack, bye, cancel。除了cancel和ack不需要认证外,其余的请求都需要认证。 register自不必说,invite和bye是需要认证的。
对于我们不信任的ua,我们不允许他们呼叫。对于未认证的bye,也需要禁止。后者可以防止恶意的bye请求,挂断正常的呼叫。
invite除了re-invite的情况,其余的都属于初始化请求,需要着重关心的。而对于bye这种序列化请求,只需要按照record-route去路由。
从INVITE请求到最终的响应(注意1xx不是最终响应,非1xx的都是最终响应)之间,称为事务。一个事务可以带有多个消息组成,并经过多个ua。 ack请求比较特殊,但是ack不是事务。如果被叫接通后,超时未收到主叫方的ack, 会怎样?是否会再次发送200OK tcp三次握手建立连接,sip:invite->200ok->ack,可以理解为三次握手建立对话。 bye请求和200ok算作一个事务 dialog建立的前提是呼叫接通,如果呼叫没有接通,则没有dialog。 dialog可以由三个元素唯一确定。callId, from字段中的tag, to字段中的tag。 10.
https://wdd.js.org/opensips/ch1/sip-overview/
Beta Was this translation helpful? Give feedback.
All reactions