在C#中构建一个虚拟软件电话,该软件电话可以在您的呼叫中心中作为振铃组...

本文介绍了如何使用C#构建一个虚拟软件电话,特别是在呼叫中心中作为振铃组的一部分。讨论了虚拟呼叫中心与基于PBX的呼叫中心的区别,并详细解释了振铃组的概念。此外,还涵盖了软件电话、呼叫转移和振铃组策略的实现,特别是‘一对一’策略。文章提供了关键代码组件,如Softphone.cs、Program.cs和RingGroupCallHandler.cs的概述。
摘要由CSDN通过智能技术生成
本文重点介绍C#中环组的开发。 任何呼叫中心的有效性不仅取决于运营商的行为,还取决于呼叫中心的技术背景。 学习完本指南后,您将能够创建振铃组分机(即“虚拟软件电话”),该分机可用于根据预定义的振铃组策略将传入呼叫转移到选定的呼叫中心座席之一。
下载源代码:
Softphone-RingGroup-RingOneByOne.zip
内容
  • 主题的重要性
  • 有关呼叫中心的技术背景的更多信息
  • 环组开发简介
  • 开发/第1部分:构建软件电话
  • 开发/第2部分:构建其他功能
  • 开发/第3部分:使用“一对一”策略构建环网组
  • 测试
  • 结论
  • 进一步的阅读和参考

主题的重要性
呼叫中心或呼叫中心是一个集中式办公室,用于通过电话接收或传输大量请求[1]。 换句话说:“呼叫中心是一个物理场所,通常由一定数量的计算机自动化来由组织来处理客户和其他电话” [2]。 先前定义中的“ 通常具有一定程度的计算机自动化 ”部分表示,成功的呼叫中心基于人工和某种技术设备的合作。 因此,适当的IT基础架构至关重要。
专家们说, 精心挑选员工是成功建立呼叫中心的第一步。 但是大多数技能都是可以学习的。 在第一线支持,服务台和 服务台培训期间 ,讲师经常提请操作员注意以下几点:
  • 要有礼貌和礼貌
  • 主动
  • 首先把事情放在首位–让优先事项推动举措
  • 双赢思考–对您的客户有利的对您也有利,等等。

这些是成功呼叫中心必不可少的非常重要的人为因素。 另外,某些 管理工具,例如绩效评估和对员工的定期反馈,奖励,积极的强化等,是有效呼叫中心不可或缺的要素。 但是如果没有 适当的技术,所有人类知识都是徒劳的。 无论是小型呼叫中心还是大型呼叫中心,要获得更多利润并建立客户忠诚度,员工都必须使用 先进的硬件和软件设备
在外包的印度呼叫中心和大型的美国呼叫中心中,有什么共同点( 图1 )? 是的,有很多东西,但是最重要的是核心技术。 在这两个地方,运营商都使用VoIP台式电话,软电话,头戴式耳机,以及:具有典型呼叫中心功能(例如,呼叫转移,振铃组,呼叫记录,呼叫排队,电话会议等)的高级PBX系统,可以使某些任务更多由于自动化,操作简单。


图1:技术设备也是小型和大型呼叫中心的关键因素[3]
有关呼叫中心的技术背景的更多信息
呼叫中心可以同时 处理大量呼叫 ,并将其转发给负责处理这些 呼叫的人员。 但是,在当今快速发展的世界中,VoIP技术,高性能计算机和智能软件应用程序几乎是必不可少的。 如今的呼叫中心使用 的是比老式的巨大“盒子”更多 的最新设备 ,而老式的“盒子”却有很多电线伸出来。
我们可以将呼叫中心分为两种主要类型,如下所示[1]:
  • 虚拟呼叫中心:在这种呼叫中心模型中,运营商通常向在其自己的数据中心托管呼叫中心电话设备的供应商支付月费或年费。 代理商通过传统的PSTN电话线或VoIP(互联网协议语音)连接到供应商的设备。
  • 基于前提的呼叫中心:此模型与先前的模型相反。 在这种情况下,呼叫中心已建立在PBX(专用分支交换)中,该交换机由呼叫中心运营商自己拥有,托管和维护。 该PBX提供高级功能,例如呼叫排队,ACD(自动呼叫分配),IVR(交互式语音响应)或SBR(基于技能的路由)–这是一种呼叫辅助策略,用于将呼入呼叫分配给最适合的座席,而不是简单地选择下一个可用的代理)。

