«

»

May 22

利用OpenIMSCore搭建基于Ubuntu 10.4 的IMS TestBed

      工作转型以来的这几年,一直在从事核心网的开通运维工作,见证了软交换设备的大规模部署、全网进行VoIP改造等一幕幕振奋人心的演进场景。尤其是这一两年来,核心网领域从传统的电路交换到软交换的演进正在以前所未有的速度向前迈进,原有封闭的电信基础领域,正在向IT化转型。在组网基础架构上,传统的SS7将被SIP所取代,TDM电路全面的IP化,AS将成为智能网的未来,各厂家封闭的数据库逐渐或者已经开始投入了Oracle或是LDAP的怀抱;而硬件架构体系也将不在是各个厂家比拼总线带宽、计算性能、端口数量的时代,行业统一的ATCA平台将成为业内的统一标准。

      架构在变,人员的技能也必然的要随之改变,可以预见,融合网络的未来是IMS,从业人员的技能需求将进行全面的更新:

1、xNix操作系统

2、数据库

3、IP技能

4、通信规范(3GPP)

      BL中除了第4点是行业一直以来的要求外,1、2、3对CS工程师来说,都将是新的挑战。
     非常幸运,学习OpenIMSCore的过程将会给大家带来以上1至3点的全新知识体系,我想这是一个难得的捆绑知识的好机会,所以,今天开始,我会向大家介绍并且一起学习这个平台,与各位一起,面对全新的挑战吧。

      Ubuntu是一款基于Debian的较容易上手的桌面Linux,,恰巧由于创始人与Ubuntu的亲密关系,OpenIMSCore的官方文档基本上也都是基于Ubuntu的,所以,今天的文档中,我们将基于最新的Ubuntu 10.4版本,带领各位一起进入IMS的殿堂。

       考虑到文章的篇幅和对CSer的信心,首先我需要根据我这些年的经验做一个假设,我非常相信各位CSer的技能,所以,假设大家完全具有在虚机上安装好Ubuntu 10.4的Competence,并且已经部署好了这套系统(再次的推销一下Ubuntu,安装过程真是太高效了,和前几年装RedHat7.2的过程比起来,不只是超越!)

        Okey,开始我们的正题。

1.SVN 软件包管理环境的建立

什么是SVN:SVN 是Subversion的缩写,是一个开源的版本控制系统,稍后我们将使用SVN来下载OpenIMSCore的源码。

为了后面的操作方便,建议大家在进入终端后先执行一下sudo su,这样你就可以一直以root的身份干活了

MML:apt-get install subversion

2. 下载OpenIMSCore源码

2.1 首先在/opt 下建立OpenIMSCore目录

     mkdir /opt/OpenIMSCore

2.2 进入 /opt/OpenIMSCore

     cd /opt/OpenIMSCore

2.3 建立ser_ims目录

      mkdir ser_ims

2.4下载CSCF源码

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

2.5 建立FHoSS 目录

mkdir FHoSS
2.6 下载HSS源码

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

3.软件环境预安装

    在正式的编译安装OpenIMS前,各位先热身一下,通过apt-get 命令,熟悉一下Ubuntu下软件的安装方法

    按照官方文档的要求,OpenIMSCore需要以下一堆的软件环境

  • ~100 MBytes of disk space to be on the safe side
  • GCC3/4, make, JDK1.5, ant
  • MySQL installed and started (or other DBMS if you can deal with it)
  • bison, flex
  • libxml2 (> 2.6), libmysql – both with development
  • Linux kernel 2.6 and ipsec-tools (setkey) if you want to use IPSec security
  • Optional: openssl if you would like to enable the TLS security
  • bind installed and running (or other name server if you can deal with it)
  • Browser on the box or that can connect to the box (for user provisioning)

看上去好像有点烦?什么bison、libxml2乱七八糟的?别管他,我们只是要熟悉一下安装方法,组件的用途,以后我会和大家介绍,先照着以下的命令执行:

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

三项注意:

  • 装mysql的时候系统会要求设置密码,咱们搞交换的都有好习惯对吧?这里设置一个密码,这里我们用 123456 ,记住,稍后要用到它
  • Ubuntu10.4取消了sun-java的源,替代为OpenJDK,所以,在安装Sun-Java6-JDK 前要先添加一下软件源:”system->administration–>software sources–other software–>select http://archive.canonical.com/ubuntu
  • 毕竟是桌面Linxu嘛,name服务还是要自己安装一下,所以需要手动下载一个bind9

