前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >生活中的信令和媒体

生活中的信令和媒体

作者头像
Seven Du
发布2020-12-21 15:02:42
1.3K0
发布2020-12-21 15:02:42
举报

什么是信令什么是媒体呢?有人问。

这还不简单,咔咔咔,我能讲一小时。但对于非技术人员来讲,我应该怎么解释呢?讲个故事吧。

由于我这几年比较专注做FreeSWITCH,因此,有人邀请我去北京讲课。我的家在烟台,所以要坐飞机从烟台去北京。我平常比较忙,以下是对话内容发生在客户那边的负责人和我的秘书之间:

  • 您好,不知道杜老师什么时候有时间来给我们讲讲FreeSWITCH?
  • 猴年马月(实际上快到了,听说是2016年6月5日(芒种)至7月3日(小暑前夕),就是传说中的『猴年马月』!)。
  • 他坐飞机还是高铁?我好安排买票。
  • 飞机。
  • 好的,稍等。.... 杜老师的机票已经买好了,航班号XXXX,首都机场3号航站楼,到时候有人接。
  • 好的,谢谢,我告诉杜老师。

上面的对话大家应该都很容易能理解吧。其实在上面,除了媒体和信令外,还有两个其它的概念。我们先不说,先卖个关子。

下面我们来看一个SIP通话。

代码语言:javascript
复制
Bob               Alice
|                     |
|    INVITE Alice@example.com
|-------------------->|
|    100 Trying       |
|<--------------------|
|    180 Ringing      |
|<--------------------|
|    200 OK           |
|<--------------------|
|    ACK              |
|-------------------->|
|                     |
|<======RTP==========>|
|                     |
|    BYE              |
|<--------------------|
|    200 OK           |
|-------------------->|
|                     |

在上面的SIP通话中。Bob给Alice打电话。

首先,Bob拿起话机拨号,Bob的话机发送INVITE消息给Alice,说Alice,咱俩说说话...

Alice的话机收到后,跟Bob的话机说,稍等 … 100 Trying

Alice的话机这时振铃,叮铃铃 … 同时,它给Bob的话机回一个消息 180 Ringing

Bob的话机收到180后,开始给Bob播放回铃音嘟嘟嘟 … 告诉Bob,再等等,Alice的话机已经振铃了

Alice听到后,接起电话,这里Alice的话机给Bob的话机发一个消息,200 OK。表示,Alice已经接听了

Bob的话机收到200 OK消息后,停止播放回铃音,这时候,Alice和Bob就可以通话了。

Alice和Bob通话的内容是通过电话线传输的,通话的内容叫媒体(Media),而电话线其实是一个传输媒介或载体,叫Transport或Carrier。

好吧,现在我们知道什么是媒体了。那么,上面罗嗦了一大堆就叫做信令。因此,如果没有信令,Alice和Bob就无法通话,可见,信令是为了通话建立服务的。它主要是通过一系列的消息,完成一个通话的建立。而这一系列的消息,就叫做信令。

当然,挂机后也要有信令(BYE)。

信令的传输是在两个话机之间发生的。这两个话机,分别代表Alice和Bob,叫做UA(User Agent),也就是叫用户代理。

那么,这些跟我们上面讲的杜老师讲课的故事有什么关系呢?

关系大着呢。我们对比一下。

我们把杜老师当作媒体。因为对方是想把杜老师请过去。而SIP通话是把话音传过去,所以话音是媒体,杜老师是媒体。

那么,之前邀请杜老师的那些聊天消息就是信令。这些信令都是为了把杜老师请过去这个目标服务的。

传输媒体的媒介或载体是什么呢?当然,是飞机。

UA是谁?就是是客户那边的负责人和我的秘书。

一切都是来源于生活。

生活如此美好,我们再深入研究下SIP信令。下面是一个典型的INVITE消息:

代码语言:javascript
复制
INVITE sip:9196@192.168.7.6 SIP/2.0
Via: SIP/2.0/UDP 192.168.7.6:48808;branch=z9hG4bK-d8754z-eb76c76409fc5100-1---d8754z-;rport
Max-Forwards: 70
Contact: <sip:1000@192.168.7.6:48808>
To: <sip:9196@192.168.7.6>
From: "1000"<sip:1000@192.168.7.6>;tag=bfdeeb5b
Call-ID: ZDQ5ZTYyMDYyNmUxOTlhYzNjNTg3NTEyOGQ4MzJiZjc
CSeq: 1 INVITE
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO
Content-Type: application/sdp
Supported: replaces
User-Agent: Bria 3 release 3.5.5 stamp 71243
Content-Length: 208

v=0
o=- 1465047960147349 1 IN IP4 192.168.7.6
s=Bria 3 release 3.5.5 stamp 71243
c=IN IP4 192.168.7.6
t=0 0
m=audio 59108 RTP/AVP 0 8 101
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=sendrecv

其中,第一行 INVITE 表示请杜老来讲课。9196相当于杜老师的电话号码,@后面是IP地址,相当于我家或办公室的地址吧。

Via: SIP/2.0/UDP表示信令消息是用什么承载的,除此之外还有TCP,WS(Websocket)等。可以理解为北京负责人跟我的秘书是用微信聊天还是QQ或电话沟通的。

From一行,是说明这条消息的来源,可以理解成北京那边的号码是1000。主叫号码。

To还是9196,杜老师的号码,被叫号码。User-Agent是说明北京那边用户代理的型号,比方男秘书还是女秘书,女性的名字等。

Content-Type更进一步说明消息的内容,可以理解成行程安排。

v=0开始,是真正的行程安排。

c=IN IP4 192.168.7.6这一行,是说明媒体要送达的IP地址,可以理解成北京首都机场。IP4可以理解成做飞机,如果是IP6就代表坐火车。

m=audio 59108 RTP/AVP 0 8 101 中的59108代表媒体要送达的端口号,可以理解成第三航站楼的某个出口,接机的人就在那里等着。

RTP/AVP代表什么呢?头等舱或经济舱吧。

后面的0 8 101其实约定媒体编码的类型,也是一个暗号,比方告诉说接机的人和杜老师都要拿一把雨伞(在这个特殊的日子我忽然想到了这个词,请不要多想)方便互相认识。

好吧,一个SIP信令,就能把杜老师骗到北京去了。

SIP的全称是Session Initiation Protocol,即会话初始协议。以后,邀请我讲课请用SIP :)。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeSWITCH中文社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档