mms2r 3.5.1 → 3.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Gemfile +2 -1
- data/Gemfile.lock +8 -8
- data/History.txt +7 -0
- data/Manifest.txt +2 -0
- data/Rakefile +1 -0
- data/lib/mms2r.rb +9 -3
- data/lib/mms2r/media.rb +20 -13
- data/test/fixtures/invalid-byte-seq-outlook.mail +342 -0
- data/test/test_invalid_byte_seq_outlook.rb +27 -0
- data/test/test_mms2r_media.rb +12 -12
- metadata +80 -69
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
|
@@ -2,25 +2,25 @@ GEM
|
|
|
2
2
|
remote: http://rubygems.org/
|
|
3
3
|
specs:
|
|
4
4
|
exifr (1.1.1)
|
|
5
|
-
gemcutter (0.7.
|
|
6
|
-
hoe (2.12.
|
|
5
|
+
gemcutter (0.7.1)
|
|
6
|
+
hoe (2.12.5)
|
|
7
7
|
rake (~> 0.8)
|
|
8
8
|
i18n (0.6.0)
|
|
9
|
-
json (1.6.
|
|
10
|
-
json_pure (1.6.
|
|
11
|
-
mail (2.
|
|
9
|
+
json (1.6.5)
|
|
10
|
+
json_pure (1.6.5)
|
|
11
|
+
mail (2.4.0)
|
|
12
12
|
i18n (>= 0.4.0)
|
|
13
13
|
mime-types (~> 1.16)
|
|
14
14
|
treetop (~> 1.4.8)
|
|
15
15
|
metaclass (0.0.1)
|
|
16
16
|
mime-types (1.17.2)
|
|
17
|
-
mocha (0.10.
|
|
17
|
+
mocha (0.10.2)
|
|
18
18
|
metaclass (~> 0.0.1)
|
|
19
19
|
nokogiri (1.5.0)
|
|
20
|
-
polyglot (0.3.
|
|
20
|
+
polyglot (0.3.3)
|
|
21
21
|
rake (0.9.2.2)
|
|
22
22
|
rcov (0.9.11)
|
|
23
|
-
rdoc (3.
|
|
23
|
+
rdoc (3.12)
|
|
24
24
|
json (~> 1.4)
|
|
25
25
|
rubyforge (2.0.4)
|
|
26
26
|
json_pure (>= 1.1.7)
|
data/History.txt
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
### 3.6.0 / 2012-01-19 (Agent 216 - assassin, master of infiltration and sabotage)
|
|
2
|
+
|
|
3
|
+
* 1 major enhancement
|
|
4
|
+
* Ruby 1.8.7, 1.9.2, and 1.9.3 compatible
|
|
5
|
+
* 1 bug fix
|
|
6
|
+
* A fix for the utf-8 encoding issue with ruby 1.9.2 - minimul / Christian
|
|
7
|
+
|
|
1
8
|
### 3.5.1 / 2011-12-11 (Mashed Potato Johnson - oldest living blues guitarist in the world)
|
|
2
9
|
|
|
3
10
|
* 1 bug fix
|
data/Manifest.txt
CHANGED
|
@@ -82,6 +82,7 @@ test/fixtures/iconv-fr-text-01.mail
|
|
|
82
82
|
test/fixtures/indosat-image-01.mail
|
|
83
83
|
test/fixtures/indosat-image-02.mail
|
|
84
84
|
test/fixtures/info2go-image-01.mail
|
|
85
|
+
test/fixtures/invalid-byte-seq-outlook.mail
|
|
85
86
|
test/fixtures/iphone-image-01.mail
|
|
86
87
|
test/fixtures/iphone-image-02.mail
|
|
87
88
|
test/fixtures/luxgsm-image-01.mail
|
|
@@ -148,6 +149,7 @@ test/test_1nbox_net.rb
|
|
|
148
149
|
test/test_bell_canada.rb
|
|
149
150
|
test/test_bellsouth_net.rb
|
|
150
151
|
test/test_helper.rb
|
|
152
|
+
test/test_invalid_byte_seq_outlook.rb
|
|
151
153
|
test/test_mediamessaging_o2_co_uk.rb
|
|
152
154
|
test/test_messaging_nextel_com.rb
|
|
153
155
|
test/test_messaging_sprintpcs_com.rb
|
data/Rakefile
CHANGED
data/lib/mms2r.rb
CHANGED
|
@@ -39,7 +39,7 @@ module MMS2R
|
|
|
39
39
|
##
|
|
40
40
|
# MMS2R library version
|
|
41
41
|
|
|
42
|
-
VERSION = '3.
|
|
42
|
+
VERSION = '3.6.0'
|
|
43
43
|
|
|
44
44
|
##
|
|
45
45
|
# Spoof User-Agent, primarily for the Sprint CDN
|
|
@@ -65,8 +65,14 @@ end
|
|
|
65
65
|
end
|
|
66
66
|
end
|
|
67
67
|
|
|
68
|
-
|
|
69
|
-
|
|
68
|
+
if RUBY_VERSION >= "1.9"
|
|
69
|
+
begin
|
|
70
|
+
require 'psych'
|
|
71
|
+
YAML::ENGINE.yamler= 'syck' if defined?(YAML::ENGINE)
|
|
72
|
+
rescue LoadError
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
|
|
70
76
|
|
|
71
77
|
require File.join(File.dirname(__FILE__), 'ext/mail')
|
|
72
78
|
require File.join(File.dirname(__FILE__), 'ext/object')
|
data/lib/mms2r/media.rb
CHANGED
|
@@ -266,6 +266,16 @@ module MMS2R
|
|
|
266
266
|
def body
|
|
267
267
|
text_file = default_text
|
|
268
268
|
@body = text_file ? IO.readlines(text_file.path).join.strip : ""
|
|
269
|
+
@body.force_encoding("ISO-8859-1") if RUBY_VERSION >= "1.9" && @body.encoding == "ASCII-8BIT"
|
|
270
|
+
|
|
271
|
+
begin
|
|
272
|
+
ic = Iconv.new('UTF-8', 'ISO-8859-1' )
|
|
273
|
+
@body = ic.iconv(@body)
|
|
274
|
+
@body << ic.iconv(nil)
|
|
275
|
+
ic.close
|
|
276
|
+
rescue Exception => e
|
|
277
|
+
end
|
|
278
|
+
|
|
269
279
|
if @body.blank? && html_file = default_html
|
|
270
280
|
html = Nokogiri::HTML(IO.read(html_file.path))
|
|
271
281
|
@body = (html.xpath("//head/title").map(&:text) + html.xpath("//body/*").map(&:text)).join(" ")
|
|
@@ -434,16 +444,13 @@ module MMS2R
|
|
|
434
444
|
def transform_text(type, text, original_encoding = 'ISO-8859-1')
|
|
435
445
|
return type, text if !config['transform'] || !(transforms = config['transform'][type])
|
|
436
446
|
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
end
|
|
445
|
-
else
|
|
446
|
-
utf_t = text.encoding == "ASCII-8BIT" ? text.force_encoding("ISO-8859-1").encode("UTF-8") : text
|
|
447
|
+
begin
|
|
448
|
+
ic = Iconv.new('UTF-8', original_encoding )
|
|
449
|
+
utf_t = ic.iconv(text)
|
|
450
|
+
utf_t << ic.iconv(nil)
|
|
451
|
+
ic.close
|
|
452
|
+
rescue Exception => e
|
|
453
|
+
utf_t = text
|
|
447
454
|
end
|
|
448
455
|
|
|
449
456
|
transforms.each do |transform|
|
|
@@ -586,12 +593,12 @@ module MMS2R
|
|
|
586
593
|
|
|
587
594
|
headers = config['device_types']['headers'] rescue {}
|
|
588
595
|
headers.keys.each do |header|
|
|
589
|
-
if mail.header[header
|
|
596
|
+
if mail.header[header]
|
|
590
597
|
# headers[header] refers to a hash of smart phone types with regex values
|
|
591
598
|
# that if they match, the header signals the type should be returned
|
|
592
599
|
headers[header].each do |type, regex|
|
|
593
|
-
return type if mail.header[header
|
|
594
|
-
field = mail.header.fields.detect { |field| field.name
|
|
600
|
+
return type if mail.header[header].decoded =~ regex
|
|
601
|
+
field = mail.header.fields.detect { |field| field.name == header }
|
|
595
602
|
return type if field && field.to_s =~ regex
|
|
596
603
|
end
|
|
597
604
|
end
|
|
@@ -0,0 +1,342 @@
|
|
|
1
|
+
Delivered-To: testemail@mail.com
|
|
2
|
+
Received: by 10.52.184.102 with SMTP id et6cs208438vdc;
|
|
3
|
+
Mon, 16 Jan 2012 14:19:35 -0800 (PST)
|
|
4
|
+
Received: by 10.180.20.69 with SMTP id l5mr17988972wie.19.1326752373488;
|
|
5
|
+
Mon, 16 Jan 2012 14:19:33 -0800 (PST)
|
|
6
|
+
Return-Path: <nelson+caf_=nelson=testemail@mail.com>
|
|
7
|
+
Received: from mail-wi0-f172.toogle.com (mail-wi0-f172.toogle.com [209.85.212.172])
|
|
8
|
+
by mx.toogle.com with ESMTPS id c7si13165326wia.5.2012.01.16.14.19.32
|
|
9
|
+
(version=TLSv1/SSLv3 cipher=OTHER);
|
|
10
|
+
Mon, 16 Jan 2012 14:19:33 -0800 (PST)
|
|
11
|
+
Received-SPF: neutral (toogle.com: 209.85.212.172 is neither permitted nor denied by best guess record for domain of nelson+caf_=nelson=testemail@mail.com) client-ip=209.85.212.172;
|
|
12
|
+
Authentication-Results: mx.toogle.com; spf=neutral (toogle.com: 209.85.212.172 is neither permitted nor denied by best guess record for domain of nelson+caf_=nelson=testemail@mail.com) smtp.mail=nelson+caf_=nelson=testemail@mail.com
|
|
13
|
+
Received: by wics10 with SMTP id s10so1698315wic.31
|
|
14
|
+
for <testemail@mail.com>; Mon, 16 Jan 2012 14:19:32 -0800 (PST)
|
|
15
|
+
Received: by 10.180.73.72 with SMTP id j8mr12775876wiv.2.1326752372616;
|
|
16
|
+
Mon, 16 Jan 2012 14:19:32 -0800 (PST)
|
|
17
|
+
X-Forwarded-To: testemail@mail.com
|
|
18
|
+
X-Forwarded-For: testemail@mail.com testemail@mail.com
|
|
19
|
+
Delivered-To: testemail@mail.com
|
|
20
|
+
Received: by 10.216.22.196 with SMTP id t46cs153584wet;
|
|
21
|
+
Mon, 16 Jan 2012 14:19:31 -0800 (PST)
|
|
22
|
+
Received: by 10.236.168.37 with SMTP id j25mr19473152yhl.92.1326752370735;
|
|
23
|
+
Mon, 16 Jan 2012 14:19:30 -0800 (PST)
|
|
24
|
+
Return-Path: <testemail@mail.com>
|
|
25
|
+
Received: from barracuda.ngSmith.com (barracuda.ngSmith.com. [192.168.97.98])
|
|
26
|
+
by mx.toogle.com with ESMTP id i66si8419543yhn.66.2012.01.16.14.19.28;
|
|
27
|
+
Mon, 16 Jan 2012 14:19:30 -0800 (PST)
|
|
28
|
+
Received-SPF: pass (toogle.com: best guess record for domain of testemail@mail.com designates 192.168.97.98 as permitted sender) client-ip=192.168.97.98;
|
|
29
|
+
X-ASG-Debug-ID: 1326752367-0199b2096162000001-x7cFak
|
|
30
|
+
Received: from Mail.NGSmith.com (legacy.ngSmith.com [192.168.0.61]) by barracuda.ngSmith.com with ESMTP id f6DuStHCxnYrGzVR for <testemail@mail.com>; Mon, 16 Jan 2012 16:19:27 -0600 (CST)
|
|
31
|
+
X-Barracuda-Envelope-From: testemail@mail.com
|
|
32
|
+
Received: from MSPEXCH1.ngSmith.com ([fe80::ecf7:ebc1:c6af:b594]) by
|
|
33
|
+
MSPEXCH2.ngSmith.com ([fe80::4106:cc1:bb08:dd9f%15]) with mapi id
|
|
34
|
+
14.01.0339.001; Mon, 16 Jan 2012 16:19:27 -0600
|
|
35
|
+
From: Aaron Doe <testemail@mail.com>
|
|
36
|
+
X-Barracuda-Apparent-Source-IP: fe80::ecf7:ebc1:c6af:b594
|
|
37
|
+
To: ProformaExpress <testemail@mail.com>
|
|
38
|
+
Subject: RE: Issue 14794:Don M. says.. Aaron - I completed RNS Test Question
|
|
39
|
+
3, which was done as a 'Cargo Control Number' query. H
|
|
40
|
+
Thread-Topic: Issue 14794:Don M. says.. Aaron - I completed RNS Test
|
|
41
|
+
Question 3, which was done as a 'Cargo Control Number' query. H
|
|
42
|
+
X-ASG-Orig-Subj: RE: Issue 14794:Don M. says.. Aaron - I completed RNS Test Question
|
|
43
|
+
3, which was done as a 'Cargo Control Number' query. H
|
|
44
|
+
Thread-Index: AQHM1JquY55Wte0hREivWFQKTv0KkpYPkFyF
|
|
45
|
+
Date: Mon, 16 Jan 2012 22:19:26 +0000
|
|
46
|
+
Message-ID: <testemail@mail.com>
|
|
47
|
+
References: <testemail@mail.com-64-64-167.mail>
|
|
48
|
+
In-Reply-To: <testemail@mail.com-64-64-167.mail>
|
|
49
|
+
Accept-Language: en-US
|
|
50
|
+
Content-Language: en-US
|
|
51
|
+
X-MS-Has-Attach:
|
|
52
|
+
X-MS-TNEF-Correlator:
|
|
53
|
+
x-originating-ip: [192.168.106.241]
|
|
54
|
+
Content-Type: text/plain; charset="Windows-1252"
|
|
55
|
+
Content-Transfer-Encoding: quoted-printable
|
|
56
|
+
MIME-Version: 1.0
|
|
57
|
+
X-Barracuda-Connect: legacy.ngSmith.com[192.168.0.61]
|
|
58
|
+
X-Barracuda-Start-Time: 1326752367
|
|
59
|
+
X-Barracuda-URL: http://192.168.0.95:8000/cgi-mod/mark.cgi
|
|
60
|
+
X-Virus-Scanned: by bsmtpd at ngSmith.com
|
|
61
|
+
X-Barracuda-Spam-Score: 0.00
|
|
62
|
+
X-Barracuda-Spam-Status: No, SCORE=0.00 using global scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=9.0 tests=
|
|
63
|
+
X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.86107
|
|
64
|
+
Rule breakdown below
|
|
65
|
+
pts rule name description
|
|
66
|
+
---- ---------------------- --------------------------------------------------
|
|
67
|
+
|
|
68
|
+
Don,
|
|
69
|
+
|
|
70
|
+
Please have express change "CC" to "ABT"
|
|
71
|
+
Aaron
|
|
72
|
+
|
|
73
|
+
________________________________
|
|
74
|
+
From: ProformaExpress [testemail@mail.com]
|
|
75
|
+
Sent: Monday, January 16, 2012 4:10 PM
|
|
76
|
+
To: Christian Doe; Pat Doe; Don Doe; Jim Doe; Michael H=
|
|
77
|
+
anson; Tim Doe; Aaron Doe
|
|
78
|
+
Subject: Issue 14794:Don M. says.. Aaron - I completed RNS Test Question 3,=
|
|
79
|
+
which was done as a 'Cargo Control Number' query. H
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
Direct link to Issue 14794<http://trakr.net/list/ProformaExpress/rev=
|
|
83
|
+
ise/14794> I am working on this<http://trakr.net/list/ProformaExpr=
|
|
84
|
+
ess/work/19406>
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
#10 Don Doe said less than a minute ago [Mon, Jan 16, 2012 02:10 PM =
|
|
88
|
+
PST] status:active
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
Aaron - I completed RNS Test Question 3, which was done as a 'Cargo Control=
|
|
93
|
+
Number' query.
|
|
94
|
+
|
|
95
|
+
Having a problem, per attached, where the EDIFACT file is showing the Notif=
|
|
96
|
+
ication_Qualifier (Reference Qualifier) as - TN - which should only be used=
|
|
97
|
+
for Transaction Number queries.
|
|
98
|
+
|
|
99
|
+
In this case the EDIFACT file should be showing 'ABT' for a Cargo Control N=
|
|
100
|
+
umber Query - not TN.
|
|
101
|
+
|
|
102
|
+
The Express XML is showing 'CC' for the 'Notification_Qualifier' on Cargo C=
|
|
103
|
+
ontrol Number queries.
|
|
104
|
+
|
|
105
|
+
When you get the CC, it has to be shown as ABT in the EDIFACT.
|
|
106
|
+
|
|
107
|
+
The last test question (2) required query by Transaction Number - so TN was=
|
|
108
|
+
correct.
|
|
109
|
+
|
|
110
|
+
When you get 'CC' - please change to 'ABT' in the EDIFACT.
|
|
111
|
+
|
|
112
|
+
Let me know if you need additional information.
|
|
113
|
+
|
|
114
|
+
Thanks
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
Wrong_Reference_Qualifier.xlsx<http://trakr.net/uploads/1/14794/Wron=
|
|
120
|
+
g_Reference_Qualifier.xlsx> view<http://trakr.net/uploads/1/14794/Wr=
|
|
121
|
+
ong_Reference_Qualifier.xlsx?viewer=3D1>
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
Email(s) sent to: Christian Doe,Pat Doe,Don Doe,Jim,=
|
|
126
|
+
Michael Doe,Tim Doe,Aaron Doe
|
|
127
|
+
Direct link to Issue 14794<http://trakr.net/list/ProformaExp=
|
|
128
|
+
ress/revise/14794>
|
|
129
|
+
|
|
130
|
+
All attachments for this issue:
|
|
131
|
+
|
|
132
|
+
Wrong_Reference_Qualifier.xlsx<http://trakr.net/uploads/1/14794/Wron=
|
|
133
|
+
g_Reference_Qualifier.xlsx> view<http://trakr.net/uploads/1/14794/Wr=
|
|
134
|
+
ong_Reference_Qualifier.xlsx?viewer=3D1>
|
|
135
|
+
RNS_Query_by_Transaction_Number.xlsx<http://trakr.net/uploads/1/1479=
|
|
136
|
+
4/RNS_Query_by_Transaction_Number.xlsx> view<http://trakr.net/upload=
|
|
137
|
+
s/1/14794/RNS_Query_by_Transaction_Number.xlsx?viewer=3D1>
|
|
138
|
+
RNS_Qeury_specifics.xlsx<http://trakr.net/uploads/1/14794/RNS_Qeury_=
|
|
139
|
+
specifics.xlsx> view<http://trakr.net/uploads/1/14794/RNS_Qeury_spec=
|
|
140
|
+
ifics.xlsx?viewer=3D1>
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
Issue History..
|
|
144
|
+
#9 Don Doe said about 7 hours ago [Mon, Jan 16, 2012 07:10 AM PST] =
|
|
145
|
+
|
|
146
|
+
status:active
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
Per Judi's email below - RNS Question 2 is correct.
|
|
151
|
+
Have sent # 3 now.
|
|
152
|
+
|
|
153
|
+
Question 2 was sent on Thursday so she is taking a couple days,
|
|
154
|
+
or more, to get back with the question status.
|
|
155
|
+
_________________________________________
|
|
156
|
+
From: Johnson, Judi
|
|
157
|
+
Sent: Monday, January 16, 2012 9:27 AM
|
|
158
|
+
To: Don Doe
|
|
159
|
+
Subject: RE: RNS Client Test Package =96 Question 2
|
|
160
|
+
|
|
161
|
+
Hi Don
|
|
162
|
+
That is correct
|
|
163
|
+
Go to test 3
|
|
164
|
+
Bye Judi
|
|
165
|
+
_________________________________________
|
|
166
|
+
From: Don Doe [mailto:testemail@mail.com<mailto:testemail@mail.com>]
|
|
167
|
+
Sent: January 12, 2012 5:03 PM
|
|
168
|
+
To: Johnson, Judi
|
|
169
|
+
Subject: RE: RNS Client Test Package - 1
|
|
170
|
+
Importance: High
|
|
171
|
+
|
|
172
|
+
Hi Judi,
|
|
173
|
+
|
|
174
|
+
I have sent the RNS Transaction for Test Question 2 again.
|
|
175
|
+
The programmer has fixed the RNS Transaction showing TN for Transaction Num=
|
|
176
|
+
ber.
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
#8 Don Doe said 4 days ago [Thu, Jan 12, 2012 07:58 AM PST] =
|
|
182
|
+
status:active
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
|
|
186
|
+
OK - sending it again.
|
|
187
|
+
Thanks
|
|
188
|
+
|
|
189
|
+
|
|
190
|
+
|
|
191
|
+
|
|
192
|
+
#7 Aaron Doe said 4 days ago [Thu, Jan 12, 2012 07:48 AM PST] =
|
|
193
|
+
status:active
|
|
194
|
+
|
|
195
|
+
|
|
196
|
+
|
|
197
|
+
Refreshed the map. I tested and it is working now.
|
|
198
|
+
|
|
199
|
+
Aaron
|
|
200
|
+
|
|
201
|
+
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
#6 Don Doe said 4 days ago [Thu, Jan 12, 2012 06:26 AM PST] =
|
|
205
|
+
status:active
|
|
206
|
+
|
|
207
|
+
|
|
208
|
+
|
|
209
|
+
I just re-sent the RNS Query Test 2 again - but got the same results.
|
|
210
|
+
|
|
211
|
+
Express sent - <notification_qualifier>TN</notification_qualifier>
|
|
212
|
+
|
|
213
|
+
But - ABT was sent to CBSA again:
|
|
214
|
+
UNB+UNOA:2+6128547363+RCCECECPT:12+120112:0810+22++CUSREP'UNG+CUSREP+612854=
|
|
215
|
+
7363+PARSPDN+120112:0810+22+UN+D:96A'UNH+0022+CUSREP:D:96A:UN'BGM+998'DTM+1=
|
|
216
|
+
32:20120112:203'RFF+ABT:14142123913549'UNT+5+0022'UNE+1+22'UNZ+1+22'
|
|
217
|
+
|
|
218
|
+
|
|
219
|
+
|
|
220
|
+
|
|
221
|
+
#5 Aaron Doe said 4 days ago [Thu, Jan 12, 2012 02:25 AM PST] =
|
|
222
|
+
status:active
|
|
223
|
+
|
|
224
|
+
|
|
225
|
+
|
|
226
|
+
The qualifier is mapped. Please retest.
|
|
227
|
+
|
|
228
|
+
|
|
229
|
+
|
|
230
|
+
|
|
231
|
+
#4 Don Doe said 5 days ago [Wed, Jan 11, 2012 11:02 AM PST] =
|
|
232
|
+
status:active
|
|
233
|
+
|
|
234
|
+
|
|
235
|
+
|
|
236
|
+
Aaron - TN or ABT are both being included in the XML when oppopriate.
|
|
237
|
+
Can you not go by this?
|
|
238
|
+
|
|
239
|
+
Getting for the Transaction Number query -
|
|
240
|
+
<Notification_qualifier>TN</Notification_qualifier>
|
|
241
|
+
or
|
|
242
|
+
<Notification_qualifier>ABT</Notification_qualifier>
|
|
243
|
+
|
|
244
|
+
Do you have to have an indicator also?
|
|
245
|
+
|
|
246
|
+
Should I recreate the RNS transaction to send or are you sending the one yo=
|
|
247
|
+
u fixed?
|
|
248
|
+
Thanks
|
|
249
|
+
|
|
250
|
+
|
|
251
|
+
|
|
252
|
+
|
|
253
|
+
|
|
254
|
+
#3 Aaron Doe said 5 days ago [Wed, Jan 11, 2012 10:25 AM PST] =
|
|
255
|
+
status:active
|
|
256
|
+
|
|
257
|
+
|
|
258
|
+
|
|
259
|
+
I changed =93ABT=94 to =93TN=94. If you need to switch between the CCN and =
|
|
260
|
+
the TN I will need an indicator in the xml. Don recheck step 1.
|
|
261
|
+
|
|
262
|
+
|
|
263
|
+
|
|
264
|
+
|
|
265
|
+
#2 Don Doe said 5 days ago [Wed, Jan 11, 2012 07:51 AM PST] =
|
|
266
|
+
status:active
|
|
267
|
+
|
|
268
|
+
|
|
269
|
+
|
|
270
|
+
When completing the RNS Query Test 2 - sending by Transaction Number - have=
|
|
271
|
+
to send "TN" for the Reference Qualifier, per attached.
|
|
272
|
+
|
|
273
|
+
But the EDIFACT sent shows ABT (for Cargo Control Number) in error. .
|
|
274
|
+
|
|
275
|
+
The XML file sent from Express - also attached - does show TN - but the EDI=
|
|
276
|
+
FACT file is showing: ABT
|
|
277
|
+
|
|
278
|
+
Please correct - as soon as possible.
|
|
279
|
+
|
|
280
|
+
Thanks
|
|
281
|
+
|
|
282
|
+
|
|
283
|
+
|
|
284
|
+
|
|
285
|
+
RNS_Query_by_Transaction_Number.xlsx<http://trakr.net/uploads/1/1479=
|
|
286
|
+
4/RNS_Query_by_Transaction_Number.xlsx> view<http://trakr.net/upload=
|
|
287
|
+
s/1/14794/RNS_Query_by_Transaction_Number.xlsx?viewer=3D1>
|
|
288
|
+
|
|
289
|
+
|
|
290
|
+
|
|
291
|
+
|
|
292
|
+
#1 Don Doe said 6 days ago [Tue, Jan 10, 2012 07:58 PM PST] =
|
|
293
|
+
status:active
|
|
294
|
+
|
|
295
|
+
|
|
296
|
+
|
|
297
|
+
I completed the RNS Test Question 2 today. Still waiting to hear the result=
|
|
298
|
+
s from Judi at CBSA.
|
|
299
|
+
|
|
300
|
+
Question 2 requires that you do the query using the Transaction Id.
|
|
301
|
+
In this case, Judi told me to use - 14142123913549 for the Transaction Id -=
|
|
302
|
+
which I did.
|
|
303
|
+
|
|
304
|
+
But, per attached, the Query Responses grid doesn't tell you that this quer=
|
|
305
|
+
y was completed by "Transaction Id" and doesn't show the "Transaction Id" u=
|
|
306
|
+
sed with the query.
|
|
307
|
+
|
|
308
|
+
Need to have a column that shows whether the RNS Query was done by Cargo Co=
|
|
309
|
+
ntrol Number (CCN), Conveyance Reference, or Transaction Id.
|
|
310
|
+
|
|
311
|
+
Also need to be able to see the Transaction #, CCN, or Conveyance Reference=
|
|
312
|
+
used within the Query Responses.
|
|
313
|
+
|
|
314
|
+
This would let the user know what type of query was sent and make it easier=
|
|
315
|
+
to know which RNS Query is which.
|
|
316
|
+
|
|
317
|
+
Let me know if any questions.
|
|
318
|
+
|
|
319
|
+
Thanks.
|
|
320
|
+
|
|
321
|
+
|
|
322
|
+
|
|
323
|
+
|
|
324
|
+
RNS_Qeury_specifics.xlsx<http://trakr.net/uploads/1/14794/RNS_Qeury_=
|
|
325
|
+
specifics.xlsx> view<http://trakr.net/uploads/1/14794/RNS_Qeury_spec=
|
|
326
|
+
ifics.xlsx?viewer=3D1>
|
|
327
|
+
|
|
328
|
+
|
|
329
|
+
C-TPAT SVI Partner ID: norBro01937 / norCon01149=0D
|
|
330
|
+
|
|
331
|
+
This message and any attachments are intended solely for the addressee(s) a=
|
|
332
|
+
nd are confidential. If you receive this message in error, please delete i=
|
|
333
|
+
t and immediately notify the sender. Norman G. Smith, Inc. accepts no lia=
|
|
334
|
+
bility for any claims in connection with the content or the transmission of=
|
|
335
|
+
this message. To better protect yourself, we suggest you obtain written a=
|
|
336
|
+
dvice from the applicable Government agency. =0D
|
|
337
|
+
All business is transacted subject to our Terms and Conditions of Service. =
|
|
338
|
+
Visit http://www.ngSmith.com/tools/forms/eng/terms_conditions.pdf for a f=
|
|
339
|
+
ull copy.=0D=0D
|
|
340
|
+
|
|
341
|
+
|
|
342
|
+
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
require "test_helper"
|
|
2
|
+
|
|
3
|
+
class TestInvalidByteSeqOutlook < Test::Unit::TestCase
|
|
4
|
+
include MMS2R::TestHelper
|
|
5
|
+
|
|
6
|
+
def test_bad_outlook
|
|
7
|
+
mail = mail('invalid-byte-seq-outlook.mail')
|
|
8
|
+
mms = MMS2R::Media.new(mail)
|
|
9
|
+
body = mms.body
|
|
10
|
+
=begin
|
|
11
|
+
|
|
12
|
+
assert_equal "+919812345678", mms.number
|
|
13
|
+
assert_equal "1nbox.net", mms.carrier
|
|
14
|
+
assert_equal 2, mms.media.size
|
|
15
|
+
|
|
16
|
+
assert_not_nil mms.media['text/plain']
|
|
17
|
+
assert_equal 1, mms.media['text/plain'].size
|
|
18
|
+
assert_equal "testing123456789012", open(mms.media['text/plain'].first).read
|
|
19
|
+
|
|
20
|
+
assert_not_nil mms.media['image/jpeg']
|
|
21
|
+
assert_equal 1, mms.media['text/plain'].size
|
|
22
|
+
assert_match(/@003\.jpg$/, mms.media['image/jpeg'].first)
|
|
23
|
+
=end
|
|
24
|
+
|
|
25
|
+
mms.purge
|
|
26
|
+
end
|
|
27
|
+
end
|
data/test/test_mms2r_media.rb
CHANGED
|
@@ -11,13 +11,15 @@ class TestMms2rMedia < Test::Unit::TestCase
|
|
|
11
11
|
end
|
|
12
12
|
|
|
13
13
|
def setup
|
|
14
|
-
@
|
|
14
|
+
@oldtmpdir = MMS2R::Media.tmp_dir || File.join(Dir.tmpdir, "#{Time.now.to_i}-#{rand(1000)}")
|
|
15
|
+
@oldconfdir = MMS2R::Media.conf_dir || File.join(Dir.tmpdir, "#{Time.now.to_i}-#{rand(1000)}")
|
|
16
|
+
FileUtils.mkdir_p(@oldtmpdir)
|
|
17
|
+
FileUtils.mkdir_p(@oldconfdir)
|
|
18
|
+
|
|
19
|
+
@tmpdir = File.join(Dir.tmpdir, "#{Time.now.to_i}-#{rand(1000)}")
|
|
15
20
|
FileUtils.mkdir_p(@tmpdir)
|
|
16
|
-
@confdir = File.join(Dir.tmpdir, "#{Time.now.to_i}
|
|
21
|
+
@confdir = File.join(Dir.tmpdir, "#{Time.now.to_i}-#{rand(1000)}")
|
|
17
22
|
FileUtils.mkdir_p(@confdir)
|
|
18
|
-
|
|
19
|
-
@oldtmpdir = MMS2R::Media.tmp_dir
|
|
20
|
-
@oldconfdir = MMS2R::Media.conf_dir
|
|
21
23
|
end
|
|
22
24
|
|
|
23
25
|
def teardown
|
|
@@ -231,19 +233,17 @@ class TestMms2rMedia < Test::Unit::TestCase
|
|
|
231
233
|
text_lines = IO.readlines("#{file}")
|
|
232
234
|
text = text_lines.join
|
|
233
235
|
|
|
234
|
-
# ASCII-8BIT -> D'ici un mois G\
|
|
235
|
-
# UTF-8 ->
|
|
236
|
+
# ASCII-8BIT -> D'ici un mois G\xE9orgie
|
|
237
|
+
# UTF-8 -> D'ici un mois Géorgie
|
|
236
238
|
|
|
237
239
|
if RUBY_VERSION < "1.9"
|
|
238
|
-
assert_equal("D'ici un mois Géorgie body", text_lines.first.strip)
|
|
239
240
|
assert_equal("sample email message Fwd: sub D'ici un mois Géorgie", mms.subject)
|
|
241
|
+
assert_equal("D'ici un mois Géorgie body", text_lines.first.strip)
|
|
240
242
|
else
|
|
241
|
-
|
|
242
|
-
assert_equal("D'ici un mois G\xE9orgie body", text_lines.first.strip)
|
|
243
|
-
assert_equal("sample email message Fwd: sub D'ici un mois Géorgie", mms.subject)
|
|
243
|
+
assert_equal(Iconv.new('UTF-8', 'ISO-8859-1').iconv("sample email message Fwd: sub D'ici un mois Géorgie"), mms.subject)
|
|
244
|
+
assert_equal(Iconv.new('UTF-8', 'ISO-8859-1').iconv("D'ici un mois G\xE9orgie body"), text_lines.first.strip)
|
|
244
245
|
end
|
|
245
246
|
|
|
246
|
-
mms.purge
|
|
247
247
|
end
|
|
248
248
|
|
|
249
249
|
def test_subject
|
metadata
CHANGED
|
@@ -1,109 +1,112 @@
|
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: mms2r
|
|
3
|
-
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 3.5.1
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
5
4
|
prerelease:
|
|
5
|
+
version: 3.6.0
|
|
6
6
|
platform: ruby
|
|
7
|
-
authors:
|
|
7
|
+
authors:
|
|
8
8
|
- Mike Mondragon
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
|
|
13
|
+
date: 2012-01-19 00:00:00 Z
|
|
14
|
+
dependencies:
|
|
15
|
+
- !ruby/object:Gem::Dependency
|
|
15
16
|
name: nokogiri
|
|
16
|
-
requirement: &
|
|
17
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
|
17
18
|
none: false
|
|
18
|
-
requirements:
|
|
19
|
-
- -
|
|
20
|
-
- !ruby/object:Gem::Version
|
|
19
|
+
requirements:
|
|
20
|
+
- - ">="
|
|
21
|
+
- !ruby/object:Gem::Version
|
|
21
22
|
version: 1.4.4
|
|
22
23
|
type: :runtime
|
|
23
24
|
prerelease: false
|
|
24
|
-
version_requirements: *
|
|
25
|
-
- !ruby/object:Gem::Dependency
|
|
25
|
+
version_requirements: *id001
|
|
26
|
+
- !ruby/object:Gem::Dependency
|
|
26
27
|
name: mail
|
|
27
|
-
requirement: &
|
|
28
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
|
28
29
|
none: false
|
|
29
|
-
requirements:
|
|
30
|
-
- -
|
|
31
|
-
- !ruby/object:Gem::Version
|
|
30
|
+
requirements:
|
|
31
|
+
- - ">="
|
|
32
|
+
- !ruby/object:Gem::Version
|
|
32
33
|
version: 2.2.10
|
|
33
34
|
type: :runtime
|
|
34
35
|
prerelease: false
|
|
35
|
-
version_requirements: *
|
|
36
|
-
- !ruby/object:Gem::Dependency
|
|
36
|
+
version_requirements: *id002
|
|
37
|
+
- !ruby/object:Gem::Dependency
|
|
37
38
|
name: uuidtools
|
|
38
|
-
requirement: &
|
|
39
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
|
39
40
|
none: false
|
|
40
|
-
requirements:
|
|
41
|
-
- -
|
|
42
|
-
- !ruby/object:Gem::Version
|
|
41
|
+
requirements:
|
|
42
|
+
- - ">="
|
|
43
|
+
- !ruby/object:Gem::Version
|
|
43
44
|
version: 2.1.1
|
|
44
45
|
type: :runtime
|
|
45
46
|
prerelease: false
|
|
46
|
-
version_requirements: *
|
|
47
|
-
- !ruby/object:Gem::Dependency
|
|
47
|
+
version_requirements: *id003
|
|
48
|
+
- !ruby/object:Gem::Dependency
|
|
48
49
|
name: exifr
|
|
49
|
-
requirement: &
|
|
50
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
|
50
51
|
none: false
|
|
51
|
-
requirements:
|
|
52
|
-
- -
|
|
53
|
-
- !ruby/object:Gem::Version
|
|
52
|
+
requirements:
|
|
53
|
+
- - ">="
|
|
54
|
+
- !ruby/object:Gem::Version
|
|
54
55
|
version: 1.0.3
|
|
55
56
|
type: :runtime
|
|
56
57
|
prerelease: false
|
|
57
|
-
version_requirements: *
|
|
58
|
-
- !ruby/object:Gem::Dependency
|
|
58
|
+
version_requirements: *id004
|
|
59
|
+
- !ruby/object:Gem::Dependency
|
|
60
|
+
name: rdoc
|
|
61
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
|
62
|
+
none: false
|
|
63
|
+
requirements:
|
|
64
|
+
- - ~>
|
|
65
|
+
- !ruby/object:Gem::Version
|
|
66
|
+
version: "3.10"
|
|
67
|
+
type: :development
|
|
68
|
+
prerelease: false
|
|
69
|
+
version_requirements: *id005
|
|
70
|
+
- !ruby/object:Gem::Dependency
|
|
59
71
|
name: hoe
|
|
60
|
-
requirement: &
|
|
72
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
|
61
73
|
none: false
|
|
62
|
-
requirements:
|
|
74
|
+
requirements:
|
|
63
75
|
- - ~>
|
|
64
|
-
- !ruby/object:Gem::Version
|
|
65
|
-
version:
|
|
76
|
+
- !ruby/object:Gem::Version
|
|
77
|
+
version: "2.12"
|
|
66
78
|
type: :development
|
|
67
79
|
prerelease: false
|
|
68
|
-
version_requirements: *
|
|
69
|
-
description:
|
|
70
|
-
|
|
71
|
-
|
|
80
|
+
version_requirements: *id006
|
|
81
|
+
description: |-
|
|
82
|
+
== DESCRIPTION
|
|
83
|
+
|
|
72
84
|
MMS2R by Mike Mondragon
|
|
73
|
-
|
|
74
85
|
http://mms2r.rubyforge.org/
|
|
75
|
-
|
|
76
86
|
https://github.com/monde/mms2r
|
|
77
|
-
|
|
78
87
|
https://github.com/monde/mms2r/issues
|
|
79
|
-
|
|
80
88
|
http://peepcode.com/products/mms2r-pdf
|
|
81
|
-
|
|
82
|
-
|
|
89
|
+
|
|
83
90
|
MMS2R is a library that decodes the parts of an MMS message to disk while
|
|
84
|
-
|
|
85
91
|
stripping out advertising injected by the mobile carriers. MMS messages are
|
|
86
|
-
|
|
87
92
|
multipart email and the carriers often inject branding into these messages. Use
|
|
88
|
-
|
|
89
93
|
MMS2R if you want to get at the real user generated content from a MMS without
|
|
90
|
-
|
|
91
94
|
having to deal with the cruft from the carriers.
|
|
92
|
-
|
|
93
|
-
|
|
95
|
+
|
|
94
96
|
If MMS2R is not aware of a particular carrier no extra processing is done to the
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
email:
|
|
97
|
+
MMS other than decoding and consolidating its media.
|
|
98
|
+
email:
|
|
98
99
|
- mikemondragon@gmail.com
|
|
99
100
|
executables: []
|
|
101
|
+
|
|
100
102
|
extensions: []
|
|
101
|
-
|
|
103
|
+
|
|
104
|
+
extra_rdoc_files:
|
|
102
105
|
- History.txt
|
|
103
106
|
- Manifest.txt
|
|
104
107
|
- README.TMail.txt
|
|
105
108
|
- README.txt
|
|
106
|
-
files:
|
|
109
|
+
files:
|
|
107
110
|
- .gitignore
|
|
108
111
|
- Gemfile
|
|
109
112
|
- Gemfile.lock
|
|
@@ -188,6 +191,7 @@ files:
|
|
|
188
191
|
- test/fixtures/indosat-image-01.mail
|
|
189
192
|
- test/fixtures/indosat-image-02.mail
|
|
190
193
|
- test/fixtures/info2go-image-01.mail
|
|
194
|
+
- test/fixtures/invalid-byte-seq-outlook.mail
|
|
191
195
|
- test/fixtures/iphone-image-01.mail
|
|
192
196
|
- test/fixtures/iphone-image-02.mail
|
|
193
197
|
- test/fixtures/luxgsm-image-01.mail
|
|
@@ -254,6 +258,7 @@ files:
|
|
|
254
258
|
- test/test_bell_canada.rb
|
|
255
259
|
- test/test_bellsouth_net.rb
|
|
256
260
|
- test/test_helper.rb
|
|
261
|
+
- test/test_invalid_byte_seq_outlook.rb
|
|
257
262
|
- test/test_mediamessaging_o2_co_uk.rb
|
|
258
263
|
- test/test_messaging_nextel_com.rb
|
|
259
264
|
- test/test_messaging_sprintpcs_com.rb
|
|
@@ -291,31 +296,36 @@ files:
|
|
|
291
296
|
- .gemtest
|
|
292
297
|
homepage: https://github.com/monde/mms2r
|
|
293
298
|
licenses: []
|
|
299
|
+
|
|
294
300
|
post_install_message:
|
|
295
|
-
rdoc_options:
|
|
301
|
+
rdoc_options:
|
|
296
302
|
- --main
|
|
297
303
|
- README.txt
|
|
298
|
-
require_paths:
|
|
304
|
+
require_paths:
|
|
299
305
|
- lib
|
|
300
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
|
306
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
301
307
|
none: false
|
|
302
|
-
requirements:
|
|
303
|
-
- -
|
|
304
|
-
- !ruby/object:Gem::Version
|
|
305
|
-
|
|
306
|
-
|
|
308
|
+
requirements:
|
|
309
|
+
- - ">="
|
|
310
|
+
- !ruby/object:Gem::Version
|
|
311
|
+
hash: -1579114988942475097
|
|
312
|
+
segments:
|
|
313
|
+
- 0
|
|
314
|
+
version: "0"
|
|
315
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
307
316
|
none: false
|
|
308
|
-
requirements:
|
|
309
|
-
- -
|
|
310
|
-
- !ruby/object:Gem::Version
|
|
311
|
-
version:
|
|
317
|
+
requirements:
|
|
318
|
+
- - ">="
|
|
319
|
+
- !ruby/object:Gem::Version
|
|
320
|
+
version: "0"
|
|
312
321
|
requirements: []
|
|
322
|
+
|
|
313
323
|
rubyforge_project: mms2r
|
|
314
324
|
rubygems_version: 1.8.10
|
|
315
325
|
signing_key:
|
|
316
326
|
specification_version: 3
|
|
317
327
|
summary: Extract user media from MMS (and not carrier cruft)
|
|
318
|
-
test_files:
|
|
328
|
+
test_files:
|
|
319
329
|
- test/test_orangemms_net.rb
|
|
320
330
|
- test/test_waw_plspictures_com.rb
|
|
321
331
|
- test/test_mediamessaging_o2_co_uk.rb
|
|
@@ -331,6 +341,7 @@ test_files:
|
|
|
331
341
|
- test/test_mms_att_net.rb
|
|
332
342
|
- test/test_mobile_indosat_net_id.rb
|
|
333
343
|
- test/test_messaging_nextel_com.rb
|
|
344
|
+
- test/test_invalid_byte_seq_outlook.rb
|
|
334
345
|
- test/test_mms_mtn_co_za.rb
|
|
335
346
|
- test/test_mms_vodacom4me_co_za.rb
|
|
336
347
|
- test/test_pxt_vodafone_net_nz.rb
|