Category

呼叫中心使用技巧

使用Wireshark发现VoIP网络电话问题

By | 呼叫中心使用技巧, 开发者博客 | No Comments

Wireshark(原名:Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是捕获网络封包,并尽可能显示出详细的网络封包信息。

供应商希望你相信需要用数千美元的协议分析软件去解决IP电话(VoIP)网络语音。毕竟,数据包的延迟、丢失或乱序会直接影响通话质量。幸运的是,Wireshark是一个开放源代码的软件包,它可以实现这类工具所能实现的功能,甚至更多。

Wireshark,即以前被人们所熟知的 Ethereal,它是网络封包分析软件,使用WinPCAP作为接口,直接与网卡进行数据报文交换。它要做的就是监听网络流量,并用你需要的格式来显示包内容,帮助你发现问题。VOIP涉及一系列Wireshark可以解码并相互关联的复杂协议包。例如,建立一个通话的流程会用到很多协议,而不仅仅是语音流本身。Wireshark使用建立呼叫的信息来更好地理解语音流。用你手中的这些数据,可以进一步隔离VOIP中存在的问题。

想要查找的VoIP问题的原因,你必须能够跟踪从开始到结束的流程,并确保他们产生的是正确的事件。这不但要求你懂得基础协议,而且要理解一些电话的概念。幸运的是,Wireshark提供了一些优秀的工具,以帮助你解释数据。本文将把如何使用Wireshark工具作为重点,来解决3个最常遇到的VOIP问题。

第一个例子是,电话不工作。每次拨打一个号码,即使话机处于空闲状态,也不会有振铃。Wireshark这时就该查看话机和PBX(Private Branch Exchange)交换机之间的数据了。

以root身份启动Wireshark,点击 Capture->Option ,将会弹出捕获选项对话框,如图1所示,确保接口正在使用中,否则,你不会看到的流量。在这个例子中,我们捕获PBX唯一接口eth0的数据流量:

http://www.linuxjournal.com/files/linuxjournal.com/linuxjournal/articles/093/9398/9398f1.jpg(图1:使用Wireshark分析VOIP的捕获选项对话框)
在捕获包之前,需要指定捕获数据包的过滤器选项,来限制你将要处理的数据包数量。因为,无论是信令流(SIP)还是语音流(RTP)都是基于UDP协议的,那我就可以指定UDP作为我捕获的过滤条件。为方便起见,我还可以用实时查询选项检查数据包的更新列表,以便我可以确认我得到适当的流量。点击开始按钮,开始捕捉,很快上方窗格中会显示几个数据包(图2)。

http://www.linuxjournal.com/files/linuxjournal.com/linuxjournal/articles/093/9398/9398f2.jpg(图2:使用Wireshark捕获的IP电话的数据流量)

图2显示出了该分组的列表。前四列显示数据包的号,来源,时间以及所涉及的主机的地址。因为Wireshark抓SIP,它能够识别作为SIP数据包的协议列,并在信息栏上给出详细信息。

图2中信息的粗略检测表明:同样的三个数据包,来回重复了四次。第一个,IP话机主机向PBX主机发送了一个SIP INVITE信令,用以开始一个对话。接下来,PBX通过产生ACK返回给该话机“407代理服务器身份验证”响应,然后用数据包6做了第二次INVITE。由于这是个不断重复的过程,因此我们可以大致猜测是用户名或密码的错误导致身份验证失败。

监听:关于本地数据包的捕获

如果你要捕获的那些数据包,很多都没有到达运行Wireshark机器的网络接口,说明网络交换出了问题。只对某个抓包的通信端口进行限制以提高性能。生成树协议 和 IP协议只会在你试图捕获数据包的地方造成干扰。

你最好直接在那台参与工作的机器抓包,如果那台机器不能使用Wireshark,你总可以使用Tcpdump进行抓取本地的数据包,然后将其移动到其他计算机上,进行数据包分析。如果做不到,或者数据流量跨越多台机器,是时候该从你的网络硬件上寻求突破口了。

大多数管理型交换机可映射一个端口到其他端口所有的数据帧。因此,你可以用Internet将Wireshark 工作平台连接到你的交换机端口上,将所有的网络数据包映射到工作平台上。并且你还可以分析所有的互联网流量。思科 称之为 交换机端口分析器(SPAN),惠普 称之为 端口监控器,3Com公司称其为 巡回分析端口。

选择哪个端口来做镜像取决于你网络情况,一般说来,连接到其他的交换机或路由器的端口是一个不错的选择,这也是降噪过滤器必须要解决的问题。

第一个例子利用了Wireshark的高级解析单个数据包的功能,以突出一个单调的问题。接下来的例子需要更加全面的分析VOIP。Wireshark 用来查看SIP呼叫的建立和确认关键数据包。在这个例子中,这个话机正用于 单通音频。外呼的电话振铃,然后接通,但是仅有一方可以听到声音。会话数据包以与前面的例子相同的方式被捕获,总共140帧。如果没有Wireshark中先进的分析工具提供支持,数据太多以至于无法进行分析。

随着捕获工具的加载,选择 Statistics Telephony->VoIP calls,Wireshark会分析捕获到的任何与VOIP相关的数据包,并显示数据包摘要。点击通话(如果有多个呼叫被显示出来,按住Ctrl可以选择其他通话),然后点击Graph按钮。你会看到有关SIP呼叫的摘要,如图3所示:

http://www.linuxjournal.com/files/linuxjournal.com/linuxjournal/articles/093/9398/9398f3.jpg(图3:SIP会话在Wireshark的图形界面中的显示)

该分析图表对话框显示了各方发来的SIP消息。图3中的第一消息是INVITE消息,这是建立呼叫的第一步。在这个例子中,IP电话访问PBX发出呼叫到SIP地址为:613@fwd.pulver.com,这是测试SIP呼叫FreeWorldDialup提供的回拨服务。这个是用于认证请求的响应,这是公认的。这话机再次尝试并给出了“尝试”的PBX的状态。然后,PBX继续通过联系fwd.pulver.com邀请远程端口。在呼叫被正确建立之前,已经有很多消息发生了交换。

眼下的问题是单通。实际上,图形分析窗口显示IP电话发送实时协议(RTP)的语音数据包到因特网上的SIP终端,但它并没有显示在相反方向的数据流。为了确定为什么没有音频被送回,有必要更深入地读取SIP包。

SIP的功能之一就是建立两个终端之间的RTP数据流,它正是通过带有编码信息,IP地址,以及必要的VoIP工作端口号的会话描述协议(SDP)。需要注意的是,终端发出SDP不一定非得是互相交谈!在图3中,pbxhost主机和fwd.pulver.com 正通过互联网相会谈判,但他们各自指定不同的终端终止语音呼叫。RTP流是单向的,所以一个全双工会话需要在每个方向上都设置一个独立的RTP,用来区分两个SDP信息。

考虑到这一点,找出从pbxhost发送到fwd.pulver.com的SDP信息看起来有点难度。这个SDP消息将包含IP地址,UDP端口和 对端到本地IP电话会话的编码。但SDP消息在图形分析窗口将被SDP标记,来帮助你发现他们,该数据包的偏移量在图3中的0.490。当您单击图形分析窗口中的消息,相应的数据包将在 Wireshark 主窗口的数据包列表窗格中高亮显示。

Wireshark 还可以解析协议,那些协议被包含在当前分组细节窗口选中的数据包里。另外,还提供所述报文列表窗格中报文的摘要。解码是分层的,比如:以太网层,IP协议层,UDP协议 和 SIP协议。你可以通过点击窗口的左侧的箭头深入信息。图4显示的是与以上SDP(会话描述协议)相关字段的扩展信息。 

http://www.linuxjournal.com/files/linuxjournal.com/linuxjournal/articles/093/9398/9398f4.jpg(图4:包含SDP信息的SIP数据包在Wireshark图形界面中的显示)

每一行SDP消息,描述的是将要创建会话的特定属性,并遵循简单的形式,即:属性=值。其中”属性”是一个单个字母,而”值”是一个文本字符串。 Wireshark使用该协议的知识来添加一些额外的文本,比如属性的描述。对于VoIP会话,最重要的属性如下:
a—attributes,属性,例如编解码器和静音抑制
c—connection information,连接信息,包括IP地址期望的RTP流值
m—media description,间媒体描述,包括在RTP终端侦听的端口号
t—active time,工作时间。

从连接信息(c)行,可以确定正在发送数据的主机是IP为192.168.1.151的机器。m属性指定的是34008端口的RTP的期望值。通过属性,可以看到他提供 PCMU和PCMA的编码,包括GSM压缩格式和通过电话事件的按键音媒体格式。这个问题就是,提供的IP地址192.168.1.151是一个私有地址,无法到达网络。当远程主机尝试向192.168.1.151发送数据包时,数据包丢失,因为在网络上不存在这个路由。

完整起见,会话另一端的SDP信息在7.554时间线处。当提供的数据被确认后,在刚开始的SDP信息中,这两部电话开始相互向指定的IP和端口发送语音数据包,因为pbxhost提供了一个无效的地址fwd.pulver.com,语音呼叫的另一半是从未见过此这个请求的。

这是使用网关进行VoIP网络地址转换的常见问题,这个问题是可以根据需求,使用多种方法来解决的,当然这是另一个话题了!

至此,故障排除一直集中在网络电话的呼叫信令方面。一旦终端开始发送RTP流,网络质量又会成为话音质量的影响因素了。影响VoIP的网络因素有 延迟、波动(不稳定)、丢包。延迟即数据包从A终端到B终端所花费的时间。波动是数据序列包中延迟的变量。丢包是指从A终端发出,从未到达B终端的的报文数量。由于VoIP音频是通过实时UDP协议进行传输的,如果头域在乱序的数据包到达之前就已经打开了,那么这个数据包将被丢弃。

举最后一个案例,我发起一个通话,并捕获包括呼叫建立在内的数据包。Wireshark使用所述SIP信息以获得有关RTP分组流,使用RTP分析工具来获取更多详细信息。点击 Statistics→RTP→Show All Streams,Wireshark使用经过解码的数据包,以提供所有的音频对话和一些基本统计数据的列表,如图5所示。

http://www.linuxjournal.com/files/linuxjournal.com/linuxjournal/articles/093/9398/9398f5.jpg(图5:Wireshark捕获的RTP数据流信息列表)

上图中显示出了4个RTP数据流,因为每个音频流包括两个方向的数据流,并且 PBX 主机用来桥接两个话机。用来判断数据流是否有问题的是最后一个字段,即Pb列。如果显示”X”字样,则表示与VoIP相关问题。这条数据流的最大延迟是84毫秒,质量还算可以。最大波动值也算不错,11毫秒(单向延迟150毫秒,波动20毫秒 都是可以接受的极限范围),但 丢包却达到了将近20%,这是很可怕的。
点击并选中这条有问题的数据流,可做进一步的分析,然后 点击”Find Reverse”按钮,再选择会话的另一半,最后 点击”Analyze”按钮可以看到一个接一个的数据包流。丢失的数据包将会被标记上”Wrong sequence nr.”并显示出来,如图6所示。在该图上,还显示了一些有用的统计数据信息,比如当前的带宽,延迟 和 波动。

http://www.linuxjournal.com/files/linuxjournal.com/linuxjournal/articles/093/9398/9398f6.jpg(图6:有关大量丢包的RTP数据流分析)

图6可以清晰地表明一些网络问题,因为丢包异常(稳定的带宽和固定间隔的丢包可以有力证明队列优先级超负荷或者加强了网络设备的监管)。这些丢包在反方向是看不到的,因为捕获包是在靠近会话的源端。点击”Save as CSV…”按钮,你可以保存窗口的内容。

网络问题是比较难解决的,因为它们需要与网络设备和其它潜在方的交互。如果你的VoIP环境不使用互联网,你可以在网络上捕获不同终端的数据包来查找是哪些因素导致的。如果通话数据流是通过互联网进行传输,你必须检查你与互联网的连接,或者需要运营商配合工作。

RTP分析可使用具有特殊配置的专用系统。如果遇到Wireshark的不识别的信令,它将不能够解码所有的RTP信息。点击 Edit->Preferences->Protocols->RTP 按钮,并试图检查解码会话以外的RTP数据包。分析可能会有点慢,但Wireshark的将尝试确定每一个属于RTP流的UDP数据包,让您使用RTP工具来查看通话。

我们在这里检测的最后一个特性是监听语音通话内容的能力。在打开的流分析窗口上点击”Save Payload…”按钮,选择.au格式的文件,并提供一个文件名,然后点击”OK”按钮,语音呼叫将自动保存到硬盘驱动器上。录音文件可以使用 XMMS,soxplay或其他音频播放器进行播放。

解决VoIP的问题不同于大多数其他网络故障诊断,因为独立的信令和语音协议,以及语音的实时性。这三个例子体现Wireshark的重要功能,他可以通过分析SIP呼叫的建立和RTP语音流来做专门的处理。对手的这些商业产品的功能,可以使你找到VoIP问题的根源所在。

 

呼叫中心使用技巧 之 Ngrep捕获系统数据包

By | 呼叫中心使用技巧, 开发者博客 | No Comments

Ngrep:致力于支持绝大部分的GNU的共同特性,将他们应用于网络层。它是一个抓包工具,允许指定各种规则或16进制表达式来匹配数据包的有效载荷。目前它可以识别到 IPv4/6, TCP, UDP, ICMPv4/6, IGMP和整个以太网的PPPSLIPFDDI,令牌环和空接口,并支持与常见抓包工具同样的方式BPF过滤逻辑,如:tcpdump 和 snoop 。   —-by Jordan Ritter

如何使用?原文阅读:点击这里

在下列实施例中,除特殊说明外,均假定使用eth0网络接口

例:基本数据包的捕获

例:调试HTTP交互

例:处理PCAP转储文件寻找.dump格式的包

监听所有无法通过22端口的流量(即SSH)

监听来自某个主机的流量

捕获并显示从eth0接口呼入/呼出的HTTP(TCP/80) GET方法或POST方法参数的网络流量

捕获并显示从eth0接口呼入/呼出HTTP(TCP/80)含有”User-Agent”字符串的网络流量

捕获并显示从eth0接口呼入/呼出的DNS(UDP/53)查询和响应的网络流量

显示用SELECT语句查询你的MySQL服务器的语句和结果

 

显示用SELECT语句查询你的MySQL服务器的语句和结果,并且查询会返回以下结果:

通过ngrep查看网络流量

监听所有发生报错“error“字样的syslog系统日志的网络流量(注:ngrep’知道如何将服务端口名称转换成端口号。例如,可以在/etc/services 中找到)

监听特殊的数据流

或者,用新的命令行终止系统响应:

 

 

 

呼叫中心使用技巧 之 Tcpdump捕获系统数据包

By | 呼叫中心使用技巧, 开发者博客 | No Comments

Tcpdump:是常用的命令行捕获分析器。它允许用户捕获并显示TCP/IP和其他正通过网络发送或接收的隶属于该计算机的数据包。还可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。

  • 1.用法案例

注:在以下案例中,我用类似 192.x.x.x IP地址 来代替实际的IP,用类似于 example.com 域名 代替实际域名。然而 例子中的本地主机名是“stine”,IP地址使用192.168.0.14”。此外,某些输出出于说明目的已被删除修改。

从一个特定的以太网接口抓包:

注意:当你不带任何选项执行tcpdump”时,它会捕获所有流经的所有接口的报文。而”-i”选项则是用来捕获一个既定的以太网接口进行过滤。

仅捕获N个流经eth0接口的数据包

用ASCII码显示捕获的数据包:

捕获数据包并将其输出写入到二进制文件(利于今后对包的分析,如 wireshark):

从以前保存的文件中的读取数据包(例如,用以前的命令):

用他们的实际IP地址来抓包(而不使用默认的反向DNS(RDNS)查找):

使用完整时间戳捕捉数据包

捕获大于N个字节的数据包

捕获小于N个字节的数据包

只捕获特定协议类型的数据包(如:IPIP6ARPRARPDECNET,TCP,UDP,FDDI,TR,WLAN等):

捕获所有的数据包,但是过滤掉某些协议的(例如,ARP和“RARP”)

注意:可以通过,”非”组合条件来实现。
捕获特定端口的数据包流:

 捕获特定目的IP和端口的数据包:

  • 2.从Tcpdump操作手册派生出的案例

打印所有到达或从sundown发出的包内容:

打印

和hot之间,或者

和ace之间的包:

 打印所有ace和除

的任意主机之间的IP包:

打印本地主机与Berkeley网络上的主机之间的所有通信数据包(注: ucb-ether, 此处可理解为’Berkeley网络’的网络地址,此表达式最原始的含义可表达为: 打印网络地址为ucb-ether的所有数据包)

打印所有通过网关snup的ftp数据包(注意, 表达式被单引号括起来了, 这可以防止shell对其中的括号进行错误解析)

打印所有源地址或目标地址是本地主机的IP数据包(如果本地网络通过网关连到了另一网络, 则另一网络并不能算作本地网络.(nt: 此句翻译曲折,需补充).localnet 实际使用时要真正替换成本地网络的名字)

打印TCP会话中的的开始和结束数据包, 并且数据包的源或目的不是本地网络上的主机.(注: localnet, 实际使用时要真正替换成本地网络的名字))

打印所有源或目的端口是80, 网络层协议为IPv4, 并且含有数据,而不是SYN,FIN以及ACK-only等不含数据的数据包.(ipv6的版本的表达式可做练习)(注: 可理解为, ip[2:2]表示整个ip数据包的长度, (ip[0]&0xf)<<2)表示ip数据包包头的长度(ip[0]&0xf代表包中的IHL域, 而此域的单位为32bit, 要换算成字节数需要乘以4, 即左移2. (tcp[12]&0xf0)>>4 表示tcp头的长度, 此域的单位也是32bit, 换算成比特数为 ((tcp[12]&0xf0) >> 4)<<2,即 ((tcp[12]&0xf0)>>2). ((ip[2:2] – ((ip[0]&0xf)<<2)) – ((tcp[12]&0xf0)>>2)) != 0 表示: 整个ip数据包的长度减去ip头的长度,再减去
tcp头的长度不为0, 这就意味着, ip数据包中确实是有数据.对于ipv6版本只需考虑ipv6头中的’Payload Length’ 与 ‘tcp头的长度’的差值, 并且其中表达方式’ip[]’需换成’ip6[]’.)

打印长度超过576字节, 并且网关地址是snup的IP数据包

打印所有IP层广播或多播的数据包, 但不是物理以太网层的广播或多播数据报

打印除’echo request’和’echo reply’类型以外的ICMP数据包( 比如,需要打印所有非ping 程序产生的数据包时可用到此表达式 .(注: ‘echo reuqest’ 与 ‘echo reply’ 这两种类型的ICMP数据包通常由ping程序产生))

  • 3.过滤器
    TCP报头格式(TCP V4)(注一个刻度代表一个位的位置)
    源端口(即,源端口号):16位
    目的地端口(即,目的地端口号):16位
控制位:6位(从左至右):
URG紧急指针字段显著
ACK确认字段显著
PSH推送功能
RST:重置连接
SYN:同步序列号
FIN:从发送方没有更多的数据

请注意以下联想记忆
OSI模型All People Seem To Need Data Processing (所有的人看起来都需要数据处理)
层数:7.应用层=> 6.表示层=>5.会话层=>4.传输层=>3.网络层=>2.数据链路层=>1.物理层
TCP标志Unskilled Attackers Pester Real Security Folks
标志:
Unskilled = URG(紧急指针有效标志)
Attackers = ACK(应答域有效标志)
Pester = PSH(推送标志)
Real = RST(重置连接标志)
Security = SYN(同步序列号标志)
Folks = FIN(数据结束标志)
 获取所有的SYN的数据包:
如何读取用”tcpdump ‘tcp[13] & 2 != 0″捕获的SYN数据包:抓取TCP头部的前13个字节并且第2位不为0的标志,其中”2″指字符串”UAPRSF”从右往左第2位(SYN= S=2)。因此,该命令只捕获SYN包。
通过变量过滤或者捕捉 控制位”U A P R S F” 的数据包(即,用XXX标志TCP的数据包):
其他常用的过滤器:
捕获所有带有”RST”和”SYN”标志的数据包(R+S = 4+2 = 6):
Capture TCP Flags 的数据包:
注意:除了使用比特/字节,我们也可以通过名称过滤,如下:
显示所有带TCP标志的数据包,其中TCPRST位设置(即所有TCP RST包)为:
  • 4.常用过滤器表达式格式
