两个三汇API使用的坑

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

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

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

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

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

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

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

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

 

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

 

再记录一个小问题:

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

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

问题在这里:

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

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

 

OK,手工,回家,睡觉!

posted @ 2015-03-03 03:38  dongger  阅读(2762)  评论(1编辑  收藏  举报