diff --git a/sgx-bwmsgsv2.rb b/sgx-bwmsgsv2.rb index 2f345f6d8598d49924e2a3bd29ea6ac261b3e045..8f48652bb8151e3e2d87f493187d65ba0c4639f7 100755 --- a/sgx-bwmsgsv2.rb +++ b/sgx-bwmsgsv2.rb @@ -838,7 +838,7 @@ class WebhookHandler < Goliath::API return [200, {}, "OK"] end - msg = '' + msg = nil case jparams['direction'] when 'in' text = '' @@ -891,6 +891,35 @@ class WebhookHandler < Goliath::API when 'message-received' # TODO: handle group chat, and fix above text = jparams['text'] + + if jparams['to'].length > 1 + msg = Blather::Stanza::Message.new( + 'cheogram.com', text) # TODO + + addrs = Nokogiri::XML::Node.new( + 'addresses', msg.document) + addrs['xmlns'] = 'http://jabber.org/' + + 'protocol/address' + + addr1 = Nokogiri::XML::Node.new( + 'address', msg.document) + addr1['type'] = 'to' + addr1['jid'] = bare_jid + addrs.add_child(addr1) + + # TODO: actually do N, instead of just 1 + addrn = Nokogiri::XML::Node.new( + 'address', msg.document) + addrn['type'] = 'to' + addrn['uri'] = "sms:#{jparams['to'][1]}" + addrn['delivered'] = 'true' + addrs.add_child(addrn) + + msg.add_child(addrs) + + # TODO: delete + puts "RESPONSE9: #{msg.inspect}" + end else text = "unknown type (#{type})"\ " with text: " + jparams['text'] @@ -899,7 +928,10 @@ class WebhookHandler < Goliath::API puts text end - msg = Blather::Stanza::Message.new(bare_jid, text) + if not msg + msg = Blather::Stanza::Message.new(bare_jid, + text) + end else # per prior switch, this is: jparams['direction'] == 'out' tag_parts = jparams['tag'].split(/ /, 2) id = WEBrick::HTTPUtils.unescape(tag_parts[0])