安装和配置 OpenIMS Core
2009年07月14日 | 标签: ims, sip | 作者:vpsee
最开始听说 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
之前一直用这个openimscore兼备imsloader和sipp作测试,挺好的平台。
openimscore上是有presence模块,现在用mobicents sip presence server希望把它们融合,但一直融不了。还有其他方法实现openims的presence吗,求教!!