4.OpenIMSCore 软件编译

  cd ser_ims
  make install-libs all
  cd ..
  cd FHoSS
  ant compile
  ant deploy
  cd ..
编译好的结果,就是你的/opt/OpenIMSCore 目录会华丽的变身
5.很好,到这里,OpenIMSCore就安装好了,剩下是网络基础环境的配置
5.1 配置DNS服务
还记得之前联系apt-get命令时候,安装了一个bind9吗?是的,它就是用来提供DNS服务的。
在IMS中,DNS服务是非常重要的,P-CSCF\S-CSCF\I-CSCF\HSS 是用主机名进行通信的,需要通过DNS来访问到正确的主机。
在/opt/OpenIMSCore/ser_ims/cfg/目录下,已经有了一个样本文件,我们需要做的是把它拷贝到/etc/bind/目录下供我们调用
  cp /opt/OpenIMSCore/ser_ims/cfg/open-ims.dnszone /etc/bind/
修改name.conf.local文件
  vi /etc/bind/named.conf.local (如果你对vi不熟悉,也可以用gedit修改 sudo gedit /etc/bind/named.conf.local
不过建议大家还是要尽可能掌握vi的,行有行规嘛

修改成如下形式

  zone “open-ims.test” {    
       type master;     
       file “/etc/bind/open-ims.dnszone”;
 };
之后重启一下name服务
  service bind9 restart
5.2 修改本机的DNS服务器
  vi /etc/resolv.conf
  # Generated by NetworkManager
   search 127.0.0.1
   nameserver 127.0.0.1
修改好了,让我们来测试一下
  ping hss.open-ims.test
92747118
恩,看到了吗?主机名可以正确的被解析了
5.3 配置mysql(PSW:123456)
  mysql -u root -p -h localhost < ser_ims/cfg/icscf.sql
  mysql -u root -p -h localhost < FHoSS/scripts/hss_db.sql
  mysql -u root -p -h localhost < FHoSS/scripts/userdata.sql 

这里系统会提醒你"Enter password:”,还记得前面我们装mysql时设置的密码吧,123456,输进去
6.启动OpenIMSCore6.1 拷贝脚本到为了方便,我们把启动脚本拷贝到/opt/OpenIMSCore目录下
 cp ser_ims/cfg/*.cfg /opt/OpenIMSCore/
 cp ser_ims/cfg/*.xml /opt/OpenIMSCore/
 cp ser_ims/cfg/*.sh /opt/OpenIMSCore/
6.2 链接Java环境链接一下Java,否这hss启动的时候会报java环境出错
 ln -s /usr/bin/java /bin/java
6.3 启动IMS
cd /opt/OpenIMSCore
./pcscf.sh
./icscf.sh
./scscf.sh
cd /opt/OpenIMSCore/FHoSS/deploy
./startup.sh
搞定,让我们看看成功的DEBUG信息
Ubuntu-2010-05-22-20-33-59
6.4 登录HSS
http://localhost:8080 Username/Password: hss/hss系统已经内置了两个用户,alice&bob,
很遗憾不是Lili&Lucy,不过没有关系,不就一个名字嘛,下一次,我们将用这两个账户来进行First Call
Ubuntu-2010-05-22-20-37-05
今天就先到这里。
感受到OpenIMSCore的有趣了吗?网络上关于OpenIMSCore还是比较多的安装教程,和其他朋友分享的过程也基本上大同小异.
我的风格是如果有机会,都会亲手做一遍,做些总结,希望对大家有帮助,当然,后续我还会对这个话题与大家做进一步的分享。
有其他问题,可以利用Wordpress的评论向我留言,do not hesitate to tell me,我会尽可能的回答力所能及的问题。
参考文档:
http://www.openimscore.org/installation_guide#installscript
http://zh.wikipedia.org/zh-cn/Subversion
http://www.vpsee.com/2009/07/install-configure-openimscore/

2 comments

  1. Norz

    你好,我最近也在使用OpenIMSCore,但是想要做进一步的扩展,比如在上面做一些呼叫转移或者呼叫转接这样的功能,但是却找不到入手点…不知道前辈能不能给点意见呢?

  2. Anonymous

    在配置DNS那部分,我试了,还得进行如下配置才能ping通
    执行ser_ims/cfg/configurator.sh,在domain中输入open-ims.test,IP Adress中输入127.0.0.1
    #cp /etc/resolv.conf /etc/resolvBAK.conf
    #gedit /etc/resolv.conf 写入如下信息
    nameserver 127.0.0.1
    search open-ims.test
    domain open-ims.test

    #/etc/init.d/bind9 restart
    #ping open-ims.test

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>