基于SIP应用服务器的IMS业务提供方法的初步研究

2024-02-06 00:08

本文主要是介绍基于SIP应用服务器的IMS业务提供方法的初步研究,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

摘要: IP 多媒体子系统( IMS)由于实现了用户平面、控制平面、业务平面的分离,可以方便地向用户提供业务。本文将着重分析 SIP 应用 服务器(SIP AS)在IMS业务提供过程中的相关问题,从业务提供的一般过程,业务层面的计费功能,技术难点几个方面进行探讨,并结合IMS提供的一种具体业务(消息类业务)进行分析。

  关键词: IMS、SIP、SIP AS、计费、消息

  1.引言

   3GPP Rel-5开始定义的IP多媒体子系统(IMS),实现了用户平面、控制平面、业务平面的分离,使得业务的提供独立于下层的承载 网络。在业务平面,AS(Application Server)提供业务逻辑,用来支持用户的各种业务属性。IMS的业务功能架构如下图所示:



   运营商可以向它的IMS签约用户提供接入基于CAMEL业务环境、OSA以及SIP AS的业务。这其中SIP AS为基于SIP的应用服务器。由于S-CSCF和业务平台之间的ISC接口采用SIP协议,因此SIP AS可以直接和S-CSCF进行通信,而无需 信令转换过程。SIP AS可以提供广泛的增值多媒体业务,如呈现、消息、会议等。本文将从SIP AS开展IMS业务的一般过程,技术难点以及计费相关等方面进行探讨,并以消息类业务为例进行分析。

  2.基于SIP AS的业务提供的一般过程

  IMS的提出是为了基于IP向用户提供更为优质、廉价的多媒体业务和应用。应用服务器(AS)在业务提供过程中扮演了业务执行者的角色。业务的提供过程可分为下列四个步骤(这里假设从会话的发起侧考虑):

  1)IMS业务档案的下载

  在用户注册的过程中,一个包含业务和用户相关数据的业务档案由HSS下载到服务于此用户S-CSCF中。业务档案中的初始过滤准则,包含了是否将用户的请求路由到相关的AS的触发信息。在这里,触发信息可能是根据请求消息的请求URI(例如一个 语音信箱voice@ims.com)或请求的类型(如立即消息的MESSAGE请求)等来制定。

  2)用户请求的生成

  用户需要某种业务时,利用自己的设备生成相关的请求。例如,用户想要建立一个语音通话。他利用UE生成一个INVITE请求(包含请求URI,媒体描述等信息),这条请求经P-CSCF,到达服务于他的S-CSCF。

  注:关于路由过程等控制层面的相关内容本文不进行讨论。

  3)AS的选择

  用户的请求到达S-CSCF后,S-CSCF检索与请求的发起者匹配的业务档案。根据业务档案中的初始过滤准则,S-CSCF决定将请求路由到相应的AS或是直接进行转发。

  4)AS执行相关的服务

  在收到请求后,AS开始执行相关的服务。为了开展服务,AS可以工作在以下四种模式:

  终止UA—在这种模式下,AS充当了UE。比如,在消息类业务中,假设消息的接收方设置了某种过滤的准则,当其得到满足时,AS可能会代表接收方生成一个最终响应这时AS是作为一个SIP UA。如图2。

  重定向服务器—AS将用户的新位置或可能满足的会话替代服务通知给发起方。例如,当满足一定的触发条件(比如接收方暂时不可达),S-CSCF可能将请求路由到一个特定的AS,该AS将请求重定向到一个e-mail或语音信箱。如图2。




  SIP代理—AS对请求进行处理,然后将请求发回S-CSCF。在处理期间,AS可能会对SIP请求中的消息头内容进行相关的添加、修改或删除。如图3。