host A.B.C.D — 所有使用IP地址为A.B.C.D的数据源目的数据包
net A.B.C/n — 所有以IP地址为A.B.C.n 为数据源或者目的地址的数据包
port X — 所有使用X为源端口或目的端口的 TCP 或 UDP 数据包
ether broadcast — 所有以以太网广播为其目标的所有数据包
tcp — 所有 TCP 的数据包
udp — 所有 UDP 的数据包
icmp — 所有 ICMP 的数据包
arp — 所有 ARP 的数据包

AsterCC呼叫中心系统常见问题及解答

By | 呼叫中心使用技巧, 呼叫中心常用功能, 解决方案 | No Comments

AsterCC呼叫中心系统常见问题及解答

1.如何修改默认sip注册端口

2.如何取消IP访问限制

3.语音问卷功能的使用方法

4.如何配置主叫号码

5.如何配置坐席评分功能

6.费率管理下的四个费率都是做什么用的_如何使用

7.分机无法注册的原因及解决方案

8.如何对呼入号码进行限制

9.如何给外呼营销任务指定中继进行外呼

10.如何修改发送voicemail的smtp服务器

11.如何设置启用谷歌地图

12.如何从系统的备份文件中恢复系统

13.如何设置录音

14.如何在页面迁移asterCC系统

