CN1226885C - 无线电通信装置和其中建立双模式呼叫的方法 - Google Patents

无线电通信装置和其中建立双模式呼叫的方法 Download PDF

Info

Publication number
CN1226885C
CN1226885C CNB99120719XA CN99120719A CN1226885C CN 1226885 C CN1226885 C CN 1226885C CN B99120719X A CNB99120719X A CN B99120719XA CN 99120719 A CN99120719 A CN 99120719A CN 1226885 C CN1226885 C CN 1226885C
Authority
CN
China
Prior art keywords
terminal
call
calling
program
jtapi
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB99120719XA
Other languages
English (en)
Other versions
CN1249640A (zh
Inventor
詹姆斯·E·马蒂斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Motorola Mobility LLC
Google Technology Holdings LLC
Original Assignee
Motorola Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Motorola Inc filed Critical Motorola Inc
Publication of CN1249640A publication Critical patent/CN1249640A/zh
Application granted granted Critical
Publication of CN1226885C publication Critical patent/CN1226885C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/247Telephone sets including user guidance or feature selection means facilitating their use
    • H04M1/2473Telephone terminals interfacing a personal computer, e.g. using an API (Application Programming Interface)
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B7/00Radio transmission systems, i.e. using radiation field
    • H04B7/24Radio transmission systems, i.e. using radiation field for communication between two or more posts
    • H04B7/26Radio transmission systems, i.e. using radiation field for communication between two or more posts at least one of which is mobile
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/04Protocols specially adapted for terminals or networks with limited capabilities; specially adapted for terminal portability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/12Protocol engines
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • H04M1/72406User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality by software upgrading or downloading
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q3/00Selecting arrangements
    • H04Q3/42Circuit arrangements for indirect selecting controlled by common circuits, e.g. register controller, marker
    • H04Q3/54Circuit arrangements for indirect selecting controlled by common circuits, e.g. register controller, marker in which the logic circuitry controlling the exchange is centralised
    • H04Q3/545Circuit arrangements for indirect selecting controlled by common circuits, e.g. register controller, marker in which the logic circuitry controlling the exchange is centralised using a stored programme
    • H04Q3/54575Software application
    • H04Q3/54583Software development, e.g. procedural, object oriented, software generation, software testing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/18Processing of user or subscriber data, e.g. subscribed services, user preferences or user profiles; Transfer of user or subscriber data
    • H04W8/183Processing at user equipment or user record carrier

Abstract

一个无线电通信装置包括:存储器,在其内存储用户应用程序和电话程序,该电话程序在操作时有多个终端对象;以及用户应用程序和电话程序之间的应用程序编程接口,其中应用程序编程接口具有用于接收用来建立单模式呼叫的参数的命令,电话程序接收一个数组以作为用于建立该单模式呼叫的命令的参数,该数组指明多个终端对象,并且允许利用与建立单模式呼叫时使用的命令相同的命令覆盖单模式呼叫,以便能够针对这多个终端对象建立双模式呼叫。

Description

无线电通信装置和其中建立双模式呼叫的方法
技术领域
本发明涉及无线电通信装置,该装置包括一个用户应用程序(一般称为一个应用或小程序)和一个电话程序(例如一个电话类的一个实例)以及该用户应用程序和该电话程序之间的一个应用程序编程接口(API)。本发明涉及API的很多方面并且涉及通过API调用的方法,例如建立双模式呼叫的方法。
背景技术
面向对象的程序语言如Java(TM)由于可以在不同的平台,操作系统和装置之间移植而在越来越多的装置中广泛使用。这意味着为一个装置开发的程序可以更容易地应用于具有不同特征例如不同的操作系统或不同的微处理器的另一个装置。
面向对象的程序的应用正扩展到那些在内存容量和处理能力方面明显小于传统个人计算机的设备和其它广泛使用这种语言的平台。由于许多原因在非常小的平台上使用面向对象的语言例如Java(TM)会出现问题。问题的一个例子在于需要支持一个完整的对象类的集合,其中一个对象是一个自包含计算机程序,它以规定的方式与其它程序交互,而且其中一个类是一组具有相似特点的对象的生成模板。一个问题是为了保持程序在不同的平台间的可移植性,任何给定的应用程序可以调用的类必须统一。例如,pJava(TM)有一个很大的类库集合并正在努力定义一个只使用完整的类库集合的一个子集的小一些的语言称为“eJava”(TM)。
类的一个例子是一个可以通过Java(TM)电话API(JTAPI)调用的电话类。该类的一个实例可称为一个“JTAPI实现”。
JTAPI是可移植的,基于JAVA(TM)的计算机-电话应用程序的面向对象的应用程序编程接口描述在下面的广域网的全球资源定位子上:www.javasoft.com/products/JTAPI/index.html。该Java(TM)电话API支持第一和第三方电话应用域。该API被设计为使能够容易编制简单的应用,同时提供高级电话应用程序所必需的特征。JTAPI是一组API。有一个“核心”API提供基本的呼叫模型和初级的电话特征,如发起电话呼叫和应答电话呼叫。核心API由为特定的电话域如电话中心和媒体流访问提供功能的标准扩展API包围。用JTAPI编写的应用程序可以在不同的计算机平台和电话系统间移植。JTAPI的1.2版本于1997年12月发行于众。
使用JTAPI的一个例子是在一个网络配置中JTAPI应用程序或JAVA(TM)应用程序运行在远程站点,例如一个只有一个显示器,键盘,处理器和一些内存的网络计算机。这个计算机利用管理电话资源的集中式服务器访问网络资源。JTAPI通过一个远程通信机制如Java(TM)的远程方法调用(RMI)或一个电话协议来与该服务器通信。Java(TM)电话API由一组Java(TM)语言包组成。每个包为计算机一电话应用程序的一个特定方面提供一块功能。电话服务器的实现根据当前平台硬件的能力来选择所支持的包。应用程序可以查询当前正在使用的实现可支持的包。另外,应用程序开发者可能只关心应用程序完成一个任务所需的被支持的包。例如,一个呼叫包允许用户为一个网页增加电话功能,而很多标准扩展包扩展JTAPI核心包。这些扩展包为API带来附加的电话功能,如:全控制,呼叫中心,媒体,电话,专用数据和容量(capability)包。
需要使用标准电话API如JTAPI作为无线电电话或其它无线电通信装置的电话API。
使用JTAPI作为无线电通信装置的电话API,尤其是作为移动无线电话全球系统(GSM)的电话API,存在许多问题。一般而言,JTAPI的问题在于有多于63个事件类,总类文件大小大约为130K字节。这表示需要为无线电电话的整个程序的相当小的组成部分分配相当大的内存。需要减少与JTAPI兼容的程序对内存的要求。
在GSM通信装置的上下文中,有一些GSM功能不能通过使用现有的JTAPI句法和方法特征来容易地获得。而且,需要支持双模式呼叫(这是在GSM使用的声音和传真呼叫或声音和数据呼叫的术语),在有线电话和JTAPI中没有双模式呼叫的概念。简单地增加或削减JTAPI不能提供令人满意的方案,因为增加JTAPI会增加寻找事件类的需要,而削减JTAPI去掉了程序可在不同平台之间移植的标准API的优点。
因此,需要一个用于无线电通信装置的电话API以及只占据最少内存并支持无线电电话特有特点的相关类。
发明内容
本发明提供一个无线电通信装置,包括:一个存储器,在其内存储用户应用程序和电话程序,该电话程序在操作时有多个终端对象;以及一个用户应用程序和电话程序之间的应用程序编程接口,其中应用程序编程接口具有用于接收用来建立单模式呼叫的参数的命令,电话程序接收一个数组以作为用于建立该单模式呼叫的命令的参数,该数组指明多个终端对象,并且允许利用与建立单模式呼叫时使用的命令相同的命令覆盖单模式呼叫,以便能够针对这多个终端对象建立双模式呼叫。
本发明还提供一种在无线电通信装置中的建立双模式呼叫的方法,包括:从应用程序通过应用程序编程接口调用呼叫连接类,该呼叫连接类适于使用具有包含一个数组的参数的命令来建立单模式呼叫并提供覆盖单模式呼叫建立、从而能够使用单模式呼叫连接类建立双模式呼叫的手段,该数组包括从声音类型,传真类型和数据类型中选择的不同类型的多个终端对象。
附图说明
图1示出了根据本发明的第一个实施例的无线电电话装置的一个例子。
图2示出了根据本发明的第二个实施例的无线电电话装置的一个例子。
图3是说明图1和图2无线电电话的软件的结构的软件构成图。
图4是进一步详细说明图3的JTAPI方法实现的程序流程图。
图5和6是说明图3的JTAPI方法实现的细节的流程图。
图7-13在说明JTAPI的附录1中引用。
具体实施方式
参看图1,分层示出了一个无线电电话,硬件在最底下一层,应用程序软件在最高层。无线电电话包括第一微处理器10(微处理器A),第二微处理器11(微处理器B)以及特定RF硬件13。微处理器A和B连接在一起。微处理器B连接到RF硬件13。RF硬件13包括至少一个接收器和一个发送器。该RF硬件还包括一个最好包含一个声音编码器的声音通信单元23。以及一个最好包含一个数据调制解调器或传真调制解调器的数据通信单元24。微处理器有操作系统(OS)14如由Microware Systems Corporation of Des Moines,lowa提供的OS 9000。操作系统之上是虚拟机15,如商用JAVA(TM)虚拟机。应用程序16和其它JAVA(TM)类17在虚拟机15上运行。类17的一个类是JPAPI实现18。微处理器11有接收发送软件20,它完成诸如呼叫控制,分帧以及通常是字节级的处理如块编码功能。接收发送软件20通过一个通用服务提供者模块接口(CSPM)22与操作系统14通信。
作为图1中的装置的替换实施例,微处理器A和B的功能可以被集成到一个集成电路25,如图2中虚线部分所示。在这个实施例中,微处理器10,硬件13,操作系统14,虚拟机15以及不同的软件元素16-18与图1中的实施例中的相同,在微处理器B的位置,有一个与微处理器10集成在一个集成电路25中的数字信号处理器。该数字信号处理器27有DSP码28完成分帧和其它字节级的处理如块编码,而其它接收发送软件功能如呼叫控制由运行在使用操作系统14的微处理器10上的接收发送软件码29完成。一个合适的集成电路25是M-Core(TM)集成微处理器,DSP可从摩托罗拉公司得到。
在图3中,示出了应用程序16(称为“电话应用”)和JTAPI方法实现18。示出了JTAPI接口30提供电话应用16和JTAPI方法实现18之间的接口。JTAPI方法实现18控制并从无线电收发信机如GSPMI22的GSM收发信机30接收输入。GSM收发信机30包括第二个微处理器11,RF硬件13以及接收发送软件20(都在图1中示出)。
JTAPI30基本上如JTAPI规范1.2中所述,该规范定义高级对象的语法或操作,如“提供者”,该规范在附录A中列出。另外,支持专门针对GSM的特殊操作,为此现定义下列专门术语。
JTAPI提供者的域简单地就是指移动站(MS)。提供者域中的地址是那些MS的地址,例如,域中的一个地址代表一条电话线。
Provider.getAddresses()为MS返回一个地址数组,通常只有一个入口。如果MS支持多条线和多个电话号码,默认或初始地址(primaryaddress)是第一个入口。
Provider.getAddress()只接收分配给MS的一个或多个号码。缺省值即初始地址,返回getAddresses()[0]。
Provider.getTerminals()返回MS支持的终端的一个数组。每一个电话承载类型(参看下面内容)定义一个终端。
Provider.getTerminals()获得一个指明终端名字的字符串,缺省时,返回声音终端。所有的实现必须支持VOICE.DATA和FAX终端(参看下文)。
只要提供者还未关闭即使它是OUT_OF_SERVICE,Provider.CreateCall()将创建一个呼叫。该呼叫在提供者变为IN_SERVICE之前不能被成功地发起。这个特点是对JTAPI 1.2的creatCall()的前提条件的一个改变并将在下面参看图5和6进行详细说明。
Call.connect()语法分析目标地址串以得到通用SS码和地址标志。如果传送给Call.connect()的目标数字串以“+”字符开始,type_of_number(TON)被设置为INTERNATIONAL;否则,TON为UNKNOWN。如果字符串只包含数字,号码计划标识(NPI)为ISDN,否则为UNKNOWN。
TerminalConnection.join()和TerminalConnection.leave()用于在双模式(声音和数据或声音和传真)呼叫中改变呼叫模式,在一个呼叫中总是只有一个终端连接(Terminal Connection)是激活的;在另一个终端连接中激活join()引起电话模式的切换,在激活的终端连接上调用leave()自动激活另一模式。
应用程序使用为媒体终端连接(MediaTerminalConnection)定义的API可以与电话的信息内容交互。如果由Connection.getTerminalConnection()返回的TerminalConnection实现媒体终端连接,应用程序可使用以下方法:MediaTeminalConnection.getMediaAvailability(),其实现方法在JTAPI 1.2中定义;MediaTerminalConnection.getMediaState(),其实现方法在JTAPI 1.2中定义;MidiaTerminalConnection.generateDtmf(),用于生成呼叫中的DTMF音调。所有其它MediaTerminalConnection的方法都是可选的。
提供者不必非要在停止服务时断开与激活呼叫的连接。提供者可能保持该呼叫处于激活状态并假定出现临时通信故障而试图重新建立该呼叫。如果ProvOutOfServiceEv之后没有紧跟着CallInvalidEv和相关的ConnDisconnectedEv事件(例如,在超时时间内后两个事件没有跟入),应用程序假定提供者正试图重建一个呼叫。
另外,利用现有的JTAPI语法和方法特征许多GSM功能不能简单地获得。定义下面新的方法或具有不同特征的方法。
Provider.getNetworkID()返回当前网络名。
Provider.getServicelevel()返回操作服务级别,NONE,EMERGENCY,FULL。
Provider.isRoaming()当MS不在本地PLMN时返回真。
这些新方法允许应用程序确定当前公共陆上移动网络(PLMN),操作服务级别和该单元是否在本地PLMN上。
在JTAPI中,终端(Terminal)对象表示呼叫的物理的终端。假定该呼叫转输声音。为了支持为GSM定义的附加的呼叫承载类型,为每一个主要呼叫承载类型定义一个附加的终端子类Terminal的DataTerminal子类表示GSM数据呼叫的物理终端。Terminal的FaxTerminal子类表示GSM传真呼叫的物理终端。
一个典型的GSM MS将至少支持三个终端,一个声音,一个数据,一个传真终端。MS可能支持附加的Terminal实例或子类(例如,支持内部数据的InternalDataTerminal和传送给连接的PC的数据的ModermDataTerminal)。应用程序通过观察适当终端上的来话呼叫事件接收不同承载类型的来话呼叫。
现在参看图4,说明允许支持双模式GSM呼叫的具体特征。
图4图示图3中的JTAPI实现18的详细情况。方法的核心是提供者方法40。该提供者方法以无需详细说明的方式与操作系统14接口。正如在上下文中使用的那样,一个“方法”是定义在类里的在该类的实例中运作的一个函数。提供者方法40与一个声音终端对象42,一个数据终端对象44,一个传真终端对象46和一个地址对象48相关联。当要建立一个呼叫时,提供者方法40创建一个呼叫对象50。该呼叫对象50创建一个本地连接对象52。若是简单的声音连接,本地连接对象52创建一个引用声音终端42的终端连接对象54。正如将进一步详细说明的那样,本地连接对象52还创建第二个终端连接对象56(甚至第三个终端连接对象58)。第二终端连接对象56引用数据终端对象44。第三终端连接对象58,如果存在的话,引用传真终端46。作为一个可选配置,第二和第三终端连接对象可被生成用于创建数据和传真呼叫,这将进一步详细说明。
可能注意到如果呼叫是三方呼叫(three-way call),呼叫对象50将创建一个附加的远程连接对象60及与其关联的终端连接对象62-66。还可能注意到如果还有一个呼叫(如一个占线的呼叫),提供者方法40可创建一个具有与其对应的本地连接和终端连接的附加的第二呼叫对象70。在所有情况下,对于一个给定的无线电电话,只有三种终端:声音终端,数据终端和传真终端。所以在所有情况下,由本地连接52,远程连接60和其它本地连接或远程连接创建的不同终端连接对象都分别引用声音终端对象42,数据终端对象44以及传真终端对象46。
在即将说明的处理中,目的是通过一个无线电电话通信频道GSM收发信机30建立一个与远程交换机的呼叫,在该呼叫是双模式(例如声音和数据或声音和传真)的情况下,JTAPI方法实现18的目的是建立一个具有双模式功能的呼叫并通过CSPMI22通知GSM收发信机已建立一个双模式呼叫,这样GSM收发信机30可以通知GSM系统该呼叫是一个双模呼叫,接着是GSM系统的交换机,一旦接收到建立一个呼叫的请求创建一个呼叫并保持调制解调器的互通功能以支持该呼叫的数据或传真功能。进一步的目的是使用JTAPI命令Call.connect()在电话应用程序16的调用中建立这个双模呼叫。
在JTAPI版本1.2中,Call.connect()需要一个终端对象参数,以建立一个去向或来自该终端的单模呼叫。为了建立一个双模呼叫,本发明的首选实施例覆盖Call.connect()并增加一个方法使第一个参数是一个终端数组,代替单个的发起终端。终端数组是命令call.connect的参数并包括一组终端对象,这组终端对象可能是一个声音终端和一个数据终端,或一个声音终端和一个传真终端或是一个数据终端和一个传真终端或是一个声音终端,一个数据终端和一个传真终端。当方法提供者40与该命令和一个数组参数被调用时,它创建呼叫对象50和本地连接对象22。本地连接对象22创造第一和第二终端对象54和56。本地连接对象52向第一终端连接对象54查询其终端。第一终端对象54回答本地连接对象52指明其终端(即其引用的终端)是声音终端。同样地,本地连接对象52向第二终端连接对象56查询,第二终端连接对象56回答其终端是数据终端。本地连接对象54通知呼叫对象50已经建立一个数据终端连接和一个声音终端连接。呼叫对象50通知提供者40该双模呼叫已被建立。提供者40通过CSPMI 22(通过OS14)通知GSM收发信机已建立该双模呼叫。
提供者40如下通过收发信机30建立呼叫,提供者40创建一个缓冲区类型为PlaceCallReq并从下表1中增加参数M/O/C。这些参数说明该呼叫。
表1
参数名             参数类型         M/O/C
CallType           CALL_TYPE        M
CalledParty1      PHONE_NUMBER     C
RepeatIndicator2  REPEAT_INDICATOR O
CallType2         CALL_TYPE        O
DataParameters3   DATA_PARAMETERS  C
CLIRDisposition4  CLIR_DISPOSITION O
CUGInfo5          CUG_INFO         O
1.对紧急呼叫为可选,对其它所有类型呼叫为必选。
2.对多呼叫类型呼叫为必选。
3.呼叫类型为数据或传真时必选。
4.如果客户希望替换CLIR预约缺省时,可能包含。
5.如果客户希望替换CUG预约缺省时,可能包含。
本缓冲区的内容通过串行连接22发送给收发信机30,如果被接收,该收发信机从下表2中返回确认消息。
表2
参数名             参数类型         M/O/C
CallHandle1       CALL_HANDLE      C
1.当呼叫请求成功时必选。
这个确认消息给出呼叫句柄使微处理器10可以在以后的命令中识别该呼叫。
在表1中,呼叫类型2(Call Type 2)指明一个替补呼叫类型并指明该替补类型为数据或传真(在GSM中初始呼叫类型总是声音)。用这种方式,提供者40通知收发信机30有一个替补呼叫类型是数据(也可为传真)。这样,当收发信机30建立该呼叫时,开关也被通知有一个替补呼叫类型该替补呼叫类型要求预约数据调制解调器(或传真调制解调器)。
第一个终端数组入口是初始激活终端,但呼叫被设置为可以处理在数组中声明的任何终端,即连接到其它终端上的终端连接被置于呼叫控制terminalconnection.bridgedstate(或terminalconnection.passivestate)。如上所述,joined/leave被用于控制呼叫的当前模式。connect()的这个变量用来支持初始声明双模呼叫参数(这样要求应用程序16预先声明所有可能参与呼叫的终端)的GSM要求。
Call.connect()被覆盖以加入方法以简洁地指定目标地址串的TON(号码类型)和NPI(号码方案标识符),如果这些不能如上所述被推出的话。
Call.setEmergency()被定义设置紧急模式标志。
Call.setCUGInfo()被定义在一个可编程表中指定关闭用户组信息而不使用目标地址串中的SS(辅助服务)码。
Call.setCallerIdRestricted()被定义在可编程表中指定呼叫线识别限制要求而不使用目标地址串中的SS码。
Call.offHook()不被支持。
应用程序不能指定传送或会议控制器。setTransferController()和setConferenceController()方法导致(throw)MethodNotSupported,以及get Conference Controller()和getTransfer()返回<NULL>。
setConferenceEnable(),getConference.Enable(),setTransferEnable()和getTransferEnable()处理控制传送或会议这个呼叫的能力的内部标志。
Call.Consult()的调用必须包括目标地址串,不支持未指定的变量。
Connection.reject(int)被定义使应用程序可以在拒绝一个呼叫时指出一个拒绝原因。这支持用户确定的用户忙(user-determined-user-busy)功能。
Connection.addToAddress不被支持。
Connection.park()不被支持。
定义终端连接的一个子类(数据终端连接)表示网络和终点数据终端之间的物理连接。定义指定和查询数据呼叫参数,如数据速率,调制解调器类型,协议层等的方法。同样地,终端连接的一个子类((传真终端连接),更准确地说是媒体终端连接的一个子类)表示网络和终点终端之间的物理连接。定义指定和查询传真呼叫参数,如数据权,组模式等的方法。
传真终端连接(FaxTerminalConnection)还提供了设置传真媒体流,传送数据页和页结束标识的媒体专用(media-specific)方法。
定义了一个新的终端事件允许应用程序确定呼叫前转是否可由“TermForwardingActiveEv”指定的终端激活。为不同的服务(例如,声音,传真和数据)前转是通过适当的终端对象(如VOICE,DATA,FAX)来发送信令的。
我们曾经提到Provider.createCall()将创建一个呼叫,即使提供者是OUT_OF_SERVICE,但是只要它未关闭,而且该呼叫在提供者变为IN_SERVICE之前不能被成功地发起。这里参看图5和图6对此特点进行详细说明。
参看图5,将考虑这样的情况,由于某种原因,应用程序16开始发起一个呼叫或建立一个连接或分组数据会话。应用程序16一般是用户的接口并在,例如,用户打开无线电通信装置(移动站或MS)并拨了一个电话号码之后开始初始化一个呼叫。应用程序16通过API 30的Provider.createCall()命令调用Provider.create方法(步骤100)来初始化图5所示的程序(或方法)。如果,在图101中,通信装置处于关闭模式,该程序只在步骤102简单返回一个错识并在步骤103退出。如果该装置不处于关闭模式,在步骤110中创建一个呼叫对象50,图5的程序在步骤111结束,准备开始图6的程序。
紧接着创建呼叫对象50之后,如果没有任何进一步的事件或条件(并且没有任何中断事件),应用程序16通过API30的Call.connect()命令调用Call.connect方法(步骤150)。如果,在步骤151中,判断出通信装置为不服务状态,程序(或方法)在步骤152等待而其它函数在步骤154完成搜索操作。通常10秒钟的等待时间足够使在搜索例程中连接到蜂窝网络。如果,在步骤151或步骤156之后,通信装置已建立与无线电通信网络的服务,步骤158开始一个命令通过串行接口22发送给收发信机30以建立一个呼叫,图6的程序在步骤160结束。
在这种方式下,用户甚至能够在服务被建立之前开始拨电话号码。
这是一个非常有用的特征因为一个一般的用户希望一打开通信装置就开始建立呼叫,而不考虑服务是否已建立。服务的建立可以在响应打开该装置的动作(即按下电源键或打开一个触发器)时开始。图5和图6的方法可以并行开始,响应用户或应用程序的其它动作。
JTAPI定义中每个不同的JTAPI事件都有一个单独的类,这是一个很大的问题。这给MS带来定义多于63个事件类,每个总类文件大小大约为130K字节的负担。
根据本发明的一个方面,应用程序根据事件ID而不是事件类的类型被调度的。这将用一组小的多的事件分类类代替大量的事件类。应用程序用事件ID确定在粗略类型中的具体事件。这大大节省了空间而又不会带来对目标封装的大的损失。
事件类可分组为以下八个生成类:
-EV--所有事件的基本类。
-ProvEv--提供者事件。
-CallCtlAddrEv--地址和呼叫控制地址事件。
-CallCtlCallEv--呼叫和呼叫控制呼叫事件。
-CallCtlConnEv--连接和呼叫控制终端事件。
-CallCtrlTermEv--终端和呼叫控制终端事件。
-CallCtlTermConnEv--终端连接和呼叫控制终端连接事件。
-MediaEv--媒体事件。
具体事件的分组在下表3中列出。
表3
Ev-所有事件的基本类         ProvEv-提供者事件,
                            ProvInServiceEv
                            ProvObservationEndedEv
                            ProvOutOfServiceEv
                            ProvShutdownEv
CallCtlAddrEv-地址和呼叫    CallCtlCallEv-呼叫和呼叫控制
            控制地址事件    呼叫事件
AddrEv                      CallEv
CallCtlEv                   CallCtlEv
AddrObservationEndedEv      CallActiveEv
CallCtlAddrDoNotDisturbEv   CallnvalidEv
CallCtlAddrForwardEv        CallObservationEndedEv
CallCtlAddrMessageWaitingEv
表3内容
CallCtlConnEv               CallCtlTermConnEv
ConnEv                      TermConnEv
CallCtlEv                   CallCtlEv
ConnAltertingEv             TermConnActiveEv
ConnConnectedEv             TermConnCreatedEv
ConnCreatedEv               TermConnDroppedEv
ConnDisconnectedEv          TermConnPassiveEv
ConnFailedEv                TermConnRingingEv
ConnInProgressEv            TermConnUnknownEv
ConnUnknownEv               CallCtlTermConnBridgedEv
CallCtlConnAltertingEv      CallCtlTermConnDroppedEv
CallCtlConnDialingEv        CallCtlTermConnHeldEv
CallCtlConnDisconnectedEv   CallCtlTermConnInUseEv
CallCtlConnEstablishedEv    CallCtlTermConnRingingEv
CallCtlConnFailedEv         CallCtlTermConnTalkingEv
CallCtlConnInitiatedEv      CallCtlTermConnUnknownEv
CallCtlConnNetworkAltertingEv
CallCtlConnNetworkReachedEv
CallCtlConnOfferedEv
CallCtlconnQueuedEv
CallCtlconnUnknownEv
CallCtlTermEv               MediaEv
TermEv                      Media TermConnAvailableEv
CallCtlEv                   Media TermConnDtmfEv
TermObservationEndedEv      MediaTermConnEv
CallCtlTermDoNotDisturbEv   MediaTermConnstateEV
                            MediaTermConnunavailableEv
总而言之,说明了用于无线通信装置的电话API和包含一个提供者方法的关联的实现,它非常适用于调用无线电电话函数的面向对象的计算机程序。使用可在不同平台高程度移植的API和只有很少内存要求的实现。而且,通过使用用于建立简单无线电电话呼叫的一个标准JTAPI事件类支持双模电话功能,如在GSM无线电电话系统所要求的那样。
根据本发明的一个方面,已说明的无线电通信装置包含一个存储用户应用程序和移动电话程序的内存。移动电话程序包括描述该装置所连接的无线网络的参数。这些参数包括下列中的一个或多个:当前网络的名字;当前网络的操作服务级别;当前网络是否为本地网络的标识。这些参数从收发信机或通过移动互联网协议连接发送给移动电话程序。用户应用程序和移动电话程序的应用程序编程接口至少有一个调用这些参数并将其返回给应用程序的命令(即Provider.getNetworkID();Provider.getServicelevel();或Provider.isRoaming())。
上面的说明只是举例说明,可以在本发明的范围和主旨内进行细节修改。
                    附录1
               Java电话API综述
                   版本1.2
序言
Java电话API(JTAPI)是一个可为基于Java的计算机电话应用程序提供的,可移植的,面向对象的应用程序编程接口。JTAPI可为广泛的用户服务,包括从呼叫中心应用程序开发者到网页设计者。JTAPI支持第一和第三方电话域。该API被设计为使编制简单应用程序容易,同时提供了高级电话应用程序所需的特征。
Java电话API,实际上是一组API。“核心”API提供基本呼叫模型和基础的电话特征如发起电话呼叫和回答电话呼叫核心API由提供特定电话域,如呼叫中心和媒体流访问的功能的标准扩展API包围。JTAPI核心和扩展包结构在本文档后续部分讲解。用Java电话API编写的应用程序可在不同的计算机平台和电话系统之间移植。JTAPI的实现可用于现有的计算机-电话集成平台如Sun Microsystem的SunXTL,Microsoft和Intel的TAPI,Novell和Cucent的TSAPI以及IBM的CallPath。另外,独立硬件供应厂商可能选择在他们的专有硬件上提供Java电话API的实现。
文档组织概述
本文档组织为下面几个部分:
Java电话API特征—讲述JTAPI的特征及其设计原则。
支持的配置—总结JTAPI可应用的环境及其设计的计算机和软件配置。
Java电话包结构—总结Java电话API如何组织为不同的Java语言包。对每个包进行简单描述并提供指向详细文档的链接。
Java电话呼叫模型—讲述电话呼叫和组成电话呼叫的不同对象在本API中是如何被表示的。
核心包方法—提供核心包中可用的主要方法的一个简要总结,该核心包完成最基本的电话操作,如发起一个电话呼叫,回答一个电话呼叫,以及断开电话呼叫连接。
连接对象状态—讲述连接对象可以存在的状态。它描述从每个状态可进行的转换。
终端连接(TerminalConnection)对象状态—讲述终端连接对象可以存在的状态,描述从每个状态可进行的转换。
发起一个电话呼叫—在任何电话API中使用最普遍的特征是发起一个电话呼叫。本部分讲述发起一个呼叫所需调用的JTAPI方法并检查呼叫模型中状态的变化。这种分析将解释呼叫是如何被发起,回答和结束的。
Java电话观察者模型—讲述JTAPI观察者模型。应用程序用观察者异步通知JTAPI呼叫模型的状态的变化。
这里没有应用程序编码示例,但在由Sun Microsystem,Inc of PaloAlto,Califeornia出版的Java电话API版本1.2综述中有两个使用Java电话API的可运行的编码示例。一个例子向指定的电话号码发起一个电话呼叫。另一个例子示出一个指定的终端应答一个来话电话呼叫。
定位和获得提供者—讲述应用程序创建和获得提供者对象的方式。
安全—总结JTAPI的安全策略。
Java电话特征
Java电话API的特征和指导设计的原则是:
给最基本的电话应用程序带来简单性。
提供从桌面应用程序到分布式呼叫中心电话应用程序的可调节的框架。
接口应用程序直接为提供者服务或作为与现有电话API,如SunXTL,TSAPI和TAPI的Java接口。
基于一个简单核心,该核心由标准扩展包扩充。
在大范围的任何可使用Java运行时间的硬件配置上运行。
支持的配置
JTAPI运行于不同的系统配置上,包括可直接访问电话资源的集中式服务器,通过网络访问电话资源的远程网络计算机。在第一种配置中网络计算机运行JTAPI应用程序并通过网络访问电话资源,如图7所示。在第二种配置中,应用程序运行在拥有自己电话资源的计算机上,
如图8所示。
网络计算机(NC)配置
在一个网络配置中,JTAPI应用程序或Java应用程序运行在远程工作站上。这个工作站可能是一个只有一个显示器、键盘、处理器和一些内存的网络计算机。它访问网络资源,使用管理电话资源的集中式服务器。JTAPI通过远程通信机制,如Java的远程方法调用(RMJ),JOE,或电话协议与该服务器通信。下图示出该配置。
桌面计算机配置
在桌面配置中,JTAPI应用程序或Java应用程序运行在拥有电话资源的工作站上。图8示出了桌面配置。
Java电话包结构
Java电话API由一组Java语言包组成。每个包为计算机-电话应用程序的一个特定方面提供一个专门的功能。电话服务器的实现根据它们现有的平台和硬件选择它们支持的包。应用程序可能查询它们当前使用的实现所支持的包。另外,应用程序开发者可能只关心应用程序完成一个任务所需的被支持的包。图9示出了JTAPI包的结构。
Java电话API的中心是“核心”包。核心包提供电话呼叫模型基本的框架和基础的电话特征。这些特征包括发起一个电话呼叫,应答一个电话呼叫以及断开对电话呼叫的连接。简单的电话应用程序只需使用“核心”去完成它们的任务,而不需要关心其它包的细节。例如,核心包允许应用程序设计者很容易地为网页增加电话功能。
很多“标准扩展”包扩充了JTAPI核心包。这些扩展包每个为API带来附加的电话功能。目前,本API有以下扩展包:呼叫控制,呼叫中心,媒体,电话,专用数据和权限包。下面总结每个包带给JTAPI的特征,其中每个包都与一个独立的概述文档和说明书链接。
JTAPI包结构是实现和应用程序的双向街(two-way street)。换句话说,电话服务器实现根据使用的硬件的能力选择其实现的扩展包(包括核心包)。应用程序选择用于完成所要求任务的所需要的扩展包(包括核心包)。应用程序可能向实现查询该实现所支持的扩展包,应用程序开发者不需要关心应用程序不需要的其它包的细节。
Java电话标准扩展包
每个JTAPI扩展包都有一个描述其对核心API的扩展的说明书,在大多数情况下有描述自己的独立的综述文档。下面的图列出了所有的扩展包,如果有独立的综述文档,还列出其链接。
呼叫控制包
javax.telephony.callcontrol包通过提供更高级的电话-控制特征如发起占线呼叫,传送电话呼叫,会议电话呼叫来扩展核心包。本包还提供了一个更详细的电话呼叫的状态模型。
呼叫中心包
javax.telephony,callcenter包提供给应用程序完成管理大的呼叫中心所必需的高级特征的能力。这些高级特征的例子包括:分路,自动呼叫分布(ACD),预报呼叫以及将应用程序数据与电话对象相关联。
媒体包
javax.telephony.media包使应用程序可访问与电话呼叫相关的媒体流。它们能够从这些媒体流读写数据。java.telephony.media包还提供了DTMF(双音多频信号音)和非DTMF音的检测和生成。
电话包
javax.telephony.phone包允许用户控制电话硬件电话机的物理特征。实现可能将终端描述为元件的集合,其中这个包中的每个元件类型都有接口。
权限包
javax.telephony.capabilities包允许应用程序查询是否可以进行某项操作。权限有两种形式:静态权限指出一个实现是否支持一个特征;动态权限指出在给总的呼叫模型的当前状态下是否允许某特定操作。
专用数据包
javax.telephony.privatedata包使应用程序能够直接与基础硬件开关通信数据。这个数据可能用于指导开关完成开关专有操作。应用程序也可能使用包“捎带”一些数据给Java电话API对象。
Java电话呼叫模型
JTAPI呼叫模型包括半打Java对象。这些对象用核心包中的Java接口来定义。每个呼叫模型对象要么表示电话领域中的一个物理实体要么表示一个逻辑实体。这些呼叫模型对象的主要目的是描述电话呼叫及参与电话呼叫的终点。这些呼叫模型对象以特有的方式相互关联,这将在下面总结并在核心包说明书中有详细描述。
图10示出了该JTAPI呼叫模型和组成该呼叫模型的对象。图后有每个对象的描述。
提供者对象
提供者对象是电话服务提供者软件的一个抽象。该提供者可能管理连接到服务器的PBX,桌面机器中的电话/传真卡,或计算机网络技术,如IP。提供者隐藏电话子系统的服务专有方面并使Java应用程序能够以独立于设置的方式与电话子系统交互。
呼叫对象
呼叫对象表示一个电话呼叫,在服务提供者和呼叫参与者之间流动的信息。电话呼叫包含一个呼叫对象和零个或多个连接。在两方呼叫方案中,一个电话呼叫有一个呼叫和两个连接。一个会议呼叫有三个或更多连接与一个呼叫对象关联。
地址对象
地址对象表示一个电话号码。它是电话呼叫的逻辑终点的抽象。注意这与物理的终点大不相同。事实上,一个地址可以对应几个物理终点(即终端)。
连接对象
连接对象是呼叫对象和地址对象之间通信链接模型。这种关系也被称为“逻辑”视图,因为关心的是呼叫和地址(即逻辑终端)之间的关系。座接对象可能处于几个状态中的一个,指出呼叫和地址之间关系的当前状态。这些连接状态将在后文总结。
终端对象
终端对象表示一个物理装置例如一个电话及其属性。每个终端对象可能有一个或多个地址对象(电话号码)与其关联,如许多办公室电话能够管理多个呼叫终端的情况。终端即所谓的一个呼叫的物理“终点”,因为它对应于硬件的物理的一部分。
终端连接对象
终端连接对象是连接和一个呼叫的物理终点之间的关系的模型,它由终端对象来表示。这种关系还被称为连接(与连接对象不同的是连接是逻辑视图的模型)的“物理”视图。终端连接对象描述连接和特定终端之间关系的当前状态。与终端连接有关的状态将在本文档后续部分描述。
核心包方法
核心包定义了三个方法支持其主要特征:发起一个电话呼叫,应答一个电话呼叫,断开电话呼叫的一个连接。这些方法分别是:Call.connect(),Terminal Connection.answer()和Connection.disconnect()。
Call.connect()
一旦应用程序有一个空闲呼叫对象(由Provider.createCall()创建),它可能用Call.connect()发起一个电话呼叫。应用程序必须指定源终端(物理终点)和该终端(在终端有多个电话号码的情况下)的源地址(逻辑终点)。它还提供目标电话号码字符串。从Call.connect()方法返回两个连接对象,表示电话呼叫的源和目标端。
TerminalConnection.answer()
应用程序用终端上的观察器(下文讨论)监视什么时候出现来话呼叫。终端的一个来话电话呼叫由TerminalConnection向该处于RINGING状态的终端指出(参看下文的连接终端状态)。那时,应用程序可能调用TerminalConnection.answer()应答该来话电话呼叫。
Connection.disconnect()
Connection.disconnect()方法用于从电话呼叫中删除一个地址。连接对象表示该地址与电话呼叫的关系。应用程序一般在连接处于CONNECTED状态时调用本方法,导致连接变为DISCONNECTED状态。在核心包中,应用程序可能从该呼叫删除整个地址,所有与该地址相关的参与呼叫的终端都被删除。呼叫控制扩展包括为应用程序提供了从呼叫中只删除单独终端的功能。
连接对象状态
连接对象总是处在反映一个呼叫和一个地址的关系的状态上。一个连接存在的状态不仅由于信息目的对应用程序很重要,它还总指出哪些方法和动作可以在连接对象中调用。由规则控制的连接对象经历的状态变化在下面的状态转换图中示出。这图为应用程序开发者提供了连接对象可以转换的可能状态。这些状态转换规则对应用程序开发者是非常有价值的。下面简要总结每个状态的意义。
IDLE状态
IDLE状态是所有新的连接对象的初始状态。连接一般很快由IDLE状态转换为另一个状态。一个连接处于IDLE状态表明该方刚以某种形式加入该电话呼叫。IDLE状态的连接没有有效的核心方法。
INPROGRESS状态
INPROGRESS状态指明一个电话呼叫正在发向这个目标终点。
ALERTING状态
ALERTING状态指明一个电话呼叫的目标方受到有来话电话呼叫的警告。
CONNECTED状态
CONNECTED状态指明一方是电话呼叫的活动部分。连接处于CONNECTED状态意味着关联方正在与其它方通话或连接到音调。
DISCONNECTED状态
DISCONNECTED状态指明一方不再是电话呼叫的一部分。处于DISCONNECTED状态的没有有效的方法。
FAILED状态
FAILED状态指明发向终点的电话呼叫失败。例如,如果一个应用程序使用Call.connect()发起一个电话呼叫给正在忙的一方,与呼叫方关联的连接转换为FAILED状态。
UNKNOWN状态
UNKNOWN状态指明提供者不能确定连接的当前状态。连接可以随时转换出或转换为UNKNOWN状态,除非它为DISCONNECTED或FAILED状态。调用处于该状态的连接的任何方法的结果是不可预料的。
终端连接对象状态
终端连接对象表示终端和连接的关系。如前面所述,这些对象表示呼叫的物理视图,说明哪些物理终端终点是电话呼叫的部分。与连接对象相似,终端连接有自己的状态集和状态转换图。状态图如图12所示,下面简要说明每个状态。
IDLE状态
IDLE状态是所有终端连接对象的初始状态。它与连接对象的IDLE状态意思相同。
ACTIVE状态
ACTIVE状态指明终端是电话呼叫活动的部分。这往往意味着该终端受话器已提起。
RINGING状态
RINGING状态指明终端正在发信号给用户在终端上出现了一个来话电话呼叫。
DROPPED状态
DROPPED状态指明终端曾经是电话呼叫的一部分,但之后已退出该电话呼叫。DROPPED状态是所有终端连接的最后状态。
PASSIVE状态
PASSIVE状态指明终端是电话呼叫的一部分,但不是活动部分。终端连接处于PASSIVE状态指明该终端的资源正在被这个电话呼叫使用。包提供高级特征允许终端从PASSIVE状态加入呼叫。
UNKNOWN状态
UNKNOWN状态指明提供者不能确定终端连接的当前状态。它与连接对象的UNKNOWN状态的意义相同。
发起一个电话呼叫
上面几部分概述了JTAPI呼叫模型,核心包的基本方法以及连接和终端连接的状态。本部分将所有这些信息串在一起,提出在大部分电话应用程序中使用的共有方案。本部分讲述当应用程序发起一个简单的电话呼叫时整个呼叫模型一般经历的状态变换。读者将会深入理解本简单例子的呼叫模型变化。
用于讲述呼叫模型经历的状态变化的载体如图13所示。这个图是一个呼叫模型时间图,其中不同对象的变化随着时间的增加纵轴向下表示出来。本图示出了应用程序调用Call.Connect()方法之后的一般状态变化。
在图13中,分离的时间点以整数沿纵轴向下标注。时间越大在纵轴的位置越向下,但这些整数并不是真正的(时钟)时间。
图13整个表示一个电话呼叫。本例所示情况下,该图表示一个两方的电话呼叫(Call.connect()方法总是引起两方呼叫)。该图可以划分为两部分:左半边和右半边。左半边表示电话呼叫的发起端,右半边表示电话呼叫的目标端。
在图的左边(发起)区域,两条垂直线如在图中指明的那样表示发起终端和地址(它是Call.Connect()方法的参数)对象。水平线如标注的那样或者表示连接对象或者表示终端连接对象。注意连接对象画在里边区域,而终端连接对象画在外边区域。
同样地,在图的右边(目标)区域,两条垂直线表示目标地址和终端。在本例中,有两个与目标地址相关联的目标终端。这种配置已在前面图10中示出。注意因为有两个终端,在目标区域有两个终端连接对象。
图13可以如下理解:随着时间的推移连接和终端连接对象改变状态。一个新的连接或终端连接水平线的出现对应于一个新的该类型的对象的创建。
在发起电话呼叫的例子中,我们看到在创建两个处于IDLE状态的连接后,发起连接转换为CONNECTED状态,而目标连接转换为INPROGRESS状态。这时,创建一个连接到发起终端的终端连接。该终端连接转换为ACTIVE状态。当目标连接转换为ALERTING状态时,两个状态为RINGING的终端连接被创建。
这时,在目标终端其中之一上,一个人应答该呼叫。当发生这种情况时,终端连接转换为ACTIVE状态,而另一个终端连接转换为PASSIVE状态。同时,目标连接并发地转换为CONNECTED状态。
当该电话呼叫结束时,所有的连接都转换为DISCONNECTED状态,所有的终端连接都转换为DROPPED状态。
最后,本文档曾使用术语电话呼叫的“逻辑”和“物理”视图。本图使这些概念更清楚。应用程序可以监视连接对象(如,逻辑视图)的状态变化。通过看本图,读者可以理解这些状态提供了电话呼叫过程的一个高层次视图。终端连接状态变化表示物理视图,通过监视终端连接的状态变化,应用程序能发现每个物理终点发生的情况。
Java电话观察者模型
Java电话API使用Java观察者/可视察模型异步通知应用程序JTAPI呼叫模型的各种变化。这些变化可能包括对象的状态变化或对象的创建。
提供者,呼叫,终端,以及地址对象都有观察者。与这些观察者对应的接口分别是Provider.Observer,CallObserver,TerminalObserver和AddessObserver。
ProviderObserver报告所有提供者对象的状态变化。对核心包而言,当提供者从OUT_OF_SERVICE状态转换为IN_SERVICE,SHUTDOWN状态时状态变化被报告。
呼叫观察者报告所有参与电话呼叫的连接和终端连接的状态变化信息和呼叫本身的状态变化。地址观察者和终端观察者不报告这些状态变化。
有时,应用程序可能想监视地址和或终端对象是否有来话电话呼叫。在这些实例中,应用程序使用Address.addCallObserver()或Terminal.addCallObserver()方法。这些方法指示其实现自动增加一个CallObserver给所有发向一个地址或终端的呼叫。一旦该呼叫离开该地址或终端,这些CallObserver被删除。
地址和终端观察者报告这些对象的任何状态变化,在核心包中这些对象没有事件。但是,仍然有AddressObserver和TerminalObserver,以便其它包可以扩展这些接口。
定位和获得提供者
Java电话API定义一个约定,通过该约定应用程序可以得到JTAPI电话服务器实现的服务。
将应用程序链接到服务器的两个元素是:
JtapiPeerFactory
JtapiPeerFactory类是需要电话服务的应用程序的第一个联系点。它能返回一个命名的Jtap:Peer对象或一个默认的JtapiPeer对象。它被定义为静态类。
JtapiPeer
JtapiPeer接口是供应厂商的Java电话API的特殊实现的基础。每个提供JTAPI的一个实现的供应厂商必须在可由JtapiPeerFactory载入的类中执行该接口。
应用程序通过一个实现JtapiPeer对象的类,得到一个提供者对象。
JtapiPeerFactory:开始
JtapiPeerFactory是定义在JTAPI中的一个静态类。它的唯一的公用方法,getJtapiPeer()取得所要求的JtapiPeer实现或返回一个默认的实现。
getJtapiPeer()作为参数取得所需的JTAPI服务器实现类的名字以返回该类的一个对象实例。如果没有提供名字,getJtapiPeer()返回默认的JTAPI服务器实现对象。
JtapiPeer:获得一个提供者对象
JtapiPeer是一个接口。它由JTAPI服务器实现使用。它定义了应用程序用以获得提供者对象,查询那些提供者上可用的服务,获取JtapiPeer对象实例的名字的方法。通过创建执行JtapiPeer接口的类,JTAPI实现使用中可以使用下列方法。
应用程序使用JtapiPeer.getProvider()方法来得到新的提供者对象。每个实现可支持一个或多个不同的“服务”(例如,支持当前网络介体的不同类型)。通过JtapiPeer.getServices()方法可以获得一个可用服务的列表。
应用程序还提供可选参数给提供者。这些参数附加到传送给JtapiPeer.getProvider()方法的参数串中。参数串格式如下:
<服务名>;       参数1=值1;参数2=值2;…
(<Service name>;arg1=val1;arg2=val2;…)
其中<服务名>不是可选的,后面的每个可选参数对都以分号分隔。这些参数的关键字是由实现指定的,除了两个标准定义关键字:
1.login:提供登录用户名给提供者。
2.passwd:提供保密字给提供者。
应用程序使用JtapiPeer.getName()方法获取该JtapiPeer对象实例的名字,它有一个名字参数与JtapiPeerFactory.getJtapiPeer()方法的名字参数值相同。
Java电话API的安全性
JTAPI同位体(peer)实现用Java“sandox”模型控制,对敏感操作的访问。使用运行系统确定的条件JTAPI方法的调用者被划分为“信任”和“非信任”两种。
信任的调用者被允许完全访问JTAPI的功能。非信任调用者仅限于那些不会破坏系统完整性的操作。
JTAPI可被用于访问电话服务器或提供自身安全机制的实现。这些机制保持不变,诸如用户名和保密字的参数是通过JtapiPeer.getProvider()方法的参数提供的。

Claims (10)

1.一个无线电通信装置,包括:
一个存储器,在其内存储用户应用程序和电话程序,该电话程序在操作时有多个终端对象;以及
一个用户应用程序和电话程序之间的应用程序编程接口,其中应用程序编程接口具有用于接收用来建立单模式呼叫的参数的命令,电话程序接收一个数组以作为用于建立该单模式呼叫的命令的参数,该数组指明多个终端对象,并且允许利用与建立单模式呼叫时使用的命令相同的命令覆盖单模式呼叫,以便能够针对这多个终端对象建立双模式呼叫。
2.权利要求1的装置,其中多个终端对象是可以从包括下面对象的组中选择的至少两个不同的终端对象:声音终端对象,传真终端对象和数据终端对象,从而允许建立双模式呼叫。
3.权利要求1的装置,还至少包括由多个终端对象的第一终端对象控制的声音单元和由多个终端对象的第二终端对象控制的数据单元。
4.权利要求3的装置,还包括具有在其上至少运行电话程序的虚拟机的第一处理器,和具有在其上运行控制声音单元和数据单元的收发信机软件的第二处理器。
5.权利要求4的装置,还包括第一处理器和第二处理器之间的串行链接。
6.权利要求4的装置,还包括第一处理器和第二处理器之间的链接,其中该链接向收发信机软件指明用于建立呼叫的命令是主类型和替补类型之一,其中替补类型指示双模式呼叫。
7.一种在无线电通信装置中的建立双模式呼叫的方法,包括:
从应用程序通过应用程序编程接口调用呼叫连接类,该呼叫连接类适于使用具有包含一个数组的参数的命令来建立单模式呼叫并提供覆盖单模式呼叫建立、从而能够使用单模式呼叫连接类建立双模式呼叫的手段,该数组包括从声音类型,传真类型和数据类型中选择的不同类型的多个终端对象。
8.权利要求7的方法,进一步包括,在呼叫连接类中,调用引用一个声音终端的第一连接对象和引用数据终端和传真终端中的一个的第二连接对象。
9.权利要求7的方法,其中通过使用具有一个包括单终端对象的参数的命令,应用程序还能与一个不支持建立双模式呼叫的呼叫连接类接口。
10.权利要求7的方法,其中该呼叫连接能够由一个具有包括单终端对象的参数的命令来调用,从而建立单模式呼叫。
CNB99120719XA 1998-09-28 1999-09-27 无线电通信装置和其中建立双模式呼叫的方法 Expired - Fee Related CN1226885C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/161,817 US6269254B1 (en) 1998-09-28 1998-09-28 Radio communications device and method with API between user application program and telephony program and method
US09/161,817 1998-09-28

Publications (2)

Publication Number Publication Date
CN1249640A CN1249640A (zh) 2000-04-05
CN1226885C true CN1226885C (zh) 2005-11-09

Family

ID=22582875

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB99120719XA Expired - Fee Related CN1226885C (zh) 1998-09-28 1999-09-27 无线电通信装置和其中建立双模式呼叫的方法

Country Status (14)

Country Link
US (1) US6269254B1 (zh)
EP (2) EP1519532A3 (zh)
JP (1) JP4362178B2 (zh)
KR (1) KR100342952B1 (zh)
CN (1) CN1226885C (zh)
AR (1) AR021829A1 (zh)
AT (1) ATE291806T1 (zh)
AU (1) AU734151B2 (zh)
BR (1) BRPI9904366B8 (zh)
CA (1) CA2282996C (zh)
DE (1) DE69924337T2 (zh)
HK (1) HK1026997A1 (zh)
IL (2) IL131630A (zh)
TW (1) TW457823B (zh)

Families Citing this family (75)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6628965B1 (en) * 1997-10-22 2003-09-30 Dynamic Mobile Data Systems, Inc. Computer method and system for management and control of wireless devices
US6343116B1 (en) * 1998-09-21 2002-01-29 Microsoft Corporation Computer telephony application programming interface
US7251315B1 (en) * 1998-09-21 2007-07-31 Microsoft Corporation Speech processing for telephony API
US6993004B2 (en) * 1998-10-29 2006-01-31 Sound Starts, Inc. Method and apparatus for practicing IP telephony from an Internet-capable radio
US6314094B1 (en) * 1998-10-29 2001-11-06 Central Coast Patent Agency Inc Mobile wireless internet portable radio
US6967957B2 (en) 1998-12-11 2005-11-22 Telcordia Technologies, Inc. Architecture for the rapid creation of telephony services in a next generation network
US6418310B1 (en) * 1999-08-05 2002-07-09 Ericsson Inc. Wireless subscriber terminal using java control code
US7187662B1 (en) * 1999-08-11 2007-03-06 Klingman Edwin E Table driven call distribution system for local and remote agents
US6651241B1 (en) * 1999-09-29 2003-11-18 Lucent Technologies Inc. Scriptor and interpreter
CA2319909A1 (en) * 1999-09-30 2001-03-30 Lucent Technologies Inc. Method and apparatus for supporting multiple mobile address schemes using object-oriented programming techniques
US6578054B1 (en) 1999-10-04 2003-06-10 Microsoft Corporation Method and system for supporting off-line mode of operation and synchronization using resource state information
US6633758B1 (en) * 1999-11-16 2003-10-14 Nokia Corporation Methods and devices for operational modes in communication devices being modified with application specific parameters and operational modes automatically launching applications or commands
US7010610B1 (en) * 2000-05-22 2006-03-07 International Business Machines Corporation Programmable agent workstation system and method
US7376769B1 (en) * 2000-09-14 2008-05-20 Intel Corporation Wireless computing device having an application and wireless subsystem and method therefore
US6826762B2 (en) * 2001-02-16 2004-11-30 Microsoft Corporation Radio interface layer in a cell phone with a set of APIs having a hardware-independent proxy layer and a hardware-specific driver layer
US20020133450A1 (en) * 2001-03-13 2002-09-19 Deming Douglas R. Hypertext transfer protocol application programming interface between client-side trading systems and server-side stock trading systems
US20050044274A1 (en) * 2001-03-13 2005-02-24 Deming Douglas R. Methods of handling automated trading
US20020133585A1 (en) * 2001-03-13 2002-09-19 Deming Douglas R. Computer program for recording and selective playback of a communication involving the hypertext transfer protocol
KR100797739B1 (ko) * 2001-04-23 2008-01-24 주식회사 케이티 자바 api 기반의 통합음성서비스 장치
US6963574B2 (en) * 2001-05-25 2005-11-08 General Instrument Corporation Conversation of access network bandwidth during multiuser call connections in a broadband telephony network
KR100744502B1 (ko) * 2001-06-04 2007-08-01 엘지전자 주식회사 무선 단말기의 베이스 구조 및 그 방법
US7050408B2 (en) * 2001-09-26 2006-05-23 Microsoft Corporation Communicating multi-part messages between cellular devices using a standardized interface
US8089509B2 (en) * 2001-11-09 2012-01-03 Karl Storz Imaging, Inc. Programmable camera control unit with updatable program
US8199188B2 (en) 2001-11-09 2012-06-12 Karl Storz Imaging, Inc. Video imaging system with a camera control unit
US8274559B2 (en) 2001-11-09 2012-09-25 Karl Storz Imaging, Inc. Replaceable hardware component of a camera control unit for video systems
US7206744B2 (en) * 2001-12-14 2007-04-17 Sbc Technology Resources, Inc. Voice review of privacy policy in a mobile environment
US6909910B2 (en) * 2002-02-01 2005-06-21 Microsoft Corporation Method and system for managing changes to a contact database
US7110753B2 (en) * 2002-09-26 2006-09-19 Siemens Communications, Inc. Remotely controllable wireless device
US7184534B2 (en) * 2002-12-19 2007-02-27 International Business Machines Corporation Using a telephony application server for call control with a voice server
US7254811B2 (en) * 2003-04-17 2007-08-07 Ntt Docomo, Inc. Update system and method for updating a scanning subsystem in a mobile communication framework
US6987963B2 (en) * 2003-04-17 2006-01-17 Ntt Docomo, Inc. System, method and computer program product for content/context sensitive scanning utilizing a mobile communication device
US6970697B2 (en) * 2003-04-17 2005-11-29 Ntt Docomo, Inc. Platform-independent scanning subsystem API for use in a mobile communication framework
US7392043B2 (en) 2003-04-17 2008-06-24 Ntt Docomo, Inc. API system, method and computer program product for accessing content/security analysis functionality in a mobile communication framework
US20050078620A1 (en) * 2003-10-10 2005-04-14 Kumar Balachandran Mobile-terminal gateway
CA2541278C (en) * 2003-10-10 2014-09-09 Telefonaktiebolaget Lm Ericsson (Publ) Mobile-terminal gateway
US7644376B2 (en) * 2003-10-23 2010-01-05 Microsoft Corporation Flexible architecture for notifying applications of state changes
KR100709799B1 (ko) * 2004-10-20 2007-04-23 주식회사 팬택 듀얼모드 이동통신단말기에서의 연속적인 패킷 데이터서비스 제공 방법
US20060086569A1 (en) * 2004-10-26 2006-04-27 Jimmydeer Llc Mobile hunting stand
DE102004057766B4 (de) 2004-11-30 2007-06-21 Advanced Micro Devices, Inc., Sunnyvale Funkschnittstellensteuerung auf Grundlage einer Ereignislistenspezifikation
US7783686B2 (en) * 2006-06-16 2010-08-24 Microsoft Corporation Application program interface to manage media files
US7603387B2 (en) * 2006-06-16 2009-10-13 Microsoft Corporation Techniques to manage media files
US20080082577A1 (en) * 2006-09-29 2008-04-03 Rockwell Automation Technologies, Inc. Module classification and searching for industrial control systems
US8265775B2 (en) * 2008-09-30 2012-09-11 Rockwell Automation Technologies, Inc. Modular object publication and discovery
US8776092B2 (en) * 2006-09-29 2014-07-08 Rockwell Automation Technologies, Inc. Multiple interface support
US9058032B2 (en) * 2006-09-29 2015-06-16 Rockwell Automation Technologies, Inc. Hosting requirements for services
US8818757B2 (en) * 2008-09-30 2014-08-26 Rockwell Automation Technologies, Inc. Modular object and host matching
US8078296B2 (en) * 2006-09-29 2011-12-13 Rockwell Automation Technologies, Inc. Dynamic procedure selection
US7835805B2 (en) * 2006-09-29 2010-11-16 Rockwell Automation Technologies, Inc. HMI views of modules for industrial control systems
US7676279B2 (en) * 2006-09-29 2010-03-09 Rockwell Automation Technologies, Inc. Services for industrial control systems
US7856279B2 (en) * 2006-09-29 2010-12-21 Rockwell Automation Technologies, Inc. Module structure and use for industrial control systems
US8041435B2 (en) * 2008-09-30 2011-10-18 Rockwell Automation Technologies, Inc. Modular object dynamic hosting
US9261877B2 (en) * 2006-09-29 2016-02-16 Rockwell Automation Technologies, Inc. Multiple machine interface
US9217998B2 (en) * 2006-09-29 2015-12-22 Rockwell Automation Technologies, Inc. Management and development of an industrial environment
US7912560B2 (en) * 2006-09-29 2011-03-22 Rockwell Automation Technologies, Inc. Module and controller operation for industrial control systems
US8732658B2 (en) * 2006-09-29 2014-05-20 Rockwell Automation Technologies, Inc. Layered interface in an industrial environment
US8024455B2 (en) 2006-10-26 2011-09-20 Tango Networks, Inc. System, method, and computer-readable medium for implementing intelligent network service functionality in a network
US8047075B2 (en) 2007-06-21 2011-11-01 Invensense, Inc. Vertically integrated 3-axis MEMS accelerometer with electronics
US8508039B1 (en) 2008-05-08 2013-08-13 Invensense, Inc. Wafer scale chip scale packaging of vertically integrated MEMS sensors with electronics
US8952832B2 (en) * 2008-01-18 2015-02-10 Invensense, Inc. Interfacing application programs and motion sensors of a device
US8250921B2 (en) * 2007-07-06 2012-08-28 Invensense, Inc. Integrated motion processing unit (MPU) with MEMS inertial sensing and embedded digital electronics
US20090262074A1 (en) * 2007-01-05 2009-10-22 Invensense Inc. Controlling and accessing content using motion processing on mobile devices
US20100071467A1 (en) * 2008-09-24 2010-03-25 Invensense Integrated multiaxis motion sensor
US8462109B2 (en) 2007-01-05 2013-06-11 Invensense, Inc. Controlling and accessing content using motion processing on mobile devices
US7796872B2 (en) * 2007-01-05 2010-09-14 Invensense, Inc. Method and apparatus for producing a sharp image from a handheld device containing a gyroscope
US8020441B2 (en) * 2008-02-05 2011-09-20 Invensense, Inc. Dual mode sensing for vibratory gyroscope
US7934423B2 (en) * 2007-12-10 2011-05-03 Invensense, Inc. Vertically integrated 3-axis MEMS angular accelerometer with integrated electronics
US8141424B2 (en) 2008-09-12 2012-03-27 Invensense, Inc. Low inertia frame for detecting coriolis acceleration
US8442509B2 (en) 2009-01-30 2013-05-14 Cassis International Pte. Ltd. System and method for managing a wireless device from removable media with processing capability
US8341087B2 (en) 2010-03-03 2012-12-25 Cassis International Pte Ltd Method for implementing and application of a secure processor stick (SPS)
WO2010086712A2 (en) * 2009-01-30 2010-08-05 Cassis International Pte Ltd System and method for managing a wireless device from removable media with processing capability
US8490119B2 (en) * 2010-12-14 2013-07-16 Microsoft Corporation Communication interface for non-communication applications
CN103178981B (zh) * 2011-12-24 2016-03-02 腾讯科技(深圳)有限公司 连接管理方法和系统
CN104333484B (zh) * 2014-10-28 2017-07-28 广东欧珀移动通信有限公司 通信协议测试方法及装置
CN112528333A (zh) * 2020-12-15 2021-03-19 中国联合网络通信集团有限公司 用户隐私保护方法、mec服务器、终端、设备及介质
CN112822337B (zh) * 2021-01-22 2022-09-23 深圳壹账通智能科技有限公司 智能电话平台、呼入方法、呼出方法、设备和存储介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5265206A (en) * 1990-10-23 1993-11-23 International Business Machines Corporation System and method for implementing a messenger and object manager in an object oriented programming environment
GB2289186A (en) * 1994-04-05 1995-11-08 Ibm Collaborative working method and system
US5852773A (en) * 1995-01-30 1998-12-22 Wireless Transactions Corporation PSTN transaction processing network employing wireless concentrator/controller
US5781612A (en) * 1995-03-10 1998-07-14 Northern Telecom Limited Radio terminal interfaces for voice and data telecommunications, and methods for their operation
US5625678A (en) * 1995-05-24 1997-04-29 Microsoft Corporation Method and system for allowing switched voice and data communication among multiple application programs
US5752199A (en) * 1995-12-18 1998-05-12 Paradyne Corporation Method and apparatus for sending faxes over analog cellular
US6055441A (en) * 1996-04-30 2000-04-25 International Business Machines Corporation Systems and methods for facsimile communication over a cellular radiotelephone communications link
US5933778A (en) * 1996-06-04 1999-08-03 At&T Wireless Services Inc. Method and apparatus for providing telecommunication services based on a subscriber profile updated by a personal information manager
US5983117A (en) * 1996-06-21 1999-11-09 Nortel Networks Corporation System and method for interfacing a standard telephony device to a wireless communication system
US6055424A (en) * 1997-01-29 2000-04-25 Telefonaktiebolaget Lm Ericsson Intelligent terminal application protocol
GB2322040A (en) * 1997-02-05 1998-08-12 Nokia Mobile Phones Ltd Number storage and call establishment in a cordless/cellular hybrid phone

Also Published As

Publication number Publication date
IL131630A (en) 2006-10-05
US6269254B1 (en) 2001-07-31
BR9904366A (pt) 2000-06-13
ATE291806T1 (de) 2005-04-15
AU4484599A (en) 2000-04-13
BRPI9904366B8 (pt) 2016-09-13
BRPI9904366B1 (pt) 2015-08-25
KR100342952B1 (ko) 2002-07-04
EP0994614B1 (en) 2005-03-23
EP1519532A3 (en) 2005-06-08
TW457823B (en) 2001-10-01
DE69924337D1 (de) 2005-04-28
IL176365A (en) 2008-11-03
JP4362178B2 (ja) 2009-11-11
EP0994614A2 (en) 2000-04-19
JP2000165960A (ja) 2000-06-16
IL131630A0 (en) 2001-01-28
CN1249640A (zh) 2000-04-05
HK1026997A1 (en) 2000-12-29
EP1519532A2 (en) 2005-03-30
KR20000034944A (ko) 2000-06-26
CA2282996C (en) 2004-11-09
AU734151B2 (en) 2001-06-07
AR021829A1 (es) 2002-08-07
DE69924337T2 (de) 2005-08-11
CA2282996A1 (en) 2000-03-28
EP0994614A3 (en) 2002-07-31

Similar Documents

Publication Publication Date Title
CN1226885C (zh) 无线电通信装置和其中建立双模式呼叫的方法
CN1359585A (zh) 用于从配置在综合电信网络中的实体中提供至业务节点的接入的系统与方法
CN1227862C (zh) 多媒体信息通信系统
CN1222896C (zh) 用户简档数据的管理
CN1914893A (zh) 用Web浏览器统一管理局域网、广域网和因特网上的不同类型的通信的方法及装置
CN100336018C (zh) 用于对应用启动进行管理的便携式终端和方法
CN1582596A (zh) 电信网络中控制及启用移动电话中高级服务和用户界面的方法、装置和配置
CN1435043A (zh) 呼叫中心运用方法及装置
CN1497932A (zh) 管理个人电话记录的系统和方法
CN1497931A (zh) 复制和传送电话对话的系统和方法
CN1870532A (zh) 一种信令跟踪方法和系统
CN1497930A (zh) 处理个人电话记录器命令的系统和方法
CN1801231A (zh) 紧急通报系统和紧急通报方法
CN101056339A (zh) 回铃音与振铃音相互转换的方法、系统及装置
CN1874328A (zh) 实现业务互通的方法及系统
CN1610913A (zh) 请求匹配系统和方法
CN1348664A (zh) 网关中的电信业务标识
CN1852362A (zh) 被叫向主叫提供指示信息的方法及其系统
CN1312635A (zh) 多业务通信系统及方法
CN1399839A (zh) 包括一个或多个有程序设计功能的电话通信设备的分布式通信网络
CN101076198A (zh) 多媒体彩像业务实现方法
CN1949752A (zh) 一种电路交换网与ip多媒体子系统网络互通的系统和方法
CN1235421C (zh) 智能终端应用协议
CN1852179A (zh) 一种实现合法监听的系统和方法
CN1617504A (zh) 通信系统及其方法、以及它们的提供媒体

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MOTOROLA MOBILE CO., LTD.

Free format text: FORMER OWNER: MOTOROLA INC.

Effective date: 20101230

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20101230

Address after: Illinois Instrunment

Patentee after: MOTOROLA MOBILITY, Inc.

Address before: Illinois Instrunment

Patentee before: Motorola, Inc.

C41 Transfer of patent application or patent right or utility model
C56 Change in the name or address of the patentee
CP01 Change in the name or title of a patent holder

Address after: Illinois Instrunment

Patentee after: MOTOROLA MOBILITY LLC

Address before: Illinois Instrunment

Patentee before: MOTOROLA MOBILITY, Inc.

TR01 Transfer of patent right

Effective date of registration: 20160505

Address after: American California

Patentee after: Google Technology Holdings LLC

Address before: Illinois Instrunment

Patentee before: MOTOROLA MOBILITY LLC

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20051109

Termination date: 20170927

CF01 Termination of patent right due to non-payment of annual fee