Open IMS Client、Open IMS Core-----------跟着大牛学习!!!!!

(一)Open IMS Core


OSIMS

The FOKUS Open Source IMS Core

Project's Homepage: www.openimscore.org

CSCFs | | FHoSS | | Contact |

It has to be noted that this Open Source IMS Core System is not intended to become or act as a product in a commercial context! Its sole purpose is to provide an IMS core reference implementation for IMS technology testing and IMS application prototyping for research purposes, typically performed in IMS test-beds. This target has also motivated the decision to use open source software (i.e. SER based on GPL), which makes a product development quite unattractive. 

Furthermore, users of the Open Source IMS Core System have to be aware that IMS technology may be subject of patents and license terms, as being specified within the various IMS-related IETF, ITU-T, ETSI, and 3GPP standards. Thus all Open Source IMS Core System users have to take notice of this fact and have to agree to check out carefully before installing, using, and extending the Open Source IMS Core System, if related patents and licenses may become applicable to the intended usage context.


As IMS (IP Multimedia Subsystem) is today already in trial phases with more and more operators worldwide, R&D efforts with respect to NGNs are likely to gain even more support within a broader audience soon - especially for developing services. While there are already many Open Source projects established in the plain VoIP area for SIP clients, proxies, stacks and tools around the IETF SIP standards, there are currently practically no Open Source projects with specific focus on the IMS.
The Open Source IMS Core project of the Fraunhofer Institute FOKUS aims to fill the currently existing IMS void in the Open Source software landscape with a flexible and extendable solution that has already proven its conformance and performance in several national and international R&D projects. Its goal for the coming months is to create a developer community for Next Generation Network core elements within R&D and IMS interested parties. The idea for users of this Open Source software is to enable the development of IMS services and the trial of concepts around core IMS elements that are based upon highly configurable and extendable software.


The Open Source IMS Core in the Open IMS Playground

The Open Source IMS Core consists of Call Session Control Functions (CSCFs), the central routing elements for any IMS signaling, and a Home Subscriber Server (HSS) to manage user profiles and associated routing rules. The central components of the Open Source IMS Core project are the Open IMS CSCFs (Proxy, Interrogating, and Serving) which were developed at FOKUS as extensions to the SIP Express Router (SER) in recent months and successfully tested for interoperability with commercial IMS products in the Open IMS Playground. But since even basic signaling routing functionality for IMS requires information look-up in a HSS, normal usage of such a core IMS network is not possible without it, therefore a simple HSS, the FOKUS Home Subscriber Server (FHoSS) is also part of the Open Source IMS Core project.

The Open Source IMS Core project will provide a 3GPP IMS Service Control (ISC) interface to developers allowing them to make use of IMS routing features, application of IMS triggering rules and other IMS related features. It enables the application layer development of IMS services for various platforms, be it for SIP Application Servers, an OSA/Parlay resp. Parlay X Gateway or even an IN service (connected to the IMS via an IMS Service Switching Function). But also towards the access network layer, the Open Source IMS Core enables the development of components and concepts that come with the attachment of various access networks to the overlay architecture IMS. 

The Open Source IMS Core project of the Fraunhofer Institute FOKUS was officially launched on November 16, 2006 in conjunction with the 2nd International FOKUS IMS Workshop as an Open Source initiative which will be hosted on the BerliOS platform atwww.openimscore.org.

Here you may subscribe as well as unsubscribe for receiving upcoming Newsletters around the Open Source IMS Core project.

The licensing model for the core components will be:

                                                                                                         | top |




Open IMS Call Session Control Functions - CSCFs


Even though IMS builds upon IETF specifications like the SIP standard, the SIP protocol requires certain extensions for being used in an IMS environment. The primary requirement for the Open IMS Core project therefore was to provide a set of IMS compliant core components that will enable the development of the other layers around them. The main goal currently is to obtain compliant CSCFs to the functionality required by 3GPP in for its Release 6 specifications.

The Open IMS CSCFs are built upon the SIP Express Router (SER) which can act as SIP registrar, proxy or redirect server and is capable of handling many thousands of calls per second. It has a modular structure that permits to make functionality additions. Each CSCF entity of the Open IMS Core is implemented as a SER dynamically loadable module that adds the required operations to the SER so that it can act according to the specific 3GPP technical specifications. The modules are capable of parallel processing and can keep supplementary state information. There is a special focus towards scalability for both load distribution and data quantity.

Another requirement to the CSCFs was to maintain as much as possible SER’s performance. As SER obtained a wide adoption in the SIP world, becoming almost a standard for performance, it can be safely assumed that the Open IMS CSCFs, sharing such a large base with SIP routers, would have similar performance standards. The Open Source IMS Core maintains SER’s user scripting facilities, which enables full flexibility in exploitation. The IMS features are to be exported but their orchestration had to be easily configurable.


Proxy CSCF

In the current implementation of the Open Source IMS Core, the P-CSCF component is able to firewall the core network at the application level: only registered endpoints are allowed to insert messages inside the IMS network and the P-CSCF asserts the identity of the users. For this, upon registration, the P-CSCF establishes secured channels individually for each User Endpoint (UE) that it services. To keep track of the registered users, it has an internal reversed-registrar that is updated by intercepting the registration process and later by subscribing in User Agent Client (UAC) mode to the registration package at the S-CSCF and receiving notifications. The actual data is kept in a hash-table to allow fast retrieval.

For originating call signaling it generates unique charging vectors and inserts network and path identifiers that are needed for the correct further processing of the SIP messages. UE forged information that might lead to an attack is removed and/or corrected. After a successful registration process to an IMS home network, subsequent user messages are forwarded based on DNS information towards the requested IMS home network. Regarding NAT issues for the SIP signaling, in the outgoing direction, towards the user endpoints, it can act as a router by simply being active in both networks. Also, NAT traversal modules were adapted for the specific user location storage mechanisms.

Features of the Open Source IMS P-CSCF:

  • signaling firewall and user identity assertion (P-Preferred-Identity, P-Asserted-Identity header support)
  • local registrar synchronization through "reg" event RFC 3680
  • Path header support
  • Service-Route verification/enforcement
  • Dialog statefulness and Record-Route verification/enforcement
  • IPSec set-up using CK and IK from AKA
  • Integrity-protection for authentication
  • Security-Client, Security-Server, Security-Verify header support
  • basic P-Charging-Vector support
  • Visited-Network-ID header support
  • NAT support for signaling
  • NAT support for media through RTPProxy


Interrogating CSCF

The Interrogating-CSCF (I-CSCF) has the role of a stateless proxy that, by using the indicated public identities of the caller or the callee, queries the Home Subscriber Server (HSS) and based on responses routes the message to the correct S-CSCF. It implements the Cx interface [1] of an I-CSCF to the HSS. Therefore it supports the required Diameter commands to locate the user-assigned S-CSCF or to select, based on capabilities, a new S-CSCF and check identities, roaming authorizations as specified in 3GPP TS 29.228.

After receiving a successful answer for the Diameter query the I-CSCF forwards the SIP messages in a transactional mode. It is optimized for speed and minimalist state information is kept in it. To protect the home network, it has a firewalling capacity that only allows signaling messages coming from trusted networks through Network Domain Security (NDS).

Features of the Open Source IMS I-CSCF:

  • full Cx interface support (LIR, UAR)
  • S-CSCF selection based on user capabilities
  • Serial forking for forwarding to S-CSCF
  • Visited-Network-ID header support and roaming permission verification
  • Topology Hiding (THIG)
  • Network Domain Security (NDS)


Serving CSCF

The S-CSCF implementation also communicates with the HSS using Diameter (over the Cx interface) to retrieve authentication vectors, update registration information and download the user profiles as specified in [1]. The S-CSCF can apply the user profile based initial Filter Criteria (iFC) to enforce specific SIP routing rules. It implements support for carrying out the IMS Digest AKA version 1 [2]. Rather than generating authentication vectors it relies on the HSS for this task and compares these values to the ones calculated in the UE.
For fast response times with minimal locking, the registrar of the S-CSCF has a complex structure based on hash-tables. The information that is required to relate a user identity to a physical UE is stored here and used further on for call routing. It also accepts subscriptions to registration state events and notifies the subscribers about changes in the registrar.

Features of the Open Source IMS S-CSCF :

  • full Cx interface support (MAR, SAR, PPR, RTR)
  • Authentication through AKAv1-MD5, AKAv2-MD5 and MD5
  • Service-Route header support
  • Path header support
  • P-Asserted-Identity header support
  • Visited-Network-ID header support
  • Download of Service-Profile from HSS
  • Initial Filter Criteria triggering
  • ISC interface routing towards Application Servers
  • "reg" event server with access restrictions
  • Dialog statefulness
[1] 3GPP TS 29.228 ”IP Multimedia (IM) Subsystem Cx and Dx interfaces; Signaling flows and message contents”; (Release 6)
[2] A. Niemi, J. Arkko, V. Torvinen ”Hypertext Transfer Protocol (HTTP) Digest Authentication Using Authentication and Key Agreement (AKA)”, RFC3310, September 2002

                                                                                                         | top |




FOKUS Home Subscriber Server (FHoSS)

The Open Source IMS Core would be incomplete without a Home Subscriber Server. FOKUS developed an own prototype HSS, the FOKUS HSS (FHoSS) which is entirely written in Java and based upon Open Source software. The user data is kept inside a MySQL database. As its purpose in the Open Source IMS Core is that of a database, the FHoSS is targeted mainly towards conformance rather than performance. It is mostly a configurator for the Database Management System and the Diameter interfaces with the CSCFs and IMS application layer.


FOKUS Home Subscriber Server

Protocol checks and Diameter command logic are implemented in the FHoSS based upon FOKUS own Java based Diameter stack. The FHoSS allows the generation of authentication vectors and it provides a HTTP-based management interface for easy management of user profiles and associated iFCs.


FHoSS User Profile


FHoSS Trigger Point

Features of the HSS: 

  • support for the 3GPP Cx Diameter application
  • support for the 3GPP Sh Diameter application
  • support for the 3GPP Zh Diameter application
  • integrated simple AuC functionality
  • Java Diameter Stack implementation
  • web-based management console

(二)OpenIC:Open IMS Client

The FOKUS Open IMS Client

From all the IMS components, the User Equipment (UE) is a critical entity for the overall success in the IMS value chain. The UE acts as a multi-application environment to demonstrate value added services available on the IMS network.


The OpenIC in the Open IMS Playground

Open IMS Client

The Open IMS Client (OpenIC) is work in progress towards a robust IMS client with diverse services for Fixed Mobile convergence. OpenIC consists of a framework which offers a programmable interface for development of various IMS applications.

"Open" in this sense means extendible and should not be confused with "Open Source".

The solutions delivered by the framework align with IETF, 3GPP and TISPAN client specifications. The client is available in java and in .NET and it can easily be deployed across devices. Furthermore, OpenIC runs on multiple platforms (Windows Mobile, Linux and Windows XP).

Open IMS Client Framework
The OpenIC Framework offers a set of reusable components that provide a programmable API for developing various IMS applications and services.  The framework consists of an IMS Engine layer and an application layer.


Open IMS Client Framework


Customizable User Interface

The User Interface represents the presentation layer. It offers the user access to all the underlying services and hides the complexity of the underlying architecture and services.

Service Layer
The Service Layer consists of different service modules. New services can be developed and integrated into this layer. This offers the application robustness and extensibility against future changes.
The services on the service layer consist of:

  • VoIP: it is used to develop IMS compliant SIP applications that are compliant with IETF and 3GPP and TISPAN IMS standards. It provides a low level API for full control over SIP communication between the client and IMS.
  • Presence: enables functionalities to manage the presence information of the UE and associated contacts.
  • Registration: hides the complexity of IMS registration process with a simple click-to-register. It also manages the registration state for re-registration and handles “reg” event notifications.
  • Event Package: enables support for various event packages and provides generic API handlers for handling event based services on the IMS network.
  • Messaging: enables sending and receiving of instant messages to and from a contact. Instant messaging is supported in both page-mode and session mode.
  • Contact List Management: implements procedures for retrieving, updating and storing address book contacts data through XCAP and XML. The address book is stored based on the vCard format known from email applications.
  • Content Sharing: manages file sharing between the UE and another client through MSRP (Message Session Relay Protocol).

IMS Engine Layer
The IMS Engine layer provides the different building blocks upon which the service modules are built. This represents the lowest layer and it is developed based on enterprise and open standards. 
  • Extended SIP Stack: it is used to develop IMS compliant SIP applications that are compliant with IETF and 3GPP and TISPAN IMS standards. It provides a low level API for full control over SIP communication between the client and IMS.
  • Media Manager Framework: it provides a low-level API for full control over real-time audio/video data transport between the client and an IMS entity or another UE. Support audio Codec selection – G.711 u-Law/ a-Law, GSM610, Video Codec selection – H.263
  • MSRP Stack: it provides a low-level API for full control over real-time text data transport between the client and another UE.
  • HTTP API: provides low level HTTP connection between high-level applications and IMS entity.


Feature List
OpenIC provides a set of basic and advanced features. The feature list will be updated as new features are added on the client.


OpenIC Feature List


Registration
The first thing an IMS client does when it logs onto an IMS network is to send a REGISTER request to its home network. Mutual authentication on the IMS network is based on a shared secret between the IP Multimedia Service Identity module (ISIM) and the HSS in the network.

