前言
IP回拨业务,因为服务的特殊性,主叫(用户)方也是处于接听状态,只要是单向收费的手机,基本通话费就是0分。那么使用IP回拨业务来打电话,不管长途、市话,话费就非常低廉,竞争优势明显。
系统概念
Ø Callback原理
callback的主要原理就是当A用户希望跟B用户通话时,他自己不需要通过手机主动拨号到B用户手机上,相反地:
l 通过某种方式,初始化一个callback call(接下来会讨论几种激活一个callback的方式)。
l 系统首先跟用户A建立连接,所以这时候A不是发出呼叫,而是接听这个来自系统的呼叫(在大部分的电话网络中(座机、接听免费的手机,对于这种方式的接听是0话费的))。
l 紧接着系统建立到用户B的通话,当B接听后,系统桥接这两个calls一起,所以 A与B就能够通话了。
Ø 一个回调系统的主要组件
上面部分是从一个终端用户的角度出发来描述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, 您的DID是666-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客户端,由于这是一个免费的活动,所以没有考虑作为一个标准的基于Web的callback认证功能,所以不需要输入用户名与密码等信息。详细的说明见后面。
Email callback
1.最基本的通过email的形式:只带主叫号码
发送e-mail 到call@uwtcallback.com,Email的主题为:主叫号码的后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的触发器中,这个接口就是asterisk的AMI模块;
l 在计费过程中,应该有认证功能来确保用户是否允许拨打这个电话及是否有足够的余额来拨打(在我们目前实现的Web callback中没有这个模块)
l 建立主叫、被叫的通话关系。
l 当账户上的信息显示余额不足时,断开双方的通话过程,在我们的Web callback中就是当5分钟的通话时间到了,系统将断开通话过程。
l 为了更好地计费,给用户生成通话时长和其它的相关的通话信息。(在我们目前实现的Web callback中没有这个模块)
认证、计费
通话认证
在常见的VoIP系统中,这是一个很重要的模块。在计费开始之前,必须能够支持一种通话认证类型,并且对于callback服务来说,这种认证要足够详细。对于普通的服务来说(比如说预付费方式),这种认证将像下面这样:“如果账户123的账户里有5¥的余额,他尝试呼叫861234567,这时候的问题就是,他是否允许这次的呼叫?如果是,应该有多久的时长?”在这种情况下,计费系统将会找到拨打被叫861234567合适的费率(我们假设说¥0.10/min,)然后计算出允许的最大的通话时长:5/0.1=50min。
计费
在通话结束后,计费系统应该马上就要实施费用的计算了,并把CDR记录写进数据库中然后修改用户的账户信息等。
接下来,以Web callback为例子,展示基于Web的callback系统。
分享到:
相关推荐
普博Callback回拨系统-1.3+注册
Ansible-ansible-callback-grafana-annotations.zip,执行剧本时自动在grafana中发布注释!不推荐:这个插件是Ansible 2.6版的一部分。修补应在那里进行。,ansible是一个简单而强大的自动化引擎。它用于帮助配置管理...
在IT领域,Unigui是一个基于Web的开发框架,它允许开发者创建富客户端应用程序,而无需深入了解复杂的前端技术。这个框架特别适用于那些需要构建高效、跨平台的企业级应用的开发者。"unigui_ajax Post Callback - ...
本文将详细探讨标题中提及的资源——"pl-minio-callback-1.0.4.tar.gz",这是一款基于Python的库,可以从PyPI官网下载。通过解析其名称,我们可以推断出这个库可能与MinIO服务以及回调功能有关。 首先,让我们了解...
本篇文章将详细解释如何在C语言环境中使用protobuf-c处理`repeated`字段,创建数组和字符串,并特别关注`pb_callback_t`这一特殊类型。 首先,我们需要理解`repeated`字段在protobuf语义中的含义。在protobuf的定义...
基于回调函数的通用冒泡排序_Callback-function
`requestIdleCallback` 是一个Web API,由W3C定义,主要用于调度低优先级的任务。它的工作原理是,当浏览器在完成所有渲染和用户交互后还有额外的时间时,就会调用开发者注册的回调函数。这种方式确保了高优先级的...
在开发Java Web应用程序时,`web.xml`是一个关键配置文件,它定义了Web应用的行为和结构。本篇文章将深入探讨如何使用`web.xml`来控制Web应用的各种特性。 1. **定义头和根元素** `web.xml`文件通常以`<web-app>`...
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
总之,异步Web方法调用在Java中具有重要的应用价值,通过AXIS2这样的框架,可以方便地实现异步Web服务的开发和调用,提高系统性能和用户体验。在实际项目中,根据需求选择合适的异步调用策略,并确保正确处理回调和...
在IT行业中,回调机制是一种常见的编程模式,尤其在C和C++这样的低级语言中,它们经常被用来处理异步操作或实现不同...这种技术在游戏开发、脚本系统、插件架构等领域非常常见,它能帮助我们构建灵活、可扩展的系统。
2. **性能优化**:由于CBFS允许在内存中构建文件系统,因此开发者应考虑性能影响,合理设计数据结构和操作流程,避免过度消耗系统资源。 3. **错误处理**:在实现回调文件系统时,必须处理可能出现的各种错误情况,...
Evernote iOS x-callback-url 支持 Evernote iOS 应用从 7.5 版开始支持 x-callback-url。 一些应用程序已经在使用这种集成,例如和 。 这是的示例 写了很棒的关于 Evernote iOS 中的 x-callback-url 支持以及我们...
通过阅读《基于java的进程间异步通信系统的设计与实现》这份文档,你将能深入了解如何在Java环境中构建高效、可靠的进程间通信解决方案,并了解这些技术在Android平台上的具体应用。同时,文档中的实例和代码示例将...
官方离线安装包,亲测可用
官方离线安装包,亲测可用
只需执行以下命令即可将插件添加到您的项目中: npm install callback-form-email-notifier安装首先,不要忘记: yarn install / nmp installcomposer install将dist / email / settings-example.ini复制到dist / ...
官方离线安装包,亲测可用
官方离线安装包,亲测可用