`
tower
  • 浏览: 238995 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

OCS的前世今生

阅读更多

本文系作者原创,如需转载请注明来源,作者:姜涛,towerjt@gmail.com  tower.iteye.com

 

随着中国 3G 的正式开幕, OCS 不再是一个概念了,所谓的概念在网上也是一搜一大把,大家如果有兴趣的话,可以去找找,我这里比较随意的讲讲,可能对于初学者看着可能更加能接受一些吧。

OCS 是在线计费系统的意思,为什么叫在线计费呢,看过我上一篇文章(《计费账务系统介绍》)的人应该有印象,在有些地方的可能会出现这种情况“当你的卡上剩下 1 块钱,只要你不挂断电话,你可能可以打很长时间,很长时间!”。

 

为什么会出现这种情况呢,因为我们传统的计费系统基于 CDR 文件,属于离线计费,也叫 Hot billing ,当然我也不知道为什么叫 Hot billing ,而不叫 Spicy billing 。总之,这种计费方式必须得等你挂断电话,交换机产生话单后,计费系统才能处理,因此会导致所谓的“最后一分钟欠费”问题。对于这种问题,运营商在技术不具备的情况下,只能从运营上来解决。很多运营商采用的就是当你账户的余额不是很多的情况下,限制你的呼出,这样当然能很大程度上解决这个问题,但是对于真正的恶意欠费并没多少用途,同时却大大降低了用户体验。

 

在这种情况下,智能网计费系统横空出世。智能网计费系统是一个很猛的系统,早期和现在的大量神州行就是基于智能网系统的。他属于一种在线计费系统,直接跟交换机打交道,看下面得场景:

1、  你打进一个电话,

2、  交换机马上告诉智能网系统通话的详细情况,

3、  智能网通过判断余额,比方说你有 1 块钱,现在打的是市话,一分钟 6 毛,智能网就告诉交换机,给这个通话 1 分钟,然后自己则锁定 6 毛钱的授权,这样,你就只能打一分钟电话了,一分钟时间一到,通话马上就被切断了

4、  通话结束,交换机再告诉智能网,刚才的通话结束了,智能网按照实际通话的时长,扣除费用,释放授权。

 

看完以上的介绍,一个貌似天衣无缝的系统就这样诞生了,可惜的是,智能网系统有几个天生的缺点。首先,智能网系统的提供商大多数都是以华为为代表的电信设备商,他们在做计费规则的时候,没有现在 BOSS 系统的计费系统做的那么复杂,原因很简单,第一,这个领域他们不擅长;第二,太复杂的规则势必会加大系统的复杂度,在一定硬件条件下,如何满足快速的接通率,这是很严重的问题。这是一个在线系统,一旦出现性能或者是功能上面的问题,用户就打不了电话!所以从某种程度上而言,在线计费和离线计费的出发点就不一样。

 

随着中国移动的日益发展和市场竞争的日益恶化,并且早期网络投资早已收回,运营商对于欠费的控制和业务的发展的权衡的天平已经慢慢倾斜,运营商不再为了控制那点少许的欠费而影响系统对于资费的支持。即使智能网系统在资费的配置上做了很多工作,但是依然无法满足市场竞争的需要。而且,运营商会发现,要 BOSS 厂商改一个需求,比要智能网厂商改一个需求,要花费的时间和精力要少很多很多,所以后期的动感地带系统,很多地方已经不再使用智能网系统了。

 

这样就天下太平了吗? 3G ,还是 3G 3G 时代如果再使用这种离线计费的方式,有可能对运营商会产生巨额的欠费风险。因为在 3G 时代,运营商的系统越来越像是一个运营的平台,大量的增值业务诸如视频点播等等在上面跑,如果运营商没有良好的欠费控制,用户看了一段视频,内容提供商是得从电信运营商那里收钱的,即使是电信运营商自己购买的版权,这笔花费依然不少,所以在线计费势在必行。进入 3G 时代的 BOSS 厂商当然得与时俱进,于是乎, OCS 、融合计费等等概念就铺天盖地地在 3G 之前已经流行。

 

最后,这里再说一点就是智能网系统和 OCS 的另外一个区别。从上面的场景,我们看到,智能网系统会把账户的余额全部授权做一次业务,比方说,如果你账户上有 50 块,你打一分钟 6 毛市话的话,智能网会做一个 49 8 毛的授权,同时告诉交换机,用户可以通话 83 分钟。这种计算方法叫做时长反算,意思是通过余额反算出来时长。

在业务并发的今天,在 3G 业务开展后的明天,你完全可以一边通话,一边在手机上看视频,还可以发个短信参与抽奖等,这时候如果在通话的时候,就把账户余额全部授权了的话,后面的两个业务就无法进行了。 OCS 采用的是一种类似于时长正算,或者叫交互式计费的方式来解决这个问题,还是用一个场景来描述,会比较清楚:

1、  你打进一个电话

2、  交换机告诉 OCS 系统(或者是通过智能网系统转发)通话的详细情况

3、  OCS 系统发现账户余额为 50 块,你打的又是市话的话,则给你做 6 块钱的授权,告诉交换机,先给你接续 10 分钟。此时,你账户可用余额还有 44 块钱,这时你就可以干点别的业务了。

4、  10 分钟后你还没挂机,交换机在来找 OCS 系统在申请时长,依次反复,直到你主动终止业务或者是余额不足接续业务为止。

 

分享到:
评论
12 楼 calatustela 2009-10-13  
学习了。楼主讲得不错
11 楼 tower 2009-06-22  
“你打进一个电话”后,交换机是在你摘机后就“诉 OCS 系统”,还是等你挂机后再“诉 OCS 系统”。

——这个问题我应该说清楚了吧。挂机是在后面步骤啊。


在我曾经开发过的INGW——智能网网关——系统里面,你的电话一接通,前端就会把开始通话时间,主叫号码,发话地点等信息发过来。挂机后,前端再把结束时间发过来。两个消息组成一个完整的话单。

当时的前端是改造后的智能网系统。

在我们那个系统里面剃重并不是重点,长单和密集采集是对系统要求比较高的地方。同时,要在比较快的时间能响应前端,对于后台计费系统的处理速度也是一个考验。
10 楼 ubotutwin 2009-06-22  
   你还是没有搞清楚问题的重点在哪啊。用你的例子
1、  你打进一个电话
2、  交换机告诉 OCS 系统(或者是通过智能网系统转发)通话的详细情况
3..............
其实关键就在1、2两步之间,“你打进一个电话”后,交换机是在你摘机后就“诉 OCS 系统”,还是等你挂机后再“诉 OCS 系统”。这才是问题的关键!
   拿最普遍的cc08来说,9到14字节是摘机时间,15到20字节是挂机时间。那么既然话单里都有挂机时间这项,那么可以简单的推理出这条话单是在客户挂机后产生的,那么任何上层系统最早都得在客户挂机后才能得到这条话单的信息,这样的话何来“实时控制”?
   所以说,ocs是建立在智能网交换机所提供的摘挂两单的功能上的,没有这一功能ocs根本无从谈起。所以ocs的核心其实是能对摘机事件及时响应的话单采集系统,这涉及到去重、长单合并、高密度采集等等方面。而真到了余额限制这一步的算法相对来讲是很简单的。
9 楼 tower 2009-06-19  
ubotutwin,你说的简单的摘挂,那是智能网就能做的。你还是好好看看我最后面说的那个例子,我觉得说的还是比较清楚。OCS在业务发生的过程中是有交互的。

例子一:
1、  你打进一个电话
2、  交换机告诉 OCS 系统(或者是通过智能网系统转发)通话的详细情况
3、  OCS 系统发现账户余额为 50 块,你打的又是市话的话,则给你做 6 块钱的授权,告诉交换机,先给你接续 10 分钟。此时,你账户可用余额还有 44 块钱,这时你就可以干点别的业务了(视频点播等)——如果只是支持摘挂,这里是实现不了的,至少不同的业务之间不能共用余额。
4、  10 分钟后你还没挂机,交换机在来找 OCS 系统在申请时长,依次反复,直到你主动终止业务或者是余额不足接续业务为止。

再补充一个例子:

例子二:
1、  你打进一个电话
2、  交换机告诉 OCS 系统(或者是通过智能网系统转发)通话的详细情况
3、  OCS 系统发现账户余额为 1 块,你打的又是市话的话,则给你做  6毛钱的授权,告诉交换机,先给你接续 1 分钟。此时,你账户可用余额还有 4毛钱
4、  在这一分钟内,你通过网上缴费或者其他方式,给你的手机充了50块钱
5、  一分钟到了,前端再来申请时长,OCS系统就可以给再做6块钱的授权,再给交换机10分钟通话
4、  5分钟后,你挂机了,前端告诉OCS系统,此次通话结束,结束时间是什么。


在这里要说明一下的是,在中国移动的INGW中,INGW系统和交换机(端局)之间是通过智能网设备转发交互信息的,其他的系统我也就不大清楚了——因为我已经不做这个行业了。

最近的OCS的情况,gainfirst应该比较清楚
8 楼 ubotutwin 2009-06-19  
<div class="quote_title">tower 写道</div>
<div class="quote_div">
<p class="MsoNormal">本文系作者原创,如需转载请注明来源,作者:姜涛,towerjt@gmail.com  tower.iteye.com</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal"><span>随着中国</span>
<span lang="EN-US">3G</span>
<span>的正式开幕,</span>
<span lang="EN-US">OCS</span>
<span>不再是一个概念了,所谓的概念在网上也是一搜一大把,大家如果有兴趣的话,可以去找找,我这里比较随意的讲讲,可能对于初学者看着可能更加能接受一些吧。</span>
</p>
<p class="MsoNormal"><span lang="EN-US">OCS</span>
<span>是在线计费系统的意思,为什么叫在线计费呢,看过我上一篇文章(《计费账务系统介绍》)的人应该有印象,在有些地方的可能会出现这种情况“当你的卡上剩下</span>
<span lang="EN-US">1</span>
<span>块钱,只要你不挂断电话,你可能可以打很长时间,很长时间!”。</span>
</p>
<p class="MsoNormal"><span lang="EN-US"> </span>
</p>
<p class="MsoNormal"><span>为什么会出现这种情况呢,因为我们传统的计费系统基于</span>
<span lang="EN-US">CDR</span>
<span>文件,属于离线计费,也叫</span>
<span lang="EN-US">Hot
billing</span>
<span>,当然我也不知道为什么叫</span>
<span lang="EN-US">Hot
billing</span>
<span>,而不叫</span>
<span lang="EN-US">Spicy
billing</span>
<span>。总之,这种计费方式必须得等你挂断电话,交换机产生话单后,计费系统才能处理,因此会导致所谓的“最后一分钟欠费”问题。对于这种问题,运营商在技术不具备的情况下,只能从运营上来解决。很多运营商采用的就是当你账户的余额不是很多的情况下,限制你的呼出,这样当然能很大程度上解决这个问题,但是对于真正的恶意欠费并没多少用途,同时却大大降低了用户体验。</span>
</p>
<p class="MsoNormal"><span lang="EN-US"> </span>
</p>
<p class="MsoNormal"><span>在这种情况下,智能网计费系统横空出世。智能网计费系统是一个很猛的系统,早期和现在的大量神州行就是基于智能网系统的。他属于一种在线计费系统,直接跟交换机打交道,看下面得场景:</span>
</p>
<p class="MsoNormal"><span lang="EN-US"><span>1、<span> 
</span>
</span>
</span>
<span>你打进一个电话,</span>
</p>
<p class="MsoNormal"><span lang="EN-US"><span>2、<span>  </span>
</span>
</span>
<span>交换机马上告诉智能网系统通话的详细情况,</span>
</p>
<p class="MsoNormal"><span lang="EN-US"><span>3、<span>  </span>
</span>
</span>
<span>智能网通过判断余额,比方说你有</span>
<span lang="EN-US">1</span>
<span>块钱,现在打的是市话,一分钟</span>
<span lang="EN-US">6</span>
<span>毛,智能网就告诉交换机,给这个通话</span>
<span lang="EN-US">1</span>
<span>分钟,然后自己则锁定</span>
<span lang="EN-US">6</span>
<span>毛钱的授权,这样,你就只能打一分钟电话了,一分钟时间一到,通话马上就被切断了</span>
</p>
<p class="MsoNormal"><span lang="EN-US"><span>4、<span>  </span>
</span>
</span>
<span>通话结束,交换机再告诉智能网,刚才的通话结束了,智能网按照实际通话的时长,扣除费用,释放授权。</span>
</p>
<p class="MsoNormal"><span lang="EN-US"> </span>
</p>
<p class="MsoNormal"><span>看完以上的介绍,一个貌似天衣无缝的系统就这样诞生了,可惜的是,智能网系统有几个天生的缺点。首先,智能网系统的提供商大多数都是以华为为代表的电信设备商,他们在做计费规则的时候,没有现在</span>
<span lang="EN-US">BOSS</span>
<span>系统的计费系统做的那么复杂,原因很简单,第一,这个领域他们不擅长;第二,太复杂的规则势必会加大系统的复杂度,在一定硬件条件下,如何满足快速的接通率,这是很严重的问题。这是一个在线系统,一旦出现性能或者是功能上面的问题,用户就打不了电话!所以从某种程度上而言,在线计费和离线计费的出发点就不一样。</span>
</p>
<p class="MsoNormal"><span lang="EN-US"> </span>
</p>
<p class="MsoNormal"><span>随着中国移动的日益发展和市场竞争的日益恶化,并且早期网络投资早已收回,运营商对于欠费的控制和业务的发展的权衡的天平已经慢慢倾斜,运营商不再为了控制那点少许的欠费而影响系统对于资费的支持。即使智能网系统在资费的配置上做了很多工作,但是依然无法满足市场竞争的需要。而且,运营商会发现,要</span>
<span lang="EN-US">BOSS</span>
<span>厂商改一个需求,比要智能网厂商改一个需求,要花费的时间和精力要少很多很多,所以后期的动感地带系统,很多地方已经不再使用智能网系统了。</span>
</p>
<p class="MsoNormal"><span lang="EN-US"> </span>
</p>
<p class="MsoNormal"><span>这样就天下太平了吗?</span>
<span lang="EN-US">3G</span>
<span>,还是</span>
<span lang="EN-US">3G</span>
<span>!</span>
<span lang="EN-US">3G</span>
<span>时代如果再使用这种离线计费的方式,有可能对运营商会产生巨额的欠费风险。因为在</span>
<span lang="EN-US">3G</span>
<span>时代,运营商的系统越来越像是一个运营的平台,大量的增值业务诸如视频点播等等在上面跑,如果运营商没有良好的欠费控制,用户看了一段视频,内容提供商是得从电信运营商那里收钱的,即使是电信运营商自己购买的版权,这笔花费依然不少,所以在线计费势在必行。进入</span>
<span lang="EN-US">3G</span>
<span>时代的</span>
<span lang="EN-US">BOSS</span>
<span>厂商当然得与时俱进,于是乎,</span>
<span lang="EN-US">OCS</span>
<span>、融合计费等等概念就铺天盖地地在</span>
<span lang="EN-US">3G</span>
<span>之前已经流行。</span>
</p>
<p class="MsoNormal"><span lang="EN-US"> </span>
</p>
<p class="MsoNormal"><span>最后,这里再说一点就是智能网系统和</span>
<span lang="EN-US">OCS</span>
<span>的另外一个区别。从上面的场景,我们看到,智能网系统会把账户的余额全部授权做一次业务,比方说,如果你账户上有</span>
<span lang="EN-US">50</span>
<span>块,你打一分钟</span>
<span lang="EN-US">6</span>
<span>毛市话的话,智能网会做一个</span>
<span lang="EN-US">49</span>
<span>块</span>
<span lang="EN-US">8</span>
<span>毛的授权,同时告诉交换机,用户可以通话</span>
<span lang="EN-US">83</span>
<span>分钟。这种计算方法叫做时长反算,意思是通过余额反算出来时长。</span>
</p>
<p class="MsoNormal"><span>在业务并发的今天,在</span>
<span lang="EN-US">3G</span>
<span>业务开展后的明天,你完全可以一边通话,一边在手机上看视频,还可以发个短信参与抽奖等,这时候如果在通话的时候,就把账户余额全部授权了的话,后面的两个业务就无法进行了。</span>
<span lang="EN-US">OCS</span>
<span>采用的是一种类似于时长正算,或者叫交互式计费的方式来解决这个问题,还是用一个场景来描述,会比较清楚:</span>
</p>
<p class="MsoNormal"><span lang="EN-US"><span>1、<span>  </span>
</span>
</span>
<span>你打进一个电话</span>
</p>
<p class="MsoNormal"><span lang="EN-US"><span>2、<span>  </span>
</span>
</span>
<span>交换机告诉</span>
<span lang="EN-US">OCS</span>
<span>系统(或者是通过智能网系统转发)通话的详细情况</span>
</p>
<p class="MsoNormal"><span lang="EN-US"><span>3、<span> 
</span>
</span>
</span>
<span lang="EN-US">OCS</span>
<span>系统发现账户余额为</span>
<span lang="EN-US">50</span>
<span>块,你打的又是市话的话,则给你做</span>
<span lang="EN-US">6</span>
<span>块钱的授权,告诉交换机,先给你接续</span>
<span lang="EN-US">10</span>
<span>分钟。此时,你账户可用余额还有</span>
<span lang="EN-US">44</span>
<span>块钱,这时你就可以干点别的业务了。</span>
</p>
<p class="MsoNormal"><span lang="EN-US"><span>4、<span> 
</span>
</span>
</span>
<span lang="EN-US">10</span>
<span>分钟后你还没挂机,交换机在来找</span>
<span lang="EN-US">OCS</span>
<span>系统在申请时长,依次反复,直到你主动终止业务或者是余额不足接续业务为止。</span>
</p>
<p class="MsoNormal"><span lang="EN-US"> </span>
</p>
</div>
<p>      lz还是没有讲出ocs其中的关键,就是“<span lang="EN-US"><span>2、<span>  </span>
</span>
</span>
<span>交换机告诉</span>
<span lang="EN-US">OCS</span>
<span>系统(或者是通过智能网系统转发)通话的详细情况</span>”!按lz文中所说:</p>
<p> </p>
<p>      “<span>我们传统的计费系统基于</span>
<span lang="EN-US">CDR</span>
<span>文件,属于离线计费,也叫</span>
<span lang="EN-US">Hot
billing</span>
<span>,当然我也不知道为什么叫</span>
<span lang="EN-US">Hot
billing</span>
<span>,而不叫</span>
<span lang="EN-US">Spicy
billing</span>
<span>。总之,这种计费方式必须得等你挂断电话,交换机产生话单后,计费系统才能处理</span>”。</p>
<p> </p>
<p>      按此推断在“<span lang="EN-US"><span><span> </span>
</span>
</span>
<span>交换机告诉</span>
<span lang="EN-US">OCS</span>
<span>系统(或者是通过智能网系统转发)通话的详细情况</span>”时刻,这次通话已经结束了,那何来“实时控制”之说?再者,如果交换机只支持可使用、不可使用两种单一的客户状态,具体何时停机、复机只能按上层系统指示行事,那即使有了ocs有怎么能告诉交换机什么时刻停机?难不成给每个客户都加个定时器?这显然是不现实的。因此实时控制的根本,还是在硬件一侧实现的,如果整个实时控制系统是100,那么交换机的支持要占到其中的80以上!</p>
<p> </p>
<p>      ocs系统本身并没有什么神秘之处,实现实时费用控制的关键在于:第一、交换机支持摘挂两单式的话单文件,第二、交换机支持quota这个概念(我是按死磕公司sce里的名词写的,就是还能用多少时长、多少流量的概念)。</p>
<p> </p>
<p>      这样,交换机在客户摘机时就能生成一条话单,告诉上层系统:某某某摘机了,请处理。ocs就按普通的计费流程算出quota(正算、反算什么的都用上了),然后告诉交换机:“某某某还剩10分钟”........</p>
<p> </p>
<p>      以上就是个人对实时计费的一点点体会,有疏漏错误的地方还要请大家多给指教啊!呵呵     <img src="/images/smiles/icon_smile.gif" alt=""></p>
<p> </p>
<p>      后记:我以前做c++时做过一个话单采集的项目,那时还是59字长,摘挂一单的时代了,过时很多年了,呵呵。</p>
7 楼 tower 2009-06-17  
gainfirst 写道

OCS其实在3G来临之前呼声已经很高了,每年每个省份至少在这一块损失过千万(尤其是联通),当时技术上实现有很多难点,不过虽然3G时代来临了,大多数省份正真的OCS都没有上,大多数还持观望状态,比如四川山东江苏安徽等,虽然已经上去了,但是真正用户的都没有割上去或者割上去的很少,按照集团的规范各省至少是10w的用户量(电信),但是各省执行力度确实欠缺的很。主要是现在很多技术难点还是存在着,因为目前OCS只是支持预付费单产品,像电信套餐那么多,那么复杂,很多是不能支持的(移动这方面就很好,套餐少又简单又实用),还有就是及时的上下OCS(HB和OCS,OCS中物理数据库和内存数据库TT之间的数据交互,当50w个用户以上,性能就直接指数级下降),月底的自动翻转,以及ismp,AAA,ISAG等平台的升级支持度都存在很多问题。其实即使有了OCS,余额还是会小于0,比如租费和套餐费计算,一个帐户下有多种类型的用户等。

说的很好,但是不到丰富的3G业务出现,OCS的确是用不上。联通在最后一分钟的问题上,一年损失过千万,成本到底是多少呢?而且一个省一年过千万,对于运营商来说,也不是什么迫在眉睫的事情
6 楼 gainfirst 2009-06-16  
OCS计算费用时长反算和正算都在使用。余额小于规定的申请时长的时候用反算,其他都用正算。另外OCS不仅是使用时长计算,还有流量计算(原理和时长一样,不过申请的单位成了K)等
5 楼 gainfirst 2009-06-16  
OCS其实在3G来临之前呼声已经很高了,每年每个省份至少在这一块损失过千万(尤其是联通),当时技术上实现有很多难点,不过虽然3G时代来临了,大多数省份正真的OCS都没有上,大多数还持观望状态,比如四川山东江苏安徽等,虽然已经上去了,但是真正用户的都没有割上去或者割上去的很少,按照集团的规范各省至少是10w的用户量(电信),但是各省执行力度确实欠缺的很。主要是现在很多技术难点还是存在着,因为目前OCS只是支持预付费单产品,像电信套餐那么多,那么复杂,很多是不能支持的(移动这方面就很好,套餐少又简单又实用),还有就是及时的上下OCS(HB和OCS,OCS中物理数据库和内存数据库TT之间的数据交互,当50w个用户以上,性能就直接指数级下降),月底的自动翻转,以及ismp,AAA,ISAG等平台的升级支持度都存在很多问题。其实即使有了OCS,余额还是会小于0,比如租费和套餐费计算,一个帐户下有多种类型的用户等。
4 楼 ihad 2009-05-22  
hot-billing ,ocs,vc,wss,余额管理,这俩天了解到的几个计费域业务网元。
3 楼 seen 2009-05-09  
ocs, radius, diameter...
2 楼 oxy 2009-05-08  
不错,移动在BOSS3.0时代就开干了,但现在NG方面不知道咋样了
1 楼 一个马甲 2009-05-06  
谢谢,刚好搞不懂什么叫OCS呢。

相关推荐

Global site tag (gtag.js) - Google Analytics