OpenIC supports two authentication and authorization mechanisms namely: 

  • Digest AKA Authentication : is a challenge-response based mechanism that uses symmetric cryptography that performs user authentication and session key distribution in IMS networks (RFC 3310)
  • Digest MD5 Authentication: is based on a simple challenge-response paradigm. The Digest scheme challenges using a nonce value (RFC2617)

Application Features

Audio session:
  • Redial – redial the last caller from the dial history list
  • Call Transfer – transfers the ongoing call to another resource (e.g. another sip address)
  • Audio Conference – establish an audio session conference with one or more participants. This feature is enabled only with support from the application server
  • Automatic presence update – when user is on call, the user’s presence information is automatically published to “Busy”
  • Pop up notification on incoming call, enabling the user to choose how to manage the call by either accepting or rejecting.
  • Dual-Tone-Multi-Frequency enabled digits on Dialer panel

Video session:
Support for audio and video session. This feature is available only for the PC version.

Messaging Session:
This involves sending and receiving of instant messaging to and from a contact in the address book. OpenIC offers both standalone page-mode based and session based (chat) messaging. The client uses SIP MESSAGE for page-mode, while the latest standard Message Session Relay Protocol (MSRP) is used for chat.

Presence:
OpenIC provides an API to manage presence information for the user endpoint and its associated contacts. Users can publish their preferred presence status and see the status of friends from their phone book. For this service, the client offers SIP event package handlers to provide support for the various event packages. Support for SIP/SIMPLE-based instant messaging. Centralized based server support (presence agent).

Branding
A brand is a customer experience represented by a collection of images and ideas. This may include company name, logo, slogan, and design scheme. We offer the possibility for private labels and co-branding.

  • Private Label – fully customized user interface
  • Co-Brand – customized user interface powered by Fraunhofer FOKUS

Benefits

  • An underlying IMS API Engine
  • flexibility for branding and customization
  • availability for multiple platforms (windows mobile, PC)
  • support for hybrid applications – native and java
  • easily portable across other devices
  • aligns to open standards (IEFT, 3GPP, TISPAN)
                                                                                                   |top|

OpenIC Lite

The Open IMS Client Lite is the free IMS based soft phone available for download. Based on the advanced architecture of OpenIC, OpenIC Lite is designed to highlight some of the rich features available with our commercial IMS client. 

"Open" in this sense means extendible and should not be confused with "Open Source".


OpenIC Lite


Supported Features

  • AKA, MD5 authentication
  • Session Initiated Protocol (SIP) based signaling for all media sessions
  • Instant Message
  • Audio Call
  • Active Address book
  • ISIM (IP multimedia Services Identity Module) profile simulation
  • Call history list management
                                                                                                   |top|



Operating Requirements


 Pocket PC   PC
   Minimum  Optimal  Minimum  Optimal 
 Processor  400 MHz Pentium 2
 400 MHz
 Pentium 4
 1,6 GHz
 Memory  64 MB RAM
 128 MB RAM
 128 MB RAM  
 Hard Disk
 Space

 10 MB
 15 MB
 30 MB
 Operating
 System

 Windows Mobile
 Windows XP
 Linux
 Connection 
 IP Network connection
 (WLAN, UMTS)
 IP Network connection
 (Broadband, LAN, wireless)
 Sound
 Adapter

 Full-duplex, 16-bit
 Software
 IBM J9, .NET Framework
 JRE 5+, .NET Framework

                                                                                                   |top|

Demo on Windows Mobile

The demo runs on a HTC device with Windows Mobile 5.
For demonstrating some of the features of the OpenIC - such as audio call and instant messaging - please click on the device screenshot below.





     


                                                                    |top|



Download

Download OpenIC_Lite FREE!

Below is a list of the available Installers for the different platforms and a general user's guide for installing, configuring and using the client.

  OpenIC_Lite v1.0 for Windows (6971 KB) 
  OpenIC_Lite v1.0 for Windows Mobile (6198 KB)
  OpenIC_Lite v1.0 for Linux (5831 KB) 

The quick start guide and user's guide (PDF, 1730 KB) can be found here.


(三)

一个人可以用Open IMS Core做什么呢

  

来自大牛的机密:http://blog.sina.com.cn/s/blog_51396f890102dxh3.html
   

一个人可以用Open IMS Core做什么呢

