1 安装步骤

1
2
yum install  svn  bison flex libxml2  libxml2-devel  bind9  curl curl-devel  mysql-server  mysql-devel  ant  gcc g++
libmysqlclient15-devel 找不到 ipsec-tools 找不到,不用ipsec的话,不安装

service mysqld start
mysqladmin -u root password ‘UfmIvJUvD4fpt’;

mkdir /opt/OpenIMSCore
cd /opt/OpenIMSCore
mkdir FHoSS
svn checkout svn://svn.code.sf.net/p/openimscore/code/FHoSS/trunk FHoSS
mkdir ser_ims
svn checkout svn://svn.code.sf.net/p/openimscore/code/ser_ims/trunk ser_ims
cd FHoSS
ant compile deploy
cd ..
cd ser_ims
make install-libs all
cd ..
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 .

2 参考

http://openimscore.sourceforge.net/?q=installation_guide
ser_ims
http://openimscore.sourceforge.net/docs/ser_ims/main.html
FHoSS
http://openimscore.sourceforge.net/docs/FHoSS/using.html

https://clearwater.readthedocs.io/en/stable/OpenIMSCore_HSS_Integration.html
https://github.com/openbaton/clearwater-packages
http://openimscore.sourceforge.net/?q=installation_guide
http://openimscore.sourceforge.net/docs/FHoSS/using.html
https://www.mehic.info/2011/12/openimscore-installation-and-configuration-guide/
https://hub.packtpub.com/webrtc-sip-and-ims/
https://github.com/openbaton/openimscore-packages
readme: https://nil.uniza.sk/building-debian-packages-openimscore/

2.1 开源SIP

opensips
https://opensips.org/Documentation/Manuals
openbaton
https://openbaton.org/documentation/nfvo-installation/index.html
open5Gs
https://github.com/open5gs/open5gs
asterisk
https://www.asterisk.org/downloads/
kamailio
www.kamailio.org
freeswitch
https://freeswitch.com/

2.2 OpenIMSCore : Installation andConfiguration Guide

December 4, 2011

Hi there, my current project (also and next few
posts) will be on subject of IMS. For faculty research I must install and
examine an I-CSCF part of IMS subsystem. So let’s go :

The IP
Multimedia Subsystem or IP
Multimedia Core Network Subsystem (IMS)
is an architectural framework for delivering Internet Protocol (IP) multimedia services. It
was originally designed by the wireless standards body 3rd
Generation Partnership Project
 (3GPP), as a part of the vision for
evolving mobile networks beyond GSM.
Its original formulation (3GPP Rel-5) represented an approach to delivering
“Internet services” over GPRS.
This vision was later updated by 3GPP, 3GPP2 and ETSI TISPAN by requiring support
of networks other than GPRS, such as Wireless LANCDMA2000 and fixed line.

To ease the integration with the
Internet, IMS uses IETF protocols
wherever possible, e.g. Session Initiation Protocol (SIP). According to the 3GPP,[1] IMS
is not intended to standardize applications but rather to aid the access of
multimedia and voice applications from wireless and wireline terminals, i.e.
create a form of fixed-mobile convergence (FMC). This is done by having a horizontal
control layer that isolates the access network from the service
layer
. From a logical architecture
perspective, services need not have their own control functions, as the control
layer is a common horizontal layer. However in implementation this does not
necessarily map into greater reduced cost and complexity.

Alternative and overlapping technologies for
access and provisioning of services across wired and wireless networks include
combinations of Generic Access
Network
soft
switches
 and “naked” SIP. (SOURCE : wiki)

The network architecture, IP Multimedia Subsystem
(IMS) has become standard thanks to the collaboration of Telecoms &
Internet converged Services & Protocols for Advanced Networks (TISPAN) and
The Third Generation Partnership Project (3GPP) standardization committees set
up by the body European Telecommunications Standards Institute (ETSI).

IMS (IP Multimedia Subsystem) plays an important
role in delivering key services such as Quality of Service (QoS), security,
instant messaging (IM), IP Television (IPTV), etc.. both fixed and mobile
networks.

The basic structure of IMS that enables it to
support IM and chat services is as follows:

  • Home Subscriber
    Server (HSS)
  • Proxy – Call
    Session Control Function (P-CSCF)
  • Interrogating –
    Call Session Control Function (I-CSCF)
  • Serving – Call
    Session Control Function (S-CSCF)

What is OpenIMSCore?

OpenIMSCore is an OpenSource project (Fraunhofer
FOKUS, German organization that focuses on research and development of new
technologies) which produced the eponymous software: software that implements
the functionality of the 3 types of CSCF and an approximate version, but still
effective, HSS. The project OpenIMSCore appartiente an OpenSource project
OpenIMS Playground (managed by the same group FOKUS) much more extensive than
trying to implement all the services defined by the IMS standard.

For more information about Playground OpenIMS
OpenIMSCore and I recommend you look at the following sites:

http://www.openimscore.org/

http://www.fokus.fraunhofer.de/bereichsseiten/testbeds/ims_playground/index.php?lang=en

Early IMS

There is a need for an IMS version that offers
similar features but doesn’t require the investments necessary for full IMS.
This version has been defined as Early IMS, and has the following advantages:

  • The user entity
    does not have to support IPv6
  • The user entity
    does not require an USIM/ISIM
  • The user entity
    does not have to support IPsec

However, as some of the IMS security mechanisms
rely on the presence of a USIM/ISIM, such as user identification, the use of
Early IMS has security implications that should be acknowledged.

Advantages and Issues

Advantages over existing systems

  • The core network is
    independent of a particular access technology
  • Integrated mobility
    for all network applications
  • Easier migration of
    applications from fixed to mobile users
  • Faster deployment
    of new services based on standardized architecture
  • An end to unique or
    customized applications, leading to lower CAPEX and OPEX
  • New applications
    such as presence information, videoconferencing, Push to talk over
    cellular (POC), multiparty gaming, community services and content sharing.
  • Evolution to
    combinational services, for example by combining instant messaging and
    voice
  • User profiles are
    stored in a central location
  • The architecture is
    designed for easy scalability and redundancy

Differences with free VoIP

It’s possible to run free VoIP applications over
the regular Internet. Then why do we need IMS, if all the power of the Internet
is already available for 3G users?

  • Quality of Service
    : The network offers no guarantees about the amount of bandwidth a user
    gets for a particular connection or about the delay the packets
    experience. Consequently, the quality of a VoIP conversation can vary
    dramatically throughout its duration.

  • Contrasting view:
    The underlying routing structure of the Internet can effectively
    eliminate bandwidth and latency issues for the vast majority of VoIP
    calls. And what the Internet itself doesn’t handle can be handled by
    sophisticated audio processing at the terminal endpoints of calls.

  • Re-Contrasting
    view: The Internet Core network may handle bandwidth and latency issues,
    mainly due to statistical reasons. The problem with free VoIP is that
    the Internet Access Provider can not easily differentiate free VoIP
    service from any further bandwidth consuming application in the access
    network. Especially the last mile is the bottleneck and with IMS the
    ISP/operator can guarantee QoS since he “knows” which service (e.g.
    VoIP) has been requested by the user.

  • Charging of
    multimedia services : Videoconferences can transfer a large amount of
    information, but the telecom operator can’t charge separately for this
    data. Some business models might be more beneficial for the user (for
    instance: a fixed price per message, not per byte); others might charge
    extra for better QoS.

  • Contrasting view:
    Complex charging structures are a legacy of the telephone industry and
    are not needed on Internet connections which are typically flat-rate. The
    cost of monitoring traffic to distinguish between different types of
    bytes greatly adds to the cost of delivering those bytes.

  • Re-Contrasting
    view: IMS charging is very simple and built-in. An unlimited flat-rate
    for all users would penalize the majority of users who are not
    interested in downloading several GBytes of movies per week. A flexible
    (volume, session – time & service, event based) charging
    architecture creates new opportunities and can be much more attractive
    for the end-user.

  • Integration of
    different services : an operator can use services developed by third
    parties, combine them, integrate them with services they already have, and
    provide the user with a completely new service. For example: if voicemail
    and text-to-speech is combined, a voice version of incoming text messages
    can be provided for blind users.

  • Contrasting view:
    IMS requires that all services be integrated into, and delivered by the
    operator’s network. Therefore only those services that “pass muster” with
    the operator will be supplied to their customers. Operators must incur
    integration costs, and both the network operator and the third-party
    service offeror must reach a business agreement on the revenue model for
    offering the service. Third-party services that network operators don’t –
    for whatever arbitrary reason – want to offer will never be seen by
    consumers. This is a dramatic difference from the Internet, where anyone
    can offer any website service to anyone with an Internet connection.

  • Re-Contrasting
    view: Any operator controlled service needs to be integrated to
    guarantee stability, quality, security and ease-of-use. With IMS the
    integration is just easier (e.g. due to centralized User database) and
    reduces costs (OPEX and CAPEX – e.g. due to service independent Call
    Session Controller). With IMS the end-user can expect Internet like
    services – just without more or less complicated log-in procedures or
    security concerns. For sure, the Internet community will always be
    faster in developing potential new applications.

