Class: AgentXmpp::MessageDelegate
- Inherits:
-
Object
- Object
- AgentXmpp::MessageDelegate
- Defined in:
- lib/agent_xmpp/client/message_delegate.rb
Overview
Class Attribute Summary collapse
-
.pubsub_service ⇒ Object
readonly
.….….….….….….….….….….….….….….….….….….….….….….….….….….
Class Method Summary collapse
-
.did_authenticate(pipe) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
-
.did_bind(pipe) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
-
.did_connect(pipe) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
-
.did_disconnect(pipe) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
-
.did_discover_pupsub_collection(pipe, jid, node) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
-
.did_discover_pupsub_leaf(pipe, jid, node) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
-
.did_discover_pupsub_service(pipe, jid) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
-
.did_discover_user_pubsub_root(pipe, pubsub, node) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
-
.did_not_authenticate(pipe) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
-
.did_not_connect(pipe) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
-
.did_receive_all_roster_items(pipe) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
-
.did_receive_command_set(pipe, stanza) ⇒ Object
——————————————————————————————————— event flow delegate methods .….….….….….….….….….….….….….….….….….….….….….….….….….….
-
.did_receive_discoinfo_error(pipe, result) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
-
.did_receive_discoinfo_get(pipe, request) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
-
.did_receive_discoinfo_result(pipe, discoinfo) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
-
.did_receive_discoitems_error(pipe, result) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
-
.did_receive_discoitems_get(pipe, request) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
-
.did_receive_discoitems_result(pipe, discoitems) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
-
.did_receive_message_chat(pipe, stanza) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
-
.did_receive_message_normal(pipe, stanza) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
-
.did_receive_postauthenticate_features(pipe) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
-
.did_receive_preauthenticate_features(pipe) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
-
.did_receive_presence(pipe, presence) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
-
.did_receive_presence_error(pipe, presence) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
-
.did_receive_presence_subscribe(pipe, presence) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
-
.did_receive_presence_subscribed(pipe, presence) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
-
.did_receive_presence_unavailable(pipe, presence) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
-
.did_receive_presence_unsubscribed(pipe, presence) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
-
.did_receive_publish_error(pipe, result, node) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
-
.did_receive_publish_result(pipe, result, node) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
-
.did_receive_pubsub_affiliations_error(pipe, result) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
-
.did_receive_pubsub_affiliations_result(pipe, result) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
-
.did_receive_pubsub_create_node_error(pipe, result, node) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
-
.did_receive_pubsub_create_node_result(pipe, result, node) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
-
.did_receive_pubsub_delete_node_error(pipe, result, node) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
-
.did_receive_pubsub_delete_node_result(pipe, result, node) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
-
.did_receive_pubsub_event(pipe, event, to, from) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
-
.did_receive_pubsub_subscribe_error(pipe, result, node) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
-
.did_receive_pubsub_subscribe_error_item_not_found(pipe, result, node) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
-
.did_receive_pubsub_subscribe_result(pipe, result, node) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
-
.did_receive_pubsub_subscriptions_error(pipe, result) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
-
.did_receive_pubsub_subscriptions_result(pipe, result) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
-
.did_receive_pubsub_unsubscribe_error(pipe, result, node) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
-
.did_receive_pubsub_unsubscribe_result(pipe, result, node) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
-
.did_receive_remove_roster_item_error(pipe, roster_item_jid) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
-
.did_receive_remove_roster_item_result(pipe, result) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
-
.did_receive_roster_item(pipe, roster_item) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
-
.did_receive_roster_result(pipe, stanza) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
-
.did_receive_roster_set(pipe, stanza) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
-
.did_receive_unsupported_message(pipe, stanza) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
-
.did_receive_update_roster_item_error(pipe, roster_item_jid) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
-
.did_receive_update_roster_item_result(pipe, result) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
-
.did_receive_version_error(pipe, result) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
-
.did_receive_version_get(pipe, request) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
-
.did_receive_version_result(pipe, version) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
-
.did_remove_roster_item(pipe, roster_item) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
-
.did_start_session(pipe) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
Class Attribute Details
.pubsub_service ⇒ Object (readonly)
.….….….….….….….….….….….….….….….….….….….….….….….….….….
11 12 13 |
# File 'lib/agent_xmpp/client/message_delegate.rb', line 11 def pubsub_service @pubsub_service end |
Class Method Details
.did_authenticate(pipe) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
112 113 114 |
# File 'lib/agent_xmpp/client/message_delegate.rb', line 112 def did_authenticate(pipe) AgentXmpp.logger.info "AUTHENTICATED" end |
.did_bind(pipe) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….…. authentication .….….….….….….….….….….….….….….….….….….….….….….….….….….
100 101 102 103 |
# File 'lib/agent_xmpp/client/message_delegate.rb', line 100 def did_bind(pipe) AgentXmpp.logger.info "DID BIND TO RESOURCE: #{AgentXmpp.jid.resource}" Xmpp::Iq.session(pipe) if pipe.stream_features.has_key?('session') end |
.did_connect(pipe) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….…. connection .….….….….….….….….….….….….….….….….….….….….….….….….….….
82 83 84 |
# File 'lib/agent_xmpp/client/message_delegate.rb', line 82 def did_connect(pipe) AgentXmpp.logger.info "CONNECTED" end |
.did_disconnect(pipe) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
87 88 89 90 |
# File 'lib/agent_xmpp/client/message_delegate.rb', line 87 def did_disconnect(pipe) AgentXmpp.logger.warn "DISCONNECTED" EventMachine::stop_event_loop end |
.did_discover_pupsub_collection(pipe, jid, node) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
461 462 463 464 |
# File 'lib/agent_xmpp/client/message_delegate.rb', line 461 def did_discover_pupsub_collection(pipe, jid, node) AgentXmpp.logger.info "DISCOVERED PUBSUB COLLECTION: #{jid}, #{node}" Xmpp::IqDiscoItems.get(pipe, jid, node) if pubsub_service.eql?(jid) end |
.did_discover_pupsub_leaf(pipe, jid, node) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
467 468 469 470 471 472 473 474 |
# File 'lib/agent_xmpp/client/message_delegate.rb', line 467 def did_discover_pupsub_leaf(pipe, jid, node) AgentXmpp.logger.info "DISCOVERED PUBSUB LEAF: #{jid}, #{node}" if node.eql?(AgentXmpp.pubsub_root) or node.eql?(AgentXmpp.user_pubsub_root) Xmpp::IqDiscoItems.get(pipe, jid, node) else Boot.call_if_implemented(:call_discovered_pubsub_node, jid, node) end end |
.did_discover_pupsub_service(pipe, jid) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
450 451 452 453 454 455 456 457 458 |
# File 'lib/agent_xmpp/client/message_delegate.rb', line 450 def did_discover_pupsub_service(pipe, jid) AgentXmpp.logger.info "DISCOVERED PUBSUB SERVICE: #{jid}" req = [Xmpp::IqPubSub.subscriptions(pipe, jid.to_s)] unless pubsub_service add_publish_methods(pipe, jid) @pubsub_service = jid req += [Xmpp::IqDiscoItems.get(pipe, jid.to_s)] + init_remote_services(pipe) end; req end |
.did_discover_user_pubsub_root(pipe, pubsub, node) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
477 478 479 |
# File 'lib/agent_xmpp/client/message_delegate.rb', line 477 def did_discover_user_pubsub_root(pipe, pubsub, node) AgentXmpp.logger.info "DISCOVERED USER PUBSUB ROOT: #{pubsub.to_s}, #{node}" end |
.did_not_authenticate(pipe) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
117 118 119 120 |
# File 'lib/agent_xmpp/client/message_delegate.rb', line 117 def did_not_authenticate(pipe) AgentXmpp.logger.info "AUTHENTICATION FAILED" raise AgentXmppError, "authentication failed" end |
.did_not_connect(pipe) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
93 94 95 |
# File 'lib/agent_xmpp/client/message_delegate.rb', line 93 def did_not_connect(pipe) AgentXmpp.logger.warn "CONNECTION FAILED" end |
.did_receive_all_roster_items(pipe) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
265 266 267 268 269 270 271 |
# File 'lib/agent_xmpp/client/message_delegate.rb', line 265 def did_receive_all_roster_items(pipe) AgentXmpp.logger.info "RECEIVED ALL ROSTER ITEMS" AgentXmpp.roster.find_all_by_status(:inactive).map do |r| AgentXmpp.logger.info "ADDING CONTACT: #{r.jid}" [Xmpp::IqRoster.update(pipe, r.jid, r.groups), Xmpp::Presence.subscribe(r.jid)] end end |
.did_receive_command_set(pipe, stanza) ⇒ Object
event flow delegate methods .….….….….….….….….….….….….….….….….….….….….….….….….….…. process command .….….….….….….….….….….….….….….….….….….….….….….….….….….
18 19 20 21 22 23 24 |
# File 'lib/agent_xmpp/client/message_delegate.rb', line 18 def did_receive_command_set(pipe, stanza) command = stanza.command params = {:xmlns => 'jabber:x:data', :action => command.action, :to => stanza.from.to_s, :from => stanza.from.to_s, :node => command.node, :id => stanza.id} AgentXmpp.logger.info "RECEIVED COMMAND NODE: #{command.node}, FROM: #{stanza.from.to_s}" Controller.new(pipe, params).invoke_execute end |
.did_receive_discoinfo_error(pipe, result) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
379 380 381 382 |
# File 'lib/agent_xmpp/client/message_delegate.rb', line 379 def did_receive_discoinfo_error(pipe, result) from_jid = result.from AgentXmpp.logger.warn "RECEIVED DISCO INFO ERROR FROM: #{from_jid.to_s}, #{result.query.node}" end |
.did_receive_discoinfo_get(pipe, request) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
326 327 328 329 330 331 332 333 334 335 336 337 338 339 |
# File 'lib/agent_xmpp/client/message_delegate.rb', line 326 def did_receive_discoinfo_get(pipe, request) from_jid = request.from if AgentXmpp.roster.has_jid?(from_jid) if request.query.node.nil? AgentXmpp.logger.info "RECEIVED DISCO INFO REQUEST FROM: #{from_jid.to_s}" Xmpp::IqDiscoInfo.result(pipe, request) else AgentXmpp.logger.info "RECEIVED DISCO INFO REQUEST FOR UNSUPPORTED NODE FROM: #{from_jid.to_s}" Xmpp::ErrorResponse.service_unavailable(request) end else AgentXmpp.logger.warn "RECEIVED DISCO INFO REQUEST FROM JID NOT IN ROSTER: #{from_jid.to_s}" end end |
.did_receive_discoinfo_result(pipe, discoinfo) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 |
# File 'lib/agent_xmpp/client/message_delegate.rb', line 342 def did_receive_discoinfo_result(pipe, discoinfo) from_jid = discoinfo.from do_discoitems = true request = [] if AgentXmpp.roster.has_jid?(from_jid) or AgentXmpp.services.has_jid?(from_jid) q = discoinfo.query AgentXmpp.logger.info "RECEIVED DISCO INFO RESULT FROM: #{from_jid.to_s}" + (q.node.nil? ? '' : ", NODE: #{q.node}") AgentXmpp.services.update_with_discoinfo(discoinfo) q.identities.each do |i| AgentXmpp.logger.info " IDENTITY: NAME:#{i.iname}, CATEGORY:#{i.category}, TYPE:#{i.type}" request << case i.category when 'server' then Xmpp::IqDiscoItems.get(pipe, from_jid.to_s, q.node) when 'pubsub' then process_pubsub_discoinfo(i.type, pipe, from_jid, q.node) when 'conference' when 'proxy' when 'directory' when 'client' when 'automation' when 'auth' when 'collaboration' when 'componenet' when 'gateway' when 'hierarchy' when 'headline' when 'store' end end q.features.each do |f| AgentXmpp.logger.info " FEATURE: #{f}" end request.smash else AgentXmpp.logger.warn "RECEIVED DISCO INFO RESULT FROM JID NOT A ROSTER ITEM OR SERVICE: #{from_jid.to_s}" end end |
.did_receive_discoitems_error(pipe, result) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
432 433 434 435 |
# File 'lib/agent_xmpp/client/message_delegate.rb', line 432 def did_receive_discoitems_error(pipe, result) from_jid = result.from AgentXmpp.logger.warn "RECEIVED DISCO ITEMS ERROR FROM: #{from_jid.to_s}, #{result.query.node}" end |
.did_receive_discoitems_get(pipe, request) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 |
# File 'lib/agent_xmpp/client/message_delegate.rb', line 385 def did_receive_discoitems_get(pipe, request) from_jid = request.from if AgentXmpp.roster.has_jid?(from_jid) if request.query.node.eql?('http://jabber.org/protocol/commands') AgentXmpp.logger.info "RECEIVED COMMAND NODE DISCO ITEMS REQUEST FROM: #{from_jid.to_s}" Xmpp::IqDiscoItems.result_command_nodes(pipe, request) elsif request.query.node.nil? AgentXmpp.logger.info "RECEIVED DISCO ITEMS REQUEST FROM: #{from_jid.to_s}" Xmpp::IqDiscoItems.result(pipe, request) else AgentXmpp.logger.info "RECEIVED DISCO INFO REQUEST FOR UNSUPPORTED NODE FROM: #{from_jid.to_s}" Xmpp::ErrorResponse.item_not_found(request) end else AgentXmpp.logger.warn "RECEIVED DISCO ITEMS REQUEST FROM JID NOT IN ROSTER: #{from_jid.to_s}" end end |
.did_receive_discoitems_result(pipe, discoitems) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 |
# File 'lib/agent_xmpp/client/message_delegate.rb', line 404 def did_receive_discoitems_result(pipe, discoitems) from_jid = discoitems.from if AgentXmpp.roster.has_jid?(from_jid) or AgentXmpp.services.has_jid?(from_jid) q = discoitems.query AgentXmpp.logger.info "RECEIVED DISCO ITEMS RESULT FROM: #{from_jid.to_s}" + (q.node.nil? ? '' : ", NODE: #{q.node}") AgentXmpp.services.update_with_discoitems(discoitems) case q.node when 'http://jabber.org/protocol/commands' Boot.call_if_implemented(:call_discovered_command_nodes, from_jid.to_s, q.items.map{|i| i.node}) unless q.items.empty? else msgs = if from_jid.to_s.eql?(pubsub_service.to_s) and q.node.eql?(AgentXmpp.pubsub_root) create_user_pubsub_root(pipe, from_jid, q.items) else ; []; end if from_jid.to_s.eql?(pubsub_service.to_s) and q.node.eql?(AgentXmpp.user_pubsub_root) msgs += update_publish_nodes(pipe, from_jid, q.items) end q.items.inject(msgs) do |r,i| AgentXmpp.logger.info " ITEM JID: #{i.jid}" + (i.node.nil? ? '' : ", NODE: #{i.node}") AgentXmpp.services.create(i.jid) r << Xmpp::IqDiscoInfo.get(pipe, i.jid, i.node) end end else AgentXmpp.logger.warn "RECEIVED DISCO INFO RESULT FROM JID NOT A ROSTER ITEM OR SERVICE: #{from_jid.to_s}" end end |
.did_receive_message_chat(pipe, stanza) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….…. process chat messages .….….….….….….….….….….….….….….….….….….….….….….….….….….
29 30 31 32 33 34 |
# File 'lib/agent_xmpp/client/message_delegate.rb', line 29 def (pipe, stanza) params = {:xmlns => 'message:chat', :to => stanza.from.to_s, :from => stanza.from.to_s, :id => stanza.id, :body => stanza.body} AgentXmpp.logger.info "RECEIVED CHAT MESSAGE FROM: #{stanza.from.to_s}" Controller.new(pipe, params).invoke_chat end |
.did_receive_message_normal(pipe, stanza) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….…. process normal messages .….….….….….….….….….….….….….….….….….….….….….….….….….….
39 40 41 42 43 44 45 46 |
# File 'lib/agent_xmpp/client/message_delegate.rb', line 39 def (pipe, stanza) AgentXmpp.logger.info "RECEIVED NORMAL MESSAGE FROM: #{stanza.from.to_s}" if event = stanza.event did_receive_pubsub_event(pipe, event, stanza.to.to_s, stanza.from.to_s) else (pipe, stanza) end end |
.did_receive_postauthenticate_features(pipe) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
123 124 125 126 |
# File 'lib/agent_xmpp/client/message_delegate.rb', line 123 def did_receive_postauthenticate_features(pipe) AgentXmpp.logger.info "SESSION STARTED" Xmpp::Iq.bind(pipe) if pipe.stream_features.has_key?('bind') end |
.did_receive_preauthenticate_features(pipe) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
106 107 108 109 |
# File 'lib/agent_xmpp/client/message_delegate.rb', line 106 def did_receive_preauthenticate_features(pipe) AgentXmpp.logger.info "SESSION INITIALIZED" Xmpp::SASL.authenticate(pipe.stream_mechanisms) end |
.did_receive_presence(pipe, presence) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….…. presence .….….….….….….….….….….….….….….….….….….….….….….….….….….
142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 |
# File 'lib/agent_xmpp/client/message_delegate.rb', line 142 def did_receive_presence(pipe, presence) if AgentXmpp.roster.has_jid?(presence.from) from_jid = presence.from AgentXmpp.roster.update_resource(presence) AgentXmpp.logger.info "RECEIVED PRESENCE FROM: #{from_jid.to_s}" response = [] unless from_jid.to_s.eql?(AgentXmpp.jid.to_s) Boot.call_if_implemented(:call_received_presence, from_jid.to_s, :available) response << Xmpp::IqVersion.request(pipe, from_jid) unless AgentXmpp.roster.has_version?(from_jid) unless AgentXmpp.services.has_jid?(from_jid) response << Xmpp::IqDiscoInfo.get(pipe, from_jid) response << Xmpp::IqDiscoItems.get(pipe, from_jid, 'http://jabber.org/protocol/commands') end end; response else AgentXmpp.logger.warn "RECEIVED PRESENCE FROM JID NOT IN ROSTER: #{from_jid}" end end |
.did_receive_presence_error(pipe, presence) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
202 203 204 205 206 207 208 |
# File 'lib/agent_xmpp/client/message_delegate.rb', line 202 def did_receive_presence_error(pipe, presence) AgentXmpp.logger.warn "RECEIVED PRESENCE ERROR FROM: #{presence.from.to_s}" if AgentXmpp.roster.has_jid?(presence.from) AgentXmpp.logger.warn "REMOVING '#{presence.from.to_s}' FROM ROSTER" Xmpp::IqRoster.remove(pipe, presence.from.to_s) end end |
.did_receive_presence_subscribe(pipe, presence) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
162 163 164 165 166 167 168 169 170 171 |
# File 'lib/agent_xmpp/client/message_delegate.rb', line 162 def did_receive_presence_subscribe(pipe, presence) from_jid = presence.from.to_s if AgentXmpp.roster.has_jid?(presence.from) AgentXmpp.logger.info "RECEIVED SUBSCRIBE REQUEST: #{from_jid}" Xmpp::Presence.accept(from_jid) else AgentXmpp.logger.warn "RECEIVED SUBSCRIBE REQUEST FROM JID NOT IN ROSTER: #{from_jid}" Xmpp::Presence.decline(from_jid) end end |
.did_receive_presence_subscribed(pipe, presence) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
174 175 176 |
# File 'lib/agent_xmpp/client/message_delegate.rb', line 174 def did_receive_presence_subscribed(pipe, presence) AgentXmpp.logger.warn "SUBSCRIPTION ACCEPTED: #{presence.from.to_s}" end |
.did_receive_presence_unavailable(pipe, presence) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
179 180 181 182 183 184 185 186 187 188 |
# File 'lib/agent_xmpp/client/message_delegate.rb', line 179 def did_receive_presence_unavailable(pipe, presence) from_jid = presence.from if AgentXmpp.roster.has_jid?(from_jid) AgentXmpp.roster.update_resource(presence) Boot.call_if_implemented(:call_received_presence, from_jid.to_s, :unavailable) AgentXmpp.logger.info "RECEIVED UNAVAILABLE PRESENCE FROM: #{from_jid.to_s }" else AgentXmpp.logger.warn "RECEIVED UNAVAILABLE PRESENCE FROM JID NOT IN ROSTER: #{from_jid}" end end |
.did_receive_presence_unsubscribed(pipe, presence) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
191 192 193 194 195 196 197 198 199 |
# File 'lib/agent_xmpp/client/message_delegate.rb', line 191 def did_receive_presence_unsubscribed(pipe, presence) from_jid = presence.from.to_s if AgentXmpp.roster.destroy_by_jid(presence.from) AgentXmpp.logger.info "RECEIVED UNSUBSCRIBED REQUEST: #{from_jid}" Xmpp::IqRoster.remove(pipe, presence.from) else AgentXmpp.logger.warn "RECEIVED UNSUBSCRIBED REQUEST FROM JID NOT IN ROSTER: #{from_jid}" end end |
.did_receive_publish_error(pipe, result, node) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
445 446 447 |
# File 'lib/agent_xmpp/client/message_delegate.rb', line 445 def did_receive_publish_error(pipe, result, node) AgentXmpp.logger.info "ERROR PUBLISING TO NODE: #{node}, #{result.from.to_s}" end |
.did_receive_publish_result(pipe, result, node) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….…. pubsub .….….….….….….….….….….….….….….….….….….….….….….….….….….
440 441 442 |
# File 'lib/agent_xmpp/client/message_delegate.rb', line 440 def did_receive_publish_result(pipe, result, node) AgentXmpp.logger.info "PUBLISH TO NODE ACKNOWLEDEGED: #{node}, #{result.from.to_s}" end |
.did_receive_pubsub_affiliations_error(pipe, result) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
517 518 519 520 |
# File 'lib/agent_xmpp/client/message_delegate.rb', line 517 def did_receive_pubsub_affiliations_error(pipe, result) from_jid = result.from AgentXmpp.logger.info "RECEIVED ERROR ON AFFILIATIONS REQUEST FROM: #{from_jid}" end |
.did_receive_pubsub_affiliations_result(pipe, result) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
511 512 513 514 |
# File 'lib/agent_xmpp/client/message_delegate.rb', line 511 def did_receive_pubsub_affiliations_result(pipe, result) from_jid = result.from AgentXmpp.logger.info "RECEIVED AFFILIATIONS FROM: #{from_jid}" end |
.did_receive_pubsub_create_node_error(pipe, result, node) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
532 533 534 535 |
# File 'lib/agent_xmpp/client/message_delegate.rb', line 532 def did_receive_pubsub_create_node_error(pipe, result, node) from_jid = result.from AgentXmpp.logger.info "RECEIVED CREATE NODE ERROR FROM: #{from_jid.to_s}, #{node}" end |
.did_receive_pubsub_create_node_result(pipe, result, node) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
523 524 525 526 527 528 529 |
# File 'lib/agent_xmpp/client/message_delegate.rb', line 523 def did_receive_pubsub_create_node_result(pipe, result, node) from_jid = result.from AgentXmpp.logger.info "RECEIVED CREATE NODE RESULT FROM: #{from_jid.to_s}, #{node}" if node.eql?(AgentXmpp.user_pubsub_root) [did_discover_user_pubsub_root(pipe, from_jid, node), Xmpp::IqDiscoInfo.get(pipe, from_jid.to_s, node)] end end |
.did_receive_pubsub_delete_node_error(pipe, result, node) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
544 545 546 547 |
# File 'lib/agent_xmpp/client/message_delegate.rb', line 544 def did_receive_pubsub_delete_node_error(pipe, result, node) from_jid = result.from AgentXmpp.logger.info "RECEIVED DELETE NODE ERROR FROM: #{from_jid.to_s}, #{node}" end |
.did_receive_pubsub_delete_node_result(pipe, result, node) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
538 539 540 541 |
# File 'lib/agent_xmpp/client/message_delegate.rb', line 538 def did_receive_pubsub_delete_node_result(pipe, result, node) from_jid = result.from AgentXmpp.logger.info "RECEIVED DELETE NODE RESULT FROM: #{from_jid.to_s}, #{node}" end |
.did_receive_pubsub_event(pipe, event, to, from) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….…. process events .….….….….….….….….….….….….….….….….….….….….….….….….….….
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'lib/agent_xmpp/client/message_delegate.rb', line 51 def did_receive_pubsub_event(pipe, event, to, from) AgentXmpp.logger.info "RECEIVED EVENT FROM: #{from.to_s}" event.items.each do |is| is.item.each do |i| if data = i.x and data.type.eql?(:result) src = is.node.split('/') src_jid = "#{src[3]}@#{src[2]}" params = {:xmlns => 'http://jabber.org/protocol/pubsub#event', :to => to, :pubsub => from, :node => is.node, :data => data.to_native, :from => src_jid, :id => i.id, :resources => AgentXmpp.roster.available_resources(Xmpp::Jid.new(src_jid))} Controller.new(pipe, params).invoke_event else (pipe, event) end end end end |
.did_receive_pubsub_subscribe_error(pipe, result, node) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
556 557 558 559 560 |
# File 'lib/agent_xmpp/client/message_delegate.rb', line 556 def did_receive_pubsub_subscribe_error(pipe, result, node) from_jid = result.from AgentXmpp.logger.warn "RECEIVED SUBSCRIBE ERROR FROM: #{from_jid.to_s}, #{node}" did_receive_pubsub_subscribe_error_item_not_found(pipe, result, node) if result.error.error.eql?('item-not-found') end |
.did_receive_pubsub_subscribe_error_item_not_found(pipe, result, node) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
563 564 565 566 567 568 569 570 |
# File 'lib/agent_xmpp/client/message_delegate.rb', line 563 def did_receive_pubsub_subscribe_error_item_not_found(pipe, result, node) from_jid = result.from AgentXmpp.logger.warn "RECEIVED SUBSCRIBE ERROR ITEM-NOT-FOUND FROM: #{from_jid.to_s}, #{node}; " + "RETRYING SUBSCRIPTION IN #{AgentXmpp::SUBSCRIBE_RETRY_PERIOD}s" EventMachine::Timer.new(AgentXmpp::SUBSCRIBE_RETRY_PERIOD) do pipe.send_resp(Xmpp::IqPubSub.subscribe(pipe, from_jid.to_s, node)) end end |
.did_receive_pubsub_subscribe_result(pipe, result, node) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
550 551 552 553 |
# File 'lib/agent_xmpp/client/message_delegate.rb', line 550 def did_receive_pubsub_subscribe_result(pipe, result, node) from_jid = result.from AgentXmpp.logger.info "RECEIVED SUBSCRIBE RESULT FROM: #{from_jid.to_s}, #{node}" end |
.did_receive_pubsub_subscriptions_error(pipe, result) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
505 506 507 508 |
# File 'lib/agent_xmpp/client/message_delegate.rb', line 505 def did_receive_pubsub_subscriptions_error(pipe, result) from_jid = result.from AgentXmpp.logger.warn "RECEIVED ERROR ON SUBSCRIPTION REQUEST FROM: #{from_jid}" end |
.did_receive_pubsub_subscriptions_result(pipe, result) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 |
# File 'lib/agent_xmpp/client/message_delegate.rb', line 482 def did_receive_pubsub_subscriptions_result(pipe, result) from_jid = result.from.to_s AgentXmpp.logger.info "RECEIVED SUBSCRIPTIONS FROM: #{from_jid}" app_subs = BaseController.subscriptions(result.from.domain) srvr_subs = result.pubsub.subscriptions.map do |s| AgentXmpp.logger.info "SUBSCRIBED TO NODE: #{from_jid}, #{s.node}" s.node end reqs = app_subs.inject([]) do |r,s| unless srvr_subs.include?(s) AgentXmpp.logger.info "SUBSCRIBING TO NODE: #{from_jid}, #{s}" r << Xmpp::IqPubSub.subscribe(pipe, from_jid, s) end; r end srvr_subs.inject(reqs) do |r,s| unless app_subs.include?(s) AgentXmpp.logger.warn "UNSUBSCRIBING TO NODE: #{from_jid}, #{s}" r << Xmpp::IqPubSub.unsubscribe(pipe, from_jid, s) end; r end end |
.did_receive_pubsub_unsubscribe_error(pipe, result, node) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
579 580 581 582 |
# File 'lib/agent_xmpp/client/message_delegate.rb', line 579 def did_receive_pubsub_unsubscribe_error(pipe, result, node) from_jid = result.from AgentXmpp.logger.info "RECEIVED UNSUBSCRIBE ERROR FROM: #{from_jid.to_s}, #{node}" end |
.did_receive_pubsub_unsubscribe_result(pipe, result, node) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
573 574 575 576 |
# File 'lib/agent_xmpp/client/message_delegate.rb', line 573 def did_receive_pubsub_unsubscribe_result(pipe, result, node) from_jid = result.from AgentXmpp.logger.info "RECEIVED UNSUBSCRIBE RESULT FROM: #{from_jid.to_s}, #{node}" end |
.did_receive_remove_roster_item_error(pipe, roster_item_jid) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
290 291 292 293 |
# File 'lib/agent_xmpp/client/message_delegate.rb', line 290 def did_receive_remove_roster_item_error(pipe, roster_item_jid) AgentXmpp.logger.info "REMOVE ROSTER ITEM RECEIVED ERROR REMOVING: #{roster_item_jid}" AgentXmpp.roster.destroy_by_jid(Xmpp::Jid.new(roster_item_jid)) end |
.did_receive_remove_roster_item_result(pipe, result) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
285 286 287 |
# File 'lib/agent_xmpp/client/message_delegate.rb', line 285 def did_receive_remove_roster_item_result(pipe, result) AgentXmpp.logger.info "REMOVE ROSTER ITEM ACKNOWLEDEGED FROM: #{result.from.to_s}" end |
.did_receive_roster_item(pipe, roster_item) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 |
# File 'lib/agent_xmpp/client/message_delegate.rb', line 223 def did_receive_roster_item(pipe, roster_item) roster_item_jid = roster_item.jid AgentXmpp.logger.info "RECEIVED ROSTER ITEM: #{roster_item_jid.to_s}" if AgentXmpp.roster.has_jid?(roster_item_jid) case roster_item.subscription when :none if roster_item.ask.eql?(:subscribe) AgentXmpp.logger.info "CONTACT SUBSCRIPTION PENDING: #{roster_item_jid.to_s}" AgentXmpp.roster.update_status(roster_item_jid, :ask) else AgentXmpp.logger.info "CONTACT ADDED TO ROSTER: #{roster_item_jid.to_s}" AgentXmpp.roster.update_status(roster_item_jid, :added) end when :to AgentXmpp.logger.info "SUBSCRIBED TO CONTACT PRESENCE: #{roster_item_jid.to_s}" AgentXmpp.roster.update_status(roster_item_jid, :to) when :from AgentXmpp.logger.info "CONTACT SUBSCRIBED TO PRESENCE: #{roster_item_jid.to_s}" AgentXmpp.roster.update_status(roster_item_jid, :from) when :both AgentXmpp.logger.info "CONTACT SUBSCRIPTION BIDIRECTIONAL: #{roster_item_jid.to_s}" AgentXmpp.roster.update_status(roster_item_jid, :both) end AgentXmpp.roster.update_roster_item(roster_item) check_roster_item_group(pipe, roster_item) else AgentXmpp.logger.info "REMOVING ROSTER ITEM: #{roster_item_jid.to_s}" Xmpp::IqRoster.remove(pipe, roster_item_jid) end end |
.did_receive_roster_result(pipe, stanza) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….…. roster management .….….….….….….….….….….….….….….….….….….….….….….….….….….
213 214 215 |
# File 'lib/agent_xmpp/client/message_delegate.rb', line 213 def did_receive_roster_result(pipe, stanza) process_roster_items(pipe, stanza) end |
.did_receive_roster_set(pipe, stanza) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
218 219 220 |
# File 'lib/agent_xmpp/client/message_delegate.rb', line 218 def did_receive_roster_set(pipe, stanza) process_roster_items(pipe, stanza) end |
.did_receive_unsupported_message(pipe, stanza) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….…. errors .….….….….….….….….….….….….….….….….….….….….….….….….….….
72 73 74 75 76 77 |
# File 'lib/agent_xmpp/client/message_delegate.rb', line 72 def (pipe, stanza) AgentXmpp.logger.info "RECEIVED UNSUPPORTED MESSAGE: #{stanza.to_s}" if stanza.class.eql?(AgentXmpp::Xmpp::Iq) Xmpp::ErrorResponse.feature_not_implemented(stanza) end end |
.did_receive_update_roster_item_error(pipe, roster_item_jid) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
279 280 281 282 |
# File 'lib/agent_xmpp/client/message_delegate.rb', line 279 def did_receive_update_roster_item_error(pipe, roster_item_jid) AgentXmpp.logger.info "UPDATE ROSTER ITEM RECEIVED ERROR REMOVING: #{roster_item_jid}" AgentXmpp.roster.destroy_by_jid(Xmpp::Jid.new(roster_item_jid)) end |
.did_receive_update_roster_item_result(pipe, result) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
274 275 276 |
# File 'lib/agent_xmpp/client/message_delegate.rb', line 274 def did_receive_update_roster_item_result(pipe, result) AgentXmpp.logger.info "UPDATE ROSTER ITEM ACKNOWLEDEGED FROM: #{result.from.to_s}" end |
.did_receive_version_error(pipe, result) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
320 321 322 323 |
# File 'lib/agent_xmpp/client/message_delegate.rb', line 320 def did_receive_version_error(pipe, result) from_jid = result.from AgentXmpp.logger.warn "RECEIVED VERSION ERROR FROM: #{from_jid.to_s}" end |
.did_receive_version_get(pipe, request) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
310 311 312 313 314 315 316 317 |
# File 'lib/agent_xmpp/client/message_delegate.rb', line 310 def did_receive_version_get(pipe, request) if AgentXmpp.roster.has_jid?(request.from) AgentXmpp.logger.info "RECEIVED VERSION REQUEST: #{request.from.to_s}" Xmpp::IqVersion.result(pipe, request) else AgentXmpp.logger.warn "RECEIVED VERSION REQUEST FROM JID NOT IN ROSTER: #{request.from.to_s}" end end |
.did_receive_version_result(pipe, version) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….…. service discovery management .….….….….….….….….….….….….….….….….….….….….….….….….….….
298 299 300 301 302 303 304 305 306 307 |
# File 'lib/agent_xmpp/client/message_delegate.rb', line 298 def did_receive_version_result(pipe, version) version_jid = version.from if AgentXmpp.roster.has_jid?(version_jid) query = version.query AgentXmpp.logger.info "RECEIVED VERSION RESULT: #{version_jid.to_s}, #{query.iname}, #{query.version}" AgentXmpp.roster.update_resource_version(version) else AgentXmpp.logger.warn "RECEIVED VERSION RESULT FROM JID NOT IN ROSTER: #{from.to_s}" end end |
.did_remove_roster_item(pipe, roster_item) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
255 256 257 258 259 260 261 262 |
# File 'lib/agent_xmpp/client/message_delegate.rb', line 255 def did_remove_roster_item(pipe, roster_item) AgentXmpp.logger.info "REMOVE ROSTER ITEM" roster_item_jid = roster_item.jid if AgentXmpp.roster.has_jid?(roster_item_jid) AgentXmpp.logger.info "REMOVED ROSTER ITEM: #{roster_item_jid.to_s}" AgentXmpp.roster.destroy_by_jid(roster_item_jid) end end |
.did_start_session(pipe) ⇒ Object
.….….….….….….….….….….….….….….….….….….….….….….….….….….
129 130 131 132 133 134 135 136 137 |
# File 'lib/agent_xmpp/client/message_delegate.rb', line 129 def did_start_session(pipe) AgentXmpp.logger.info "SESSION STARTED" config_roster_item = AgentXmpp.roster.find_by_jid(AgentXmpp.jid) add_command_method(pipe) (pipe) [Send(Xmpp::Presence.new(nil, nil, AgentXmpp.priority)), Xmpp::IqRoster.get(pipe), Xmpp::IqDiscoInfo.get(pipe, AgentXmpp.jid.domain), Xmpp::IqDiscoInfo.get(pipe, AgentXmpp.jid.)] end |