最近在UC项目上,自己琢磨了一些UC相关的问题,还在比较浅显示的层面,写出来与大家分享,不对之处还请大家帮忙指正。
典型的OCS网络拓扑(局域网内,没有边缘服务器, 除了通讯终端,暂不考虑外部用户):
一般的语音路由方式
手机和固定电话呼叫PC:
拔"接入号"到语音网关,再拔分机号(OC用户的URI线路或者特定应用服务的号码),这时网关根据转换规则把所拔号码送给媒体服务器,媒体服务器再把所拔号码送给OCS,OCS根据号码反向查找到用户的sip uri,依据呼入规则建立了通话连接,双方现在可以通话了。这里的传输是依靠SIP(会话初始协议,Session Initiation Protocol)协议,Media GateWay的作用就是把PSTN或移动网络的信令转换成SIP信令,从而实现了固话网和移动网与IP之间的通信。
上述过程相当于双方之间达成了可以通话的约定,实际上语音(媒体流)的传输走的是RTP(实时传输协议,Real-Time Transport Protocol)协议,起主要作用的是媒体服务器,它负责进行媒体译码。
PC(指的是OCS相关客户端如OC,LIVE MEETING, OUTLOOK等)呼叫手机或固定电话:
通讯过程与上面基本是一样的,只是顺序正好相反。
PC到PC:
OCS带有基本的主意组件,所以在没有媒体服务器的情况下也可以实现pc-pc的语音通话。媒体服务器正常工作的时候,pc-pc是否经过媒体服务器传输语音这个我也不确定。
OC呼叫speech server:
在需要IVR导航的时候,就会需要speech server。
要实现OC到speech server的呼叫,首先需要在OCS前端属性中为speech server建立一个出站连接的静态路由(可以是AD域的一个子域如ivr.uc.com)(详细设置可以参考Michael Dunn的blog:http://blogs.msdn.com/midunn/)。假设给speech server的某个IVR应用分配的号码是6666,这样在OC里拔[email protected],就可以呼叫到speech server了。
Speech server 呼叫OC:
要实现speech server对oc的呼叫,首先要正确配置speech server的sip peer和trusted sip peer。Sip peer可以简单理解为处理speech server对外呼叫的设备,如语音网关media gateway或mediation server等。
在上面的网络拓扑中,要使speech server呼叫oc,必须把mediation server设置为speech server 的sip peer,然后把它加为trusted sip peer并允许outbound calls。这样,speech server发起呼叫后,先被送mediation server,mediation server发给OCS处理后建立通话。
Speech server 呼叫手机或固定电话:
与呼叫OC基本相同,区别是要把media gateway设为trusted sip peer,这样呼叫就送给gateway处理。
需要说明的是,在上面的网络拓扑中speech server无法同时呼叫pc 和手机或固定电话。因为通话的方式不同。Speech server呼叫pc是ip-ip通话,speech server 呼叫手机或固定电话是ip-移动网或ip-pstn的通话。现在一般的语音网关只能处理后者而不能进行ip到ip的转换。如果要同时实现,需要另外的中继设备。