Install Guide

The following installation guide has been tested
on two Ubuntu releases: Ubuntu 7.04 Feisty Fawn and Ubuntu 7.10
Gutsy Gibbon. Also I’m currently using Ubutnu 10.10, and I didn’t note any
problem, so you may follow this guide for that version of Ubutnu. In
addition, this guide in order to test the correct functionality of the system
will propose the installation and configuration of a client SIP / IMS
UctIMSClient (client developed by the University of Cape Town in South Africa: http://uctimsclient.berlios.de
/
 ) that helps to determine if the SIP messages are processed
correctly by the architecture. If you do not want to use this software you
can use any SIP client / IMS stress including:

In these cases, at least in the first instance we
do not propose a guide to installing it a configuration. However, for
those who want to try, such software is easy to setup and configure them for
the information can be easily obtained from the information used to configure
UctIMSClient, which from a didactic point of view is the most complete.

For those wishing to implement a greater number of
services and components, the University of Cape Town has created the code and
its help to install them. In particular, services, products and related
installation guides are:

My guide will be a fusion and integration with
personal configurations that allowed the software to run properly with
ease. In particular, the guides are used:

As you can see, most of the guides running on
Ubuntu and in many cases on Ubuntu 7.10 Gutsy Gibbon.

OpenIMSCore: download the source code

To download the source code we
need subversion package:

sudo apt-get install subversion

We create folders in which it will place the
downloaded source code:

sudo mkdir / opt / OpenIMSCore /

We give you the rights with which we access
usually to work on the required folder / opt / OpenIMSCore:

sudo chown-R username / opt / OpenIMSCore /

where instead of username insert the
user name that we usually use.

We then create the folders in which you place the
code: the code will be placed in a compiled that will produce the features of
the CSCF and the other will place the compiled code that will produce the
features of HSS.

cd / opt / OpenIMSCore

mkdir ser_ims

mkdir FHoSS

Now we download the code:

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

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

In this case, we consider that the internet
connection is done in a straightforward manner. If we are behind a proxy
must properly configure subversion.

OpenIMSCore: Install the necessary
packages for compiling

We need a number of packages to compile. To
install a terminal run the following command:

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

OpenIMSCore: configure the DHCP
Server and DNS Server

Since we are requiring that the DNS server turns
on our machine, then we must delete the # and activates the option prepend
domain-name-servers 127.0.0.1; in the file /
etc/dhcp3/dhclient.conf. Remember to open the following file with root
privileges.

Copy the file to open ims.dnszone in
the / etc / bind:

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

I remember that bind is a DNS server OpenSource.

Append to the file / etc / bind /
named.conf.local the following lines:

areas “open-ims.test” {

type master;

“/ etc / bind / open-ims.dnszone”;

};

Restart the DNS server with the following command:

sudo / restart etc/init.d/bind9

We need to ensure that the DNS server can be
contacted from our PC, which is why we edit the file / etc /
resolv.conf and add the following lines:

search open-ims.test

nameserver 127.0.0.1

We verify that it works properly pinging
pcscf.open-ims.test

ping-pcscf.open ims.test

As a rule, we get an answer. If the ping does
not work, restart the network interface (localhost) or attiviamola, in the case
has not been activated:

sudo / etc / init.d / networking restart

and rieseguiamo ping with the command described
above.

This is the most complex phase of the entire
installation as in many cases the software does not work properly due to
incorrect configuration of the server bind.

OpenIMSCore: Configure Database

IMS architecture as it happens, even in
OpenIMSCore implements a MySQL database. For this reason we must set it by
introducing the information is related to I-CSCF to HSS that.

Run the following commands:

cd / opt / OpenIMSCore

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

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

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

There will be prompted for a password, which by
default is set in MySql: why simply press Enter.

OpenIMSCore: Building from source

Initially compile the CSCF. To do this we run
the following commands:

cd / opt / OpenIMSCore / ser_ims /

sudo make install-libs all

The duration of completion varies depending on the
characteristics of the machine where you install the software. In general,
the duration is between 5-10 minutes.

To fill the other hand HSS (FHoSS in OpenIMSCore)
we need to set the environment variable JAVA using the command:

export JAVA_HOME = “/ usr/lib/jvm/java-1.6.0-sun”

Since this environment variable must be set each
time you run the script for the execution of FHoSS, I advise you
to change. Bashrcpresent in your home directory:

gedit ~ /. bashrc

Glue the end the following string:

export JAVA_HOME = “/ usr/lib/jvm/java-1.6.0-sun”

export
CLASSPAT=.$JAVA_HOME/lib:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export PATH=$PATH:/usr/lib/jvm/java-6-sun/lib

save and close the file. Launch:

source ~ /. bashrc

to apply the changes to environment variables.

Compile using the following commands FHoSS

cd / opt / OpenIMSCore / FHoSS

ant compile deploy

Finally ZhDataType.xsd modify the file
in the directory / opt / OpenIMSCore / FHoSS / xsd /

gedit / opt / OpenIMSCore / FHoSS / xsd / ZhDataType.xsd

and replace the line

schemaLocation = “http://www.w3.org/2001/xml.xsd”
/>

with

schemaLocation = “file: / / / opt / OpenIMSCore / FHoSS / xsd /
xml.xsd” />

OpenIMSCore: Execution of various
scripts

To facilitate the implementation copy all files
and configuration of all FHoSS CSCF and associated run script in the / opt
/ OpenIMSCore /:

cp / opt / OpenIMSCore / ser_ims / cfg / * / opt / OpenIMSCore /

Finally we run all the entities
OpenIMSCore. I recommend you open a new tab (Ctrl + Male + T) to each
entity and set the tab title.

For P-CSCF lanciarce

/ Opt / OpenIMSCore / pcscf.sh

To run I-CSCF

/ Opt / OpenIMSCore / icscf.sh

To launch the S-CSCF

/ Opt / OpenIMSCore / scscf.sh

To launch FHoSS

/ Opt / OpenIMSCore / fhoss.sh

If you can see an error writing something like :”

set_mod_param_regax: No module
matching found  i ERROR
CURL_ERROR_SIZE”

it means that you must install

libcurl4-openssl-dev

and compile FhoSS from the
begining.

OpenIMSCore: Test and install
OpenIMSCore UctIMSClient

