"Challenging job" /project/captive/ announcement removed.
[www.jankratochvil.net.git] / etmms / Index.html.pl
1 #! /usr/bin/perl
2
3 # $Id$
4 # Contact page Perl template.
5 # Copyright (C) 2003 Jan Kratochvil <project-www.jankratochvil.net@jankratochvil.net>
6
7 # This program is free software; you can redistribute it and/or modify
8 # it under the terms of the GNU General Public License as published by
9 # the Free Software Foundation; exactly version 2 of June 1991 is required
10
11 # This program is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 # GNU General Public License for more details.
15
16 # You should have received a copy of the GNU General Public License
17 # along with this program; if not, write to the Free Software
18 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19
20
21 package Contact;
22 require 5.6.0;  # at least 'use warnings;' but we need some 5.6.0+ modules anyway
23 use vars qw($VERSION $CVS_ID);
24 $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; };
25 $CVS_ID=q$Id$;
26 use strict;
27 use warnings;
28
29 BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,<F>)[0]]}; eval "use lib '$top_dir'"; close F; }
30 use My::Web;
31 require CGI;
32 Wrequire 'My::Project';
33
34
35 my $W=My::Web->init(
36                 "__PACKAGE__"=>__PACKAGE__,
37                 "title"=>"MMS Center Debugging",
38                 );
39 My::Web->heading();
40
41
42 sub project ($)
43 {
44 my($name)=@_;
45
46         my %name_item=( My::Project->one_item_list_read($name) );
47         return a_href "/project/$name/",$name_item{"name"}.': '.$name_item{"summary"};
48 };
49
50
51 print <<"HERE";
52 <h1>MMS Center Debugging</h1>
53
54 <p>Here you can find description of very simple but technically interesting hack.
55 You can provide your own MMS Center (MMS=Multimedia Messaging Service) in GSM
56 network instead of the operator's one.</p>
57
58 <p>There is only a limitation of a bearer data service - MMS is usually run
59 over GPRS (General Packet Radio Service) channels while you cannot behave as
60 GPRS callee in GSM network. Fortunately MMS can be run also over CSD (Circuit
61 Switched Data - up to 14400bps) or HSCSD (High Speed CSD - up to 57600bps)
62 services. GPRS is usually known as always-online while CSD/HSCSD you must dial
63 some destination number. GPRS vs. CSD have usually also different GSM operator
64 tariffication but it should not matter much for the short data messages.</p>
65
66 <p>I did not provite a completely mine MMS center. I was involved in pilot MMS
67 Center project where some compatibility issues of MMS message format between
68 MMS phone and MMS center had to be solved. As I did not have technical access
69 to the MMS center itself I setup two mobile phones
70 (@{[ a_href 'http://www.nokia.com/','Nokia' ]} @{[ a_href 'http://www.communicator.org/','Communicator' ]}s)
71 to setup sniffing tunnel. One of the phones were setup in answer mode to
72 simulate the MMS center while the other one called to the real official (and
73 buggy) MMS center accessible as regular service provided by the GSM operator.</p>
74
75 @{[ centerimg 'gate','MMS Sniffing Diagram' ]}
76 @{[ vskip "2ex" ]}
77 @{[ centerimg 'triple.jpeg','MMS Sniffing Mobiles Setup' ]}
78
79 <dl>
80         <dt>Answer side <i>pppd(8)</i> command</dt>
81         <dd><pre>
82 pppd /dev/ttyS5 19200 modem lock crtscts connect "chat -vf /etc/ppp/answer-T68i.chat" @{[ "\\" ]}
83                 noauth debug nodefaultroute 192.168.192.67:192.168.192.68 default-asyncmap
84         </pre></dd>
85         <dt>Answer side <i>/etc/ppp/answer-T68i.chat</i> file</dt>
86         <dd><pre>
87 TIMEOUT 3 "" "ATZ" "OK-ATZ-OK" "" ABORT "BUSY" ABORT "NO CARRIER"
88 ABORT "NO DIAL TONE" ABORT "ERROR" ABORT "VOICE" REPORT CONNECT ""
89 ATL2 OK-ATL2-OK
90 AT+CBST=7,0,1;+DS=3,0,1300,32;+CR=1;+DR=1 OK
91 ""
92 TIMEOUT 300
93 @{[ 'RING \d\d\d\d\d\dATA' ]}
94 CONNECT "" ^M ""
95         </pre></dd>
96
97         <dt>Dial side <i>pppd(8)</i> command</dt>
98         <dd><pre>
99 pppd /dev/ttyS4 19200 modem lock nocrtscts xonxoff connect "chat -vf /etc/ppp/mmsgate.chat" @{[ "\\" ]}
100                 noauth debug nodefaultroute
101         </pre></dd>
102         <dt>Answer side <i>/etc/ppp/mmsgate.chat</i> file</dt>
103         <dd><pre>
104 TIMEOUT 3 "" "ATZ" "OK-ATZ-OK" "" ABORT "BUSY" ABORT "NO CARRIER"
105 ABORT "NO DIAL TONE" ABORT "ERROR" ABORT "VOICE" REPORT CONNECT ""
106 #AT+CBST=7,0,1;+DS=3,0,1300,32;+CR=1;+DR=1 OK
107 ATD+420602900666
108 TIMEOUT 90 CONNECT "" ^M ""
109         </pre></dd>
110 </dl>
111
112 <p>Some decoded data illustration</p>
113 <pre>
114 MMS Message Encapsulation
115         Message-Type: m-retrieve-conf (0x84)
116         Transaction-ID: PVve-6DaCUEAAC5qAAAAAQAAAEoAAAAA
117         MMS-Version: 1.0
118         Date: Aug 15, 2002 19:25:20.000000000
119         From: +4206CENSORED/TYPE=PLMN
120         Subject: testidD
121         To: +4206CENSORED/TYPE=PLMN
122         Message-Class: Informational (0x82)
123         Delivery-Report: No (0x81)
124         Content Type: application/vnd.wap.multipart.related (0x33)
125                 Type: application/smil
126                 Start: AAAA
127         Multipart body
128                 Part: 1
129                         Content Type: application/smil
130                                 Charset: us-ascii (0x0003)
131                         Headers
132                                 Content-Location: AAAA
133                         Data in this part
134                 Part: 2
135                         Content Type: image/gif (0x1d)
136                         Headers
137                                 Content-Location: postcard.gif
138                         Data in this part
139 </pre>
140
141 <p>@{[ a_href 'http://www.sonyericsson.com/T68i/','Sony Ericsson T68i' ]}
142 MMS definition file URL decoded out of the data stream above:
143 @{[ a_href 'http://wap.sonyericssonmobile.com/UAprof/T68R201.xml' ]}</p>
144
145
146 <h2>Completed Subtasks</h2>
147 <ul>
148         <li style="font-size: larger;">@{[ project 'etherealmmse' ]}</li>
149         <li style="font-size: larger;">@{[ project 'etherealwsp' ]}</li>
150 </ul>
151
152
153
154
155
156
157
158
159
160
161
162
163
164 HERE
165
166
167 My::Web->footer();