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