第三方呼叫控制—AS在一个不同的SIP对话中产生一个新的SIP请求,并发送到S-CSCF。如图5。




  另外,AS也可能充当发起UA。比如,对于会议业务,作为会议服务器的AS,可能会在一个约定好的时间向预先确定的会议参与者发送SIP INVITE请求,以建立一个会议呼叫。如图5。

  除了以上描述的过程,在业务提供的过程中,用户有时需要管理和配置与业务有关的信息。例如在会议业务中,用户希望邀请新的用户加入会议。这可以通过用户(UE)与AS之间的Ut接口实现。通过Ut接口管理用户业务相关信息的功能架构如下图(图6)所示:




  3.业务层面计费功能

  IMS的体系结构(三个平面的划分)决定了IMS的计费功能应当从承载层、控制层、业务层进行描述。IMS体系既支持在线计费能力,也支持离线计费能力。在线计费就是线计费系统与IMS实体进行实时交互,并控制和监视与业务使用有关的计费过程。离线计费主要是指在会话之后收集计费信息,而且计费系统不会实时地影响所使用的业务。所有的IMS网元都要求应用离线计费,而业务层面的AS同时要求应用在线计费。

  在业务层面,要求 AS能够区分何时采用在线计费或离线计费,采用在线计费时AS通过Rf接口将计费信息发往OCS(Online Charging System),采用离线计费时AS通过Ro参考点将计费信息发往CCF(Charging Collection Function)。业务层面的计费功能示意图如图所示(图7)。

  在Rf和Ro接口,AS均使用DIAMETER协议的ACR消息发送计费信息到OCS或CCF,并应用DIAMETER协议的ACA消息从OCS或CCF接收应答。

  计费的方式多种多样,取决于所应用的业务和运营商指定的策略。例如,对于会议类业务,可以根据会议的规模(参加人数等因素),所采用的媒体的形式,会议的时间等进行计费。

  4.技术难点分析

  目前IMS有很多的技术上的难点,比如说控制层面移动网络和固定网络的 融合,不同域之间端到端的 QoS保证体系。

  对于业务层面,如何基于SIP协议实现各种业务,比如说AS如何进行相关的通知机制,这可能涉及新的SIP扩展的制定等;多业务平台之间信息的共享,比如说用户的呈现信息如何在会议、消息类业务平台之间共享;用户同时触发多种业务时,认证方式及用户数据的安全问题,例如用户触发每一项业务是否都需要业务认证才能访问业务;运营商的业务管理策略等。

  5.IMS提供的业务举例

  本小节将以消息类业务为例,结合本文2、3小节的内容分析SIP AS在IMS业务提供过程中的相关问题。

  消息类业务对用户来讲已经非常的熟悉。一般来说,消息业务允许一个实体向另一个实体发送消息。目前,在中国大行其道的QQ聊天系统以及 移动通信领域的多媒体消息业务( MMS)都属于消息业务的范畴。IMS的消息类业务将带给用户更多的选择,用户可以随心所欲而且费用低廉地使用多种媒体方式,比如文本、视频和声音等,同时可以灵活地选用实时业务或非实时业务来沟通信息。

  IMS消息业务包括三种形式:
  - 立即消息
  - 基于会话的消息
  - 延迟传递的消息

  下面以立即消息为例进行讨论。立即消息要求在通信双方之间近似实时的传递消息。立即消息内容包含在MESSAGE请求当中。

  按照2小节中所述的内容,假设业务档案已经下载到S-CSCF中。

  首先,用户设备(UE)需生成一个MESSAGE请求,填入所需的内容——文字或多媒体片断(声音,图片等),同时将请求URI填写为接收者的地址。该请求接下来就使用与INVITE请求类似的方式在IMS系统中转发,直到这个立即消息到达目的UE。要求双方UE支持MESSAGE方法。

  然后,MESSAGE请求到达S-CSCF,S-CSCF按照业务档案中的触发信息(例如根据请求类型为MESSAGE)将该请求路由到一个SIP AS由其执行业务。这要求SIP AS必须支持MESSAGE方法。

  接着,AS执行一定的业务逻辑。例如,当目的UE暂时不可达时,AS可能会为UE保留MESSAGE请求,并在UE可达时进行提交。对于群发消息(多个接受方),这时AS可能作为一个中间节点,它有一个称为公共业务标识(PSI)的SIP URI,并维护一个用户列表。发起UE的请求URI即为公共业务标识(PSI)。消息到达AS后,由它将消息发往列表中的用户。

  SIP AS可能工作于本文2小节所述的某种模式下,有时也可能是几种模式的结合。例如拒绝会话时,它工作于终止UA的模式下。

  关于计费——可以根据所发消息的数量,所采用的媒体的形式,消息的大小等进行计费。例如,当用户A向B发送一条立即消息,消息内容为一段视频,大小为500 Bytes.假设计费是按消息的大小,100 Bytes收费¥0.05。AS收到用户发送的立即消息时,AS会向OCS发送一个计费请求,并将所提供的服务通知给(即发送一条500 Bytes 的消息)OCS,OCS执行其功能从用户帐户扣掉¥0.25。

  6.结束语

  在IMS的业务层面,利用SIP AS,运营商可以方便地向用户提供业务,而用户可以更为低廉地传输多媒体信息。SIP AS在这其中扮演了业务执行者的角色。目前,关于IMS 的业务提供体系,计费相关功能架构都已初步形成,但是其中一些具体的问题,如文中提到的一些技术难点,仍然需要进行细致的研究。

  IMS作为移动通信领域未来的发展方向,正吸引着越来越多的关注。普天信息技术研究院作为TD-SCDMA产业联盟的重要成员之一,正积极地进行IMS系统的研发工作,最终将向运营商提供完善的IMS系统解决方案。

参考文献

