Kamailioとはなにか

現在XCALLYの大規模案件対応を行っています。
数百席の対応を行うために、複数のサーバを利用しXCALLYを構築していく必要があります。
その際にポイントになるのが、複数のサーバに対して着信した呼を分配していく必要があるということです。
VOIPVプロバイダーが複数のサーバーからレジストさせることができないため、VOIPプロバイダーのSIPサーバーと複数のXCALLYサーバーの中間に呼を分配してくれるSIPサーバーが必要となります。

そのため、今回はKamailioというSIPサーバーを中間に置くことを採用しました。

概要

Kamailioとは、SIP proxyやpresenceサーバなど様々な機能を持つSIPサーバのOSSで、様々なモジュールを組み合わせることで用途ごとの設定を行うことができます。

機能として出来ること

  • SIP proxy server
  • SIP registrar server
  • SIP location server
  • SIP application server
  • SIP dispatcher server
  • SIP Websocket server

機能として出来ないこと

  • SIP phone
  • media server
    RTPに対してNATなど処理を行う場合、別OSSを利用する必要がある。また、保留音などの音声を再生することが出来ない。
  • back-to-back user agent
    KamailioがINVITEやBYEを生成することは出来ない。

 

Kamailioの設定ファイル

Kamailioの構築・設定方法については、改めてエンジニアがブログでアップさせていただきます。
AWS上でKamailioを構築した手順を、エンジニアがアップしました。
AWSでKamailioを構築

ここではFilePathのみに言及しておきます。

  • パッケージからインストール
    /etc/kamailio/kamailio.cfg
  • ソースからインストール
    /usr/local/etc/kamailio/kamailio.cfg

 

具体的にやったこと

  • UACモジュールで、VOIPプロバイダーのSIPトランクにKamailioからREGISTER
  • DISPATCHERモジュールで、6つのXCALLYにラウンドロビンでロードバランシング
  • ロードバランシングする際に、分配率を設定し比率に合わせて呼を着信
  • 発信の際は、Kamailioを経由せずに直接XCALLYからVOIPプロバイダーのSIPトランクへ直接接続

 

具体的にどのような設定を行ったのかは、こちらもエンジニアが改めてブログで公開させていただきます。
エンジニアがブログアップしました。
Kamailioの設定

 

関連コマンド

kamctl

  • kamailioと一緒にデフォルトでインストールされる。
  • kamailio.cfgと同じディレクトリに設定ファイルのkamctlrcが存在する。
  • SIPアカウント追加やdispatch先登録などの操作を行う。

kamdbctl

  • kamailioと一緒にデフォルトでインストールされる。
  • このコマンドもkamctlrcを参照する。
  • kamailioが必要するとDBを初期作成する。

kamcmd

  • kamailioと一緒にデフォルトでインストールされる。
  • RPCコマンドを実行するためのCLIツール。
  • uacに関するコマンドを実行する。

siremis

  • kamailioのWEBGUIを追加するオプションツール。
  • 利用しなくてもよい。
  • 公式HP

kamcli

  • kamctlの置き換えツール。
  • 公式HP

 

参照元

本ブログの参照元は、公式wikiになります。

 

 

 

この記事が気に入ったら
いいね ! しよう

Twitter で
The following two tabs change content below.
吉田剛
吉田剛
取締役 主に開発のプロジェクト管理や新規事業の立ち上げを行う。 現在はXCALLY(エックスコーリー)の拡販に力入れている。

【採用情報】一緒に働く仲間を募集しています

採用情報
ページトップへ