07-11-2017 08:26 AM
Hi all,
In attempting to build a third party gadget for Cisco Finesse, I have successfully written the XML specification for the gadget and embedded it through the 3rdpartygadget account as specified in the Finesse Web Developer Guide. This gadget needs to communicate with the XMPP BOSH server run by Cisco SocialMiner in order to function properly.
Since BOSH is a standard protocol, I am following the guide found here. However, whenever I get to the authentication stage, I fail to get a successful reply from the server. I am somewhat confident that the API calls are being made correctly because upon inspecting the calls being made by a built-in gadget, the makeup of the calls are identical, right down to the credentials.
The following is a rundown of the process used to connect, where these are ajax calls made in JavaScript code:
1. Send a post request to the server as follows:
<body xmlns="http://jabber.org/protocol/httpbind"
xml:lang="en-US"
xmlns:xmpp="urn:xmpp:xbosh"
hold="1"
ver="1.9"
to="{valid_url}"
wait="30"
xmpp:version="1.0"
from="{agent_name}@{valid_url}"
rid="3516575067" />
With the response being:
<body wait="30"
inactivity="60"
polling="5"
requests="4"
hold="1"
sid="d0a49ad6"
authid="d0a49ad6"
xmlns="http://jabber.org/protocol/httpbind"
xmlns:stream="http://etherx.jabber.org/streams"
secure="true"
ack="3516575067"
maxpause="300"
ver="1.6">
<stream:features>
<mechanisms xmlns="urn:ietf:params:xml:ns:xmpp-sasl">
<mechanism>PLAIN</mechanism>
</mechanisms>
<compression xmlns="http://jabber.org/features/compress">
<method>zlib</method>
</compression>
<bind xmlns="urn:ietf:params:xml:ns:xmpp-bind" />
<session xmlns="urn:ietf:params:xml:ns:xmpp-session" />
</stream:features>
</body>
2. Send a post request to the server for auth
<body xmlns="http://jabber.org/protocol/httpbind" sid="d0a49ad6" rid="3516575068">
<auth xmlns="urn:ietf:params:xml:ns:xmpp-sasl" mechanism="PLAIN">{base64_encoded_auth_string}
</auth>
</body>
With the response being:
<body xmlns="http://jabber.org/protocol/httpbind">
<failure xmlns="urn:ietf:params:xml:ns:xmpp-sasl"><not-authorized></not-authorized></failure>
</body>
However, the response to the built-in gadget is:
<body xmlns='http://jabber.org/protocol/httpbind'>
<success xmlns="urn:ietf:params:xml:ns:xmpp-sasl" />
</body>
P.S. I am aware that the proper format for the source for the {base64_encoded_auth_string} is "\u{0}" + username + "\u{0}" + password.
So the issue is, I don't understand what the built-in gadget is doing that I am not doing. I have not been able to get the proper response from the server and these are the main places I have searched to help solve the issue:
Finesse Web Services Developer Guide (11.5)
SocialMiner Developer Guide (11.5)
As well as tried to use the libraries:
All to no avail.
Has anyone done this before and can you please help shed some light on the issue?
Solved! Go to Solution.
11-09-2017 10:00 PM
This question is a duplicate of Problems connecting to SocialMiner BOSH.
11-09-2017 10:00 PM
This question is a duplicate of Problems connecting to SocialMiner BOSH.
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide