com.genesyslab.ail
Interface InteractionMultimedia

All Superinterfaces:
AbstractInteraction, IdObject, Interaction, Possible, Savable
All Known Subinterfaces:
InteractionChat, InteractionInvitationIn, InteractionInvitationOut, InteractionInvitationParentIn, InteractionMail, InteractionMailIn, InteractionMailOut, InteractionOpenMedia, InteractionReplyOut, InteractionWebcallback

public interface InteractionMultimedia
extends Interaction

A multimedia interaction handled by the Call Center.


Nested Class Summary
static class InteractionMultimedia.StopProcessingReason
          Constants that describe stop processing reasons.
 
Nested classes/interfaces inherited from interface com.genesyslab.ail.Interaction
Interaction.Action, Interaction.Status, Interaction.Type
 
Nested classes/interfaces inherited from interface com.genesyslab.ail.AbstractInteraction
AbstractInteraction.AbstractCallType
 
Method Summary
 void addSuggestedCategories(java.util.Map suggested_categories)
          Adds or updates the suggested categories for this interaction.
 void delete()
          Deletes this interaction.
 java.util.Collection getAvailableQueuesForChildInteraction()
          Returns the queues in which a child interaction can be created.
 java.util.Collection getAvailableQueuesForThisInteraction()
          Returns the queues where this interaction can be put.
 java.lang.String getCategoryId()
          Gets the identifier of the Category that was assigned to this interaction.
 java.lang.String getExternalId()
          Gets the external identifier assigned to this interaction.
 java.lang.String getInteractionSubtype()
          Returns the Subtype of this interaction.
 java.lang.String getInteractionType()
          Returns the Type of this interaction.
 java.lang.Boolean getIsCategoryApproved()
          Tells whether an agent has approved or disapproved the category that was suggested by Classification Server.
 int getMaxSubjectLength()
          Returns the maximum length for a subject that is accepted by the Contact Server database.
 java.lang.String getMediaType()
          Returns the Media of this interaction.
 java.lang.String getQueue()
          Returns the identifier of the queue of this interaction.
 java.util.Map getSuggestedCategories()
          Returns the suggested categories for this interaction.
 boolean isMarkDoneAvailable()
          Returns true if this interaction can be stopped with no more processing.
 void placeInQueue(java.lang.String queue)
          Places this interaction into this queue.
 void setAttachedData(java.lang.String key, java.lang.Object value)
          Sets an attached key-value pair.
 void setAvailableQueuesForChildInteraction(java.util.Collection queues)
          Sets the list of queues in which a child interaction can be created.
 void setAvailableQueuesForThisInteraction(java.util.Collection queues)
          Sets the queues to which this interaction can be sent.
 void setCategoryId(java.lang.String id)
          Assigns a category to this interaction.
 void setExternalId(java.lang.String id)
          Assigns an external identifier to this interaction.
 void setIsCategoryApproved(java.lang.Boolean _approval)
          Sets the approval of the suggested category.
 void submit(java.lang.String queue)
          Submits this interaction to the Interaction Server.
 void transferAgent(java.lang.String agent_id, java.lang.String reason)
          Transfers this interaction to another agent.
 void transferPlace(java.lang.String place_id, java.lang.String reason)
          Transfers this interaction to another agent.
 void transferQueue(java.lang.String queue, java.lang.String reason)
          Transfers this interaction to another agent through a queue.
 
Methods inherited from interface com.genesyslab.ail.Interaction
answerCall, countOtherPendingInteractions, getContactId, getContentBinary, getContentBinaryMimeType, getContentBinarySize, getDateCreated, getDn, getEndDate, getMedia, getNotepad, getParentInteraction, getPlace, getStatus, getStructTextMimeType, getStructuredText, getSubject, getText, getType, getUserName, isDone, markDone, merge, releaseCall, save, setContactId, setContentBinary, setContentBinaryMimeType, setContentBinarySize, setNotepad, setStructTextMimeType, setStructuredText, setSubject, setText
 
Methods inherited from interface com.genesyslab.ail.AbstractInteraction
addInteractionListener, getAttachedData, getAttachedData, getAttachedDataEx, getTConnectionId, queryStatus, removeAttachedData, removeInteractionListener, saveAttachedData, setAttachedData
 
Methods inherited from interface com.genesyslab.ail.Possible
arePossible, isPossible
 
