- 1、本文档共29页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
vocal系统呼叫流程
VOCAL系统学习交流 Vocal系统简介 Vocal(vovida Open Communication Application System)是由Cisco公司提供的基于面向对象技术的开源VoIP系统 Vocal提供了一个完整的SIP通讯系统,包括RFC3261中规定的SIP协议栈,VoIP系统中的各个服务器(ReDirect Server 、Feature Server 、 Provision Server 、Marshal Proxy Server等)以及H.323与SIP转换网关。 Vocal系统是目前功能最完善,使用最多的开源SIP通讯系统。 SIP协议简介 SIP(Session Initiation Protocol)会话初始化协议是由IETF制定的基于IP的应用层控制协议,主要用于会话管理,目前必威体育精装版的标准是RFC3261,通过SIP,人们可以方便的在网络上创建、修改或终止由一个或多个参与者参与的会话。任何具有会话管理特征的应用,比如电话、会议、即时消息、游戏等,都可以使用SIP对会话进行管理。 SIP消息是基于文本的,因而易于读取和调试。新服务的编程更加简单,对于设计人员来说更加直观。 Vocal系统的组成 GUI——(graphical user interface)图形用户界面,基于web的,用于技术员设置系统,管理员设置用户,监控系统性能 Servers——服务器,各个服务器完成其相应的功能。 Gateways——网关,提供网络间的切入点,并为基于SIP的网络和其他网络做转换。分为Residential Gateway 和Trucking Gateway,RG将模拟信号转换成IP数据报,允许模拟电话设备拨打和接受基于SIP的呼叫;TG允许基于sip的网络和PSTN终端进行呼叫,能够将PSTN中的信号与SIP消息进行转换。 一次完整的呼叫过程 一、设备的初始化 二、开始一个呼叫(stateIdle) 三、拨号(stateDialing) 四、连接(stateTrying) 五、通话(stateInCall) 设备初始化 完成一次呼叫的过程 一、设备的初始化 运行ua主程序,创建uabuilder和heartlessproxy实体,uabuilder类负责构建各种SIP消息事件,并且包含了ua的注册和各种状态机的初始化和实例化过程;heartlessproxy类负责创建容纳呼叫的“容器”和SIP消息的堆栈,以及workthread和sipthread。随后创建一个用户代理useragent,通过用户代理的run方法完成系统的初始化,该run方法主要是使heartlessproxy运行,音频设备初始化(devicethread::run检测键键盘事件Rtpthread::run接受和发送媒体流),featurethread::run创建检测线程,loadgenthread::run取得用户列表; heartlessproxy的run方法运行调用sipthread和workthread的run方法,workthread-run方法调用uabuilder-process方法,主要完成了四项工作:对队列中的SIP消息进行处理(processsipEvent),处理本地的设备事件(processuaDeviceEvent),判断是线程参数(processUaDigitEvent),处理超时事件(processUaTimerEvent);sipthread-run方法完成以下工作:接受发送的SIP消息,放入相关队列中(sipRcv(mySipStack-receive(1000))这个方法利用SipTransceive-receive方法接受sip消息);。 开始一个呼叫 完成一次呼叫的过程 二、开始一个呼叫 系统进入空闲状态时,devicethread::run方法执行,调用soundcarddevice::hardwaremain(0)检测键盘事件,如果此时摘机,该函数则得到DeviceEventHookUp键盘事件,同时在uabuilder的Process方法中的ProcessUaDeviceEvent解释该事件,让系统进入到StateIdle状态。这样就创创建了StateIdle状态。StateIdle调用自身的构造函数,执行addOperator()方法,分别将OpStartCall,OpRing,OpOnHook操作符加入到uaCallInfo队列中。同时在uaBuilder的Process方法中解释完DeviceEventHookUp事件后,还调用uaBuilder的sentEvent方法,把uaCallInfo队列中的消息传递到状态机(uaSt
文档评论(0)