Subject: Finesse Presence Example.
I am trying to connect to Finesse using xmppClient, and I get a not-authorized.
I connected successfully using the Rest api, and can change states. But I need to know the presence of the current user to grab the screen pop handler for a thick client screen pop listener...
HELP?
Here's my code that doesn't work...
Here's my RestAPI function I got working just to share the wealth... Need to add Reason codes later.
- <failure xmlns="urn:ietf:params:xml:ns:xmpp-sasl">
- <not-authorized />
- </failure>
HELP?
Here's my code that doesn't work...
- private void ConnectBosh()
- {
- m_xmppClient.Transport = Matrix.Net.Transport.Bosh;
- m_xmppClient.PreferredSsoSaslMechanism = Matrix.Xmpp.Sasl.SaslMechanism.Plain;
- m_xmppClient.AutoPresence = true;
- m_xmppClient.Password = LoggedOnPassword;
- m_xmppClient.Username = string.Format("{0}@{1}" , LoggedOnUserName, FinesseFQDN);
- serverJid = m_xmppClient.Username;
- m_xmppClient.AutoPresence = true;
- m_xmppClient.OnReceiveXml += xmppClient_OnRecieveXml;
- m_xmppClient.OnPresence += xmppClient_OnPresence;
- m_xmppClient.OnError += m_xmppClient_OnError;
- m_xmppClient.OnAuthError += m_xmppClient_OnAuthError;
- m_xmppClient.OnBindError += m_xmppClient_OnBindError;
- m_xmppClient.OnMessage += m_xmppClient_OnMessage;
- m_xmppClient.OnBind += m_xmppClient_OnBind;
- m_xmppClient.Port = 7443;
- m_xmppClient.OnClose += m_xmppClient_OnClose;
- m_xmppClient.XmppDomain = FinesseFQDN;
- m_xmppClient.Open();
- mgr.OnEvent += mgr_OnEvent;
- }
Here's my RestAPI function I got working just to share the wealth... Need to add Reason codes later.
- private string ChangeStates(UserStates NewState)
- {
- string m_strAuth = Convert.ToBase64String(Encoding.ASCII.GetBytes(LoggedOnUserName + ":" + LoggedOnPassword));
- // setup WebClient
- m_wc.Headers.Add("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
- m_wc.Headers.Add("Authorization", string.Format("Basic {0}", m_strAuth));
- m_wc.Headers.Add("Content-Type", "application/xml");
- // perform the PUT request
- byte[] dataBytes = Encoding.UTF8.GetBytes(BuildStateString(NewState));
- string URL = string.Format("{0}:{1}/finesse/api/User/{2}", UccxFQDN, FinessePort, LoggedOnUserName);
- byte[] responseArray = m_wc.UploadData(URL, "PUT", dataBytes);
- return Encoding.ASCII.GetString(responseArray);
- }