2015/10/27(火)[SIP]Kamailio用Web 管理ツールsiremisをインストールする

siremis_001.png




KamailioにはWebを通して管理できるsiremisが用意されています。

index:http://kb.asipto.com/siremis:indexにインストール方法が案内されています。この記事ではこの手順に従いインストールを行います。

1.動作確認環境
以下の環境で動作を確認しています。

Ubuntu 15.04
Apache 2.4.10
php 5.6.4

2.環境の準備
aptを更新します。
sudo apt-get update
apacheをインストールします。
sudo apt-get install apache2
sudo a2enmod rewrite
PHPをインストールします。
sudo apt-get install php5 php5-mysql php5-gd php5-curl
3.siremis 4.2のインストール
siremis 4.2をダウンロードします。
wget http://siremis.asipto.com/pub/downloads/siremis/siremis-4.2.0.tgz
※PHP5.6ではインストール完了後のログイン時にエラーが出るためgithubから最新バージョンを入手する必要がありました。

siremisをWEBサイトのデフォルトディレクトリ(/var/www)に展開します。
sudo chmod 777 /var/www
cd /var/www
tar xvzf ~/siremis-4.2.0.tgz

4.Webサーバー apacheを設定します。

以下のコマンドで設定ファイルを作成し編集します。
make apache24-conf
sudo vi /etc/apache2/sites-available/default
/etc/apache2/sites-available/defaultの編集内容は以下となります。
siremis-x.y.z# make apache-conf
# siremis apache conf snippet ...

	Alias /siremis "/var/www/siremis-x.y.x/siremis"
	<Directory "/var/www/siremis-x.y.x/siremis">
		Options Indexes FollowSymLinks MultiViews
		AllowOverride All
		Order allow,deny
		Allow from all
		<FilesMatch "\.xml$">
			Order deny,allow
			Deny from all
		</FilesMatch>
		<FilesMatch "\.inc$">
			Order deny,allow
			Deny from all
		</FilesMatch>
	</Directory>
.htaccess と Siremis 設定ファイルを作成し、'make prepare'を実行します。
cd /var/www
cd siremis-4.2.0/
make prepare
make chown
5.Webサーバー を開き初期設定を行います。。
http:///siremis/を開き初期設定を行います。

2015/10/17(土)[SIP]kamailio (Open SER)のインストール及び設定

SIPサーバーのkamailioのインストール方法

SIPサーバーを動作させ通信できるようにできましたので忘備録として手順を記載します。



環境
以下の環境で動作を確認しました。
ubuntu 15.04 server
kamailio 4.2.0-2ubuntu1
インストール
1. kamailioに関連するパッケージをインストールする
apt-get install kamailio kamailio-mysql-modules kamailio-tls-modules
2. MySqlのパッケージをインストールする
kamailioが使うデータベースエンジンとしてMySqlをインストールします。
apt-get install mysql-server
インストール時にMySQLのrootのパスワードを求められるので設定する必要があります。

3.rtpproxyのパッケージをインストールする
ルータを経由してアクセスできるようにrtpproxyをインストールします。
apt-get install rtpproxy
設定
1. /etc/default/kamailio を編集します。
RUN_KAMAILIO=yes
この変更をしないとkamailioは動作しません。

2. /etc/kamailio/kamailio.cfgを編集します。
先頭に以下を追加し、MySQL, 認証機能、NAT対応、TLS対応を有効にします。
#!KAMAILIO
#!define WITH_MYSQL
#!define WITH_AUTH
#!define WITH_USRLOCDB
#!define WITH_NAT
#!define WITH_TLS
#
tcp_connection_lifetime=3605を追加します。
/* port to listen to
 * - can be specified more than once if needed to listen on many ports */
port=5060
    
#!ifdef WITH_TLS
enable_tls=yes
#!endif
    
tcp_connection_lifetime=3605
rtpproxyの設定を変更します
#!ifdef WITH_NAT
# ----- rtpproxy params -----
# modparam("rtpproxy", "rtpproxy_sock", "udp:127.0.0.1:7722")
modparam("rtpproxy", "rtpproxy_sock", "unix:/var/run/rtpproxy/rtpproxy.sock")


setflag(FLT_NATS);を追加します。
# Caller NAT detection
route[NATDETECT] {
#!ifdef WITH_NAT
    force_rport();
    setflag(FLT_NATS);
3. /etc/kamailio/tls.cfgを編集します。
/etc/kamailio/に自己証明書がインストールされているのでその指定を行います。
[server:default]
method = SSLv23
verify_certificate = no
require_certificate = no
private_key = /etc/kamailio/kamailio-selfsigned.key
certificate = /etc/kamailio/kamailio-selfsigned.pem
4. /etc/kamailio/kamctlrcを編集します。
SIP_DOMAIN=<サーバーのIPアドレス or ホスト名>
DBENGINE=MYSQL
※サーバーがNAT配下にある場合は、グローバルIPを設定する必要があります。

5. kamdbctl を実行しMySQLにkamailio用のテーブルを作成します。
kamdbctl create
これでkamdbctlを使用してユーザーを追加できるようになります。
ユーザーは以下のように追加します。
kamctl add <ユーザーID> <パスワード>
実行時にパスワードを求めれます。パスワードは以下です。
kamailiorw
ログ出力
kamailioのログ出力は以下のように設定します。

1./etc/rsyslog.confに以下を追加します。
###############
#### RULES ####
###############
    
local0.*                        -/var/log/kamailio.log
2. syslogを再起動します。
/etc/init.d/rsyslog restart
動作確認
1. kamailioを起動します。
/etc/init.d/kamailio start

このコマンドで起動するはずなのですが、私の環境では起動できませんでした。
以下で起動を行うことができました。
sudo kamailio

2. SIPクライアントをクライアントPCにインストールします。
http://www.jitsi.org/からクライアントPCの用のjitsiをダウンロードしインストールします。

3. 起動画面が表示された後にアカウントを登録する画面が表示されますので、kamdbctlを使用して登録したユーザーを以下のように入力します。
<user-id>@<server ip address>
jitsi_001.png


4. 以下のように起動し、オンラインとなることが確認できます。

jitsi_002.png


2台クライアントPCを用意すれば、通話/チャットを試すことができます。

jitsi_003.png


備考
この記事で作成した設定ファイルは以下から入手できます。

kamailio_config_4.2.zip

kamailioにはWeb画面で設定を行えるツール siremis が開発されています。
以下から入手できます。

http://siremis.asipto.com/

追記
Linuxを再起動すると以下がなくなり起動できなくなります。

/var/run/kamailio/

上記のディレクトリを作り直せば、起動できます。

kamailioをNAT以下に配置すると以下のログの通り、自分への接続と認識できず接続されません。
Oct 24 15:24:45 odmdhsip kamailio[1763]: DEBUG: <core> [socket_info.c:583]: grep_sock_info(): grep_sock_info - checking if host==us: 13==9 && [40.74.139.170] == [127.0.0.1]
Oct 24 15:24:45 odmdhsip kamailio[1763]: DEBUG: <core> [socket_info.c:587]: grep_sock_info(): grep_sock_info - checking if port 5060 (advertise 0) matches port 5060
Oct 24 15:24:45 odmdhsip kamailio[1763]: DEBUG: <core> [socket_info.c:583]: grep_sock_info(): grep_sock_info - checking if host==us: 13==12 && [40.74.139.170] == [100.79.48.84]
Oct 24 15:24:45 odmdhsip kamailio[1763]: DEBUG: <core> [socket_info.c:587]: grep_sock_info(): grep_sock_info - checking if port 5060 (advertise 0) matches port 5060
Oct 24 15:24:45 odmdhsip kamailio[1763]: DEBUG: <core> [socket_info.c:583]: grep_sock_info(): grep_sock_info - checking if host==us: 13==9 && [40.74.139.170] == [127.0.0.1]
Oct 24 15:24:45 odmdhsip kamailio[1763]: DEBUG: <core> [socket_info.c:587]: grep_sock_info(): grep_sock_info - checking if port 5060 (advertise 0) matches port 5060
Oct 24 15:24:45 odmdhsip kamailio[1763]: DEBUG: <core> [socket_info.c:583]: grep_sock_info(): grep_sock_info - checking if host==us: 13==12 && [40.74.139.170] == [100.79.48.84]
Oct 24 15:24:45 odmdhsip kamailio[1763]: DEBUG: <core> [socket_info.c:587]: grep_sock_info(): grep_sock_info - checking if port 5060 (advertise 0) matches port 5060
Oct 24 15:24:45 odmdhsip kamailio[1763]: DEBUG: <core> [socket_info.c:583]: grep_sock_info(): grep_sock_info - checking if host==us: 13==9 && [40.74.139.170] == [127.0.0.1]
Oct 24 15:24:45 odmdhsip kamailio[1763]: DEBUG: <core> [socket_info.c:587]: grep_sock_info(): grep_sock_info - checking if port 5061 (advertise 0) matches port 5060
Oct 24 15:24:45 odmdhsip kamailio[1763]: DEBUG: <core> [socket_info.c:583]: grep_sock_info(): grep_sock_info - checking if host==us: 13==12 && [40.74.139.170] == [100.79.48.84]
Oct 24 15:24:45 odmdhsip kamailio[1763]: DEBUG: <core> [socket_info.c:587]: grep_sock_info(): grep_sock_info - checking if port 5061 (advertise 0) matches port 5060
Oct 24 15:24:45 odmdhsip kamailio[1763]: DEBUG: <core> [forward.c:448]: check_self(): check_self: host != me
この問題は、/etc/kamailio/kamctlrcをドメインに対してグローバルIPを設定することで解決しました。
SIP_DOMAIN=<サーバーのグローバルIP>
グローバル/NAT越えで使う場合は、グローバル上にSTUNサーバーを用意する必要があります。
また、SIPクライアントがSTUNプロトコルに対応している必要があります。

追記2
Ver.4.3.2に組み込まれている /etc/init.d/kamailio は問題があるのかLinux起動時に/var/run/kamailioを作成できず動作しません。
Ver.4.2の同ファイルを使うと動作します。
修正したスクリプトは以下です。
etc_initd.zip

2015/09/06(日)SIPサーバー

チャットサービスに興味を持ったのでSIPサーバーを動かそうと努力してみたけど動作させれなかった。

試したのは以下の2つ。

(1)reSIProcate
 設定用Webサーバーを動作させるところまで動いたがSIPクライアントから接続できず。

(2)Kamailio SIP Server
 SIPサーバーが設定されていないとログに記録される状態となり起動できず。

意外と難しいです(T_T)

2015/06/07(日)Webminを使用してapache2にhttps(ssl)通信を有効にするときメモ

サーバー管理ソフトうウェアWebminを使用してapache2のhttps通信を有効する方法を記載します。
(私が設定し正常に動作した時の忘備録です。)

作成した環境は以下となります。
使用しているOSや導入しているアプリケーションごとに差異があるので参考としてご覧ください。
Linux : ubuntu 14.04
Apache: Ver.2.4.7
Webmin: Ver.1.750
1.SSL自己証明書を作成する
ターミナルで、以下の様にSSL自己証明書を作成します。
[root@centos ~]# cd /etc/pki/tls/certs/ ← ディレクトリ移動

[root@centos certs]# sed -i 's/365/3650/g' Makefile ← サーバー用証明書有効期限を1年から10年に変更

[root@centos certs]# make server.crt ← サーバー用秘密鍵・証明書作成
umask 77 ; /usr/bin/openssl genrsa -aes128 1024 > server.key
Generating RSA private key, 1024 bit long modulus
.................++++++
............++++++
e is 65537 (0x10001)
Enter pass phrase: ← 任意のパスワードを応答※表示はされない
Verifying - Enter pass phrase: ← 任意のパスワードを応答(確認)※表示はされない
umask 77 ; /usr/bin/openssl req -utf8 -new -key server.key -x509 -days 3650 -out server.crt -set_serial 0
Enter pass phrase for server.key: ← 上記で応答したパスワードを応答※表示はされない
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
Country Name (2 letter code) [GB]:JP ← 国名応答
State or Province Name (full name) [Berkshire]:Kanagawa ← 都道府県名応答
Locality Name (eg, city) [Newbury]:Kawasaki ← 市区町村名応答
Organization Name (eg, company) [My Company Ltd]:centossrv.com ← サイト名応答(なんでもいい)
Organizational Unit Name (eg, section) []: ← 空ENTER
Common Name (eg, your name or your server's hostname) []:centossrv.com ← Webサーバー名応答
Email Address []:webmaster@centossrv.com ← 管理者メールアドレス応答

[root@centos certs]# openssl rsa -in server.key -out server.key ← サーバー用秘密鍵からパスワード削除
Enter pass phrase for server.key: ← サーバー用秘密鍵・証明書作成時のパスワード応答※表示はされない
writing RSA key


2.afache2のSSLを有効にする
ターミナルで以下を入力し、apache2のSSLモジュールを有効にします。
sudo a2enmod ssl
※Webmin上でも設定できますが、署名が設定されていない場合はエラーが発生します。
※SSLを有効にするとWebmin上でapacheのSSLを設定できるようになります。

3.port番号443の仮想ホストを作成する
Webmin上でポート番号に443を指定して仮想ホストを作成します。
000_apache.png


4.署名をapache2に設定する
Webmin上で作成した仮想ソフトSSLオプション画面を開きます。
001_apache.png


1.で作成した自己証明書を設定します。
003_apache.png


5.apache2を再起動する
ターミナル上でapache2を再起動します。
sudo service apache2 restart

※設定中にapache2が停止してしまった場合は起動します。
sudo service apache2 start



OK キャンセル 確認 その他