153: def Session.register(jid, password, email="", name="", port=5222)
154: jid = Jabber::JID.new(jid) if jid.kind_of? String
155: session = Session.new(jid.host, port)
156: msg_id = session.id
157: registered = false
158: current = Thread.current
159: session.connection.send(Jabber::Protocol::Iq.gen_registration(session, msg_id, jid.node, password, email, name)) do |element|
160: if element.element_tag=="iq" and element.attr_id==msg_id
161: element.consume_element
162: if element.attr_type=="result"
163: registered = true
164: elsif element.attr_type=="error"
165: registered = false
166: end
167: current.wakeup
168: end
169: end
170: Thread.stop
171: session.release
172: return registered
173: end