成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Freeswitch集群在智能外呼平臺中的應用

原創 精選
開源
Freeswitch是一個開源的電話交換平臺。官方給它的定義是——世界上第一個跨平臺的、伸縮性極好的、免費的、多協議的電話軟交換平臺。

前言

兩年來,新冠疫情給我們的工作生活帶來了巨大影響,社會各界都面臨著嚴峻的挑戰。汽車之家敏銳的洞察到降低人力成本,篩選高優客戶、提高意向成交率已經成為各主機廠的迫切需求,因此,智能外呼平臺,應運而生。

通過對市面上的幾款外呼平臺調研,發現有很多業務場景并不支持,不僅可擴展性差、而且維護成本高,所以為了更好地承接主機廠業務,滿足客戶定制化需求,決定研發自己的智能外呼平臺。

常見的外呼平臺都是基于VoIP(Voice over Internet Protocol,縮寫為VoIP)實現的,VoIP是基于IP的語音傳輸,是一種語音通話技術,經由網際協議(IP)來達成語音通話與多媒體會議。

VoIP電話

不同于傳統的電話,VoIP是一種新興的電話通信方式。它是一種把語音技術集成在IP協議中,通過互聯網進行傳輸的一種全新的通信方式,其成本遠低于傳統電話。

  • VoIP電話優點

圖片


  • VoIP平臺的選擇

目前國內比較流行和擁有大量活躍用戶的是Freeswitch(https://freeswitch.org/)和 Asterisk(http://www.asterisk.org/)

      下圖為二者的簡單對比:

      圖片

結論:基于以上調研和對比,發現Freeswitch的資料相對完備,學習成本低,并且已有較多的成功案例,很多外呼供應商都采用Freeswitch作為軟交換平臺。因此,Freeswitch也 將是我們更優的選擇。

初識Freeswitch

Freeswitch是一個開源的電話交換平臺。官方給它的定義是——世界上第一個跨平臺的、伸縮性極好的、免費的、多協議的電話軟交換平臺。在Freeswitch出現之前,軟交換技術基本上掌握在少數通信企業,集成在硬件設備上整機出售,價格昂貴。需要大量的專業積累才能入門,使用者基本上偏運維,無法掌握實質的技術。

當Freeswitch以BypassMedia(旁路模式:此模式下freeswitch更像是一個信令proxy,媒體不會通過freeswitch,sdp消息體不做修改,沒有錄音,二次撥號等功能)運作時,它和其它VoIP通信原理一致,同樣是點到點的實時通信。負責通話雙方的媒體協商,交換RTP端口,編解碼等信息,詳細的SIP協議或協商流程可參見:RFC3261文檔,源碼及編譯安裝可以參見Freeswitch官網。

圖片

  • Freeswitch運行機制

Freeswitch內部使用線程模型來處理并發請求,每個連接都在單獨的線程中進行處理,不同的線程間通過Mutex互斥訪問共享資源,并通過消息和異步事件等方式進行通信。這種架構能處理很高的并發, 并且在多核環境中運算能均勻地分布到多顆CPU或單CPU的多個核心上。Freeswitch的核心非常短小精悍,這也是其保持穩定的關鍵。絕大部分應用層的功能都在外圍的模塊中實現。外圍模塊是可以動態加載(以及卸載)的,在實際應用中可以只加載用到的模塊。外圍模塊通過核心提供的Public API與核心進行通信,而核心則通過回調(或稱鉤子)機制執行外圍模塊中的代碼。

圖片

  • 開發模式的選擇

Freeswitch的開發模式有兩種:

  1. 面向服務器開發,這種開發模式是基于腳本內嵌的方式,主要開發lua腳本或者使用C語言開發mod,開發人員的學習成本高,不易維護,腳本之間無法復用;
  2. 面向客戶端開發,Freeswitch支持多種語言,開發人員可以使用自己熟悉的開發語言(java)。通過調用核心API的方式,可以控制整個會話流程。

綜上所述:雖然lua腳本或C語言的執行效率更高,但是客戶端的開發模式更加方便定制化開發,易于開發,況且把復雜的業務邏輯放在Freeswitch服務端不利于后續的維護和擴展。面向客戶端開發有2種連接模式:內連(Inbound)模式和外連(Outbound)模式。這里我們僅說下內連模式

圖片

在內連模式下,Freeswitch作為一個服務器,而用戶的程序可以作為一個TCP Client主動連接到Freeswitch上。同樣,Freeswitch允許多個客戶端連接。每個客戶端連接上來以后,可以訂閱Freeswitch的內部事件,實現可定制化開發。

例如:電話轉接、定制化彩鈴等都可以通過內聯模式實現控制。

  • Freeswitch下基于sip協議的呼叫流程

圖片

下面給出了上述調用流程的逐步解釋

  • 發送到代理服務器的INVITE請求負責啟動會話。
  • 代理服務器立即向呼叫者(Alice)發送 100 Trying 響應以停止INVITE請求的重傳。
  • 代理服務器在位置服務器中搜索Bob的地址。在獲得地址之后,它進一步轉發INVITE請求。
  • 此后,由Bob產生的 180響鈴(臨時響應)被返回給Alice。
  • Bob在接聽電話后立即生成 200 OK 響應。Alice收到 200 OK 時,Bob會收到來自Alice的 ACK 。
  • 同時,會話建立并且RTP分組(對話)開始從兩端流動。
  • 在對話之后,任何參與者(Alice或Bob)可以發送 BYE 請求以終止會話。BYE 直接從Alice到Bob繞過代理服務器。
  • 最后,Bob發送 200 OK 響應以確認BYE并且會話終止。
  • 在上述基本呼叫流程中,三個事務(標記為1,2,3)可用。
    完整的呼叫(從INVITE到200 OK)稱為 Dialog 。
  • Freeswitch主要配置文件

Freeswitch的核心底層代碼是由C語言編寫,如果需要重構Freeswitch核心功能、基于Freeswitch二次開發軟交換,或者針對Freeswitch開發其他自定義模塊,則需要在符合Freeswitch開發規范的情況下進行改造。而使用Freeswitch或者針對Freeswitch做esl應用端開發,則基本不需要更改Freeswitch底層代碼邏輯,Freeswitch是通過提供基于靜態xml的文件配置方式,來實現對Freeswitch所有功能的配置和調度控制。

圖片

撥號計劃(dialplan)是Freeswitch配置文件中至關重要的一部分,它的主要作用就是對電話進行路由。就是當一個用戶撥號時,對用戶所撥的號碼進行分析,進而決定下一步該做       什么。如:可以撥打9197進行接通音樂校驗,撥打1001不在線進入語音信箱留言等,通過撥號計劃可以達到領編碼進行功能的擴展。

由于Freeswitch知識點較多,每一個知識點展開討論都比較大,以上篇幅僅把Freeswitch使用過程中的主要知識點做了介紹。接下來講解下Freeswitch服務中心的演化構建。

Freeswitch 服務中心的演變

  • 單Freeswitch服務(1.0)
    在智能外呼服務從0到1的孵化過程中,如何保證各個功能點正確實現,業務順利推進是首先需要解決的核心問題。一個簡單的Freeswitch單體架構,是可以滿足智能機器人的外呼通話要求。

圖片

外呼機器人撥打流程:

  1. Freeswitch服務啟動成功;
  2. 建立私有分機號,作為機器人賬號;
  3. 機器人通過撥號規則調用Freeswitch;
  4. Freeswitch接收到撥號后調用配置的網關,把要呼叫的號碼經防火墻后,發送給線路運營商;
  5. 線路商收到呼叫請求后,連接用戶手機號,最終建立外呼機器人到用戶手機的通信通道。

單體架構問題:

    1. 存在單點故障風險,從而會導致整個外呼系統癱瘓;2. 并發能力有限。
  • 負載均衡(2.0)

隨著業務的的增長,外呼量會越來越大,對服務的穩定性要求也越來越高,對Freeswitch的高可用集群的訴求也被提上日程。

Freeswitch的高可用部署方式有兩種:主備切換和負載均衡,官方文檔介紹的主備切換部署是采用Corosync & Pacemaker,負載均衡采用前置opensips。

為了解決1.0 版本所面臨的性能不足和單點故障風險,引入opensips前置于Freeswitch服務作為信令負載。

圖片

 Freeswitch負載均衡架構圖如上圖所示,使用opensips服務作為負載控制端。

 工作流程:

  1. 外呼請求通過opensips服務動態分配可用的Freeswitch服務;
  2. Freeswitch接入mysql數據庫,存儲雙邊通道信息,共用同一份Session數據,保持通話;
  3. 客戶端與Freeswitch服務直接建立連接;
  4. 外呼服務接收到轉人工請求,直接通過ESL調用App命令進行撥號路由轉接。

        當我們的服務中心需要提供給眾多的主機廠業務一起使用時候,需要萬級甚至十萬級同時并發通話時,上述方式很難支持。

        新的的問題緊隨而至:1.  每新增一臺服務器都需要和線路商對接,增加了對接的難度;2.  每新增一臺服務器,保持端口一致的情況下,需要占用一個公網ip地址。

  • 匯接局模式+負載均衡(3.0)
    上述2.0方案中,隨著外呼業務量的增多,并發量的增大,相應需要部署的Freeswitch服務也會越來越多,從而導致公網ip使用成本上升。為了解決上述問題,進一步提升并發量,引入匯接局+負載均衡的模式。

圖片

核心節點:

  • fs-router 路由中心
  • fs-media 媒體交換中心

fs-router路由中心主要有2個功能點,其一是:撥號尋址,線路對接。其二是:會話中間消息路由的轉發。

fs-media媒體交換中心主要作為媒體(通話語音)傳遞,以及ESL通過Api和命令的方式對fs-media的調用。工作流程:

  1. 外呼請求通過opensips服務動態分配可用的freeswitch服務;
  2. fs-media接入mysql數據庫,存儲雙邊通道信息,共用同一份Session數據,以便保持通話;
  3. fs-mediaA/B(媒體終結服務) 經撥號路由轉發給fs-router,由fs-router和線路商進行sip信令的交互;
  4. 通信建立成功后由fs-mediaA/B直接和線路商進行語音流傳遞;
  5. 客戶端通過fs-mediaA/B和用戶進行通話。

匯接局+負載均衡模式的優勢:

  1. 匯接局模式,解決公網ip的占用問題;
  2. 統一出局,簡化線路商對接;
  3. 方便擴展,簡化新增服務配置;
  4. 由于集群式的部署,可以通過撥號方式的配置,針對不同的租戶,分配到不同的fs-media上,做到租戶之間的物理隔離。

總結

從第一次語音傳輸在1876年使用振鈴電路實現,到現在通過網絡來實現的新型電話通信,歷經了100多年,每一次通信的革新都離不開科技的進步。VoIP網絡電話的興起,不僅預示著通信方式的革新,而且標志著新一代呼叫中心成為了電話通信的寵兒。隨著Freeswitch服務中心的持續建設,通信業務層面的價值會逐步提升,打破了交換技術掌握在少數通信企業的壁壘,降低了接入難度和使用成本。從1.0的單一服務到3.0的匯接局+負載均衡,在架構升級后,Freeswitch服務中心不僅滿足高并發,多租戶的業務場景,而且還保證了服務的高可用、簡化了對接流程、方便了服務的擴展。

  • 展望

新一代的呼叫中心更多地融入了媒體渠道與通信渠道。未來,在業務層面,Freeswitch服務中心不僅適應于智能外呼平臺,同時可滿足其他業務場景的使用。如:人機協同、在線客服、多人會議、視頻通話、排隊等待來電呼入等諸多場景。在技術層面,不僅要考慮性能和可用性的提升,而且還要兼顧其通話、視頻等質量的提高。通過多fs-router(路由中心),進一步提高它的性能和可用性。最后,追隨技術的腳步,迎接新的挑戰。

文章參考:

  1. SIP 教程:https://www.w3cschool.cn/session_initiation_protocol/
  2. Freeswitch權威指南
責任編輯:龐桂玉 來源: 之家技術
相關推薦

2010-08-06 10:16:55

RIP協議Linux

2018-04-19 10:39:45

大數據資源控制大數據平臺

2010-05-14 14:07:38

VMwareXen

2010-05-20 13:30:26

MySQL代碼

2011-09-05 15:09:06

Android平臺Phonegap

2009-06-22 15:39:45

JSFGlassFish管理

2010-10-09 15:40:19

CookieJ2ME

2014-05-09 15:43:39

移動安全Android安全

2017-11-28 08:47:19

TensorFlow區塊鏈大數據分析

2009-11-25 08:52:07

Web應用IE應用

2018-06-29 10:08:55

AI、人工智能、云訊、

2010-07-05 16:25:13

IPX SPX協議

2023-10-16 18:51:04

ClickHouse大數據

2010-07-22 08:42:04

Eclipse平臺中P

2010-05-04 13:41:04

Unix平臺

2016-08-22 15:23:23

框架平臺智能應用

2020-03-22 15:49:27

Kafka馬蜂窩大數據平臺

2020-01-03 09:53:36

Kafka集群優化
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 81精品国产乱码久久久久久 | 在线色网址| 亚洲精品日本 | 天堂综合网久久 | 欧美精品一区二区在线观看 | 国产精品一区免费 | 欧美激情一区二区 | 99精品国产一区二区三区 | 男女污污动态图 | 国产亚洲成av人片在线观看桃 | 日韩一区二区免费视频 | 91中文在线观看 | 日韩福利视频 | 午夜视频在线免费观看 | 粉嫩一区二区三区四区公司1 | 色综合久久伊人 | 日韩福利片 | 91热在线 | 一级毛片视频在线观看 | www国产亚洲精品久久网站 | 久久日韩粉嫩一区二区三区 | 在线观看成人小视频 | 最新中文字幕久久 | 亚洲九色| 精品一区二区三区四区外站 | 国产欧美在线视频 | 久久国产精品无码网站 | 国产精品小视频在线观看 | 精品在线播放 | 在线观看亚洲精品视频 | 日本一区二区电影 | 日日夜夜91| 国产在线观看免费 | 欧美lesbianxxxxhd视频社区 | 国产精品三级 | 国产不卡一区在线观看 | 欧美日韩网站 | 黄色毛片免费 | 久久亚洲国产 | 黄色网毛片 | 欧美日韩精品免费 |