发明内容
本发明提供了一种PC软件与SIP UA绑定及控制的方法,旨在为实现一种引进利用个人电脑与SIP UA的结合使用来提供一种更为灵活,简单方便的SIP产品绑定及控制的目的。
为达到所述的目的本发明的技术方案是:
一种PC软件与SIP UA绑定及控制的方法,系统包括:
SIP UA,指所有基于SIP协议标准实现通话功能的综合接入设备;
SIP服务器,指具有标准SIP服务器功能和提供SIP服务器控制的接口功能的硬件服务器;
PC软件,安装在个人电脑终端上提供用户人机操作界面,并使用SIP服务器提供的控制接口,实现对SIP终端的绑定及控制的一个软件程序;
所述的SIP UA,SIP服务器和个人电脑通过以太网通信连接;该绑定及控制的方法包括:
SIP UA与SIP服务器间通过标准SIP协议进行通信并预先在SIP服务器内建立标识至少一个SIP UA的SIP帐号通讯录;
该SIP服务器与该PC软件之间通过自定义专用控制协议进行通信,其步骤为:
步骤一:所述的电脑终端通过PC软件使用所述的专用控制协议向SIP服务器发送登录命令;
步骤二:SIP服务器通过鉴权后使用该专用控制协议向电脑终端上PC软件发送登录应答命令,代表成功的应答码为二进制数字0;
步骤三:对SIP UA进行绑定;用户通过电脑终端使用所述的专用控制协议到SIP服务器请求绑定,SIP服务器把连接信息与该SIP UA信息进行绑定并使用该专用控制协议向电脑终端发送绑定结果通知,代表成功的应答码为二进制数字0;
步骤四:用户通过电脑终端对绑定的SIP UA使用所述的专用控制协议进行控制SIP UA进行呼叫;控制SIP UA挂断电话;控制SIP UA转接电话;控制SIPUA实现会议的操作;
该专用控制协议为使用TCP的传输控制协议,所述的专用控制协议的命令内容包括:登录及登录应答;请求/解除绑定操作及请求绑定操作应答;呼出电话及呼出电话应答;挂断电话及挂断电话应答;转接电话及转接电话应答;实现会议及实现会议应答;呼叫状态通知和绑定结果通知。
该步骤三对SIP UA进行绑定的具体过程是:
步骤21,用户在电脑终端上通过PC软件向SIP服务器发送请求绑定操作命令;
步骤22,所述的SIP服务器收到请求绑定操作命令后,应答请求绑定操作应答命令,并带上参数,该参数为后续被绑定的该SIP UA需要呼叫的SIP帐号;
步骤23,用户摘机操作需要被绑定的SIP UA终端,呼叫SIP服务器应答参数中的SIP帐号;
步骤24、步骤25、步骤26,按RFC3665中定义依次为标准SIP协议及呼叫建立流程;被绑定的SIP UA向SIP服务器发起呼叫,SIP服务器自动应答,并带上语音服务器的SDP会话描述协议的媒体信息;
步骤27,该语音服务器向被绑定的SIP UA播放提示语音,提示绑定结果是成功还是失败;
步骤28、29,标准SIP协议及流程,语音播放结束后,SIP服务器控制释放刚才的连接;
步骤210,SIP服务器向电脑终端上的PC软件发送绑定结果通知命令。
该步骤四中控制SIP UA进行呼叫的具体过程是:
步骤31,用户在电脑终端上通过PC软件向SIP服务器发送被叫帐号内容为对方SIP帐号的呼出电话命令;具体操作可以为直接键盘输入对方SIP帐号,也可以从通信录中选取对方SIP帐号呼出;
步骤32,SIP服务器应答呼出电话应答命令;若结果为0表示接受,传送带上后续呼叫控制的呼叫连接标识信息的呼叫连接标识CallID参数;
步骤33、步骤34,SIP服务器使用标准SIP协议及流程操作连接与电脑终端绑定的SIP UA终端,以下简称UA_A;
步骤35,UA_A振铃后用户摘机操作;
步骤36、步骤37,SIP服务器使用标准SIP协议及流程操作UA_A的应答连接;
步骤38、步骤39,UA_A与SIP服务器成功建立连接后,SIP服务器利用携带UA_A的SDP信息再使用标准SIP协议及流程与被叫终端,以下简称UA_B建 立连接;
步骤310,UA_B用户摘机操作;
步骤311、步骤312,SIP服务器获得UA_B的SDP信息;
步骤313、步骤314,SIP服务器应答呼叫状态通知命令给电脑终端的PC软件;
步骤315至步骤317,UA_B摘机后,SIP服务器利用获得的UA_B的SDP信息修改已绑定的UA_A媒体连接信息为被叫终端UA_B;
步骤318,使UA_A和UA_B双方呼叫建立完成,开始通话。
该步骤四中控制SIP UA挂断电话的具体过程是:
步骤41,在通话状态下;控制SIP UA挂断电话的前提是被绑定的SIP UA已经与其它SIP UA成功建立了呼叫,PC软件并已得到CallID信息;即与电脑终端绑定的SIP UA,以下简称UA_A和与该UA_A正在通话的SIP UA,以下简称UA_B成通话状态;
步骤42,用户在电脑终端上通过PC软件向SIP服务器发送携带呼叫连接标识信息的挂断电话命令;
步骤43,SIP服务器使用挂断电话应答命令应答电脑终端的PC软件,代表应答成功的应答响应码为二进制的数字0;
步骤44、步骤45,SIP服务器使用标准SIP协议及流程释放与UA_A之间的连接;
步骤46、步骤47,SIP服务器使用标准SIP协议及流程释放与UA_B之间的连接。
该步骤四中控制SIP UA转接电话的具体过程是:
步骤51,与电脑终端绑定的SIP UA,以下简称UA_A和与该UA_A正在通话的SIP UA,以下简称UA_B成通话状态;转接呼叫致使UA_B与另一SIP UA被叫终端,以下简称UA_C建立连接通话;
步骤52,用户在电脑终端的PC软件上向SIP服务器发送携带转移帐号为UA_C的SIP帐号的转接电话命令;
步骤53,SIP服务器使用转接电话应答命令应答电脑终端的PC软件,代表应答成功的应答响应码为二进制的数字0;
步骤54、步骤55,SIP服务器利用携带UA_B的SDP信息使用标准SIP协议及流程与UA_C建立连接;
步骤56,UA_C用户摘机操作;
步骤57、步骤58,SIP服务器通过标准SIP协议及流程获得UA_C的SDP信息;
步骤59、步骤510、步骤511,UA_C摘机后,SIP服务器修改UA_B的呼叫连接信息为UA_C,即SIP服务器利用获得的UA_C的SDP信息修改已绑定的UA_B媒体连接信息为被叫终端UA_C;
步骤512,成功后UA_B与UA_C之间已经建立双向连接信息,即UA_B已经成功转接到UA_C上,UA_B与UA_C开始通话;
步骤513、步骤514,SIP服务器利用标准SIP协议及流程释放与UA_A之间连接。
该步骤四中控制SIP UA实现会议操作的具体过程是:
(1),已绑定在电脑终端PC软件上的SIP UA使用专用控制协议向SIP服务器发送包含至少一个与会成员SIP帐号信息的实现会议命令,该实现会议命中包含会议主席的S IP帐号,成员人数信息,全部参与会议的与会成员的SIP帐号;
(2),SIP服务器使用实现会议应答命令应答电脑终端的PC软件,该会议应答命令包含资源信息,该资源信息包括会议室SIP帐号的会议室混音SDP信息;
(3),SIP服务器使用标准SIP协议流程携带会议室混音SDP信息分别按顺序与所述的至少一个与会成员的SIP帐号一一建立呼叫;
(4),当全部与会成员用户都成功建立连接后,其与会成员方的RTP媒体流会在会议室混音模块中混音,再通过减去原方语音的算法把混音发回到各个SIP UA上,从而实现会议功能。
采用本发明的技术方案由于在原SIP UA和SIP服务器连接的基础上利用个人电脑终端通过运行PC软件及定义的专用控制协议绑定SIP UA及控制SIP UA。用户通过电脑终端对绑定的SIP UA使用所述的专用控制协议进行控制SIP UA进行呼叫;控制SIP UA挂断电话;控制SIP UA转接电话;控制SIP UA实现会议的操作,由于引进了电脑终端,解决了传统SIP UA终端一直存在的无法建立通信录及按用户需要自由进行呼叫控制和组合通话等功能,在使用上简易方便,更为灵活。SIP UA与个人电脑的结合使用,充分发挥了各自的特长作用,给用户带来很大的方便性。
具体实施方式
下面结合附图对本发明的技术方案详细说明如下。
如图1所示为本发明系统的结构示意图,一种PC软件与SIP UA绑定及控制的方法,系统包括:
SIP UA,指所有基于SIP协议标准实现通话功能的综合接入设备;其可以是:基于SIP协议的IP话机、模拟电话+基于SIP协议的IAD(Integrated Access Device是一种综合接入设备,其上行端口可以直接接入IP网络,下行端口则可连接多个普通话机,作为下一代软交换用户接入层设备,将用户的数据和语音等应用接入到分组交换网络中,在分组交换网络中完成相应功能。IAD提供传统 话音业务,具有数据与语音处理特性,即对数据包转发,对模拟语音进行处理并具有媒体流传送功能,支持软交换网络现有的及以后的新业务。)、数字电话+基于SIP协议的数字中继网关,这里的SIP终端均为市场上能买到的通用型设备。
SIP服务器,指具有标准SIP服务器功能和提供SIP服务器控制的接口功能的硬件服务器;具体说是硬件设备+程序,其中程序由两部分组成,其一是标准SIP服务器功能(包括对SIP终端的注册管理、呼叫管理等等),其二是提供SIP服务器控制的接口功能。
PC软件,安装在个人电脑终端上提供用户人机操作界面,并使用SIP服务器提供的控制接口,实现对SIP终端的绑定及控制的一个软件程序;
所述的SIP UA,SIP服务器和个人电脑通过以太网通信连接;该绑定及控制的方法包括:
SIP UA与SIP服务器间通过标准SIP协议进行通信并预先在SIP服务器内建立标识至少一个SIP UA的SIP帐号通讯录;
专用控制协议为使用TCP(Transmission Control Protocol传输控制协议,TCP是一种面向连接的、可靠的、基于字节流的运输层通信协议,由IETF的RFC793说明。)的传输层协议,所述的专用控制协议的命令内容包括:登录及登录应答;请求/解除绑定操作及请求绑定操作应答;呼出电话及呼出电话应答;挂断电话及挂断电话应答;转接电话及转接电话应答;实现会议及实现会议应答;呼叫状态通知和绑定结果通知。SIP服务器作为TCP服务端,PC软件作为TCP客户端。去除帧头帧尾格式,具体协议消息格式由如下命令表(每个具体消息内按表格字节从上到下顺序排列)分别定义:
登录命令表(PC软件→SIP服务器)
登陆应答命令表(PC软件←SIP服务器)
长度(Byte) |
解释 |
值及描述 |
0 |
包类型 |
1代表应答 |
2 |
包序号 |
请求的包序号 |
1 |
命令类型 |
00 |
1 |
命令码 |
01 |
1 |
响应码 |
0:成功1:鉴权失败 |
请求/解除绑定操作命令表(PC软件→SIP服务器)
请求绑定操作应答命令表(PC软件←SIP服务器)
呼出电话命令表(PC软件→SIP服务器)
长度(Byte) |
定义 |
值及描述 |
1 |
包类型 |
0代表请求命令 |
2 |
包序号 |
流水号 |
1 |
命令类型 |
01 |
1 |
命令码 |
02 |
48 |
用户ID |
48Byte ASCII编码,’\0’结束,SIP帐号 |
48 |
被叫帐号 |
48Byte ASCII编码,’\0’结束,SIP帐号 |
呼出电话应答命令表(PC软件←SIP服务器)
挂断电话命令表(PC软件→SIP服务器)
长度(Byte) |
定义 |
值及描述 |
1 |
包类型 |
0代表请求命令 |
2 |
包序号 |
流水号 |
1 |
命令类型 |
01 |
1 |
命令码 |
03 |
48 |
用户ID |
48Byte ASCII编码,’\0’结束,SIP帐号 |
4 |
CallID |
呼叫连接标识 |
挂断电话应答命令表(PC软件←SIP服务器)
长度(Byte) |
解释 |
值及描述 |
1 |
包类型 |
1代表应答 |
2 |
包序号 |
请求的包序号 |
1 |
命令类型 |
01 |
1 |
命令码 |
03 |
1 |
响应码 |
0:成功其它:失败原因值 |
转接电话命令表(PC软件→SIP服务器)
转接电话应答命令表(PC软件←SIP服务器)
长度(Byte) |
解释 |
值及描述 |
1 |
包类型 |
1代表应答 |
2 |
包序号 |
请求的包序号 |
1 |
命令类型 |
01 |
1 |
命令码 |
04 |
1 |
响应码 |
0:成功其它:失败原因值 |
实现会议命令表(PC软件→SIP服务器)
实现会议应答命令表(PC软件←SIP服务器)
长度(Byte) |
解释 |
值及描述 |
1 |
包类型 |
1代表应答 |
2 |
包序号 |
请求的包序号 |
1 |
命令类型 |
01 |
1 |
命令码 |
05 |
48 |
会议室ID |
ASCII编码,’\0’结束,SIP帐号 |
呼叫状态通知命令表(PC软件←SIP服务器)
绑定结果通知命令表(PC软件←SIP服务器)
该SIP服务器与该PC软件之间通过自定义所述的专用控制协议进行通信,其步骤为(如图7所示):
步骤一:所述的电脑终端通过PC软件使用所述的专用控制协议向SIP服务器发送登录命令;
步骤二:SIP服务器通过鉴权后使用该专用控制协议向电脑终端上PC软件发送登录应答命令,代表成功的应答码为二进制数字0;
步骤三:对SIP UA进行绑定;用户通过电脑终端使用所述的专用控制协议到SIP服务器请求绑定,SIP服务器把连接信息与该SIP UA信息进行绑定并使用该专用控制协议向电脑终端发送绑定结果通知,代表成功的应答码为二进制数字0;
步骤四:用户通过电脑终端对绑定的SIP UA使用所述的专用控制协议进行控制SIP UA进行呼叫;控制SIP UA挂断电话;控制SIP UA转接电话;控制SIPUA实现会议的操作。
以下所描述内容如果涉及到PC软件操作的均指PC软件已经成功登录到SIP服务器。
如图2所示为本发明PC软件绑定SIP UA过程的处理流程图,如上步骤三对SIP UA进行绑定的具体过程参照图2说明如下:
步骤21,用户在电脑终端上通过PC软件向SIP服务器发送请求绑定操作命令;
步骤22,所述的SIP服务器收到请求绑定操作命令后,应答请求绑定操作应答命令,并带上参数,该参数为后续被绑定的该SIP UA需要呼叫的SIP帐号;
步骤23,用户摘机操作需要被绑定的SIP UA终端,呼叫SIP服务器应答参数中的SIP帐号;
步骤24、步骤25、步骤26,按RFC3665中定义依次为标准SIP协议及呼叫 建立流程;被绑定的SIP UA向SIP服务器发起呼叫,SIP服务器自动应答,并带上语音服务器的SDP会话描述协议的媒体信息;
SDP是Session Description Protocol-会话描述协议的缩写,是描述流媒体初始化参数的格式,由IETF作为RFC 4566颁布,流媒体是指在传输过程中看到或听到的内容。
步骤27,该语音服务器向被绑定的SIP UA播放提示语音,使用RTP(Real-timeTransportProt实时传输协议,本系统中媒体传输均以此协议传输)协议实现,提示绑定结果是成功还是失败;
步骤28、步骤29,标准SIP协议及流程,语音播放结束后,SIP服务器控制释放刚才的连接;
步骤210,SIP服务器向电脑终端上的PC软件发送绑定结果通知命令。
如图3所示为本发明PC软件控制SIP UA进行呼叫的处理流程图,如上步骤四中控制SIP UA进行呼叫的具体过程参照图3描述如下:
步骤31,用户在电脑终端上通过PC软件向SIP服务器发送被叫帐号内容为对方SIP帐号的呼出电话命令;具体操作可以为直接键盘输入对方SIP帐号,也可以从通信录中选取对方SIP帐号呼出;
步骤32,SIP服务器应答呼出电话应答命令;若结果为0表示接受,传送带上后续呼叫控制的呼叫连接标识信息的呼叫连接标识CallID参数;即SIP服务器应答“呼出电话应答”命令,若结果为接受,则CallID带上后续呼叫控制的呼叫连接标识信息;
步骤33、步骤34,SIP服务器使用标准SIP协议及流程操作连接与电脑终端绑定的SIP UA终端,以下简称UA_A;
步骤35,UA_A振铃后用户摘机操作;
步骤36、步骤37,SIP服务器使用标准SIP协议及流程操作UA_A的应答连接;
步骤38、步骤39,UA_A与SIP服务器成功建立连接后,SIP服务器利用携带UA_A的SDP信息再使用标准SIP协议及流程与被叫终端,以下简称UA_B建 立连接;
步骤310,UA_B用户摘机操作;
步骤311、步骤312,SIP服务器获得UA_B的SDP信息;
步骤313、步骤314,SIP服务器应答呼叫状态通知命令给电脑终端的PC软件;
步骤315至步骤317,UA_B摘机后,SIP服务器利用获得的UA_B的SDP信息修改已绑定的UA_A媒体连接信息为被叫终端UA_B;
步骤318,使UA_A和UA_B双方呼叫建立完成,开始通话。
图4为本发明PC软件控制SIP UA挂断电话的处理流程图,所述步骤四中控制SIP UA挂断电话的具体过程如图4描述如下:
步骤41,在通话状态下;控制SIP UA挂断电话的前提是被绑定的SIP UA已经与其它SIP UA成功建立了呼叫,PC软件并已得到CallID信息;即与电脑终端绑定的SIP UA,以下简称UA_A和与该UA_A正在通话的SIP UA,以下简称UA_B成通话状态;
步骤42,用户在电脑终端上通过PC软件向SIP服务器发送携带呼叫连接标识信息的挂断电话命令;
步骤43,SIP服务器使用挂断电话应答命令应答电脑终端的PC软件,代表应答成功的应答响应码为二进制的数字0;
步骤44、步骤45,SIP服务器使用标准SIP协议及流程释放与UA_A之间的连接;
步骤46、步骤47,SIP服务器使用标准SIP协议及流程释放与UA_B之间的连接。
图5为本发明PC软件控制SIP UA转接电话的处理流程图,所述步骤四中控制SIP UA转接电话的具体过程参照图5描述如下:
在PC软件成功绑定SIP UA,并被绑定的SIP UA有连接信息时(如经过图3示例的进行呼叫成功后,“呼出电话应答”命令的CallID字段信息),此时PC软件可以控制被绑定的SIP UA转接电话
步骤51,与电脑终端绑定的SIP UA,以下简称UA_A和与该UA_A正在通话的SIP UA,以下简称UA_B成通话状态;转接呼叫致使UA_B与另一SIP UA被叫终端,以下简称UA_C建立连接通话;
步骤52,用户在电脑终端的PC软件上向SIP服务器发送携带转移帐号为UA_C的SIP帐号的转接电话命令;
步骤53,SIP服务器使用转接电话应答命令应答电脑终端的PC软件,代表应答成功的应答响应码为二进制的数字0;
步骤54、步骤55,SIP服务器利用携带UA_B的SDP信息使用标准SIP协议及流程与UA_C建立连接;
步骤56,UA_C用户摘机操作;
步骤57、步骤58,SIP服务器通过标准SIP协议及流程获得UA_C的SDP信息;
步骤59、步骤510、步骤511,UA_C摘机后,SIP服务器修改UA_B的呼叫连接信息为UA_C,即SIP服务器利用获得的UA_C的SDP信息修改已绑定的UA_B媒体连接信息为被叫终端UA_C;
步骤512,成功后UA_B与UA_C之间已经建立双向连接信息,即UA_B已经成功转接到UA_C上,UA_B与UA_C开始通话;
步骤513、步骤514,SIP服务器利用标准SIP协议及流程释放与UA_A之间连接。
该步骤四中控制SIP UA实现会议操作的具体过程是:
(1),已绑定在电脑终端PC软件上的SIP UA使用专用控制协议向SIP服务器发送包含至少一个与会成员SIP帐号信息的实现会议命令,该实现会议命中包含会议主席的SIP帐号,成员人数信息,全部参与会议的与会成员的SIP帐号;
(2),SIP服务器使用实现会议应答命令应答电脑终端的PC软件,该会议应答命令包含资源信息,该资源信息包括会议室SIP帐号的会议室混音SDP信息;
(3),SIP服务器使用标准SIP协议流程携带会议室混音SDP信息分别按顺序与所述的至少一个与会成员的SIP帐号一一建立呼叫;
(4),当全部与会成员用户都成功建立连接后,其与会成员方的RTP媒体流会在会议室混音模块中混音,再通过减去原方语音的算法把混音发回到各个SIP UA上,从而实现会议功能。
图6为本发明PC软件控制SIP UA实现会议的处理流程图,在PC软件成功绑定SIP UA后,此时PC软件可以控制被绑定的SIP UA实现会议,其过程如图6所示为具体以实现3人会议的实施例说明如下:
步骤61:用户在PC软件上操作,让UA_A、UA_B、UA_C进行会议。此时PC软件向SIP服务器发送“实现会议”命令,协议中会议主席为UA_A的SIP帐号,成员人数为3,成员1ID为UA_A的SIP帐号,成员2ID为UA_B的SIP帐号,成员3ID为UA_C的SIP帐号;
步骤62:SIP服务器收到“实现会议”请求命令后,通过内部会议申请流程得到会议室的资源信息(此过程视不同系统其流程并不统一,本例子中会议服务器内嵌在SIP服务器中,所以资源信息为直接获取,该资源信息获取途径不影响本发明描述的后续流程),资源信息包括会议室混音SDP信息;并通过“实现会议应答”命令应答PC软件。协议中“会议室ID”字段内容为会议室的SIP帐号;
步骤63-步骤617:SIP服务使用标准SIP协议及流程分别与UA_A、UA_B、UA_C建立连接,其携带的SDP信息均为会议室混音SDP信息;当UA_A、UA_B、UA_C都成功建立连接后,其三方的RTP媒体流会在会议室混音模块中混音,再通过减去原方语音的算法把混音发回到各个SIP UA上,从而实现三方会议功能。
原方语音的算法:混音的过程就是把所有通路的语音混起来,要把这个语音发回给每个人时需要把该人的一路通话语音或会议中的一路通话语音(称为原方语音)减去,所述减去的算法称原方语音的算法,在本发明里使用的是现有技术的减去的算法。