FreeSWITCH 基础

【1】FreeSWITCH 是什么?

FreeSWITCH是一个开源的电话交换平台。

世界上第一个跨平台的、伸缩性极好的、免费的、多协议的电话软交换平台。

从技术上讲,FreeSWITCH是一个B2BUA。

FreeSWITCH是一个背靠背的用户代理,用来帮助通信的双方进行实时的语音视频通信。

【2】FreeSWITCH背靠背用户代理

(1)代理服务器Proxy Server

BobAlice是经人介绍认识的,而他们还不熟悉,Bob想请Alice吃饭就需要一个中间人(M)传话,而这个中间人就叫代理服务器。

(2)重定向服务器Redirect Server

它以类似于这样的方式工作──中间人M告诉Bob,我也不知道Alice在哪里,但我爱人知道,要不然我告诉你我爱人的电话,你直接问她吧,我爱人叫W

这样,M就成了一个重定向服务器(把Bob对他的请求重定向到他的爱人,这样Bob接下来要直接联系他的爱人),而他的爱人W是真正的代理服务器。

这两种服务器都是UAS,它们主要是提供一对欲通话的UA之间的路由选择功能。

(3)注册服务器Register Server

试想这样一种情况:Alice还是个学生,没有自己的手机,但它又希望Bob能随时找到她。于是

当她在学校时就告诉中间人M说她在学校,如果有事找她可以打宿舍的固定电话;

如果她要回家,也通知M说有事打家里电话;

或许某一天她要去姥姥家,也要把她姥姥家的电话告诉M

总之,只要Alice换一个新的位置,它就要向M重新“注册”,以让M能随时找到她,这时候M就相当于一个注册服务器。

(4)背靠背用户代理(Back-to-Back UAB2BUA)。

需要指出,其实RFC 3261并没有定义B2BUA的功能,它只是一对UASUAC的串联。

FreeSWITCH就是一个典型的B2BUA,为了理解B2BUA,我们来看上述故事的另一个版本。MW是一对恩爱夫妻。M认识BobW认识Alice

MW有意撮合两个年轻人,但见面时由于两人太腼腆而互相没留电话号码。

事后Bob想知道Alice对他感觉如何,于是打电话问MM不认识Alice,就转身问爱人W(注意这次M没有直接把W的电话给Bob)。

W紧接着打电话给AliceAlice说印象还不错,W就把这句话告诉MM又转过身告诉Bob

这样,MW一个面向Bob,一个对着Alice,他们两个合在一起,称为B2BUA

其实这里UACUAS的概念也不是那么重要,重要的是要理解这个背靠背的用户代理。

因为事情还没有完,Bob一听说Alice对他印象还不错,开心得不得了,便想请抽空请Alice吃饭,他将这一想法告诉MM告诉WW又告诉Alice

然后Alice问去哪里吃啊,W又只好问MM再问Bob……在这对年轻人挂断电话之前,MW只能“背对背”不停地工作。

从图B2BUA可以看出,四个人其实全是UA

当然,虽然FreeSWITCHB2BUA,但也可以经过特殊的配置,实现一些代理服务器和重定向服务器的功能,甚至也可以从中间劈开,两边分别作为一个普通的UA来工作。

这没有什么奇怪的,在SIP世界中,所有UA都是平等的。具体到实物,则MW就组成了实现软交换功能的交换机,它们对外说的语言是SIP,而在内部它们使用自己家的语言沟通。

BobAlice就分别成了我们常见的软电话,或者硬件的SIP话机。

 

Good Good Study, Day Day Up.

顺序 选择 循环 总结

posted @ 2019-05-29 22:31  kaizenly  阅读(2505)  评论(0编辑  收藏  举报
打赏