更新时间:2023-09-20 GMT+08:00

提交对接自有号码申请

前提条件

企业自备SIP号码对接华为云客服时需要满足以下条件:

  • 设备条件:完整支持SIP协议,具备固定的公网IP地址以及端口号信息。
  • 网络质量要求:语音通话质量是基于数据网络稳定性,需要确保企业与云客服的网络丢包率<1%,网络抖动<=60ms,时延<200ms。如果网络达不到此要求,可能会导致语音断断续续,听不清楚对方说话的情况。
  • 网络带宽要求:云客服采用的语音媒体协议是G.711 A为例,平均流量为100 Kbit/s,上下行流量相同。带宽测算公式为:网络带宽 = (用户并发数 × 100Kbit/s )/1024

    根据100个并发量来计算,带宽需求=(100 X 100Kbit/s) /1024=9.7Mbps,100个并发的带宽上下行需求为10Mbps。

  • 号码资源:需要具备信令IP和端口的SIP号码才能对接。
    • 普通固话号码和95号码:支持企业自行向运营商申请,或者由华为协助企业向运营商申请。
    • 400号码:SIP号码可直接申请自有号码对接。非SIP号码可联系运营商配置转接到SIP固话后申请自有号码对接。普通小号、移动号码无法对接。

背景信息

SIP协议介绍

SIP(Session initialization Protocol,会话初始协议)是由IETF(Internet Engineering Task Force,因特网工程任务组)制定的多媒体通信框架协议之一。它是一个基于文本的应用层控制协议,用于创建、修改和释放一个或多个参与者的会话,独立于下面的传输层协议,可以承载在不同的传输协议上,例如UDP/TCP/TLS/SCTP。但是SIP单独不能完成多媒体呼叫,必须要与其他协议一起才能组建完整的多媒体通信系统,与RTP/RTCP、SDP、 MGCP 、DNS等协议配合共同完成多媒体会话过程。

由于SIP只描述建立/更改/终止一个会话,并不描述会话的内容,所以可以承载任何的会话内容,如语音/视频/游戏等。

SIP协议实例

SIP协议根据不同线路不同场景所展示的协议内容会有差别,以下是云客服成功发起的一例音频呼叫中的SIP协议内容,您可以参考该用例了解实际使用中的SIP协议。

INVITE sip:18012345678@10.11.56.68:5060;user=phone SIP/2.0
/*请求行:由Method、Request-URI和SIP Version组成。其中Request-URI头域为UAP获取被叫号码18012345678。*/
/*SIP Header-start*/
Via: SIP/2.0/UDP 10.11.56.61:5060;branch=z9hG4bK9njqrkwmmvg6or9gnjml6hvwv;Role=3;Hpt=8e48_16
/*消息头,用于记录请求经历的路径,使响应能按此路径准确返回。Via头域携带的SIP URI是标识“发起请求用户的主机名或网络地址”,UAP从Via中获取对端的信令地址,如10.11.56.61:5060。*/
Record-Route: <sip:10.11.56.61:5060;transport=udp;lr;Hpt=8e48_16;CxtId=4;TRC=ffffffff-ffffffff;X-HwB2bUaCookie=2717>
/*强制路由,用于强制一个请求经过一系列代理(proxy)。*/
Call-ID: isbcjiwwievb2zvydwesyf2w0dxvdzsszefd@UAP9600
/*整个对话的唯一标识,由随机字符串组成。*/
From: <sip:02160123456@10.11.56.61;user=phone>;tag=yv20ze22-CC-57
/*标明请求的发起方,可以获取到主叫号码。如果是第一个消息,只有From域中有tag,To域无tag。*/
To: <sip:18012345678@10.11.56.68;user=phone>
/*标明请求的接收者,在注册时标明要注册的公共用户身份,在会话时用于标明请求的接收方,携带请求接收者的URI。Tag参数参照From中描述。在初始请求中的To头域可以不带tag,在会话内任何请求和响应必须带tag。UAP从To域中获取的IP:port是本端的信令地址,UAP获取原始被叫顺序:先从Historyinfo或者Diversion获取,如果没有从To域获取。*/
CSeq: 1 INVITE
/*标明事务的序号,逐个递增。*/
Allow: INVITE,ACK,OPTIONS,BYE,CANCEL,REGISTER,INFO,PRACK,SUBSCRIBE,NOTIFY,UPDATE,MESSAGE,REFER
/*头域,用于列举UA支持的所有SIP方法列表。*/
Contact: <sip:02160123456@10.11.56.61:5060;transport=udp;Hpt=8e48_16;CxtId=4;TRC=ffffffff-ffffffff>
/*给出后续和用户直接通信的地址,SIP URI表示接收响应的地址*/
Max-Forwards: 69
/*表示请求到达其目的地址所允许经过的中转站的最大值。请求每经转发一次,该值减1。该头域用于避免出现环路时不停的消耗Proxy 资源。取值范围为0–255,初始推荐值70。*/
Supported: 100rel
/*UAC或UAS支持的所有SIP扩展方法。*/
User-Agent: Huawei UAP9600 V100R005C00
Content-Length: 236
/记录消息体长度,单位是字节。*/
Content-Type: application/sdp
/*表示当前携带的消息体类型是SDP媒体类型。*/
/*SIP Header-end*/

