

高岡智則
年齢:33歳 性別:男性 職業:Webディレクター(兼ライティング・SNS運用担当) 居住地:東京都杉並区・永福町の1LDKマンション 出身地:神奈川県川崎市 身長:176cm 体系:細身〜普通(最近ちょっとお腹が気になる) 血液型:A型 誕生日:1992年11月20日 最終学歴:明治大学・情報コミュニケーション学部卒 通勤:京王井の頭線で渋谷まで(通勤20分) 家族構成:一人暮らし、実家には両親と2歳下の妹 恋愛事情:独身。彼女は2年いない(本人は「忙しいだけ」と言い張る)
freeswitchとは?
このページでは、freeswitchとは何か、どんな場面で使われるのか、仕組みや基本的な導入の流れを中学生にも分かるように解説します。
freeswitchの基本的な仕組み
Freeswitchは、オープンソースの電話通信ソフトウェアで、ソフトウェアPBXとして機能します。音声通話はSIPと呼ばれる通信規格を使ってネットワーク上で運びます。Freeswitchは複数の機能を「モジュール」という部品で追加できるため、必要な機能だけを選んで組み合わせます。
ここで大事なのは「ダイヤルプラン(Dialplan)」と呼ばれる通話の流れを決める設計です。たとえば、電話を受けたら自動音声案内を流して、特定の番号を押したら担当者に転送する、という一連の流れをXMLで書きます。これにより 通話の動線を自由に設計できます。
主な用途と使い方
中小企業の電話を統合する「PBX」として使うケースが多く、企業の電話回線をインターネット経由でつなぎ、社内のスマホやPCから同じ番号で通話できるようにします。
また、IVR(自動応答)、会議通話、コールセンター向けのルーティング、WebRTC対応のブラウザ通話など、多様な用途に対応します。
基本的な仕組みと部品
Freeswitchは中心となる「コア(Core)」と、機能を追加する「モジュール(Modules)」で構成されます。音声データの流れは「チャネル(Channels)」と呼ばれる通話路を通り、ダイヤルプランに従って他のチャネルへ接続されます。
代表的な部品は次のとおりです。 Dialplan、SIPエンドポイント、ゲートウェイ、モジュール、コントロール用CLIです。
導入の流れ(初心者向け)
1. 目的と規模を確認します。自社のどの電話機能を作りたいかを考えます。
2. 環境を準備します。サーバーOS(多くはLinux)と安定したネットワーク環境を整えます。
3. Freeswitchのインストールを行います。公式サイトやパッケージマネージャーを使うのが一般的です。
4. 基本設定をします。DialplanとSIP設定、セキュリティ設定を整え、最小限の通話ができる状態を作ります。
5. テストを重ねます。自分のスマホやPCから社内番号へ発信して、転送や自動案内が正しく動くかを確認します。
6. 運用と保守を行います。定期的な更新、ログの監視、緊急時のバックアップ手順を用意します。
実際の運用を想像してみよう(例)
たとえば小さな会社で、受付電話をFreeswitchに任せると、来客が電話をすると自動案内が流れ、担当につながる道筋を選べます。転送先の電話番号はSIP対応のスマホやデスクフォン、あるいはPCのソフトフォンに設定できます。
主な特徴と注意点
| 特徴 | 説明 |
|---|---|
| オープンソース | 誰でも無料で使え、ソースコードを自由に改変できます。 |
| モジュール式設計 | 必要な機能を後から追加・削除でき、柔軟に拡張可能です。 |
| SIPおよびWebRTC対応 | インターネット経由で音声通話を実現します。ブラウザからも通話可能です。 |
| Dialplanでの制御 | XMLベースの設定で通話の流れを細かく決められます。 |
| クロスプラットフォーム | 主にLinuxで使われることが多いですが、他のOSにも対応します。 |
よくある質問
Q:Freeswitchは難しいですか?
A:初めは難しく感じますが、基本を押さえれば理解は進みます。公式ドキュメントやコミュニティが豊富で、少しずつ学ぶのに向いています。
freeswitchの同意語
- FreeSWITCH
- freeswitchの正式表記の別形。FreeSWITCHはオープンソースのVoIP/電話サーバーで、SIP、WebRTCなどのプロトコルを使って音声通話のルーティングを行います。
- Free Switch
- freeswitchの表記揺れのひとつ。Free SwitchはFreeSWITCHと同義で、オープンソースの電話交換機として利用されます。
- FreeSwitch
- CamelCaseの別表記。FreeSwitchはFreeSWITCHとほぼ同義です。
- オープンソースPBX
- PBX(電話交換機)をオープンソースで提供するソフトウェアの総称。Freeswitchはこのカテゴリに該当します。
- オープンソースVoIPサーバー
- VoIP通話を制御・中継するオープンソースのサーバー。Freeswitchはこのタイプの代表例です。
- IP PBX
- IPベースのPBX。内線電話の管理と外部回線の接続をソフトウェアで実現します。
- VoIPサーバー
- Voice over IPを用いた音声通話を処理するサーバー。Freeswitchは代表的な選択肢の一つです。
- SIPサーバー
- SIPプロトコルを介して音声通話を仲介・制御するサーバー。FreeswitchはSIPをサポートします。
- ソフトスイッチ
- ソフトウェアで実装された電話交換機/スイッチの総称。Freeswitchはその典型例です。
- PBXソフトウェア
- PBX機能をソフトウェアとして提供するタイプの製品。Freeswitchはその一例です。
- 電話交換機ソフトウェア
- 電話回線の制御・ルーティングを行うソフトウェア。Freeswitchはこのカテゴリに属します。
- 音声通話サーバー
- 音声通話の処理・ルーティングを担うサーバー。Freeswitchは代表的な音声通話サーバーです。
- VoIPプラットフォーム
- VoIPサービスを構築・提供するための総合プラットフォーム。Freeswitchはその一部として使われます。
- オープンソース通信ソフトウェア
- 通信機能を提供するオープンソースのソフトウェア。Freeswitchはその代表例です。
- IP電話プラットフォーム
- IP電話の機能を統合的に提供するプラットフォーム。Freeswitchは人気の選択肢の一つです。
freeswitchの対義語・反対語
- クローズドソースPBX
- ソースコードが公開されていない商用のPBXで、自由に改変したり再配布したりするのが難しく、導入後のカスタマイズはベンダー依存になる。
- プロプライエタリPBX
- ライセンスの下で提供される独自ソフトウェアのPBX。自由度は低く、ソースコードが公開されないことが一般的で、開発者が自前で改良できない場合が多い。
- 商用PBX
- 有償で提供されるPBX製品で、導入コストやサポート契約が必要になることが多く、自由度より安定性・サポートを優先する用途に向く。
- クラウドPBX
- クラウド型のPBXサービスで、運用はサービス提供者に任せる形。自社でのソース改変などの自由度は小さくなる一方、初期導入が手軽で運用負担を軽減できる。
- ハードウェアPBX
- 専用ハードウェア上で動作するPBXで、ソフトウェアの柔軟性が低く、機能追加はベンダーのアップデートに依存することが多い。
- 閉源ソフトウェア
- ソースコードが公開されていないソフトウェア全般のこと。自由な改変・再配布が難しく、透明性・セキュリティの自己検証が難しくなる場合がある。
freeswitchの共起語
- mod_sofia
- FreeSWITCHのSIPスタックを提供する主要モジュール。SIPベースの通話を外部のSIPエンドポイントと接続する際に使われる。
- SIP
- Session Initiation Protocol、VoIPの通話の開始・管理に使われる通信プロトコル。
- VoIP
- Voice over IP、インターネット経由で音声通話を実現する技術。
- PBX
- IP-PBX、企業内の電話番号の割り当てと発着信のルーティングを行う機能。
- Dialplan
- 呼び出しルールや発信先のルーティングを決定するFreeSWITCHの設定・スクリプト。
- XML Dialplan
- XML形式でDialplanを定義する方法。
- Lua
- FreeSWITCHでLuaスクリプトを使い、ダイヤルプランを拡張するための言語。
- mod_lua
- LuaスクリプトをFreeSWITCHで実行するモジュール。
- JavaScript
- JavaScriptを用いてダイヤルプランやイベント処理を実装することができる。
- mod_js
- JavaScript実行環境を提供するFreeSWITCHモジュール。
- ESL
- Event Socket Library、外部アプリからFreeSWITCHを操作するAPI。
- fs_cli
- FreeSWITCHのコマンドラインインターフェース。リアルタイムでの操作が可能。
- WebRTC
- WebRTCクライアントとFreeSWITCH間の音声通話を実現する技術。DTLS-SRTPやICEをサポート。
- Opus
- 高品質かつ効率的な音声コーデックで、WebRTC対応でもよく使われる。
- G.711
- 広く普及している音声コーデック。品質は高いが帯域は大きめ。
- G.729
- 低ビットレートで通話を確保するコーデック。通信帯域を抑えたいときに使われることが多い。
- iLBC
- 低ビットレートで耐パケット性の高いコーデック。
- SRTP
- 音声データを暗号化して送受信する Real-time Transport Protocol の拡張プロトコル。
- TLS
- SIP通信を暗号化するための Transport Layer Security。
- RTP
- Real-time Transport Protocol、音声データの実際の運搬を担うプロトコル。
- NAT traversal
- NAT環境での通話確立を支援する技術。
- ICE
- WebRTC等で使われる NAT 越え技術。
- STUN
- NAT越えのための初期接続支援プロトコル。
- mod_conference
- 会議・ブリッジ機能を提供するモジュール。
- IVR
- 自動応答システム。音声ガイダンスで操作を案内する機能。
- Extensions.xml
- Dialplan を定義するXMLファイル。古典的な設定ファイル。
- PSTN gateway
- 公衆交換電話網へ接続するゲートウェイ機能。
- SIP Trunk
- 外部電話事業者とSIPで接続するための回線。
- ODBC
- データベース連携の標準インターフェース。
- MySQL
- データベースとして使われる代表的なRDBMS。
- PostgreSQL
- 信頼性の高いオープンソースデータベース。ODBC連携で利用。
- SQLite
- 軽量データベース、組み込み用途に適する。
- Recording
- 通話の録音機能。
- mod_record
- 通話録音を実現するモジュール。
- Docker
- FreeSWITCHをコンテナで動かす際に利用される仮想化技術。
- Kubernetes
- 大規模デプロイ時のコンテナ管理プラットフォーム。
- License
- FreeSWITCHのライセンス情報(例:MPL系)。
- Open source
- オープンソースのソフトウェアであるFreeSWITCHの特性。
freeswitchの関連用語
- FreeSWITCH
- オープンソースのIP-PBX/通信プラットフォーム。VoIP通話のルーティング、会議、IVR、ボイスメールなどを自由に構築できる基盤です。
- sofia
- SIPスタックとして動作するモジュール群(mod_sofia)。SIPによる発着信の処理を担当します。
- SIP
- Session Initiation Protocol。VoIP通話の開始・制御を行う標準的な通信プロトコル。
- IAX2
- Inter-Asterisk eXchange v2。別のVoIPプロトコルで、NAT越えが得意な場面があります。
- WebRTC
- WebブラウザとFreeSWITCH間の音声/ビデオ通話を実現するWebリアルタイム通信技術。
- ESL
- Event Socket Library。外部アプリがFreeSWITCHへ指示を出し、イベントを受け取るAPI。
- Dialplan
- 通話の分岐・挙動を決める設定。発着信時のルーティングを定義します。
- dialplan.xml
- DialplanをXML形式で記述する定義ファイル。
- Directory
- ディレクトリ機能。ユーザー・内線番号・着信先のデータを管理します。
- mod_voicemail
- 留守番電話機能。メッセージの録音・再生・通知を提供します。
- mod_conference
- 複数人での同時通話を可能にする会議機能のモジュール。
- mod_spandsp
- T.38ファクスのサポートを提供するモジュール。
- T.38
- IPネットワーク上でファクスを送受信するFaxプロトコル。
- Codecs
- 音声データの圧縮・伸張方式の総称。代表例にはG.711/PCMU, G.711/PCMA, Opus, G722, G729, iLBC 等がある。
- G.711-PCMU
- 広くサポートされる高品質な音声コーデック。
- G.711-PCMA
- G.711のPCMA変種。
- Opus
- 高品質・低遅延の現代的コーデック。WebRTCでも標準。
- G.722
- HD音質を提供するコーデック。
- G.729
- 低帯域で音声を伝えるコーデック(特許問題あり)。
- iLBC
- 低ビットレートで耐ノイズ性のあるコーデック。
- DTMF-RFC2833
- RTPイベントとしてDTMF信号を伝える方式。
- DTMF-Inband
- 音声信号の中にDTMF信号を埋め込む方式。
- RTP
- Real-time Transport Protocol。音声データをパケット化して運ぶ基本プロトコル。
- SRTP
- RTPの暗号化版。音声を暗号化して転送します。
- Bridge
- 2つの通話を直接つなぐ機能。
- Gateway
- SIPトランクやPSTNなど他ネットワークへの接続点。
- CallCenter
- コールセンター運用をサポートする機能群(キュー、エージェント、統計など)。
- Queue
- 着信を待機させ、適切なエージェントへ割り当てる待機列機能。
- CDR
- Call Detail Record。通話の開始・終了・長さ・コストなどを記録するデータ。
- CDR_csv
- CDRをCSV形式で出力する機能。
- PostgreSQL
- 高機能なリレーショナルデータベース。FreeSWITCHと連携可能。
- MySQL
- 広く使われるリレーショナルデータベース。
- SQLite
- 組み込み型の軽量データベース。
- Presence
- 利用者のオンライン/オフライン、着信状態などのプレゼンス情報を共有する機能。
- LDAP
- LDAPディレクトリと連携してユーザー情報を参照できる機能。
- mod_xml_curl
- 外部URLからダイアルプランを取得するモジュール。
- Lua
- Luaスクリプトを使ってダイアルプランを拡張できるモジュール。
- mod_lua
- Luaスクリプト実行用のFreeSWITCHモジュール。
- mod_js
- JavaScriptでダイアルプランを記述するモジュール。
- mod_python
- Pythonスクリプトを実行するモジュール。
- fs_cli
- FreeSWITCHのコマンドラインインターフェース。管理・デバッグに使用。
- STUN
- NAT越えのためのサーバー。SIP通話のNAT問題を緩和します。
- TURN
- NAT越え時のメディア転送用中継サーバ。STUNと併用して安定化します。
- LoadBalancing
- 複数ノード間での負荷分散。高い可用性を実現。
- HA/Failover
- 障害時の自動切替え機能。



















