throbber
(12) United States Patent
`Mathis
`
`USOO6269254B1
`(10) Patent No.:
`US 6,269,254 B1
`(45) Date of Patent:
`Jul. 31, 2001
`
`11/1999 Sandler et al. ....................... 455/557
`5,983,117
`4/2000 Tornquist et al. ................... 455/414
`6,055,424
`4/2000 Wieand et al. ...................... 455/557
`6,055,441
`sk - cited by examiner
`Primary Examiner William Trost
`ASSistant Examiner Tilahun Gesesse
`(74) Attorney, Agent, or Firm-Hugh C. Dunlop; Romi N.
`Bose, Hisashi D. Watanabe
`(57)
`ABSTRACT
`A radio communications device has a memory having Stored
`therein a user application program (16), a telephony program
`(21) Appl. No.: 09/161,817
`(18) and an application programming interface (API) 30
`between these. Various aspects of the API are described. In
`(22) Filed:
`Sep. 28, 1998
`(51) Int. Cl." ................................................... H04B 1/38 CEE, tI At fishing of A
`(52) U.S. Cl. ........................ 455/557; 455/553; 379/93.04
`pnony progr
`plS,
`gument of
`command for establishing the call, an array identifying
`(58) Field of Search
`0. - - - - - - - 455/556, 557,
`Several terminal objects (54–58), thereby permitting estab
`lishment of a call for multiple terminal objects. In another
`455/553,552, 84,575; 379/93.04, 93.05,
`93.06, 93.24
`aspect, groupings of events are described and an API com
`mand defines an event class from one of the groups together
`with an ID defining an event within the event class. In a
`References Cited
`further aspect, a program in the telephony program is called
`U.S. PATENT DOCUMENTS
`to create a call object (50). The call object is created
`:
`regardless of whether radio Service for the radio comunica
`5,625,678 : 4/1997 Blomfield-Brown .................. 379/93
`: 7.E. Atlal - - - - - - - - -
`- - - 25, tions device has been established.
`
`(54) RADIO COMMUNICATIONS DEVICE AND
`METHOD WITH API BETWEEN USER
`APPLICATION PROGRAMAND
`TELEPHONY PROGRAM AND METHOD
`
`(75) Inventor: James E. Mathis, Barrington, IL (US)
`(73) Assignee: Motorola, Inc., Schaumbrug, IL (US)
`(*) Notice:
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 0 days.
`
`(56)
`
`5,852,773 - 12/1998 Hu. ... 455/557
`5,933,778 * 8/1999 Buhrmann et al. .................. 455/461
`
`12 Claims, 6 Drawing Sheets
`
`TERMINAL
`CONNECTION 1
`
`Ya
`w
`\
`
`
`
`14
`
`
`
`f
`f
`7O
`) - - -
`(CALL 2)
`Nye -
`
`
`
`
`
`
`
`
`
`I
`
`6O
`
`w
`
`LOCAL
`CONNECTION
`
`TERMINAL
`CONNECTION 2
`
`er s
`
`N
`N
`
`- - - - -
`
`f
`f
`/
`M
`M
`
`- cree WJENA, 1.
`C- --
`\'l-
`\CONNECTION 3/
`REMOTEY
`\CONNECTIO)( N-- ---
`- - - 1 \,
`( TC2
`58
`N - 1
`- 1
`xics, 66
`
`Ex.1016
`APPLE INC. / Page 1 of 17
`
`

`

`U.S. Patent
`
`Jul. 31, 2001
`
`Sheet 1 of 6
`
`US 6,269,254 B1
`
`16
`
`17
`
`
`
`
`
`OTHER
`CASS TAPI
`
`
`
`15
`
`14
`
`1O
`
`24
`
`TRANSCEIVER
`SOFTWARE
`
`
`
`VOICE DATA
`DATA
`R.F. HARDWARE
`
`Az7G. 7 ll
`
`13
`
`17
`
`OTHER
`APP. CLASSES JTAP
`
`VM
`
`29
`
`TRANS
`CEIVER
`S.W.
`
`16
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`24
`
`VOICE DATA
`R.F. HARDWARE
`
`3
`
`
`
`16
`
`PHONE APPLET
`
`18
`
`
`
`JTAP METHOD
`IMPLEMENTATION
`
`3O
`
`22
`
`GSM
`TRANSCEIVER
`
`A/VG.. 3
`
`Ex.1016
`APPLE INC. / Page 2 of 17
`
`

`

`U.S. Patent
`
`Jul. 31, 2001
`
`Sheet 2 of 6
`
`US 6,269,254 B1
`
`14
`
`JTAP
`
`4O
`GOs)
`PROVIDER
`
`42
`
`(CERMED
`(ERIED
`
`
`
`- - - - - - - s
`
`f
`?
`f
`7O
`f
`f
`---
`(CALL 2)
`\ y
`-
`
`ADDRESS
`
`5O
`
`4.
`8
`
`52
`
`46
`
`TERMINAL
`CONNECTION 1
`
`56
`
`LOCAL
`CONNECTION
`
`TERMINAL
`CONNECTION 2
`
`N
`
`f
`f
`/
`
`Y
`--- rcree YENA, -1
`C- --
`\'l-
`\CONNECTION 3/
`REMOTEY
`\CONNECTIO). SS-N-
`7--
`A/VG.. 4 Yxics
`
`6O
`
`e -
`
`N
`
`- - -
`
`er
`
`s
`
`/
`
`s a
`
`N
`
`
`
`SCAN TO FIND
`NETWORK
`
`COMMAND
`TRANSCEIVER
`TO PLACE CALL
`
`Ex.1016
`APPLE INC. / Page 3 of 17
`
`

`

`U.S. Patent
`
`Jul. 31, 2001
`
`Sheet 3 of 6
`
`US 6,269,254 B1
`
`JAWA
`AppleTONS
`JTAPI
`
`APPLETS
`
`JAWA RUN-TIME
`
`
`
`
`
`
`
`
`
`NETWORK COMPUTER
`
`REMOTE ACCESS MECHANISM 1
`1 (JAVA RMI OR JOE OR, A
`TELEPHONY PROTOCOL)
`
`
`
`
`
`SERVER
`OR
`"POWER DESKTOP
`
`
`
`
`
`AVG. Z.
`
`REMOTE TELEPHONY SERVER
`
`TSAPI
`
`TAPI OER
`
`
`
`
`
`IP/ISDN/ATM
`
`
`
`JAWA
`APPLETS
`APPLICATIONS
`JAVA TELEPHONY API
`
`JAVA RUN-TIME
`
`XTL
`
`OTHER
`APIs
`
`TAPI
`TSAPI
`TELEPHONY H/W
`(POTS CARD/FAX CARD)
`
`A77G. S.
`
`Ex.1016
`APPLE INC. / Page 4 of 17
`
`

`

`U.S. Patent
`
`Jul. 31, 2001
`
`Sheet 4 of 6
`
`US 6,269,254 B1
`
`
`
`
`
`
`
`
`
`
`
`CALL
`CONTROL
`
`CAPABILITIES
`
`PRIVATE
`DATA
`
`Ex.1016
`APPLE INC. / Page 5 of 17
`
`

`

`U.S. Patent
`
`Jul. 31, 2001
`
`Sheet S of 6
`
`US 6,269,254 B1
`
`PROVIDER
`
`CALL
`
`CONNECTION
`
`CONNECTION
`
`
`
`
`
`
`
`12
`56 ADDRESS
`
`
`
`1
`ADDRESS 456
`9
`0.
`
`
`
`
`
`
`
`
`
`TERMINAL
`CONNECTIONS
`
`ORIGINATION
`TERMINAL
`
`DESTINATION TERMINALS
`
`A77G. ZO
`
`Ex.1016
`APPLE INC. / Page 6 of 17
`
`

`

`U.S. Patent
`
`Jul. 31, 2001
`
`Sheet 6 of 6
`
`US 6,269,254 B1
`
`(EXCEPT FAILED
`OR DISCONNECTED)
`
`Gools
`
`(EXCEPT DROPPED)
`
`Gools
`
`(SSE)
`
`GCTIVE) AVG. Z2
`
`TERMINAL 1
`
`ADDRESS
`
`CALL
`
`ADDRESS
`
`
`
`TERMINAL 2
`TERMINAL 3
`
`2
`
`ACTIVE
`
`CONNECTED
`
`s 3.
`
`4
`
`6
`
`DROPPED
`
`INPROGRESS
`
`RINGING
`
`CONNECTED
`
`ACTIVE
`
`conscio G.
`pisconsciel G.
`
`DISCONNECTEDDISCONNECTED
`
`DROPPED
`DROPPED
`
`A77G. Z3
`
`Ex.1016
`APPLE INC. / Page 7 of 17
`
`

`

`1
`RADIO COMMUNICATIONS DEVICE AND
`METHOD WITH API BETWEEN USER
`APPLICATION PROGRAMAND
`TELEPHONY PROGRAM AND METHOD
`
`FIELD OF THE INVENTION
`
`This invention relates to the radio communications device
`having a user application program (commonly referred to as
`an application or applet) and a telephony program (e.g. an
`instance of a telephony class) and an application program
`ming interface (API) between the user application program
`and the telephony program. The invention relates to aspects
`of the API and it relates to a method invoked through the
`API, for example a method for establishing a dual mode call.
`BACKGROUND OF THE INVENTION
`Object oriented program languages Such as Java (TM) are
`increasingly popular in more and more devices on account
`of portability of programs acroSS platforms, operating Sys
`tems and devices. This means that a program developed for
`one device is more readily used on another device of
`different characteristics, for example different operating
`Systems or different microprocessors.
`This popularity of object oriented programs is extending
`into devices that are significantly Smaller in terms of
`memory size and processing power than traditional personal
`computers and other platforms on which Such languages
`have been in widespread use. Problems have emerged in
`attempting to use object orienting languages Such as Java
`(TM) on very small platforms for a number of reasons. An
`example of a problem lies in the need to Support a complete
`Set of object classes, where an object is a Self-contained
`computer program which interacts with other programs in a
`defined manner, and where a class is a generic template for
`a set of objects with Similar features. A problem is that in
`order to maintain the portability of programs acroSS different
`platforms, uniformity needs to be present in the classes that
`any given application expects to be able to invoke. For
`example, plava (TM) has a very large set of class libraries
`and efforts are in place to define a Smaller language to be
`termed “eJava” (TM) using only a subset of the complete set
`of class libraries.
`An example of a class is a telephony class that is invoked
`through a Java (TM) telephony API (JTAPI). An instance of
`such a class could be termed a “JTAPI implementation”.
`JTAPI is a portable, object oriented application program
`ming interface for JAVA (TM)-based computer-telephony
`applications described at the following universal resource
`locator on the worldwide web: www.javasoft.com/products/
`JTAPI/index.html. The JAVA (TM) Telephony API supports
`both first- and third-party telephony application domains.
`The API is designed to make programming Simple applica
`tions easy, while providing those features necessary for
`advanced telephony applications. JTAPI is a set of APIs.
`There is a “core” API providing a basic call model and
`rudimentary telephony features, Such as placing telephone
`calls and answering telephone calls. The core API is Sur
`rounded by Standard extension APIs providing functionality
`for Specific telephony domains Such as call centers and
`media Stream access. Applications written using JTAPI are
`portable acroSS Various computer platforms and telephone
`systems. Version 1.2 of JTAPI was released to the public in
`December 1997.
`An example of use of JTAPI is in a network configuration
`where the JTAPI application or JAVA (TM) applet runs on
`a remote Station, Such as a network computer with only a
`
`15
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`US 6,269,254 B1
`
`2
`display, keyboard, processor and Some memory. This com
`puter accesses network resources, making use of a central
`ized Server that manages telephony resources. JTAPI com
`municates with this Server via a remote communication
`mechanism, such as the remote method invocation (RMI) of
`Java (TM) or a telephony protocol. The JAVA (TM) tele
`phony API is composed of a set of JAVA (TM) language
`packages. Each package provides a piece of functionality for
`a certain aspect of computer-telephony applications.
`Implementations of telephony Servers choose the pack
`ages they Support, depending on the capabilities of there
`underlying platform hardware. Applications may query for
`the packages Supported by the implementation they are
`currently using. Additionally, application developerS may
`concern themselves with only the Supported packages that
`applications need to accomplish a task. For example, a call
`package permits applet designers to add telephone capabili
`ties to a web page, while a number of Standard extension
`packages extend the JTAPI core package. These extension
`packages bring additional telephony functionality to the
`API, Such as: all control, call center, media, phone, private
`data and capabilities packages.
`It would be desirable to use a standard telephony API Such
`as JTAPI as a telephony API for a radio telephone or other
`radio communication device.
`A number of problems lie in the way of using JTAPI as a
`telephony API for a wireleSS communication device, and in
`particular as a telephony API for a Global System for Mobile
`(GSM) radio telephone. In general JTAPI still suffers from
`the burden of having over 63 event classes with a total class
`file size of approximately 130 k bytes. This represents a
`Substantial memory allocation for a relatively minor element
`of an overall program for a radio telephone. There is a need
`to reduce the memory requirement for programs that are
`JTAPI compatible.
`In the context of a GSM communication device, there are
`GSM functions that cannot be easily accessed using existing
`JTAPI syntax and method signatures. Moreover, there is a
`need to Support a dual-mode call (which is a term used in
`GSM for a voice and fax call or a voice and data call) and
`the concept of a dual-mode call is unknown in wireline
`telephony and in JTAPI. Simply adding to JTAPI or reducing
`JTAPI do not provide Satisfactory Solutions, because adding
`to JTAPI increases the need for finding event classes, and
`reducing JTAPI eliminates the benefit of a standard API that
`permits portability of applications acroSS platforms.
`Accordingly, there is a need for a telephony API for a
`radio communications device and associated classes that
`occupy a minimum of memory and Support features that are
`unique to radio telephony.
`BRIEF DESCRIPTION OF THE DRAWINGS
`FIG. 1 shows an example of a radio telephone device in
`accordence with a first embodiment of the invention.
`FIG. 2 shows an example of a radio telephone device in
`accordance with a Second embodiment of the invention.
`FIG. 3 is a Software architecture diagram illustrating the
`structure of software or either of the radio telephones of FIG.
`1 and FIG. 2.
`FIG. 4 is a program flow diagram illustrating further
`details of the JTAPI method implementation of FIG. 3.
`FIGS. 5 and 6 are flow diagrams illustrating details of the
`JTAPI method implementation of FIG. 3.
`FIGS. 7-13 are referred to in Appendix 1 which describes
`JTAPI.
`
`Ex.1016
`APPLE INC. / Page 8 of 17
`
`

`

`US 6,269,254 B1
`
`15
`
`25
`
`3
`DETAILED DESCRIPTION OF THE DRAWINGS
`Referring to FIG. 1, a radio telephone is illustrated in
`terms of different layers, with hardware at the lowest layer
`and applications Software at the highest layer. The radio
`telephone comprises a first microprocessor 10
`(microprocessor A), a second microprocessor 11
`(microprocessor B) and certain RF hardware 13. The micro
`processors A and B are connected together. The micropro
`cessor B is connected to the RF hardware 13. The RF
`hardware 13 includes at least a receiver and a transmitter.
`The RF hardware also has voice communication elements 23
`which preferably include a voice coder, by way of example,
`and data communication elements 24 which preferably
`include a data modem or fax modem, by way of example.
`The microprocessor has an operating System (OS) 14 Such as
`OS 9000 Supplied by Microware Systems Corporation of
`Des Moines, Iowa. Above the operating System is shown a
`virtual machine 15, such as a commercially available JAVA
`(TM) Virtual machine. An application program 16 and
`various other JAVA (TM) classes 17 run on the virtual
`machine 15. One of the classes 17 is a JTAPI implementa
`tion 18. The microprocessor 11 has transceiver Software 20
`which performs Such functions as call control, framing and
`generally byte level manipulation Such as block coding. The
`transceiver Software 20 communicates acroSS a common
`service provider module interface (CSPMI) 22 with the
`operating System 14.
`AS an alternative to the arrangement of FIG. 1, the
`microprocessors A and B can in effect be integrated into a
`Single integrated circuit 25 as shown in phantom outline in
`FIG. 2. In this embodiment, the microprocessor 10, the
`hardware 13, the operating System 14, the Virtual machine
`15 and the various Software elements 16-18 are the same as
`in the embodiment of FIG.1. In place of the microprocessor
`B, there is a digital signal processor (DSP) integrated with
`the microprocessor 10 in the single integrated circuit 25. The
`DSP27 has DSP code 28 which performs framing and other
`byte-level manipulations Such as block coding, while other
`transceiver Software functions Such as call control are per
`formed by transceiver software code 29 which is run on the
`microprocessor 10 using the operating System 14. A Suitable
`integrated circuit 25 is the M-core (TM) integrated micro
`processor and DSP available from Motorola, Inc., of
`Schaumburg, Ill.
`In FIG. 3, the application 16 is shown (refered to as a
`“phone applet”) and the JTAPI method implementation 18 is
`shown. A JTAPI interface 30 is shown interfacing between
`the phone applet 16 and the JTAPI method implementation
`18. The JTAPI method implementation 18 controls and
`receives input from a radio transceiver Such as a GSM
`50
`transceiver 30 Over the CSPMI 22. The GSM transceiver 30
`comprises the Second microprocessor 11, the RF hardware
`13 and the transceiver software 20 (all shown in FIG. 1).
`The JTAPI 30 is substantially as described in the JTAPI
`Specification version 1.2, which defines the Syntax or opera
`tion of high level objects, such as “Provider” and is set out
`in Appendix A. In addition, certain operations Specific to
`GSM are supported, for which the following specific seman
`tics are now defined.
`The domain of the JTAPI Provider is simply the mobile
`station (MS). The only addresses in the Provider's domain
`are those of the MS, e.g., a Single address in the domain for
`a single line phone.
`Provider.getAddresses() returns an array of addresses for
`the MS, typically with only 1 entry. If the MS Supports
`multiple lines and telephone numbers, the default or primary
`address is the first entry.
`
`4
`Provider.getAddress() accepts only the number or num
`bers assigned to the MS. By default, the primary address,
`i.e., getAddresses()0, is returned.
`Provider getTerminals( ) returns an array of Terminals
`supported by the MS. A separate terminal is defined for each
`call bearer type (see below).
`Provider getTerminals( ) takes a string specifying the
`name of the terminal. By default, the voice Terminal is
`returned. All implementations must support VOICE, DATA
`and FAX as names for the respective Terminals (see below).
`Provider.createCall() will create a call even if the Pro
`vider is OUT OF SERVICE, as long as it has not been
`shut down. The call cannot be Successfully placed until the
`Provider is IN SERVICE. This feature is a change to JTAPI
`1.2 createCall() pre-conditions and is described below in
`greater detail with reference to FIGS. 5 and 6.
`Call.connect( ) parses the destination address String for
`common SS codes and address flags. If the destination
`number String passed to Call.connect() starts with a "+”
`character, the type-of-number (TON) is set to INTERNA
`TIONAL; otherwise, the TON is UNKNOWN. If the string
`contains only numeric digits, the numbering-plan identifier
`(NPI) is ISDN, otherwise it is UNKNOWN.
`and
`Terminal Connection. join (
`)
`TerminalConnection.leave() are used to change call modes
`in a dual-mode (voice and data or voice and fax) call. There
`is always exactly one TerminalConnection that is active in a
`call; invoking join() on another TerminalConnection causes
`a Switch in call mode and calling leave() on the active
`TerminalConnection automatically activates the alternate
`OC.
`Applications can interact with the information content of
`the call using the API defined for MediaTerminalConnec
`tion. If a Terminal Connection returned from
`Connection. getTerminal Connections( ) implements
`MediaTerminalConnection, the application can use the fol
`lowing
`methods:
`MediaTerminalConnection.getMediaAvailability( ), which
`is implemented as defined in JTAPI 1.2;
`MediaTerminalConnection.getMediaState( ), which is
`implemented as defined in JTAPI 1.2;
`MediaTerminalConnection..generateDtmf(), which is used
`to generate DTMF tones on the call. All other methods in
`MediaTerminalConnection are optional.
`The Provider will not necessarily disconnect any active
`calls when it goes out of service. The Provider may keep the
`Call active and attempt to reestablish the call, assuming a
`temporary communication failure. The application can
`assume that the Provider is attempting to reestablish a call if
`the ProvOutOfServiceEv is not closely followed by Call
`InvalidEV and related ConnDisconnectedEV events (i.e. if
`these latter do not follow within a timeout time).
`Furthermore, some GSM functions cannot be easily
`accessed using the existing JTAPI Syntax and method Sig
`nature. The following new methods or methods with differ
`ent Signatures are defined.
`ProvidergetNetworkID() returns the name of the current
`network.
`Provider.getServiceLevel() returns the operating Service
`level, NONE, EMERGENCY, FULL.
`ProviderisRoaming() returns true if the MS is not on the
`home PLMN.
`These new methods allow the application to determine the
`current public land mobile network (PLMN), operating
`Service level and whether or not the unit is on the home
`PLMN.
`
`35
`
`40
`
`45
`
`55
`
`60
`
`65
`
`Ex.1016
`APPLE INC. / Page 9 of 17
`
`

`

`US 6,269,254 B1
`
`S
`In JTAPI, the Terminal object represents the physical
`end-point of the call. It is assumed that the call is carrying
`Voice. To Support the additional call bearer types defined for
`GSM, additional Terminal Subclasses are defined, one for
`each major call bearer type. The DataTerminal Subclass of
`Terminal represents the physical end-point of a GSM data
`call. The FaxTerminal subclass of Terminal represents the
`physical end-point of a GSM fax call.
`A typical GSM MS will support at least three Terminals,
`a VOICE, a DATA and a FAX Terminal. An MS may support
`additional Terminal instances or Subclasses (e.g., a Internal
`Data Terminal for internal data and a Modem Data Terminal
`for data sent to a connected PC). Applications accept incom
`ing calls of various bearer types by observing incoming call
`events on the appropriate Terminal.
`There is now described, with reference to FIG. 4, a
`particular feature that permits Supporting of a dual mode
`GSM call.
`FIG. 4 illustrates details of the JTAPI implementation 18
`of FIG. 3. Central to the method is the provider method 40.
`This provider method interfaces with the operating System
`14 in a manner that need not be described in detail. AS used
`in this context, a “method’ is a function defined inside a
`class that operates on instances of that class. The provider
`method 40 has associated with it a voice terminal object 42,
`a data terminal object 44, a fax terminal object 46, and an
`address object 48. When a call is to be set up, the provider
`method 40 creates a call object 50. The call object 50 creates
`a local connection object 52. For a simple voice connection,
`the local connection object 52 creates a terminal connection
`object 54 which references the voice terminal 42. As will be
`described in greater detail, the local connection object 52
`can also create a Second terminal connection object 56 (and
`even a third terminal connection object 58). The second
`terminal connection object 56 references the data terminal
`object 44. The third terminal object 58, if present, can
`reference the fax terminal 46. As an alternative
`configuration, the Second and third terminal connection
`objects can be generated for the purpose of creating a data
`and fax call, as will be described in greater detail.
`It may be noted that if the call is a three-way call, the call
`object 50 will create an additional remote connection object
`60 with its own associated terminal connection objects
`62-66, as necessary. It may also be noted that if there is
`another call (for example a call on hold) the provider method
`40 can create an additional second call object 70 which will
`have its own corresponding local connection and terminal
`connections. In all cases, for a given radio telephone, there
`are only three terminals: the Voice terminal, the data terminal
`and the fax terminal. So in all cases, the various terminal
`connection objects created by the local connection 52 and
`the remote connection 60 and any other local connections or
`remote connections all reference the respective voice termi
`nal object 42, data terminal object 44 and fax terminal object
`46.
`In the process about to be described, it is the aim that the
`GSM transceiver 30 sets up a call with a remote switch over
`a radio telephone communications channel and in the case
`where the call is a dual mode (e.g. Voice and data or voice
`and fax) it is the aim for the JTAPI method implementation
`18 to set up a call with dual mode capability and to inform
`the GSM transceiver over the CSPMI 22 that a dual mode
`call has been established, so that the GSM transceiver 30 can
`inform the GSM system that the call is a dual mode call, so
`that in turn the Switch of the GSM system, upon receipt of
`the request to Set up a call makes a call and reserves a
`
`5
`
`15
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`6
`modem of its interworking function to Support the data or
`fax functionality of the call. It is further the aim to establish
`this dual mode call at the instigation of the phone application
`16, using the JTAPI command call.connect().
`In JTAPI version 1.2, call.connect() expects an argument
`that is a terminal object, thereby permitting establishment of
`a Single mode call to or from that terminal. In order to
`establish a dual mode call, the preferred embodiment of the
`present invention permits call.connect() to be overridden to
`add a method that takes as a first argument a terminal array,
`instead of a single originating terminal. The terminal array
`is the argument of the command call.connect and contains an
`array of terminal objects which may be a voice terminal and
`a data terminal or a voice terminal and a fax terminal or a
`data terminal and a fax terminal or a voice terminal, a data
`terminal and a fax terminal. When the method provider 40
`is invoked with this command and an array as an argument,
`it creates the call object 50 and the local connection object
`22. The local connection object 22 creates the first and
`second terminal objects 54 and 56. The local connection
`object 52 queries the first terminal connection object 54 for
`its terminal and the first terminal object 54 replies to the
`local connection object 52 indicating that its terminal (i.e.
`the terminal that its references) is the voice terminal.
`Similarly, the Second terminal connection object 56 is que
`ried by the local connection object 52 and replies by
`indicating that its terminal is the data terminal. The local
`connection object 54 informs the call object 50 that a data
`terminal connection and a Voice terminal connection are
`established. The call object 50 informs the provider 40 that
`the dual mode call has been established. The provider 40
`informs the GSM transceiver over the CSPMI 22 (through
`the OS 14) that the dual mode call has been established.
`The provider 40 establishes the call through the trans
`ceiver 30 as follows. The provider 40 creates a buffer that
`has as its type PlaceCallReq and it adds parameters M/O/C
`from the following Table 1. These parameters describe the
`call.
`
`TABLE 1.
`
`Parameter Name
`
`Parameter Type
`
`M?OfC
`
`CallType
`CALL TYPE
`M
`CalledParty'
`PHONE NUMBER
`C
`Repeatindicator?
`REPEAT INDICATOR
`O
`CallType?
`CALL TYPE
`O
`DataPerameters
`DATA-PARAMETERS
`C
`CLIRDisposition'
`CLIR DISPOSITION
`O
`CUGInfo
`CUG INFO
`O
`"Optional for Emergency calls, Mandatory for all other call types.
`*Mandatory for Multiple Call Type Calls.
`Mandatory when any Call Type is for Fax or Data.
`May be included if client wishes to override CLIR subscription default.
`May be included if client wishes to override CUG subscription defaults.
`The contents of this buffer are sent across the serial link
`22 to the transceiver 30 and, if accepted, the transceiver
`returns the confirmation message from the following table 2.
`
`TABLE 2
`
`Parameter Name
`
`Parameter Type
`
`M?OfC
`
`CallHandle
`CALL HANDLE
`"Mandatory of the call request is successful.
`This confirmation message gives call-handle which
`allows the microprocessor 10 to identify the call in Subse
`quent commands.
`
`C
`
`Ex.1016
`APPLE INC. / Page 10 of 17
`
`

`

`US 6,269,254 B1
`
`15
`
`25
`
`35
`
`40
`
`7
`In Table 1, call type 2 indicates an alternate call type and
`indicates that the alternate call type is data or fax (the initial
`call type is always voice in GSM). In this manner, the
`provider 40 informs the transceiver 30 that there is an
`alternate call type and that it is data (alternatively fax). Thus,
`when the transceiver 30 sets up the call, the Switch is then
`informed that there an alternate call type and that this
`alternate call type requires reservation of a data modem (or
`a fax modem).
`The first terminal array entry is the initially active
`terminal, but the call is configured to handle any of the
`terminals declared in the array, that is, the terminal connec
`tions to the other terminals are placed in the call control
`terminal
`connection. bridge d State
`(or
`terminalconnection. passivestate). As discussed above,
`joined/leave is used to control the current mode of the call.
`This variant of connect () is used to support the GSM
`requirement of initially declaring dual-mode call parameters
`(thus requiring the application 16 to declare up front all of
`the terminals that might participate in the call).
`Call.connect() is overridden to add methods to explicitly
`specify the TON (type of number) and NPI (numbering plan
`identifier) of the destination address String, if these cannot be
`inferred as described above.
`Call.setFmergency( ) is defined to set the emergency
`mode flag.
`Call.setCUGInfo() is defined to specify closed user group
`information in a programmatic form rather than using SS
`(Supplementary Services) codes in the destination address
`String.
`Call.setCalleridRestricted() is defined to specify calling
`line identification restriction requests in a programmatic
`form rather than using SS codes in the destination address
`String.
`Call.offHook() is not supported.
`Applications cannot specify the transfer or conference
`controller. The set Transfer Controller ( ) and
`setConferenceController() methods throw MethodNotSup
`ported and get Conference Controller ( ) and
`getTransferController() return <NULL>
`The setConference Enable(), getConferenceEnable( ),
`setTransferEnable() and getTransferEnable() manipulate
`internal flags that control the ability to transfer or conference
`this call.
`Call.consult( ) invocations must include the destination
`address String; the unspecified variant is not Supported.
`Connection.reject(int) is defined to allow the application
`to specify a reject reason when refusing a call. This Supports
`user-determined-user-busy functionality.
`Connection.addToAddress( ) is not Supported.
`Connection.park() is not Supported.
`A Subclass of terminal connection is defined (data termi
`nal connection) representing the physical link between the
`network and the end-point data terminal. Methods are
`defined to specify and query the data call parameters, Such
`as data rate, modem type, layer to protocol etc. Similarly, a
`Sub-class of terminal connection (fax terminal connection),
`which is more accurately described as a Sub-class of media
`terminal connection) represents the physical link between
`the network and the end-point terminals. Methods are
`defined to Specify and query the fax call parameters, Such as
`data weight, group mode etc.
`FaxTerminalConnection also provided media-specific
`methods for configuring the faX media Stream, and trans
`mitting data pages and end-of-page indicators.
`
`45
`
`50
`
`55
`
`60
`
`65
`
`8
`A new Terminal event is defined to allow applications to
`determine if call forwarding is active for a “Term Forward
`ingActiveEv' specific Terminal. Forwarding for different
`Services (i.e., voice, fax and data) are signaling through the
`appropriate Terminal object (i.e., VOICE, DATA, FAX).
`It has been mentioned that Provider.createCall( ) will
`create a call even if the Provider is OUT OF SERVICE, as
`long as it has not been shut down and that the call cannot be
`successfully placed until the Provider is IN SERVICE. This
`feature is described now in greater detail with reference to
`FIGS. 5 and 6.
`Referring to FIG. 5, the case will be considered where, for
`whatever reason, the application 16 Seeks to place a call or
`establish a connection or a packet data Session. The appli
`cation 16 is typically the interface to the user and may Seek
`to initiate a call by, for example, the user powering up the
`radio communications device (the mobile station or MS) and
`dialing a telephone number. The application 16 initiates the
`program (or method) illustrated in FIG. 5 by calling
`(invoking) a Provider.createCall method (step 100) through
`a Provider.createCall() command across the API 30. If, in
`Step 101, the communications device is in a shut down
`mode, the program Simply returns an error in Step 102 and
`exits at step 103. If the device is not in the shut down mode,
`a Call object 50 is created in step 110, and the program of
`FIG. 5 is completed at step 111, ready for the program of
`FIG. 6 to begin.
`Immediately following creation of the Call object 50 and
`without any further events or conditions (and in the absence
`of any overriding event), the application 16 calls (invokes)
`a Call.connect method (step 150) through a Call.connect()
`command across the API 30. If, in step 151, the communi
`cations device is determined to be out of Service, the
`program (or method) waits in step 152 while other functions
`perform a Scanning operation in Step 154. A waiting period
`of about 10 Seconds is typically Sufficient to permit connec
`tion to a cellular network in a Scanning routine. If, following
`step 151 or step 156, the communications device has estab
`lished Service with a radio communications network, Step
`158 begins and a command is sent to the transceiver 30
`acroSS the Serial interface 22 to place the call. The program
`of FIG. 6 ends at step 160.
`In this manner, a user is able to begin dialing a telephone
`number to place a call even before Service has been estab
`lished. This is a particularly useful feature Since a typical
`user wishes to begin placing a call as Soon as the commu
`nications device is powered up, without regard for whether
`Service has been established.

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket