成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

OpenIMSCore服務(wù)器安裝配置過程

OpenIMSCore 安裝配置過程,思路,可能遇到的問題及其解決辦法袁星勇E-MAIL :ChongQing JinMei Communication Co.,Ltd2008-10-23代碼資源來源

OpenIMSCore 安裝配置過程,思路,可能遇到的問題及其解決辦法

袁星勇

E-MAIL :

ChongQing JinMei Communication Co.,Ltd

2008-10-23

代碼資源來源:OpenIMSCore: http://www.openimscore.org.

文檔來源:OpenIMSCore Installation Guide――http://www.openimscore.org. 參考資料:基于開放源代碼實現(xiàn)的IMS 原型化系統(tǒng)-張懿-重慶大學(xué)碩士論文

1. 運(yùn)行環(huán)境之編譯環(huán)境的安裝及配置

OpenIMSCore 是基于Linux 環(huán)境開發(fā)的,所以要編譯OpenIMSCore 源代碼首先需要在Linux 操作系統(tǒng)安裝編譯及運(yùn)行環(huán)境。在《基于開放源代碼實現(xiàn)的IMS 原型化系統(tǒng)》論文中可以找到OpenIMSCore 運(yùn)行環(huán)境要求:

a) GCC 3/4;

b) JDK1.5以上;

c) ant ;

d) 已安裝并啟動MySQL 數(shù)據(jù)庫管理系統(tǒng);

e) libxml2,libmysqlclient 庫軟件包及開發(fā)包頭文件;

f) flex 和bison ;

g) Linux Kernel 2.6

h) 已安裝并啟動bind 域名服務(wù)器;

注:Fedora8或者CentOS5(RHEL5)操作系統(tǒng)DVD 光盤中有自帶的MySQL ,bind 等rpm 安裝包,而在Ubuntu 的CD 光盤上是沒有mysql ,bind ,flex ,bison ,gcc 等安裝包的,所以我選擇了Fedora 和CentOS 的安裝方式。在安裝Fedora/CentOS時在定制時(安裝過程基本相似) ,我安裝了mysql ,bind ,gcc ,安裝完成后只需要在安裝ant 和jdk 就可以完成以上的運(yùn)行環(huán)境要求,所以首次安裝推薦使用Fedora/CentOS,本文也只介紹了Fedora/CentOS下的安裝過程。如果采用Ubuntu 以上所有的都需要自己手動下載安裝包安裝或者在線更新, 需要的步驟會更多,在本文中就不再描述。

在www.openimscore.org 上下載了源代碼以后就可以發(fā)現(xiàn)OpenIMSCore 源代碼分為兩個部分,ser_ims和FHoSS ,其中ser_ims是用C 語言開發(fā)的,而FHoSS 是用Java 開發(fā)的。ser_ims部分主要完成的IMS 中的cscfs 功能實體,F(xiàn)HoSS 完成IMS 中HSS 功能實體。所以首先需要在Linux 操作系統(tǒng)中安裝GCC 編譯器及jdk 編譯器。

a) GCC

在Linux 終端shell 命令行中輸入命令#gcc --version如果顯示gcc 版本信息則基本可以確認(rèn)gcc 是已經(jīng)安裝了的,如果在編譯程序時出現(xiàn)error C compiler cannot create executables的錯誤,是gcc 庫安裝不完整造成的,需要安裝glibc ,及l(fā)ibc6-dev 。

如果采用fedora8或者centos5(RHEL5),在安裝配置時可以配置是否安裝GCC ,如果沒有安裝你需要找到光盤中的gcc 有關(guān)的rpm 包手動安裝,它

,

在終端輸入java –version 命令后會顯示已經(jīng)安裝的jdk 信息,輸入ant –h 會顯示ant 相關(guān)信息,如果沒有,仔細(xì)檢查上面三個腳本中的幾個路徑是否對應(yīng)是你的jdk 和ant 的安裝路徑,也可能是jdk-6u7-linux-i586.bin 或 apache-ant-1.7.1-bin.tar.gz 沒有正確的安裝。

2. 編譯程序

在/opt/目下新建一個OpenIMSCore 文件夾,然后將下載下的源代碼復(fù)制到/opt/OpenIMSCore下,如果采用ftp 下載的代碼,只需要將ser_ims2008909.r0583.tgz和FHoSS2008909.r0583.tgz 解壓縮到OpenIMSCore 即可。 可能會依賴很多安裝包,過程會比較繁瑣。 b) jdk 我采用的是jdk-6u7-linux-i586.bin 及apache-ant-1.7.1-bin.tar.gz ,在/usr下新建一個文件夾java ,將jdk-6u7-linux-i586.bin 復(fù)制到/usr/java下然后在終端鍵入命令#./jdk-6u7-linux-i586.bin運(yùn)行這個文件,按照提示信息安裝jdk 。 將apache-ant-1.7.1-bin.tar.gz 解壓縮到/usr/local目錄下,然后將在/usr/local下新產(chǎn)生的apache-ant-1.7.1文件夾更名為ant 。 #tar –zxvf apache-ant-1.7.1-bin.tar.gz –C /usr/local/ #mv /usr/local/apache-ant-1.7.1 /usr/local/ant 完成以上兩步后設(shè)置編譯程序需要的環(huán)境變量JA V A_HOME 編輯/etc/profile文件,在文件末尾中增加以下幾行: #set java environment export JAV A_HOME=/usr/java/jdk1.6.0_07 export PATH=/usr/java/jdk1.6.0_07:$PATH export CLASSPATH=/usr/java/jdk1.6.0_07/lib #end 在/etc/profile.d/文件夾下新建兩個文檔:java.sh ,ant.sh 。 在java.sh 中增加以下3行 export JAV A_HOME=/usr/java/jdk1.6.0_07 export PATH=/usr/java/jdk1.6.0_07/bin:$PATH export CLASSPATH=.:$JAV A_HOME/lib/dt.jar:$JAV A_HOME/lib/tools.jar:$JAV A _HOME/lib 在ant.sh 中增加下面2行 export ANT_HOME=/usr/local/ant export PATH=$PATH:$ANT_HOME/bin 然后分別執(zhí)行這個文件: # source /etc/profile # source /etc/profile.d/java.sh # source /etc/profile.d/ant.sh 注:#前綴表示需要root 權(quán)限才能運(yùn)行。

,

如果是用SVN ,將ser_ims和FHoSS 都checkout 在/opt/OpenIMSCore目錄下即可。

a ) 進(jìn)入ser_ims文件件編譯

#cd /opt/OpenIMSCore/ser_ims

#make install-libs all

如果只需要編譯其中的一部分,或者只編譯IMSCore 不需要其他模塊,可詳細(xì)閱讀在ser_ims文件夾下的INSTALL 文件。

如果在編譯時出錯:

1) 檢查編譯器是否安裝正確

2) 源代碼是否完整

3) 如果提示在文件dbase.c 有錯誤,如找不到以及提示

struct my_con等。

解決思路:

找到ser_ims/modules/mysql/下的dbase.c 文件下可以找到#include 行 ,相應(yīng)的查看/usr/include/下面找不到mysql 文件夾。 錯誤原因:在/usr/include下沒有包含有mysql.h 的mysql 頭文件夾; 解決辦法:下載一個mysql 的壓縮包,我采用的是mysql-5.0.67-linux-i686.tar.gz ,在解壓縮后的文件夾中可以找到include 和lib 文件夾,將include 文件夾名改為mysql ,并復(fù)制到/usr/include中。 重新編譯,應(yīng)該還會發(fā)現(xiàn)找不到libmysqlclient 的錯誤,這時再將壓縮文件中的lib 文件夾更名為mysql ,復(fù)制到/usr/local/lib文件夾下。

重新編譯,順利通過。

b ) 進(jìn)入FHoSS 文件夾編譯HSS

#ant compile deploy

如果需要了解更多信息,閱讀在FHoSS 目錄下install.txt 文件

如果編譯出錯一般是JA V A_HOME設(shè)置不正確造成的。

3. 運(yùn)行環(huán)境之mysql

如果不是采用的默認(rèn)安裝mysql (rpm 包安裝方式和默認(rèn)安裝是一致的),請參考mysql 官方相關(guān)文檔,安裝完成后,相應(yīng)的導(dǎo)入到數(shù)據(jù)庫中即可。

