This feature provides a new park reversion behavior to applications invoking park request. Currently, when the park reversion
timer expires, the call is reverted to the address of the parker. With the new behavior, the call remains parked at the
park DN, even as the Park Monitoring reversion timer expires.
This feature also enables status monitoring of the parked call at the address of the parker. After a call is parked using
the existing CiscoConnection.park() JTAPI API on newer phones or directly from the phone itself, Cisco Unified JTAPI delivers
a new event CiscoAddrParkStatusEv, which includes the current status of the parked call. The application must then add AddressObserver
on the address of the parker, and enable a filter to receive this event. If application adds an observer after the call is
parked, then the events are delivered with CAUSE_SNAPSHOT. The park status in the new event can be one of the following:
-
Parked—Indicates a call was parked by the user of the application.
-
Reminder—Indicates the park monitoring reversion timer for the parked call has expired.
-
Retrieved—Indicates a previously parked call was retrieved.
-
Abandoned—Indicates a previously parked call is disconnected while waiting to be retrieved.
-
Forwarded: indicates the parked call has been forwarded to the configured Park Monitoring Forwarded No Retrieve destination,
as the Park Monitoring Forward-No-retrieve timer has expired.
When the cause is CAUSE_SNAPSHOT the park status can be either Parked or Reminder state only.
On the phone, these notifications are targeted, that is, only the device parking the call can see these notifications (devices
sharing line with the parker's device does not receive similar notifications). In Cisco Unified JTAPI, getTerminal() interface
on CiscoAddrParkStatusEv has been added tomanage this. This returns the terminal on whose address, these notifications were
received and this is the terminal that parked the call.
Cisco Unified JTAPI also provides the CiscoCallID to applications in this new event. Applications may use this to retrieve
the call object. However CiscoCallID.getCall() may return null value if the call does not exist in the provider's domain at
the time this event is received.
Cisco Unified JTAPI provides a new interface CiscoAddrEvFilter to control or filter the new event notifications to applications.
Applications may get or set the filter value through the APIs getCiscoAddrParkStatusEvFilter() and setCiscoAddrParkStatusEvFilter()
on the CiscoAddrEvFilter interface. Two new methods, getFilter() and setFilter(), have also been provided in the CiscoAddress
to get and set the values of the filters in the CiscoAddrEvFilter interface. Applications receive the new event notification
CiscoAddrParkStatusEv only if the filter is enabled and the setFilter() is invoked on CiscoAddress. By default, the filter
value for CiscoAddrParkStatusEvFilter is false to maintain backward compatibility.
When a call is parked, the Park monitoring reversion timer starts and then expires. After this, Park Monitoring Forward
No Retrieve timer starts. When this timer expires, and the Forward No Retrieve destination is configured, the call is forwarded
to this destination. A new CiscoFeatureReason FORWARD_NO_RETRIEVE is delivered in the connection events, when connections
are created at the forwarded destination. If the Forward No Retrieve destination is not configured, call is forwarded back
to the parker's DN, with the same reason as when park reversion occurs (CiscoFeatureReason.PARKREMINDER).
When application invokes CiscoAddress.getAddressCallInfo(Terminal term), the CiscAddressCallInfo which is returned is now
enhanced to include number of parked calls. This returns the number of parked calls. Cisco Unified IP Phone 7900 Series with
SIP/SCCP returns zero value even if there are calls parked by this address.
This feature is applicable only when newer phones park the call. If Cisco Unified IP Phone 7900 Series with SIP/ SCCP, parks
the call, user continues to see the existing behavior. So, if a Cisco Unified IP Phone parks the call and is sharing a line
with a Cisco Unified IP Phone 7900 Series with SIP, the new Park Monitoring enhancements can be seen. However, if the Cisco
Unified IP Phone 7900 Series with SIP or SCCP invoked park, the old Park behavior would be seen on all the phones, if application
is monitoring any of these lines.
Users can set the Park Monitoring Reversion Timer to zero and set the Park Monitoring Forward No Retrieve Destination to the
existing Park Reversion Duration timer to get the old behavior on the Cisco Unified IP Phone (provided the Forward No Retrieve
destination is not configured) if the user so desires. However, the event notification cannot be controlled.
On Cisco Unified Communications Manager Service Parameter pages, the timers mentioned above can be configured. These would
apply only for SIP versions of future models of Cisco Unified IP Phone .
Park Monitoring Reversion timer: This timer is started as soon as the call is parked. This is the amount of time that a call
remains parked before the user is reminded that there is a parked call. The range is 0-1200 seconds, with default value of
60 seconds.
Park Monitoring Periodic reversion timer: The frequency in which the user is reminded about the parked call. The range is
0-1200 seconds, with default value of 30 seconds.
Park Monitoring Forward No Retrieve timer: This timer is started when the park monitoring reversion timer expires. This is
how long, in seconds, the park reminder notification plays before the parkee is redirected to the parker's Park Monitoring
Forward No Retrieve (FNR) destination. The range is 30-1200 seconds, with default value of 300 seconds.
Park Monitoring Forward No Retrieve Destination is configurable on the line page in Cisco Unified Communications Manager Line
page settings.
Assisted DPark provides an alternative one step way to perform DPark operation on phones. When user performs Assisted DPark
from newer phones and application is monitoring the parked party, Cisco Unified JTAPI provides reason CiscoFeatureReason.REASON_REFER
in the connection events (ConnCreatedEv, ConnInProgressEv and CallCtlConnQueuedEv) for DPark DN. Currently when DPark is
done, application gets connection events with CiscoFeatureReason.REASON_TRANSFER.
Backward Compatibility
Park Monitoring enhancements and Assisted DPark support are backward compatible.
The new park reversion behavior improves the user experience to allow the parked call to be retrievable for as long as possible.
It also improves the usability of the park feature by allowing the user to monitor the status of a parked call through the
new event being delivered.
Applications can conditionally enable/disable filter to receive event via setCiscoAddrParkStatusEvFilter() API on CiscoAddeEvFilter.
By default this filter is disabled and therefore maintains backward compatibility.
If the application uses a JTAPI client older than 7.1.2, the devices are not restricted but if the application tries to observe
these devices (which supports this feature to be invoked manually), JTAPI throws an exception and marks these devices as
restricted from there on.