今天又迷迷糊糊的看了一天的SIP的代码,还是在logic里瞎转,转来转去就开始迷糊了。看似好像今天没有任何收获,但是现在一总结,才发现还是有点收获的。最起码已经知道了sip库,逻辑层logic与前端页面之间是怎么通信。
本地:
第一,如果是从前端页面发过来的信息,信息格式中都包含有CMD字段。
第二,逻辑层接收到前端页面发过来的信息后,进行解析,然后通过将解析出来的信息发入一个结构体并调用sip库提供的接口,将这个结构体传给sip库。
第三,sip库根据sip协议组织一系列信息,最后将信息发给服务器端,然后在由服务器转发给对方,这里sip库没有做任何逻辑上的判断与检查所拨打的号码等信息是否正确,它只是将从logic传过来的信息进行加工,使之符合sip协议的标准。
以下是自己的猜想
对方:
第一,sip库从服务器上收到sip消息之后,将信息进行分解,然后分别将信息发给服务器以通知另一方并将有用的关系到logic的信息又传给logic。
第二,logic收到从sip库传过来的信息之后,进行一系列的处理之后,将与页面显示相关的信息又发给前端页面,以让前端页面在界面上显示正确的信息。sip库发给logic的信息中都有NOTIFY的字段。
第三,前端页面在收到相关的信息之后,进行处理,然后进行页面的更新,如:显示广告,正在拨号等。
前端页面与logic是通过udp来进行通信的,而logic与sip库是通过传参数来进行通信。注意:并不是从前端页面发给logic的信息都需要logic发给sip库,只有在与拨打电话与对端进行通信相关的信息,logic才会发给sip库,其它的logic只是将前端页面进行逻辑上的页面更新。
阅读(1366) | 评论(0) | 转发(0) |