終端中輸入命令:

#chkconfig --level 5 mysql on

#service mysqld start

在終端shell 命令行中輸入mysql 即可進(jìn)入mysql 環(huán)境,使用show databases; 命令即可查看默認(rèn)的mysql 數(shù)據(jù)庫,使用exit 可返回到終端shell 命令行。

如果輸入mysql 提示command not found則表示數(shù)據(jù)庫沒有正常啟動,可能出現(xiàn)的的錯誤原因:

a) mysql 服務(wù)沒有啟動

可在shell 命令行輸入chkconfig --list | grep mysqld查看mysqld 服務(wù)進(jìn)程是否啟動。

,

如果沒有啟動,輸入命令service mysqld start即可啟動mysql 。

b) mysql 沒有安裝。(mysql 在linux 下的安裝步驟網(wǎng)上教程比較多。)

如果mysql 正常工作,將OpenIMSCore 需要的三張表導(dǎo)入到數(shù)據(jù)庫中, mysql -u root -p -h localhost

mysql -u root -p -h localhost

在mysql 環(huán)境中輸入show databases;(注意命令有個分號結(jié)尾)可以看到已經(jīng)多了兩個數(shù)據(jù)庫hss_db(注意是hss_db,icscf 。

4. 運(yùn)行環(huán)境之DNS 服務(wù)器

如果有獨(dú)立的可控的DNS 服務(wù)器,則域名解析部分可方在專門的DNS 服務(wù)器上,在這里我們是準(zhǔn)備在局域網(wǎng)中搭建IMS 試驗場,所以需要安裝DNS 服務(wù)器來做域名解析,并將DNS 服務(wù)器和IMS 服務(wù)器做在同一臺PC 中。下面就介紹在Fedora 8 和CentOS 下利用bind 實現(xiàn)IMS 服務(wù)器需要的DNS 解析(詳情請參考Bind9相關(guān)的官方文檔)。

由于是在同一臺PC 上實現(xiàn),所以DNS 服務(wù)器地址應(yīng)該指向自己,所以在/etc/resolv.conf中應(yīng)增加一行:nameserver 127.0.0.1

可通過命令chkconfig --list|grep named查看是否安裝了DNS Serve。 如果已經(jīng)安裝通過命令service named start則可啟動DNS Server。

如果沒有安裝則需要在安裝包中(或下載)找到bind 相應(yīng)的安裝包和它依賴的相關(guān)包,bind 安裝相關(guān)的文章在網(wǎng)上也很多。最簡便的辦法就是在安裝Linux 操作系統(tǒng)定制時就選上DNS 服務(wù)器,直接就可以使用。

安裝完成后修改/etc/name.conf文件。

在CentOS5中默認(rèn)好像是沒有這個文件,需要執(zhí)行命令

#cp –p /etc/named.caching-nameserver.conf named.conf

用named.caching-nameserver.conf (這個文件需要安裝另外一個dns 的caching-nameserver-xxx.rpm 安裝包才會產(chǎn)生)模板生成一個named.conf 文件

。修改后的文件為(紅色為修改部分)

CentOS 下的named.conf 文件:

options {

listen-on port 53 { any ; };

listen-on-v6 port 53 { ::1; };

directory "/var/named";

dump-file "/var/named/data/cache_dump.db";

statistics-file "/var/named/data/named_stats.txt";

memstatistics-file "/var/named/data/named_mem_stats.txt";

query-source port 53;

query-source-v6 port 53;

allow-query { any ; };

,

};

logging {

channel default_debug {

file "data/named.run";

severity dynamic;

};

};

view localhost_resolver {

match-clients { any ; };

match-destinations { any ; };

recursion yes;

include "/etc/named.rfc1912.zones";

};

如果是Fedora8 named.conf修改后為下面的結(jié)果:

options {

listen-on port 53 { any ; };

listen-on-v6 port 53 { ::1; };

directory "/var/named";

dump-file "/var/named/data/cache_dump.db";

statistics-file "/var/named/data/named_stats.txt";

memstatistics-file "/var/named/data/named_mem_stats.txt";

allow-query { any ; };

};

logging {

channel default_debug {

file "data/named.run";

severity dynamic;

};

};

zone “. ” IN {

type hint;

file “named.ca ”;

};

include “etc/named.rfc1912.zones”;

修改完named.conf 后無論是在fedora8還是CentOS 下均需要編輯/etc/named.rfc1912.zones文件,在文件中增加一個zone :

zone “open-ims.test ” IN{

type master;

file “open-ims.dnszone ”;

notify no;

,

};

在增加的區(qū)域中可看到需要dns 區(qū)域文件open-ims.dnszone ,這個文件在ser_ims/cfg/文件夾下有一個模板。編輯該模板,因為IMSCore 的三個cscf 功能實體和hss 數(shù)據(jù)庫,DNS 服務(wù)器都在一臺PC 上,所以將其中的IP 地址127.0.0.1全部改為你的本機(jī)IP 如192.0.22.58即可,如果域名采用的不是默認(rèn)的open-ims.test ,還需要相應(yīng)的修改其SOA ,A 記錄。如果是某個功能實體在不同的服務(wù)器上則需要修改這個功能實體相應(yīng)的A 記錄IP 地址。

修改完成后將open-ims.dnszone 復(fù)制到/var/named/chroot/var/named目錄下,并在/var/named/下做一個open-ims.donzone 符號連接

#cd /var/named/

#ln -s chroot/var/named/open-ims.dnszone open-ims.dnszone

完成后輸入命令#service named reload加載DNS 配置文件。

在本機(jī)輸入ping pcscf.open-ims.test能ping 通則基本可以確定DNS 工作正常。 在聯(lián)網(wǎng)的電腦上將DNS 設(shè)為IMS 服務(wù)器的IP ,然后ping pcscf.open-ims.test 如果能ping 通則DNS 能正常解析。

如果不能ping 通,檢查bind 安裝是否正確,以上的name.conf open-ims.test resolv.conf named.rfc1912.zones 是否配置正確,配置正確后輸入命令#service named restart重新啟動DNS 。

另外可能需要關(guān)閉SELinux 和防火墻。

Fedora/CentOS shell命令行中運(yùn)行setup ,禁止SELinux 和防火墻即可。

通過前4步驟的處理,基本完成了運(yùn)行環(huán)境的配置。下面介紹運(yùn)行IMSCore 。

5. 運(yùn)行配置OpenIMSCore

a) CSCF 配置

進(jìn)入/opt/OpenIMSCore/ser_ims/cfg/文件夾執(zhí)行替換腳本configurator.sh #cd /opt/OpenIMSCore/ser_ims/cfg/

#bash configurator.sh

在提示的Domain :輸入open-ims.test (也可輸入其他域名如jinmei.com ,但是改動域名之后相應(yīng)的還應(yīng)更改DNS 中的設(shè)置,以及其他相關(guān)的設(shè)置,這個暫時還沒有統(tǒng)計),提示IP :則輸入IMS 服務(wù)器的IP 。

注:這個腳本目前還有些問題,不能執(zhí)行第二次修改,如果IMS 服務(wù)器想換一個IP 和域名會比較麻煩一點。下面附上我更改過后的腳本,可無限制的更改IP 和域名。

***************************************************************** configurator.sh 紅色字體為修改的地方

#!/bin/bash

# Initialization & global vars

# if you execute this script for the second time

,

# you should change these variables to the latest

# domain name and ip address

DOMAIN="open-ims.test"

IPADDR="127.0.0.1"

DDOMAIN=`echo $DOMAIN | sed 's/././g'`

DSDOMAIN=`echo $DOMAIN | sed 's/././g'`

DEFAULTIP=`echo $IPADDR | sed 's/././g'`

CONFFILES=`ls *.cfg *.xml *.sql *.properties 2>/dev/null`

# Interaction

printf "Domain Name:"

read domainname

printf "IP Adress:"

read ip_address

# input domain is to be slashed for cfg regexes

slasheddomain=`echo $domainname | sed 's/././g'`

if [ $# != 0 ]

then

printf "changing: "

for j in $*

do

sed -i -e "s/$DDOMAIN/$domainname/g" $j sed -i -e "s/$DSDOMAIN/$slasheddomain/g" $j sed -i -e "s/$DEFAULTIP/$ip_address/g" $j

printf "$j "

done

echo

else

printf "File to change ["all" for everything, "exit" to quit]:" # loop

while read filename ;

do

if [ "$filename" = "exit" ]

then

printf "exitting...n"

break ;

elif [ "$filename" = "all" ]

then

,

printf "changing: "

for i in $CONFFILES

do

sed -i -e "s/$DDOMAIN/$domainname/g" $i

sed -i -e "s/$DSDOMAIN/$slasheddomain/g" $i

sed -i -e "s/$DEFAULTIP/$ip_address/g" $i

printf "$i "

done

# Xing.Yuan add 20081023

sed -i -e "s/$DOMAIN/$domainname/g" $0

sed -i -e "s/$IPADDR/$ip_address/g" $0

printf "$0 "

#end add

echo

break;

elif [ -w $filename ]

then

printf "changing $filename n"

sed -i -e "s/$DDOMAIN/$domainname/g" $filename sed -i -e "s/$DSDOMAIN/$slasheddomain/g" $filename sed -i -e "s/$DEFAULTIP/$ip_address/g" $filename

else

printf "cannot access file $filename. skipping... n" fi

printf "File to Change:"

done

fi

***************************************************************** 修改完成后將cfg 文件夾下的以sh ,xml ,cfg 結(jié)尾的文件全部復(fù)制到/opt/OpenIMSCore目錄下,

#cp /opt/OpenIMSCore/ser_ims/cfg/*.sh /opt/OpenIMSCore

#cp /opt/OpenIMSCore/ser_ims/cfg/*.xml /opt/OpenIMSCore

#cp /opt/OpenIMSCore/ser_ims/cfg/*.cfg /opt/OpenIMSCore

b) HSS

執(zhí)行/opt/OpenIMSCore目錄下的fhoss.sh 腳本即可正常啟動HSS 。

通過網(wǎng)頁http://localhost:8080即可訪問數(shù)據(jù)庫,有兩個賬戶默認(rèn)是可以登錄的,用戶名:hss 密碼:hss 。擁有修改權(quán)限的用戶名和密碼為hssAdmin ,hss 。

,

如果需要網(wǎng)絡(luò)中的其他PC 通過web 訪問數(shù)據(jù)庫后臺,需要修改在FHoSS/deploy目錄下的hss.properties 文件,用vi 將其他開將其中的host=127.0.0.1改為IMS 服務(wù)器的IP 地址,重新執(zhí)行fhoss.sh 即可。

曾經(jīng)遇到的小問題:

hss 啟動的腳本實際上應(yīng)該是FHoSS/deploy下的腳本startup.sh ,所以一開始使用的是在命令行執(zhí)行bash FHoSS/deploy/startup.sh,但是總不能正常啟動。

解決辦法,通過查看fhoss.sh 文件就可以看到有一行命令cd /opt/OpenIMSCore/FHoSS/deploy/這一行就知道,執(zhí)行startup.sh 時必須要求當(dāng)前目錄為/opt/OpenIMSCore/FHoSS/deploy/,不能在其他目錄的時候直接執(zhí)行bash /opt/OpenIMSCore/FHoSS/deploy/startup.sh。

在shell 命令行分別執(zhí)行腳本pcscf.sh icsch.sh scscf.sh fhoss.sh 即可啟動IMS 服務(wù)器了。(ctrl shift T可啟用終端新標(biāo)簽)

6. 驗證IMS 服務(wù)器

OpenIMSCore 只是服務(wù)器端,只是服務(wù)器端在運(yùn)行是無法驗證IMS 服務(wù)器工作正常的,所以還需要客戶端來驗證,我采用的是軟終端OpenIC 和UCTIMSClient 。(安裝client 的在后文中再講)

在遠(yuǎn)端利用UCTIMSClient 、OpenIC 軟終端可利用默認(rèn)的bob@open-ims.test,alice@open-ims.test注冊,發(fā)message ,打電話等。兩種軟終端之間也可相互通信。

注:另外一個軟終端IMSCommunicator 應(yīng)該也是可以的,可能是我配置不正確,始終注冊不上。X-lite 等傳統(tǒng)的SIP 終端收到服務(wù)端發(fā)回的401(rfc3261)信息后(通過wireshark 抓包) 因為缺少鑒權(quán)交互不能正常的登錄。

如果需要添加其他用戶,則可以通過腳本add-imscore-user.sh 腳本來添加 例如增加用戶yuanxy :

#./add-imscore-user.sh –u yuanxy –a

刪除用戶yuanxy :

#./add-imscore-user.sh –u yuanxy –s

默認(rèn)的密碼為用戶名,如果需要設(shè)置其他信息詳細(xì)閱讀ser_ims/cfg下的 cfg.dox 文檔。

問題:實際上這個腳本是有錯誤的,并不能正常的添加用戶,仔細(xì)查看腳本就可以發(fā)現(xiàn),這個腳本是在往數(shù)據(jù)庫hssdb 中添加用戶,但是mysql (mysql 環(huán)境下命令show databases; )中可以看到數(shù)據(jù)名實際是hss_db,并且腳本在insert 到USER 表格中的幾個屬性名也都是錯誤的。腳本中有的地方可以看到_imsu,可以將_imsu全部去掉。

7. 基于IMS 的軟終端

1) OpenIC

,

Linux 下安裝OpenIC

① 首先解壓下載下來的文件OenIC_Lite.tar.gz

② 修改OpenIC_Lite.sh的屬性:在解壓好的目錄里右鍵點擊

OpenIC_Lite.sh,在" 權(quán)限" 標(biāo)簽頁里把所有的" 訪問" 都修改為" 讀寫" ,點選" 允許以程序執(zhí)行文件" 。

③ 用編輯器打開OpenIC_Lite.sh文件,修改JA V A HOME為你安裝

的jdk 的jre 的路徑,修改后的文件如下:

#!/bin/bash

# ---------------------

# set JAV A_HOME to your own preferences

# ---------------------

JA V A_HOME=/usr/java/jdk1.6.0_05/jre

# --------------------------------------------------------------

# Include JAR Files

# --------------------------------------------------------------

④ 雙擊執(zhí)行OpenIC_Lite.sh文件。

⑤ 執(zhí)行后首先要配置User Profile,Display name里面寫上你自己喜

歡的名字,.etc Brad Pitt。由于OpenIMSCore 里的HSS 里面默認(rèn)有兩個用戶 bob@open-ims.test和alice@open-ims.test,所以以bob 為例,我們在Public Identity里面輸入sip:bob@open-ims.test,在Private Identity里面輸入bob@open-ims.test, Secret Key,就是注冊key ,可以在HSS 里面看到,默認(rèn)的bob 的密碼就是bob ,alice 的密碼就是alice .

⑥ . 然后配置Server Profile,在Proxy IP里面填入P -CSCF 的IP (!)

地址,我的是127.0.0.1,Port Nr就是P -CSCF 的端口,我的是4060, Realm 是IMS 的域名,我的是open-ims.test 。

⑦ Application 里面是你要訂閱的業(yè)務(wù),寫得很明白。免費(fèi)版,連個

presence 都沒有..

點擊save ,開始運(yùn)行。

ii. windows xp下安裝OpenIC

OpenIC 是基于java 開發(fā)的客戶端,只需要先安裝java 虛擬機(jī)如jre-1_5_0-windows-i586.exe,再安裝OpenIC 就可以,這個是最簡單的安裝方式。

需要的注意的是在Proxy Server的填寫格式為:192.0.22.58:4060/UDP 如果安裝OpenIC 開始時提示錯誤,是提示window 桌面主題的問題,可將windows 主題改為Windows XP 就不會報錯,不管它應(yīng)該也不會有什么問題,開源軟件可能做的不是太好。

Application 里面是你要訂閱的業(yè)務(wù),寫得很明白。免費(fèi)版,連個presence 都沒有,presence 是要收費(fèi)的。

2) UCTIMSClient

這個軟終端安裝起來非常復(fù)雜,他的源代碼中并沒有把osip ,gstream ,gtk ,libxml ,libcurl 等包含進(jìn)去,這就要求你在運(yùn)行環(huán)境中將這些自己手動安裝完成 i.

標(biāo)簽: