关于最近语音网关对接遇到的伤心事

目前业务流程使用的电话呼叫系统的业务架构梳理

我们先梳理下语音网关对接的逻辑

A 为线路运营商的VOS3000 平台

B为 我使用Asterisk FreePBX搭建的免费的语音网关。(相应的编码通过手工安装齐全)

C为 AsterCC 建立的可以自动呼叫的群呼后台。

目前的业务架构是一个小型免费的呼叫中心的架构。 三者之间对接 逻辑如下。

A(1.1.1.1)----》B(2.2.2.2)---》C(3.3.3.3)

1、对接遇到的bug:

在B对接到A的过程中,遇到的比较奇葩的现象是,对接通了,话单也能正常传递到供应商,但是出现一方没有声音传递过来,或者双方能够呼叫通,但是双方互相听不到对方的声音;

经过比较有经验的老司机点拨,最终得以解决。

问题点大致有两点:

@1.其一在B PBX对接A PBX 使用的 方式是SIP话机注册的方式。

B对接A的 方案有点儿区别。

具体区别如下图。

有问题的对接方式是这样的:

在这条中继线的出局线路配置的转码格式是0086. 进行匹配(这也是对方提供的送码格式)  在中继并未配置。 直接就是0086+手机号即可成功送出去。

IPGO IP : 1.1.1.1
SIP ID : 66888
Password : 000000
Country : China (86)
Channel : 1
Prefix : 00 + Country + Phone number (e.g. 008612342234323)  就是0086 进行送码

 

对接的中继 配置如下图:SIp outgoing 一端配置  type=peer

 

 编码用的是 allow=g729&ulaw&alaw  这些

对接中继registry 即对方传过来通话一端,就是 Sip incoming一侧的配置如下所示:

 

 以上这种配置是可以进行送话单的,无论是使用单拨进行呼叫还是群呼进行呼叫,都能够进行呼叫到对方。并且成功送话单。但是没有声音,

具体调整后的截图为:

 

 最后备注下SIP话机模式对接的配置文件:

在out方向的配置为:

username=XXXXXX
secret=XXXX
qualify=yes
port=5060
nat=yes
insecure=invite,port
host=X.X.X.X
dtmfmode=rfc2833
disallow=all
context=from-trunk
allow=ulaw&alaw&g729

Incoming 方向的配置为:

type=friend
secret=xxxxx
port=5060
host=X.X.X.X
context=from-trunk

注册字符串:sip account:sip password@供应商IP:5060

如果使用FreePBX 使用网关模式对接供应商,

OutGoing方向配置为:

type=peer
trunk=yes
qualify=yes
port=5060
nat=yes
host=1.1.1.1
disallow=all
context=from-internal
canreinvite=no
allow=g729&ulaw&alaw

 

Incoming方向对接配置如下:type=friend

qualify=yes
port=3070
host=1.1.1.1
context=from-trunk

注册字符串 这一列可以不填写即可。 因为是使用网关模式对接的。

出于第一种不正确的对接方式,虽然通话能够传到供应商,但是没有声音,最终因为这个问题还被老大叼了一顿,真的是伤心,所以分享出来给大家,千万别犯和我一样的错误。

以上是这几天遇到的一些问题积累。

 

posted @ 2019-09-11 22:23 柳湖居士 阅读(...) 评论(...) 编辑 收藏