主页 > 知识库 > 语音机器人SIP通话场景下如何捕获用户电话按键信号

语音机器人SIP通话场景下如何捕获用户电话按键信号

热门标签:安阳吉信防封电销卡 电销机器人AXB线路 微信交通地图标注公众号安全吗 智能外呼系统oem 办理达州400电话 厦门防封电销机器人排名 百度地图标注一个区域 谷歌地图标签怎么标注 天津移动电销外呼系统多少钱
  背景
  随着互联网技术的发展和网络的普及,线上告警已经由早期的短信/邮件通知发展为微信/电话语音等方式,由于短信/邮件等告警方式存在延时问题,不能及时告知被通知对象,业内开始流行将服务器接收到的告警内容通过TTS(语音合成)合成语音后告知用户,用户按键选择主动处理或移交给其他负责人,智能语音机器人基于TTS和SIP实现了语音播报功能与按键识别功能的结合,应用于58运维告警以更及时、更便捷、更多元的方式通知开发维护人员,并将此功能应用于校招邀约等场景,代替或辅助人工完成一些流程固定的工作,可以有效地节省成本提高人效,如图1.
图1使用场景
  整体流程
  智能语音机器人基于SIP线路实现的呼出场景下,用户电话按键信号捕获需要借助SIP线路实现,整体流程如图2,在代理终端A(用户)与代理终端B(机器人)持续通话的过程中,用户会持续向机器人发送媒体流,机器人在接收媒体流时会判断当前流属于语音流还是按键信号,如果当前流属于语音流则经过语音解码器,如果是按键信号则经过按键信号识别模块,最终产生语音数据/按键信息再做下一步处理。
图2整体流程
  如何传输
  1、按键信号如何传输
  目前所有的电话和传真机按键都采用DTMF信号进行编码和传输,DTMF信号是利用模拟信号对数字符号进行编码,该编码方案共使用8个模拟频率对16个符号进行编码,分为高音群和低音群,所以称为双音多频(Dual-ToneMultiple-Frequency)编码,每个符号由一个高音频率和一个低音频率唯一确定(0~9*#ABCD),如图3.
图3DTMF信号编码
  2、SIP如何检测DTMF信号
  目前传输DTMF信号主要有三个方式:通过通信协议传输(SIPINFO)、遵循RFC2833规范传输、通过RTP的数据内容传输(INBAND)。
  1)SIPINFO
  通过SIP信令INFO包中的signal字段携带DTMF信号传输,这种方式的好处是不影响RTP数据包的传输,但SIP信令和媒体传输是分开的,很容易造成DTMF信号和媒体包不同步。
  2)RFC2833
  通信前使用SDP协议协商telephone-event参数,通过RTP包传输,由RTP包包头的PT(payloadtype)来标示RFC2833的数据包(如图4)。
  3)INBAND
  将DTMF信号不经任何处理直接打成RTP包与普通的RTP语音包混在一起传输,要获得DTMF信号则必须提取RTP数据包进行频谱分析,得到高频和低频的频率,然后查表得到对应的按键。
图4RTP包格式
  如何识别
  综合考虑,遵循RFC2833规范实现基于SIP的电话按键信号识别成本最低,下面将详细介绍下SIP会话如何建立,媒体如何协商、基于会话和媒体协商结果如何实现电话按键信号的解析。
  1、会话建立
  SIP(Session Initiation Protocol)是一种信令协议,用于初始化、管理和终止网络语音和视频会话,如图5,终端代理A为主叫代理,终端代理B为被叫代理,A与B的会话建立流程如下:
  1)A先发送INVITE请求至代理服务器(一般为SIP运营商提供),代理服务器将INVITE请求转发给B;
  2)代理服务器给A返回呼叫处理中的100TRYING应答消息;
  3)B向代理服务器发送呼叫处理中的100TRYING应答消息;
  4)B发现用户振铃后,向代理服务器发送180RINGING振铃消息,代理服务器收到后转发给A;
  5)B发现用户接听后,向代理服务器发送200OK消息表示连接成功,代理服务器将200OK转发给A;
  6)A收到请求后,发送ACK消息进行确认,代理服务器再将ACK消息转发给B;
  7)主被叫用户之间建立通信连接,开始通信;
图5SIP信令交互
  2、媒体协商
  SDP(Session Description Protocol)协议主要用于两个会话实体的媒体协商,描述会话所使用的的流媒体细节,协议格式如图6,以type>=value>形式存储,其中:
  1)c表示连接信息,用于约定IP协议版本、IP地址等信息;
  2)a表示会话信息,用于约定会话使用的编解码器、按键事件(telephone-event)的RTP包包头等信息;
  3)m表示媒体信息,用于约定会话为音频或视频通话、接收媒体流的端口等信息;
图6SDP协议格式
  主被叫通过SDP协议协商媒体信息流程如下:
  1)在会话建立过程中,主叫向被叫发送INVITE请求时携带SDP协议,约定主叫接收媒体流的IP地址及端口、编解码器、按键事件等信息;
  2)在被叫给主叫回复180RINGING振铃消息时携带SDP协议,同样也约定了被叫的相关信息;
  3)主被叫通信建立,按照SDP协议约定的媒体信息进行通信;
  3、按键信号解析
  遵循RFC2833规范,按键DTMF信号使用RTP包发送,通过RTP包头PT(payloadtype)来标示RFC2833数据包,基于以上信息并参考图6中SDP协议约定信息(a=rtpmap:126telephone-event/8000)可将按键解析步骤总结如下:
  1)在接收RTP包时,当包头PT=126时,RTP包体中存储的内容即为按键信息;
  2)由于RTP是基于UDP协议封装的,为了防止丢包,同一个按键信号会产生多个RTP包且包头中Timestamp相同,我们可根据包头的时间戳去重;
  3)至此我们就可以成功解析基于SIP的电话按键信号;
图7按键解析
  58同城TEG技术工程平台群AILab,旨在推动AI技术在58生活服务行业的落地,打造AI中台能力,以提高前台业务的人效和用户体验。AILab目前负责的产品包括:智能客服、语音机器人、智能写稿、AI算法平台、智能语音分析平台、语音识别引擎等,未来将持续加速创新,拓展AI应用。
  58同城TEG技术工程平台群AILab,旨在推动AI技术在58生活服务行业的落地,打造AI中台能力,以提高前台业务的人效和用户体验。AILab目前负责的产品包括:智能客服、语音机器人、智能写稿、AI算法平台、智能语音分析平台、语音识别引擎等,未来将持续加速创新,拓展AI应用。
  【作者介绍】
  李鸿勋,58同城AILab资深后端工程师,2017年加入58同城,目前主要负责智能语音机器人后端架构设计和研发,曾先后从事58同城推荐系统、智能客服系统后端研发工作。

标签:呼和浩特 丽江 双鸭山 扬州 宁夏 台州 普洱 景德镇

巨人网络通讯声明:本文标题《语音机器人SIP通话场景下如何捕获用户电话按键信号》,本文关键词  语音,机器人,SIP,通话,场景,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《语音机器人SIP通话场景下如何捕获用户电话按键信号》相关的同类信息!
  • 本页收集关于语音机器人SIP通话场景下如何捕获用户电话按键信号的相关信息资讯供网民参考!
  • 推荐文章