// value of the presence, added by the routing logic as request parameter
String value = request.getParameter("value");
@SuppressWarnings("rawtypes") Map formData = parseXmppFormData(request);
return new PresenceBuilder()
.withFromJid(new JID((String) formData.get("from")))
.withToJid(new JID((String) formData.get("to")))
.withPresenceType(PresenceType.valueOf(value.toUpperCase()))
.withPresenceShow("available".equals(value) ? PresenceShow.NONE : null)
.build();