Methods inherited from interface com.genesyslab.ail.Savable
getContactServerId, isDirty
 

Method Detail

getMaxSubjectLength

int getMaxSubjectLength()
Returns the maximum length for a subject that is accepted by the Contact Server database.


getMediaType

java.lang.String getMediaType()
Returns the Media of this interaction.


getInteractionType

java.lang.String getInteractionType()
Returns the Type of this interaction.


getInteractionSubtype

java.lang.String getInteractionSubtype()
Returns the Subtype of this interaction.


placeInQueue

void placeInQueue(java.lang.String queue)
                  throws RequestFailedException
Places this interaction into this queue. This method must be called on a TALKING interaction (handled by this agent). It will then go into IDLE state and will be available to other agents or servers (like a router...).

Parameters:
queue - the identifier of the queue where to place this interaction. If null, this interaction will be placed back into the queue where it originally was.
Throws:
NoPlaceException - if this interaction is not currently handled on a Place.
IsServiceException - if there is a problem with the Interaction Server.
RequestFailedException

transferAgent

void transferAgent(java.lang.String agent_id,
                   java.lang.String reason)
                   throws RequestFailedException
Transfers this interaction to another agent. This method must be called on a TALKING interaction (handeled by this agent).

Parameters:
agent_id - the user name (the ID) of the agent to whom the interaction will be transferred.
reason - the reason for the transfer. Can be null.
Throws:
NoPlaceException - if this interaction is not currently handeled on a Place.+
IsServiceException - if there is a problem with the Interaction Server.
RequestFailedException

transferPlace

void transferPlace(java.lang.String place_id,
                   java.lang.String reason)
                   throws RequestFailedException
Transfers this interaction to another agent. This method must be called on a TALKING interaction (handeled by this agent).

Parameters:
place_id - the ID of the place of the agent to whom the interaction will be transferred.
reason - the reason for the transfer. Can be null.
Throws:
NoPlaceException - if this interaction is not currently handled on a Place.
IsServiceException - if there is a problem with the Interaction Server.
RequestFailedException

transferQueue

void transferQueue(java.lang.String queue,
                   java.lang.String reason)
                   throws RequestFailedException
Transfers this interaction to another agent through a queue. The agent will be chosen by the strategy running on this queue. This method must be called on a TALKING interaction (handled by this agent).

Parameters:
queue - the ID of the queue where the router will take this interaction for distribution
reason - the reason for the transfer. Can be null.
Throws:
NoPlaceException - if this interaction is not currently handeled on a Place.
IsServiceException - if there is a problem with the Interaction Server.
RequestFailedException

delete

void delete()
            throws RequestFailedException
Deletes this interaction. All database items about this interraction will be deleted. The interaction will no longer appear in the history.

Throws:
NoPlaceException - if this interaction is not currently handled on a Place.
IsServiceException - if there is a problem with the Interaction Server.
RequestFailedException

isMarkDoneAvailable

boolean isMarkDoneAvailable()
Returns true if this interaction can be stopped with no more processing.

See Also:
Interaction.markDone()

getAvailableQueuesForThisInteraction

java.util.Collection getAvailableQueuesForThisInteraction()
Returns the queues where this interaction can be put. This corresponds to the 'Input Queues' of the Interaction Workflow Designer (IWD).

Returns:
a Collection of Queue.
See Also:
placeInQueue(java.lang.String)

getAvailableQueuesForChildInteraction

java.util.Collection getAvailableQueuesForChildInteraction()
Returns the queues in which a child interaction can be created. This corresponds to the 'Output Queues' of the Interaction Workflow Designer (IWD).

Returns:
a Collection of Queue.
See Also:
placeInQueue(java.lang.String)

getSuggestedCategories

java.util.Map getSuggestedCategories()
                                     throws RequestFailedException
Returns the suggested categories for this interaction.

Note: If the DATABASE service is not available, that is, if Universal Contact Server (UCS) is not connected, SRL features are not available; in this case, do not call this method.

Returns:
a Map of (String category identifier, String relevancy).
Throws:
RequestFailedException
See Also:
Category

addSuggestedCategories

void addSuggestedCategories(java.util.Map suggested_categories)
                            throws RequestFailedException
Adds or updates the suggested categories for this interaction.

Note: If the DATABASE service is not available, that is, if Universal Contact Server (UCS) is not connected, SRL features are not available; in this case, do not call this method.

