序文過去2年間、新型コロナウイルス感染症(COVID-19)のパンデミックは私たちの仕事と生活に甚大な影響を与え、社会のあらゆる分野が深刻な課題に直面しています。Autohomeは、人件費の削減、優良顧客の選別、そしてコンバージョン率の向上がOEMにとって喫緊の課題となっていることを痛感しました。そこで、インテリジェントアウトバウンドコールプラットフォームが誕生しました。 市場に出回っている複数のアウトバウンドコールプラットフォームを調査した結果、多くのビジネスシナリオがサポートされておらず、拡張性が低く、メンテナンスコストが高いことが判明しました。そこで、OEMビジネスをより適切に遂行し、顧客のカスタマイズされたニーズに応えるため、独自のインテリジェントアウトバウンドコールプラットフォームを開発することを決定しました。 一般的なアウトバウンドコールプラットフォームは、VoIP(Voice over Internet Protocol)に基づいています。VoIPは、インターネットプロトコル(IP)を使用して音声通話やマルチメディア会議を実現する音声通信技術です。 VoIP電話VoIPは従来の電話とは異なり、電話通信の新たな形態です。音声技術をIPプロトコルに統合し、インターネット経由で伝送する新しい通信方式であり、従来の電話よりもはるかに低コストです。
現在、中国で最も人気があり、広く使用されている VPN は、Freeswitch (https://freeswitch.org/) と Asterisk (http://www.asterisk.org/) です。 以下の画像は、2 つの簡単な比較を示しています。 結論:上記の調査と比較に基づき、Freeswitchは比較的充実したドキュメント、容易な学習曲線、そして多数の成功事例を有していることがわかりました。多くのアウトバウンドコールプロバイダーがソフトスイッチプラットフォームとしてFreeswitchを使用しています。したがって、Freeswitchは私たちにとってより良い選択肢となるでしょう。 Freeswitchの第一印象Freeswitchはオープンソースの電話交換プラットフォームです。公式には、世界初のクロスプラットフォーム、高度なスケーラビリティ、無料のマルチプロトコル・ソフトスイッチ・プラットフォームと定義されています。Freeswitchが登場する以前は、ソフトスイッチ技術は少数の通信会社によって主に管理され、ハードウェア機器に統合され、高額なユニットとして販売されていました。導入には高度な専門知識が必要であり、ユーザーは主に運用と保守に集中し、コアとなる技術的側面を理解することができませんでした。 FreeswitchがBypassMediaモード(このモードでは、Freeswitchはシグナリングプロキシのように動作し、メディアはFreeswitchを通過せず、SDPメッセージ本体は変更されず、録音、二次ダイヤルなどの機能もありません)で動作する場合、他のVoIP通信方式と同じ原理で動作し、ポイントツーポイントのリアルタイム通信を提供します。BypassMediaモードは、2者間のメディアネゴシエーション、RTPポートの交換、情報のエンコード/デコードなどを処理します。SIPプロトコルまたはネゴシエーションの詳細な手順については、RFC3261ドキュメントを参照してください。ソースコードとコンパイル/インストール手順は、Freeswitchの公式ウェブサイトでご覧いただけます。
Freeswitchは内部的にスレッドモデルを使用して同時リクエストを処理します。各接続は個別のスレッドで処理され、異なるスレッドはミューテックスを介して共有リソースにアクセスし、メッセージと非同期イベントを介して通信します。このアーキテクチャは高い同時実行性に対応し、マルチコア環境では複数のCPUまたは単一CPUの複数のコアに均等に計算を分散できます。Freeswitchのコアは非常にコンパクトで効率的であり、それが安定性の鍵となっています。アプリケーション層機能のほとんどは周辺モジュールに実装されています。これらの周辺モジュールは動的にロード(およびアンロード)できるため、実際には必要なモジュールのみをロードできます。周辺モジュールはパブリックAPIを介してコアと通信し、コアはコールバック(またはフック)を介して周辺モジュール内のコードを実行します。
Freeswitch には 2 つの開発モードがあります。
結論として、LuaスクリプトやC言語は実行効率が高いものの、クライアントサイド開発の方がカスタマイズが容易で実装も容易です。さらに、複雑なビジネスロジックをFreeswitchサーバーに配置すると、将来のメンテナンスや拡張に支障をきたします。クライアントサイド開発には、インバウンドとアウトバウンドの2つの接続モードがあります。ここではインバウンドモードについてのみ説明します。 接続モードでは、Freeswitchはサーバーとして機能し、ユーザープログラムはTCPクライアントとしてFreeswitchにアクティブに接続できます。同様に、Freeswitchは複数のクライアントからの接続を許可します。接続された各クライアントはFreeswitchの内部イベントをサブスクライブできるため、カスタマイズされた開発が可能になります。 たとえば、通話転送やカスタマイズされた呼び出し音は、インライン モードを通じて制御できます。
以下では、上記の呼び出しプロセスを段階的に説明します。
Freeswitch のコアコードは C で記述されています。Freeswitch のコア機能をリファクタリングしたり、Freeswitch をベースにしたソフトスイッチを開発したり、Freeswitch 用のカスタムモジュールを開発したりする場合は、Freeswitch の開発仕様に準拠しながら変更を加える必要があります。ただし、Freeswitch の使用や Freeswitch 用の ESL アプリケーションの開発では、通常、基盤となるコードロジックを変更する必要はありません。Freeswitch は、すべての機能の設定とスケジュール制御を、静的な XML ベースのファイル構成を通じて提供します。 ダイヤルプランはFreeswitch設定ファイルの重要な部分であり、主な機能は通話のルーティングです。ユーザーがダイヤルすると、ダイヤルプランは番号を分析し、次のステップを決定します。例えば、音楽の確認のために9197にダイヤルしたり、ユーザーがオフラインの場合はボイスメールメッセージを残すために1001にダイヤルしたりすることができます。ダイヤルプランは、コード割り当てを通じて機能を拡張するためにも使用できます。 Freeswitch には多くのトピックが含まれており、それぞれについて詳細な議論が必要となるため、上記では Freeswitch の使用に関する主要なポイントのみを取り上げました。次のセクションでは、Freeswitch サーバーセンターの進化と構築について説明します。 フリースイッチサービスセンターの進化
発信コールロボットのダイヤルプロセス:
モノリシックアーキテクチャの問題:
ビジネスが拡大するにつれて、発信コール量が増加し、サービスの安定性に対する要件も高くなるため、高可用性の Freeswitch クラスターの必要性が議題に上がりました。 Freeswitchは、マスター・スレーブフェイルオーバーと負荷分散という2つの高可用性デプロイメント方式を提供しています。公式ドキュメントでは、CorosyncとPacemakerを使用したマスター・スレーブフェイルオーバーのデプロイメントと、フロントエンドのopensipsを使用した負荷分散について説明しています。 バージョン 1.0 のパフォーマンス制限と単一障害点のリスクに対処するために、Freeswitch サービスのシグナリング負荷転送として OpenSIPS が導入されました。 上の図は、OpenSIPS サービスを負荷制御エンドポイントとして使用する Freeswitch 負荷分散アーキテクチャを示しています。 ワークフロー:
当社のサービス センターが多数の OEM によって使用される必要があり、数万または数十万の同時通話が必要な場合、上記の方法はサポートが困難です。 すぐに新たな問題が発生しました。1. 新しいサーバーごとにネットワーク プロバイダーとの接続が必要となるため、接続が困難になります。2. 新しいサーバーごとに、同じポートを維持しながらパブリック IP アドレスが必要になります。
コアノード:
fs-router ルーティング センターには、ダイヤルアップ アドレス指定と回線接続、セッション内での中間メッセージ ルーティングの転送という 2 つの主な機能があります。 fs-mediaメディア交換センターは、主にメディア(音声通話)伝送のためのプラットフォームとして機能し、ESLがAPIとコマンドを介してfs-mediaを呼び出すためのプラットフォームとして機能します。ワークフロー:
タンデム交換 + 負荷分散モードの利点:
要約1876年に呼び出し音回路を用いた最初の音声伝送から、今日のネットワークを介した新しい電話通信まで、100年以上が経過し、通信におけるすべてのイノベーションは技術の進歩と切り離すことができません。VoIPの台頭は、通信方法の革命を告げるだけでなく、新世代のコールセンターが電話通信の寵児となったことを意味します。Freeswitchサービスセンターの継続的な発展により、通信サービスの価値は徐々に高まり、少数の通信会社によって制御されていた交換技術の障壁を打ち破り、アクセスの難易度と利用コストを削減します。バージョン1.0のシングルサービスからバージョン3.0のタンデム交換+ロードバランサーまで、アーキテクチャのアップグレード後、Freeswitchサービスセンターは、高並列性とマルチテナントのビジネスシナリオに対応するだけでなく、高可用性を確保し、統合プロセスを簡素化し、サービスの拡張を容易にします。
次世代のコールセンターは、より多くのメディアと通信チャネルを統合します。将来的には、ビジネスレベルでは、Freeswitchサービスセンターは、インテリジェントなアウトバウンドコールプラットフォームに適しているだけでなく、ヒューマンマシンコラボレーション、オンラインカスタマーサービス、複数人会議、ビデオ通話、着信コールのキューイングなど、他のビジネスシナリオのニーズにも対応します。技術レベルでは、パフォーマンスと可用性の向上に加え、通話品質とビデオ品質の向上も考慮する必要があります。これは、複数のfs-ルーター(ルーティングセンター)によってさらに向上します。最後に、私たちは技術の進歩に遅れずに対応し、新たな挑戦に取り組んでいきます。 記事参照:
|