精华内容
下载资源
问答
  • 必须有一个Dispatcher类负责处理呼叫,并且它必须包含dispatchCall方法,以将其分配给可用的雇员。 可以同时由多个线程调用dispatchCall方法。 Dispatcher类必须具有同时(并发)处理10个呼叫的能力。 每个呼叫...
  • (1)分析并总结程控交换机的各部分功能需求。 (2)分析程控交换机软件系统的程序的执行过程。...(3)交换软件程序的层次结构及其实现模块,不同层次的软件模块组成,每个模块完成的功能,高层软件由低层提供支持。
  • 中国移动呼叫中心的业务处理流程图 在做系统设计时 有很大的参考价值哟
  • 课程设计-基于51单片机设计的病床呼叫系统实现: 摘要 病房呼叫系统是传送临床信息的重要手段,可将病人的请求快速传送给值班医生或护士,它主要用于协助医院病员在病床上方便地呼叫医务人员,是提高医院和病室护理...
  • 平台主要进行话务处理,具有通用性,不同的呼叫系统可能使用相似的平台。业务处理则相对具有专业性,不同行业、不同银行或券商的业务都会有所不同,很难有统一的内容。 平台的通用性和业务的专业性,是呼叫系统的一...

    前面介绍了呼叫系统的行业应用和关键技术等,都只是些呼叫系统的基本知识,还不能完全地揭示一个呼叫系统的实际面貌。那么呼叫系统究竟是如何构成及运转的呢?本节将具体研究这一问题。

    1.呼叫系统的逻辑架构

    呼叫系统包括多个组成部分,不同部分的功能、作用也不同。最简单的划分可以分为平台和业务两部分。平台主要进行话务处理,具有通用性,不同的呼叫系统可能使用相似的平台。业务处理则相对具有专业性,不同行业、不同银行或券商的业务都会有所不同,很难有统一的内容。

    平台的通用性和业务的专业性,是呼叫系统的一个基本特点,也是众多开发与集成厂商关注的问题。下面以一个基本的呼叫系统产品为例,介绍呼叫系统的逻辑架构,看看它是如何把平台和业务结合起来的。

    通常的呼叫系统解决方案都采用了业务与交换分离的设计思想,如图9.5所示。

    整个呼叫系统分为三个逻辑层次(平台):通信平台、业务平台和数据信息平台。这基本是按照呼叫系统各个部分的功能类型以及它们在一个交易进行的标准流程中所处的顺序来划分的。

    (1)通信平台

    通信平台是应用的用户接口部分,它担负着客户与系统间的对话功能。它用于检査用户输入的数据,显示应用输出的数据。

    通信平台根据功能划分为通信接入层和媒体服务层两个层次。

    ①通信接入层。通信接入层负责用户的接入,包括电话呼叫系统、WAP、短消息.Internet等各种渠道的接入,从另一个角度来说,通信接入层可以称为系统和客户的接口,包括客户的呼入以及主动的呼出两个部分。

    通信接入层具体负责与电信PSTN的接口、话务的分配和排队功能,具有ACD的能力,提供各种路由排队策略。

    ②媒体服务层。媒体服务层提供包括IVR、人工坐席服务、Fax、E-mail、Web等灵活的服务方式,完成客户与系统间的对话和交互功能。

    (2)业务平台

    业务处理平台实现系统提供的各种具体应用,处理具体的业务处理逻辑,可以看作是实现一系列功能服务簇。在智能电销系统业务功能设计中采用RTU(RightstoUse)用户使用权限的方式。在系统中通过RTU管理方式控制具体业务的开通和关闭,在工程实施中只需根据具体的业务需求开通相应的业务功能的RTU即可,因此在项目实施中十分方便。

    (3)数据信息平台

    数据信息平台是与各业务系统的接口,可能的组成部分包括交易系统、调度系统、MIS系统等。

    2.呼叫系统的接入平台

    接入平台是通信平台的一部分,也是呼叫系统分类的一个常见依据。不同的接入平台适用的情况不同,建设成本不同,实现功能的质量也不同。根据接入设备的不同,平台主要分板卡、PBX和IPCC三种类型。

    (1)板卡平台方案

    图9.6是板卡平台的呼叫系统构成示意图。系统由工控机(插有语音处理卡、座席卡和传真卡等)、人工座席、IVR、数据库、业务处理系统等构成。基于计算机语音板卡的方式的基本思想是,在微机平台上集成各种专用的计算机语音板卡(如呼叫处理卡、语音资源卡、服务坐席卡),完成通信接口、语音处理、传真处理、座席转接等功能,再结合外部的计算机网络来实现应用系统的需求。板卡平台方案的自动呼叫分配功能由软件ACD实现。这种呼叫处理系统本身就是一个计算机网络,所以很容易将其接入数据库系统,用户可以很方便地同时得到电话呼叫系统和计算机数据两种资源。微机方案的实施带有明显的软件研发特点,灵活性较强,但由于复杂的电话呼叫系统交换是在微机平台上由呼叫处理卡完成的,所以系统呼叫处理能力相对较弱。板卡平台方案的发展是由板卡生产厂商(如Dialog?ic,NMS)和应用软件开发商共同推动的。

    以板卡平台为基础的呼叫处理系统的主要技术组成如下:

    ①Client/Server结构的微机网络技术。在这种系统中,呼叫处理和语音处理的功能集中在语音工作站中,系统的资源控制、数据库系统在服务器中实现,业务生成、改动则由专门的应用处理工作站完成。整个系统是一个Client/Server结构的微机网络。

    ②语音板卡技术。语音板卡的种类包括通信线路接口卡(数字中继卡、模拟线接口卡等)、信令处理卡(如七号信令卡)、语音资源卡、传真资源卡、座席卡以及通用语音处理平台。

    ③语音总线技术。语音总线使各种功能专一的语音板卡连接

    成一个功能复杂的系统,同时也是微机语音平台实现交换的基础。

    ④机间扩展总线技术。限于微机的处理能力,一个语音工作站只能处理一部分呼叫或实现某一项功能。要将独立的语音工作站互联成一个大系统,就需要机间总线技术。这种系统的硬件系统在板卡级集成,由于是总线结构,硬件系统的可靠性指标由系统中的最差部件决定。由于系统的所有功能都是由软件编程实现的,因而系统整体可靠性的瓶颈在于软件开发商的经验和软件的质量。板卡方案的实施带有明显的软件研发特点,工程进度的控制较难,基本上决定于开发商的研发能力。

    板卡方案适宜建设规模相对较小、业务灵活的呼叫系统。

    板卡方案的优点如下:

    ①对于规模不大的系统,在系统建设初期投资较小。但是,如果系统规模大到一定程度,由于微机平台和软件开发的特点,系统的造价将大大增加。

    ②在系统功能较为单一、软件开发商富有经验的条件下,系统建设周期可能较短。

    ③由于系统的大部分功能是由软件控制实现的,系统开发新功能较为容易。

    但是呼叫系统需要对大量呼叫进行复杂的处理,而这种处理量对于单一呼叫处理并不是线性叠加的关系,因此不能靠简单的多机处理解决存在的问题。

    从技术上分析,板卡方案的缺点也很多:

    ①硬件指标低。硬件系统的可靠性指标与通信系统的要求相差甚远。

    ②没有适于呼叫处理的操作系统。呼叫处理是实时性要求很高的操作,要求有高性能实时操作系统。微机平台的操作系统,如OS/2?WindowsNT,Windows95?Windows98,SCOUNIX等,都是分时系统而非实时系统,难以保证呼叫处理的稳定性和安全性,更不用说在呼叫处理的基础上完成智能路由。

    ③对于软件开发的要求太高。

    ④呼叫系统的高效率来源于呼叫与数据距离最近的概念,而微机方案仅能实现呼叫与自动语音距离最近,这对于声读服务或简单的座席服务是适宜的,但对于复杂的呼叫系统应用,微机方案的最终性能与PBX方案相比是有较大的差距。

    (2)PBX平台方案

    如图9.7所示是PBX平台.呼叫系统的构成示意图。系统由交换机、ACD、IVR、人工座席、数据库、业务处理系统等组成。基于交换机方案的核心思想是,在专用交换机集成ACD的基础上扩展路由功能,开放CTI-Link接口,用CTI技术实现通信和计算机的功能结合,再配以必要的语音和数据库系统,从而以强大的通信和计算机功能满足呼叫系统的要求。呼叫处理由交换机完成,客户的自动语音服务由自动语音应答系统完成。CTI服务器作为系统核心部件,通过交换机CTI-Link获取交换机的状态并实现与交换机的通信。PBX方案可以在结构上清晰地区分开计算机系统和通信系统,CTI服务器是协调控制两者的连接设备:保证座席和自动语音应答系统可以充分利用数据资源和呼叫处理资源。PBX方案发展是基于CTI-Link标准、通信厂家和计算机厂家利用各自优势,分工合作的结果。

    由于PBX方案处理能力较大,性能稳定,因此国际上大型呼叫系统一般采用PBX方案实现。

    PBX方案的优点:

    ①既保留了通信系统和计算机系统的独立性,又综合了两者的功能。

    ②各子系统的功能明确,有成熟的国际标准,如CSTA179及CSTA180标准。

    ③由于有明确的技术分工,有利于各子系统的生产厂商形成规模产业,从而降低系统的综合成本。

    ④对于各子系统,生产厂商一般都有较长的技术积累期,因而具有可靠性较高的技术指标。

    PBX方案的缺点:

    ①系统牵扯的厂家有可能较多,接口多而复杂,这对集成商的经验和组织协调能力是一个考验。

    ②由于有众多著名厂商参与,提供的方案和产品的功能都很强,同时造价也较贵。如果不能加以妥善选取,系统的总造价将较贵。

    (3)IPCC平台方案

    图9.8为IPCC构成图。系统主要由语音网关(通常由路由器加相关模块构成)、CallManager.IPIVR、IP座席、ICM控制软件、PG网关、AW工作站、数据库、业务处理系统等构成。IPCC是在IP语音技术(VoIP)的基础上发展起来的,它是IP电话呼叫系统技术与呼叫系统的结合,并被认为是呼叫系统发展的方向。它的实现思想是把语音转换为IP包,与数据一起在计算机网络上传递,在一定程度上实现了三网合一,完全使用计算机网络构建呼叫系统。该呼叫系统具有地域分散性、可移动性的特点。

    IPCC与传统呼叫系统相比,增加了一个CallManager服务器,专门用于实现IP电话呼叫系统功能,座席的电话呼叫系统机不再与交换机或语音板卡相连,而是直接连入IP网络,把实际呼叫系统的范围扩大到整个IP网络。IPCC的核心是ICM软件,它由ICM(IntelligentCallManager)%PG(PeripheicGateway)外围网关、AW管理工作站组成,具有强大的控制管理功能,能够在全网范围内实现语音和数据的可靠传递。话务的ACD、话务的转接以及相关数据的传递都由ICM负责,它是从网络到桌面的功能强劲的CTI软件。

    组建IPCC,在很大程度上利用了企业原有的网络资源,而且灵活性很高,扩展十分方便,不太受地域限制。只要网络能够到达,座席人员甚至可以在家中工作,客户从因特网以及其他多媒体方式接入得到服务也很方便。IPCC在理论上具有了提供3A(Any?time,Anywhere,Anyhow)服务的能力。

    IPCC方案的优点:

    ①基于IPCC方案的最大的好处就在于它简化了呼叫系统的底层架构。因此,此方案的建设成本是最少的。

    ②由于底层架构的简化,使IPCC方案易于实施和管理。

    ③由于IPCC的应用主要以软件形式实现,因此有利于功能的维护和扩展。

    ④IPCC方案提供了对多种媒体的支持和管理,从而可以提高客户服务的质量。

    3.呼叫系统的业务处理

    如美国学者PaulGreenberg所介绍①,呼叫系统的典型处理流程如下:

    (1)呼叫进入中心交换局(CenterOffice),

    (2)PBX应答呼叫,捕获自动号码证实(ANI)或被叫号码证实(DNIS)信息。

    (3)PBX寻找空闲的VRU路由,并把该呼叫转至该线路。

    (4)PBX通过RS232串行口发送初始呼叫信息给自动语音应答VRU,包括呼叫转至的端口号及ANI和DNIS信息。

    (5)VRU播放提示菜单信息给呼叫者,以确定哪类接线员受理比较合适。

    (6)VRU检査接线员队列,若无空闲接线员,则播放消息给呼叫者,告诉其在等待队列中的位置,询问是否愿意等待等。

    (7)接线员空闲时,VRU通过拍叉簧把呼叫转至该接线员,等待PBX发来的拨号音,拨新的分机号。接线员拿起电话呼叫系统后,VRU自动挂机,处理另一个呼叫。

    ①[美]PaulGreenberg.实时的客户关系骨理.机械工业出版社,2002

    (8)利用数据库的共享或局域网通信工程,VRU向接线员的PC发送ANI信息,呼叫到达时,客户信息会自动显示出来。

    (9)呼叫用户或接线员一方挂机时,PBX检测到断线信号,通过RS232串行口发送呼叫记录信息给VkU。此时VRU根据此信息确定刚处理完呼叫的接线员已恢复空闲,可进行下一次呼叫处理。

    展开全文
  • 这是MFC做的呼叫处理过程演示程序。。。。。。。。
  • 本文以STC89C51单片机为控制核心,通过无线发射模块发射传输信号,无线接收模块接收信号,经STC89C51处理后显示输出,从而实现病人与医护的无线远距离沟通。 附件为C代码。
  • 呼叫转移设置Android5.0之后的版本,手机的CallSetting设置一般在package/APPs/service/Telephony中下面为呼叫转移流程图,包括应用层与RIL的request1.CallFeartureSettingActivity.java为通话设置入口//在谷歌的...

    呼叫转移设置

    Android5.0之后的版本,手机的CallSetting设置一般在package/APPs/service/Telephony中

    下面为呼叫转移流程图,包括应用层与RIL的request

    a8df74a42df4e960f7bcbc8b722b7af0.png

    1.CallFeartureSettingActivity.java为通话设置入口

    //在谷歌的源码中没有这个类,可以直接看2、CallFeatureSetting

    在onResume方法中判断手机是单卡还是双卡

    单卡直接通过CallFeatureSetting进入补充业务的设置界面,双卡先进入PhoneAccountSettingActivity的双卡选择界面,再通过PhoneAccountSettingFragmentNew选择某个sim卡,以intent进入CallFeatureSetting的activity

    2.CallFeatureSetting设置补充业务

    CallFeatureSetting中的onResume中调用init,

    if (carrierConfig.getBoolean(CarrierConfigManager.KEY_WORLD_PHONE_BOOL)) {

    cdmaOptions.setIntent(mSubscriptionInfoHelper.getIntent(CdmaCallOptions.class));

    gsmOptions.setIntent(mSubscriptionInfoHelper.getIntent(GsmUmtsCallOptions.class));

    } else {

    prefSet.removePreference(cdmaOptions);

    prefSet.removePreference(gsmOptions);

    int phoneType = mPhone.getPhoneType();

    if (carrierConfig.getBoolean(CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_settings_BOOL)) {

    prefSet.removePreference(fdnButton);

    } else {

    if (phoneType == Phoneconstants.PHONE_TYPE_CDMA) {

    prefSet.removePreference(fdnButton);//固定拨号

    if (!carrierConfig.getBoolean(

    CarrierConfigManager.KEY_VOICE_PRIVACY_disable_UI_BOOL)) {

    addPreferencesFromResource(R.xml.cdma_call_privacy);

    }

    } else if (phoneType == PhoneConstants.PHONE_TYPE_GSM) {

    if (carrierConfig.getBoolean(

    CarrierConfigManager.KEY_ADDITIONAL_CALL_SETTING_BOOL)) {

    addPreferencesFromResource(R.xml.gsm_umts_call_options);

    GsmUmtsCallOptions.init(prefSet, mSubscriptionInfoHelper);

    }

    } else {

    throw new IllegalStateException("unexpected phone type: " + phoneType);

    }

    }

    GsmUmtsCallOption.init(preferencescreen,SubscriptionIfoHelper)为补充业务的preference建立对应的intent

    63 public static void init(PreferenceScreen prefScreen, SubscriptionInfoHelper subInfoHelper) {

    64 Preference callForwardingPref = prefScreen.findPreference(CALL_FORWARDING_KEY);

    65 callForwardingPref.setIntent(subInfoHelper.getIntent(GsmUmtsCallForwardOptions.class));

    66

    67 Preference additionalGsmSettingsPref =

    68 prefScreen.findPreference(ADDITIONAL_GSM_SETTINGS_KEY);

    69 additionalGsmSettingsPref.setIntent(

    70 subInfoHelper.getIntent(GsmUmtsAdditionalCallOptions.class));

    不同的补充业务会转入不同的activity,呼叫转移业务对应的activity为GsmUmtsCallForwardOption。

    3. GsmUmtsCallForwardOption呼叫转移的activity

    在onResume中进行界面初始化,调用init函数,

    @Override

    public void onResume() {

    super.onResume();

    if (mFirstResume) {

    if (mIcicle == null) {

    if (DBG) Log.d(LOG_TAG, "start to init ");

    mPreferences.get(MinitIndex).init(this, false, mPhone);

    } else {

    mInitIndex = mPreferences.size();

    for (CallForwardEditPreference pref : mPreferences) {

    Bundle bundle = mIcicle.getParcelable(pref.getKey());

    pref.setToggled(bundle.getBoolean(KEY_TOGGLE));

    CallForwardInfo cf = new CallForwardInfo();

    cf.number = bundle.getString(KEY_NUMBER);

    cf.status = bundle.getInt(KEY_STATUS);

    pref.handleCallForwardResult(cf);

    pref.init(this, true, mPhone);

    }

    }

    mFirstResume = false;

    mIcicle = null;

    }

    }

    在初次进入时会进行四种呼叫转移的初始化,因为四个呼叫转移都是CallForwardEditPreference类,所以具体每个Preference的点击动作应该看CallForwardEditPreference类;CallForwardEditPreference通过Myhandle的消息处理handlemessage,分别为handleGetCFresponse(设置新CF)与handleSetCFResponse (读取CF状态)。

    CallForwardEditPreference分为始终转接,占线时转接,无人接听时转接和无法接听时转接四种情况,也就是四个CallForwardEditPreference,其中init函数是获取当前呼叫转移设置的代码。

    void init(TimeConsumingPreferenceListener listener, boolean skipReading, Phone phone) {

    mPhone = phone;

    mTcpListener = listener;

    if (!skipReading) {

    mPhone.getCallForwardingOption(reason,

    mhandler.obtainMessage(MyHandler.MESSAGE_GET_CF,

    // unused in this case

    commandsInterface.CF_ACTION_DISABLE,

    MyHandler.MESSAGE_GET_CF, null));

    if (mTcpListener != null) {

    mTcpListener.onStarted(this, true);

    }

    }

    }

    4. GsmCdmaPhone

    其中函数getCallForwardingOption这是个phone的接口方法,继承自接口PhoneInternalInterface

    作为父类,真正的实现代码在GsmCdmaPhone.java上

    @Override

    public void getCallForwardingOption(int commandInterfaceCFReason, Message onComplete) {

    if (isPhoneTypeGsm()) {

    Phone imsPhone = mImsPhone;

    //判断是否为imsPhone,是的话走ImsPhone(PS)流程,不是的话走CS流程

    if ((imsPhone != null)

    && ((imsPhone.getServiceState().getState() == ServiceState.STATE_IN_SERVICE)

    || imsPhone.isUtEnabled())) {

    imsPhone.getCallForwardingOption(commandInterfaceCFReason, onComplete);

    return;

    }

    if (isvalidCommandInterfaceCFReason(commandInterfaceCFReason)) {

    if (DBG) logd("requesting call forwarding query.");

    Message resp;

    if (commandInterfaceCFReason == CF_REASON_UNconditional) {

    resp = obtainMessage(EVENT_GET_CALL_FORWARD_DONE, onComplete);

    } else {

    resp = onComplete;

    }

    mCi.queryCallforwardstatus(commandInterfaceCFReason, 0, null, resp);

    }

    } else {

    loge("getCallForwardingOption: not possible in CDMA");

    }

    }

    首先分析走CS流程,mCi为Phone类中的CommandsInterface接口,而CommandsInterface的接口方法都在RIL类中实现

    5.RIL

    调用函数RIL.queryCallForwardStatus(int cfReason, int serviceClass, String number, Message response)

    @Override

    public void queryCallForwardStatus(int cfReason, int serviceClass,

    String number, Message result) {

    IRadio radioProxy = getRadioProxy(result);

    //将消息result包装为IRadio发送request到modem

    if (radioProxy != null) {

    RILRequest rr = obtainRequest(RIL_REQUEST_QUERY_CALL_FORWARD_STATUS, result,

    mRILDefaultWorkSource);

    if (RILJ_LOGD) {

    riljLog(rr.serialString() + "> " + requestToString(rr.mRequest)

    + " cfreason = " + cfReason + " serviceClass = " + serviceClass);

    }

    android.hardware.radio.V1_0.CallForwardInfo cfInfo =

    new android.hardware.radio.V1_0.CallForwardInfo();

    cfInfo.reason = cfReason;

    cfInfo.serviceClass = serviceClass;

    cfInfo.toa = PhoneNumberUtils.toaFromString(number);

    cfInfo.number = convertNullToemptyString(number);

    cfInfo.timeSeconds = 0;

    try {

    radioProxy.getCallForwardStatus(rr.mSerial, cfInfo);

    } catch (RemoteException | runtimeexception e) {

    handleRadioProxyExceptionForRR(rr, "queryCallForwardStatus", e);

    }

    }

    }

    IRadio为c++程序,这是发送Requst的过程,下面就超出了本组的学习内容

    相关阅读

    用户界面设计

    接口设计主要包括三个方面的内容:一是设计软件构件间的接口;二是设计模块和其他非人的信息生产者和消费者(如外部

    一、爬取豆瓣影评

    基本思路:先获取每个电影的评论区链接,然后依次进入其评论区爬取评论。选取10部电影,每部200条评论。

    用到的包为

    在同城货运市场不断扩大趋势下,货拉拉作为一款同城货运的APP,如何在市场上占有一席之地的,又存在哪些交互细节的问题,我们一起进入产

    2016年中国出生人口数量同比增长11.50%,家庭育儿市场迎来人口红利。同时,伴随着科学养育观念不断渗透,男性在家庭育儿过程中参与度越

    唱吧需要怎么利用自己的目前积累的强大体量用户和明星资源,寻找差异化突破点来应对全民K歌?本文作者就此来分析,一起来瞧瞧~一、背景

    展开全文
  • 用户通过点击页面的一个SIP URL链接,页面点击呼叫消息传递给电脑SIP终端,终端配置了呼叫方的SIP URL地址,通过REFER发送SIP终端,然后SIP终端和被呼叫方创建一个会话连接,实现双方呼叫。这里的呼叫场景适合于简单...

    Click to Dial

    Click to Dial,我们称之为点击呼叫或页面点击呼叫。浏览器用户以插件的形式或者页面的形式通过浏览器访问点击界面。用户通过点击页面的一个SIP URL链接,页面点击呼叫消息传递给电脑SIP终端,终端配置了呼叫方的SIP URL地址,通过REFER发送SIP终端,然后SIP终端和被呼叫方创建一个会话连接,实现双方呼叫。

    ec78e0137c38d68884b3bc9d71bb2558.png

    这里的呼叫场景适合于简单的点对点的SIP呼叫场景。如果用户通过媒体服务器实现呼叫的话,处理流程和我们现在讨论的有所不同。具体的呼叫流程如下:

    71a0bcb953ce2d1dde23fe524abf1ec6.png

    现在,我们配合具体的SIP消息内容和每一个流程来简单说明点击呼叫的处理过程。

    ace677655e68398a6419b4060ba0de2c.png

    首先,Bob的PC端SIP对BobSIP电话发送REFER消息(F1),这里的头域中设置了Refer-Sub:false,这表示PC端要求不生成REFER的dialog,仅支持2XX响应消息。关于Refer-Sub的使用方法和参数设置,读者可以查阅RFC4488。

    7f0cf66424d1f412e96ea2a8f340b09b.png

    然后,BobSIP电话终端回复202 接受(F2):

    59ccaa8a6d118253da596649719d6e77.png

    接下来,Bob对Carol发送INVITE请求消息,表示需要对Carol进行呼叫(F3):

    54edc437837bc0f2bbd633ff1ec18637.png

    接下来,Carol对Bob SIP 电话回复180 振铃(F4):

    465687907e222cb0694deb250ee1e61d.png

    然后,Alice对Bob SIP电话回复200 OK(F5):

    1f0060ebea8fad141fbd96f61843af24.png

    接下来,Bob的SIP 电话回复ACK确认消息(F6),然后实现双方语音流传输。

    a81915915f3197d9206a08559a5bfa9f.png

    到此为止,整个点击呼叫的流程结束,双方开始电话互通。

    事实上,现在点击呼叫业务功能可以通过很多种方式实现,可以通过浏览器插件的形式实现,也可以通过HTML加脚本语言的形式实现,WebRTC或者邮件终端插件工具来实现。

    6227dd9eff281b7300a1c7b00850c0cb.png

    特别是基于开源软交换的平台,例如Asterisk/FreePBX或者FreeSWITCH都可以通过接口语言来开发更加灵活的点击呼叫功能。例如,通过脚本语言加Asterisk AMI接口实现的页面点击呼叫功能。用户可以下载以下代码来实现点击呼叫功能。以下是一个PHP的页面点击呼叫实例地址,读者可以参考:

    https://github.com/spbx/Simple-Click2Call-for-Asterisk-PBX/blob/master/click2dial.php

    基于Asterisk的点击呼叫的插件,用户可以参考TBDialOut来实现,开源项目地址:

    http://www.oak-wood.co.uk/tbdialout/

    ae4bad4dffa7c9437b2a828ed997501c.png
    展开全文
  • 紧急呼叫概述&自适应需求实现

    千次阅读 2019-02-02 17:51:29
     紧急呼叫(Emergency Call),所谓紧急呼叫是指用手机拨打112、110、119、120之类的报警或求救号码。  紧急呼叫在很多国家都有设立热线,目的是令求助人在遇到危急情况时求救,使用警察、消防或救护的紧急服务。...

    https://blog.csdn.net/lipengshiwo/article/details/52133620

    一)概念:

        紧急呼叫(Emergency Call),所谓紧急呼叫是指用手机拨打112、110、119、120之类的报警或求救号码。

        紧急呼叫在很多国家都有设立热线,目的是令求助人在遇到危急情况时求救,使用警察、消防或救护的紧急服务。每个国家的求救电话号码可能会有差异。求救电话一般都由3个数字组成,以便求助人记忆和拨打。有些国家有几个求救电话号码,联络不同提供紧急服务的部门。这些号码的紧急性使各国都规定它们可以使用任何当时可用的网络。

        欧洲和使用全球移动通信系统的移动电话,其求救电话号码大多统一为112,且只要能接受到讯号即可拨打,即使自家电信业者无讯号,别家电信系统业者有讯号亦可使用;甚至电话内没有插入SIM卡亦可拨打。此外若移动电话有设定键盘密码锁者,112是惟一可以不经解键盘锁就可直接拨打的号码,以争取时效让紧急状态时任一只电话都可紧急救助。

    在中国,紧急呼叫以语音服务平台的形式展现,移动和联通的语音服务平台的提示各不相同。

    二)紧急号码分类:

        根据3Gpp的协议规定, 紧急电话分为三种类型:

            1. 112 和911 在任何情况下都是紧急电话, 不管终端是否有插入SIM 卡.

    当不插入SIM 卡的时候, 000, 08, 110, 118,119 和999 这些号码是紧急号码, 这些号码是预制在手机中的
    有一些紧急号码是预制在SIM卡里面的, 比如999 在UK, 118,110和119 在日本等等. 当终端不在这些区域, 拨打这些号码的时候, 会当成一般的电话拨出.

        按技术实现分:

            1)走紧急通道的紧急拨号:

                即真紧急拨号,走的紧急拨号通道

            2)走普通电话通道的紧急拨号:

                即假紧急拨号,走的普通拨号,只是拨号界面被改为紧急拨号界面而已。

                比如110就打110,而不是听到诸如“火警请拨119。。。”之类的。

     

        按业务分:

            1)无卡紧急号码:

                不插SIM卡可以打的真紧急号码

            2)有卡紧急号码:

                插了SIM卡可以打的真紧急号码

            3)有卡假紧急号码:   

                插了SIM卡,但必须以普通电话打出的紧急拨号(界面显示紧急拨号),

                比如在国内遇歹徒你打110,要你打通了还听到“火警请拨119”估计你想死的心都有了。

            3)有卡特殊假紧急号码:  

                插了SIM卡,但必须以普通电话打出的紧急拨号,但同时界面显示特定的名称,

                比如110显示Police

     

    (三)特别说明:

     

        对于无卡紧急拨号,因为网络侧根据各国运营商不同略有区别,具体说明见下:

    根据3GPP 24008协议规定:如果在没有卡的情况下,按照协议规定是可以通过IMEI号发起业务请求:

    Normally, the mobile station will be identified by an IMSI or a TMSI. However, if none of these identifiers is available in the mobile station, then the mobile station shall use the IMEI for identification purposes.

    但是网络是否接收,需要看网络侧设定

    For the establishment of a MM connection for an emergency call when no other MM connection is established (e.g. for an emergency call initiated without a SIM/USIM no other MM connections can exist) the decision on whether or not to apply the security procedures shall be made by the network

    也就是说,能否无卡发起紧急呼叫,主要是有网络决定的,看网络是否使用了secuirity procedures。

    四)紧急号码拨打流程(MTK)详见:[FAQ02892]

     

    简单流程:

        紧急呼叫流程 AP层判断是否紧急电话 --》 modem层判断是否紧急通话 --》 modem建立通话 --》返回Intent --》  界面显示(紧急/普通)

    五)MTK代码

     

    (详见:[FAQ02892] 紧急号码的管理及客制化方法)

     

    (1)AP层  

        核心代码及主要方法:

     

         PhoneNumberUtils.java

                       isEmergencyNumber(String number) //是否紧急号码

                       isSpecialEmergencyNumber(String dialString) //是否假紧急号码

     

         PhoneNumberExt.java

                     isCustomizedEmergencyNumber(...)   //是否紧急号码

                       isCustomizedEmergencyNumberExt(...)  //是否自定义紧急号码

                       isSpecialEmergencyNumber(String dialString)//是否假紧急号码

          

    (2)Modem层

     

           由此结构体定义

     

             const kal_uint16 ecc_default_num[ ][ECC_CUSTOM_DEFAULT_ECC_LENGTH + 1] =     {

        {0x0039, 0x0031, 0x0031, 0x0000, 1}, /* 911 */

        {0x0031, 0x0031, 0x0032, 0x0000, 1}, /* 112 */

        {0x0030, 0x0036, 0x0030, 0x0000, 1}, /* 060 */

        {0x0000, 0x0000, 0x0000, 0x0000, 0}

             };

    全网通项目 紧急号码说明

    紧急号码(Ecc)概念参考文档《紧急呼叫概述》

     

     

     紧急号码说明
     

    主要有以下几点导致Ecc策略和之前的不一致:

    全网通加入了电信的Modem
    电信网络在Ecc这一块和移动联通网络的处理规则不同
    全网通走哪个Ecc网络取决于前一次有卡时的驻网状态(首次开机默认电信网络, 其实也就是modem会存储上一次的驻网信息供Ecc参考)

     

    影响紧急号码表现的一共有两个因素:

    手机是否按照紧急拨号拨出
    网络侧是否按照紧急号码接入(这点电信和移动联通不一样)
     

    手机侧紧急号码主要还是参考cdma_ecc_list.xml 和 ecc_list.xml,把这个理顺就可以了。

    主要参数是Condition,

    “0”:无SIM卡时做紧急号码拨出

    “1”:总是做紧急号码拨出

    “2”:有卡且驻网时会作为普通号码拨出,无卡或无网时紧急号码拨出

     

    The attribute definition for tag EccEntry:

    - Ecc: the emergnecy number

    - Category: the service category

    - Condition: there are following values:

    - 0: ecc only when no sim

    - 1: ecc always

    - 2: MMI will show ecc but send to nw as normal call

    <EccEntry Ecc="112" Category="0" Condition="1"/>

     

     

    Ecc简单流程
     

         AP层判断是否紧急电话

         à 根据之前状态判断通过CDMA还是GSM拨出Ecc (即通过cdma modem还是gsm modem 拨出,gsm和modem用两套AT)

         à modem层判断是否紧急通话

         à modem建立通话  

         à 网络侧处理决定是否允许作为紧急拨号(或者声讯台)接入

         à 返回Intent界面显示(紧急/普通)

     

     

    附上之前的Ecc呼叫流程:

    AP层判断是否紧急电话 à modem层判断是否紧急通话 à modem建立通话 à返回Intent à  界面显示(紧急/普通)

    3. 无卡时紧急号码规则


    紧急号码类型

    选择的Ecc网络

    原因

    前一次有卡时注册的非CDMA网络

    所有设置的紧急号码

    声讯台

    手机侧: MTK策略此Case会通过GSM网络拨打。

    网络侧: 联通移动网络会把紧急拨号自动接入声讯台,对号码不做区分。

    烧机后首次开机 / 前一次有卡时注册的非CDMA网络 


    112

    声讯台

    MTK策略此Case会通过GSM网络拨打。联通移动网络会自动接入声讯台。

    假紧急号码(000,08,999,911,118等)

    紧急通话界面且无声
    (实际没拨通)

    手机侧: MTK策略此Case会通过CDMA网络(电信)拨打。

    网络侧: 电信网络把此紧急拨号自动接入其紧急拨号专用通道,并且对不同号码做不同处理。
    1)对于110,119,120等真实报警电话会接入当地真实的报警平台。
    2)对于非上述真实报警电话,不予分配紧急拨号通道,以免资源浪费。(所以会一直处在紧急拨号界面但没有声音,实际网络部分配资源导致是没有拨通)

    真紧急号码
    (110,119,120)

    接入110呼叫中心

    4. 有卡时紧急号码规则

    1. 参考cdma_ecc_list.xml 和 ecc_list.xml的配置
    2. 插双卡时不区分卡1卡2,默认按卡1拨出
    3. 插单卡时默认按所插卡槽拨出

     

    5.问题修改建议

    流程问题说明原因reject

    显示界面问题建议修改

    展开全文
  • C#源码下载,visual C#编写实现语音卡电话呼叫系统,本实例使用了语音卡中的newsig.dll和tc08a32.dll组件,运行前需将其拷贝到Debug文件夹中。本语音卡程序展示了一个完整的电话来电的处理过程,比如来电接听、响铃...
  • 呼叫转移流程分析(一)

    千次阅读 2018-12-05 09:38:01
    下面为呼叫转移流程图,包括应用层与RIL的request  1.CallFeartureSettingActivity.java为通话设置入口 //在谷歌的源码中没有这个类,可以直接看2、CallFeatureSetting 在onResume方法中判断...
  • 本系统中,主机接收从机的呼叫命令,主机接收到从机呼叫命令后,主机发生声光报警,已经呼叫过的从机再次按下,当主机没有处理的时候,主机不再显示该从机的呼叫,主机处理完某一个病房呼叫信号后,可以通过按键取消...
  • 简单来说,Alice通过Proxy呼叫用户1,用户1在一定时间内没有应答此呼叫,然后Proxy把这个呼叫转接到用户2,对用户2进行呼叫处理。在请求超时后(F6),Proxy对用户1发送取消请求,然后通知Alice,同时对用户2再次...
  • console.log("呼叫电话返回:", res_makephone) } }) } else if (res.tapIndex == 1) {//添加联系人 wx.addPhoneContact({ firstName: '关关', mobilePhoneNumber: that.data.phonenum, success: function...
  • HOLLYCRM此次将CTI产品HollyContact与SAP实现接口联调,使呼叫中心与SAP CRM系统实现了无缝整合,从而使清华同方电脑的客户服务形成真正意义上的“服务请求,业务处理,主动服务”的闭环CRM流程管理。通过实现CRM和...
  • 在大部分的企业客户的电话呼叫业务中,特别是从运营商到企业IPPBX端的呼入业务中,有很多不同的呼叫涉及了多种SIP流程的操作,而且其流程和实际的IPPBX,代理和SIP终端存在着非常密切的关系。排查这些技术问题耗费...
  • Android设备上的呼叫流程

    千次阅读 2021-05-21 18:27:20
    呼叫分为主动呼叫和被动呼叫,主动呼叫也叫"去电",MO Call,表示用户通过UI上的拨号键盘拨出的电话。 被动呼叫叫做"来电",MT Call,表示其他打电话端打过来的电话,可以选择接听或者拒接。 来电流程 来电的时候,会...
  • sip协议呼叫流程详解

    2017-09-06 18:05:00
    1、SIP业务基本知识 1.1 业务介绍会话初始协议(Session Initiation Protocol)是一种信令协议,用于初始、管理和终止网络中...用户代理是呼叫的终端系统元素,而SIP服务器是处理与多个呼叫相关联信令的网络设备。...
  • Sipp工具实现呼叫中心的性能测试

    千次阅读 2019-08-07 20:44:00
    考虑过使用sipp与winsip两个工具,sipp的话可以自己定制流程,winsip的话可能适合配置型,但是也有很多流程可以配置的,由于以前项目也用过sipp来测试sip消息收发,呼叫也确定使用sipp来测试性能,当然,...
  • 背景技术:现有的呼叫中心的呼叫接入续条主要通过嵌入web端的形式来实现拨号、挂机、静音、转移、保持、评价等操作按钮,也有的呼叫中心坐席状态包括变更功能和拨号盘功能,同故宫点击不同的按钮来实现呼叫中心相应...
  • 摘要:软交换设备是电路交换网向分组网演进的核心设备,处于下一代网络NGN的...而呼叫服务器(Call Server)是软交换网络中的核心控制设备,它完成呼叫处理功能、接入协议适配功能、业务接口功能、互连互通功能、应用支...
  • 以CTI技术为核心的呼叫中心是一个集语音技术、呼叫处理、计算机网络和数据库技术于一体的系统。 客服呼叫中心的主要功能就是接受用户来电并为用户提供各种服务。呼叫中心系统原理实现主要在于两个部分:...
  • H323学习笔记四之呼叫流程的建立

    千次阅读 2019-07-29 21:38:50
    前一篇文章提到:H323系统中的一次完整的点到点呼叫通信由五个阶段组成:呼叫建立、通信初始化和能力交换、视听通信的建立、呼叫服务、呼叫终止。他们有各自的特点和功能,接下来按序介绍: 呼叫建立 ...
  • android呼叫流程源码分析

    千次阅读 2014-10-27 20:06:30
    我们知道,输入一个号码,点击Call按钮,就开始触发了一个呼叫,然后将进行号码检查、判断,网络状态检查等工作,代码逐步向下调用,经过telephony、ril,再通过AT指令,让modem完成信道请求、连接和相应信令处理。...
  • freeswitch呼叫流程分析

    千次阅读 2018-05-17 17:42:21
    freeswitch呼叫流程分析本文转载自http://www.cnblogs.com/MikeZhang/p/freeswitchCallFlow_20160907.html今天翻文档时发现之前整理的关于freeswitch呼叫相关的内容,写成博文分享出来也方便我以后查阅。整体结构图...
  • 主叫基本呼叫流程分析

    千次阅读 2013-09-22 01:06:49
    //在挂机事件处理中,如果该线路还存在其它呼叫,则进行 //其它呼叫的挂机判断处理。当前是摘机事件,暂不关心。 if ((origEventId == RV_CCTERMEVENT_LINE) || (origEventId == RV_...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 38,431
精华内容 15,372
关键字:

呼叫处理程序的实现

友情链接: test-entropy.rar