[1]Miikka Poiskselka,Georg Mayer,Hisham,Khartbil,Aki Niemi. The IMS: IP multimedia Concepts and Services in the Mobile Domain, June, 2004
[2]3GPP TS 23.228: "IP Multimedia Subsystem(IMS); Stage 2".
[3]3GPP TS 32.260: "Charging management; IP Multimedia Subsystem(IMS) charging ".
[4]3GPP TS 22.340: " IP Multimedia Subsystem(IMS) messaging; Stage 1".
[5]3GPP TS 24.229: " IP Multimedia Call Control Protocol based on Session Initiation Protocol(SIP) and Session Description Protocol (SDP); Stage 3". 作者:韩磊 盛云鹏   来源:由CHINA通信网组稿

这篇关于基于SIP应用服务器的IMS业务提供方法的初步研究的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/682586

相关文章

Nginx中location实现多条件匹配的方法详解

《Nginx中location实现多条件匹配的方法详解》在Nginx中,location指令用于匹配请求的URI,虽然location本身是基于单一匹配规则的,但可以通过多种方式实现多个条件的匹配逻辑... 目录1. 概述2. 实现多条件匹配的方式2.1 使用多个 location 块2.2 使用正则表达式

前端bug调试的方法技巧及常见错误

《前端bug调试的方法技巧及常见错误》:本文主要介绍编程中常见的报错和Bug,以及调试的重要性,调试的基本流程是通过缩小范围来定位问题,并给出了推测法、删除代码法、console调试和debugg... 目录调试基本流程调试方法排查bug的两大技巧如何看控制台报错前端常见错误取值调用报错资源引入错误解析错误

Springboot控制反转与Bean对象的方法

《Springboot控制反转与Bean对象的方法》文章介绍了SpringBoot中的控制反转(IoC)概念,描述了IoC容器如何管理Bean的生命周期和依赖关系,它详细讲解了Bean的注册过程,包括... 目录1 控制反转1.1 什么是控制反转1.2 SpringBoot中的控制反转2 Ioc容器对Bea

C++实现回文串判断的两种高效方法

《C++实现回文串判断的两种高效方法》文章介绍了两种判断回文串的方法:解法一通过创建新字符串来处理,解法二在原字符串上直接筛选判断,两种方法都使用了双指针法,文中通过代码示例讲解的非常详细,需要的朋友... 目录一、问题描述示例二、解法一:将字母数字连接到新的 string思路代码实现代码解释复杂度分析三、

mysql8.0无备份通过idb文件恢复数据的方法、idb文件修复和tablespace id不一致处理

《mysql8.0无备份通过idb文件恢复数据的方法、idb文件修复和tablespaceid不一致处理》文章描述了公司服务器断电后数据库故障的过程,作者通过查看错误日志、重新初始化数据目录、恢复备... 周末突然接到一位一年多没联系的妹妹打来电话,“刘哥,快来救救我”,我脑海瞬间冒出妙瓦底,电信火苲马扁.

SpringBoot使用Jasypt对YML文件配置内容加密的方法(数据库密码加密)

《SpringBoot使用Jasypt对YML文件配置内容加密的方法(数据库密码加密)》本文介绍了如何在SpringBoot项目中使用Jasypt对application.yml文件中的敏感信息(如数... 目录SpringBoot使用Jasypt对YML文件配置内容进行加密(例:数据库密码加密)前言一、J

Spring Boot 中正确地在异步线程中使用 HttpServletRequest的方法

《SpringBoot中正确地在异步线程中使用HttpServletRequest的方法》文章讨论了在SpringBoot中如何在异步线程中正确使用HttpServletRequest的问题,... 目录前言一、问题的来源:为什么异步线程中无法访问 HttpServletRequest?1. 请求上下文与线

解读为什么@Autowired在属性上被警告,在setter方法上不被警告问题

《解读为什么@Autowired在属性上被警告,在setter方法上不被警告问题》在Spring开发中,@Autowired注解常用于实现依赖注入,它可以应用于类的属性、构造器或setter方法上,然... 目录1. 为什么 @Autowired 在属性上被警告?1.1 隐式依赖注入1.2 IDE 的警告:

SpringBoot快速接入OpenAI大模型的方法(JDK8)

《SpringBoot快速接入OpenAI大模型的方法(JDK8)》本文介绍了如何使用AI4J快速接入OpenAI大模型,并展示了如何实现流式与非流式的输出,以及对函数调用的使用,AI4J支持JDK8... 目录使用AI4J快速接入OpenAI大模型介绍AI4J-github快速使用创建SpringBoot

Android开发中gradle下载缓慢的问题级解决方法

《Android开发中gradle下载缓慢的问题级解决方法》本文介绍了解决Android开发中Gradle下载缓慢问题的几种方法,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录一、网络环境优化二、Gradle版本与配置优化三、其他优化措施针对android开发中Gradle下载缓慢的问