/*SIP Body-start*/
v=0
/*表示协议版本号为0(SDP使用的协议版本号为0)。*/
o=- 929076 929076 IN IP4 10.11.56.61
/*第一个参数:-,表示会话发起者的名称,可以不填写。
第二个参数:929076,表示主叫会话方的会话标识符。
第三个参数:929076,表示主叫会话方的版本,会话数据有改变时,版本号递增。
第四个参数:IN,表示网络类型;IN表示internet网络类型,目前仅支持该类型网络;
第五个参数:IP4,表示IP地址类型,目前支持IPV4和IPV6。
第六个参数:10.11.56.61,表明会话发起者的IP地址,该地址为信令面的IP地址。*/
s=SBC call
/*表示本次会话的名称。*/
c=IN IP4 10.11.56.61
/*连接信息。C行标识UE的媒体接收地址,如果媒体级行中也有c行,则取用媒体级中的,但无论如何必须有一个c行。
第一个参数:IN,表示网络类型;IN表示internet,目前仅定义了该类型。
第二个参数:IP4,表示IP地址类型,支持IPV4和IPV6。
第三个参数10.11.56.61,表示真正的多媒体流使用的IP地址。*/
t=0 0
/*第一个参数表示Start time,第二个参数表示stop time。start time和stop time的值为十进制的NTP(Network Time Protocol)时间,如果都为0,则表示持久会话。*/
m=audio 59354 RTP/AVP 8 0 97
/*m=<media> <port> <transport> <fmt list>media:表示媒体的类型,音频audio或者视频vedio。目前定义了音频,视频,应用,数据和控制。port:表示媒体端口号。transport:表示传输协议,当前都是RTP/AVP。fmt list:表示格式列表。*/
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
/*rtpmap为关键字 PT值 码流名称/采样率*/
a=rtpmap:97 telephone-event/8000
a=ptime:20
/*表示该媒体的打包时长(表示允许在一个分组里保持多长的媒体,单位为毫秒)为20ms。*/
a=fmtp:97 0-15
a=sendrecv
/*表示媒体的流向为双向,媒体方向有inactive、sendonly、recvonly、sendrecv.*/
/*SIP Body-end*/
  • SIP Header是信令消息,用于发起端用户告知接收端用户本次呼叫的基本信息。

    信令消息可以理解为:

    呼叫10.11.56.68:5060

    我在通过10.11.56.61:5060给你发SIP消息

    这通呼叫的ID是xxxx

    呼叫是来自10.11.56.61:5060的

    我需要发给10.11.56.68:5060

    这是我在这通呼叫请求中发的第一次Invite消息

    如果收到,请联系10.11.56.61:5060回复我

    我是Huawei UAP9600 V100R005C00,我允许你回复我INVITE、ACK、BYE……等。

    这通信令消息长度236个字符,格式SDP。

  • SIP Body是媒体消息,即SDP。SIP消息中媒体消息必不可少。信令消息只能让发起端和接收端知道双方已连接成,媒体消息是让双方知道消息的具体内容。

    媒体消息可以理解为:

    我的版本是0。

    我通过信令地址10.11.56.61给你发的消息,但我的媒体地址是10.11.56.61(处理信令的服务器和处理媒体的服务器有可能不是一个哦),音频媒体流端口是10002,使用RTP协议传递, 视频媒体流端口是10004,也使用RTP消息传递。

    由于并不是所有的终端都支持视频,因此在接收SIP消息时,有可能只能得到对端的音频媒体信息,没有视频媒体信息,需要根据协商结果来定。

    当前支持的媒体传输类型为RTP/AVP,即使用UDP通道进行传输,以确保音视频的实时效果。暂不使用基于TCP的RTP/SAVP的媒体传输类型。

