|
JCAT v0.3.1 |
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
A JccProvider
represents the telephony software-entity that
interfaces with a
telephony subsystem.
The JccProvider acts as
a Factory to create standard EventFilter
objects. These
standard EventFilter objects should be
provided by the JCC platform implementation. It is hoped that these filters
will meet the needs of many applications, thus sparing them of the need to
implement them explicitly. It is also possible that by implementing these
on the JCC platform (rather than on the application platform) that the cost
of remote filter queries can be eliminated thereby addressing the performance
problems.
Hence, a number of standard filters and filter combiners are proposed. The effect of these standard filters and filter combiners is to allow for address ranges in combination with event "masks". Using these methods, it is possible to create filters that return a given event disposition for address in specific ranges (with holes and overlaps), or for specific events, or a combination of both. It is also possible to make filters that combine standard and custom filters. This would make it possible to quickly determine the filter disposition in many common cases, using standard filters, and only call a custom filter is unusual cases. We later look at each of these standard filters individually.
IN_SERVICE
, OUT_OF_SERVICE
, or
SHUTDOWN
. The JccProvider state represents whether any
action on that JccProvider may be valid. The following tables describes each
state:
IN_SERVICE
|
This state indicates that the JccProvider is currently alive and available for use. |
OUT_OF_SERVICE
|
This state indicates that a JccProvider is temporarily not available for use. Many methods in this API are invalid when the JccProvider is in this state. JccProviders may come back in service at any time, however, the application can take no direct action to cause this change. |
SHUTDOWN :
|
This state indicates that a JccProvider is permanently no longer available for
use. Most methods in the API are invalid when the JccProvider
is in this state. Applications may use the shutdown()
method on this interface to cause a JccProvider to move into the
SHUTDOWN state.
|
The following diagram shows the allowable state transitions for the JccProvider.
JccPeer.getProvider(String)
method which is given a string to
describe the desired JccProvider. This method sets up any needed communication
paths between the application and the JccProvider. The string given is one of
the services listed in the JccPeer.getServices()
.
JccProviderListener
interface. Applications instantiate objects
which implement this interface and use the
addProviderListener(JccProviderListener)
method to begin the delivery of
events.
Applications may then query the event object
returned for the specific state change, via the JccEvent.getID()
method.
When the JccProvider changes state,
a JccProviderEvent
is sent to the JccProviderListener, having one of the following event ids:
PROVIDER_IN_SERVICE
, PROVIDER_OUT_OF_SERVICE
,
and PROVIDER_SHUTDOWN
.
A JccProviderEvent
with event id
PROVIDER_EVENT_TRANSMISSION_ENDED
is delivered to all
JccProviderListeners
when the JccProvider
becomes unobservable and is the final event delivered to the listener for that JccProvider instance. When a
JccProvider becomes unobservable, then listener would not be sure of the
state of the JccProvider.
JccCall
object representing new calls using the
createCall()
method. A new JccCall is returned in the
JccCall.IDLE
state. Applications may then use this idle JccCall to
place new telephone calls.
JccAddress
object represents what we
commonly think of as a "telephone number."
Unlike JccCall objects, applications may not create JccAddress
objects. An address is obtained through getAddress(String)
.
Note that a JccProvider might have only a limited number of addresses in its domain.
Hence, if the given address string does not correspond to an address within the domain
of the provider, then the provider throws an exception.
Also, multiple applications may request and communicate with the same
JccProvider implementation. Typically, since each application executes in its
own object space, each will have its own instance of the JccProvider object.
These two different JccProvider objects may, in fact, be proxies for a
centralized JccProvider instance. Methods in Jcc like shutdown()
are specified to
affect only the invoking applications and have no affect on others.
JccProviderListener
is added through addProviderListener(JccProviderListener)
,
the first batch of events may be a "snapshot".
That is, if the listener was added after state changes in the Provider, the first batch of events will inform the
application of the current state of the Provider. Note that these snapshot events do NOT provide a history
of all events on the Provider, rather they provide the minimum necessary information to bring the application
up-to-date with the current state of the Provider.
JccPeer
,
JccPeerFactory
,
JccProviderListener
Field Summary | |
static int |
IN_SERVICE
This state indicates that the JccProvider is currently available for use. |
static int |
OUT_OF_SERVICE
This state indicates that the JccProvider is currently not available for use. |
static int |
SHUTDOWN
This state indicates that the JccProvider is permanently no longer available for use. |
Method Summary | |
void |
addCallListener(JccCallListener calllistener)
Add a call listener to all (future and current) call objects within the domain of this provider. |
void |
addCallLoadControlListener(CallLoadControlListener loadcontrollistener)
Adds a listener to listen to load control related events. |
void |
addConnectionListener(JccConnectionListener connectionlistener,
EventFilter filter)
Add a connection listener to all connections under this JccProvider. |
void |
addProviderListener(JccProviderListener providerlistener)
Adds a listener to this provider. |
JccCall |
createCall()
Creates a new instance of the call with no connections. |
EventFilter |
createEventFilterAddressRange(java.lang.String lowAddress,
java.lang.String highAddress,
int matchDisposition,
int nomatchDisposition)
This method returns a standard EventFilter which is implemented by the JCC platform. |
EventFilter |
createEventFilterAddressRegEx(java.lang.String addressRegex,
int matchDisposition,
int nomatchDisposition)
This method returns a standard EventFilter which is implemented by the JCC platform. |
EventFilter |
createEventFilterAnd(EventFilter[] filters,
int nomatchDisposition)
This method returns a standard EventFilter which is implemented by the JCC platform. |
EventFilter |
createEventFilterCauseCode(int causeCode,
int matchDisposition,
int nomatchDisposition)
This method returns a standard EventFilter which is implemented by the JCC platform. |
EventFilter |
createEventFilterDestAddressRange(java.lang.String lowDestAddress,
java.lang.String highDestAddress,
int matchDisposition,
int nomatchDisposition)
This method returns a standard EventFilter which is implemented by the JCC platform. |
EventFilter |
createEventFilterDestAddressRegEx(java.lang.String destAddressRegex,
int matchDisposition,
int nomatchDisposition)
This method returns a standard EventFilter which is implemented by the JCC platform. |
EventFilter |
createEventFilterEventSet(int[] blockEvents,
int[] notifyEvents)
This method returns a standard EventFilter which is implemented by the JCC platform. |
EventFilter |
createEventFilterMidCallEvent(int midCallType,
java.lang.String midCallValue,
int matchDisposition,
int nomatchDisposition)
This method returns a standard EventFilter which is implemented by the JCC platform. |
EventFilter |
createEventFilterMinimunCollectedAddressLength(int minimumAddressLength,
int matchDisposition,
int nomatchDisposition)
This method returns a standard EventFilter which is implemented by the JCC platform. |
EventFilter |
createEventFilterOr(EventFilter[] filters,
int nomatchDisposition)
This method returns a standard EventFilter which is implemented by the JCC platform. |
EventFilter |
createEventFilterOrigAddressRange(java.lang.String lowOrigAddress,
java.lang.String highOrigAddress,
int matchDisposition,
int nomatchDisposition)
This method returns a standard EventFilter which is implemented by the JCC platform. |
EventFilter |
createEventFilterOrigAddressRegEx(java.lang.String origAddressRegex,
int matchDisposition,
int nomatchDisposition)
This method returns a standard EventFilter which is implemented by the JCC platform. |
JccAddress |
getAddress(java.lang.String address)
Returns an JccAddress object which corresponds to the (telephone) number string
provided. |
java.lang.String |
getName()
Returns the unique string name of this JccProvider instance. |
int |
getState()
Returns the state of the JccProvider. |
void |
removeCallListener(JccCallListener calllistener)
Removes a call listener that was previously registered. |
void |
removeCallLoadControlListener(CallLoadControlListener loadcontrollistener)
Deregisters the load control listener. |
void |
removeConnectionListener(JccConnectionListener connectionlistener)
Removes a connection listener that was registered previously. |
void |
removeProviderListener(JccProviderListener providerlistener)
Removes the given listener from the provider. |
void |
setCallLoadControl(JccAddress[] address,
double duration,
double[] mechanism,
int[] treatment)
This method imposes or removes load control on calls made to the specified addresses. |
void |
shutdown()
Instructs the JccProvider to shut itself down and provide all necessary cleanup. |
Field Detail |
public static final int IN_SERVICE
public static final int OUT_OF_SERVICE
public static final int SHUTDOWN
Method Detail |
public EventFilter createEventFilterEventSet(int[] blockEvents, int[] notifyEvents) throws ResourceUnavailableException, InvalidArgumentException
JccEvent.getID()
).
For event IDs in the blockEvents array, the filter returns EventFilter.EVENT_BLOCK
.
For event IDs in notifyEvents, the filter returns EventFilter.EVENT_NOTIFY
.
If any event ID is not listed in one of the two arrays, the filter returns
EventFilter.EVENT_DISCARD
.
The application is supposed to ensure that an event ID is not
listed in more than one array. If done, the filter may return any one
of the listed event dispositions.
blockEvents
- is an array containing the list of events for which the application
wants to be notified with the call processing blocked.notifyEvents
- is an array containing the list of events for which the application
wants to be notified without the call processing being blocked.
ResourceUnavailableException
- An internal resource for completing this
call is unavailable.
InvalidArgumentException
- One or more of the provided argument is not validpublic EventFilter createEventFilterMidCallEvent(int midCallType, java.lang.String midCallValue, int matchDisposition, int nomatchDisposition) throws ResourceUnavailableException, InvalidArgumentException
EventFilter
, apply the following:
JccConnection.getState()
) of the connection is JccConnection.CONNECTED
, the filter
returns the value matchDisposition.
JccConnection.CONNECTED
, then return nomatchDisposition.
midCallType
- an integer that represents the mid call type. Valid values are defined, i.e. SERVICE_CODE_DIGITS
,
SERVICE_CODE_FACILITY
, SERVICE_CODE_HOOKFLASH
,
SERVICE_CODE_RECALL
, SERVICE_CODE_U2U
, and
SERVICE_CODE_UNDEFINED
.midCallValue
- a string or regular expression that constrains the mid call value (for the purpose of this specification, the platform
will use the Perl5 regular expressions).matchDisposition
- indicates the disposition of a JccConnectionEvent.CONNECTION_MID_CALL
, getMidCallData()
gets access to the MidCallData
object. The disposition should be one of the legal
dispositions namely, EventFilter.EVENT_BLOCK
, EventFilter.EVENT_DISCARD
or EventFilter.EVENT_NOTIFY
.nomatchDisposition
- indicates the disposition of a JccConnectionEvent.CONNECTION_MID_CALL
. This should be one of the legal
dispositions namely, EventFilter.EVENT_BLOCK
, EventFilter.EVENT_DISCARD
or EventFilter.EVENT_NOTIFY
.
ResourceUnavailableException
- An internal resource for completing this request is unavailable.
InvalidArgumentException
- One or more of the provided argument is not validpublic EventFilter createEventFilterMinimunCollectedAddressLength(int minimumAddressLength, int matchDisposition, int nomatchDisposition) throws ResourceUnavailableException, InvalidArgumentException
EventFilter
, apply the following:
JccConnection.getState()
) of the connection is JccConnection.ADDRESS_ANALYZE
, the filter returns the value matchDisposition.
JccConnection.ADDRESS_ANALYZE
, then return nomatchDisposition.
JccCall.removeConnectionListener(JccConnectionListener)
or
removeConnectionListener(JccConnectionListener)
) if they are notified once. Otherwise the
filter may be satisfied each time a set of digits is added to the received address and keep firing.
If this is not desirable, the application needs to remove the listener as indicated above.
minimumAddressLength
- an integer that represents a minimum address length.matchDisposition
- indicates the disposition of a JccConnectionEvent.CONNECTION_ADDRESS_ANALYZE
where
the length of the address matches or is greater than the given minimum length. This should be one of the legal
dispositions namely, EventFilter.EVENT_BLOCK
, EventFilter.EVENT_DISCARD
or EventFilter.EVENT_NOTIFY
.nomatchDisposition
- indicates the disposition of a JccConnectionEvent.CONNECTION_ADDRESS_ANALYZE
where
the length of the address is less than the given minimum length. This should be one of the legal
dispositions namely, EventFilter.EVENT_BLOCK
, EventFilter.EVENT_DISCARD
or EventFilter.EVENT_NOTIFY
.
ResourceUnavailableException
- An internal resource for completing this request is unavailable.
InvalidArgumentException
- One or more of the provided argument is not validpublic EventFilter createEventFilterCauseCode(int causeCode, int matchDisposition, int nomatchDisposition) throws ResourceUnavailableException, InvalidArgumentException
EventFilter
, apply the following:
causeCode
- an integer that represents a cause code. Valid cause codes (prefixed by
CAUSE_
) are defined in JccEvent
and JccCallEvent
.matchDisposition
- indicates the disposition of a JCC related event with equal cause code. This should be one of the legal
dispositions namely, EventFilter.EVENT_BLOCK
, EventFilter.EVENT_DISCARD
or EventFilter.EVENT_NOTIFY
.nomatchDisposition
- indicates the disposition of a JCC related event with other cause code. This should be one of the legal
dispositions namely, EventFilter.EVENT_BLOCK
, EventFilter.EVENT_DISCARD
or EventFilter.EVENT_NOTIFY
.
ResourceUnavailableException
- An internal resource for completing this call is unavailable.
InvalidArgumentException
- One or more of the provided argument is not validpublic EventFilter createEventFilterAddressRange(java.lang.String lowAddress, java.lang.String highAddress, int matchDisposition, int nomatchDisposition) throws ResourceUnavailableException, InvalidArgumentException
JccAddress.getName()
's string order.
For all events that require filtering by this EventFilter
, apply the following:JccConnection.getAddress()
.getName()
.
lowAddress
- denotes the JccAddress which corresponds to the low end of the
range.highAddress
- denotes the JccAddress which corresponds to the high end of the
range.matchDisposition
- indicates the disposition of a JCC related event occurring on a
JccAddress which forms part of the range specified. This should be one of the legal
dispositions namely, EventFilter.EVENT_BLOCK
, EventFilter.EVENT_DISCARD
or EventFilter.EVENT_NOTIFY
.nomatchDisposition
- indicates the disposition of a JCC related event occurring on a
JccAddress which DOES not form part of the range specified. This should be one of the legal
dispositions namely, EventFilter.EVENT_BLOCK
, EventFilter.EVENT_DISCARD
or EventFilter.EVENT_NOTIFY
.
ResourceUnavailableException
- An internal resource for completing this
call is unavailable.
InvalidArgumentException
- One or more of the provided argument is not validpublic EventFilter createEventFilterAddressRegEx(java.lang.String addressRegex, int matchDisposition, int nomatchDisposition) throws ResourceUnavailableException, InvalidArgumentException
JccAddress.getName()
's string order.
For all events that require filtering by this EventFilter
, apply the following:JccConnection.getAddress()
.getName()
.
addressRegex
- denotes the regular expression (for the purpose of this specification, the platform
will use the Perl5 regular expressions).matchDisposition
- indicates the disposition of a JCC related event if the
name of the JccAddress matches the regular expression. This should be one of the
legal dispositions namely, EventFilter.EVENT_BLOCK
, EventFilter.EVENT_DISCARD
or EventFilter.EVENT_NOTIFY
.nomatchDisposition
- indicates the disposition of a JCC related event if the
name of the JccAddress DOES not match the regular expression. This should be one of the
legal dispositions namely, EventFilter.EVENT_BLOCK
, EventFilter.EVENT_DISCARD
or EventFilter.EVENT_NOTIFY
.
ResourceUnavailableException
- An internal resource for completing this
call is unavailable.
InvalidArgumentException
- One or more of the provided argument is not validpublic EventFilter createEventFilterOr(EventFilter[] filters, int nomatchDisposition) throws ResourceUnavailableException, InvalidArgumentException
EventFilter.EVENT_DISCARD
to
process any event (either by notifying or blocking) that any filter wants to
process (logical OR).
filters
- is an array of EventFilters.nomatchDisposition
- indicates the disposition of a JCC related event.
This should be one of the
legal dispositions namely, EventFilter.EVENT_BLOCK
, EventFilter.EVENT_DISCARD
or EventFilter.EVENT_NOTIFY
.
ResourceUnavailableException
- An internal resource for completing this
call is unavailable.
InvalidArgumentException
- One or more of the provided argument is not validpublic EventFilter createEventFilterAnd(EventFilter[] filters, int nomatchDisposition) throws ResourceUnavailableException, InvalidArgumentException
EventFilter.EVENT_DISCARD
to
discard any events that any filter wants to discard (logical AND).
filters
- is an array of EventFilters.nomatchDisposition
- indicates the disposition of a JCC related event.
This should be one of the
legal dispositions namely, EventFilter.EVENT_BLOCK
, EventFilter.EVENT_DISCARD
or EventFilter.EVENT_NOTIFY
.
ResourceUnavailableException
- An internal resource for completing this
call is unavailable.
InvalidArgumentException
- One or more of the provided argument is not validpublic EventFilter createEventFilterDestAddressRange(java.lang.String lowDestAddress, java.lang.String highDestAddress, int matchDisposition, int nomatchDisposition) throws ResourceUnavailableException, InvalidArgumentException
JccAddress.getName()
's string order.
For all events that originate from originating connections and require filtering by this
EventFilter
, apply the following:JccConnection.getDestinationAddress()
.
lowDestAddress
- denotes the destination JccAddress which corresponds to the low end of the
range.highDestAddress
- denotes the destination JccAddress which corresponds to the high end of the
range.matchDisposition
- indicates the disposition of a JCC related event occurring on a
JccAddress which forms part of the range specified. This should be one of the legal
dispositions namely, EventFilter.EVENT_BLOCK
, EventFilter.EVENT_DISCARD
or EventFilter.EVENT_NOTIFY
.nomatchDisposition
- indicates the disposition of a JCC related event occurring on a
JccAddress which DOES not form part of the range specified. This should be one of the legal
dispositions namely, EventFilter.EVENT_BLOCK
, EventFilter.EVENT_DISCARD
or EventFilter.EVENT_NOTIFY
.
ResourceUnavailableException
- An internal resource for completing this
call is unavailable.
InvalidArgumentException
- One or more of the provided argument is not validpublic EventFilter createEventFilterDestAddressRegEx(java.lang.String destAddressRegex, int matchDisposition, int nomatchDisposition) throws ResourceUnavailableException, InvalidArgumentException
JccAddress.getName()
's string order.
For all events that originate from originating connections and require filtering by this
EventFilter
, apply the following:JccConnection.getDestinationAddress()
.
destAddressRegex
- denotes the regular expression (for the purpose of this specification, the platform
will use the Perl5 regular expressions).matchDisposition
- indicates the disposition of a JCC related event if the
name of the JccAddress matches the regular expression. This should be one of the
legal dispositions namely, EventFilter.EVENT_BLOCK
, EventFilter.EVENT_DISCARD
or EventFilter.EVENT_NOTIFY
.nomatchDisposition
- indicates the disposition of a JCC related event if the
name of the JccAddress DOES not match the regular expression. This should be one of the
legal dispositions namely, EventFilter.EVENT_BLOCK
, EventFilter.EVENT_DISCARD
or EventFilter.EVENT_NOTIFY
.
ResourceUnavailableException
- An internal resource for completing this
call is unavailable.
InvalidArgumentException
- One or more of the provided argument is not validpublic EventFilter createEventFilterOrigAddressRange(java.lang.String lowOrigAddress, java.lang.String highOrigAddress, int matchDisposition, int nomatchDisposition) throws ResourceUnavailableException, InvalidArgumentException
JccAddress.getName()
's string order.
For all events that originate from destination connections and require filtering
by this EventFilter
, apply the following:JccConnection.getOriginatingAddress()
.getName()
.
lowOrigAddress
- denotes the originating JccAddress which corresponds to the low end of the
range.highOrigAddress
- denotes the originating JccAddress which corresponds to the high end of the
range.matchDisposition
- indicates the disposition of a JCC related event occurring on a
JccAddress which forms part of the range specified. This should be one of the legal
dispositions namely, EventFilter.EVENT_BLOCK
, EventFilter.EVENT_DISCARD
or EventFilter.EVENT_NOTIFY
.nomatchDisposition
- indicates the disposition of a JCC related event occurring on a
JccAddress which DOES not form part of the range specified. This should be one of the legal
dispositions namely, EventFilter.EVENT_BLOCK
, EventFilter.EVENT_DISCARD
or EventFilter.EVENT_NOTIFY
.
ResourceUnavailableException
- An internal resource for completing this
call is unavailable.
InvalidArgumentException
- One or more of the provided argument is not validpublic EventFilter createEventFilterOrigAddressRegEx(java.lang.String origAddressRegex, int matchDisposition, int nomatchDisposition) throws ResourceUnavailableException, InvalidArgumentException
JccAddress.getName()
's string order.
For all events that originate from destination connections and require filtering by
this EventFilter
, apply the following:JccConnection.getOriginatingAddress()
.getName()
.
origAddressRegex
- denotes the regular expression for the originating address (for the purpose of this specification, the platform
will use the Perl5 regular expressions).matchDisposition
- indicates the disposition of a JCC related event if the
name of the JccAddress matches the regular expression. This should be one of the
legal dispositions namely, EventFilter.EVENT_BLOCK
, EventFilter.EVENT_DISCARD
or EventFilter.EVENT_NOTIFY
.nomatchDisposition
- indicates the disposition of a JCC related event if the
name of the JccAddress DOES not match the regular expression. This should be one of the
legal dispositions namely, EventFilter.EVENT_BLOCK
, EventFilter.EVENT_DISCARD
or EventFilter.EVENT_NOTIFY
.
ResourceUnavailableException
- An internal resource for completing this
call is unavailable.
InvalidArgumentException
- One or more of the provided argument is not validpublic void addCallListener(JccCallListener calllistener) throws MethodNotSupportedException, ResourceUnavailableException
JccCallEvent.CALL_EVENT_TRANSMISSION_ENDED
.
The listener receives no more events after it receives the
CALL_EVENT_TRANSMISSION_ENDED
.
JccCallListener
will
receive events until one of the following occurs.
JccCall.INVALID
state.
JccConnectionListener
inherits from the JccCallListener, it is also
possible to add a JccConnectionListener using this method. In such a case,
connection events would also have to be reported to the
registered listener in addition to the call events.
Hence, it is expected that the JCC implementation uses instanceof checks
in order to decide if only call events or both call and connection events
have to be delivered to the listener. Note that a listener added by this
method is expecting all the events without any filtering involved.
calllistener
- JccCallListener object that receives the specified events.
MethodNotSupportedException
- The method is not supported.
ResourceUnavailableException
- The resource limit for the number of
listeners has been exceeded.public void removeCallListener(JccCallListener calllistener)
Post-Conditions:
calllistener
- JccCallListener object to be removed.public void addConnectionListener(JccConnectionListener connectionlistener, EventFilter filter) throws ResourceUnavailableException, MethodNotSupportedException
Note that registering for the same event multiple times should not result in multiple notifications being sent to an application for the same event. Rather, this will result in the last event filter being used to determine if events have to be delivered to the specified ConnectionListener.
Note that this method is also equivalent to addCallListener(JccConnectionListener,EventFilter). since parameter JccConnectionListener is also a JccCallListener. However note that JccCallListeners which are not JccConnectionListeners cannot be used as a parameter to this method.
connectionlistener
- JccConnectionListener object that receives the specified events.filter
- EventFilter determines if the ConnectionEvent is
to be delivered to the specified listener.
MethodNotSupportedException
- The listener cannot be added at this time.
ResourceUnavailableException
- The resource limit for the number of
listeners has been exceeded.public void removeConnectionListener(JccConnectionListener connectionlistener)
Post-Conditions:
connectionlistener
- JccConnectionListener object used in the call to addConnectionListener method.public void setCallLoadControl(JccAddress[] address, double duration, double[] mechanism, int[] treatment) throws MethodNotSupportedException
The implementation can throw the MethodNotSupportedException
if the
platform does not support the load control functionality. Note that a policy
object may be designed to define the policy to be implemented by the platform
as a result of this method instead of defining the policy through the given
parameters. This might be designed in the future specifications.
address
- An array of size at most 2. a1[0] denotes the lower
address of the range while a1[1] denotes the uper address of the range.
Specifying only one element of the array implies that only an individual address
is no longer to be the subject of the listener's attention. This constrains the range of addresses
added to be numerical addresses. For addresses containing non-numerals such as
email addresses, we expect that the application would have to add each address
individually. Note that it is expected that adding a range of non-numerical addresses
efficiently will be addressed in a future version of this specification.duration
- specifies the duration in milliseconds for which the load control should be set. Duration
of 0 indicates that the load control should be removed. Duration of -1 indicates
an infinite duration (i.e until disabled by the application). Duration of -2
indicates network default duration.mechanism
- specifies the load control mechanism to use (such as admitting one call
per interval) and any necessary parameters. The contents of this parameter are
ignored if the load control duration is set to zero.mech[0] symbolises the call
admission rate of the call load control mechanism used. mech[1] symbolises the
type of call load control mechanism to use. Thus, mech[0] gives the number
of calls to be admitted per interval and mech[1] denotes the interval (in
milliseconds) between calls that are admitted.treatment
- specifies the treatment of the calls that are not admitted.The contents of this parameter are
ignored if the load control duration is set to zero.
MethodNotSupportedException
- If the implementation does not
have load control functionality.public void addCallLoadControlListener(CallLoadControlListener loadcontrollistener) throws MethodNotSupportedException, ResourceUnavailableException
setCallLoadControl(JccAddress[],double,double[],int[])
method.
loadcontrollistener
- The listener implementing the CallLoadControlListener
interface which will
receive all load control related events.
MethodNotSupportedException
- The listener cannot be added at this time.
ResourceUnavailableException
- The resource limit for the number of
listeners has been exceeded.public void removeCallLoadControlListener(CallLoadControlListener loadcontrollistener)
setCallLoadControl(JccAddress[],double,double[],int[])
method then this method
fails silently.
loadcontrollistener
- The listener implementing the CallLoadControlListener interface which will
receive all load control related eventspublic int getState()
public JccCall createCall() throws InvalidStateException, ResourceUnavailableException, PrivilegeViolationException, MethodNotSupportedException
JccCall.IDLE
state. An exception is generated if a new call cannot be
created for various reasons. This JccProvider must be in the IN_SERVICE
state, otherwise an InvalidStateException
is thrown.
Pre-conditions:
null
InvalidStateException
- If the JccProvider is not in the JccProvider.IN_SERVICE state.
ResourceUnavailableException
- An internal resource necessary to create a new Call
object is unavailable.
PrivilegeViolationException
- If the application does not have the proper
authority to create a new telephone call object.
MethodNotSupportedException
- The implementation does not support creating
new JccCall objects.public void addProviderListener(JccProviderListener providerlistener) throws ResourceUnavailableException, MethodNotSupportedException
removeProviderListener(JccProviderListener)
method or until the
JccProvider is no longer observable.
If the JccProvider becomes unobservable, a JccProviderEvent with id
PROVIDER_EVENT_TRANSMISSION_ENDED
is delivered to the application as a final
event. No further events from this JccProvider instance are delivered to the listener unless it is explicitly
re-added by the application.
This method is valid anytime and has no pre-conditions. Application must have
the ability to add listeners to JccProviders so they can monitor the changes in
state in the JccProvider.
When this method is invoked on a JccProvider in the SHUTDOWN state,
the PROVIDER_EVENT_TRANSMISSION_ENDED
is delivered to the client right away. Further, the
PROVIDER_EVENT_TRANSMISSION_ENDED
event can be delivered even before this method returns.
If an application attempts to add an instance of an listener already present on this JccProvider, then repeated attempts to add the instance of the listener will silently fail, i.e. multiple instances of an listener are not added and no exception will be thrown.
Post-Conditions:
providerlistener
- JccProviderListener object that receives the specified events.
MethodNotSupportedException
- This methods is not supported.
ResourceUnavailableException
- The resource limit for the number of
listeners has been exceeded.
JccProviderListener
public void removeProviderListener(JccProviderListener providerlistener)
PROVIDER_EVENT_TRANSMISSION_ENDED
.
Also, if the listener is not currently registered with the JccProvider, then this
method fails silently, i.e. no listener is removed and no exception is thrown.
Post-Conditions:
providerlistener
- JccProviderListener object being removed.public java.lang.String getName()
JccPeer.getProvider(String)
method to create this JccProvider
instance.
public JccAddress getAddress(java.lang.String address) throws InvalidPartyException
JccAddress
object which corresponds to the (telephone) number string
provided. If the provided name does not correspond to a JccAddress known by the
JccProvider and within the JccProvider's domain, InvalidPartyException
is thrown.
Post-Conditions:
address
- the address string which possibly represents a telephone number.
InvalidPartyException
- This exception, with type InvalidPartyException.UNKNOWN_PARTY
,
is thrown if the given number does not correspond to a valid JccAddress under this JccProvider's domain.public void shutdown()
SHUTDOWN
state,
in which it will stay indefinitely.
If the JccProvider is already in the SHUTDOWN
state, this method does
nothing. The invocation of this method
should not affect other applications which are using the same
implementation of the JccProvider object.
Post-Conditions:
|
JCAT v0.3.1 |
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
Copyright - 2001, 2003 Sun Microsystems