最近呼叫中心走火入魔了,我的《一步一步开发呼叫中心》系列编写过程中,遇到各种的问题,今天晚上,来记录一下纠结了我N久的一个问题:

内线通过板卡外呼时,如果对方的呼叫中心需要发送按键响应(如拨打10086时需要输入手机号),调用API函数SsmTxDtmf无论如何对方都提示错误。

找了N多个解决方案,联系N多个三汇的技术支持,都要求提供板卡录音,我的纠结呀,本来呼叫中心就在线上运营,白天我怎么能随便调试呢。。。

好了,深更半夜,爬起来研究这个问题(正好这会没什么客户来电),经过各种烧脑,终于找到问题原因了!

当外呼时,内线分机按键响应,板卡会自动将dtmf发送到外线通道上,即:系统会自动调用SsmTxDtmf函数,将按键响应送到局端交换机。

那么,问题就来了,我画蛇添足了!

系统自动发送了一次,我接收到按键响应之后,又手动发送了一次,导致按一次键,发送了两次dtmf响应给局端交换机,导致对方收到的dtmf始终是错误的!

唉。。。自作多情的人呀。。。

半夜,太晚,写短点,权当做个笔记吧。

再记录一个小问题:

通常,我们有一个业务场景,公司有的分机电话,是希望用户能够通过直拨号码直接拨打进来的,并且,这个分机电话拨打出去,显示的号码也一定是他的直拨号,而不是中继线统一号码。

这个时候,我们会用到SsmSetTxCallerId函数,用来告诉局端交换机,本次呼出是用哪个号码呼出,就能实现:呼出时,控制当前显示到被叫方的主叫号码。

问题在这里:

SsmSetTxCallerId函数调用一次之后,局端会认为,这一条通道一直都会使用这次通知的号码作为直拨号,如果不再次调用此函数,那么,就会影响到其他不需要显示直播号码的分机呼出,始终显示的是之前使用的直拨号,从而影响到不能显示中继线统一号码。

解决方案:给每个分机设置一个呼出显示号码,在呼出时,都调用一次SsmSetTxCallerId函数!

OK,手工,回家,睡觉!

两个三汇API使用的坑的更多相关文章

  1. Navisworks 提供了.NET, COM和NwCreate 三种API

    Navisworks 提供了.NET, COM和NwCreate 三种API.而通常我们说Navisworks API其实指的只是COM或.NET,因为NwCreate的功能比较特殊.待我一一道来: ...

  2. grape动态PHP结构(三)——API接口

    一.app视图与控制器

  3. Apache Spark 2.0三种API的传说:RDD、DataFrame和Dataset

    Apache Spark吸引广大社区开发者的一个重要原因是:Apache Spark提供极其简单.易用的APIs,支持跨多种语言(比如:Scala.Java.Python和R)来操作大数据. 本文主要 ...

  4. Vue.js 组件的三个 API:prop、event、slot

    组件的构成 一个再复杂的组件,都是由三部分组成的:prop.event.slot,它们构成了 Vue.js 组件的 API.如果你开发的是一个通用组件,那一定要事先设计好这三部分,因为组件一旦发布,后 ...

  5. 实践 - 搭建Redis一主两从三哨兵

    实践 - 搭建Redis一主两从三哨兵 原因: 最近在复习Redis的时候,学习到了为了提高Redis集群的高可用性,有一个模式为哨兵模式.哨兵模式的作用是为了在主节点出现阻塞或者错误,无法接收数据的 ...

  6. redis(一主两从三哨兵模式搭建)记录

    转自:http://www.cnblogs.com/fly-piglet/p/9836314.html 目的: 让看看这篇文章的的人能够知道:软件架构.软件的安装.配置.基本运维的操作.高可用测试.也 ...

  7. 写了一个Windows API Viewer,提供VBA语句的导出功能。提供两万多个API的MSDN链接内容的本地查询

    始出处:http://www.cnblogs.com/Charltsing/p/APIViewer.html QQ:564955427,QQ群:550672198 世面上的API Viewer已经不少 ...

  8. 【运维技术】redis(一主两从三哨兵模式搭建)记录

    redis(一主两从三哨兵模式搭建)记录 目的: 让看看这篇文章的的人能够知道:软件架构.软件的安装.配置.基本运维的操作.高可用测试.也包含我自己,能够节省对应的时间. 软件架构: 生产环境使用三台 ...

  9. 设a、b、c均是0到9之间的数字,abc、bcc是两个三位数,且有:abc+bcc=532。求满足条件的所有a、b、c的值。

    题目描述 设a.b.c均是0到9之间的数字,abc.bcc是两个三位数,且有:abc+bcc=532.求满足条件的所有a.b.c的值. 输入描述: 题目没有任何输入. 输出描述: 请输出所有满足题目条 ...

随机推荐

  1. 关于Java中SQL语句的拼接规则

    实现目标语句是这个注意,这里的java变量是idd int idd; String sql = "SELECT id, piUrl FROM picinfos WHERE id BETWEE ...

  2. linux下文件权限的介绍

    linux操作系统下,使用ll查看该目录下所有文件及其文件权限,以下是对文件权限的介绍 d代表的是目录(或称之为文件夹)   红框内的这3个是代表3个组的权限每组都是3个 第一组rwx代表是本用户的权 ...

  3. django自定义rbac权限组件(二级菜单)

    一.目录结构 二.表结构设计 model.py from django.db import models # Create your models here. class Menu(models.Mo ...

  4. networkx如何将图写到邻接矩阵里?

    nx.write_adjlist(G1,graph_filename1)#生成的是二进制文件nx.write_adjlist(G2,graph_filename2)

  5. [译文]Casperjs1.1.0参考文档-快速开始

    快速开始 只要casperjs被正确安装,你就可以开始写你的第一个脚本,你可以使用javascript或者coffiescript编译脚本. 提示: 如果你对javascript不是很熟悉,最好先看专 ...

  6. 杀死进程命令 kill

    一般kill命令和ps命令结合使用, 例:现在想杀死telnet的进程 1.在所有进程中查看telnet命令 ps -ef |grep telnet 2.根据上面命令查到的进程id,如pid 是 xx ...

  7. spark_flume_mysql 整合

    本人的开发环境: 1.虚拟机centos 6.5 2.jdk 1.8 3.spark2.2.0 4.scala 2.11.8 5.maven 3.5.2     在开发和搭环境时必须注意版本兼容的问题 ...

  8. 20165224 陆艺杰 Exp3 免杀原理与实践

    杀软是如何检测出恶意代码的? 识别代码特征码 监测像后门的行为 (2)免杀是做什么? 让后面程序不被安全软件发现 (3)免杀的基本方法有哪些? 多方式编码 半手工shellcode编程 完全自己写没有 ...

  9. 24个常用 Python 实现

    24个常用 Python 实现 1.冒泡排序 lis = [56,12,1,8,354,10,100,34,56,7,23,456,234,-58] def sortport(): for i in ...

  10. Linux 安装 python3

    1. 安装依赖环境 # yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline- ...