如果使用虚拟呼叫中心,则功能是固定的,不能无限扩展它们。 但是,在基于内部的呼叫中心的情况下,您将有机会通过开发所需的功能来改进系统。 实际上,只有想象力(当然还有公司的需求和条件)限制了这种改进。
环组开发简介
在本文中,您将看到后一种情况的示例。 确切地说,本指南逐步演示了 环组的创建。 该铃声组将是安装在集团电话中的“虚拟” 分机 。 此分机基于 软件电话 (因此,即已注册到PBX)。 PBX为该分机分配电话号码。 呼叫时,该分机尝试 将来电转移到其他分机之一(即转移到先前已在PBX上注册的振铃组成员之一)。 振铃组策略确定哪个成员将接受呼叫。
恐怕以前的线程包含一些新的(或令人恐惧的)表达式……不管是不是,为了完整起见,让我澄清一下此解决方案的基本要素。
  • 什么是振铃组:在现代电信时代,呼叫路由允许在有来电时有多个分机振铃。 它称为环组。 环组通常在PBX中显示为“虚拟分机”。 在配置振铃组时,可以定义哪些电话分机属于该振铃组。 这样,当有“虚拟分机”的来电时,所有所属分机将在振铃组内同时或依次振铃。
  • “分机”的含义是什么:在商务电话中,电话分机可能是指与PBX相连的内部电话网络中的电话。 在集团电话内,用户仅需拨打分机号码即可直接与其他任何用户联系。 对于呼入电话,拨打公司电话号码后,总机接线员或自动值班人员可以要求首选分机的号码。 如果将外部号码分配给各个分机[5],则也可以通过直接呼入完成呼叫。
  • 什么是软件电话:软件电话是一种特殊的计算机软件,可以充当虚拟电话,使人们可以使用其PC或笔记本电脑通过Internet与他人进行通信。
  • 什么是呼叫转移:呼叫转移是一种电信机制,允许用户通过使用转移按钮或开关挂钩并拨打所需的位置[6],将现有电话转移到另一个电话或话务台。
  • 什么是振铃组策略:振铃组策略确定在有来电时如何通知组成员的方式。 在呼叫转移之前,环网组需要通知组成员需要进行呼叫转移。 要选择在振铃组内接受呼叫的成员,可以使用几种策略。 让我们看一些示例:可以配置为同时呼叫振铃组中的所有分机(即所有成员的电话)。 还可以实现的是,环群分机将以预先设置的顺序一一呼叫成员。 另一种常用的策略是当环组的延伸以随机顺序被调用时的情况。 (在该项目中,将演示“一对一”策略。)

基于以上内容,让我们总结一下该项目需要哪些开发:
  • 构建能够接收电话的虚拟(或控制台)软件电话
  • 构建所需的附加功能,例如呼叫转移和多个呼叫管理
  • 用“一对一”策略建立环网组

因此,我使用了以下 3类
  1. Softphone.cs:它介绍了如何使用可注册到PBX的C#开发软件电话。
  2. Program.cs:此类负责处理用户事件。 它介绍了如何将软件电话注册到PBX。
  3. RingGroupCallHandler.cs:此类说明如何创建必要的铃声组策略。 由于此类分开,因此应用程序可以使用其实例同时处理多个传入呼叫。

首先,您将需要一个新的 Visual C#控制台应用程序 ,因为该应用程序实际上是“虚拟软件电话”,因此一个控制台应用程序就足够了。 为了更好地理解,我将本文的其余部分分为三个主要部分。 所有这三个部分都逐步介绍了一个类的实现。
现在,已经用尽了理论和发展背景,“保持冷静,开始编程!” :)
开发/第1部分:构建软件电话
你准备好了吗? 当然! :)好吧,让我们从 Softphone.cs类开始。 第一步,使用以下行添加所需的内容。 (作为C#.NET VoIP库,已经使用了 Ozeki VoIP SIP SDK- 请记住,此代码是使用此SDK的预先编写的VoIP组件编写的。因此,如果要尝试使用它们,则需要安装它的免费试用版。 [7])
using System;
using Ozeki.VoIP;
using Ozeki.VoIP.SDK;
现在需要 软件电话电话线对象。 您可以从 ISoftPhoneIPhoneLine接口获取它们,如下所示:
ISoftPhone _softphone;
IPhoneLine _phoneLine;
在构造函数中,您需要使用默认参数来初始化此软件电话。 5000和10000参数是指端口范围:第一个数字是最小端口号( minPortRange ),另一个是最大端口号( maxPortRange )。 为了实现对来电的持续监控,您需要订阅 IncomingCall事件。 请查看以下上述步骤:
public Softphone()
        {
     
            _softphone = SoftPhoneFactory.CreateSoftPhone(5000, 10000);
            _softphone.IncomingCall += softphone_IncomingCall;
        }
通过订阅 IncomigCall事件,将通知您是否有来电。 如果电话线的状态发生更改,则 PhoneLineStateChange事件(当然会在订阅后)通知您。 请查看以下上述步骤:
public event EventHandler<VoIPEventArgs<IPhoneCall>> IncomigCall;
public event EventHandler<RegistrationStateChangedArgs> PhoneLineStateChanged;

通过使用 Register方法,可以将软件电话注册到PBX。 为此,应创建一个需要SIP帐户的电话线。 为了能够为您的软件电话创建SIP帐户,您需要指定以下参数:
  • registrationRequired:为了能够接收来电,您需要为此参数设置“ true”值。
  • displayName:这是要在被叫客户端上显示的名称。
  • userName:这是要呼叫此软件电话的其他客户端要拨打的号码。
  • authenticationId:这是集团电话的标识符(如登录名)。
  • registerPassword:这是用于
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值