Welcome to TiddlyWiki created by Jeremy Ruston, Copyright © 2007 UnaMesa Association
<!--{{{-->
<link rel='alternate' type='application/rss+xml' title='RSS' href='index.xml' />
<!--}}}-->
Background: #fff
Foreground: #000
PrimaryPale: #8cf
PrimaryLight: #18f
PrimaryMid: #04b
PrimaryDark: #014
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88
/*{{{*/
body {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
a {color:[[ColorPalette::PrimaryMid]];}
a:hover {background-color:[[ColorPalette::PrimaryMid]]; color:[[ColorPalette::Background]];}
a img {border:0;}
h1,h2,h3,h4,h5,h6 {color:[[ColorPalette::SecondaryDark]]; background:transparent;}
h1 {border-bottom:2px solid [[ColorPalette::TertiaryLight]];}
h2,h3 {border-bottom:1px solid [[ColorPalette::TertiaryLight]];}
.button {color:[[ColorPalette::PrimaryDark]]; border:1px solid [[ColorPalette::Background]];}
.button:hover {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::SecondaryLight]]; border-color:[[ColorPalette::SecondaryMid]];}
.button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::SecondaryDark]];}
.header {background:[[ColorPalette::PrimaryMid]];}
.headerShadow {color:[[ColorPalette::Foreground]];}
.headerShadow a {font-weight:normal; color:[[ColorPalette::Foreground]];}
.headerForeground {color:[[ColorPalette::Background]];}
.headerForeground a {font-weight:normal; color:[[ColorPalette::PrimaryPale]];}
.tabSelected{color:[[ColorPalette::PrimaryDark]];
background:[[ColorPalette::TertiaryPale]];
border-left:1px solid [[ColorPalette::TertiaryLight]];
border-top:1px solid [[ColorPalette::TertiaryLight]];
border-right:1px solid [[ColorPalette::TertiaryLight]];
}
.tabUnselected {color:[[ColorPalette::Background]]; background:[[ColorPalette::TertiaryMid]];}
.tabContents {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::TertiaryPale]]; border:1px solid [[ColorPalette::TertiaryLight]];}
.tabContents .button {border:0;}
#sidebar {}
#sidebarOptions input {border:1px solid [[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel {background:[[ColorPalette::PrimaryPale]];}
#sidebarOptions .sliderPanel a {border:none;color:[[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel a:hover {color:[[ColorPalette::Background]]; background:[[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel a:active {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::Background]];}
.wizard {background:[[ColorPalette::PrimaryPale]]; border:1px solid [[ColorPalette::PrimaryMid]];}
.wizard h1 {color:[[ColorPalette::PrimaryDark]]; border:none;}
.wizard h2 {color:[[ColorPalette::Foreground]]; border:none;}
.wizardStep {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];
border:1px solid [[ColorPalette::PrimaryMid]];}
.wizardStep.wizardStepDone {background:[[ColorPalette::TertiaryLight]];}
.wizardFooter {background:[[ColorPalette::PrimaryPale]];}
.wizardFooter .status {background:[[ColorPalette::PrimaryDark]]; color:[[ColorPalette::Background]];}
.wizard .button {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryLight]]; border: 1px solid;
border-color:[[ColorPalette::SecondaryPale]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryPale]];}
.wizard .button:hover {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Background]];}
.wizard .button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::Foreground]]; border: 1px solid;
border-color:[[ColorPalette::PrimaryDark]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryDark]];}
.wizard .notChanged {background:transparent;}
.wizard .changedLocally {background:#80ff80;}
.wizard .changedServer {background:#8080ff;}
.wizard .changedBoth {background:#ff8080;}
.wizard .notFound {background:#ffff80;}
.wizard .putToServer {background:#ff80ff;}
.wizard .gotFromServer {background:#80ffff;}
#messageArea {border:1px solid [[ColorPalette::SecondaryMid]]; background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]];}
#messageArea .button {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::SecondaryPale]]; border:none;}
.popupTiddler {background:[[ColorPalette::TertiaryPale]]; border:2px solid [[ColorPalette::TertiaryMid]];}
.popup {background:[[ColorPalette::TertiaryPale]]; color:[[ColorPalette::TertiaryDark]]; border-left:1px solid [[ColorPalette::TertiaryMid]]; border-top:1px solid [[ColorPalette::TertiaryMid]]; border-right:2px solid [[ColorPalette::TertiaryDark]]; border-bottom:2px solid [[ColorPalette::TertiaryDark]];}
.popup hr {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::PrimaryDark]]; border-bottom:1px;}
.popup li.disabled {color:[[ColorPalette::TertiaryMid]];}
.popup li a, .popup li a:visited {color:[[ColorPalette::Foreground]]; border: none;}
.popup li a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border: none;}
.popup li a:active {background:[[ColorPalette::SecondaryPale]]; color:[[ColorPalette::Foreground]]; border: none;}
.popupHighlight {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
.listBreak div {border-bottom:1px solid [[ColorPalette::TertiaryDark]];}
.tiddler .defaultCommand {font-weight:bold;}
.shadow .title {color:[[ColorPalette::TertiaryDark]];}
.title {color:[[ColorPalette::SecondaryDark]];}
.subtitle {color:[[ColorPalette::TertiaryDark]];}
.toolbar {color:[[ColorPalette::PrimaryMid]];}
.toolbar a {color:[[ColorPalette::TertiaryLight]];}
.selected .toolbar a {color:[[ColorPalette::TertiaryMid]];}
.selected .toolbar a:hover {color:[[ColorPalette::Foreground]];}
.tagging, .tagged {border:1px solid [[ColorPalette::TertiaryPale]]; background-color:[[ColorPalette::TertiaryPale]];}
.selected .tagging, .selected .tagged {background-color:[[ColorPalette::TertiaryLight]]; border:1px solid [[ColorPalette::TertiaryMid]];}
.tagging .listTitle, .tagged .listTitle {color:[[ColorPalette::PrimaryDark]];}
.tagging .button, .tagged .button {border:none;}
.footer {color:[[ColorPalette::TertiaryLight]];}
.selected .footer {color:[[ColorPalette::TertiaryMid]];}
.sparkline {background:[[ColorPalette::PrimaryPale]]; border:0;}
.sparktick {background:[[ColorPalette::PrimaryDark]];}
.error, .errorButton {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Error]];}
.warning {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryPale]];}
.lowlight {background:[[ColorPalette::TertiaryLight]];}
.zoomer {background:none; color:[[ColorPalette::TertiaryMid]]; border:3px solid [[ColorPalette::TertiaryMid]];}
.imageLink, #displayArea .imageLink {background:transparent;}
.annotation {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border:2px solid [[ColorPalette::SecondaryMid]];}
.viewer .listTitle {list-style-type:none; margin-left:-2em;}
.viewer .button {border:1px solid [[ColorPalette::SecondaryMid]];}
.viewer blockquote {border-left:3px solid [[ColorPalette::TertiaryDark]];}
.viewer table, table.twtable {border:2px solid [[ColorPalette::TertiaryDark]];}
.viewer th, .viewer thead td, .twtable th, .twtable thead td {background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::Background]];}
.viewer td, .viewer tr, .twtable td, .twtable tr {border:1px solid [[ColorPalette::TertiaryDark]];}
.viewer pre {border:1px solid [[ColorPalette::SecondaryLight]]; background:[[ColorPalette::SecondaryPale]];}
.viewer code {color:[[ColorPalette::SecondaryDark]];}
.viewer hr {border:0; border-top:dashed 1px [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::TertiaryDark]];}
.highlight, .marked {background:[[ColorPalette::SecondaryLight]];}
.editor input {border:1px solid [[ColorPalette::PrimaryMid]];}
.editor textarea {border:1px solid [[ColorPalette::PrimaryMid]]; width:100%;}
.editorFooter {color:[[ColorPalette::TertiaryMid]];}
.readOnly {background:[[ColorPalette::TertiaryPale]];}
#backstageArea {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::TertiaryMid]];}
#backstageArea a {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstageArea a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; }
#backstageArea a.backstageSelTab {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
#backstageButton a {background:none; color:[[ColorPalette::Background]]; border:none;}
#backstageButton a:hover {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstagePanel {background:[[ColorPalette::Background]]; border-color: [[ColorPalette::Background]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]];}
.backstagePanelFooter .button {border:none; color:[[ColorPalette::Background]];}
.backstagePanelFooter .button:hover {color:[[ColorPalette::Foreground]];}
#backstageCloak {background:[[ColorPalette::Foreground]]; opacity:0.6; filter:'alpha(opacity=60)';}
/*}}}*/
/*{{{*/
* html .tiddler {height:1%;}
body {font-size:.75em; font-family:arial,helvetica; margin:0; padding:0;}
h1,h2,h3,h4,h5,h6 {font-weight:bold; text-decoration:none;}
h1,h2,h3 {padding-bottom:1px; margin-top:1.2em;margin-bottom:0.3em;}
h4,h5,h6 {margin-top:1em;}
h1 {font-size:1.35em;}
h2 {font-size:1.25em;}
h3 {font-size:1.1em;}
h4 {font-size:1em;}
h5 {font-size:.9em;}
hr {height:1px;}
a {text-decoration:none;}
dt {font-weight:bold;}
ol {list-style-type:decimal;}
ol ol {list-style-type:lower-alpha;}
ol ol ol {list-style-type:lower-roman;}
ol ol ol ol {list-style-type:decimal;}
ol ol ol ol ol {list-style-type:lower-alpha;}
ol ol ol ol ol ol {list-style-type:lower-roman;}
ol ol ol ol ol ol ol {list-style-type:decimal;}
.txtOptionInput {width:11em;}
#contentWrapper .chkOptionInput {border:0;}
.externalLink {text-decoration:underline;}
.indent {margin-left:3em;}
.outdent {margin-left:3em; text-indent:-3em;}
code.escaped {white-space:nowrap;}
.tiddlyLinkExisting {font-weight:bold;}
.tiddlyLinkNonExisting {font-style:italic;}
/* the 'a' is required for IE, otherwise it renders the whole tiddler in bold */
a.tiddlyLinkNonExisting.shadow {font-weight:bold;}
#mainMenu .tiddlyLinkExisting,
#mainMenu .tiddlyLinkNonExisting,
#sidebarTabs .tiddlyLinkNonExisting {font-weight:normal; font-style:normal;}
#sidebarTabs .tiddlyLinkExisting {font-weight:bold; font-style:normal;}
.header {position:relative;}
.header a:hover {background:transparent;}
.headerShadow {position:relative; padding:4.5em 0 1em 1em; left:-1px; top:-1px;}
.headerForeground {position:absolute; padding:4.5em 0 1em 1em; left:0px; top:0px;}
.siteTitle {font-size:3em;}
.siteSubtitle {font-size:1.2em;}
#mainMenu {position:absolute; left:0; width:10em; text-align:right; line-height:1.6em; padding:1.5em 0.5em 0.5em 0.5em; font-size:1.1em;}
#sidebar {position:absolute; right:3px; width:16em; font-size:.9em;}
#sidebarOptions {padding-top:0.3em;}
#sidebarOptions a {margin:0 0.2em; padding:0.2em 0.3em; display:block;}
#sidebarOptions input {margin:0.4em 0.5em;}
#sidebarOptions .sliderPanel {margin-left:1em; padding:0.5em; font-size:.85em;}
#sidebarOptions .sliderPanel a {font-weight:bold; display:inline; padding:0;}
#sidebarOptions .sliderPanel input {margin:0 0 0.3em 0;}
#sidebarTabs .tabContents {width:15em; overflow:hidden;}
.wizard {padding:0.1em 1em 0 2em;}
.wizard h1 {font-size:2em; font-weight:bold; background:none; padding:0; margin:0.4em 0 0.2em;}
.wizard h2 {font-size:1.2em; font-weight:bold; background:none; padding:0; margin:0.4em 0 0.2em;}
.wizardStep {padding:1em 1em 1em 1em;}
.wizard .button {margin:0.5em 0 0; font-size:1.2em;}
.wizardFooter {padding:0.8em 0.4em 0.8em 0;}
.wizardFooter .status {padding:0 0.4em; margin-left:1em;}
.wizard .button {padding:0.1em 0.2em;}
#messageArea {position:fixed; top:2em; right:0; margin:0.5em; padding:0.5em; z-index:2000; _position:absolute;}
.messageToolbar {display:block; text-align:right; padding:0.2em;}
#messageArea a {text-decoration:underline;}
.tiddlerPopupButton {padding:0.2em;}
.popupTiddler {position: absolute; z-index:300; padding:1em; margin:0;}
.popup {position:absolute; z-index:300; font-size:.9em; padding:0; list-style:none; margin:0;}
.popup .popupMessage {padding:0.4em;}
.popup hr {display:block; height:1px; width:auto; padding:0; margin:0.2em 0;}
.popup li.disabled {padding:0.4em;}
.popup li a {display:block; padding:0.4em; font-weight:normal; cursor:pointer;}
.listBreak {font-size:1px; line-height:1px;}
.listBreak div {margin:2px 0;}
.tabset {padding:1em 0 0 0.5em;}
.tab {margin:0 0 0 0.25em; padding:2px;}
.tabContents {padding:0.5em;}
.tabContents ul, .tabContents ol {margin:0; padding:0;}
.txtMainTab .tabContents li {list-style:none;}
.tabContents li.listLink { margin-left:.75em;}
#contentWrapper {display:block;}
#splashScreen {display:none;}
#displayArea {margin:1em 17em 0 14em;}
.toolbar {text-align:right; font-size:.9em;}
.tiddler {padding:1em 1em 0;}
.missing .viewer,.missing .title {font-style:italic;}
.title {font-size:1.6em; font-weight:bold;}
.missing .subtitle {display:none;}
.subtitle {font-size:1.1em;}
.tiddler .button {padding:0.2em 0.4em;}
.tagging {margin:0.5em 0.5em 0.5em 0; float:left; display:none;}
.isTag .tagging {display:block;}
.tagged {margin:0.5em; float:right;}
.tagging, .tagged {font-size:0.9em; padding:0.25em;}
.tagging ul, .tagged ul {list-style:none; margin:0.25em; padding:0;}
.tagClear {clear:both;}
.footer {font-size:.9em;}
.footer li {display:inline;}
.annotation {padding:0.5em; margin:0.5em;}
* html .viewer pre {width:99%; padding:0 0 1em 0;}
.viewer {line-height:1.4em; padding-top:0.5em;}
.viewer .button {margin:0 0.25em; padding:0 0.25em;}
.viewer blockquote {line-height:1.5em; padding-left:0.8em;margin-left:2.5em;}
.viewer ul, .viewer ol {margin-left:0.5em; padding-left:1.5em;}
.viewer table, table.twtable {border-collapse:collapse; margin:0.8em 1.0em;}
.viewer th, .viewer td, .viewer tr,.viewer caption,.twtable th, .twtable td, .twtable tr,.twtable caption {padding:3px;}
table.listView {font-size:0.85em; margin:0.8em 1.0em;}
table.listView th, table.listView td, table.listView tr {padding:0px 3px 0px 3px;}
.viewer pre {padding:0.5em; margin-left:0.5em; font-size:1.2em; line-height:1.4em; overflow:auto;}
.viewer code {font-size:1.2em; line-height:1.4em;}
.editor {font-size:1.1em;}
.editor input, .editor textarea {display:block; width:100%; font:inherit;}
.editorFooter {padding:0.25em 0; font-size:.9em;}
.editorFooter .button {padding-top:0px; padding-bottom:0px;}
.fieldsetFix {border:0; padding:0; margin:1px 0px;}
.sparkline {line-height:1em;}
.sparktick {outline:0;}
.zoomer {font-size:1.1em; position:absolute; overflow:hidden;}
.zoomer div {padding:1em;}
* html #backstage {width:99%;}
* html #backstageArea {width:99%;}
#backstageArea {display:none; position:relative; overflow: hidden; z-index:150; padding:0.3em 0.5em;}
#backstageToolbar {position:relative;}
#backstageArea a {font-weight:bold; margin-left:0.5em; padding:0.3em 0.5em;}
#backstageButton {display:none; position:absolute; z-index:175; top:0; right:0;}
#backstageButton a {padding:0.1em 0.4em; margin:0.1em;}
#backstage {position:relative; width:100%; z-index:50;}
#backstagePanel {display:none; z-index:100; position:absolute; width:90%; margin-left:3em; padding:1em;}
.backstagePanelFooter {padding-top:0.2em; float:right;}
.backstagePanelFooter a {padding:0.2em 0.4em;}
#backstageCloak {display:none; z-index:20; position:absolute; width:100%; height:100px;}
.whenBackstage {display:none;}
.backstageVisible .whenBackstage {display:block;}
/*}}}*/
/***
StyleSheet for use when a translation requires any css style changes.
This StyleSheet can be used directly by languages such as Chinese, Japanese and Korean which need larger font sizes.
***/
/*{{{*/
body {font-size:0.8em;}
#sidebarOptions {font-size:1.05em;}
#sidebarOptions a {font-style:normal;}
#sidebarOptions .sliderPanel {font-size:0.95em;}
.subtitle {font-size:0.8em;}
.viewer table.listView {font-size:0.95em;}
/*}}}*/
/*{{{*/
@media print {
#mainMenu, #sidebar, #messageArea, .toolbar, #backstageButton, #backstageArea {display: none !important;}
#displayArea {margin: 1em 1em 0em;}
noscript {display:none;} /* Fixes a feature in Firefox 1.5.0.2 where print preview displays the noscript content */
}
/*}}}*/
<!--{{{-->
<div class='header' macro='gradient vert [[ColorPalette::PrimaryLight]] [[ColorPalette::PrimaryMid]]'>
<div class='headerShadow'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
<div class='headerForeground'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
</div>
<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>
<div id='sidebar'>
<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>
</div>
<div id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
</div>
<!--}}}-->
<!--{{{-->
<div class='toolbar' macro='toolbar [[ToolbarCommands::ViewToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='subtitle'><span macro='view modifier link'></span>, <span macro='view modified date'></span> (<span macro='message views.wikified.createdPrompt'></span> <span macro='view created date'></span>)</div>
<div class='tagging' macro='tagging'></div>
<div class='tagged' macro='tags'></div>
<div class='viewer' macro='view text wikified'></div>
<div class='tagClear'></div>
<!--}}}-->
<!--{{{-->
<div class='toolbar' macro='toolbar [[ToolbarCommands::EditToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='editor' macro='edit title'></div>
<div macro='annotations'></div>
<div class='editor' macro='edit text'></div>
<div class='editor' macro='edit tags'></div><div class='editorFooter'><span macro='message views.editor.tagPrompt'></span><span macro='tagChooser excludeLists'></span></div>
<!--}}}-->
To get started with this blank [[TiddlyWiki]], you'll need to modify the following tiddlers:
* [[SiteTitle]] & [[SiteSubtitle]]: The title and subtitle of the site, as shown above (after saving, they will also appear in the browser title bar)
* [[MainMenu]]: The menu (usually on the left)
* [[DefaultTiddlers]]: Contains the names of the tiddlers that you want to appear when the TiddlyWiki is opened
You'll also need to enter your username for signing your edits: <<option txtUserName>>
These [[InterfaceOptions]] for customising [[TiddlyWiki]] are saved in your browser
Your username for signing your edits. Write it as a [[WikiWord]] (eg [[JoeBloggs]])
<<option txtUserName>>
<<option chkSaveBackups>> [[SaveBackups]]
<<option chkAutoSave>> [[AutoSave]]
<<option chkRegExpSearch>> [[RegExpSearch]]
<<option chkCaseSensitiveSearch>> [[CaseSensitiveSearch]]
<<option chkAnimate>> [[EnableAnimations]]
----
Also see [[AdvancedOptions]]
An Agent resource represents an agent or supervisor that can log in to, and log out from the Contact Center (e.g. an agent that can log in via the CCT reference client).
<html>
<style type="text/css">
.tableHeading_old {border-bottom:1.0pt solid black;border-top:none;width:94pt;font-weight: bold;}
.tableHeading {font-weight: bold;}
.cellUnderline {border-bottom:1.0pt solid black;border-top:none;}
td, th { border: 2px #ccc solid; }
</style>
<table width=750>
<tr height=18>
<td width=50 class="tableHeading">Action</td>
<td width=50 class="tableHeading">Method</td>
<td width=170 class="tableHeading">Resource</td>
<td width=80 class="tableHeading">Response</td>
<td width=400 class="tableHeading">Description</td>
</tr>
<tr height=17>
<td>Agent log in</td>
<td>POST</td>
<td>/agents/[agentID]?ssotoken=[SSOToken]</td>
<td>
HTTP: 200<br>
OR<br>
WebException</td>
<td>Log in an agent to a given terminal.</td>
</tr>
<tr height=67>
<td>Agent log out</td>
<td>POST</td>
<td>/agents/[agentID]?ssotoken=[SSOToken]</td>
<td>HTTP: 200<br>
OR<br>
WebException</td>
<td>Log out an agent client from a given terminal.</td>
</tr>
</table>
</html>
Sample URIs for agent-to-terminal login and logout operations are listed below:
<html>
<style type="text/css">
.tableHeading_old {border-bottom:1.0pt solid black;border-top:none;width:94pt;font-weight: bold;}
.tableHeading {font-weight: bold;}
.cellUnderline {border-bottom:1.0pt solid black;border-top:none;}
td, th { border: 2px #ccc solid; }
</style>
<table width=750>
<tr height=18>
<td width=100 class="tableHeading">Action</td>
<td width=650 class="tableHeading">URI</td>
</tr>
<tr>
<td>Agent log in</td>
<td>http://11.22.33.44:9085/agents/2001?ssotoken=ef4e0bad-f641-45d3-b7e8-0625239cd44f</td>
</tr>
<tr>
<td>Agent log out</td>
<td>http://11.22.33.44:9085/agents/2001?ssotoken=ef4e0bad-f641-45d3-b7e8-0625239cd44f</td>
</tr>
</table>
</html>
The table below contains a list of Agent resource properties that can be used when one of the HTTP methods above is called.
<html>
<style type="text/css">
.tableHeading_old {border-bottom:1.0pt solid black;border-top:none;width:94pt;font-weight: bold;}
.tableHeading {font-weight: bold;}
.cellUnderline {border-bottom:1.0pt solid black;border-top:none;}
td, th { border: 2px #ccc solid; }
</style>
<table width=750>
<tr>
<td width=100 class="tableHeading">Name</td>
<td width=100 class="tableHeading">HTTP Method</td>
<td width=100 class="tableHeading">Data Type</td>
<td width=100 class="tableHeading">Required For</td>
<td width=350 class="tableHeading">Description</td>
</tr>
<tr>
<td>terminalName</td>
<td>POST</td>
<td>String</td>
<td>Login/Logout</td>
<td>The name of the terminal the client is logging into</td>
</tr>
<tr>
<td>providerName</td>
<td>POST</td>
<td>String</td>
<td>Login/Logout</td>
<td>The name of the provider corresponding to the terminal</td>
</tr>
<tr>
<td>agentPassword</td>
<td>POST</td>
<td>String</td>
<td>Login</td>
<td>The password of the agent</td>
</tr>
<tr>
<td>mode</td>
<td>POST</td>
<td>String</td>
<td>Logout</td>
<td>Used to indicate an action on an existing logged in agent. <br>Supported values: "login", "logout"</td>
</tr>
</table>
</html>
Examples of the input and output JSON for the operations supported for the Agent resource are shown in the table below.
<html>
<style type="text/css">
.tableHeading_old {border-bottom:1.0pt solid black;border-top:none;width:94pt;font-weight: bold;}
.tableHeading {font-weight: bold;}
.cellUnderline {border-bottom:1.0pt solid black;border-top:none;}
table { border-collapse: collapse; }
td, th { border: 2px #ccc solid; }
</style>
<table width=750>
<tr height=18>
<td width=100 class="tableHeading">API</td>
<td width=325 class="tableHeading">JSON Input Example</td>
<td width=325 class="tableHeading">JSON Output Example</td>
</tr>
<tr>
<td>Login</td>
<td>
<pre>
{"agent":{
"username":"Agent6000",
"password":"Password1",
"domain":"R1S18-VM30",
"mode":"login"
}
}
</pre>
</td>
<td>No response.</td>
</tr>
<tr>
<td>Logout</td>
<td><pre>
{agent:{
"terminalName":" Line 20.0.2.13",
“providerName”:”Passive”,
"mode":"logout"
}}
</pre></td>
<td>No response.</td>
</tr>
</html>
Bayeux is a protocol for asynchronous notifications to a Web page based on the AJAX technology. An example of a client side implementation of Bayeux is provided by DOJO CometD (http://cometdproject.dojotoolkit.org/).
The server side implementation of CometD is provided by Apache JETTY.
A Contact resource represents a contact in the Contact Center.
<html>
<style type="text/css">
.tableHeading {font-weight: bold;}
td, th { border: 2px #ccc solid; }
</style>
<table width=750>
<tr height=18>
<td width=50 class="tableHeading">Action</td>
<td width=50 class="tableHeading">Method</td>
<td width=170 class="tableHeading">Resource</td>
<td width=80 class="tableHeading">Response</td>
<td width=400 class="tableHeading">Description</td>
</tr>
<tr height=17>
<td>Create a contact</td>
<td>POST</td>
<td>/contacts?ssotoken=[SSO token]</td>
<td>HTTP: 200 & Contact ID OR WebException</td>
<td>Create a contact.<br>A string representing the new contact ID is returned if successful.</td>
</tr>
<tr height=17>
<td>Change the state of an existing contact</td>
<td>POST</td>
<td>/contacts/[Contact ID]?ssotoken=[SSO token]</td>
<td>HTTP: 200 OR WebException</td>
<td>Change the state of the contact <br>
e.g. answer, hold, add intrinsics, attached data etc.</td>
</tr>
</table>
</html>
Sample URIs for creating a contact and changing the state of a contact (answer, drop, add intrinsics) are listed below:
<html>
<style type="text/css">
.tableHeading {font-weight: bold;}
td, th { border: 2px #ccc solid; }
</style>
<table width=750>
<tr height=18>
<td width=100 class="tableHeading">Action</td>
<td width=650 class="tableHeading">URI</td>
</tr>
<tr>
<td>Create</td>
<td>http://47.166.133.5:9085/contacts?ssotoken=4f0e0111-da4c-4f25-a7e7-3a0fe54d485d</td>
</tr>
<tr>
<td>Change state</td>
<td>http://47.166.133.5:9085/contacts/c7ff3aa7-a31e-4ad9-8bac-224cb99f63f2?ssotoken=4f0e0111-da4c-4f25-a7e7-3a0fe54d485d</td>
</tr>
</table>
</html>
The table below contains a list of Contact resource properties that can be used when one of the HTTP methods above is called.
<html>
<style type="text/css">
.tableHeading_old {border-bottom:1.0pt solid black;border-top:none;width:94pt;font-weight: bold;}
.tableHeading {font-weight: bold;}
.cellUnderline {border-bottom:1.0pt solid black;border-top:none;}
td, th { border: 2px #ccc solid; }
</style>
<table width=750>
<tr>
<td width=100 class="tableHeading">Name</td>
<td width=100 class="tableHeading">HTTP Method</td>
<td width=100 class="tableHeading">Data Type</td>
<td width=100 class="tableHeading">Required For</td>
<td width=350 class="tableHeading">Description</td>
</tr>
<tr>
<td>contactId</td>
<td>POST</td>
<td>String</td>
<td>Update</td>
<td>The Contact ID of the contact to be changed. This is used in the CompleteSupervisedTransfer API action</td>
</tr>
<tr>
<td>providerName</td>
<td>POST</td>
<td>String</td>
<td>Create/Update</td>
<td>The name of the provider corresponding to the originating terminal</td>
</tr>
<tr>
<td>origTerminalName</td>
<td>POST</td>
<td>String</td>
<td>Create/Update</td>
<td>The name of the originating terminal for create. <br>Otherwise the terminal from which a contact state is being updated.</td>
</tr>
<tr>
<td>origAddressName</td>
<td>POST</td>
<td>String</td>
<td>Create</td>
<td>The name of originating address</td>
</tr>
<tr>
<td>destAddressName</td>
<td>POST</td>
<td>Array of strings</td>
<td>Create</td>
<td>The names of the destination addresses for a contact.</td>
</tr>
<tr>
<td>callerId</td>
<td></td>
<td>String</td>
<td></td>
<td>Phoneset login ID of agent/supervisor </td>
</tr>
<tr>
<td>providerName</td>
<td>POST</td>
<td>String</td>
<td>Create</td>
<td>The name of the provider corresponding to the subscribed entities</td>
</tr>
<tr>
<td>mode</td>
<td>POST</td>
<td>String</td>
<td>Update</td>
<td>Indicates the mode of the update. Updating a contact includes answering or dropping the contact as well as adding intrinsics or attached data.
Supported values are:<br>
“answer”: answer a contact on a terminal <br>
“drop”: drop a contact on a terminal <br>
“update”: set values for intrinsics or attached data
</td>
</tr>
<tr>
<td>intrinsics</td>
<td>POST</td>
<td>Array of initrinsic elements</td>
<td>Update</td>
<td>Each intrinsic object has the elements: <br>
“key”: Name of the key (String) <br>
“value”: Value assigned to key (String) <br>
“immutable”: “true” or “false”
</td>
</tr>
<tr>
<td>attachedData</td>
<td>POST</td>
<td></td>
<td>Update</td>
<td></td>
</tr>
</table>
</html>
Examples of the JSON expected as input and output for the operations is shown below.
<html>
<style type="text/css">
.tableHeading_old {border-bottom:1.0pt solid black;border-top:none;width:94pt;font-weight: bold;}
.tableHeading {font-weight: bold;}
.cellUnderline {border-bottom:1.0pt solid black;border-top:none;}
table { border-collapse: collapse; }
td, th { border: 2px #ccc solid; }
</style>
<table width=750>
<tr height=18>
<td width=100 class="tableHeading">API</td>
<td width=325 class="tableHeading">JSON Input Example</td>
<td width=325 class="tableHeading">JSON Output Example</td>
</tr>
<tr>
<td>Create contact</td>
<td>
<pre>
{"contact":{
"destAddressNames":["5502"],
"mode":"create",
"origAddressName":"5501",
“origTerminalName":"Line 20.0.2.13",
"providerName":"Passive"
}}
</pre><br>
</td>
<td><pre>
{“contact”:{
“contactId”:"c2fff860-b2a8-4aec-
aafe-e2c38c80bfab”
}}
</pre></td>
</tr>
<tr>
<td>Answer contact</td>
<td>
<pre>
{contact:{
"mode":"answer",
“providerName”:”Passive”,
"origTerminalName":" Line 20.0.2.13"
}}
</pre><br>
</td>
<td>No response</td>
</tr>
<tr>
<td>Drop contact</td>
<td>
<pre>
{contact:{
"mode":"drop",
“providerName”:”Passive”,
"origTerminalName":" Line 20.0.2.13"
}}
</pre><br>
</td>
<td>No response</td>
</tr>
<tr>
<td>Add intrinsics/attachedData</td>
<td>
<pre>
{contact:{
"mode":"update",
"intrinsics":[
{"immutable":true,
"key":"key1",
"value":"value1"},
{"immutable":true,
"key":"key2",
"value":"value2"}
],
“attachedData”:”theAttachedData”
}}
</pre><br>
</td>
<td>No response</td>
</tr>
<tr>
<td>Single step transfer</td>
<td>
<pre>
{contact:{
"mode":"transfer",
"origTerminalName":"Line 20.0.2.13",
"destAddressNames":["5502"],
“providerName”:”Passive”
}}
</pre><br>
</td>
<td><pre>
{“contact”:{
“contactId”:"c2fff860-b2a8-4aec-
aafe-e2c38c80bfab”
}}
</pre>
<b>Note:</b> This is the contact ID of the new transferred contact.
</td>
</tr>
<tr>
<td>Initiate supervised transfer</td>
<td>
<pre>
{contact:{
"mode":"initsupertransfer",
"origTerminalName":"Line 20.0.2.13",
"destAddressNames":["5504"],
“providerName”:”Passive”
}}
</pre><br>
</td>
<td><pre>
{“contact”:{
“contactId”:"c2fff860-b2a8-4aec-
aafe-e2c38c80bfab"
}}
</pre>
<b>Note:</b> This is the contact ID of the new consult contact.
</td>
</tr>
<tr>
<td>Complete supervised transfer</td>
<td>
<pre>
{contact:{
"mode":"completesupertransfer",
"contactId":"c2fff860-b2a8-4aec-
aafe-e2c38c80bfab",
"origTerminalName":"Line 20.0.2.13",
"destAddressNames":["5504"],
“providerName”:”Passive”
}}
</pre><br>
</td>
<td>No response</td>
</tr>
</html>
After a subscription for notifications has been successful events are generated by the REST API and published to subscribed clients in one of two ways: Bayeux and/or via REST endpoint. The choice of event mechanism is made by the client as part of their subscription data.
All events have the same structure – a type and a set of params. Currently only call-related events are defined. Theis structure is shown below:
<html>
<style type="text/css">
.tableHeading {font-weight: bold;}
td, th { border: 2px #ccc solid; }
</style>
<table width=750>
<tr height=18>
<td width=250 class="tableHeading">Element</td>
<td width=500 class="tableHeading">Description</td>
</tr>
<tr height=17>
<td>Type</td>
<td>
Defined event types: <br>
CALL_ACTIVE <br>
CALL_IDLE <br>
CALL_RINGING <br>
CALL_HANGUP
</td>
</tr>
<tr height=17>
<td>Params</td>
<td>
The parameters that correspond to the event type. <br>
For CALL_* event types these parameters consist of: <br>
terminalName – the name of the terminal <br>
calledAddressName – the name of the called address <br>
callingAddressName – the name of the calling address <br>
providerName – the provider name <br>
contacted – the contact ID
</td>
</tr>
</table>
</html>
A JSON example of a CALL_ACTIVE event is:
<html>
<style type="text/css">
.tableHeading {font-weight: bold;}
td, th { border: 2px #ccc solid; }
</style>
<table width=750>
<tr height=17>
<td><pre>
{"event":{
"type":"CALL_HANGUP"
"params":
{"terminalName":"Line20.0.2.13",
"calledAddressName":"5501",
"callingAddressName":"5502",
"providerName":"Passive",
"contactID":"d42225cc-03ea-4496-884a-d836183a004f"
},
}
}
</pre></td>
</tr>
</table>
</html>
[[Bayeux Notification to a HTML Client]]
[[Notification to a REST Endpoint]]
The Avaya CCT REST API provides a Web service API that enables 3rd party Web 2.0 applications to integrate with the Avaya Contact Center.
Information on using JSON and using the REST style is available at [[Using the API]].
The most common API segments are:
* [[Session Resource]]
* [[Agent Resource]]
* [[Subscription Resource]]
* [[Contact Resource]]
Information on the events published by the API is at [[Event Notification]].
version.extensions.InlineJavascriptPlugin= {major: 1, minor: 9, revision: 5, date: new Date(2009,4,11)};
config.formatters.push( {
name: "inlineJavascript",
match: "\\<script",
lookahead: "\\<script(?: src=\\\"((?:.|\\n)*?)\\\")?(?: label=\\\"((?:.|\\n)*?)\\\")?(?: title=\\\"((?:.|\\n)*?)\\\")?(?: key=\\\"((?:.|\\n)*?)\\\")?( show)?\\>((?:.|\\n)*?)\\</script\\>",
handler: function(w) {
var lookaheadRegExp = new RegExp(this.lookahead,"mg");
lookaheadRegExp.lastIndex = w.matchStart;
var lookaheadMatch = lookaheadRegExp.exec(w.source)
if(lookaheadMatch && lookaheadMatch.index == w.matchStart) {
var src=lookaheadMatch[1];
var label=lookaheadMatch[2];
var tip=lookaheadMatch[3];
var key=lookaheadMatch[4];
var show=lookaheadMatch[5];
var code=lookaheadMatch[6];
if (src) { // external script library
var script = document.createElement("script"); script.src = src;
document.body.appendChild(script); document.body.removeChild(script);
}
if (code) { // inline code
if (show) // display source in tiddler
wikify("{{{\n"+lookaheadMatch[0]+"\n}}}\n",w.output);
if (label) { // create 'onclick' command link
var link=createTiddlyElement(w.output,"a",null,"tiddlyLinkExisting",wikifyPlainText(label));
var fixup=code.replace(/document.write\s*\(/gi,'place.bufferedHTML+=(');
link.code="function _out(place,tiddler){"+fixup+"\n};_out(this,this.tiddler);"
link.tiddler=w.tiddler;
link.onclick=function(){
this.bufferedHTML="";
try{ var r=eval(this.code);
if(this.bufferedHTML.length || (typeof(r)==="string")&&r.length)
var s=this.parentNode.insertBefore(document.createElement("span"),this.nextSibling);
if(this.bufferedHTML.length)
s.innerHTML=this.bufferedHTML;
if((typeof(r)==="string")&&r.length) {
wikify(r,s,null,this.tiddler);
return false;
} else return r!==undefined?r:false;
} catch(e){alert(e.description||e.toString());return false;}
};
link.setAttribute("title",tip||"");
var URIcode='javascript:void(eval(decodeURIComponent(%22(function(){try{';
URIcode+=encodeURIComponent(encodeURIComponent(code.replace(/\n/g,' ')));
URIcode+='}catch(e){alert(e.description||e.toString())}})()%22)))';
link.setAttribute("href",URIcode);
link.style.cursor="pointer";
if (key) link.accessKey=key.substr(0,1); // single character only
}
else { // run script immediately
var fixup=code.replace(/document.write\s*\(/gi,'place.innerHTML+=(');
var c="function _out(place,tiddler){"+fixup+"\n};_out(w.output,w.tiddler);";
try { var out=eval(c); }
catch(e) { out=e.description?e.description:e.toString(); }
if (out && out.length) wikify(out,w.output,w.highlightRegExp,w.tiddler);
}
}
w.nextMatch = lookaheadMatch.index + lookaheadMatch[0].length;
}
}
} )
[[Getting Started]]
[[Using the API]]
[[Session Resource]]
[[Agent Resource]]
[[Subscription Resource]]
[[Contact Resource]]
[[Event Notification]]
It’s possible to receive events at a published REST endpoint that can handle JSON event representations.
A Session resource represents a CCT server session for a valid CCT user that can log in to, and log out from the CCT server.
<html>
<style type="text/css">
.tableHeading_old {border-bottom:1.0pt solid black;border-top:none;width:94pt;font-weight: bold;}
.tableHeading {font-weight: bold;}
.cellUnderline {border-bottom:1.0pt solid black;border-top:none;}
td, th { border: 2px #ccc solid; }
</style>
<table width=750>
<tr height=18>
<td width=50 class="tableHeading">Action</td>
<td width=50 class="tableHeading">Method</td>
<td width=170 class="tableHeading">Resource</td>
<td width=80 class="tableHeading">Response</td>
<td width=400 class="tableHeading">Description</td>
</tr>
<tr height=17>
<td>CCT User log in</td>
<td>POST</td>
<td>/session</td>
<td>
HTTP: 200<br>
SSO Token<br>
OR<br>
WebException</td>
<td>Log in a CCT user to a CCT server session.<br>A string representing an Single Sign On (SSO) token is returned if successful.</td>
</tr>
</table>
</html>
Sample URIs for login and logout operations are listed below:
<html>
<style type="text/css">
.tableHeading_old {border-bottom:1.0pt solid black;border-top:none;width:94pt;font-weight: bold;}
.tableHeading {font-weight: bold;}
.cellUnderline {border-bottom:1.0pt solid black;border-top:none;}
td, th { border: 2px #ccc solid; }
</style>
<table width=750>
<tr height=18>
<td width=100 class="tableHeading">Action</td>
<td width=650 class="tableHeading">URI</td>
</tr>
<tr>
<td>CCT User session log in</td>
<td>http://11.222.33.44:9085/session</td>
</tr>
<!--
<tr>
<td>Agent log out</td>
<td>http://47.166.133.5:9085/session/ef4e0bad-f641-45d3-b7e8-0625239cd44f</td>
</tr>
-->
</table>
</html>
The table below contains a list of Agent resource properties that can be used when one of the HTTP methods above is called.
<html>
<style type="text/css">
.tableHeading_old {border-bottom:1.0pt solid black;border-top:none;width:94pt;font-weight: bold;}
.tableHeading {font-weight: bold;}
.cellUnderline {border-bottom:1.0pt solid black;border-top:none;}
td, th { border: 2px #ccc solid; }
</style>
<table width=750>
<tr>
<td width=100 class="tableHeading">Name</td>
<td width=100 class="tableHeading">HTTP Method</td>
<td width=100 class="tableHeading">Data Type</td>
<td width=100 class="tableHeading">Required For</td>
<td width=350 class="tableHeading">Description</td>
</tr>
<tr>
<td>username</td>
<td>POST</td>
<td>String</td>
<td>Login</td>
<td>The CCT user name</td>
</tr>
<tr>
<td>password</td>
<td>POST</td>
<td>String</td>
<td>Login</td>
<td>The CCT user password</td>
</tr>
<tr>
<td>Domain</td>
<td>POST</td>
<td>String</td>
<td>Login</td>
<td>The domain for the user</td>
</tr>
<!--
<tr>
<td>mode</td>
<td>POST</td>
<td>String</td>
<td>Logout</td>
<td>Used to indicate an action on an existing logged in agent. Support values: "logout"</td>
</tr>
-->
</table>
</html>
Examples of the input and output JSON for the operations supported for the Agent resource are shown in the table below.
<html>
<style type="text/css">
.tableHeading_old {border-bottom:1.0pt solid black;border-top:none;width:94pt;font-weight: bold;}
.tableHeading {font-weight: bold;}
.cellUnderline {border-bottom:1.0pt solid black;border-top:none;}
table { border-collapse: collapse; }
td, th { border: 2px #ccc solid; }
</style>
<table width=750>
<tr height=18>
<td width=100 class="tableHeading">API</td>
<td width=325 class="tableHeading">JSON Input Example</td>
<td width=325 class="tableHeading">JSON Output Example</td>
</tr>
<tr>
<td>Login</td>
<td>
<pre>
{"agent":{
"username":"Agent6000",
"password":"Password1",
"domain":"R1S18-VM30"
}
}
</pre>
</td>
<td>
<pre>
{"agent":{
"ssotoken":"[ssotoken-value]"
}}
</pre>
</td>
</tr>
<!-- Start comment
<tr>
<td>Logout</td>
<td><pre>
{agent:{
"mode":"logout",
"terminalName":" Line 20.0.2.13",
“providerName”:”Passive”
}}
</pre></td>
<td>No response.</td>
</tr>
-->
</html>
Avaya Aura ® Contact Center CCT REST API
A Subscription resource represents a subscription for events generated by the Contact Center.
<html>
<style type="text/css">
.tableHeading_old {border-bottom:1.0pt solid black;border-top:none;width:94pt;font-weight: bold;}
.tableHeading {font-weight: bold;}
.cellUnderline {border-bottom:1.0pt solid black;border-top:none;}
td, th { border: 2px #ccc solid; }
</style>
<table width=750>
<tr height=18>
<td width=50 class="tableHeading">Action</td>
<td width=50 class="tableHeading">Method</td>
<td width=170 class="tableHeading">Resource</td>
<td width=80 class="tableHeading">Response</td>
<td width=400 class="tableHeading">Description</td>
</tr>
<tr height=17>
<td>Subscribe</td>
<td>POST</td>
<td>/subscriptions?ssotoken=<SSO token></td>
<td>HTTP: 200 & Subscription ID OR WebException</td>
<td>Create a subscription.<br>A string representing the new subscriptionID is returned if successful. </td>
</tr>
</table>
</html>
A sample URI for creating a subscription is listed below:
<html>
<style type="text/css">
.tableHeading_old {border-bottom:1.0pt solid black;border-top:none;width:94pt;font-weight: bold;}
.tableHeading {font-weight: bold;}
.cellUnderline {border-bottom:1.0pt solid black;border-top:none;}
td, th { border: 2px #ccc solid; }
</style>
<table width=750>
<tr height=18>
<td width=100 class="tableHeading">Action</td>
<td width=650 class="tableHeading">URI</td>
</tr>
<tr>
<td>Create subscription</td>
<td>http://47.166.133.5:9085/subscriptions?ssotoken=4f0e0111-da4c-4f25-a7e7-3a0fe54d485d</td>
</tr>
</table>
</html>
The table below contains a list of Subscription resource properties that can be used when one of the HTTP methods above is called.
<html>
<style type="text/css">
.tableHeading_old {border-bottom:1.0pt solid black;border-top:none;width:94pt;font-weight: bold;}
.tableHeading {font-weight: bold;}
.cellUnderline {border-bottom:1.0pt solid black;border-top:none;}
td, th { border: 2px #ccc solid; }
</style>
<table width=750>
<tr>
<td width=100 class="tableHeading">Name</td>
<td width=100 class="tableHeading">HTTP Method</td>
<td width=100 class="tableHeading">Data Type</td>
<td width=100 class="tableHeading">Required For</td>
<td width=350 class="tableHeading">Description</td>
</tr>
<tr>
<td>eventEndpointUri</td>
<td>POST</td>
<td>String</td>
<td>Create</td>
<td>URI specifying a REST-style endpoint capable of consuming Contact Center events generated by the REST API. <br>
If this is a non-null value the REST API will attempt to publish events to this endpoint URI.</td>
</tr>
<tr>
<td>correlator</td>
<td></td>
<td>String</td>
<td></td>
<td>ParlayX-style subscriber-suppled correlation ID</td>
</tr>
<tr>
<td>Domain</td>
<td>POST</td>
<td>String</td>
<td>Login</td>
<td>The domain for the user</td>
</tr>
<tr>
<td>channelName</td>
<td>POST</td>
<td>String</td>
<td>Create</td>
<td>Bayeux protocol channel name. <br>
If this property is set, the REST API will use this Bayeux channel as a destination for any generated events relating to the entities listed in the subscription.</td>
</tr>
<tr>
<td>providerName</td>
<td>POST</td>
<td>String</td>
<td>Create</td>
<td>The name of the provider corresponding to the subscribed entities</td>
</tr>
<tr>
<td>subscriptionDetails</td>
<td>POST</td>
<td>Array of subscriptionDetail elements</td>
<td>Create</td>
<td>Used to specify the names of entities being subscribed for and (optionally) the names of the event types against which the subscription is valid.
Entity names correspond to Contact Center addresses and terminals. <br>An example of a subscription detail is:
<pre>
"subscriptionDetails":{
"entityNames":["entity1","entity2"],
"eventNames":["event1","event2"],
"type":"terminal"}
</pre></td>
</tr>
</table>
</html>
Examples of the JSON input and output for the subscription for terminal are shown below.
<html>
<style type="text/css">
.tableHeading_old {border-bottom:1.0pt solid black;border-top:none;width:94pt;font-weight: bold;}
.tableHeading {font-weight: bold;}
.cellUnderline {border-bottom:1.0pt solid black;border-top:none;}
table { border-collapse: collapse; }
td, th { border: 2px #ccc solid; }
</style>
<table width=750>
<tr height=18>
<td width=100 class="tableHeading">API</td>
<td width=325 class="tableHeading">JSON Input Example</td>
<td width=325 class="tableHeading">JSON Output Example</td>
</tr>
<tr>
<td>Create subscription</td>
<td>
<pre>
{"subscription":{
"eventEndpointUri":"http://localhost:9085/eventEndpoint",
"providerName":"Passive",
"subscriptionDetails":{
"entityNames":["Line 20.0.2.13"],
"type":"terminal"}
}
}
</pre><br>
<b>Note:</b> eventName is not yet used for subscriptions.
</td>
<td>String: subscription ID</td>
</tr>
</html>
config.options.chkShowRightSidebar (true)
config.options.txtToggleRightSideBarLabelShow
config.options.txtToggleRightSideBarLabelHide
The REST API uses the JSON (JavaScript for Object Notation) format for exchanging data. For more information on JSON see:
* http://www.json.org/
* http://en.wikipedia.org/wiki/JSON
* the
One of the principles of the REST API is its focus on resources and their representation.
* To get the current representation of the state of a resource, a HTTP GET is sent to a unique URI for that resource.
* To add a resource, a HTTP POST is made including a representation of the desired new resource as the payload of the POST operation.
* To update a resource, a HTTP PUT including the required updated representation of the resource is the recommended HTTP verb. However to support Microsoft IE8, HTTP POST is used instead as PUT is not supported for cross domain XML over HTTP requests.
* To delete a resource, a HTTP DELETE is the recommended HTTP verb but as with PUT, this is not supported by IE8 for cross domain requests, hence POST will be used instead.
if(config.options.txtUserName != "matthem1") {
readOnly = true;
showBackstage = false;
}