安装和配置 OpenIMS Core

openimscore

最开始听说 OpenIMSCore 是在毛里求斯的一次会议上,这个项目是德国的 Fraunhofer FOKUS 赞助的,主管是一个德国教授,他也是那次会议的一个 key speaker,他在会上不停的谈到这个东东,我对电信那一层不熟悉,不怎么懂,从软件层面来看我总觉得是类似于 Asterisk,SIP Express Router(SER)一样的平台,感觉 OpenIMSCore 实际上就是在 SER 上面加了一层多媒体而已,而且文档/代码还处在学术阶段,不可靠,所以一直没有怎么关注。后来去了几次 University of Cape Town,得知他们有个小组专做 OpenIMSCore,也是 Fraunhofer FOKUS 赞助的,在这个项目上面发了很多 paper,OpenIMSCore 的 client:UCT IMS Client 就是他们开发的,后来还知道那个主管 OpenIMSCore 的德国教授是 UCT 的一个 visiting professor,扒远了~~

最近 VPSee 的 sponsor 对 IMS 产生兴趣,希望我能跟一下,看看能不能把本人的一个有点关联的项目和 OpenIMSCore 集成一下,我的项目里用到了 SIP/SIMPLE 和后台的 Asterisk/OpenSER。OpenIMSCore 也兼容 SIP,而且也是在 SER 基础上扩展的,应该和我的项目集成起来不会有什么困难,在 VPSee 的眼里 OpenIMSCore 就是一个加强了的 SER。

下面是安装在 Ubuntu 9.04 Desktop 版本上的过程,Ubuntu 的其他版本也应该可以。为了减少痛苦,建议在 Ubuntu 上安装 OpenIMSCore,配置文件/文档什么的都是为 Ubuntu 写的。八卦一下,UCT 是 Ubuntu 的铁杆粉丝,Ubuntu 的创始人就毕业于 UCT.

下载和安装

官方网站下载 source code,我本来懒得安装配置,想下载一个 vmware image 版本直接运行,结果 image 太大,下载老出错。刚好我们组在 UCT 有个 workshop,所以路过就找 UCT 的人要了个 hard copy,不过是 source code 的,他们自己都不用那个 image 版本,软件开发行业有句话叫做:“eat your own dog food”,既然他们都不 eat,那我也不 eat 他们的了:)

mkdir /opt/OpenIMSCore
cd /opt/OpenIMSCore

mkdir ser_ims
svn checkout http://svn.berlios.de/svnroot/repos/openimscore/
ser_ims/trunk ser_ims

mkdir FHoSS
svn checkout http://svn.berlios.de/svnroot/repos/openimscore/
FHoSS/trunk FHoSS

安装必要的软件包

sudo apt-get install bison flex libxml2 libxml2-dev bind9
sudo apt-get install mysql-server libmysqlclient15-dev 
sudo apt-get install sun-java5-jdk ant

编译

cd /opt/OpenIMSCore

cd FHoSS 
ant compile deploy 
cd ..

cd ser_ims 
make install-libs all 
cd ..

配置 DNS

拷贝 DNS 配置文件,编辑 named.conf.local:

sudo cp /opt/OpenIMSCore/ser_ims/cfg/open-ims.dnszone /etc/bind/

vi /etc/bind/named.conf.local
zone “open-ims.test” {
    type master;
    file “/etc/bind/open-ims.dnszone”;
};

重启 DNS 服务,然后用 ping 测试:

sudo /etc/init.d/bind9 restart

ping open-ims.test
PING open-ims.test (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.020 ms
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.027 ms
...

配置 OpenIMSCore

cd /opt/OpenIMSCore

mysql -u root -p < FHoSS/scripts/hss_db.sql 
mysql -u root -p < FHoSS/scripts/userdata.sql

mysql -u root -p < ser_ims/cfg/icscf.sql 

cp ser_ims/cfg/*.cfg . 
cp ser_ims/cfg/*.xml . 
cp ser_ims/cfg/*.sh .

运行 OpenIMS Core

/opt/OpenIMSCore/pcscf.sh
/opt/OpenIMSCore/icscf.sh
/opt/OpenIMSCore/scscf.sh

/opt/OpenIMSCore/FHoSS/deploy/startup.sh

如果在启动 startup.sh 时遇到:startup.sh: line 15: /bin/java: No such file or directory 说明 JAVA_HOME 没有设置好,首先定位 java 装在哪里,然后修改 .bashrc 设置环境变量,把 java 的路径加到 JAVA_HOME。

locate /rt.jar

cd
vi .bashrc
export JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun
source .bashrc

重新启动 startup.sh,打开浏览器输入 http://localhost:8080, 用户名/密码是:hss/hss。 登录后会报错,原因是要用 root 启动 Tomcat,FHoSS 运行在 Tomcat 上:

sudo ./startup.sh

如果这个时候提示找不到 /bin/java,需要做个连接:

sudo ln -s /usr/bin/java /bin/java

再次启动 startup.sh,用浏览器登录 http://localhost:8080 后就可以看到欢迎界面了。

用 uctimsclient 测试

到 http://uctimsclient.berlios.de/ 下载 OpenIMS Core 的客户端 uctimsclient,先安装必要软件包,然后安装 uctimsclient:

sudo apt-get install libavcodec52 libosip2-dev libexosip2-dev
sudo apt-get install libgtk2.0-dev libxml2-dev libcurl4-dev libvlc-dev vlc
sudo apt-get install libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev
sudo apt-get install libavcodec-unstripped-52 

sudo dpkg -i uctimsclient1.0.13.deb

dpkg -i uctimsclient1.0.13.deb 时会报错,这里有几个 dependency 问题需要解决:需要 libavcodec51 而不是上面最新的 libavcodec52,所以要把 libavcodec52 删除,手动下载和安装 libavcodec51;需要 libavcodec-unstripped-51 而不是 libavcodec-unstripped-52,手动下载 libavcodec-unstripped-51,安装 libavcodec-unstripped-51 前需要先安装 libx264-59。

运行 uctimsclient,如果这个时候报错,则需要安装 libcurl 后再次运行:

uctimsclient: error while loading shared libraries: libcurl.so.4: cannot open shared object file: No such file or directory

apt-get install libcurl3

uctimsclient

评论 (2 Comments)

  1. 之前一直用这个openimscore兼备imsloader和sipp作测试,挺好的平台。

  2. openimscore上是有presence模块,现在用mobicents sip presence server希望把它们融合,但一直融不了。还有其他方法实现openims的presence吗,求教!!

发表评论