lib/punchblock/connection.rb in punchblock-0.4.2 vs lib/punchblock/connection.rb in punchblock-0.4.3

- old
+ new

@@ -21,16 +21,17 @@ # @option options [Numeric, Optional] :write_timeout for which to wait on a command response # @option options [Numeric, nil, Optional] :ping_period interval in seconds on which to ping the server. Nil or false to disable # def initialize(options = {}) super - raise ArgumentError unless @username = options.delete(:username) - raise ArgumentError unless options.has_key? :password - @rayo_domain = options[:rayo_domain] || Blather::JID.new(@username).domain - setup @username, options.delete(:password) + raise ArgumentError unless (@username = options[:username]) && options[:password] + setup *[:username, :password, :host, :port, :certs].map { |key| options.delete key } + + @rayo_domain = options[:rayo_domain] || Blather::JID.new(@username).domain + @callmap = {} # This hash maps call IDs to their XMPP domain. @component_id_to_iq_id = {} @iq_id_to_command = {} @@ -122,10 +123,10 @@ end private def handle_presence(p) - throw :pass unless p.rayo_event? + throw :pass unless p.rayo_event? && p.from.domain == @rayo_domain @logger.info "Receiving event for call ID #{p.call_id}" if @logger @callmap[p.call_id] = p.from.domain @logger.debug p.inspect if @logger event = p.event event.connection = self