To test OpenIMSCore, UctIMSClient need to install
(in my case). If you want to install or use any other software that
supports SIP as explained in the introduction.

UctIMSClient: Installation guide will
be posted in next post.

UctIMSClient: Configuration

We must initially launch UctIMSClient, opening a
new tab and set the title of Bob:

uctimsclient

As a rule, the default settings UctIMSClient
conform to the information contained in the HSS and conform to the topology of
the network.The figure below presents the user configuration that Bob is
already configured in the database. The same configurations of
the Public User Identity unless, Private User
Identity and Password.

However in the case of Bob:

Also open another tab with the title of Alice and
launched another UctIMSClient:

uctimsclient

In the case of Alice:

UctIMSClient: sending the message
register and deregister SIP call

To run the register, simply click on
the Register as Alice in Alice’s case, the terminal, as well as in
the figure below, in the case of Bob, click on
the Register button as in the case of Bob Bob
terminal.

Simply click on
the Deregister deregister UctIMSClient to perform the desired user
that owns the client UctIMSClient.

I also recommend using
the Call key or Answer, ricordatoci to correctly address
the SIP address to which the call. If you are using the terminal of Alice,
the address where the call is to address sip: bob@open-ims.test, as
well as in the figure below.

OpenIMSCore: add new users and manage
HSS (optional)

To add a new user and to manage the HSS, we
facilitated the GUI is called through a web browser.

To do this, open Firefox and type in:

http://localhost:8080

You will be prompted for username and password
and enter the following information:

Username: hssAdmin

Password: hss

I remember it is case-sensitive.

OpenIMSCore: Customize the IMS
network

You can change the realm (in the case of default
was open-ims.test) and the IP address of the whole network (in case of default
was 127.0.0.1).

The developers have made ​​a bash script
called configurator.sh that lets you edit the configuration files
useful for customizing the IMS network on a single machine, that is, all the
scripts of various IMS entities must be launched from the same machine.

It ‘important to remember that this script can be
used only once from a successful installation: in practice, if installed
correctly OpenIMSCore, you can use configurator.sh, but if you edit
configuration files manually or use configurator.sh after OpenIMSCore
installing, you can not reuse the script and you are forced or edit
configurator.sh configurator.sh to make that effect to the new changes or you
need to manually edit the configuration file (this complex for the average
user)

The script is configurator.sh, if you followed
this guide, in / opt / openIMSCore. To customize the IMS network,
run:

. / Configurator.sh pcscf.cfg icscf.cfg icscf.xml scscf.cfg
scscf.xml ser_ims / cfg / icscf.sql FHoSS / deploy / DiameterPeerHSS.xml FHoSS
/ deploy / hss.properties FHoSS / scripts / hss_db.sql FHoSS / scripts /
userdata.sql

You will be asked, as mentioned previously, the
realm and the IP address.

Once done, you must update the database using the
shell the following commands:

cd / opt / OpenIMSCore

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

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

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

If you changed the IP or the realm, you must
review the information of users and network settings present in the HSS.

Finally, you must restart the various
entities. In particular, you have to block 3 CSCF using Ctrl + C while you
block FHoSS typing exit. Re-enabled services using respectively the
commands in the 4 tabs:

For P-CSCF lanciarce

/ Opt / OpenIMSCore / pcscf.sh

To run I-CSCF

/ Opt / OpenIMSCore / icscf.sh

To launch the S-CSCF

/ Opt / OpenIMSCore / scscf.sh

To launch FHoSS

/ Opt / OpenIMSCore / fhoss.sh

References and Support

We list the references that I made up.

As for support, pointing you to the possible ways
to get help:

Please test it and let me know if there are
errors in the guide or if you make mistakes in installing or configuring
OpenIMSCore. When it becomes stable, I think I will return in the ubuntu
documentation.

Until next time,

cheers from cold Sarajevo 

来自 https://www.mehic.info/2011/12/openimscore-installation-and-configuration-guide/