15.关于asterCC系统相关日志的介绍

16.如何使用知识库

17.如何使用脚本配置主备服务器以及集中管理

18.如何修改AsterCC系统的数据库地址

19.如何批量删除导入/导出任务列表数据

20.如何修改录音文件地址

21.如何设置坐席挂机后自动推送邮件或短信

22.如何添加/修改astercc系统模块参数字段注解

23.常见系统提示窗口

24.影响预拨号并发数的参数设置

25.如何使用驻留号码进行通话驻留

26.如何使用话机快捷键获取客户进行外拨并保存呼叫状态和结果

27.如何对asterCC服务器进行磁盘清理

28.如何使用link类型的自定义字段传递参数

29.如何解决坐席频繁变动导致分机不匹配的问题

30.如何设置管理员页面搜索栏字段的显示与隐藏

31.如何为asterCC系统配置多台PHP服务器

32.

实际案例指导

31.如何利用astercc统计坐席工作情况

32.asterCC对于被叫号码的处理流程

33.如何使用带有通配符功能的电子邮箱模板群发邮件

34.astercc支持的短信(SMS)供应商列表

35.如何立刻拨打预拨号任务中有预约时间的号码

36.如何利用IVR功能验证信用卡的有效性

37.如何取消正在进行的导入/删除数据的任务