一个人可以用Open IMS Core做什么呢是?这么说吧,我就在开发这个东东的研究所工作。SER也是我们开发的,SIP发明者之一也在这里工作过。我是负责应用服务器的,刚刚辞了工作,打算海归,目前在家待业。我告诉你一下,我现在在家想作什么吧,嘻嘻
1 首先架设好OSIMS Core
2 将一些开源的IMS部件整合进去,例如Presence,XDMS,AS(Sailfin和SIP Servlet,JSLEE),Media Server等等。如果没有的话,也可以自己开发简单的Prototype。例如Presence Server,用SIP Servlet编的话,两三天就够了。这样就实现了一个基本IMS Testbed。
2.5 现在Weblog所有产品也都免费应用可,总之可以干很多整合的。
3 然后可以试一试和其他VOIP系统互联互通,例如Astrix。还可以尝试多个核心网直接Roaming等等。可以尝试一下和现在的各种IP PBX产品进行互联互通,设计一下转换的Gateway。
4 利用2和3,可以自己开发一些简单的IMS基本服务了,例如PTT,IPTV,IVR,Call Center等等,这些都有OMA或者3GPP有相关标准了。
5 然后可以自己开发OSS BSS系统,例如OSS/J,这又一大堆东西可以做。On line, Off line charging System。
6 没事的话,可以尝试把OSIMSCore升级到TISPAN 1.0,或者开发出一个PSTN Emulation System,也不难的。

下面就是比较有趣的东西,可以做
7 然后可以以AS为基础,实现Parlay X GW,这个也不难,3PC,Presence等等。
8 可以将Sailfin整合进JBOSS里面,等于就是把J2EE和Web世界那一整套的东西全部搬过来了,哈哈,怎么会没有东西做呢,Mush UP!
9 加上Enterprise Service Bus,就是现在最热门的Internet Telecom SOA Service Delivery Platform。用Active BEPL作为BPM,自己设计Policy Management Engine (Rule Machine)。
Active Bepl也有GUI来作为Service Creation Environment,实现快速新的服务。用UDDI作为Service Repository。当然你还可以实现整套的OSS系统,Service Provisioning等等,很多东西。
10 因为是Internet J2EE这样,实际上和底层通讯已经不是很有关系了,你可以把很多现在最热门的东西也整合进来,Google的那些东东
11 还有另外一个方面是Identity,如何实现SIP和WEB多Protocol的Single Sign on呢。例如Open ID,General Bootstrapping Architecture。

有了SDP,完全基于web Service,就可以进行一些Mush up的应用开发了。低级的方式用Parlay X,高级的方式有SDP。
12 将家用基站整合进OPEN IMS Core,加上IPTV,是不是可以在家实现FMC和4P?自己可以搞出VCC等等多种服务。
13 可以在现在所有的网站上搞一些Mush up了!做个网站,将Google Map这些Location Service搞进来,然后用Parlay X的Presence, Location,Address List Management等等全加进来。然后把这些嵌入各种SSN Facebook之类的,是不是很有趣?总之现在一切在J2EE,SOA世界里面有的东西都可以拿来 Mush,AJAX,Google,Ebay,Amazon,LinkedIn,iTune,云计算等等等等,一切Internet里面的服务都可以整合 起来,贴上SOA的标签。
14 将SAP,Oracle,金蝶等等的企业管理,电子商务,电子政务,ERP等等软件平台也整合起来,然后卖所以通讯导向的管理这种概念。因为人类社会的组织形式就是通讯的形式,理论上所有企业zf的流程,可以用通讯来串起来。

14 当然还有终端方面,这是大有可为的!Symbian,Adroid还有最HOT的iPhone!现在IMS和支持高级Mushup功能的终端还没有统一标 准,开发出一个就可以拿风投了。如果能将IMS Client,浏览器,Web Service Adaptor等等全部整合在一起,就很暴力了。现在Adobe Flash也要到有VOIP终端的功能,也可以Mush搞进去。iPhone的终端可以放到Apple Store去卖。你就是未来的Steve Jobs,bill gates,Bell。

有了上面的基础建设,
1 把上面所有全部在家里架好,然后去中关村买个写SIM卡的机器,想法弄个FTTH,就可以自己当运营商了。然后去中国移动,电信等等地方,请求和对方合作。
2 去Accenture,IBM,HP这些地方,请求当个集成的Consultant。
3 去华为,中兴,请求当民工。
4 自己创业,骗骗风投。

上面的所有东西,我自己基本都或多或少做过一些。我目前快待业了,就打算自己在家架个NGN。争取全部装到一个笔记本里面,然后每次找工的时候就配合PPT当面给人家演示一把。我8月起在北京当海带,如果哪位知道什么地方缺人,不妨推荐一下,必有重谢啊。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值