`
txf2004
  • 浏览: 7038813 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

构建VoIP Web callback系统 ---基于Web方式的phone2phone通信方式(1)

阅读更多

前言

IP回拨业务,因为服务的特殊性,主叫(用户)方也是处于接听状态,只要是单向收费的手机,基本通话费就是0分。那么使用IP回拨业务来打电话,不管长途、市话,话费就非常低廉,竞争优势明显。

系统概念

Ø Callback原理

callback的主要原理就是当A用户希望跟B用户通话时,他自己不需要通过手机主动拨号到B用户手机上,相反地:

l 通过某种方式,初始化一个callback call(接下来会讨论几种激活一个callback的方式)。

l 系统首先跟用户A建立连接,所以这时候A不是发出呼叫,而是接听这个来自系统的呼叫(在大部分的电话网络中(座机、接听免费的手机,对于这种方式的接听是0话费的))。

l 紧接着系统建立到用户B的通话,当B接听后,系统桥接这两个calls一起,所以 AB就能够通话了。

Ø 一个回调系统的主要组件

上面部分是从一个终端用户的角度出发来描述callback服务。先撇开最终要探讨的web callback系统,我们看一看一个callbback系统解决方案有关的内部架构。一个callback系统主要有三个组件:

l Callback触发器

l Callback引擎

l 认证与计费

Callback触发器

为什么叫触发器呢,顾名思义,所谓触发器,就是激发某种事件发生的硬件或者软件设备,在我们这里当然是指软件设备。这种触发器起到了联接用户跟callback系统的桥梁、起到了枢纽作用——用户通过某种方式告诉系统,他想要打电话给哪个被叫,这时候系统callback触发器就能够跟终端用户交互,基于它所收到的来自终端用户的信息,初始化callback过程。目前存在有几种类型的触发器:

ANI(missed call) 触发(电话预约回拨)

这应该是最古老并且是最普遍的触发器类型。原理很简单,首先话务发起方(以下称用户)拨打回拨平台接入码,平台接收到用户主叫号码主动挂掉连接(您不用支付该帐单,因为只响了几声,没有通)在设定时间内以运营方的身份,系统回拨到用户的话机上(实际上的第一主叫方),用户摘机后第一个通话链路建立,系统播放提示语音,用户拨打被叫号码(真正意义的被叫),回拨平台收全被叫号后,发起第二次呼叫,同时给用户播放相应的提示音,如被叫摘机则第二条链路建立同时回拨平台把两条链路搭通,主被叫通话建立,通话完毕,系统记录下第二条链路产生的话单并按照相应费率,在用户的账户(或卡)上扣除。

对于这种方式,我们可以类比现在的手机200卡:

手机200业务平台是运营商,依托于高达<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="40" unitname="g"><span lang="EN-US"><font face="Times New Roman">40G</font></span></chmetcnv>宽带CNCnet骨干网络及数万公里CNC长途光缆,融合了互联网技术和传统电信网的新型增值业务,只要您的手机是接全国网内免费,如(动感地带,CDMA),就可以使用手机200卡,因为200卡的服务特殊性,使您是在接听状态下打电话,费用将不会从移动/联通扣,直接从手机200卡里走。”

DNIS(DID)callback

这种方式跟上面提到的ANI(missed call) callback很接近,主要是用途在国际长途。

您首先拨打服务提供商给您的连接号(英文叫 Access Number, 术语简称叫DID, 10位数字的电话号码) 听到对方铃声响了后,立刻挂断。马上你的电话就响,抓起来听到拨号音和语音提示,再拨您想打的号码。比如:在美国,假设您在美国家中的号码是928-111-2222, 您的DID666-888-9999, 您想打的号码是中国北京父母家中86-10-5555-6666。您先拨1+6468889999, 听到铃声后立刻挂断。马上您家中928-111-2222那部电话机就响,抓起电话,听到类似这样的拨号音和提示:请拨打您的号码……”,您就拨011-86-10-55556666,双方就可以通话了。

SMS callback

SMS-callback也就是短信回拨系统,客户无需电脑,无需网络支持。仅需使用已注册手机发送指定格式的短信内容,大约5秒左右系统将自动为客户连通。 比如:

你可以使用手机发送一条SMS消息到我们的网络来开始拨打callback电话。一般地,你所发送的SMS格式为:用户名 密码 主叫号码 被叫号码,如:

username password 004412345678 004498765432

Web callback

客户通过web界面登陆,无需下载和安装任何软件。然后用正确的账号/密码登陆WEB界面,输入自己的号码以及被叫号码,系统将自动为客户接通。我们接下来将要使用开源软交换机(open-source IPBX)Asterisk实现这种功能,体验方式为:

1. 在首页输入您的电话号码:

<shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></path><lock aspectratio="t" v:ext="edit"></lock></shapetype><shape id="_x0000_i1026" style="WIDTH: 306.75pt; HEIGHT: 67.5pt" type="#_x0000_t75"><imagedata o:title="" src="file:///C:%5CDOCUME~1%5CGAOLIN~1%5CLOCALS~1%5CTemp%5Cmsohtml1%5C24%5Cclip_image001.png"></imagedata></shape>

2.点击“立即拨打”按钮:

<shape id="_x0000_i1027" style="WIDTH: 307.5pt; HEIGHT: 67.5pt" type="#_x0000_t75"><imagedata o:title="" src="file:///C:%5CDOCUME~1%5CGAOLIN~1%5CLOCALS~1%5CTemp%5Cmsohtml1%5C24%5Cclip_image003.png"></imagedata></shape>

3在弹出页面输入您朋友的电话号码(固定电话加区号)

<shape id="_x0000_i1028" style="WIDTH: 242.25pt; HEIGHT: 315pt" type="#_x0000_t75"><imagedata o:title="" src="file:///C:%5CDOCUME~1%5CGAOLIN~1%5CLOCALS~1%5CTemp%5Cmsohtml1%5C24%5Cclip_image005.png"></imagedata></shape>

4点击绿色“呼叫”按钮

上面弹出来的对话框,是基本用户的体验方式考虑的,它还是一个网页,不是Skype客户端,由于这是一个免费的活动,所以没有考虑作为一个标准的基于Webcallback认证功能,所以不需要输入用户名与密码等信息。详细的说明见后面。

Email callback

1.最基本的通过email的形式:只带主叫号码

发送e-mail call@uwtcallback.comEmail的主题为:主叫号码的后7位数,比如:如果您的DID连接号(有关DID的介绍在上面的DNIS(DID)callback里有介绍)1 581 037 0728,那么主题将是0370728,一旦email被成功发送,系统将会回拨你的主叫,然后播放语音提示,输入被叫号码跟#键。


2带被叫号码的形式

在上面的基本形式中,你可以包含被叫号码:

在主题中,输入您的DID连接号的后7位数并且紧跟着#键,然后再输入被叫号码。

如:如果你的DID连接号为1 581 037 072,被叫号码为011-928-111-2222,主题为:0370728#0119281112222,一旦邮件发送成功,系统将会播放类似这样的语音提示:“请您稍等,系统正在为您接通电话…….

<shape id="_x0000_i1025" style="WIDTH: 163.5pt; HEIGHT: 67.5pt" type="#_x0000_t75"><imagedata o:title="未命名2" src="file:///C:%5CDOCUME~1%5CGAOLIN~1%5CLOCALS~1%5CTemp%5Cmsohtml1%5C24%5Cclip_image008.gif"></imagedata></shape>

Callback引擎

VoIP网络中,其中负责建立呼叫主叫A与被叫B,并且桥接这两者的组件,称之为callback引擎(callback engine).对于callback引擎,存在有不同的实现方式,但是一般能够实现下面的功能:

l 引擎应该含有一个接口,从callback触发器收集到的call请求信息递交到这个接口,在我们将要实现的基于Web的触发器中,这个接口就是asteriskAMI模块;

l 在计费过程中,应该有认证功能来确保用户是否允许拨打这个电话及是否有足够的余额来拨打(在我们目前实现的Web callback中没有这个模块)

l 建立主叫、被叫的通话关系。

l 当账户上的信息显示余额不足时,断开双方的通话过程,在我们的Web callback中就是当5分钟的通话时间到了,系统将断开通话过程。

l 为了更好地计费,给用户生成通话时长和其它的相关的通话信息。(在我们目前实现的Web callback中没有这个模块)

认证、计费

通话认证

在常见的VoIP系统中,这是一个很重要的模块。在计费开始之前,必须能够支持一种通话认证类型,并且对于callback服务来说,这种认证要足够详细。对于普通的服务来说(比如说预付费方式),这种认证将像下面这样:“如果账户123的账户里有5¥的余额,他尝试呼叫861234567,这时候的问题就是,他是否允许这次的呼叫?如果是,应该有多久的时长?”在这种情况下,计费系统将会找到拨打被叫861234567合适的费率(我们假设说¥0.10/min,)然后计算出允许的最大的通话时长:5/0.150min

计费

在通话结束后,计费系统应该马上就要实施费用的计算了,并把CDR记录写进数据库中然后修改用户的账户信息等。

接下来,以Web callback为例子,展示基于Webcallback系统。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics