03-08-2014 02:19 PM
Hello,
I cannot login from this demo page which can be downloaded from:
I have already installed and configured my own Cisco Unified Communication Manager and Cisco IM&Presense Server, not using Shared Lab. I developed and integrated voice features with Jabber SDK and now want to provide presence features from my web application.
So I downloaded the demo to my localhost and configured nginx for proxy to be able to use xmpp over bosh.
When I tried to login with wrong credentials, it says "Unable to login. Check username and password.". That's what I expected. But when I entered exact credentials, it waits for a while and then says "Operation failed".
I investigated the issue a lot but could not find the solution yet. I also read the XMPP protocol notes to find out what's going on but still could not fixed. Maybe you can help me to fix the issue or show some ways to debug it.
Here is the doc:
Here are the XMPP requests and responses that I logged from the demo page:
First Request
<body xmlns="http://jabber.org/protocol/httpbind" xmlns:xmpp="urn:xmpp:xbosh" hold="1" ver="1.9" from="mustafa@192.168.56.101" to="192.168.56.101" secure="true" wait="30" xmpp:version="1.0" rid="4294805355"/>
First Response
<body authid='5B3AF75983' inactivity='60' polling='5' requests='2' secure='true' sid='5B3AF75983' ver='1.8' wait='30' xmlns='http://jabber.org/protocol/httpbind' xmlns:stream='http://etherx.jabber.org/streams'><stream:features><mechanisms xmlns='urn:ietf:params:xml:ns:xmpp-sasl'><mechanism>PLAIN</mechanism><mechanism>CISCO-VTG-TOKEN</mechanism><hostname xmlns='urn:xmpp:domain-based-name:0'>192.168.2.156</hostname></mechanisms></stream:features></body>
Second Request
<body xmlns="http://jabber.org/protocol/httpbind" sid="5B3AF75983" rid="4294805356"><auth xmlns="urn:ietf:params:xml:ns:xmpp-sasl" mechanism="PLAIN">AG11c3RhZmEAMTIzNDU2</auth></body>
Second Response
<body xmlns='http://jabber.org/protocol/httpbind' xmlns:stream='http://etherx.jabber.org/streams'><success xmlns='urn:ietf:params:xml:ns:xmpp-sasl'/></body>
Third Request
<body xmlns="http://jabber.org/protocol/httpbind" sid="5B3AF75983" xmlns:xmpp="urn:xmpp:xbosh" xmpp:restart="true" to="192.168.56.101" rid="4294805357"/>
Third Response
<body xmlns='http://jabber.org/protocol/httpbind' xmlns:stream='http://etherx.jabber.org/streams'/>
Last Request
<body xmlns="http://jabber.org/protocol/httpbind" sid="5B3AF75983" rid="4294805358"><iq xmlns="jabber:client" type="set" id="resource-bind"><bind xmlns="urn:ietf:params:xml:ns:xmpp-bind"><resource>sampleclient</resource></bind></iq></body>
Last Response
<body condition='remote-stream-error' type='terminate' xmlns='http://jabber.org/protocol/httpbind' xmlns:stream='http://etherx.jabber.org/streams'><failure xmlns='urn:ietf:params:xml:ns:xmpp-sasl'><bind-error/></failure></body>
Thanks,
Solved! Go to Solution.
03-12-2014 01:37 PM
I see, the problem is on your domain name.
Please try using the "domain name" instead of "IP address" for the "domain" config in your CAXL setting.
The domain name is the domain name that your CUPS server belongs to.
CUPS->System->Cluster Topology->Settings->Domain Name
Thanks,
Howard
03-10-2014 09:19 AM
Hi Mustafa,
Firs thing first, could you please paste the BOSH url to your browser to see if it returns back below
This URI is for XMPP communication via the BOSH protocol.
Please reference the following protocols:
You can try from both nginx proxy, and directly from IM&Presense Server.
If the IM&Presense Server not response, then check to make sure the Cisco UP XCP Web Connection Manager service is running. Also, check if the System->Security->Setting->Enable Web Client to CUP Secure Mode is checked or not. If it's checked, then the BOSH url will be https, otherwise it will be http
If it's the proxy that's not responding, then it must be the proxy setting that went wrong. Actually, you don't need a proxy to redirect the BOSH URL since the browser are pretty much support it now.
If above are all setting correctly, you might want to check if the users are setup correctly.
Let us know if you are still facing the problem.
Thanks,
Howard
03-10-2014 09:57 AM
Can you clarify your comment on proxies below...? AFAIK cross-origin
security mechanisms in modern browsers will not allow CAXL to work
direct to CUP..?
Regards,
- David Staudt
03-10-2014 10:14 AM
Please refer to the compatibility table below.
Most of the browser do support cross-origin, there are still some cases you will need a proxy to get through.
Howrad
03-10-2014 10:56 AM
Ah...groovy, thanks for that
Regards,
- David Staudt
03-10-2014 10:06 AM
Hello Ting-Hao,
Yes, directly or via proxy, I can get the page you gave as an example. I also can send request and get response from IM&Presence Server. When BOSH URL is not setup correctly, it returns http error code or browser does not allow this request. So I think there is no problem with BOSH URL.
Also I read your some replies in the forum about Secure Mode. In my default conf, it was https. I set it up but I was getting same error message. Then, I turned it into non-secure mode according to your replies, BOSH URL responses again but the situation is still same...
So then, I think my user's configuration may be problematic but I tried Cisco Jabber for Mac to check my conf. It is working. I can chat or set presence with this software.
Do you have any other idea to fix or debug the issue or is there any settings that can be affect here?
Here are some additional information about my conf below. It may help you to investigate responses that I gave in the first post.
Localhost: 192.168.56.101
Call Manager: 192.168.2.155
IM&Presence Server: 192.168.2.156
Jabber UI Demo locates at: http://192.168.56.101/cisco/jabberUIDemo/jabberUIDemo.html
(I gave this address because domain compatibility is important to connect via XMPP over BOSH)
Nginx Proxy Conf:
location /httpbinding {
access_log off;
proxy_pass http://192.168.2.156:7335/httpbinding;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
Thanks,
03-11-2014 11:36 AM
From the xmpp, looks like the authentication has passed. Then, something wrong when actually requesting the resource from server.
Could you try directly connect to CUPS, instead of using proxy?
And post the CAXL configuration, xmpp console logs, and JavaScript logs here.
Thanks,
Howard
03-12-2014 10:34 AM
Hello Howard,
Thanks for your quick reply. Yes, authentication has successfully passed. Also when I enter wrong credentials, it also returns error message. But something goes wrong in other requests.
I've also tried to connect directly to CUPS but the problem still exists.
Here are the details that you've requested:
I've sent setup information in the previous post.
CAXL configuration:
I'm sending the conf which is edited for direct connection instead proxy
var demo_config = {
domain: "192.168.56.101", //the domain specified for your CUP server
httpBindingURL: "http://192.168.2.156:7335/httpbinding", //the BOSH url for your server
unsecureAllowed: true, //unsecureAllowed should be true if plaintext authentication is allowed over unencrypted or unsecured HTTP channels
}
Console Log:
GET http://192.168.56.101/cisco/jabberUIDemo/caxl/resources/translations/TranslationData.en_US.js jabberwerx.ui.js (line 5254)
Loaded translation for en-US jabberwerx.ui.js (line 9677)
Password fields present on an insecure (http://) page. This is a security risk that allows user login
credentials to be stolen. 0
Note: Service discovery is disabled on the client. jabberwerx.ui.js (line 9677)
Cross site is true. jabberwerx.ui.js (line 9677)
Update _connectToNode = 192.168.2.156 jabberwerx.ui.js (line 9677)
Bosh URL is: http://192.168.2.156:7335/httpbinding jabberwerx.ui.js (line 9677)
POST http://192.168.2.156:7335/httpbinding 200 OK 7ms jabberwerx.ui.js (line 5254)
POST http://192.168.2.156:7335/httpbinding 200 OK 24ms jabberwerx.ui.js (line 5254)
POST http://192.168.2.156:7335/httpbinding 200 OK 2.01s jabberwerx.ui.js (line 5254)
POST http://192.168.2.156:7335/httpbinding 200 OK 2ms jabberwerx.ui.js (line 5254)
closed: <stream:error xmlns:stream="http://etherx.jabber.org/streams"><undefined-condition xmlns="urn:ietf:params:xml:ns:xmpp-streams"/></stream:error>
XMPP Request and Responses
First Request:
<body xmlns="http://jabber.org/protocol/httpbind" xmlns:xmpp="urn:xmpp:xbosh" hold="1" ver="1.9" from="mustafa@192.168.56.101" to="192.168.56.101" secure="true" wait="30" xmpp:version="1.0" rid="4062769493">
</body>
First Response:
<body authid='7126BEDE5D' inactivity='60' polling='5' requests='2' secure='true' sid='7126BEDE5D' ver='1.8' wait='30' xmlns='http://jabber.org/protocol/httpbind' xmlns:stream='http://etherx.jabber.org/streams'><stream:features><mechanisms xmlns='urn:ietf:params:xml:ns:xmpp-sasl'><mechanism>PLAIN</mechanism><mechanism>CISCO-VTG-TOKEN</mechanism><hostname xmlns='urn:xmpp:domain-based-name:0'>192.168.2.156</hostname></mechanisms></stream:features></body>
Second Request:
<body xmlns="http://jabber.org/protocol/httpbind" sid="7126BEDE5D" rid="4062769494">
<auth xmlns="urn:ietf:params:xml:ns:xmpp-sasl" mechanism="PLAIN">AG11c3RhZmEAMTIzNDU2</auth>
</body>
Second Response:
<body xmlns='http://jabber.org/protocol/httpbind' xmlns:stream='http://etherx.jabber.org/streams'><success xmlns='urn:ietf:params:xml:ns:xmpp-sasl'/></body>
Third Request:
<body xmlns="http://jabber.org/protocol/httpbind" sid="7126BEDE5D" xmlns:xmpp="urn:xmpp:xbosh" xmpp:restart="true" to="192.168.56.101" rid="4062769495">
</body>
Third Response:
<body xmlns='http://jabber.org/protocol/httpbind' xmlns:stream='http://etherx.jabber.org/streams'/>
Last Request:
<body xmlns="http://jabber.org/protocol/httpbind" sid="7126BEDE5D" rid="4062769496">
<iq id="resource-bind" xmlns="jabber:client" type="set">
<bind xmlns="urn:ietf:params:xml:ns:xmpp-bind">
<resource>sampleclient</resource>
</bind>
</iq>
</body>
Last Response:
<body condition='remote-stream-error' type='terminate' xmlns='http://jabber.org/protocol/httpbind' xmlns:stream='http://etherx.jabber.org/streams'><failure xmlns='urn:ietf:params:xml:ns:xmpp-sasl'><bind-error/></failure></body>
Client Operating System: OS X 10.9.1
Client Browser: Firefox 27.0.1
Also the problem is reproduced in Chrome Version 33.0.1750.146, Safari Version 7.0.1 (9537.73.11)
Also there is a strange thing that I've noticed, it may helps. Third request is taking too much than the other request and when it is completed, fourth request is also completed. To debug this, I've did some changes in caxl/jabberwerx.ui.js. I changed async value true to false to understand what's going on. When I did this, third request is taking too much again but when it is finished there were no other requests...
Best,
03-12-2014 01:37 PM
I see, the problem is on your domain name.
Please try using the "domain name" instead of "IP address" for the "domain" config in your CAXL setting.
The domain name is the domain name that your CUPS server belongs to.
CUPS->System->Cluster Topology->Settings->Domain Name
Thanks,
Howard
03-12-2014 02:55 PM
Howard,
Thank you so much. With the change you said, I passed the login stage.
Best regards,
Mustafa ŞAPÇILI
10-07-2015 06:18 AM
Hello,
I am integration this demo for web chat in my website. i am configure with my server like
var demo_config = {
// domain: "psdtemea.cisco.com", //the domain specified for your CUP server
domain: "192.168.1.161",
httpBindingURL: "http://192.168.1.161:5280/http-bind/", //the BOSH url for your server
unsecureAllowed: true
}
Than i have got login screen than after i have already user created on my server with openfire. so i am using my user name and password in this provided login screen.
my username is : hitesh
my password is : 123456
i am push the login button than i have got response in console log like same as above post like Mustufa.
In the third response i am getting failure like this:
<body xmlns='http://jabber.org/protocol/httpbind' ack='3560616839'><failure xmlns="urn:ietf:params:xml
:ns:xmpp-sasl"><not-authorized/></failure></body>
So, What can i do for login and go ahead for chetting proccess. please help me...
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