Skip to content

Instantly share code, notes, and snippets.

@ankamguru
Created June 8, 2014 09:22
Show Gist options
  • Save ankamguru/3154f2c53d4d8110fb2e to your computer and use it in GitHub Desktop.
Save ankamguru/3154f2c53d4d8110fb2e to your computer and use it in GitHub Desktop.
iwscript.js
///========================================
/// SoftPhone s.r.l
/// IWSConnector release 1.1.4.0
/// Date: 07/08/2013
///========================================
function networkError(message)
{
trace(message);
}
function onConnectedSession(message)
{
CheckAgentIntegrity(message);
}
function onDisconnectedSession(message)
{
alert("Interaction workspace has disconnected");
}
function onActivateSession(message)
{
switchInteraction();
}
function onDeactivateSession(message)
{
}
function onEventAgentNotReady(message)
{
}
function onEventAgentReady(message)
{
}
function onEventAgentLogout(message)
{
}
function onEventAgentLogin(message)
{
}
//==================================================================
// Events MediaVoice
/*
* message.EVENT
* message.Place
* message.AgentID
* message.MediaType
* message.ConnectionID
* message.ANI
* message.DNIS
* message.CallType
* message.Duration
* message.TimeStamp
* message.attachdata
* message.EntrepriseLastInteractionEvent.PreviousConnID
*/
//==================================================================
function printAllAttachData(message)
{
trace("called printAttachData on Event:" + message.EVENT);
for (var key in message.attachdata)
{
//trace(jQuery.validator.format("attach key[{0}] value[{1}]", key, message.attachdata[key]));
trace("attach key: " + key);
trace("attach value: " + message.attachdata[key]);
}
}
//RINGING
function onEventRingingInbound(message)
{
//alert("MediaType = " + message.MediaType);
showEventMessage("Inbound call from " + message.ANI, 3000);
}
function onEventRingingInternal(message)
{
}
function onEventRingingConsult(message)
{
showEventMessage("Consult call from agent " + message.AgentID, 3000);
}
function onEventRingingOutbound(message)
{
showEventMessage("Outbound call from " + message.ANI, 3000);
}
//EventEstablished
function onEventEstablishedInbound(message)
{
if (message.attachdata.CONTACT_ID)
{
InboundContactPopUpContactId(message);
}
else if (message.attachdata.ACCOUNT_ID)
{
InboundAccountPopUpAccountId(message);
}
else
{
InboundContactPopUpANI(message);
//InboundAccountPopUpANI(message); // TO SCREEN POP ON ACCOUNT ENTITY
}
}
function onEventEstablishedInternal(message)
{
}
function onEventEstablishedConsult(message)
{
}
function onEventEstablishedOutbound(message)
{
OutboundContactPopUpDNIS(message);
//OutboundAccountPopUpDNIS // TO SCREEN POP THE OUTBOUND CALL ON ACCOUNT
}
//EventHeld
function onEventHeldInbound(message)
{
}
function onEventHeldInternal(message)
{
}
function onEventHeldConsult(message)
{
}
function onEventHeldOutbound(message)
{
}
//EventRetrieved
function onEventRetrievedInbound(message)
{
}
function onEventRetrievedInternal(message)
{
}
function onEventRetrievedConsult(message)
{
}
function onEventRetrievedOutbound(message)
{
}
//EventAttachedDataChanged
function onEventAttachedDataChangedInbound(message)
{
}
function onEventAttachedDataChangedInternal(message)
{
}
function onEventAttachedDataChangedConsult(message)
{
}
function onEventAttachedDataChangedOutbound(message)
{
}
//EventReleased
function onEventReleasedInbound(message)
{
ReleaseCall(message);
}
function onEventReleasedInternal(message)
{
}
function onEventReleasedConsult(message)
{
}
function onEventReleasedOutbound(message)
{
ReleaseCall(message);
}
//EventDialing
function onEventDialingInternal(message)
{
}
function onEventDialingConsult(message)
{
}
function onEventDialingOutbound(message)
{
showEventMessage("Calling..." + message.DNIS, 3000);
}
//EventUserEvent
function onEventUserEvent(message)
{
//alert("onEventUserEvent");
//printAllAttachData(message);
}
//EventPartyChanged
function onEventPartyChangedInbound(message)
{
if (message.attachdata.CONTACT_ID)
{
InboundContactPopUpContactId(message);
}
else if (message.attachdata.ACCOUNT_ID)
{
InboundAccountPopUpAccountId(message);
}
else
{
InboundContactPopUpANI(message);
//InboundAccountPopUpANI(message); // TO SCREEN POP ON ACCOUNT ENTITY
}
}
//==================================================================
// Events MediaEmail
/*
* message.EVENT
* message.Place
* message.AgentID
* message.MediaType
* message.ConnectionID
* message.ANI
* message.DNIS
* message.CallType
* message.Duration
* message.TimeStamp
* message.attachdata
* message.EntrepriseLastInteractionEvent.PreviousConnID
*/
//==================================================================
/*
function onEmailEventRingingInbound(message)
{
showEventMessage("Inbound Email from " + message.attachdata.EmailAddress, 3000);
}
function onEmailEventEstablishedInbound(message)
{
if (message.attachdata.CONTACT_ID)
{
PopUpContactAndActivity(message);
}
else if (message.attachdata.ACCOUNT_ID)
{
PopUpAccountAndActivity(message);
}
else
{
EmailContactPopUpEmailAddressAct(message);
//EmailAccountPopUpEmailAddressAct(message); // TO SCREEN POP ON ACCOUNT ENTITY
}
}
function onEmailEventOpenedInbound(message)
{
PopUpContactAndActivity(message);
UpdateEmailStatus(message,"In Progress");
}
function onEmailEventReplyOpenedOutbound(message)
{
PopUpContactAndActivity(message);
UpdateEmailStatus(message,"In Progress");
}
function onEmailEventReleasedInbound(message)
{
ReleaseEmail(message);
}
function onEmailEventReplyEstablishedOutbound(message)
{
EmailReplyContactPopUpEmailAddressAct(message);
}
function onEmailEventReplyReleased(message)
{
ReleaseEmail(message);
}
function onEmailEventReplyCancelled(message)
{
ReleaseEmail(message);
}
*/
//==================================================================
//Events MediaWorkbin
//==================================================================
function onWorkbinTakenOut(message)
{
//alert("onWorkbinTakenOut message.MediaName: " + message.MediaName);
}
function onWorkbinPlacedIn(message)
{
if(message.Interaction.InteractionMediatype == "email")
{
log.info("onWorkbinPlacedIn - email -> Execute UpdateEmailStatus with status Workbin");
UpdateEmailStatus(message,"Workbin");
}
}
//==================================================================
// Events MediaChat
/*
* message.EVENT
* message.Place
* message.AgentID
* message.MediaType
* message.ConnectionID
* message.ANI
* message.DNIS
* message.CallType
* message.Duration
* message.TimeStamp
* message.attachdata
* message.EntrepriseLastInteractionEvent.PreviousConnID
*/
//==================================================================
function onChatEventRingingInbound(message)
{
showEventMessage("Inbound Chat from " + message.attachdata.EmailAddress, 3000);
}
function onChatEventRingingConsult(message)
{
}
function onChatEventEstablishedInbound(message)
{
if (message.attachdata.CONTACT_ID)
{
ChatContactPopUpContactId(message);
}
else if (message.attachdata.ACCOUNT_ID)
{
ChatAccountPopUpAccountId(message);
}
else
{
ChatContactPopUpEmailAddressAct(message);
//ChatAccountPopUpEmailAddressAct(message); // TO SCREEN POP ON ACCOUNT ENTITY
}
}
function onChatEventEstablishedConsult(message)
{
}
function onChatEventReleasedInbound(message)
{
ReleaseChat(message);
}
function onChatEventReleasedConsult(message)
{
}
function onChatEventTranscriptLink(message)
{
//Attach the chat transcript to the activity
ChatTranscriptAttachment(message);
}
function onChatEventPartyRemovedInbound(message)
{
}
function onChatEventPartyAddedInbound(message)
{
}
function onChatEventPartyChangedInbound(message)
{
if (message.attachdata.CONTACT_ID)
{
ChatContactPopUpContactId(message);
}
else if (message.attachdata.ACCOUNT_ID)
{
ChatAccountPopUpAccountId(message);
}
else
{
ChatContactPopUpEmailAddress(message);
//ChatAccountPopUpEmailAddress(message); // TO SCREEN POP ON ACCOUNT ENTITY
}
}
//==================================================================
//Generic Events
//==================================================================
function onSwitchInteraction(message)
{
//alert("Called onSwitchInteraction");
//printAllAttachData(message);
if (message.attachdata.CONTACT_ID)
{
PopUpContactAndActivity(message);
}
else if (message.attachdata.ACCOUNT_ID)
{
PopUpAccountAndActivity(message);
}
else
{
PopUpActivity(message);
}
}
//==================================================================
// WORKITEM Events
//==================================================================
function onWorkitemEventRingingInbound(message)
{
if (message.attachdata.ExternalId)
{
showEventMessage("Incoming Workitem - SR: " + message.attachdata.ExternalId, 60000);
} else {
showEventMessage("Incoming Workitem without SR number (ExternalId).", 60000);
}
}
function onWorkitemEventEstablishedInbound(message)
{
if (message.attachdata.ExternalId)
{
WorkitemSRPopUp(message);
}
}
function onWorkitemEventOpenedInbound(message)
{
if (message.attachdata.ExternalId)
{
WorkitemSRPopUp(message);
} else {
alert("Opened Workitem without SR number (ExternalId).");
}
}
function onWorkitemEventReleasedInbound(message)
{
//Need to close the Workitem?!?
//alert("onWorkitemEventReleasedInbound");
}
//==================================================================
// SMS Events
//==================================================================
function onSMSEventRingingInbound(message)
{
showEventMessage("Inbound SMS from " + message.EntrepriseInteractionCurrent.From, 3000);
}
function onSMSEventEstablishedInbound(message)
{
if (message.attachdata.CONTACT_ID)
{
InboundContactPopUpContactId(message);
}
else if (message.attachdata.ACCOUNT_ID)
{
//TODO
}
else
{
SMSInboundContactPopUp(message);
}
}
function onSMSEventReleasedInbound(message)
{
//SAME AS RELEASE CALL SO WE USE THE SAME FUNCTION CALL
ReleaseCall(message);
}
function onSMSEventEstablishedOutbound(message)
{
SMSOutboundContactPopUpDNIS(message);
}
function onSMSEventReleasedOutbound(message)
{
SMSOutboundContactAct(message);
}
function onSmsEventSendMessage(message)
{
SMSSendContactAct(message);
}
//alert("iwscriptwellformed");
//==================================================================
//Events DelegateCommand
//==================================================================
function onDelegateCommand(message)
{
log.debug("======= onDelegateCommand ==========");
if(message.Parameters.Device)
{
log.debugFormat("Device Name: {0}", message.Parameters.Device.Name);
}
}
//==================================================================
//Events InhibitCommand
//==================================================================
function onInhibitCommand(message)
{
log.debug("======= onInhibitCommand ==========");
if(message.Parameters.Device)
{
log.debugFormat("Device Name: {0}", message.Parameters.Device.Name);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment