anchor.diff:      Result = exmpp_iq:result(IQ, exmpp_xml:element(?NS_DISCO_ITEMS, 'query', [], [])),
       send_packet(Session, Result);
   
  +process_iq(_Session, _Type, ?NS_ROSTER, IQ) ->
  +    Roster = exmpp_xml:get_element_by_ns(IQ, 'jabber:iq:roster'),
  +    Items = exmpp_xml:get_elements(Roster, 'item'),
  +    ModItems = lists:map(fun(X) -> 
  +                  Jid = exmpp_jid:parse(exmpp_xml:get_attribute(X, <<"jid">>, "")), 
  +                  exmpp_xml:element(?NS_ROSTER, 'item', [
  +                     exmpp_xml:attribute(<<"jid">>,
  +                          binary:list_to_bin(exmpp_jid:node_as_list(Jid) ++ "%" ++ 
  +                                       exmpp_jid:domain_as_list(Jid) ++ "@" ++ 
  +			               ej2j:get_app_env(component, ?COMPONENT))), 
  +                     exmpp_xml:attribute(<<"subscription">>,exmpp_xml:get_attribute(X, <<"subscription">>, ""))],[]) 
  +               end, Items),
  +    NewRoster = exmpp_xml:set_children(Roster, ModItems),
  +    send_packet(_Session, exmpp_iq:result(IQ, NewRoster));
  +
   process_iq(Session, "get", ?NS_INBAND_REGISTER, IQ) ->
       Result = exmpp_iq:result(IQ, ej2j_helper:inband_register()),
       send_packet(Session, Result);
  
positive.code: -include_lib("exmpp/include/exmpp_client.hrl").
  -include_lib("exmpp/include/exmpp_xml.hrl").
  -include_lib("exmpp/include/exmpp_nss.hrl").
  
  -include("ej2j.hrl").
  
  
negative.code: 	Password = ej2j_helper:form_field(Form, <<"password">>),
  	UserSession = start_client(SenderJID, JID, Password),
          exmpp_session:login(UserSession),
          Status = exmpp_presence:set_status(exmpp_presence:available(), undefined),
          Roster = exmpp_client_roster:get_roster(),
          send_packet(Session, exmpp_iq:result(IQ)),
          exmpp_session:send_packet(UserSession, Status),
          exmpp_session:send_packet(UserSession, Roster)
      catch
          _Class:_Error ->
  	    send_packet(Session, exmpp_iq:error(IQ, forbidden))
  