Class: Rhoconnect::Blackberry

Inherits:
Object
  • Object
show all
Defined in:
lib/rhoconnect/ping/blackberry.rb

Class Method Summary collapse

Class Method Details

.pap_message(params) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/rhoconnect/ping/blackberry.rb', line 27

def self.pap_message(params)
  data = "do_sync=" + (params['sources'] ? params['sources'].join(',') : "") + "\r\n"
  data << "alert=#{params['message']}\r\n" if params['message']
  data << "vibrate=#{params['vibrate']}\r\n" if params['vibrate']
  data << "sound=#{params['sound']}\r\n" if params['sound']
  post_body = <<-DESC
--asdlfkjiurwghasf
Content-Type: application/xml; charset=UTF-8

<?xml version="1.0"?>
<!DOCTYPE pap PUBLIC "-//WAPFORUM//DTD PAP 2.0//EN" 
  "http://www.wapforum.org/DTD/pap_2.0.dtd" 
  [<?wap-pap-ver supported-versions="2.0"?>]>
<pap>
<push-message push-id="pushID:#{(rand * 100000000).to_i.to_s}" ppg-notify-requested-to="http://localhost:7778">

<address address-value="WAPPUSH=#{params['device_pin'].to_i.to_s(base=16).upcase}%3A100/[email protected]"/>
<quality-of-service delivery-method="preferconfirmed"/>
</push-message>
</pap>
--asdlfkjiurwghasf
Content-Type: text/plain

#{data}
--asdlfkjiurwghasf--
DESC
  post_body.gsub!(/\n/,"\r\n")
end

.ping(params) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/rhoconnect/ping/blackberry.rb', line 5

def self.ping(params)
  begin
    settings = get_config(Rhoconnect.base_directory)[Rhoconnect.environment]
    host = settings[:mdsserver]
  	port = settings[:mdsserverport]
    if (host and port)
      headers = { "X-WAP-APPLICATION-ID" => "/",
                  "X-RIM-PUSH-DEST-PORT" => params['device_port'],
                  "CONTENT-TYPE" => 'multipart/related; type="application/xml"; boundary=asdlfkjiurwghasf'}
                
      Net::HTTP.new(host,port).start do |http|
        request = Net::HTTP::Post.new('/pap',headers)
        request.body = pap_message(params)
        http.request(request)
      end
    end
  rescue Exception => error
    log "Error while sending ping: #{error}"
    raise error
  end
end