anchor.diff:           retract_from_node_stanza/2,
            retrieve_subscriptions_stanza/1,
            set_subscriptions_stanza/2,
  -         subscribe_by_user_stanza/3,
  -         unsubscribe_by_user_stanza/3
  +         subscribe_by_user_stanza/4,
  +         unsubscribe_by_user_stanza/4
           ]).
   
   
  
positive.code: 
  %% ------------ subscribe - unscubscribe -----------
  
  subscribe_by_user_stanza(User, NodeName, NodeAddress) ->
      SubscribeToNode = create_subscribe_node_stanza(NodeName, User),
      UserName = escalus_utils:get_username(User),
      Id = <<UserName/binary,<<"binsuffix">>/binary>>,
      iq_with_id(set, Id, NodeAddress, User,  [SubscribeToNode]).
  
  unsubscribe_by_user_stanza(User, NodeName, NodeAddress) ->
      UnubscribeFromNode = create_unsubscribe_from_node_stanza(NodeName, User),
      Id = <<"unsub1">>,
      escalus_pubsub_stanza:iq_with_id(set, Id, NodeAddress, User,  [UnubscribeFromNode]).
  
  create_subscribe_node_stanza(NodeName, From) ->
      SubsrNode = create_sub_unsubscribe_from_node_stanza(NodeName, From, <<"subscribe">>),
  
negative.code:     IqId = <<"publish1">>,
      escalus_pubsub_stanza:iq_with_id(set, IqId, DestinationNode, User,  [PublishToNode]).
  
  create_node_stanza(User, IqId, DestinationNodeAddr, DestinationNodeName) ->
      PubSubCreate = create_specific_node_stanza(DestinationNodeName),
      PubSub = pubsub_stanza([PubSubCreate], ?NS_PUBSUB),
      iq_with_id(set, IqId, DestinationNodeAddr, User,  [PubSub]).
  
  create_specific_node_stanza(NodeName) ->
      #xmlel{name = <<"create">>,  attrs = [{<<"node">>, NodeName}] }.
  