取消
显示结果 
搜索替代 
您的意思是: 
cancel
2133
查看次数
0
有帮助
0
评论
tao.li
Level 3
Level 3
Connection:
Connection对象的状态反映Address对象和Call对象之间的关系。Connection状态的变化是为了告诉应用程序可以调用Connection对象上相关的方法和动作,来获得需要的信息。
下面这个图表描述了Connection的不同状态,以及不同状态之间的相互转换关系。很有用哦~~~~

Connection State Transitions [JTAPI1.2文档图]
IDLE state:空闲状态,稍纵即逝的状态!所有新创建的Connection对象的初始状态。
INPROGRESS state :一个呼叫过程已经在到达目的终点状态。
ALERTING state:被叫端响铃。
CONNECTED state :接通电话。开始说话。
DISCONNECTED state :断开通话。挂机。不作为呼叫过程中的一部分存在。没有核心方法验证Connections为这种状态。
FAILED state:呼叫失败。例如:对方正在通话中,这是Connection关联的被叫端为FAILED状态。
UNKNOWN state :未知状态。不可预知的状态。Provider对象无法判断当前Connection的状态就为UNKNOWN。Connection可能随时变为UNKNOWN状态,除了DISCONNECTED和FAILED状态。
TerminalConnection:
描述了Terminal对象和Connection对象之间的关系。在以前提到的呼叫模型中TermianlConnection对象是将Terminal终端对象连接到Call呼叫过程当中。和Connection一样,TerminalConnection也有自己的不同状态。

TerminalConnection state transitions [JTAPI1.2文档图]
IDLE state:同Connection的IDLE状态。初始,必先创建的状态。
ACTIVE state:意味着Terminal对象已经连接到呼叫过程中。例如,拿起话机,此时为ACTIVE状态。
RINGING state:Terminal来电响铃......
DROPPED state:从呼叫过程中挂机的状态。是所有TerminalConnection的最终状态(Game Over)。
PASSIVE state :被动的状态。不活跃的状态(英文不好,不太理解)。Terminal对象已经在呼叫过程中使用。在PASSIVE状态时提供了多种方法将Terminal对象加入到呼叫过程中。
UNKNOWN state :同Connection的UNKNOWN状态。
这两是2个非常重要的核心包对象,对于电话的控制就看它们俩的了!!!!
介绍一个完整的电话呼叫过程。
前面的文章中主要说的是JTAPI呼叫模型的主要对象,核心包中的方法以及Connection和TerminalConnection的不同状态。这篇中通过电话呼叫中的一般场景,把前面的内容连贯起来。对呼叫模型的全部状态有一个连贯的认识。
下面的图表是一个电话呼叫时序图。x轴只表示一个时间顺序,并不代表实际时间。这个图表给出了应用程序调用Call.connect()方法后的主要对象状态的改变。

Call Model timing diagram [JTAPI1.2文档图]
图中描述的是一个简单电话呼叫中的双方。由Call对象的竖线将图表被分为2部分:左侧为电话呼叫中源终端;右侧为电话呼叫中的目标终端。
左半部分:中有代表Terminal和Address对象的2个竖线(Cal.connect()方法中的参数).水平方向则有代表Connection和TerminalConnection对象的2条水平线。注意:靠近内侧的为Connection对象,外侧为TerminalConnection对象。
右半部分:和左侧相似,只不过右侧有2个Terminal对象,都关联到一个Address对象上(以前介绍过1个Address可以关联多个Terminal对象)。因为有2个Terminal对象,所以就有2个TerminalConnection对象。
这个图表说明了:随着time的变化,Connection和TerminalConnection的状态是在不断变化的。当水平方向出现一条新的Connection或TerminalConnection说明它已经被创建了。
在这个电话呼叫过程中,当2个Connection对象被创建后状态为IDLE。当目标端Connection对象状态变为INPROGRESS时,源端Connection变为CONNECTED状态。这时,在目标Terminal上创建了个TerminalConnection对象状态为ACTIVE.当源端Connection变为ALERTING状态,目标段的2个TerminalConnection变为RINGING状态。
在此时,当一个人接起了电话,则目标端这个Terminal电话终端上的TerminalConnection变为ACTIVE状态,则目标端的另一个TerminalConnection变为PASSIVE状态。与此同时,源端Connection状态为CONNECTED。当通话结束后,源端和目标端的Connection对象变为DISCONNECTED状态,所有的TerminalConnection变为DROPPED状态。
应用程序可以监视Connection对象的变化。通过监听TerminalConnection对象的改变,我们可以知道实际电话终端在进行怎样的操作。通过这个图表我们可以对电话呼叫过程中的状态有了更进一步的了解。
ps:文章中的内容都来自JTAPI1.2文档,里面加了一点我的理解。有兴趣的朋友大家一起研究!
入门指南

使用上面的搜索栏输入关键字、短语或问题,搜索问题的答案。

我们希望您在这里的旅程尽可能顺利,因此这里有一些链接可以帮助您快速熟悉思科社区:









快捷链接