Parameters:
suggested_categories - the categories to set, as a Map of (Stringcategory identifier, String relevancy).
Throws:
RequestFailedException

getCategoryId

java.lang.String getCategoryId()
Gets the identifier of the Category that was assigned to this interaction. A Categorycan be assigned either by the Classification Server or by an agent at desktop level.

Note: If the DATABASE service is not available, that is, if Universal Contact Server (UCS) is not connected, SRL features are not available; in this case, do not call this method.

Returns:
the category identifier, or null if there is no category assigned to this interaction.
See Also:
setCategoryId(java.lang.String)

setCategoryId

void setCategoryId(java.lang.String id)
                   throws RequestFailedException
Assigns a category to this interaction.

Note: If the DATABASE service is not available, that is, if Universal Contact Server (UCS) is not connected, SRL features are not available; in this case, do not call this method.

Parameters:
id - the identifier of the category to assign.
Throws:
RequestFailedException
See Also:
getCategoryId()

getIsCategoryApproved

java.lang.Boolean getIsCategoryApproved()
                                        throws RequestFailedException
Tells whether an agent has approved or disapproved the category that was suggested by Classification Server. If null, no agent has given a feedback on the suggested category. If Boolean.TRUE, an agent has approved it. If Boolean.FALSE, an agent has disapproved it.

Note: If the DATABASE service is not available, that is, if Universal Contact Server (UCS) is not connected, SRL features are not available; in this case, do not call this method.

Returns:
wether the category was approved, disapproved or not.
Throws:
RequestFailedException

setIsCategoryApproved

void setIsCategoryApproved(java.lang.Boolean _approval)
                           throws RequestFailedException
Sets the approval of the suggested category.

Note: If the DATABASE service is not available, that is, if Universal Contact Server (UCS) is not connected, SRL features are not available; in this case, do not call this method.

Parameters:
_approval - Boolean.TRUE means that the agent approves it ;Boolean.FALSE means that the agent disapproves it ;null means that the agent does not give a feedback.
Throws:
RequestFailedException

getQueue

java.lang.String getQueue()
Returns the identifier of the queue of this interaction.
Note that an interaction still is in the queue even when it is handled by an agent or a router.

Specified by:
getQueue in interface Interaction
See Also:
Queue

getExternalId

java.lang.String getExternalId()
Gets the external identifier assigned to this interaction.

Returns:
the external identifier; or null if this interaction has no external identifier.
See Also:
setExternalId(java.lang.String)

setExternalId

void setExternalId(java.lang.String id)
                   throws RequestFailedException
Assigns an external identifier to this interaction.

Parameters:
id - the identifier to be assigned.
Throws:
RequestFailedException
See Also:
getExternalId()

submit

void submit(java.lang.String queue)
            throws RequestFailedException
Submits this interaction to the Interaction Server.

Parameters:
queue - the queue where the interaction will be placed in.
Throws:
RequestFailedException

setAvailableQueuesForThisInteraction

void setAvailableQueuesForThisInteraction(java.util.Collection queues)
                                          throws RequestFailedException
Sets the queues to which this interaction can be sent. This lists corresponds to the 'Input Queues' queues defined in the Interaction Workflow Designer (IWD).

Parameters:
queues - a Collection of Queue.
Throws:
RequestFailedException
See Also:
placeInQueue(java.lang.String)

setAvailableQueuesForChildInteraction

void setAvailableQueuesForChildInteraction(java.util.Collection queues)
                                           throws RequestFailedException
Sets the list of queues in which a child interaction can be created. This list corresponds to the Output Queues queues defined in the Interaction Workflow Designer (IWD).

Parameters:
queues - a Collection of Queue.
Throws:
RequestFailedException
See Also:
placeInQueue(java.lang.String)

setAttachedData

void setAttachedData(java.lang.String key,
                     java.lang.Object value)
Sets an attached key-value pair. Use AbstractInteraction.saveAttachedData() to apply this modification.

Specified by:
setAttachedData in interface AbstractInteraction
Parameters:
key - The key of the pair.
value - The value of the pair. Valid objects are:
  • a String,
  • an Integer,
  • a List of Byte, or a byte[],
  • a List, containing those types of objects,
  • a Map, recursively containing the same types of pairs.
Warning: A null value is processed as if it were an empty String.
See Also:
for specific behaviour., for specific behaviour.