The XMPP client in Gigaset's C470IP (and possible other devices) does not send an 'id' attribute while requesting the roster at login. The resulting error thrown by prosody in turn makes the device immediately disconnect.
In core/stanza_router.lua
comment out the following three lines:
elseif not stanza.attr.id then
origin.send(st.error_reply(stanza, "modify", "bad-request", "Missing required 'id' attribute"));
return;
This allows the C470IP to connect.