Introduction
I) Install OpenIMSCore with IP localhost : 127.0.0.11. Prerequisites:a. libxml2 b. libmysql c. bind9 d. bison e. flex f. mysql-server g. ant h. make i. jdk1.5 j. gcc3/4 2. Go to / directory through command prompt andmkdir opt cd opt mkdir OpenIMSCore cd OpenIMSCore mkdir ser_ims mkdir FHoSS 3. Change the permissions for opt folder created:chmod 777 -R /opt 4. Check out the code for OpenIMSCorecd /opt/OpenIMSCore/ 5.Create a new directory ser_ims and checkout the CSCFs there:mkdir ser_ims svn checkout http://svn.berlios.de/svnroot/repos/openimscore/ser_ims/trunk ser_ims 6.Create a new directory FHoSS and checkout the HSS there:mkdir FHoSS svn checkout http://svn.berlios.de/svnroot/repos/openimscore/FHoSS/trunk FHoSS 7.Compile ser_imscd ser_ims sudo make install-libs all 8.Configure FHoSS
java -version
cd FHoSS ant compile ant deploy #cd .. 9.Configure the Environment
10.Configure DNS
zone "open-ims.test" {
type master;
file "/etc/bind/open-ims.dnszone";
};
sudo cp ser_ims/cfg/open-ims.dnszone etc/bind/
# Generated by NetworkManager
search open-ims.test
domain open-ims.test
nameserver 127.0.0.1 127.0.0.1 localhost
127.0.0.1 open-ims.test mobicents.open-ims.test ue.open-ims.test presence.open-ims.test icscf.open-ims.test scscf.open-ims.test pcscf.open- ims.test hss.open-ims.test
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhostssudo /etc/init.d/bind9 restart == 11.Configure the IMS Core
o Copy the following files to /opt/OpenIMSCore or another location comfortable for you:pcscf.cfg, pcscf.sh, icscf.cfg, icscf.xml, icscf.sh, scscf.cfg, scscf.xml, scscf.sh,
o Take a look at the configuration files in FHoSS/deploy/ (available after Step 3 completes) 12. Configure MySQL
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.sql13. Start all nodes and hss: cd opt/OpenIMSCore
./pcscf.sh
./scscf.sh
./icsscf.sh
cd FHoSS/deploy
sh startup.shII) Configure OpenIMSCore with real IP
dig open-ims.test icscf.cfg & icscf.xml (opt/OpenIMSCore/) pcscf.cfg & pcscf.xml scscf.cfg & scscf.xml DiameterPeerHSS.xml (FHoSS/deploy)
hss.properties (FHoSS/deploy)=> Check the web interface on : http://127.0.0.1:8080/ account/pass: hss/hss
host=157.159.16.91 port=8080
<Acceptor port="3868" bind="157.159.16.91" /> III) Add new user in OpenIMSCore
add-imscore-user.sh -u <user> [-t <tel-URI>] [-r <realm> -p <password>] [-a|-d]
-u <user>: The username (e.g. 'brooke')
-t <tel-URI>: The tel-URI (e.g. 'tel:+49123456789'). If used with -a, -d requires
this parameter too!
-r <realm>: The realm. Default is 'open-ims.test'
-i <impi>: The Private Identity (e.g. 'brooke@open-ims.test'). The -u option overrides this.
-b <impu>: The Public Identity (e.g. 'sip:brooke@open-ims.test') The -u option overrides this.
-p <password>: The password. Default is value of -u option
-a: Automatically apply created add script
-d: Automatically apply created delete script
-c: Delete the scripts afterwards (by default they are not deleted)
example :
./add-imscore-user.sh -u tran
<USER>_imsu" (ex : tran_imsu) ---> <USER> (ex: tran) IV) Install Mobicents
mvn clean install -Pdeploy OPTIONS: ("Conference", "DAR:From", "ORIGINATING", "", "NO_ROUTE", "0")
REGISTER: ("Conference", "DAR:From", "ORIGINATING", "", "NO_ROUTE", "0")
INVITE: ("Conference", "DAR:From", "ORIGINATING", "", "NO_ROUTE", "0")
MESSAGE: ("Conference", "DAR:From", "ORIGINATING", "", "NO_ROUTE", "0")
NOTIFY: ("Conference", "DAR:From", "ORIGINATING", "", "NO_ROUTE", "0")
SUBSCRIBE: ("Conference", "DAR:From", "ORIGINATING", "", "NO_ROUTE", "0")set JBOSS_HOME environment variable to JBOSS ver4 Run MSS ver 4: /opt/Mobicents/MSS-4xx/bin/run.sh set JBOSS_HOME environment variable to JBOSS ver5 Run MSS ver 5: /opt/Mobicents/MSS-5xx/bin/run.sh Run MSS Media server ver 5: opt/Mobicents/MSS/mobicents-media-server/bin/run.sh ./run.sh -b [ip_address]
ex:
./run.sh -b 157.159.16.91
V) Connect between IMS Core and Mobicents AS
# host & port : specify the IP address and the port where Tomcat is listening, e.g. host=127.0.0.1; port=8080; host=127.0.0.1 port=9080
* Name – any unique name,
* Server Name – actually it must be a valid SIP URI which resolves to application server address,
* Diameter FQDN – fully qualified domain name,
* Default Handling – default behaviour of the S-CSCF in case of connection errors,
* Service-Info – required, if used by the application.
* Create Trigger Point,
* Create Initial Filter Criteria,
* Create Service Profile itself. * Name – any unique name,
* Condition Type – logic by which SPTs are evaluated (conjunction, disjunction), * Name – any unique name,
* Trigger Point – name of the already existing Trigger Point,
* Application Server – application server name,
* Profile Part Indicator – specifies the registration state condition for criteria evaluation.
* Name – any unique name,
* IFCs – set of attached Initial Filter Criterias.
* Subscription (IMSU) – identifies the user on the level of contract between subscriber and network,
* Private Identity (IMPI) – used by the user for authorization and authentication within the home network,
* Public User Identity (IMPU) – addressable identity of the user.
* Name – any reasonable unique name,
* Capabilities Set – optional parameter specifying S-CSCF selection preferences for Interogating-CSCF (I-CSCF),
* Preffered S-CSCF – optional preassigned S-CSCF. * Identity – in the form username@domain i.e. tran@open-ims.test
* Secret key – password,
* Authentication Schemes – whichever is required, I usually use all,
* Default – for instance Digest-MD5.
* Identity – in the form of SIP URI i.e. sip:tran@open-ims.test
* Service Profile – any existing profile, I always have an empty profile created (no IFCs attached), which I assign by default.
VI) Test system with Sipp clientInstall Sipp :
sudo apt-get install sip-tester ‘INT_MAX’ was not declared in this scope
Writing scenario to test Mobicents AS
REGISTER ----------> AS Server
200 <---------- AS Server
Pause [ 5000ms]
INVITE ----------> AS Server
100 <---------- AS Server
180 <---------- AS Server
200 <---------- AS Server
ACK ----------> AS Server <?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE scenario SYSTEM "sipp.dtd">
<scenario name="Session for conference">
<send retrans="500">
<![CDATA[
REGISTER sip:127.0.0.1 SIP/2.0
Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
Max-Forwards: 20
From: "tran" <sip:tran@127.0.0.1>;tag=[call_number]
To: "tran" <sip:tran@127.0.0.1>
Call-ID: [call_id]
CSeq: 1 REGISTER
Contact: <sip:tran@[local_ip]:[local_port]>
Expires: 300
Content-Length: 0
User-Agent: Sipp v1.1-TLS, version 20061124
Supported: path
]]>
</send>
<recv response="200">
</recv>
<pause milliseconds="5000" crlf="true" />
<send retrans="500">
<![CDATA[
INVITE sip:sip-servlets-conference@localhost:5080 SIP/2.0
Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
Max-Forwards: 20
From: <sip:tran@127.0.0.1>;tag=[call_number]
To: <sip:sip-servlets-conference@127.0.0.1:5080>
Call-ID: [call_id]
CSeq: 1 INVITE
Contact: <sip:tran@[local_ip]:[local_port]>
User-Agent: Sipp v1.1-TLS, version 20061124
Allow: ACK, BYE, CANCEL, INVITE, REFER, OPTIONS, INFO, REGISTER, NOTIFY, UPDATE, SUBSCRIBE, PRACK
Content-Type: application/sdp
Content-Length: [len]
v=0
o=tran 3487063231 3487063231 IN IP4 127.0.0.1
s=SJphone
c=IN IP4 127.0.0.1
t=0 0
m=audio 49154 RTP/AVP 96 101
a=rtpmap:96 AMR/8000/1
a=fmtp:96 octet-align=1
a=rtpmap:101 telephone-event/8000
a=sendrecv
m=video 49164 RTP/AVP 34 98
a=rtpmap: 34 H263/90000
a=fmtp: 34 QCIF = 1 CIF = 4 MaxBR = 3760
a=rtpmap:98 MP4V-ES/90000
a=fmtp: 98 profile-level-id = 2
a=sendrecv
]]>
</send>
<recv response="100" optional="true">
</recv>
<recv response="180" optional="true">
</recv>
<recv response="403" optional="true" next="1">
</recv>
<recv response="404" optional="true" next="1">
</recv>
<recv response="408" optional="true" next="1">
</recv>
<recv response="200" rrs="true">
</recv>
<send crlf="true">
<![CDATA[
ACK [next_url] SIP/2.0
[last_Via:]
Max-Forwards: 20
From: <sip:tran@127.0.0.1>;tag=[call_number]
[last_To:]
Call-ID: [call_id]
CSeq: 1 ACK
Content-Length: 0
]]>
</send>
<pause milliseconds="5000" crlf="true" />
<!-- Play a pre-recorded PCAP file (RTP stream) -->
<nop>
<action>
<exec play_pcap_audio="MMdemoMainmenuH263.pcap"/>
</action>
</nop>
<pause milliseconds="5000" crlf="true" />
<!--
<nop>
<action>
<exec play_pcap_video="MMdemoMainmenuH263.pcap"/>
</action>
</nop>
-->
<pause milliseconds="5000" crlf="true" />
<send retrans="500">
<![CDATA[
BYE [next_url] SIP/2.0
[last_Via:]
Max-Forwards: 20
From: <sip:tran@127.0.0.1>;tag=[call_number]
[last_To:]
Call-ID: [call_id]
CSeq: 11 BYE
Contact: <sip:tran@[local_ip]:[local_port]>
Content-Length: 0
]]>
</send>
<recv response="200" crlf="true" next="2">
</recv>
<label id="1"/>
<send crlf="true">
<![CDATA[
ACK sip:sip-servlets-conference@127.0.0.1 SIP/2.0
[last_Via:]
Max-Forwards: 20
From: <sip:tran@127.0.0.1>;tag=[call_number]
[last_To:]
Call-ID: [call_id]
CSeq: 11 ACK
Content-Length: 0
]]>
</send>
<label id="2"/>
<!-- definition of the response time repartition table (unit is ms) -->
<ResponseTimeRepartition value="10, 20, 30, 40, 50, 100, 150, 200"/>
<!-- definition of the call length repartition table (unit is ms) -->
<CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/>
</scenario> ./sipp -sf uac-tran.xml 127.0.0.1:5080 -i 127.0.0.1 -p 5061 -m 1 Usage : -sf : Loads an alternate xml scenario file. To learn more about XML scenario syntax, use the -sd option to dump embedded scenarios. They contain all the necessary help. 127.0.0.1:5080 - remote_host[:remote_port] -i 127.0.0.1 : Set the local IP address: 127.0.0.1 for 'Contact:','Via:', and 'From:' headers. Default is primary host IP address. -p 5061 : Set the local port number: 5061. Default is a random free portchosen by the system. ==Writing scenario to test OpenIMSCore and Mobicents AS
REGISTER ----------> P-CSCF (OpenIMSCore + Mobicents AS)
401 <---------- P-CSCF (OpenIMSCore + Mobicents AS)
REGISTER ----------> P-CSCF (OpenIMSCore + Mobicents AS)
200 <---------- P-CSCF (OpenIMSCore + Mobicents AS)
Pause [ 5000ms]
INVITE ----------> P-CSCF (OpenIMSCore + Mobicents AS)
100 <---------- P-CSCF (OpenIMSCore + Mobicents AS)
180 <---------- P-CSCF (OpenIMSCore + Mobicents AS)
200 <---------- P-CSCF (OpenIMSCore + Mobicents AS)
ACK ----------> P-CSCF (OpenIMSCore + Mobicents AS)
Pause [ 5000ms]
[ NOP ] - Transfer of media data
Pause [ 5000ms]
REGISTER ----------> P-CSCF (OpenIMSCore + Mobicents AS) - DeREGISTER Message
401 <---------- P-CSCF (OpenIMSCore + Mobicents AS)
REGISTER ----------> P-CSCF (OpenIMSCore + Mobicents AS)
200 <---------- P-CSCF (OpenIMSCore + Mobicents AS)
BYE <---------- P-CSCF (OpenIMSCore + Mobicents AS)
Pause [ 20.0s]
ACK ----------> P-CSCF (OpenIMSCore + Mobicents AS)
200 <---------- P-CSCF (OpenIMSCore + Mobicents AS)<?xml version="1.0" encoding="ISO-8859-1" ?> <!DOCTYPE scenario SYSTEM "sipp.dtd"> <scenario name="Session for conference"> <send retrans="500"> <![CDATA[ REGISTER sip:open-ims.test SIP/2.0 Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch] Max-Forwards: 20 From: "tran" <sip:tran@open-ims.test>;tag=[call_number] To: "tran" <sip:tran@open-ims.test> P-Access-Network-Info: 3GPP-UTRAN-TDD;utran-cell-id-3gpp=C359A3913B20E Call-ID: [call_id] CSeq: 1 REGISTER Contact: <sip:tran@[local_ip]:[local_port]> Expires: 300 Content-Length: 0 User-Agent: Sipp v1.1-TLS, version 20061124 Authorization: Digest username="tran@open-ims.test", realm="open-ims.test" Supported: path ]]> </send> <recv response="401" auth="true"> </recv> <send retrans="500"> <![CDATA[ REGISTER sip:open-ims.test SIP/2.0 Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch] Route: [$1] Max-Forwards: 20 From: "tran" <sip:tran@open-ims.test>;tag=[call_number] To: "tran" <sip:tran@open-ims.test> P-Access-Network-Info: 3GPP-UTRAN-TDD;utran-cell-id-3gpp=C359A3913B20E Call-ID: [call_id] CSeq: 2 REGISTER Contact: <sip:tran@[local_ip]:[local_port]> Expires: 300 Content-Length: 0 User-Agent: Sipp v1.1-TLS, version 20061124 [authentication username=tran@open-ims.test password=abc] Supported: path ]]> </send> <recv response="200"> <action> <ereg regexp=".*" search_in="hdr" header="Service-Route:" assign_to="1" /> </action> </recv> <pause milliseconds="5000" crlf="true" /> <send retrans="500"> <![CDATA[ INVITE sip:sip-servlets-conference@127.0.0.1:5080 SIP/2.0 Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch] Max-Forwards: 20 Route: <sip:pcscf.open-ims.test:4060;lr>,[$1] P-Preferred-Identity: <sip:tran@open-ims.test> Privacy: none P-Access-Network-Info: 3GPP-UTRAN-TDD;utran-cell-id-3gpp=C359A3913B20E From: <sip:tran@open-ims.test>;tag=[call_number] To: <sip:sip-servlets-conference@127.0.0.1:5080> Call-ID: [call_id] CSeq: 10 INVITE Contact: <sip:tran@[local_ip]:[local_port]> User-Agent: Sipp v1.1-TLS, version 20061124 Allow: ACK, BYE, CANCEL, INVITE, REFER, OPTIONS, INFO, REGISTER, NOTIFY, UPDATE, SUBSCRIBE, PRACK Content-Type: application/sdp Content-Length: [len] v=0 o=- 3487063231 3487063231 IN IP4 127.0.0.1 s=SJphone c=IN IP4 127.0.0.1 t=0 0 a=direction:active m=audio 49152 RTP/AVP 3 97 98 110 8 0 101 a=rtpmap:3 GSM/8000 a=rtpmap:97 iLBC/8000 a=rtpmap:98 iLBC/8000 a=fmtp:98 mode=20 a=rtpmap:110 speex/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:0 PCMU/8000 a=rtpmap:101 telephone-event/8000 a=fmtp:101 0-11,16 ]]> </send> <recv response="100" optional="true"> </recv> <recv response="180" optional="true"> </recv> <recv response="403" optional="true" next="1"> </recv> <recv response="404" optional="true" next="1"> </recv> <recv response="408" optional="true" next="1"> </recv> <recv response="200" rrs="true"> </recv> <send crlf="true"> <![CDATA[ ACK [next_url] SIP/2.0 [last_Via:] Max-Forwards: 20 From: <sip:tran@open-ims.test>;tag=[call_number] [last_To:] Call-ID: [call_id] CSeq: 10 ACK Content-Length: 0 ]]> </send> <pause milliseconds="5000" crlf="true" /> <!-- Play a pre-recorded PCAP file (RTP stream) --> <nop> <action> <exec play_pcap_audio="8Khz.pcap"/> </action> </nop> <pause milliseconds="5000" crlf="true" /> <send retrans="500"> <![CDATA[ REGISTER sip:open-ims.test SIP/2.0 Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch] Max-Forwards: 20 From: "tran" <sip:tran@open-ims.test>;tag=[call_number] To: "tran" <sip:tran@open-ims.test> P-Access-Network-Info: 3GPP-UTRAN-TDD;utran-cell-id-3gpp=C359A3913B20E Call-ID: [call_id] CSeq: 3 REGISTER Contact: <sip:tran@[local_ip]:[local_port]> Expires: 0 Content-Length: 0 User-Agent: Sipp v1.1-TLS, version 20061124 Authorization: Digest username="tran@open-ims.test", realm="open-ims.test" Supported: path ]]> </send> <recv response="401" auth="true"> </recv> <send retrans="500"> <![CDATA[ REGISTER sip:open-ims.test SIP/2.0 Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch] Route: [$1] Max-Forwards: 20 From: "tran" <sip:tran@open-ims.test>;tag=[call_number] To: "tran" <sip:tran@open-ims.test> P-Access-Network-Info: 3GPP-UTRAN-TDD;utran-cell-id-3gpp=C359A3913B20E Call-ID: [call_id] CSeq: 4 REGISTER Contact: <sip:tran@[local_ip]:[local_port]> Expires: 0 Content-Length: 0 User-Agent: Sipp v1.1-TLS, version 20061124 [authentication username=tran@open-ims.test password=abc] Supported: path ]]> </send> <recv response="200" optional="true" next="2"> </recv> <recv request="BYE" next="2"> </recv> <pause milliseconds="20000" crlf="true" /> <send retrans="500" crlf="true"> <![CDATA[ ACK [next_url] SIP/2.0 [last_Via:] Max-Forwards: 20 From: <sip:tran@open-ims.test>;tag=[call_number] [last_To:] Call-ID: [call_id] CSeq: 10 ACK Content-Length: 0 ]]> </send> <recv response="200" crlf="true" next="2"> </recv> <label id="1"/> <label id="2"/> <!-- definition of the response time repartition table (unit is ms) --> <ResponseTimeRepartition value="10, 20, 30, 40, 50, 100, 150, 200"/> <!-- definition of the call length repartition table (unit is ms) --> <CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/> </scenario>
./sipp -sf uac-tran-ims.xml 157.159.16.91:4060 -i 157.159.16.91 -p 5061 -m 1 Usage : -sf : Loads an alternate xml scenario file. To learn more about XML scenario syntax, use the -sd option to dump embedded scenarios. They contain all the necessary help. 157.169.16.91:4060 - remote_host[:remote_port] --> IP : P-CSCF -i 157.159.16.91 : Set the local IP address: 127.0.0.1 for 'Contact:','Via:', and 'From:' headers. Default is primary host IP address. -p 5061 : Set the local port number: 5061. Default is a random free portchosen by the system.
|
► Sign in to add a comment
Install Eclipse with Mobicents - Fix error add SipServlet? library
How did you fix them ???
I add manually SipServlet? library in Eclipse plugin, because Eclipse don't add automatically.
I'm fixing a error INVITE message. It means that X-lite calls to AS with INVITE message, AS server have Exception error.
Compile Mobicents Application + Use command line : mvn clean install -Pdeploy + In directory of depository Mobicents : .../sip-servlets-examples/
Parameters to test OpenIMS and Mobicents AS : - Open IMS : PCSCF Port 4060 to connect client - Mobicents AS : Port 5080 to connect SIP proxy or client
- Has it solved the connectivity prob. between OpenIMS and Mobicents? - You should put the solutions on the log by editing the WiKi? page, not by using comments.
Hi, I have followed the steps as mentioned to start the servers but when i run the command ./ pcscf.sh it gives me an error ./pcscf.sh: line 8: /opt/OpenIMSCore/ser_ims/ser: No such file or directory