JTAPI的应用范围是在於电话通讯与电脑计算的结合,由於属於特殊的应用 域,所以在进入 JTAPI之前,我们必须对JTAPI的电话通讯运作模式有深一层的认识(如图一)。
![]() |
事实上在Call Model中包含了大半的JTAPI核心物件,而这些物件就存在於core package,我们进一步来看 Call Model的物件组成:
- Provider: Provider的角色就相当於一个想像中的「中华电信公司」,也就是厂商 Telephony系统的 implementation,所以JTAPI的应用程式是透过provider 来看整个Telephony 的系统。
- Call:Call即代表一个telephone call,记录了 Provider与电话连线间的资讯(如 active、idle与 invalid states)。一个Call可以包含一个至多个 Connection,例如当两方在通话时,一个Call就只有两个connection,而若是一个电话会议,则一个Call就包含了三个以上的 Connection。
- Address:简单的说,Address就是电话号码或是IP,可以说是一个telephone call逻辑上的 endpoint,而且 Address与 telephone call的 Connection是一对一的关系。
- Connection: Connection是一个以逻辑上的观点来描述Call与某一 Address关系的物件,其中的states包含如connected与 disconnected等。
- Terminal: Terminal就是实体上的endpoint,我们可以把Terminal 想像成电话,而 Address是电话号码,所以,Terminal 与Address之间可以是多对多的关系,如一机多线、多机一线的电话。
- TerminalConnction :相对於 Connection, TerminalConnectio n是以一个实体上的观点来描述 Connection与某一 Terminal关系的物件,例如 TerminalConnectio n以states(active 、ringing及 dropped等)来描述实体上某个 Terminal在一个 Connection上的状态。
所以集合以上所述物件的观念,就形成了Call Model。在此我们举一个例子来说明:
小明(TEL/Address :8825252)想要打电话给某公司的大华(TEL/Address: 3939889,一线多机的电话),小明於是拿起电话拨号(小明connection state:CONNECTED),透过中华电信的系统(Provider)连接上大华所处公司的电话(大华 connection state:CONNECTED),而且公司的电话响了(大华 TerminalConnectio n state:RINGRING ),於是大华接起了电话(大华 TerminalConnectio n state:ACTIVE),但却不小心按到了切断键(大华 TerminalConnectio n state:DROPPED ; 双方的Connection state:DISCONNECTE D)。
在这个例子之中,我们看到了部份 Call Model物件的运作,但应用程式的实作逻辑并非全如上述的例子一样,在实作顺序与 states的描述上会更复杂。