38.如何分配或回收总表客户资料数据

39.如何实现局域网内两套独立系统的分机之间互拨

40.如何配置典型的呼叫中心呼入流程

41.如何搭建基于astercc系统的OpenVPN

42.如何使用时间判断控制IVR转向

43.如何实现astercc系统的备份

44.如何在外呼营销模块中使用短信模板

45.如何在外呼营销中利用通配符把模板内容用客户资料信息替换

 

用途和案例

46.如何建立一个语音广播系统

47.如何使用短信和电子邮件模板

48. 如何自定义弹屏地址

49. 如何利用astercc统计坐席工作情况

50. 如何导入电话销售号码段进行外呼拨号_自动拨号和预拨号

51. 如何进行电话转接

52. 如何利用电话键盘进行外呼任务

53.如何结合外呼计划使用问卷进行市场调查

 

 

 

 

 

 

 

 

 

 

 

 

 

 

呼叫中心模块安装,升级,下载和出现问题的解决办法

By | 呼叫中心使用技巧 | No Comments

呼叫中心模块安装

asterCC商业版呼叫中心系统采用模块化设计,针对呼叫中心不同的业务,用户可以选择安装不同的模块来实现。

正常来说,系统安装完毕后,以管理员账户登录,通过左侧菜单进入 系统模块管理 页面,就可以看到系统提供的模块。

当本机已经下载了相应的模块时,我们可以看到安装按钮,点击安装系统会自动安装。

呼叫中心模块安装 呼叫中心模块安装

呼叫中心模块升级

同样,当系统发布了新的版本,且服务器上有升级包时,我们会看到升级按钮,点击升级按钮系统会完成升级。

呼叫中心模块升级

呼叫中心模块下载

如果我们能够看到新版本,但是服务器上没有可用的安装(升级)包,我们会看到下载按钮,此时我们需要在服务器上下载安装(升级)包,首先获得安装(升级)包的地址,

ssh到服务器,进入目录/var/www/html/asterCC/data/_cache/

使用wget下载安装(升级)包