SIP常见请求消息和响应消息可参考以下内容:

表1 请求响应消息说明

请求

响应

使用场景

INVITE

1XX

协商类请求,开始会话时使用。收到对端1XX,表示SIP网络连通,可以开始对话了。

ACK

2XX

信令媒体协商注册成功,告知对端系统,建立RTP通道。

OPTIONS

3XX

重定向,通常在检测中继,或者检测MRCP链路(比如对接TTS、对接ASR时需要使用MRCP链路)时使用。

BYE

4XX

正常通话中,结束通话时使用。

CANCEL

5XX

由于资源不够等会话异常中断,SIP会话的两端要强行拆线时使用CANCEL。

REGISTER

6XX

注册

  • 云客服侧每分钟会使用OPTIONS请求消息来查询被叫的相关信息和功能,确认链路状态是否正常。只有在企业侧回复响应消息为200ok的情况下,才会认为链路正常,可以进行呼叫。
  • 对于使用PRACK请求消息进行重协商时,云客服侧要求对端的响应消息18x消息(例如:180振铃)中必须包含Require:100rel字段,对端的INVITE请求消息中必须携带Supported:100rel参数。否则会造成通话无声的情况。
  • 云客服侧使用UPDATE请求消息进行重协商时,用于正常和座席通话时使用。使用INVITE请求消息进行重协商时,用于呼叫进入智能IVR或者通过普通IVR转接。有些运营商不支持第二次INVITE进行重协商,会造成部分相关功能不可使用,例如小号业务会存在该问题。

呼叫流程介绍

用户发起对云客服的呼入流程具体如下:

  • 用户侧发起呼叫业务,通过INVITE请求消息接入云客服SBC。
  • 云客服侧回复振铃消息以及链路连接成功(200)的消息。
  • 用户侧收到消息后回复收到了对INVITE请求的最终响应。
  • 云客服侧接收回复,向用户侧发送重协商消息。
  • 用户侧接收消息后回复链路连接成功(200)的消息。
  • 云客服侧回复请求的响应后,用户与座席正式开始会话交谈。
图1 呼叫流程

业务场景

企业自备SIP号码对接华为云客服的方案如下:

图2 自有SIP号码对接

典型场景一

企业拥有本地号码资源,直接与云客服进行对接。

对接方案:

  1. 企业自行向运营商申请号码资源,资源类型可以是E1、专线或者是SIP。
  2. 申请成功后,企业需要在本地通过语音网关将运营商的非SIP号线接入后转换为SIP号线后,才能与云客服的公有云SBC平台对接通信,具体设备可参考常见问题>产品咨询中的本地设备推荐。
  3. 企业参考申请对接自有号码成功后,通过邮件向华为云客服的运营人员申请云客服的信令IP地址以及端口、媒体端口,用于本地防火墙设置白名单与线路对接。

典型场景二

企业申请运营商SIP号码,由运营商与华为对接。

对接方案:

  1. 企业自行向运营商申请号线资源,该资源类型只可以是SIP类型。
  2. 号码申请成功后,企业向华为云客服侧申请由华为直接与运营商对接,企业不做号线接入。

操作步骤

添加已有号码:

  1. 登录华为云
  2. 选择 > > 服务列表> 企业应用 > 云客服
  3. 选择“云客服 > 资源管理 > 号码”。
  4. 单击“自有号码”,单击右上角“新增自有号码,点此链接申请对接自有号码”,填写号码、信令和媒体的IP端口,单击“确定”

后续操作

如果是自有号码,您需要耐心等待云客服运营人员为您完成号码对接配置,当配置完成后,您可在当前页面查看号码的对接状态为“配置完成”,您可单击“关联呼叫中心实例”将您的号码关联到已经有的呼叫中心实例上。