I am using RobbieHanson IOS XMPP Framework and able to connect properly to Google Talk using the sample application that displays roster with presence status.
However, when I use the XMPP Framework to connect to Cisco IM Presence server (XMPP based), I am able to connect to the server, however roster is not getting created and I get the following error in the NSLog comes with the framework.
NSLog:
2013-02-18 20:32:07:015 iPhoneXMPP[26080:12f03] SEND: <iq type="set"><bind xmlns="urn:ietf:params:xml:ns:xmpp-bind"/></iq>
2013-02-18 20:32:07:064 iPhoneXMPP[26080:12f03] RECV: <iq xmlns="jabber:client" to="[email protected]/312468361axcdf9887297cfd57d3e98474e447" type="error"><bind xmlns="urn:ietf:params:xml:ns:xmpp-bind"><resource>8222d2468361a8ff9887297cfd57d3e98474e447</resource></bind><error code="400" type="modify"><bad-request
The issue seems to be that <iq>
entity is missing the <id>
attribute when I contrast this log with the Log generated (below details) from another IM client that connects properly to the Cisco IM Presence Server
IM Client Log around IQ setting that connects:
<iq type='set' id='purple95a4a0c3'><bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'><resource>pidgin</resource></bind></iq>
I wanted to check if there is a way to set the id attribute for <iq>
element in XMPPFramework and/or if there is something else I need to do to fix the issue.
As a side note, I noticed that Google Talk is working without need for id attribute in <iq>
element, while the xmpp specs at http://xmpp.org/rfcs/rfc3920.html#stanzas-semantics-iq indicates id is an mandatory attribute of <iq>
element.