呼叫中心模块下载 查找升级包地址 呼叫中心模块下载 下载升级包

看不到任何模块怎么办?

系统需要连接到asterCC升级服务器以获取版本信息, 如果你在呼叫中心模块管理中看不到任何模块信息,首先请确认服务器有互联网权限.

测试网络,如果系统返回

表明系统无法解析域名,一般是由于系统没有设置DNS服务器造成,编辑/etc/resolve.conf文件,配置DNS服务器,如果不清楚ISP提供的DNS服务器地址,可以使用googole DNS,修改后的resolve.conf文件格式如下

保存后再次执行,确认域名可以解析

重启php服务

刷新页面,问题解决

电话销售系统教程 之 模块安装 数据导入 和 点击拨号

By | 呼叫中心使用技巧 | No Comments

电话销售系统教程 之 模块安装 数据导入 和 点击拨号

在完成系统基础设置之后(账号,分机,中继,坐席,坐席组) 我们开始设置一个外呼任务。

模块安装

首先确定我们安装了外呼营销模块,以管理员账号登陆,左侧菜单点击 “系统模块管理”,如图所示。

systemupdate_modules_campaign

如果您没有安装该模块,可以点击右侧的安装按钮执行安装,如果看不到模块,请参考 呼叫中心模块安装,升级,下载和出现问题的解决办法

建立外呼任务

campaign_create

建立一个新的外呼任务, 我们仅需要填写任务名称, 其他参数使用默认值即可, 注意选择正确的坐席组.

campaign_list

数据导入

点击任务前的导入按钮,进入导入界面,上传要导入的文件,系统会列出文件中前十条数据供参考。

campaign_import_init

 

选择即导即用功能, 系统会自动建立相应的字段,这样节省了自定义字段的时间。

campaign_import_start

即导即用功能会自动匹配电话号码类型,对于其他类型我们可以根据需要进行调整,对于不需要的字段,我们可以选择 -选择字段-,这样该字段就不会被导入了。

campaign_import_remove_column

点击”将数据导入表”按钮,如果导入文件名与任务名称不匹配,系统会出现警告提示,点击确定继续。

campaign_import_confirm

 

系统成功创建导入计划后会显示计划编号

campaign_import_importid

点击确定进入导入计划页面,这里可以看到该导入任务的处理情况

campaign_import_done

数据导入成功后 我们需要将客户分配给坐席

管理员分配数据

按比例/数字分配

campaign_auto_assign

按条件查询分配

campaign_manually_assign

坐席自动获取

除管理员分配外,也可以设置为坐席获取这种方式

campaign_agent

点击拨号

坐席可以通过调整表头 列出关心的数据

campaign_agent_customer_list

双击数据打开客户资料页面

campaign_agent_popup

 

签入坐席,点击号码后面的拨号按钮拨号

campaign_dialing

自动应答

系统在开始拨打客户号码前首先要接通坐席分机,如果使用的软电话,我们可以开启自动应答功能,这样坐席点击拨号后,软电话会自动应答

xlite_auto_answer

 

如果您的软电话不支持自动应答功能,您可以在这里下载免费的xlite软电话

如果您使用的IP电话,asterCC会在SIP头中添加自动应答请求,大部分IP电话均支持该选项,您也可以在坐席组管理中关闭此功能

agentgroups_sip_header

 

 

VoIP调试 使用tcpdump和wireshark调试VoIP通话

By | VoIP技术, 呼叫中心使用技巧 | No Comments

VoIP调试

之前的 如何利用ngrep调试sip系统 适用于SIP包的快速分析,有些情况下系统环境比较复杂,我们希望能获取完整的通话信息(SIP+RTP,即完整的语音通话),这时我们可以使用tcpdump获取网络数据,使用wireshark进行进一步分析。

tcpdump

安装

命令基本格式如下

例如

表示将任意网络接口收到的包保存到internal.pcap文件

 

tcpdump voip调试

开始tcpdump抓包

命令执行后系统会停在这里,这时候我们可以打一个电话,然后使用Ctrl+c结束

tcpdump voip调试

中断tcpdump抓包

tcpdump会输出一些抓包的信息,这样tcpdump的使命就完成了,下载pcap文件,轮到wireshark出场了。

Wireshark

wireshark可以从http://www.wireshark.org/download.html下载,安装完毕后,运行wireshark,打开下载到的internal.pcap文件

wireshark VoIP调试

wireshark中查看VoIP通话

 

这里我们可以看到tcpdump抓到了各式各样的包,使用Telephony下的VoIP Calls,系统会自动归纳总结期间的通话, 便于进一步完成VoIP调试.

wireshark VoIP调试

wireshark中选择要查看的VoIP通话

选取一个通话,点击Flow按钮,wireshark会使用一个图形来表示参与通话的地址,点击相应的步骤,我们可以看到对应的IP包信息

wireshark VoIP调试

wireshark中查看VoIP通话的SIP流程

 

对于包含RTP语音的通话,点击 Player 按钮,我们还可以试着收听通话内容

wireshark VoIP调试

Wireshark 解码VoIP通话中的RTP流

 

对于G711编码的通话,wireshark自带解码器,点击 Play 按钮进行播放。在这个图中我们有三段RTP,我们可以分别收听,合成起来就是一个正常的通话了

wireshark VoIP调试

Wireshark 播放VoIP通话

sip调试 使用ngrep进行快速SIP包分析

By | VoIP技术, 呼叫中心使用技巧 | No Comments

sip调试

asterCC呼叫中心系统是一个基于SIP通信的系统,与传统的电话系统相比,语音的传送基于IP网络,因此学会如何调试VoIP通信是网络管理员们必须掌握的技能之一。这里我们会逐步介绍一些VoIP调试工具,希望能够帮助大家更好的设计、维护语音通信和呼叫中心系统。

什么是ngrep

ngrep是网络版的grep,用于从网络中过滤特定的信息,这里我们学习如何利用ngrep来调试SIP系统。

ngrep安装

对于sip 最常用的命令格式为
ngrep_any

ngrep sip调试

这个命令会输出到达该服务器5060端口的所有包,5060为sip的默认端口,这样所有sip包都会输出到屏幕
如果我们想看来自/发送到服务器astercc.org的包,命令为
ngrep_astercc

ngrep sip调试

我们也可以使用正则表达式来过滤特定的信息,例如我想看来自分机astercc-1000的包
使用ngrep过滤信息时可以使用正则表达式,例如只想看到SIP REGISTER包
其中 ^REGISTER 表示以REGISTER开头的包

我们也可以指定对某个网卡(eth0)进行查询 例如
 注意ngrep抓包的优先级高于iptables防火墙,如果ngrep中看到有包但是asterisk中看不到,则说明是iptables阻挡,需要检查iptables设置 [] [/]
使用ngrep我们也可以将输出保存到指定的文件,命令格式为
其他两个参数包括
  • -t : 以 年/月/日 的格式显示每个包的时间戳
  • -T: 以 +S.UUUUUU 的格式打印时间,用于表示两个包之间的时差

asterisk中的Sip调试

asterisk中查看sip包的方法为,登陆到linux系统,连接到asterisk控制台
开启sip调试模式
asterisk_sip_debug

asterisk sip调试

查看指定ip
关闭sip调试模式
asterisk_sip_debug_off

asterisk sip调试

总结

ngrep命令使用方便,能够帮助我们快速定位问题,实际上ngrep不仅能够应用于sip协议,能够适用于任何明文传送的网络数据。

主叫号码CallerID的管理

By | 呼叫中心使用技巧, 呼叫中心常用功能 | No Comments

主叫号码管理

当我们需要为不同的应用设定不同的主叫号码时,系统使用主叫号码的优先级顺序如下

  • 中继主叫号码(强制)
  • 坐席主叫号码(登录状态下)
  • 外呼任务主叫号码(登录状态下)
  • 分机主叫号码
  • 中继主叫号码

强制使用统一的主叫号码

系统中可以对特定的中继强制使用某个主叫号码,所有通过此中继呼出的电话都会忽略任何其他设置而使用此主叫号码

设置中继默认主叫号码

设置中继默认主叫号码


强制使用中继主叫号码

强制使用中继主叫号码

当分机需要有独立的主叫号码时,我们可以设定分机主叫

分机主叫号码

分机主叫号码

通常不同的外呼任务会使用不同的主叫

外呼任务主叫号码设置

外呼任务主叫号码设置

坐席也可以有自己的主叫号码

坐席主叫号码设置

坐席主叫号码设置