Download MobiTicket: une application mobile de ventes aux

Transcript
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
!"#$%&
'() (* +
- .
!"#$%
(#
)
/
"
© Christina Braz, 2003
"
,
+
,
,!
+
0
&
12
,1334
27-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
!
$
%
&
'
$
+
© Christina Braz, 2003
)
$
#
&
#
(
"
%
&
!
!
!
"
"
"
'
(
*
,
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
$ )
$
& 6
&
-./! 0
7
/
! " $
&;
$
$
&
&
$
&
>
2&
6 - /! 0
1$
$ <
% !
$
<
)
%
%
$
© Christina Braz, 2003
% -45. 0
$ )
$
$
$
$
=
&
$
&
% )
$
%
3
<
&
$
$
$$
&
%
$
2
$ 3
8 9:5
&
$
" 8 $
%
•
•
•
•
•
5
1
&
&
$
?
$
1
$
=
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
1(/
5'
/
© Christina Braz, 2003
+
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
@
8
+
%
A
=:
5
/<5
$
$
& 1
%
=.
&
8
C ###
:
8
@
C ###
$
$
6?
.
%
=
<8
%
1
$
?
&
@
B
$
D E@+
%
&
?
&;
$
6
3
&
A
&
8
./!
B
.
8
$$
. 3
8
$
@
: 8
3
&
$
A
F
+
1
!
&
@! @ -@
8
!
@ & 0
: 8 C ###=)
$
$
: 8 C ###=
© Christina Braz, 2003
%
$
$
3
<
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
•
8
: 8
C ###
8
3
: 8
&
.8! 8 :
C ###
=
=
&;
=
=&
=
$
G
&
$$
=
&
C ###
.8
$
7
$<JJ777
&
$<JJ777
•
: 8
$
J $$
6?
6
6
$$
8A! :
6?
C ###
5
C ###
6?
6
%
@
$
@! @=
8A! :
HHH F -
0
?
$
$$
37 ;@! @
&
7
J $$
%
$
$$
$
1
: 8
J $ K###
J.
%
1
?
$
%
$ $
7
<@
$
: 8
$
$
1
D
: 8
?
@! @=
.
.
@
3:
=
%
=
$
.
5
8
$
@
$
?
@! @
$
8
: 8
@
C ### @
$
$
?
: 8 C ##HJ###=
K$
$
@! @
=
I&
I&
-
-
0<
0<
L
&
$
=
=&
@! @= &
F=
+3
<8
*HH ! MI
$
$
2$
8
.8! 8 : -.
$
& =
2
=
8A! : < 8
A&
$
N
© Christina Braz, 2003
%
3
%
&
%
8 $
!
;8
.8! 8 : -.
8 $
!
= B $ N
=&
N
! $ :
$ $
,HH ! MI=
&
8
:
;8
0< 8
:
.8! 8 :
%
2
1 2
=
0
=
2
2 $ $
.8! 8 : $ &
%
,,H=
%
$$
$
0< !
O
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
>
$ B
$
N
6?
@
6?
<@
7<
?
G N @! @ / $
@
.
<@
?
6?
$<JJ777
•
7
G
A
.
J@ $$ A 7
1
$&
&
I& <
H , G9 $
A
F %
!
- F0
$
$ $%
© Christina Braz, 2003
J
F
&
+
0=
6=
J
2&
%
% $
4
:! 98 :
$
$
%
$ 1
5
&
$
F
&
$
$
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
@
$
: 8
@
?
$
$
.8
$
@
>
A
$
?
I 7
@
8D
1
<@
$
: 8 C ###
8 $ % .:P
?
E@+
E@+
@! @J J
;
< 8D
3
2
-
8A 9 ! 2
3
$
0=
$
$
+
D
@
© Christina Braz, 2003
!
>'HJ>''J>(H <
=
E@+
&
$
=
.8
<!
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
.:P *HH 8:+ / -9/G@,,H*0
8
&
&;
&
.:8 M *FF . " .8
$$
&
$
.:P *HH 8
8
8
M.Q
M.Q
&
$
-9 @,,H*0 @
$
!
. " .8 $
&
$
5
?
<
$
<!
. " .8 M
. " .8
&
$
!
@,,H,0 @
<!
$
:
$
M. Q
© Christina Braz, 2003
8
-
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
#
5 "
#*# A
D
;
S
7
&
.
ARE3#
$
&
T
%
$
.8 8
$
D
&
$
8A! : 5
<A
$
5 "
#*# A
.
@
'
$
8D
ARE3#
<5 "
5 R : ' *#
$
5 " ' *# < 8D
@
© Christina Braz, 2003
-A 93 .0
<5 "
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
@
@
:
/ &
A & $$
$
U
E5 F U ?
&
.A: = $
$
U!
.
& 1
%
%
%
%
%
&
$
$
$<JJ777 I
A
U
1+
&
8
$
% $
& =
:.
=
1) =
&
.8 =
& + =
N
&
= 0 .
+
IJ
JU KG@KU ?
$
KH H $
%
U ?
=
I & <
@! @F8M:54/
@! @F
&
<
.
.
$$
&
&
%
$
M
.
%
.=
$
$
$<JJ777
&
-E@AV HHH0
I& < $<JJ777
$
J7
•
•
•
•
•
•
•
•
•
5
5
5
5
5
5
5
5
5
5
"
"
"
"
"
"
"
"
"
&
$
J
-E@AV #H0 $
K & ; $
I& <
IJ
J
JU KG@KU ?
KH H $
50
@! @ 4: /? :X
&
$
@! @@ &
% =
$<JJ777 I
$$ $
@! @ @/9>/9 H -W>: E:
8
@! @ 1
= M
=
J
$
@! @
&
H
1
$
4@!
$
&
5 " <
&
$
5 "
H
H
H
*
*
#
'
'
(
H
H
H
<
&
@ &
$<JJ777
J$
J
© Christina Braz, 2003
8
D
$
+
& . $
J $J $$
J
J7
J
J7
%
3
!
=
K
7Y
J $$
I& <
Z
)$[ & Z "0[
J
;)$[
$ Z ;
ZJ)$J
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
@
.
< 8
%
./! $
HH=
HHH
:
>
8 9:5
& 9
&
1$
$
5
$
9
8
$
HH=
HHH
&
@! @
&
\
9
H
=
P
8
HH=
HHH
=
%
=%
P
8 9:5
$
© Christina Braz, 2003
30-oct.-03
;A
© Christina Braz, 2003
) 43A
;A@ "#
$
?
%7 /
" @ 2(
3(
! 132(
;<1(
=2(
14
) 43A
;A@ "# ;A
$
%7 B
: B 1C
! 132(
;<1(
=2(
;;3
/
1,
4
$
@
%7 /
"@2(
3(
! 132(
;<1(
=2(
1<
/
=
$
)
%7 /
" @ 2(
;(
! 132(
;<1(
=2(
11
$
%7 /
"@2(
3(
! 132(
;<1(
=2(
1=
/
;
Screen/Keyboard Switch
Nom: Roxanne
OS: Linux RH7.0.
IP : 207.162.57.21
Logiciels : 4
(NT4.0., W2K, WXP)
UTILISATEURS
SuperStack III 3300 Switch
Nom: SSIII01
IP: 207.162.57.210
SuperStack III 3300 Switch
Nom: SSIII02
IP: 207.162.57.211
SuperStack III 3300 Switch
Nom: SSIII03
IP: 207.162.57.212
SuperStack II 1100 Switch
Nom: SSII04
IP: 207.162.57.209
SuperStack II 1100 Switch
Nom: SSII03
IP: 207.162.57.208
SuperStack II 1100 Switch
Nom: SSII02
IP: 207.162.57.205
SuperStack II 1000 Switch
Nom: SSII01
IP: 207.162.57.204
#
&
$ <8
27-oct.-03
LÉGENDE:
100Mbps Inversé
%
=X.
! + /
E@/9
<$ 9
8
< H)
= HH
< # ]= HH
+ I
MOBILE
NETWORK
Video/Keyboard cable
10Mbps
100Mbps
G
Firewall
5
A
A
8
< ! =? /+3
=A5@ .
< + "3 $.8=G
&
<8
L
$
< ? =G .=A5@ @
# < + "3 $=:$$
!
48 / @<
1633
7
87/
"
!
"!79
$
. :(
(
+(
! 132(
;<1(
=2(
;
/
>1 &
INTERNET
Firewall
OS: Linux RedHat 9.0.
!"#$%
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
8
%
.
!
$
$
8
%
=
&
%
8
;
E
$
%
B
%
$ %
B
9
< :
&
9 @P
7 "
7
1
The Cisco Catalyst® Series of switches consists of a
comprehensive range of Ethernet-based platforms providing
increasing levels of functionality from basic connectivity to
high-end, multilayer intelligent service switching solutions.
These switches provide diverse interfaces, high port densities
and extensible functionality suitable for converged network
access or backbone applications.
As a key component of Cisco AVVID (Architecture for Voice
Video and Integrated Data), Catalyst switches provide the
scalable network infrastructure with intelligent services that
enables organizations to deploy converged Internet business
solutions to maximize their productivity and competitive
advantage.
8 ; C ,HH
;
;2
;=
=
7
G 7 -8
+! 0
8 !@ $ @
HHH
@7
8 !@ $ @
HH @7
8
"
J ^ _
7 "
;$
@7 < :
"
@7
$&
< :
7
7
$
@;
<
;
&
J
3
$
M ,H
&
7
7 "
7 "
J
8
@ $ @ "
$
H ! $ /
HH+:@/3 F G /
A " $ @7
3
@7 = 7
$ = $ 3
3 $
-G
/
=: ! 83 0=
&
H ! $ /
$ "
@ $ @ "7
;
7
7 "
$ 7
;
$$ : !
,6
"
$ &
H ! $
&
-6$ 7
6
& 0 +
7
"
A " $ @7
$$
>
:5
=
$ "
7
=
7
=
@5! .
7
$$
;
9
!
-9! 50 ! +
$;
A " $ @7
$$
$ $
$
"
$ =
$
; $$
$
$
$
-@ .0
$ > :5
@ $ @ "
@7
HH
$
" $
&;
;
"
% ;
:
&
$$
$ '=
HHH ! :8
@ $ @ " @7
3$ &
HJ HH G /
© Christina Braz, 2003
9
3
7 "
$
7
7 "
7 "
$&
3
HH
&
7
$
3
3
3
:
27-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
&
@7
$
3$
HH
@ $ @
@7
7
"
HH
"
G /
7
;
$
" 7
;
.
: 7
@ $ @ "
7
=
7 @ $ @ "
@7
HH
3
HJ HH $
)
H+:@/3
HH+:@/3 F
&
@7
HH
;$ &
3
$ J
3 $
$
;
$
7
&
$7
. = ;
$;
$
&
$ ;3
7 "7
$$
G
.= 4! .
$ = ///
*H $ $
I
=
/// *H P
3
> :5
@ $ @ " @7
HH
@7
HH
"
$
;
@ $ @ " @7
!
!
@ $ @ " @7
!
8
<!
@7
HH
@7
HH 7
"
@ " $
$$
$
H 7
$
@ $ @ " @7
!
!
$$
4 $
"
7
7
3
; 7
7
7
G /
4
/
$
8 !@ $ @
HH @7
"
@7
< :
&
J
7
7 "
7 "
$&
@7
+ "
:
?
"
3
$
$ <
3
HJ HH /
=
=
$
!
<
HJ HH+:@/3 FJ9Q3 #`
$
HH+:@/3
GFJ@8= HHH+:@/3GF
HHH+:@/3 J9Q3 #=
HHH+:@/3@FJ@8=
HH+:@/3 FJ@8
@7
G
< @
3 3 7 = 3J
3
$
3
=$
" = *H P
> :5
$$ = *H $
$
!
< /
?
&
A
E
-8
@ &
+! 0
:
$$
7
.
/
$
&
A+! @
&
$ &
&;
M .
&
$ &
M ! $
&
M . %
%
< -M ? A0 (
H
: 37 ;
37 ; ;
$
-@! .0
& 7
3 3 3 =' 3 = $$ 3
. ? /9 a
$
= $ &
$
&
;
%
$
$
%
.
:! A .
8
"
$
-! J!
0
4MI
@;
;-@ J!
0
4+ J '4+
© Christina Braz, 2003
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
-@ J!
' 4+ J
.
-.
#H
E
-8
E
-8
E
-8
E
-8
E
-8
+!
!
!
@ &
+! 0
@ &
+! 0
@ &
+! 0
@ &
+! 0
@ &
+! 0
JR ;
@7
@
&
8
@
HH
&
@
&
M
@
&
@
&
9
@
&
@
&
A
@
&
@
&
@
&
&
=7
=
J
%
:
3
7
$
7
;
&
=" ;
7
$
)
&
7
";
&
&
;
J
0
+
8
0
$
@
.8 @ &
&
&
7
&
$
! $ 7
7 3 &
&
=" ;
;
$$
=
$
'
=
: $
&
; 7
; 7
;
$$
7
$
$$
$
$
7
";
&
$
;
=
$
&
&
$
;
& 2 $
;
"
7
7
$
$
$
/
^ _5
;
$
& &
;
`
;
&
;
;
$
"
);
$
;
8
$
"
?
8
7
;3
$$
© Christina Braz, 2003
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
8
%
.
%
E
$
$
=
&
%
$
%
$ %
B
)
%
8
<
3
-
!"
!
%
B
$
@
0=
%
&
#
!
@
! := B =
$
b
-
;
0=
2
=
0=
=
&
&
%
$
B
= B $
1
= $
%2
c
$ $
$
1
2
2
c &
? /+3
@ &
7 %
?
$ =
4
2 $
1
7 ;0
&
$
A5@
.
5@
@
JA
$
A5@ -@;
0<
&
2L
%
+ 5A -+ " ;
5
A
0
>
,
. E
2
$
E9
$
%
&
&
&
0
%
1
%
%
$ &
! :.
= " "=
= 73
;
0
A5@ @
;
• A5@@/8 •
@ 4.&
•
•
•
•
7
7
=
$$ 7
7
7
7
$
I
0
A5@ %
! ;@P
;
0
'
: 7 A5@ %
.&'
"
.&'
-:'=A5:! /=
+
/ $
.&' 9
&
;
0
;=/A5@H
> 7
•
6
!
& $
$ =
6& 7
$
$ & .
© Christina Braz, 2003
7
7
A5@ .
/
•
FG9=AA5@=5
•
$ &
1 $
&
-$
$7
? 4
& =
$ "
$ $
.
@P =
$ $ ;
$
82
$ %
1
&
%2
$
= $
= $
? 4
7
7
@! .
%
1
2
$
6
$ &
6& 7
$ 6& 7 6
A5@
=
@ $$
;:
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
+ 5A 9/@ E98/ 9/PE 9/! /5 @
$
%
+ 5A ,
; %
E5 F
$ =
. @ F $$ =
7
%
&
;
= &
&
&
; & $
A5@@/8
.&'
+ 5A
8.E
& 7& =
I
;7
$$
+ 5A ,
7
;
I
$
;
;
'
;
7
%
$
A5@
;$ &
"
;
=
;
,
:5@ 8
;$ A5@
G
&
%
&;
7
&'
8.E %
&
I
;
A5@@/8
I
+ 5A ,
7
$
= &
*'3
=
; ;
;
$
$
%
3
$
'
;
&
"
I
(
@8 + 5A ,
;
<
$
7
$
•
•
•
•
•
•
•
•
•
5 @JX. -5 7 "
@ &
JX
7 .
;
$
1
0
0
&
%
J
9.8
5 @JX.
2& ;
5@
$
9.83
;
$
$
$
2
-E
5 @JX.
+! : F
8 $ %A
J ' E5 F HA
8 $ %A
J ' E5 F # -7
.&' /:R0
M. M.3EF
9 F' ' #
@ @
'=(=*
5 +@A # -7
$ & 3$
H (0
G +@A 3@ :+ /= #= H=
9 M
' H=' =' =( H
.:8R/ G /9 54 8M:9:8 /9 @ 8@ G 5 @JX.
=
$
;2
5@
;
$
2;
$
&
;
$
=
0
;$ &
& EA.
&
7
$ "
;
2
&
$
?
$ "
=
2
$
& =
9.83
"
"
7
;
$
;7
$ 7 =
2
5 @JX. %
$
5 @JX.
.9 FX 54 8M:9:8 /9 @ 8@ G 5 @JX.
%2
1
)
=
$$
© Christina Braz, 2003
9.83
$
7 7
7
$ "
$
`
:
$
;
$
5 @JX. $
;
;
%
;
; &
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
B
7
$
$
$
;
=
7
&
7
%
;
" 7
5 @a
7
=
;
&
$
=$
;
5 @JX.
.MX@ 8: @/9>/9 9/PE 9/! /5 @
&
5@
&
& ;
$
?
7
+ "3 $
.8
:
$;
&
=
$
;= E -?
HHH0
7
&
=
$ $
&
;
=
;
=
•
•
•
•
•
•
•
;
"
;
$
& $
7
? G
? G .
^d_
7
•
•
•
•
:
A
@
$
;
5@ &
"$
$
;
7
3 ;
"$
;
;
7
"$
;
$
;
"$
3
7
7
&
;
;
&
- $
"$
$ &
$ 8.E
@$
$
$
"$
"$
$
7
#3#H\= $
;
&
0
;=
$
=
$
.
<?
7 C -F. M
JF. . J HHH . J! J,*0
?
7 5 J HHH @ & =: &
@ &
@ &
$$
"
7
$$
/
.
";
3
;
$
/
.
^d_
7
;
;
7 "
$
*
7 "
@ &
?
&
&
3
•
L
$
I
•
8
HH
&
5@
=
"
;
I $
;
5@
$ $
$
G @ &
7
&
M
/
8
>
. 3
G
3
$$
+ "$
•
" $
&
$
;
5@
&
@;
& 1
$
`
-? 0
M !
:$
. )
&
Q"
•
•
•
•
•
•
•
5 7 "
;
E$
=
H,'
@
"
E$
HH
3;
A;
>
8 $
?
7
:$
<$ )
&
© Christina Braz, 2003
= $$
$
& $$
. -? 0
M
2 )
=
$
$
@ &
$
$
-
$
= 0
E
;
%
=
$
?
$
$
=
2
2/
%
&
$
$
< 84 -& 0=
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
&
.M.=Q@.=F!
G . -G
$
.
0
$
8.J . 8
? @KG . ? @KG .
3 $7
G.
•
•
•
/ &
>
•
•
:
•
!
<?
7 5 J,#J,*
(H
< =
** !
=
$
$
1
$
$
-
3
1
0
$
- 2
1
A $
-G
;
+ "3 $0
0
"$
;
;
:
3
"$
E5 F
$
$
;
A
&
"=
$-E
0
$
; $$
;$
>
' : [ E5 F
3
;
;
7
"
$
$
$
" $
:$$
%
!
!
4
%
!
%
^d_=
^d_=
^d_
•
•
@ &
$$
@ &
$$
1N
+/: ?
@ & '
?
>
J$
> <
% J
<
J
$<JJ7773
J
3
> <
J4:E@@ AF
J
$$
& = $7
$
3
$$
?
@ & 2
&
$
Q& /
$
/
-Q //e 0 $
$
=
@ & =Q & @ &
.
[email protected]= /
$
Q& +
-/Q+e 0= Q & !
@ &
-Q! @0=
$
&
$ &
;=
;=
; %
;
3 =
3
3
$$
•
•
•
•
•
•
•
•
•
•
•
•
© Christina Braz, 2003
<
$<JJ777
!
<
JA 8
4
<
$<JJ
"
M !
?
?
@ & 8 $
?
8
?
!
+
Q // 8
:
Q& @
;
Q: H
/Q+ H $$
Q! @ H
@ &
Q@.
3!
;9 $
@
Q! F3
@;
!
;
3
@
&
0
/Q+
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
•
G 7
<
.
7
-
0
A$
A$ ;
&
$$
.
A
$%
$$
$
/
=
=$ '
$
;
2
$
7
-
;
0
;
$
%
$%
$$ %
45EJ
1
:&
$ 3
2.
.'
45EJ
5
$
1 2
;
7
2
$%
1
82
=$
$
=
$
$
2
) -1
0=
=
=
.
) %
4
$
6 $ 3
$
6=
@ &
=
$
?
$
$
$
- &
@;
;
@
Q& =
/
&
&
% :$
= %
2
&
?
;
%
Q& 0
f $
-@/0
$
b
&
?
•
@
&
&
$
8
N
%
=$
$
&
Q& =
R 3
$
$
$
=
$
2
@AR 3 @ A & $$
%
;
7
<
$
&
$
$$
= $$
=%
&
$ S
2
$$
;
<
2
$
5
$
$
$
2)
2
@/ $
$ =
0
•
-45EJ
0
;$ E
& $$
T
= $
$
A
- .:0 E
$
&
-$
$
$
•
$
$
]
@/
8
1
&
D
=
2
$
&
%
&
$
2$$
0
8
-
<
=
$
&
$
& -
0
•
!
3
;
$
%
N
$ %
D
•
;
$
0 / $
N
$
$ $
$
*
$
$ %
$
-&
• F?
7<
F ?
7
© Christina Braz, 2003
!
&
%
#<
*
#< 2 1
!
;
0 82 313
&
$
$
%
$
•
/
J@
$ $ %
$
$
$ $ %
D
#
$
;
$
<
3
;
$
3 2
% 1 2
;
N
-$
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
$ % 0
2
$ =$
$
52 $
$$
$
%
= D
$ %
=
&
$
•
.
=1
$ %
<
= 2&
;
$
M
9
M
(
%
>
(
2
&
9
M
•
1
2
2 $
&
•
•
•
•
•
•
•
9
M
9
M
,H
%
>
,H
2
&
9
M
•
N
=
$
$ -8=8aa=G 9 9:5=
. =.; = 8
48Q
$
45E $ Q & 0
@
2
& $$
1)
& 488 ,'=
4A+ # H=4 +8
& $$
2$$
?
% .M.
U$
$ @@
&
;$
*
$
? =
@ $$ E@+ $
&
FG
H $
$
&
$ 3
$ %
@ &
1)
%
;
&
5 =
9
M
,
1
2 $
2
&
$ @
•
•
1
M
9
$
$
= $$
$
$$
:$$
;
;
$
2
$
&
< F
2$
$
$
/&
! $
2
% =
•
$
E
$
B
= D 1
9
&
2$
E
9
$ % +
M
&
&
M:9A? :9/ 9/PE 9/! /5 @
7
$
%
•
;
<.
3!
3!
39
© Christina Braz, 2003
M
7
,<
3
3
$
M
A "@$
< HH ! MI.
< HH ! MI.
!
3
<
38
3@ & 0< *#H! +
3.
A " $< (4+
3? "
<
4+
38
- & ;
•
9
8.E<
3!
39
39
•
;
0< (#! +
0< # H4+
;<
3
$
<
$
< ' !+
*! +
< , !+
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
@
@
$
H
G
3
7 " :$
. )
Q"
&
! >8
$
$$
G
7 "<
& $$
?
2
M 7@
7 "Y
Q& @ &
%
;?
7
Q& @ & .
;
?
$
& $$
@
$
@ &
7
%
?
7
$$ $
@ & .
" ?
$$
=
=
& $$
@
@
$ )
$
& $$
$ ) Q"
:@G -:$
@ 7
G
0
.
@ &
$$
Q& %
& =$
$$ %
&
1
8
@
!
&
&
;
Q& %
;
%
Q& @ & .
$
;
%
•
•
$
$
"
7
@
!
;
Q&
Q @/
•
•
•
•
•
•
Q@.
F!
/Q+ H
;
&
"
&
.
$ ;
&
@
&
)
;$
&
$
$
&
&
;
;
;A
;
I
@ &
7
7
7
;
3
%
$
"
! !
2
E9 <
2
&
2
:. QA+8 $
Q! @ $ & N
J) J
)&
A
$<JJ)&
J$
&
1
7
0
$
@
; !
0=
-
3
$
0
0
&
& %N
/
/Q+
© Christina Braz, 2003
@
!
Q&
7
7
Q@. $
: 7 ;$
$
5 7 $
&
7
7
&
7
&
: . $ ;/
&
/ $
$$
$$
$
-!
!
.
Q&
@ &
@ &
Q //
;
@ & =
$ @
=
$
=
;
•
•
Q! @=
!
:.
$
$
;
=
$
•
H
7
@
:.
%
I
•
•
Q! @
$
$ $
<
•
•
Q@.
;
$
Q& +
$
E
;
$
$
& $$
/Q+
%
/Q+
&
$
%
$
%
= $
/Q+
&
=
&
$
=
<
/Q+ 8
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
&
$
&
%
$
/Q+ E
$
&
/Q+ %
$
$
$ @
8
H,
@
%
)
,
:$
. )
%
% $
F!
Q"
;
$
@P
@P $
=Q &
8
=
&
/
/Q+
7
Q&
)
$ &
Q&
=
= F!
F!
"
F
.
:$
. )
$
$
FA
Q"
$
, *(
Q&
=
7
;
-
0
Q&
$
Q& A
@ &
$$
& 1 ?
0
Q+
$ ) $
& $$
Q&
$
&
2
2
/Q+
$
$
Q //
Q+
H'
7 $
F!
;
$
J
$
Q& A
FA
$$; 8
& $
A & $
7 "
;
Q&
$
8
; FA
;
$
I Q"
: FA
7
"
E
7
7
;
; FA
/Q+
+
FA
Q+
Q+
$
!P - $
F- $
8! .
Q+
$ &
2
$
3
$
$
0
;7
2
< Q+
@ & =Q+
Q! @0= Q+
! F= Q+
Q :JQ @0=Q+ @F =Q+ 8F Q+
Q+ @ & =
Q+ ! P=
Q! @
F=
Q :JQ @
;=Q+ 8F
Q8:
=Q+
$ &
/Q+
Q! F
= Q+ ! F=
=Q+ @F
Q::@
&;
Q+ 8! .
8! . $
Q
4
$
$
$
:$
. )
Q"
Q+
;
Q! F ; $
:5X
$
$
$
Q+
$
?
)
$
;
$$
$
=
$
; 7
7
:. Q+
;
7
;
)$ "
$$
45.
&; $
=7
;
&
E
7
;
$
:
:
)"
$ )
$
$
82
"
% &
E
)&
$ ) )&
1 2
:$
. )
Q"
)
$
$
$
$<JJ
;
&
I
:
$
> <
7
&
;
$$
Q! F
2 &
$ )
$
J
$
F!
J
-
0 $
$
$
$
$
$
© Christina Braz, 2003
$ )
% $
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
2 Q>!
Q
Q
/Q+
//
QE
@
$
7 =
@
Q& =
3
7 "
$
$
-8aa=.;
=
$
0
+! 2
.
>
8
H
@
Q;
@
$
D
Q.;
2
Q& &
$
2
J
@
2
&
G
$<JJ
J$ )
G
$<JJ
J$ )
J
$
< .;
$
<
J)
<
Q;
J)
•
•
•
•
•
•
$;
Q& $
$
<
$
;
$
%
Q&
%
;
Q&
$
$
&
Q;
$;
Q;
-
2$$
$;
HH\ .
;
Q&
= &
$;
=
$
Q & -$
0
) Q&
0
$
)"
2
$
&
@
1
-%
.;
.
@P
$;
N
Q&
$
$
859
&
Q.; 0=
&
1
$ ) < Q;
@;
4
+
A
9
-@4+A90
;
;$ E5 F -$
$
= G +@A=
: F=M.3EF= 9 F=
@
=
0 .
@P
6 $
@
6
4
A & $$
.
@P
$
4
.
@P $
@4+A9
%
$
•
$ %
-F3?
<
7
0
$
•
%
0
)
$
•
:.
$$
.
$
$
&
& $$
@P =
$
$
- $$
1 $
Q & -QA+80=8J8aa=. = J "
A+8 $
1 2 $
%
$$
;$ 2
2
1
;$ .
@P
2
@P
•
J
2
$
&
= 2 313
&
=
$
&
%N
@P
2 $
$$
-
%
•
.
$$
2 $
-
© Christina Braz, 2003
@4+A
<
%
.
4 $
A & $$
4
.
@P
& N
2
$
&
0
$
2
&
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
&
0 $ &
%N
2
^d_
^ _5
3 N 0
%
.
@P
&
1
@P
$ $
$$
#
@
. 3
.
$ 3
1
=
&
&
$ $
$$
$
=
=
$
$
- 0
$
S
=
$
$
"
%
T
&
$
3
#
$
$
&
$
$
$$
:
%
<+ 5
!
@! @
$
$ $
&
$$
$
-
0
&
$
@;
+
#
@
4D
$
: &
+
%
$
5
=
2
$
$
1
2&
&
I
'
%
@ 5/ JA? A!
2
=
2
+
5
$
$% = $
$
$
&
$
'
-
.
$
&
3 & $$
&
© Christina Braz, 2003
.
%
=+
2
5
8
@;
&
.
&
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
.
$
&
.
%
3 & $$
&
$
+
5
8
@;
&
.
.5
@
+
1
5
&
9
.
=+
2
5
$
1
&
<+ 5
1
% = ]=
$
.
&
2
$
%
%
=
$
%
$
&
$
.
2
:
.
% $
3
2% $
$
$
$
+
5
2$$
© Christina Braz, 2003
@ 5/
8
@;
@ 5/
$%
=
$%
.)
2
&
&
.1 &
$ =;
#H
. &
$
$& &
$
=
+
5
1
-9.>0 $
$
2
9.>
2$
$&
1
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
-
0
2&
.
$
@ 5/
$
%
$
2
-4GE0
2
: !
&
.
&
$%
2
=
$
/0
4D 1
;
3 & $$
&
1 2$
8
@;
=+
-@@/0 . $
5
$
.1
@;
1 2$
@
<+
10
/ $
& 8
$
$
8
$
© Christina Braz, 2003
$
=+
5
% @
) %2
1 H4 $ g 2
2
>
8:d
I
=
.$ 3
$% = $ 1
h/
=+
?
8
1 2
$
A? A! =
5
777
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
#
:
>
$
© Christina Braz, 2003
9
. 3
-+
0
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
:
5
A
A
8
G
. 8
&
$ <8
9
. 3
-+
0
<
+
<#
<*
> : : ! + / E@/9 5 /9G:8/
]= HH
]= HH
+ I
SSL (Secure socket layer)
Firewall
MOBILE
NETWORK
Firewall
WIRELESS DATA NETWORK PROVIDER
OPÉRATEUR
MOBILE
(SMS-C)
BELLNEXXIA
DATA NETWORK
CENTER
Base Station
% !/D 07D"
-!# # B D 07D" !$ D"E# D
D$"%// D$
INTER
NET
9 E /E9
HTTP AES[2] (Protected One-to-One
Communications)
B D 07D"
VPN Tunneling
IPSec (via Internet)
-!# # B D
D" @#$ !$ D"E# D
HTTP
#" @#$)
#" @#$)
AES[2] (Protected One-to-One
Communications)
VPN Tunnelling IPSec
VPN Tunnelling IPSec
[1] SS7: Standard de télécommunication définissant l'architecture permettant l'ouverture d'appel, la facturation,
le routage et assurant les fonctions d'échange d'information du PSTN (Public Switched Telephone Network).
[2] AES : un standard de cryptage symétrique destiné à remplacer le DES (Data Encryption Standard) qui est
devenu trop faible au regard des attaques actuelles.
© Christina Braz, 2003
27-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
' !
;
'
@
: &
!
&
E
@;
23
2
1!
!
@
$
/
$
> 7
@; $
$
$$
2 $
$ ; =
$
$ $
P
!
(HH
=P7 =@
=@
&
$
/
=
6$
2
&
&
8
=M 7
$ 2
=
@; $ $
•
•
•
•
•
•
!
3
6
@; 5 7 "
3. " =Q
!
= @
Q
@;
=
<
&
$
$ &
%
L
&
&
$
/ $
1$
2
%
3$
&
!
@;
:
=
$
=2
@; 5 7 "0
=
&
$ &
1
&
=!
%
$$
&
@;
&
2
$
=
2
1
$
!
$$
2
@;
$
2
D
$ ; =
$
$
&
&
=
&
$
© Christina Braz, 2003
!
@;
=
&
%
I&
2$$
&
$
& $
$
$
$
$
$
&
1
%
2
! Fe
@; -!
@;
$
&
$
3
!
1
=
&
$
$
=
@; 5 7 "
$$
$ &
8:
&
3+
&
@; 5 7 "
$
& 2+
!
@; 5 7 " $
& %
!
$
@; -!
!
2
&
2
!
@; =%
5 7 "0=%
!
-P @0
%
&
$
.
"$
$
&
&
2
$
8
<
$<JJ777
!
$
&
@; $
;
27-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
'
5
A
A
8
:
G
&
$ <8
<
<#
<
$
. 8
]= HH
]= HH
+ I
!
-!
;
0
@;
B !"D/D77 )# # $D B %"C
-!# #
% !/D 07D" !$ D"E# D
Base Station
SSL (Secure socket layer)
"%-!)D"
MOBILE
NETWORK
Firewall
Firewall
OPÉRATEUR
MOBILE
(SMS-C)
% !/D 07D"
-!# # B D 07D" !$ D"E# D
INTER
NET
"%0 D0"
HTTP AES[2] (Protected One-to-One
Communications)
B D 07D"
VPN Tunneling
IPSec
-!# # B D
D" @#$ !$ D"E# D
HTTP
#" @#$)
AES[2] (Protected One-to-One
Communications)
VPN Tunnelling IPSec
[1] SS7: Standard de télécommunication définissant l'architecture permettant l'ouverture d'appel, la facturation,
le routage et assurant les fonctions d'échange d'information du PSTN (Public Switched Telephone Network).
[2] AES :
© Christina Braz, 2003
27-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
( 9
$
8
@
(
@
>
>
.&
E >.5
8
3
$$
$
S
. & 5 7 "->.50 $
=9
8
.
3 3
1
>.5
9
$
&
&
$
•
•
=
$ $
<@
5 7 "->.50
%
•
T.
&
=
<
$
&
8
3
;
A
N
/ $
=
&
N
1
8
$
% $
$
&
)
%
F#H,0
.@
$& &
>
-
$
$
2/ G 3
>.5 $
/
"G
$
0$
$
$
3 $
© Christina Braz, 2003
27-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
:
-@
9
8
.
0
5
A
A
8
G
&
$ <8
<
@
< , ]= HH
< ' ]= HH
+ I
BASE STATION
Network
.W9: /E9@
! + /@
IPSEC (RC4)
RÉSEAU
CIRANO
(WLAN)
+
9
G
Mobile
Network
Inter Carrier
Gateway
(ICG)
UTILISATEURS WLAN
CARTE AIRCARD® 555
RÉSEAU
BELLNEXXIA
OU
MOBILESYS
© Christina Braz, 2003
UTILISATEUR
MOBILE
27-oct.-03
Application
HTTPS
Transport
SSL/TLS (MD5)
Network
IPSEC (RC4)
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
(
.@
;.
- .@ 0
.
1
.@
;$
$ =$
&
&
8 $
2
<$
3 )
<$
2
$
< $
8
!
-2
/
82 1
L
2
$
<
)
"
$
.
$%
-
$
3 $
2
0
%
0<
%
$
2
;$ =
;$ J
$
$%
.@
$
$
7 ;
$ <
•
•
(
;$
&
$
.@
&
<
8
:
:
& $$ $
=2
=
9&
8
$
5 7 "0 Zi
$
:5 % 2 $
8
2 $
1
8$
;$
=
(
@
H
@ "
@@ -@
@ "
2
$ 5
$
&
$ $
© Christina Braz, 2003
;$
>.5 :5
1
=
:5 $%
:
7 ;
j -98 0
&;
&
$
7 ; <
;$
*
$ 1
= $
$ 1 ! A#=$
; -@@ 0J
; 0
$
$0
$
$
1
&
& $$
98
2
; @
-
;$
$
9@: A
@
;
1
98
$
$
@0
S
=$
" T @@ 0= & $$ 1
-
= $
27-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
1 2
$
@@
% <
•
%
$
•
2
•
$
N
•
@$$
$
8
&
& 1
M! :8 -M
%
2$$
(#
; @
;0 $
$
&
$
M
@@ @@
.=G .=
=$
2
:
8
$
$
=
;
%
$
0
! A#
$
2
;
N
$
% $
$ & J$ %
2
@
9@: A @
.
M
2
!
82
('
= & $$ $ 2/ G=
2$$ %
@
M;$
$
f
.
;$ =% 2 2
;$
&
© Christina Braz, 2003
$
*
%2
B
$
$
$
;
$
! A#
; 2
&
.
%
$
$
& $$ $
& $$
-M
$
% 8
1
$
2
$ $
%
;
8
!
$
.@0
?
& $$ $ 5
;$
$ & @@ M .@ -@ $ 6
6
6
%N
$
&;
$
@
=
&;
$$ b
$ <JJ &
$ .
60
?
%
1
=
5
fN
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
4(/
/
© Christina Braz, 2003
+
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
?
. $
8
5
D &
A
$
3
+ I
8
3H
!
" >
9
HH
H
5
8
>
8
!
" $
8
&
;
-8 9:5 0
5
8
!
&
"
. )
$$
© Christina Braz, 2003
$
-./! 0 /
$ LN &
!
8
J. &
J. ;
-P
0
<
%
$
$
=
$
$
$
;$
$
$$
$ N
$$
&
&
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
:+ / A/ ! : k9/@
+
$ )
8
#
#
#
)
M;$
A
$
;
G
!
!
$ )
" .
" .
8
8
-45. 0
$
J8aaJ:
###0
%
'
'
'
'
*
,
& $$
H
H
H
H
! ;
! ;
! ;
/ $
@$
@$
%
!
:
"
$$
-$
!
8
!
!
: 8
45.
!
8aa0
"
'
'
'
(
0
#
#
!
@$
8
8
-
3
#
'
'
2
$
#
# /
#
#
#
#
8
#
8
' :
' 8
© Christina Braz, 2003
'
&
&
!
"
&
%
%
$
(
(
(
*
*
,
&
&
$$
!
" &
H
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
$
$
&;
3 "0
E
!
;$ $
=
$
> .=
$
=
$ &
1
$
= $
$
$
%
$
$
%
-4E 0 5
$
$
$
;$ & N
$
$
$
=
%
" $
$ )
5
1
& $$
$
;$
8
$$
-./! 0 <
•
•
!
!
" $
" .
& $$
-E! 0
+
$ )
$
/
<
$
J
<
$
;$ !
" $
-6./! 0
1
8aaJ:
Q & J45. J+
###
$
E
!
$ )
2
$
& 6 7
&
/
$
! " $
&;
2&
6 - /! 0
$
2
$ 3
8 9:5
1$
$$
% -45. 0
$ )
$
$
$
.
$
$
"
!
$
-!
1&
" $
=
&
$
;$
$
$
$
6!
© Christina Braz, 2003
" $
;$ $ &
0
$$
6
$ )=!
&
" 6
$
"
H6
%
8
-@
<
8
= HH 0
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
3
45 6
8
! b
9 $
+ I
% JE &
&
.
!
%
3M/8 !
-
)
& 0<
<
•
A
-
%
;
$
)
-
=
0=
1
0
$
1
&
- &
=$
$
45. =
0
&
•
•
•
•
•
•
.
A
.
A
9
A
!
%
7
%
@! @
$
$
)
$ 45.
?
$
;
;$
)
•
<
9
&
•
$$
$
<
E $
© Christina Braz, 2003
;$
&
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
#
8
.
$
$$
)
%
$$ 1 !
!
"
H
N$
$$
$
/
" $
$
$=
%
=
$ &
3
0=
-
$ $
&
1
)
$$
$ ) ./!
2
$
$
$$
$$
!
"
& $$
&
&
>.
&
&
&
%
&
@! @
: 8
@
. )
$
0
1
)
$
-./! 0
$
$
1
>.5
$
$$
$
###
8aa
%
&
$
&
$
M;$
1
<
•
•
&
45. -4
8
$$
•
$
5
$
6Q 8aa 6# % $
.
8aa
0
Q&
$
&
0
45. -
?
!
#
Q 8aa < 8
Q&
: =
> < $<JJ777
© Christina Braz, 2003
" $
)
& $$
J J8
% $
$
?M $$ $
$
$
&
$
$
8 9+:
8aa
Q5
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
'
A
$
;
$
$
$
$
$ $
%
= 45.
> .$
?
$
;
&
8 $
= $ ) $
$ ) ./! @
&
$$
>. 1
$
$
-!
$
$
$
$
G
$
" 0 5
$
$ ) 3$
2&
2
$
$
45. 1
&
=
2
$ )
!
" .
$
-
$
$ &
J8aaJ:
%
###0 <
> .1
&
@! @'
.
$
G
!
&
&
&
•
•
•
•
&
%
$
'
O
$
$
L
%
;$ $
@ & .
$
$ & $
&
3&
$
&
$
$
> .$
<
$
@! @<
$
© Christina Braz, 2003
&
)1
&
3 N
2
$
-
0
$
=
=$
$;
=
$ &
&
;
%
=
&
@! @
=
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
(
G
DIAGRAMME DE SÉQUENCE
SCÉNARIO DES VENTES AUX ENCHÈRES VIP
Utilisateur
mobile
Marchand
1: Envoi d'un forfait VIP
1. Le marchand envoie un SMS à l'utilisateur
mobile (UM) en offrant une enchère VIP. Ex:
Jean Leloup, Place des Arts, 20 heures, date,
deux billets mezzanine + backstage + souper.
2: Envoi d'une mise
2. L'UM envoie un SMS en contenant sa mise.
3: Validation de la mise faite.
3. Le système vérifie la mise qui a été faite par
le CM.
3a: Échoue de l'enchère
3a: L'UM échoue l'enchère. Le système
l'informe quelle a été la mise gagnante.
3b: Mise a été déja placé
3b. Si la mise a été déjà faite, le système
l'envoie un message d'erreur en rejetant la mise.
3c: Mise avec des caractères invalides
3c: Si la mise a été faite avec des caractères
d'autres que de lettres, ou des valeurs
au-dessous de la mise minimale, le système
l'envoie un message d'erreur en rejetant la mise.
3c: Enchère a écoulée
3d: Le système l'indique que l'enchère
a été déjà écoulée en rejetant la mise.
4: Envoi de confirmation de la mise
4. Si la mise est valide le système l'envoie
une confirmation de la mise.
5: Réussite de l'enchère
5: L'UM remporte l'enchère. Le marchand
lui demande de présenter son code de
confirmation et de payer au guichet du thêatre.
A
%
$$
@
© Christina Braz, 2003
6/
> .6
< + I=8 = HH
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
*
!
$
&
" .
-45. 0 <
$ &
.
%
&
@! @
$
45.
@! @i45.6
>.
&
1
1
$
>.
= $
Q& 6
G
G
DIAGRAMME DE SÉQUENCE
SCÉNARIO DES ENCHÈRES VIP (CÔTÉ ASP)
Utilisateur
mobile
1. Le programme Java crée les clés unique
(GPK: Global Primary Key) de la négociation et
du produit qui permettront d'identifier la
négociation (numéro généré automatiquement
par le système) et le produit (forfaits VIP).
2. Le marchand envoie un message Push
SMS (offre de spectacle) à l'utilisateur mobile
(UM).
3. Le cliente mobile envoie un message
SMS en indiquant son mise pour
le spectacle.
Traducteur
SMS->GNP
GNP2
NegotiationSessionBean
(cirano.gnp.ejb)
1. Création negoGPK
et productGPK.
2: Push SMS
Exemples:
negoGPK=7453798
productGPK=7455801
3: Mise sur l'offre (340$)
4. Création de l'ordre à
partir de la mise.
4. Le Traducteur crée une Ordre selon la mise.
Pour chaque
utilisateur mobile.
5. Envoi de l'Ordre
5. Le Traducteur envoie une Ordre au GNP2.
6. Soumettre l'Ordre.
6. GNP2 soumettre l'Ordre dans le système.
7. Acquittement du message.
7. Le Traducteur envoie un acquittement du
message à l'UM.
8. Attente de mises *[for each 30s]
8. À chaque 30 secondes le Traducteur écoute
les mises provenenantes des UMs.
9. Recherche des adjudications.
9. Une recherche est faite afin de trouver les
adjudications dans le GNP2 (base de données).
10. findAdjudications()
10. GNP2 trouve les adjudications dans son
système.
11. Adjudications
11. GNP2 envoie les adjudications au
Traducteur.
12. Lire les adjudications
12. Le Traducteur procède la lecture des
adjudications.
13. Message gagnant ou perdant
13. Le Traducteur traite les informations
provenientes des adjudications et envoie le
message SMS correspondent à l'UM.
A
%
@
© Christina Braz, 2003
$$
< + I=8 [
6/
> . -8L :@.06
= -8 9:5 = HH 0
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
,
G
$
-/
$ <.
&
1
: 0
G
DIAGRAMME DE SÉQUENCE
SCÉNARIO DES VENTES À LA DERNIÈRE MINUTE
Utilisateur
mobile
Marchand
1: Envoi d'un spectacle de dernier minute.
1. Le marchand envoie un SMS à l'utilisateur
mobile (UM) en offrant une vente à la dernière
minute des billets des spectacles.
2: CM requiert l'achat de 2 billets
2. L'UM envoi un SMS en contenant le mot
"oui": le consentement positif pour l'offre.
3: Vérifier la disponibilité
3. Le système vérifie s'il y a encore des billets
disponibles à vente.
3a: Marchand accepte la demande
3a: S'il y a encore des billets disponibles, le
marchand envoie un SMS à l'UM en confirmant
la réservation des billets démandés.
3b: Marchand rejete la demande
3b: S'il n'y a plus des billets disponibles, le
marchand envoie un SMS à l'UM informant que
les billets sont épuisés et rejecte la demande.
A
.
$
$
=
$
© Christina Braz, 2003
< + I=8 -8 9:5 = HH 0
6A
6
$
$
. &
< HH 3 3
%
$
$$
$$
@
$
;$ $
8
%
!
8aa
" $
$ &
&
&;
N
&
$
$
$
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
H
8
& $$
! ;
E
$
& <
•
•
@
G
0=
9
?
?
F- $
:
<+
!
### 8A! :
F
0
! ;
•
•
&
& $$
!
>
A & $$ 5 7 "0
! @A5 -!
8aa ' H
! ;
!
" $
8 9:5 =
© Christina Braz, 2003
$
&
$
;
$
$
%
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
/ $
%
@$
$
$$
G
&
!
=#
$
" $
' %
1 &
-
$
$
0 %
6
$
6
$
$$
$
> .6
-:@.0
8aa
>
@$
:
)
N
$
$$
-!
" $
0 /
& - F9 (0
$
$$
$
$
=
%
N
G
> . -!
@
(
© Christina Braz, 2003
9
$
2
" $
0
< + I=8 -8 9:5 = HH 0
&
R $
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
G
>
>.
8aa ' H -!
@
© Christina Braz, 2003
#
&
" $
& $$
!
0
< + I=8 -8 9:5 = HH 0
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
G
&
& $$
@
© Christina Braz, 2003
!
'
>
8aa ' H -!
" $
0
< + I=8 -8 9:5 = HH 0
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
!
5
7
$
3
$$
G
7
A
"
$
" J
(<
:
$
&
0$
8
1
)
0@
>. $
9:
:;
+ <:
==
>,
>
@ A 9B 9CD2
*
-E! 0
&
&
<
<,
;::?
9
!
E!
"
06
&
@! @
-@! @
E+
%
=
06
E!
$
< *#(# Q
0
0@
1
;H:?
$
a5
"
A ;H:?
$
<
E!
E
&
1
%
0@
46 =
E!
K
E
© Christina Braz, 2003
<
)
=
<
6
E
$
.
$
a
))
6 = I/)
K6
$
<
E!
K6
0@
$ HV-8
E! $
. 8
0@
*
0
<
"
6=
4 . E FCGC8 1
"
I 4/9J ;:D2
) *
9GC'
*
2 A FH<*<99<
D
1
0<
E
0@
5
>
a
<
<
I/
E
&
$
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
#
G
A
3333 /
> . 33333
Q
.
$ H
H
:
H
II
a
a $
"
HHV
8L < '
333 /
!
2
33333 /
#/
> . 33333
33333 /
h>
$ h:
I
2&
2&
h
A
33333 /
> . 33333
>
&I
h*#(# Q
$ HV
>
) % 1 , H/
@
?
3.
(# 9 @ 38
<* 3
/
>
> . 33333
=&
& I )1
h
33333 /
A
$
&
> . 33333
=&
&I
33333 /
A
=
)1
> . 33333
h
h
> . 33333
Q
<
G
(
$
HV
7/
7
@
>.
< + I=8 -8 9:5 = HH 0
'
© Christina Braz, 2003
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
:
$$
$$
!
!
45.
: 8
!
8
!
<
-$
!
-G
!
"
!
B
: 8
1 &
8aa % $
$
:
$ $
-G
* ,0 @
D
2 $ =2 &;
2
: 8
###
$ 1 $
@! @ -@
!
@
: 8
:
=8A 2
&
<E
$$
$$
$$
4
=
$
?
7
$
$
< !
8
=
8aa0
&
0
"
8
3
### 2
0 )
&
&
;$
$
0 8
& 0=% $
###
$$
6?
%
>.
&;
&
@! @
$
$
.8
;$
2
=2
2
$
% = $
1
@! @=
2
$$
$$ 8A! : -8
A&
!
=
=
2 &;
&
3
&
&
< 8
:
2
: 8
2
: 8
&
6=
1
2
: 8
1
&
=% $
2
: 8
###
2
;
L
G
8
<@
1
$
%
$ :
=
2
: 8
8 ! A ###=
=
2
2$
*
: 8
@
-$
$
C ###
?
G
@
?
= HH
,
$
: 8
C ###
$
1
$
$
@
© Christina Braz, 2003
<@
?
$
.8
$
= HH
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
(
. $ &
F -+ !
:
%
&
0
$ 1
5
&
2
: 8
$
9
$
F
###=
&
2
$
$
1
0=
1
2
$
8A! : 2
: 8
- F0
2&
4
$&
$
&
%
$ $%
% $
&
&
:! 98
$
$
$
<
/F/! . / A/ 8 A/ . E9
/5>
A/@ ! /@@:4/@ @! @ -G 58
5 5@/5A@! @0 <
/**
*
* Function : OnSendSms
* Description : Handler for Send SMS control button
* Arguments : None
* Returns : None
*
**/
void CSMSSampleDlg::OnSendSms(CString message)
{
// Add my control notification handler code here
SWI_STRUCT_SMS_StoreSms sSms;
BOOL bInterimEmailSolution = TRUE; // for now this one is always on
CString szMsgBody;
CString szAddress;
CString szAddress2;
CString szTemp;
if (message == "")
{
GetDlgItem(IDC_COMPOSEMSGBODY)->GetWindowText(szMsgBody);
if (!szMsgBody.GetLength())
{
MessageBox("Pas capable d’envoyer de message vide !");
return;
}
szMsgBody+=" Mise minimale: ";
CString s;
GetDlgItem(IDC_SENDSMSTO_BIDMIN)->GetWindowText(s);
szMsgBody+=s;
szMsgBody+=" Cloture:";
GetDlgItem(IDC_SENDSMSTO_CLOT)->GetWindowText(s);
szMsgBody+=s;
}
else
{
szMsgBody=message;
}
if (!szMsgBody.GetLength())
{
MessageBox("Pas capable d’envoyer un message vide !");
return;
© Christina Braz, 2003
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
}
//check for message length
if (BUFFER_SIZE < szMsgBody.GetLength())
{
MessageBox(_T("Le message ne peut pas excéder 200 octets"), NULL, MB_OK);
return;
}
// initialize SMS header
InitSmsHeader(&sSms.sSMSHeader);
// get TO address
GetDlgItem(IDC_SENDSMSTO)->GetWindowText(szAddress);
// customer1=szAddress;
if ( szAddress.GetLength() )
{
// set destination address
for (I32 i = 0; i < szAddress.GetLength(); i++)
{
sSms.sSMSHeader.szAddress[i] = (U8)szAddress.GetAt(i);
}
sSms.sSMSHeader.addrLen = szAddress.GetLength();
sSms.sSMSHeader.addrDigitMode = 0;
sSms.sSMSHeader.addrNumMode = 0;
sSms.sSMSHeader.addrNumType = 0;
sSms.sizeSMSBody = szMsgBody.GetLength();
sSms.pMsgBody = (U8*)szMsgBody.GetBuffer(sSms.sizeSMSBody);
// random MsgId in range 0-50 - these limits are arbitrary
sSms.nSMSId = rand();
if (sSms.nSMSId > 50)
{
sSms.nSMSId = sSms.nSMSId % 50;
}
// store the message to the modem
rCode = SwiStoreSMSMessage(&sSms, DEFAULT_TIMEOUT);
if (SWI_RCODE_OK != rCode)
{
ProcessError(rCode);
return;
}
}
SWI_STRUCT_SMS_StoreSms sSms2;
// initialize SMS header
InitSmsHeader(&sSms2.sSMSHeader);
// get TO address
GetDlgItem(IDC_SENDSMSTO_SND)->GetWindowText(szAddress2);
// customer2=szAddress;
if ( (!szAddress2.GetLength()) && (!szAddress.GetLength()) )
{
MessageBox(_T("Les adresses sont vides!"), NULL, MB_OK);
return;
}
if ( szAddress2.GetLength())
{
// set destination address
for (I32 i = 0; i < szAddress2.GetLength(); i++)
© Christina Braz, 2003
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
{
sSms2.sSMSHeader.szAddress[i] = (U8)szAddress2.GetAt(i);
}
sSms2.sSMSHeader.addrLen = szAddress2.GetLength();
sSms2.sSMSHeader.addrDigitMode = 0;
sSms2.sSMSHeader.addrNumMode = 0;
sSms2.sSMSHeader.addrNumType = 0;
sSms2.sizeSMSBody = szMsgBody.GetLength();
sSms2.pMsgBody = (U8*)szMsgBody.GetBuffer(sSms2.sizeSMSBody);
// random MsgId in range 0-50 - these limits are arbitrary
sSms2.nSMSId = rand();
if (sSms2.nSMSId > 50)
{
sSms2.nSMSId = sSms2.nSMSId % 50;
}
// store the message to the modem
rCode = SwiStoreSMSMessage(&sSms2, DEFAULT_TIMEOUT);
if (SWI_RCODE_OK != rCode)
{
ProcessError(rCode);
return;
}
}
// send the message
rCode = SwiSendSMS(DEFAULT_TIMEOUT);
if (SWI_RCODE_OK != rCode)
{
ProcessError(rCode);
return;
}
GetDlgItem(IDC_SENDSMS)->EnableWindow(FALSE);
}
/F/! . / A/ 8 A/ . E9 : 9W8/.
5 A/@ ! /@@:4/@ @! @ <
/**
*
* Function : GetSms
* Description : Function to get received SMS
* Arguments : None
* Returns : None
*
**/
void CSMSSampleDlg::GetSms()
{
MessageBox("Récupérer SMSs");
SWI_STRUCT_SMS_Status sSmsStatus;
SWI_STRUCT_SMS_RetrieveSms sSms;
U32 msgCount;
CString szTemp;
TCHAR szMessage[SWI_MAX_BUFFER_SIZE];
TCHAR szTime[SWI_MAX_TIME_SIZE];
GetDlgItem(IDC_READSMSSTATUS)->SetWindowText(_T(""));
© Christina Braz, 2003
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
// any new messages
sSmsStatus.sizeStruct = sizeof(SWI_STRUCT_SMS_Status);
rCode = SwiGetSMSMessageStatus(&sSmsStatus, DEFAULT_TIMEOUT);
if (SWI_RCODE_OK != rCode)
{
ProcessError(rCode);
return;
}
//Find out how many messages are stored in the modem
msgCount = sSmsStatus.cntRegularMsg + sSmsStatus.cntUrgentMsg + sSmsStatus.cntVoiceMsg;
if (!msgCount)
{
GetDlgItem(IDC_READSMSSTATUS)->SetWindowText(_T("Pas de messages a lire"));
LoadSmsToListCtrl();
if (mesg1 !="")
{OnSendTargetSms(mesg1,adr1);mesg1="";}
if (mesg2 !="")
{OnSendTargetSms(mesg2,adr2);mesg2="";}
return;
}
// allocate the buffer for the message
sSms.sizeStruct = sizeof(SWI_STRUCT_SMS_RetrieveSms);
sSms.sizeBuffer = BUFFER_SIZE;
sSms.pMessage = new U8[BUFFER_SIZE];
// retrieve the messages
TCHAR szAddress1[MAX_SMSI_TL_ADDRESS];
TCHAR szAddress2[MAX_SMSI_TL_ADDRESS];
TCHAR szTempTime[MAX_TIME_SIZE];
BOOL different=FALSE;
I32 i;
SWI_TYPE_SMS_Priority ePriority = SWI_SMS_PRIORITY_NORMAL;
int bid;
int iter ;
m_File.getInfo(0, szAddress1, &ePriority, szTempTime);
m_File.getInfo(1, szAddress2, &ePriority, szTempTime);
while (msgCount > 0)
{
rCode = SwiRetrieveSMSMessage(&sSms, DEFAULT_TIMEOUT);
msgCount = sSms.cntRemainingSMS;
GetDlgItem(IDC_NEWSMS_NOTIF)->EnableWindow(FALSE);
if (SWI_RCODE_OK != rCode)
{
ProcessError(rCode);
return;
}
//extract the time and the Message to character arrays
GetTime(sSms, szTime);
UpdateSmsOutbox(sSms.pMessage, szMessage);
if (my_bIsConnected == FALSE)
{
if (mesg1=="")
{
for (i = 0; (i < 12) ; i++)
{
adr1[i]=sSms.sHeader.szAddress[i];
}
mesg1="Desole, cet enchere est deja terminee!";
//OnSendTargetSms("Desole,
cet
enchere
terminee!",sSms.sHeader.szAddress);
© Christina Braz, 2003
est
deja
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
}
else
{
for (i = 0; (i < 12) ; i++)
{
adr2[i]=sSms.sHeader.szAddress[i];
}
mesg2="Desole, cet enchere est deja terminee!";
}
}
else
{
for (i = 0; (i < 11) ; i++)
{
if (sSms.sHeader.szAddress[i] != (U8)szAddress1[i] )
different= TRUE;
}
if (different==false)
{
if (mesg1=="")
{
for (i = 0; (i < 12) ; i++)
{
adr1[i]=sSms.sHeader.szAddress[i];
}
mesg1="Desole, vous avez deja fait une mise!";
}
else
{
for (i = 0; (i < 12) ; i++)
{
adr2[i]=sSms.sHeader.szAddress[i];
}
mesg2="Desole, vous avez deja fait une mise!!";
}
//OnSendTargetSms("Desole,
mise!",sSms.sHeader.szAddress);
}
vous
avez
deja
fait
une
else
{
for (i = 0; (i < 11); i++)
{
if (sSms.sHeader.szAddress[i] != (U8)szAddress2[i] )
different= TRUE;
}
if (different==false)
{
if (mesg1=="")
{
for (i = 0; (i < 12) ; i++)
{
adr1[i]=sSms.sHeader.szAddress[i];
}
mesg1="Desole, cet enchere est deja terminee!";
//OnSendTargetSms("Desole,
cet
enchere
terminee!",sSms.sHeader.szAddress);
© Christina Braz, 2003
est
deja
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
}
else
{
for (i = 0; (i < 12) ; i++)
{
adr2[i]=sSms.sHeader.szAddress[i];
}
mesg2="Desole, cet enchere est deja terminee!";
}
}
//OnSendTargetSms("Desole,
mise!",sSms.sHeader.szAddress);
else
{
// New bid to handle auction
vous
avez
deja
fait
une
CString s = CString (szMessage);
for (iter=0;s.GetAt(iter)==' ';iter++)
{;}
if (s.GetAt(iter)=='$')
{iter++;}
for (;s.GetAt(iter)==' ';iter++)
{;}
bid=0;
for (; iter < s.GetLength(); iter++)
{
switch (s.GetAt(iter))
{
case '0' :
bid=(bid*10);
break;
case '1' :
bid=(bid*10)+1;
break;
case '2' :
bid=(bid*10)+2;
break;
case '3' :
bid=(bid*10)+3;
break;
case '4':
bid=(bid*10)+4;
break;
case '5':
bid=(bid*10)+5;
break;
case '6' :
bid=(bid*10)+6;
break;
case '7':
bid=(bid*10)+7;
break;
case '8':
bid=(bid*10)+8;
break;
case '9':
bid=(bid*10)+9;
break;
default :
© Christina Braz, 2003
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
iter = s.GetLength();
break;
}
}
if (bid <= bidmin)
{
if (mesg1=="")
{
for (i = 0; (i < 12) ; i++)
{
adr1[i]=sSms.sHeader.szAddress[i];
}
mesg1="Desole, vous n'avez pas fait une mise valide!";
//OnSendTargetSms("Desole,
cet
enchere
terminee!",sSms.sHeader.szAddress);
}
else
{
for (i = 0; (i < 12) ; i++)
{
adr2[i]=sSms.sHeader.szAddress[i];
}
mesg2="Desole, vous n'avez pas fait une mise valide!";
}
est
deja
//MessageBox("bid non valide");
//OnSendTargetSms("Desole, vous n'avez pas
fait une mise
valide!",sSms.sHeader.szAddress);
}
else
{
if (bid1==0)
{
bid1=bid;
for (i = 0; (i < 12) ; i++)
{
num1[i]=sSms.sHeader.szAddress[i];
}
//MessageBox("first
if
");MessageBox(num1);
MessageBox(num2);
}
else
{
bid2=bid;
for (i = 0; (i < 12) ; i++)
{
num2[i]=sSms.sHeader.szAddress[i];
}
//MessageBox("first
else
");MessageBox(num1);
MessageBox(num2);
}
CString bids = CString (bid);
m_File.addToFile(sSms.sHeader.szAddress,
sSms.sHeader.ePriority,szTime, szMessage);
if (mesg1=="")
{
for (i = 0; (i < 12) ; i++)
© Christina Braz, 2003
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
{
adr1[i]=sSms.sHeader.szAddress[i];
}
mesg1="Merci! Votre mise a ete acceptee! Attendez un message d'avis sur
l'etat d'avancement!";
}
else
{
for (i = 0; (i < 12) ; i++)
{
adr2[i]=sSms.sHeader.szAddress[i];
}
mesg2="Merci! Votre mise a ete acceptee! Attendez un message d'avis sur
l'etat d'avancement!";
}
//OnSendTargetSms("Merci! Votre mise a ete acceptee! Veuillez
patienter et attendre une reponse! ",sSms.sHeader.szAddress);
}
}
}
}
}
if (m_SmsInboxList.GetItemCount())
{
// set the selected item in list control to have index 0 (arbitrary)
//
m_SmsInboxList.SetItemState(0, LVIS_SELECTED, LVIS_SELECTED);
}
m_SmsInboxList.SetItemState(0, LVIS_SELECTED, LVIS_SELECTED);
GetDlgItem(IDC_READSMSSTATUS)->SetWindowText(_T("SMS
a
ete
succes"));
recupere
avec
//update the list box
LoadSmsToListCtrl();
// free the memory
delete [] sSms.pMessage;
UpdateData(FALSE);
}
© Christina Braz, 2003
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
#
!
!
-G
@! @
: 8
: 8
H0
!
-
0
&
B
!
1 &
8aa % $
$
>.
&;
&
45.
8
$
&
6
$
$
O
)6 1 $
$
8aa
$
&
Q& % $
H
MOBITICKET PHASE I
.
8aa
H0
Q&
G
MODULE CLIENT
45.
1 45. -G
MOBITICKET PHASE II
External
Java API
MODULE GNP2
BASE DE
DONNÈES
MODULE AIRCARD
TOJA (CIRANO)
ORDINATEUR PORTABLE
/ &
$
@! @
/ &
$
@! @
UTILISATEUR 1
UTILISATEUR 2
UTILISATEUR 1, 2. . .N
:
$$
@
© Christina Braz, 2003
!
" $
< + I=8 -8 9:5 = HH 0
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
'
@$
3
$
8
$
$
$
!
8
10 6
-!
$
<
$
" $
%
2$
2
$
2
4
8aa ' H0
>
$
10 6
A
###
: 8
10 6
-> G
A
$
& $$
: 8 C ###
2
;
?
7
$ 3
$
$
2
&
A
2$
8aa %
$
$
$$
$
&
0<
•
•
A
>
&
&
•
>.
&
< 68
@! @
< 69
6P
6
$
@! @ 6
@
$
%
6
6@! @
6
$
6l6
8
$
2
$
&
$
;$
$
$$
$$
&
$
=
$
]1
8 $
$ & ; &
&
313
=
@! @
$ &
$
$
$
&
$
;$ %
$
#
!
8 $
O
" $
© Christina Braz, 2003
$
&
$
& 45.
]
-$
$$
&
&
Q 8aa
$
0
Q&
$
$
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
(
# /
&
#
2
6
& 6 /
2 $
&
1 $
$$ % 1
=$ ;
=$ ;
1
) =$
%
8
%
$ &
$;
8
$
$
2
1
<
$;
$
=
=
M
.
=
:$
&
L
!
•
%
•
l
$
$
$
%
1 2
.
< $;
% =
=
$
$
%
)
$
$
1
- $$
0
=
% <
1
=
&
2$
2
2
=&
$
&
$
$
1 2$$
$
$
2
&
& $$
&
N $
$
%
2
$
$
=
$ $
%
2
$
$
.8
$
$
$
$$
$$
2
$
•
•
2
6 2
#
1$
%
$
6%
&
&
$
<
$
© Christina Braz, 2003
$$
&
$
&
<
& 0%
1
=
$
!
1
2
"
./! -:@.0 $$
1
> .$$
%
$$
B
$
6
6
$
> .6
61$
&
&
$$
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
*
#
&
5
&
I
%
&
1
$
3
- *
)% 1
&
0=
%
&
$
l
;
" =
&
$
$
$$
%
$=
&
.
M
&
$$
$
%
N
%
!
$
&
.
$
&
%
N
$
=
$ N
3 $$
=
1
%
$
;$ $
=
& $$
$
$
$
=
$$
$
=
&
=
$
/
$ 1
$
$
8
N
%
$
#
8
%
E
&
%
$
6:
8
/
-
6
$
%
0
D
-
;
0=%
1
-
0
%
A
$
$
)
4
,
:
8
A
&
% 1
D =
$
&
$
+
,
6
G
A
J $
=
A $
$
%
=
$
=
1$
$
+
,
$
-.
6
D
$ 1
$&
@
@! @0
A
&
$
$
1
$
,
6
A]1
$$
@
$
=!
"
, A
8
&
$
&
$
© Christina Braz, 2003
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
D6
4
,
G
A
$$
&
@! @
;$
$
$
&
@! @
N
@
'
&
&
$
$
/
$
%
D
6
&;
& $ =
$
?
8
6A
&
.
$ %
@! @
)
& &
&
I
%
)
#
8
%
A
=
6:
$
$
=
&
-
* 0
&
)
% $
$
8
8
$
/
$ $
$
&
%
6
%
A
'
$
$
)
A
.
)
&
B =
$
P
8
:
@
N 1
&
$ %
%
- HHV0=
0
,
$
- HH H, H(0
)
.
9$
$
A
&
;$
.
&
$
$ &
=%
=
&
&
=
&
© Christina Braz, 2003
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
H
G
,
4,
4+
8
A
=
N
1
$
?
$
&
- 3*HH0
%
&
G:P
.
=
&
$
$
$$
:
$
$
$ %
$
&
I
8
$
,
4
A
.
.
$
G
3
$
@! @ -
0
$
@! @ -
0
"
*,
$
$
6
$
$
&
&
%
&
$
=
=
6
%
/
@
, A
%
D
$
$
$
6
$
$
$
$
=
© Christina Braz, 2003
G
,
$
> .<
&
<
&
$
$
,
6$
$
$
&
%
$
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
-)
.
,
8
4
A
&
:$
;
&
-
&
0
$
%
&
%
&
> .=
&
<
E "
06
E +
0
:$
06
E
&
=
$
;
$
1 ,
"
I
9GC *
:$
%
31 ;
&
&
%
$
;
-
&
0 &
% 1
<?J
$
%
31
=
->
0
K
8
$
6 E ;C;B
L
0
/9J ;:D2
) *
2A FH<<99<
$
G
&
0 &
% 1
=%
$
<
&
=
=
,
E
,
.
8
8
A
&
=
&
-
0
-) % 1 'H
%
0
%
4@! =
$$
B
@! @ $
&
&
$
$
%
%
$
-
0
$
$
-
$
5 &
?
.
$ %
& 1
$
© Christina Braz, 2003
$
0
1
$
$
&
% $
&
.
&
%
&
@! @`
$
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
$
$
&
$
4
!
$
%
. &
8
% <
&
K6
K6
K
.
6 = I/)
46 =
)
.
I/
=
3&
#
6
E
E
;
-> G
$
&
E
(0
' :
'
8
$
$$
!
" &
H<
/**
*
* Name : SMSSampleDlg.cpp
* Purpose : Main dialog implementation file
* History : created Oct 10, 2003
* Application: MobiTicket Version 1.0 (initial version)
* Project: Projet d'enchère mobile (PEM)
* Author: Christin Braz, Équipe PEM.
* Institution: CIRANO.
*
**/
#include "stdafx.h"
#include "SMSSample.h"
#include "SMSSampleDlg.h"
#include "SwiApiCm.h"
#include "SwiAPI1xRtt.h"
#include "SwiSms.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
SWI_STRUCT_SMS_Status g_SmsStatus; //global variable for this SWI_STRUCT_SMS_Status
SWI_STRUCT_SMS_SendStatus g_SmsSendStatus; //global variable for this
SWI_STRUCT_SMS_SendStatus
/////////////////////////////////////////////////////////////////////////////
// CAboutDlg dialog used for App About
class CAboutDlg : public CDialog
{
public:
CAboutDlg();
// Dialog Data
//{{AFX_DATA(CAboutDlg)
enum { IDD = IDD_ABOUTBOX };
© Christina Braz, 2003
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
//}}AFX_DATA
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CAboutDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
//{{AFX_MSG(CAboutDlg)
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
//{{AFX_DATA_INIT(CAboutDlg)
//}}AFX_DATA_INIT
}
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAboutDlg)
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
//{{AFX_MSG_MAP(CAboutDlg)
// No message handlers
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CSMSSampleDlg dialog
CSMSSampleDlg::CSMSSampleDlg(CWnd* pParent /*=NULL*/)
: CDialog(CSMSSampleDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CSMSSampleDlg)
//}}AFX_DATA_INIT
// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
/////////////////////////////////////////////////////////////////////////////
//
// Function : ProcessError
//
// Description : Helper function to process error codes
//
// Arguments : code - error code
//
// Returns : None
//
// Comments :
//
/////////////////////////////////////////////////////////////////////////////
void ProcessError(SWI_RCODE code)
{
CString errorString;
errorString.LoadString(code);
if (!errorString.GetLength() )
{
errorString.Format(_T("Internal error - error code: %d"), code);
}
MessageBox(NULL, errorString, _T("API Message"), MB_OK);
}
© Christina Braz, 2003
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
/////////////////////////////////////////////////////////////////////////////
//
// Function : IsEmailAddress
//
// Description : Helper function to check for e-mail address
//
// Arguments : szAddress - CString with address to check for
//
// Returns : BOOL (TRUE if correct e-mail address, FALSE otherwise
//
// Comments :
//
/////////////////////////////////////////////////////////////////////////////
BOOL IsEmailAddress(CString szAddress)
{
if (-1 != szAddress.Find(_T('@'), 0))
{
return TRUE;
}
else
{
return FALSE;
}
}
void CSMSSampleDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CSMSSampleDlg)
DDX_Control(pDX, IDC_COMPORT, m_ComPortCombo);
DDX_Control(pDX, IDC_SMSINBOXLIST, m_SmsInboxList);
DDX_Control(pDX, IDC_PRIORITYCOMBOBOX, m_PriorityCombo);
DDX_Control(pDX, IDC_CONNECTCOMBO, m_ConnectCombo);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CSMSSampleDlg, CDialog)
//{{AFX_MSG_MAP(CSMSSampleDlg)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_BN_CLICKED(IDC_CONNECT, OnConnect)
ON_BN_CLICKED(IDC_DELETESMS, OnDeleteSms)
ON_BN_CLICKED(IDC_SENDSMS, MyOnSendSms)
ON_BN_CLICKED(IDC_GETNEWSMS, OnGetSms)
ON_NOTIFY(NM_CLICK, IDC_SMSINBOXLIST, OnClickSmsinboxlist)
ON_BN_CLICKED(IDC_END, OnEnd)
ON_BN_CLICKED(IDC_DELETE_SMS, OnDeleteSms)
ON_CBN_SELCHANGE(IDC_CONNECTCOMBO, OnSelchangeConnectcombo)
//}}AFX_MSG_MAP
ON_MESSAGE (WM_NOTIFICATION, OnNotification)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CSMSSampleDlg message handlers
BOOL CSMSSampleDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// Add "About..." menu item to system menu.
// IDM_ABOUTBOX must be in the system command range.
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
© Christina Braz, 2003
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
{
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
// TODO: Add extra initialization here
// initialize main variables
m_bIsConnected = FALSE;
m_ConnectCombo.SetCurSel(0);
m_PriorityCombo.SetCurSel(0);
m_ComPortCombo.SetCurSel(0);
m_ComPortCombo.EnableWindow(FALSE);
// setup Sms list control columns
CString strLabel;
strLabel = _T("De");
m_SmsInboxList.InsertColumn(0, strLabel, LVCFMT_LEFT, 65);
strLabel = _T("Priorité");
m_SmsInboxList.InsertColumn(1, strLabel, LVCFMT_LEFT, 70);
strLabel = _T("Reçu");
m_SmsInboxList.InsertColumn(2, strLabel, LVCFMT_LEFT, 110);
m_SmsInboxList.SetExtendedStyle(LVS_EX_FULLROWSELECT);
GetDlgItem(IDC_COMPOSEMSGBODY ) ->SetWindowText(_T("Jean Leloup 10 oct. 03 Place des
Arts
20 h 2 billets mezzanine + backstage + souper. "));
GetDlgItem(IDC_SENDSMSTO_BIDMIN) ->SetWindowText(_T("300$"));
GetDlgItem(IDC_SENDSMSTO_CLOT) ->SetWindowText(_T("16h15"));
return TRUE; // return TRUE unless you set the focus to a control
}
void CSMSSampleDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
{
CAboutDlg dlgAbout;
dlgAbout.DoModal();
}
else
{
CDialog::OnSysCommand(nID, lParam);
}
}
// If you add a minimize button to your dialog, you will need the code below
// to draw the icon. For MFC applications using the document/view model,
// this is automatically done for you by the framework.
void CSMSSampleDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // device context for painting
SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
// Center icon in client rectangle
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
© Christina Braz, 2003
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// Draw the icon
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialog::OnPaint();
}
}
// The system calls this to obtain the cursor to display while the user drags
// the minimized window.
HCURSOR CSMSSampleDlg::OnQueryDragIcon()
{
return (HCURSOR) m_hIcon;
}
/////////////////////////////////////////////////////////////////////////////
//
// Function : OnSelchangeConnectcombo
//
// Description : Connect Combo box changed
//
// Arguments : None
//
// Returns : None
//
// Comments : used to enable COM port selection when SB555 selected
//
///////////////////////////////////////////////////////////////////////////
void CSMSSampleDlg::OnSelchangeConnectcombo()
{
if(3 == m_ConnectCombo.GetCurSel())
{
m_ComPortCombo.EnableWindow(TRUE);
}
else
{
m_ComPortCombo.EnableWindow(FALSE);
}
}
/////////////////////////////////////////////////////////////////////////////
//
// Function : OnConnect
//
// Description : Handler for connect control button
//
// Arguments : None
//
// Returns : None
//
// Comments :
//
/////////////////////////////////////////////////////////////////////////////
void CSMSSampleDlg::OnConnect()
{
SWI_TYPE_Device cardType;
if (!m_bIsConnected)
{
© Christina Braz, 2003
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
// AirCard 555 - 1xRtt
cardType = SWI_DEVICE_AC55x;
rCode = SwiApiOpen(cardType);
if (SWI_RCODE_OK == rCode)
{
GetDlgItem(IDC_CONNECT)->SetWindowText(_T("Arreter l'enchere"));
m_bIsConnected = TRUE;
my_bIsConnected = TRUE;
// register the callback function
rCode = SwiRegisterCallback(NotificationCallback);
if (SWI_RCODE_OK != rCode)
{
ProcessError(rCode);
return;
}
// enable necessary SMS notifications
rCode = SwiNotify(SWI_NOTIFY_SmsStatus, DEFAULT_TIMEOUT);
if (SWI_RCODE_OK != rCode)
{
ProcessError(rCode);
}
rCode = SwiNotify(SWI_NOTIFY_SmsSendStatus, DEFAULT_TIMEOUT);
if (SWI_RCODE_OK != rCode)
{
ProcessError(rCode);
}
// enable other controls
GetDlgItem(IDC_SENDSMS)->EnableWindow(TRUE);
GetDlgItem(IDC_GETNEWSMS)->EnableWindow(TRUE);
GetDlgItem(IDC_DELETE_SMS)->EnableWindow(TRUE);
// initial check for new SMS
GetSms();
//delete all old SMS : CIRANO Auction
for(int i=0; i < m_File.iNumberOfEntries; i++)
{
m_File.deleteFromFile(i);
}
//update the list box
LoadSmsToListCtrl();
MessageBox("Debut de l'enchere");
// Modif for CIRANO Auction
OnSendSms("");
bid1=0; bid2=0;
CString s;
bidmin=0;
GetDlgItem(IDC_SENDSMSTO_BIDMIN)->GetWindowText(s);
for (int iter=0;s.GetAt(iter)==' ';iter++)
{;}
if (s.GetAt(iter)=='$')
{iter++;}
for (;s.GetAt(iter)==' ';iter++)
{;}
for (; iter < s.GetLength(); iter++)
{
switch (s.GetAt(iter))
{
case '0' :
bidmin=(bidmin*10);
break;
© Christina Braz, 2003
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
case '1' :
bidmin=(bidmin*10)+1;
break;
case '2' :
bidmin=(bidmin*10)+2;
break;
case '3' :
bidmin=(bidmin*10)+3;
break;
case '4':
bidmin=(bidmin*10)+4;
break;
case '5':
bidmin=(bidmin*10)+5;
break;
case '6' :
bidmin=(bidmin*10)+6;
break;
case '7':
bidmin=(bidmin*10)+7;
break;
case '8':
bidmin=(bidmin*10)+8;
break;
case '9':
bidmin=(bidmin*10)+9;
break;
default :
iter = s.GetLength();
break;
}
}
}
else
{
ProcessError(rCode);
}
}
else
{
// Modif for CIRANO Auction
if (mesg1 !="")
{OnSendTargetSms(mesg1,adr1);mesg1="";}
if (mesg2 !="")
{OnSendTargetSms(mesg1,adr2);mesg2="";}
my_bIsConnected=FALSE;
GetDlgItem(IDC_CONNECT)->SetWindowText(_T("Debuter l'enchere"));
CString messageG, messageP;
messageG="Vous avez gagne l'enchere! 8575 Jean Leloup";
messageP="Enchere Jean Leloup.Votre mise a ete insuffisante. La mise gagnante:";
© Christina Braz, 2003
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
if (bid2>bid1)
{
MessageBox("bid 1 est null, bid 2 non");
if (bid1 !=0)
{
CString tmp;
tmp.Format("%d",bid1);
messageG+=tmp;
//messageG+=CString(bid1);
messageG+=" $. Valide jusqu'a 19h30 ET Salle Wilfrid-Pelletier 175 Rue StCatherine T:842-2112";
messageP+=tmp;
//messageP+=CString(bid1);
messageP+="$";
//OnSendTargetSms(messageP,num1);
MessageBox(num1);
tmp+="bid 1";
//MessageBox(tmp);
//OnSendTargetSms(messageG,num2);
OnSendTargetTwoSms(messageP,num1,messageG,num2);
MessageBox("call of Send two bid1!=0");
}
else
{
CString tmp;
tmp.Format("%d",bid2);
messageG+=tmp;
//messageG+=CString(bid2);
messageG+=" $. Valide jusqu'a 19h30 ET Salle Wilfrid-Pelletier. 175 Rue StCatherine. T:842-2112";
tmp+="bid 2";
//MessageBox(tmp);
OnSendTargetSms(messageG,num2);
}
MessageBox(num2);
}
else
{
if (bid2 !=0)
{
//MessageBox("else and bid2 different de zero ");
CString tmp;
tmp.Format("%d",bid2);
messageG+=tmp;
//messageG+=CString(bid2);
messageG+=" $. Valide jusqu'a 19h30 ET Salle Wilfrid-Pelletier. 175 Rue StCatherine. T:842-2112";
messageP+=tmp;
//CString(bid2);
© Christina Braz, 2003
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
messageP+="$";
//OnSendTargetSms(messageP,num2);
tmp+="bid 2";
//MessageBox(tmp);
if (bid1 !=0)
{
//OnSendTargetSms(messageG,num1);
OnSendTargetTwoSms(messageG,num1,messageP,num2);
//MessageBox("call of Send two bid2!=0");
}
else
OnSendTargetSms(messageP,num2);
}
else
{
//MessageBox("else and bid2 egale a zero ");
CString tmp;
tmp.Format("%d",bid1);
messageG+=tmp;
//messageG+=CString(bid1);
messageG+=" $. Valide jusqu'a 19h30 ET Salle Wilfrid-Pelletier. 175 Rue StCatherine. T:842-2112";
tmp+="bid 1";
//MessageBox(tmp);
if (bid1 !=0)
{
OnSendTargetSms(messageG,num1);
}
}
}
bid1=0;bid2=0;
//MessageBox(num1);MessageBox(num2);
for(int n=0; n < m_File.iNumberOfEntries; n++)
{
m_File.deleteFromFile(n);
}
//update the list box
LoadSmsToListCtrl();
MessageBox("Fin de l'enchere");
/* disable notifications
rCode = SwiStopNotify(SWI_NOTIFY_SmsStatus, DEFAULT_TIMEOUT);
if (SWI_RCODE_OK != rCode)
{
ProcessError(rCode);
}
rCode = SwiStopNotify(SWI_NOTIFY_SmsSendStatus, DEFAULT_TIMEOUT);
if (SWI_RCODE_OK != rCode)
{
ProcessError(rCode);
}
// close the API
rCode = SwiApiClose();
if (SWI_RCODE_OK == rCode)
{
© Christina Braz, 2003
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
GetDlgItem(IDC_CONNECT)->SetWindowText(_T("Connect"));
m_bIsConnected = FALSE;
// disable other controls
GetDlgItem(IDC_SENDSMS)->EnableWindow(FALSE);
GetDlgItem(IDC_GETNEWSMS)->EnableWindow(FALSE);
GetDlgItem(IDC_DELETE_SMS)->EnableWindow(FALSE);
m_PriorityCombo.SetCurSel(0);
CleanUpEditBoxes();
}
else
{
ProcessError(rCode);
}
*/
}
}
/////////////////////////////////////////////////////////////////////////////
//
// Function : OnGetSms
//
// Description : Handler for Get New Sms control button
//
// Arguments : None
//
// Returns : None
//
// Comments :
//
/////////////////////////////////////////////////////////////////////////////
void CSMSSampleDlg::OnGetSms()
{
// call to a worker function
GetSms();
}
/////////////////////////////////////////////////////////////////////////////
//
// Function : GetSms
//
// Description : Function to get received SMS
//
// Arguments : None
//
// Returns : None
//
// Comments :
//
/////////////////////////////////////////////////////////////////////////////
void CSMSSampleDlg::GetSms()
{
MessageBox("Recuperer SMSs");
SWI_STRUCT_SMS_Status sSmsStatus;
SWI_STRUCT_SMS_RetrieveSms sSms;
U32 msgCount;
CString szTemp;
TCHAR szMessage[SWI_MAX_BUFFER_SIZE];
TCHAR szTime[SWI_MAX_TIME_SIZE];
GetDlgItem(IDC_READSMSSTATUS)->SetWindowText(_T(""));
// any new messages
sSmsStatus.sizeStruct = sizeof(SWI_STRUCT_SMS_Status);
© Christina Braz, 2003
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
rCode = SwiGetSMSMessageStatus(&sSmsStatus, DEFAULT_TIMEOUT);
if (SWI_RCODE_OK != rCode)
{
ProcessError(rCode);
return;
}
//Find out how many messages are stored in the modem
msgCount = sSmsStatus.cntRegularMsg + sSmsStatus.cntUrgentMsg + sSmsStatus.cntVoiceMsg;
if (!msgCount)
{
GetDlgItem(IDC_READSMSSTATUS)->SetWindowText(_T("Pas de messages a lire"));
LoadSmsToListCtrl();
if (mesg1 !="")
{OnSendTargetSms(mesg1,adr1);mesg1="";}
if (mesg2 !="")
{OnSendTargetSms(mesg2,adr2);mesg2="";}
return;
}
// allocate the buffer for the message
sSms.sizeStruct = sizeof(SWI_STRUCT_SMS_RetrieveSms);
sSms.sizeBuffer = BUFFER_SIZE;
sSms.pMessage = new U8[BUFFER_SIZE];
// retrieve the messages
TCHAR szAddress1[MAX_SMSI_TL_ADDRESS];
TCHAR szAddress2[MAX_SMSI_TL_ADDRESS];
TCHAR szTempTime[MAX_TIME_SIZE];
BOOL different=FALSE;
I32 i;
SWI_TYPE_SMS_Priority ePriority = SWI_SMS_PRIORITY_NORMAL;
int bid;
int iter ;
m_File.getInfo(0, szAddress1, &ePriority, szTempTime);
m_File.getInfo(1, szAddress2, &ePriority, szTempTime);
while (msgCount > 0)
{
rCode = SwiRetrieveSMSMessage(&sSms, DEFAULT_TIMEOUT);
msgCount = sSms.cntRemainingSMS;
GetDlgItem(IDC_NEWSMS_NOTIF)->EnableWindow(FALSE);
if (SWI_RCODE_OK != rCode)
{
ProcessError(rCode);
return;
}
//extract the time and the Message to character arrays
GetTime(sSms, szTime);
UpdateSmsOutbox(sSms.pMessage, szMessage);
if (my_bIsConnected == FALSE)
{
if (mesg1=="")
{
for (i = 0; (i < 12) ; i++)
{
adr1[i]=sSms.sHeader.szAddress[i];
}
mesg1="Desole, cet enchere est deja terminee!";
//OnSendTargetSms("Desole, cet enchere est deja
terminee!",sSms.sHeader.szAddress);
}
else
© Christina Braz, 2003
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
{
for (i = 0; (i < 12) ; i++)
{
adr2[i]=sSms.sHeader.szAddress[i];
}
mesg2="Desole, cet enchere est deja terminee!";
}
}
else
{
for (i = 0; (i < 11) ; i++)
{
if (sSms.sHeader.szAddress[i] != (U8)szAddress1[i] )
different= TRUE;
}
if (different==false)
{
if (mesg1=="")
{
for (i = 0; (i < 12) ; i++)
{
adr1[i]=sSms.sHeader.szAddress[i];
}
mesg1="Desole, vous avez deja fait une mise!";
}
else
{
for (i = 0; (i < 12) ; i++)
{
adr2[i]=sSms.sHeader.szAddress[i];
}
mesg2="Desole, vous avez deja fait une mise!!";
}
//OnSendTargetSms("--Encheres VIP-mise!",sSms.sHeader.szAddress);
}
Desole, vous avez deja fait une
else
{
for (i = 0; (i < 11); i++)
{
if (sSms.sHeader.szAddress[i] != (U8)szAddress2[i] )
different= TRUE;
}
if (different==false)
{
if (mesg1=="")
{
for (i = 0; (i < 12) ; i++)
{
adr1[i]=sSms.sHeader.szAddress[i];
}
mesg1="Desole, cet enchere est deja terminee!";
//OnSendTargetSms("--Encheres VIP-- Desole, cet enchere est deja
terminee!",sSms.sHeader.szAddress);
}
else
© Christina Braz, 2003
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
{
for (i = 0; (i < 12) ; i++)
{
adr2[i]=sSms.sHeader.szAddress[i];
}
mesg2="Desole, cet enchere est deja terminee!";
}
}
//OnSendTargetSms("--Encheres VIP-mise!",sSms.sHeader.szAddress);
else
{
// New bid to handle auction
Desole, vous avez deja fait une
CString s = CString (szMessage);
for (iter=0;s.GetAt(iter)==' ';iter++)
{;}
if (s.GetAt(iter)=='$')
{iter++;}
for (;s.GetAt(iter)==' ';iter++)
{;}
bid=0;
for (; iter < s.GetLength(); iter++)
{
switch (s.GetAt(iter))
{
case '0' :
bid=(bid*10);
break;
case '1' :
bid=(bid*10)+1;
break;
case '2' :
bid=(bid*10)+2;
break;
case '3' :
bid=(bid*10)+3;
break;
case '4':
bid=(bid*10)+4;
break;
case '5':
bid=(bid*10)+5;
break;
case '6' :
bid=(bid*10)+6;
break;
case '7':
bid=(bid*10)+7;
break;
case '8':
bid=(bid*10)+8;
break;
case '9':
bid=(bid*10)+9;
break;
default :
iter = s.GetLength();
break;
© Christina Braz, 2003
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
}
}
if (bid <= bidmin)
{
if (mesg1=="")
{
for (i = 0; (i < 12) ; i++)
{
adr1[i]=sSms.sHeader.szAddress[i];
}
mesg1="Desole, vous n'avez pas fait une mise valide!";
//OnSendTargetSms("--Encheres VIP-- Desole, cet enchere est deja
terminee!",sSms.sHeader.szAddress);
}
else
{
for (i = 0; (i < 12) ; i++)
{
adr2[i]=sSms.sHeader.szAddress[i];
}
mesg2="Desole, vous n'avez pas fait une mise valide!";
}
//MessageBox("bid non valide");
//OnSendTargetSms("--Encheres VIP-- Desole, vous n'avez pas
fait une mise valide!",sSms.sHeader.szAddress);
}
else
{
if (bid1==0)
{
bid1=bid;
for (i = 0; (i < 12) ; i++)
{
num1[i]=sSms.sHeader.szAddress[i];
}
//MessageBox("first if ");MessageBox(num1);
MessageBox(num2);
}
else
{
bid2=bid;
for (i = 0; (i < 12) ; i++)
{
num2[i]=sSms.sHeader.szAddress[i];
}
//MessageBox("first else ");MessageBox(num1);
MessageBox(num2);
}
CString bids = CString (bid);
m_File.addToFile(sSms.sHeader.szAddress,
sSms.sHeader.ePriority,szTime, szMessage);
if (mesg1=="")
{
for (i = 0; (i < 12) ; i++)
{
adr1[i]=sSms.sHeader.szAddress[i];
© Christina Braz, 2003
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
}
mesg1="Merci! Votre mise a ete acceptee! Attendez un message d'avis sur
l'etat d'avancement!";
}
else
{
for (i = 0; (i < 12) ; i++)
{
adr2[i]=sSms.sHeader.szAddress[i];
}
mesg2="Merci! Votre mise a ete acceptee! Attendez un message d'avis sur
l'etat d'avancement!";
}
//OnSendTargetSms("Merci! Votre mise a ete acceptee! Veuillez
patienter et attendre une reponse! ",sSms.sHeader.szAddress);
}
}
}
}
}
if (m_SmsInboxList.GetItemCount())
{
// set the selected item in list control to have index 0 (arbitrary)
//
m_SmsInboxList.SetItemState(0, LVIS_SELECTED, LVIS_SELECTED);
}
m_SmsInboxList.SetItemState(0, LVIS_SELECTED, LVIS_SELECTED);
GetDlgItem(IDC_READSMSSTATUS)->SetWindowText(_T("SMS a ete recupere avec
succes"));
//update the list box
LoadSmsToListCtrl();
// free the memory
delete [] sSms.pMessage;
UpdateData(FALSE);
}
/////////////////////////////////////////////////////////////////////////////
//
// Function : GetTime
//
// Description : Function to retrive the Time and place it in a character array
//
// Arguments : None
//
// Returns : None
//
// Comments :
//
/////////////////////////////////////////////////////////////////////////////
© Christina Braz, 2003
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
void CSMSSampleDlg::GetTime(SWI_STRUCT_SMS_RetrieveSms sSms, TCHAR *szTime)
{
//Convert the Hex digits to a Character String
wsprintf(szTime, _T("%X/%X/200%X - %X:%X:%X"),
sSms.sHeader.ts_mon, sSms.sHeader.ts_day,
sSms.sHeader.ts_yr, sSms.sHeader.ts_hrs,
sSms.sHeader.ts_min, sSms.sHeader.ts_sec);
return;
}
/////////////////////////////////////////////////////////////////////////////
//
// Function : OnDeleteSms
//
// Description : Handler for Delete Sms message in the file
//
// Arguments : None
//
// Returns : None
//
// Comments :
//
/////////////////////////////////////////////////////////////////////////////
void CSMSSampleDlg::OnDeleteSms()
{
// Find the selected row
POSITION iRow = m_SmsInboxList.GetFirstSelectedItemPosition();
//delete the message currently seleted from the File
if(!m_File.deleteFromFile((int)iRow-1))
MessageBox(_T("Could Not Delete the Entry"));
else
{
m_SmsInboxList.DeleteItem((int)iRow-1);
GetDlgItem(IDC_MESSAGEBODY)->SetWindowText(_T(""));
GetDlgItem(IDC_READSMSSTATUS)->SetWindowText(_T("Entry Deleted"));
}
}
/////////////////////////////////////////////////////////////////////////////
//
// Function : OnSendSms
//
// Description : Handler for Send Sms control button
//
// Arguments : None
//
// Returns : None
//
// Comments :
//
/////////////////////////////////////////////////////////////////////////////
void CSMSSampleDlg::OnSendSms(CString message)
{
// TODO: Add your control notification handler code here
SWI_STRUCT_SMS_StoreSms sSms;
BOOL bInterimEmailSolution = TRUE; // for now this one is always on
CString szMsgBody;
CString szAddress;
CString szAddress2;
CString szTemp;
© Christina Braz, 2003
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
if (message == "")
{
GetDlgItem(IDC_COMPOSEMSGBODY)->GetWindowText(szMsgBody);
if (!szMsgBody.GetLength())
{
MessageBox("Cannot Send a Blank Message");
return;
}
szMsgBody+=" Mise minimale: ";
CString s;
GetDlgItem(IDC_SENDSMSTO_BIDMIN)->GetWindowText(s);
szMsgBody+=s;
szMsgBody+=" Cloture:";
GetDlgItem(IDC_SENDSMSTO_CLOT)->GetWindowText(s);
szMsgBody+=s;
}
else
{
szMsgBody=message;
}
if (!szMsgBody.GetLength())
{
MessageBox("Cannot Send a Blank Message");
return;
}
//check for message length
if (BUFFER_SIZE < szMsgBody.GetLength())
{
MessageBox(_T("Message cannot exceed 200 bytes"), NULL, MB_OK);
return;
}
// initialize SMS header
InitSmsHeader(&sSms.sSMSHeader);
// get TO address
GetDlgItem(IDC_SENDSMSTO)->GetWindowText(szAddress);
// customer1=szAddress;
if ( szAddress.GetLength() )
{
// set destination address
for (I32 i = 0; i < szAddress.GetLength(); i++)
{
sSms.sSMSHeader.szAddress[i] = (U8)szAddress.GetAt(i);
}
sSms.sSMSHeader.addrLen = szAddress.GetLength();
sSms.sSMSHeader.addrDigitMode = 0;
sSms.sSMSHeader.addrNumMode = 0;
sSms.sSMSHeader.addrNumType = 0;
sSms.sizeSMSBody = szMsgBody.GetLength();
sSms.pMsgBody = (U8*)szMsgBody.GetBuffer(sSms.sizeSMSBody);
// random MsgId in range 0-50 - these limits are arbitrary
sSms.nSMSId = rand();
if (sSms.nSMSId > 50)
{
sSms.nSMSId = sSms.nSMSId % 50;
}
// store the message to the modem
rCode = SwiStoreSMSMessage(&sSms, DEFAULT_TIMEOUT);
if (SWI_RCODE_OK != rCode)
© Christina Braz, 2003
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
{
ProcessError(rCode);
return;
}
}
///second message
SWI_STRUCT_SMS_StoreSms sSms2;
// initialize SMS header
InitSmsHeader(&sSms2.sSMSHeader);
// get TO address
GetDlgItem(IDC_SENDSMSTO_SND)->GetWindowText(szAddress2);
// customer2=szAddress;
if ( (!szAddress2.GetLength()) && (!szAddress.GetLength()) )
{
MessageBox(_T("Les adresses sont vides!"), NULL, MB_OK);
return;
}
if ( szAddress2.GetLength())
{
// set destination address
for (I32 i = 0; i < szAddress2.GetLength(); i++)
{
sSms2.sSMSHeader.szAddress[i] = (U8)szAddress2.GetAt(i);
}
sSms2.sSMSHeader.addrLen = szAddress2.GetLength();
sSms2.sSMSHeader.addrDigitMode = 0;
sSms2.sSMSHeader.addrNumMode = 0;
sSms2.sSMSHeader.addrNumType = 0;
sSms2.sizeSMSBody = szMsgBody.GetLength();
sSms2.pMsgBody = (U8*)szMsgBody.GetBuffer(sSms2.sizeSMSBody);
// random MsgId in range 0-50 - these limits are arbitrary
sSms2.nSMSId = rand();
if (sSms2.nSMSId > 50)
{
sSms2.nSMSId = sSms2.nSMSId % 50;
}
// store the message to the modem
rCode = SwiStoreSMSMessage(&sSms2, DEFAULT_TIMEOUT);
if (SWI_RCODE_OK != rCode)
{
ProcessError(rCode);
return;
}
}
// send the message
rCode = SwiSendSMS(DEFAULT_TIMEOUT);
if (SWI_RCODE_OK != rCode)
{
ProcessError(rCode);
return;
}
© Christina Braz, 2003
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
GetDlgItem(IDC_SENDSMS)->EnableWindow(FALSE);
}
/////////////////////////////////////////////////////////////////////////////
//
// Function : UpdateSmsOutbox
//
// Description : Function to parse the message body to the Sms message outbox
//
// Arguments : szInputString - message to parse (pointer to U8)
// szMessage - character array to return message in
//
// Returns : None
//
// Comments :
//
/////////////////////////////////////////////////////////////////////////////
void CSMSSampleDlg::UpdateSmsOutbox(U8* szInputString, TCHAR *szMessage)
{
U8* pMsg = szInputString;
CString szBody = _T("");
U32 counter = 0;
while (*pMsg != 0)
{
if (*pMsg == 13)
{
szBody += '\r';
szBody += '\n';
}
else if (*pMsg == 10)
{
szBody += '\r';
szBody += *pMsg;
}
else
{
szBody += *pMsg;
}
++pMsg;
if ( counter && !(counter % ONE_LINE_LENGTH) && (*(pMsg-1) != 13))
{
szBody += '\r';
szBody += '\n';
}
counter++;
}
_tcscpy(szMessage, szBody);
return;
}
/////////////////////////////////////////////////////////////////////////////
//
// Function : InitSmsHeader
//
// Description : Function to initialize SMS header to be sent with the message
//
// Arguments : 1. pSmsHeader - pointer to SMS header
//
// Returns : None
//
// Comments :
//
© Christina Braz, 2003
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
/////////////////////////////////////////////////////////////////////////////
void CSMSSampleDlg::InitSmsHeader(SWI_STRUCT_SMS_CdmaHeader *pSmsHeader)
{
pSmsHeader->eParamMask = (SWI_TYPE_SMS_ParamMask) (SWI_SMS_PARAMASK_BEARER_REPLY |
SWI_SMS_PARAMASK_ADDRESS |
SWI_SMS_PARAMASK_USER_DATA |
SWI_SMS_PARAMASK_PRIORITY |
SWI_SMS_PARAMASK_REPLY_OPT |
SWI_SMS_PARAMASK_ALERT |
SWI_SMS_PARAMASK_LANGUAGE |
SWI_SMS_PARAMASK_CALL_BACK);
pSmsHeader->addrDigitMode = 0;
pSmsHeader->addrNumMode = 0;
pSmsHeader->addrNumPlan = 0;
pSmsHeader->addrNumType = 0;
pSmsHeader->eMsgIdType = SWI_SMS_MSGIDTYPE_SUBMIT;
pSmsHeader->eMsgCategory = SWI_SMS_MSGCAT_POINT_TO_POINT;
pSmsHeader->eTeleservice = SWI_SMS_TELESRV_CELL_MESSAGING;
pSmsHeader->ePriority = SWI_SMS_PRIORITY_NORMAL;
pSmsHeader->ePrivacy = SWI_SMS_PRIVACY_NOT_RESTR;
pSmsHeader->eLanguage = SWI_SMS_LANGUAGE_ENGLISH;
pSmsHeader->user_ack_req = 1;
pSmsHeader->dak_req = 1;
pSmsHeader->user_ack_req = 0;
pSmsHeader->serviceCategory = 0;
pSmsHeader->deliveryAlert = 1;
pSmsHeader->tlAckReq = 1;
pSmsHeader->subLen = 0;
pSmsHeader->callBackLen = 0;
pSmsHeader->dataEncoding = 2;
//pSmsHeader->msgDispMode = 0;
// Fill in Callback #
CString szCB;
// Default callback # = our current MIN
rCode = SwiGetPhoneNumber(szCB.GetBuffer(100), 100, DEFAULT_TIMEOUT);
szCB.ReleaseBuffer();
if (SWI_RCODE_OK != rCode)
{
ProcessError(rCode);
szCB = _T("");
return;
}
for (int iLen = 0; iLen < szCB.GetLength(); iLen++)
{
pSmsHeader->szCallBack[iLen] = (char)szCB.GetAt(iLen);
}
pSmsHeader->callBackLen = szCB.GetLength();
pSmsHeader->eMsgCategory = SWI_SMS_MSGCAT_POINT_TO_POINT;
pSmsHeader->ePriority = (SWI_TYPE_SMS_Priority)m_PriorityCombo.GetCurSel();
}
/////////////////////////////////////////////////////////////////////////////
//
// Function : LoadSmsToListCtrl
//
// Description : Function to load all SMS messages to list control
//
// Arguments : None
//
// Returns : None
© Christina Braz, 2003
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
//
// Comments :
//
/////////////////////////////////////////////////////////////////////////////
void CSMSSampleDlg::LoadSmsToListCtrl()
{
TCHAR szTempFrom[MAX_SMSI_TL_ADDRESS];
SWI_TYPE_SMS_Priority ePriority = SWI_SMS_PRIORITY_NORMAL;
TCHAR szTempTime[MAX_TIME_SIZE];
m_SmsInboxList.DeleteAllItems();
//fill the list with contents from file
//Note: SMS messages are not saved in the modem after they are retrieved from the modem
// so we save them to a file for future use
for(int i=0; i < m_File.iNumberOfEntries; i++)
{
//read one entry at a time
if(m_File.getInfo(i, szTempFrom, &ePriority, szTempTime))
{
//fill the List Box with the Entry information
m_SmsInboxList.InsertItem(i, szTempFrom);
switch(ePriority)
{
case SWI_SMS_PRIORITY_NORMAL:
m_SmsInboxList.SetItemText(i, 1, _T("Normal"));
break;
case SWI_SMS_PRIORITY_INTERACTIVE:
m_SmsInboxList.SetItemText(i, 1, _T("Interactive"));
break;
case SWI_SMS_PRIORITY_URGENT:
m_SmsInboxList.SetItemText(i, 1, _T("Urgent"));
break;
default:
m_SmsInboxList.SetItemText(i, 1, _T("Emergency"));
break;
}
m_SmsInboxList.SetItemText(i, 2, szTempTime);
}
}
}
/////////////////////////////////////////////////////////////////////////////
//
// Function : CleanUpEditBoxes
//
// Description : Helper function to reset edit boxes
//
// Arguments : None
//
// Returns : None
//
// Comments :
//
/////////////////////////////////////////////////////////////////////////////
void CSMSSampleDlg::CleanUpEditBoxes()
{
m_SmsInboxList.DeleteAllItems();
GetDlgItem(IDC_SENDSMSSTATUS)->SetWindowText(_T(""));
GetDlgItem(IDC_READSMSSTATUS)->SetWindowText(_T(""));
GetDlgItem(IDC_MESSAGEBODY)->SetWindowText(_T(""));
© Christina Braz, 2003
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
GetDlgItem(IDC_COMPOSEMSGBODY)->SetWindowText(_T(""));
GetDlgItem(IDC_SENDSMSTO)->SetWindowText(_T(""));
m_PriorityCombo.SetCurSel(0);
}
/////////////////////////////////////////////////////////////////////////////
//
// Function : OnEnd()
//
// Description : Handler function for END control button
//
// Arguments : None
//
// Returns : None
//
// Comments :
//
/////////////////////////////////////////////////////////////////////////////
void CSMSSampleDlg::OnEnd()
{
//delete all old SMS : CIRANO Auction
for(int i=0; i < m_File.iNumberOfEntries; i++)
{
m_File.deleteFromFile(i);
}
// if API is opened, clean up correctly, close, and exit
//if (m_bIsConnected)
{
// disable notifications
rCode = SwiStopNotify(SWI_NOTIFY_SmsStatus, DEFAULT_TIMEOUT);
rCode = SwiStopNotify(SWI_NOTIFY_SmsSendStatus, DEFAULT_TIMEOUT);
// close the API
rCode = SwiApiClose();
}
CDialog::OnOK();
}
/////////////////////////////////////////////////////////////////////////////
//
// Function : NotificationCallback
//
// Description : Callback that receives all event notifications
//
// Arguments : pNotify - notification variant
//
// Returns : None
//
// Comments :
//
/////////////////////////////////////////////////////////////////////////////
void NotificationCallback(SwiNotifyVariant *pNotify)
{
SWI_TYPE_Notify eNotify = pNotify->eNotify;
//assign values with the global variables
g_SmsStatus = pNotify->_SmsStatus;
g_SmsSendStatus = pNotify->_SmsSendStatus;
//post a message to the main window
AfxGetMainWnd()->PostMessage(WM_NOTIFICATION, eNotify, NULL);
}
/////////////////////////////////////////////////////////////////////////////
//
// Function : OnNotification
//
© Christina Braz, 2003
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
// Description : Handler for received notifications
//
// Arguments : wParam - holds the notification type
// lParam - holds the value
//
// Returns : None
//
// Comments :
//
/////////////////////////////////////////////////////////////////////////////
void CSMSSampleDlg::OnNotification(WPARAM wParam, LPARAM lParam)
{
switch(wParam)
{
case SWI_NOTIFY_SmsStatus:
GetDlgItem(IDC_NEWSMS_NOTIF)->EnableWindow(TRUE);
// Traiter reception message Auction
// call to a worker function
GetSms();
break;
case SWI_NOTIFY_SmsSendStatus:
if (SWI_SMS_ERRORCLASS_NoError == g_SmsSendStatus.eErrorClass)
{
GetDlgItem(IDC_COMPOSEMSGBODY)->SetWindowText(_T(""));
MessageBox(_T("Message envoye."), NULL, MB_OK);
//GetDlgItem(IDC_SENDSMSSTATUS)->SetWindowText(_T("Message envoye"));
}
else
{
MessageBox(_T("Erreur: Pas capable d'envoyer le message."), NULL, MB_OK);
GetDlgItem(IDC_SENDSMSSTATUS)->SetWindowText(_T("Erreur: Pas capable d'envoyer le
message."));
}
GetDlgItem(IDC_SENDSMS)->EnableWindow(TRUE);
break;
default:
break;
}
}
/////////////////////////////////////////////////////////////////////////////
//
// Function : OnClickSmsinboxlist
//
// Description : When the SMS listbox is clicked
//
// Arguments : not used
//
// Returns : None
//
// Comments : this will update the message box with which ever row is selected
//
/////////////////////////////////////////////////////////////////////////////
void CSMSSampleDlg::OnClickSmsinboxlist(NMHDR* pNMHDR, LRESULT* pResult)
{
TCHAR szMessage[MAX_BUFFER_SIZE];
POSITION iRow = m_SmsInboxList.GetFirstSelectedItemPosition();
if(!m_bIsConnected)
return;
© Christina Braz, 2003
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
//retrieve the Message from the Selected Row
if(m_File.getMessage((int)iRow - 1, szMessage))
GetDlgItem(IDC_MESSAGEBODY)->SetWindowText(szMessage);
*pResult = 0;
}
void CSMSSampleDlg::MyOnSendSms()
{
OnSendSms("");
}
void CSMSSampleDlg::OnSendTargetSms(CString message, TCHAR *szTo)
{
//MessageBox("Norramlement call of ");return ;
SWI_STRUCT_SMS_StoreSms sSms2;
BOOL bInterimEmailSolution = TRUE; // for now this one is always on
CString szMsgBody;
CString szAddress;
CString szTemp;
CString sTo = CString (szTo);
if (message == "")
{
GetDlgItem(IDC_COMPOSEMSGBODY)->GetWindowText(szMsgBody);
szMsgBody+=" Mise minimale: ";
CString s;
GetDlgItem(IDC_SENDSMSTO_BIDMIN)->GetWindowText(s);
szMsgBody+=s;
szMsgBody+=" Cloture:";
GetDlgItem(IDC_SENDSMSTO_CLOT)->GetWindowText(s);
szMsgBody+=s;
}
else
{
szMsgBody=message;
}
// TODO: Add your control notification handler code here
if (!szMsgBody.GetLength())
{
MessageBox("Pas capable d'envoyer un message vide!");
return;
}
//check for message length
if (BUFFER_SIZE < szMsgBody.GetLength())
{
MessageBox(_T("Message cannot exceed 200 bytes"), NULL, MB_OK);
return;
}
// initialize SMS header
InitSmsHeader(&sSms2.sSMSHeader);
// set TO address
© Christina Braz, 2003
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
for (I32 i = 0; i < sTo.GetLength(); i++)
{
sSms2.sSMSHeader.szAddress[i] = (U8)sTo.GetAt(i);
}
sSms2.sSMSHeader.addrLen = sTo.GetLength();
sSms2.sSMSHeader.addrDigitMode = 0;
sSms2.sSMSHeader.addrNumMode = 0;
sSms2.sSMSHeader.addrNumType = 0;
sSms2.sizeSMSBody = szMsgBody.GetLength();
sSms2.pMsgBody = (U8*)szMsgBody.GetBuffer(sSms2.sizeSMSBody);
// random MsgId in range 0-50 - these limits are arbitrary
sSms2.nSMSId = rand();
if (sSms2.nSMSId > 50)
{
sSms2.nSMSId = sSms2.nSMSId % 50;
}
// store the message to the modem
rCode = SwiStoreSMSMessage(&sSms2, DEFAULT_TIMEOUT);
if (SWI_RCODE_OK != rCode)
{
ProcessError(rCode);
return;
}
// send the message
rCode = SwiSendSMS(DEFAULT_TIMEOUT*20);
if (SWI_RCODE_OK != rCode)
{
ProcessError(rCode);
return;
}
GetDlgItem(IDC_SENDSMS)->EnableWindow(FALSE);
}
void CSMSSampleDlg::OnSendTargetTwoSms(CString message1, TCHAR *szTo1, CString
message2, TCHAR *szTo2)
{
CString sTo1 = CString (szTo1);
CString sTo2 = CString (szTo2);
SWI_STRUCT_SMS_StoreSms sSms;
BOOL bInterimEmailSolution = TRUE; // for now this one is always on
if (!message1.GetLength())
{
MessageBox("Pas capable d'envoyer un message vide!");
return;
}
//check for message lengt
if (BUFFER_SIZE < message1.GetLength())
{
© Christina Braz, 2003
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
MessageBox(_T("Message cannot exceed 200 bytes"), NULL, MB_OK);
return;
}
// initialize SMS header
InitSmsHeader(&sSms.sSMSHeader);
for (I32 i = 0; i < sTo1.GetLength(); i++)
{
sSms.sSMSHeader.szAddress[i] = (U8)sTo1.GetAt(i);
}
sSms.sSMSHeader.addrLen = sTo1.GetLength();
sSms.sSMSHeader.addrDigitMode = 0;
sSms.sSMSHeader.addrNumMode = 0;
sSms.sSMSHeader.addrNumType = 0;
sSms.sizeSMSBody = message1.GetLength();
sSms.pMsgBody = (U8*)message1.GetBuffer(sSms.sizeSMSBody);
// random MsgId in range 0-50 - these limits are arbitrary
sSms.nSMSId = rand();
if (sSms.nSMSId > 50)
{
sSms.nSMSId = sSms.nSMSId % 50;
}
// store the message to the modem
rCode = SwiStoreSMSMessage(&sSms, DEFAULT_TIMEOUT);
if (SWI_RCODE_OK != rCode)
{
ProcessError(rCode);
return;
}
///second message
SWI_STRUCT_SMS_StoreSms sSms2;
// initialize SMS header
InitSmsHeader(&sSms2.sSMSHeader);
// get TO address
if ( (!sTo2.GetLength()) && (!sTo1.GetLength()) )
{
MessageBox(_T("Les adresses sont vides!"), NULL, MB_OK);
return;
}
if (sTo2.GetLength())
{
// set destination address
for (I32 i = 0; i < sTo2.GetLength(); i++)
{
sSms2.sSMSHeader.szAddress[i] = (U8) sTo2.GetAt(i);
}
sSms2.sSMSHeader.addrLen = sTo2.GetLength();
sSms2.sSMSHeader.addrDigitMode = 0;
sSms2.sSMSHeader.addrNumMode = 0;
sSms2.sSMSHeader.addrNumType = 0;
sSms2.sizeSMSBody = message2.GetLength();
sSms2.pMsgBody = (U8*)message2.GetBuffer(sSms2.sizeSMSBody);
// random MsgId in range 0-50 - these limits are arbitrary
© Christina Braz, 2003
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
sSms2.nSMSId = rand();
if (sSms2.nSMSId > 50)
{
sSms2.nSMSId = sSms2.nSMSId % 50;
}
// store the message to the modem
rCode = SwiStoreSMSMessage(&sSms2, DEFAULT_TIMEOUT);
if (SWI_RCODE_OK != rCode)
{
ProcessError(rCode);
return;
}
}
// send the message
rCode = SwiSendSMS(DEFAULT_TIMEOUT);
if (SWI_RCODE_OK != rCode)
{
ProcessError(rCode);
return;
}
GetDlgItem(IDC_SENDSMS)->EnableWindow(FALSE);
}
© Christina Braz, 2003
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
F(/
+
/
© Christina Braz, 2003
+
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
.
&
!
%
&
,
"
!
"
$ $
$
&
•
$
1
6 -:$$
@ &
•
"
&
!
8
; $ 8 9:5
8 9:5
J
3
$
%
" $
!
8
6:$$
&
@ &
&
. &
@ &
2
:@.
$
&
$
.
=
&
$ & =1 $$
$ %
:@.
&
1
2
6=
6
$$
H
8
&
A8
` \
$
© Christina Braz, 2003
1
&
$$
$
$
=
313
=
&
6
=
&
$$
&
&
6
&
$$
6=
6:@.6 :@.
&
&
0
N %
$$
%
$ &
&
= 1 &
-$
:@.6
=
$
I :@.
$
% =
$$
;6
6
N
J
$
$ ;
$
$
:@. $
2&
2
6
&
$
$
:@. H $
&
$
:@.
/
,
&
m :@.0
. &
1
!
N
<
$
"
2
c
$
=
$
2
$ $
]
1)
=
$
$
$
2
:@. $
&
$
" 6
:@.
$
6
1
%
&
$
HHH \ /
8
;
$$
&
:@.6=$
;
-@
<
H \ 1 #
#H \
&
,,=
HHH
$
8
A8 1 HH \
= HH 0
$<JJ777
$
\
J0
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
8
. &
$$
G
-? :@.0
.
!
"
&
$$
=%
=
$
&
:@.
:@.
:$$
?
:@.
$
@ &
b
G
<
G
DATA CENTER
OPÉRATEUR DE
COMMUNICATIONS
(Infrastructure
matérielle)
(Internet ou
Réseaux privés)
Vendeurs de
technologie
ISP, LEC,
Wireless
ASPs
Éditeur
de logiciel
Intégrateur
de systèmes
Fournisseur de
valeur ajoutée
Développer les
logiciels
Licences
d’utilisation
Services des
applications
mobiles
CLIENTS
MOBILES
Clients
Fourniture des
services aux
clients mobiles.
(Marchand : Place des
Arts, Vitrine
culturelle, etc.)
W
G
.
:
=
I :@. - A 8
0 O $
$
=
VAR/SI
UTILISATEUR
FINAL
UTILISATEUR
FINAL
Value-added resellers (VARs)
System integrators (SIs)
(Intégration de systèmes)
;
$$
@
@
ISP, LEC,
Wireless
< -8
@;
=
= HH 0
1
0 /
=
&
B
&
$$
?
!
" %
$ =
=$
&
@! @
$
&
WA /E9 A/
8
48/
% &
:@. 2
J
&
2
2
=
$
A: : 8/5 /9
82
% %
0=
© Christina Braz, 2003
%
&
2$$
&
= $
"
8
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
$$
$
=
=2&
$
$
=
&
.W9: /E9 A/ 8 ! ! E5 8:
$
$
%
0=:A@
95 @ -9
5
$
&
$$
$; %
J
=
$$
5@
$ &
5
$
1)
% 1
$
$
$
@ &
$
$&
1&
)
$
$
G E95 @@/E9 A/ >: /E9 :Q E W/
8
&
$
:
&
$ N
$ &
7
=
%
=$
&
7
&
$ =&
)
&
&
-$
&
$
&
&
&0
@ &
=$
A
8
%
&
&
-: &
&
0
G E95 @@/E9 A/ @/9> 8/@ :.. 8: G@ -:@. 3 :$$
8
:@.
E
. &
0
=
2
8 /5
8
$
1
%
-
&
0
$
© Christina Braz, 2003
:@.=$
$ =.
&
&
%
$
:
&
>
=% $
&
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
A
$
&
5
$
:@.
$$
&
&
1
$
&
$
&
$
3
:@.
%
$
2
; $
8 $
% $
:@. $
%
N
$ ; $
<
<!
MODELES DE TARIFICATION
A
- $
&
ELEMENTS DE LA TARIFICATION
•
2&
G
&
&
0$
J
PUBLIQUE CIBLE
$
$
n
=
om
I
4
$
&
$
$
•
$
$
G
=
% =
$
•
G
A
&
2&
-
$
0
)
$
8 $
.! / &
=
$
*
A
&
•
A
&
2&
m
$
0
)
$
A
$
$$
?
&
%
++
@
&
$
© Christina Braz, 2003
$
:@. 8 $
<8
$
$ &
:
; = HHH
3
%
%
$
1
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
)
$
$ =
&
$
.
5
E
= $$
=
%
$
$
:
$
= %
=
&
$
$
$ &
%
$
$
$ $
$
$ & $ $
$
= $
$
%
$ ;
1
]
.
%
& $$
%
$
8 9:5
3
$
N
$
%
$
=2 $
=
=1
&
$
&
$
$
$
!
$
"
&
&
!
$
<
"
!
<
=;
&
© Christina Braz, 2003
1
$
.
5
$
$
$
&
!
$
% $
=
$
" =
$
>
"
$
!
$
&
$
" =
$
/
%
=
&
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
!
$
!
$
$
" - !0
$; 8
1
$
$
&
8
"
%
L
$
<
; $
=
B
&
$ $
&
/
= $
$
%
1
%
8
%
<
•
&
%
$
$
$
•
:
$
&
$
=
&
$
%
&
!
1)
$
%
)1
8
$
•
$
% =
&
$
- $
0< :
" $
1
&
&
!
" %
=
$
=
$
%
$
$
&
1)
1
-$
0
•
G
•
•
•
!
&
-A =?
8A39 ! G
6
$
$$
•
E
&
%2
]
!
7 =!
•
•
:
] 2
$
< @ $$
=
© Christina Braz, 2003
$
2
:
<$ N
- $
6 - $
&
0
0 %
1)
1
&
& %
$ &
8A 9 ! 0=
$
%
1 2
1 2
2
%
B
0
=%
=$
$; % -
<G
3$
@ 0
&
%
$
&
] 2
$
&
1
&
&
$
1
=$ %
% &
& 1
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
&
$
>
$
!
!
" - >! 0
8 $
$
;
8
"
&
1
$
B $
$
1
<
•
8
@ &
#
.
&
•
8
%
8
&
$
&
&
<
•
•
•
E &
E
:
1)
!
&
•
$
- H\ $
=% %
&
<:
" $
!
" %
&
<G
•
-A =?
•
E
7 =!
$
•
3$
0
@
!
1)
B
4
$
=
&
)1
:
N
&
%
%
<
4
& =
$
$
$$
$
•
$
1)
$
$$
6
$$
$
0
$
<$
=&
G
$$
6 - $
0 %
$
1
$
-$
0
:
&
%2
] 2
$
]
© Christina Braz, 2003
$
2
1 2
1)
1
=$
1 2
&
& %
$ &
$
] 2
$
&
1
&
&
$
1
=$ %
2
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
!
$
/
=
-$ %
%
8
!
%
1N
$
"
"
- /! 0
%
$
0
<
•
:
%
$
1
$ = 8A39 ! $
&
$
-G
•
E
=
$
b
0
0
; $
-
%
%
0
$
=
$
8
%
<
•
:
1)
&
" $
!
!
&
•
•
&
-A =?
•
•
=%
- $
4
$$
$
&
•
G
<:
$
$
" %
<$
3$
@ 0
7 =!
E
!
#
N
<G
<$
%
0<
% 4
•
&
)1
1)
6
$$
$
$
=
B
:
N
&
&
$
$
$$
6 - $
0 %
$
1
=
1 )
$
=
$
-$
0
!
#
< @ $$
=
$; % -
:
&
%2
] 2
$
]
© Christina Braz, 2003
%
$
2
8A 9 ! 0=
%
&
% &
1 2
1)
1
=$
1 2
&
& %
$ &
$
] 2
$
&
1
&
&
& 1
$
1
=$ %
2
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
=(/
5
/
© Christina Braz, 2003
+
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
9
G
. $
>.
;$
;$
A
$
&
@
.
:
$
3.
@! @
8
1
A
A
5
5
5
G
>.
5 A /58Mk9/ G 9G:
@
:
>.
3+
'
&
> .$
9:
:;
+ <:
==
>,
a
$
0
<
>
@$
.
9
5
<
9
@
! K: & K.
! K: & K.
K
@/
K>
9
.
HHV
<
: )
+:8R? :9A
/&
9
9 "
(
.
' H, HH
' H, HH
9
:
.
.
.
HH
!
7/
<,
;::?
@ A 9B 9CD2
*
A
H< '
5
+ I=W% $ ./!
5@ :58 :
'
JM
H,JH,J HH
4
$
8
A
-
G> .HH
@ &
&
.
@! @<
;
% =
& <8
.
;
© Christina Braz, 2003
V
@
.
*
K.
KA
KA
&
& $
@! @
=
$
$
$ &
$
3 N
$
=
2
= $
$;
=
$ &
1 H\
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
.
9
/
8
/
A
Z
K
Z #H
-8! 0
)
&
0@
&
@! @
<
8!
&
E"
=
+
,
Z #H
ZH < # H
K
K9
!
A
8
9
K
0@
-@! @
E
0
06
8!
$
%
06
E
<
"
6=
4 . E FCGC8 1
"
I 4/9J ;:D2
) *
9GC'
*
2A FH<*<99<
0@
D
1
8! $
. 8
0@
1
0@
;H:?
<
"
A ;H:?
8!
K6
))
$
<
6 = I/)
8!
E
&
1
%
K6
0@
46 =
8!
K
,
H
© Christina Braz, 2003
;
-7 "
)
=
<
6
E
$
.
#H
0<
<
I/
- #
E
0 M
</
H -7 " ; 0
0
$
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
E
$
1 )
/
0
3
=
%
-$
)
OnClosePhase()
$
A
$
$ $
-$
0
8
!
!
@$
!
9&
8
:
>
.
P
.
$
0
$
)
- $
0
:
:
1
1
M
.& - $
:
<
$ N
0
.
:- $
!
&
.
!
.
.
:
9&
$
$
.
H
@
$
H
H#
#
H
#
$
$
ordre
!
$$ 1
$
$
-
$
.
V H
.
H
H#
#
H
#
:
#
$
N
&
=
$
$
-
0
)
&;
<
1N
© Christina Braz, 2003
$
$ <E
$
:
.
.
:
$
$
0
#
8
=
onClosePhase
$
9
A
0
)
% +A
)
5
@! @ 1 N
$
$
onClosePhase()
$$ =
&
;
$
$
8
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
A
3333 /
> . 33333
Q
.
$ H
H
:
H
II
a
a $
"
HHV
8L < '
333 /
!
2
33333 /
#/
> . 33333
33333 /
h>
$ h:
I
2&
2&
h
A
33333 /
> . 33333
>
&I
h*#(# Q
$ HV
>
) % 1 , H/
@
?
3.
(# 9 @ 38
<* 3
/
>
> . 33333
=&
& I )1
h
33333 /
A
$
&
> . 33333
=&
&I
33333 /
A
=
)1
> . 33333
h
h
> . 33333
Q
<
$
HV
G
© Christina Braz, 2003
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
9
A!
. $
A
H< '
HH
5
+ I=W% $ ./!
A
!
7A
5@ :58 :
$
5A
!
.
:
6A
$
-A! 06 $
!
<;
+ <,
A 9B 9CD2
@
;$
5
5
&
@$
.
5
.
&
$
$
.
/
.
:;F
9::?
@! @
<
8
A
K
Z #H
Z '< # #
K
5
<
9
@
! K: & K.
! K: & K.
K
9
@/
K>
(
)
&
0@
-8! 0
&
@! @
<
- 0 8!
$
<
1 ,
6 E ;C;B
L
"
I 4/9J ;:D2
) *
9GC'
*
2A FH<*<99<
$
@! @ < .
=$
&
&
=
=
6.
@! @6=
;
$ &
&
@! @
-7 " ; 0 `/
-7 "
$
#
.
&
© Christina Braz, 2003
<8
9::?
&
$
$
$ &
% =
#H
;
'
<
9
9
.
:
GG9/ A/ @/9> 8/ 6A/95 /9 ! 5E /6
L
9
JM
H,JH,J HH
4
$
8
A
-
A! HH
$
3 N
$
=
- #
=
2
0 M
$;
$
< /
H
0
$
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
5
$
< # 'A
a>
0@
+
HHV-8
; $
K
$
a5
0
$
,
<
E
E
$
1 )
/
0
3
=
%
-$
OnClosePhase()
*
!
@$
M
$
-$
A
)
0
+
5
.& - $
:
<
)
$ N
1
1
$
0
A
$ $
8
:
>
.
P
8
:
:
$
)
$
0
=
% +A
)
onClosePhase
$
A
.
:- $
V HH $
%
= = $
A
$ <
+
0
$
!
9
$
$
$
=
*
:
&
.
.
.
$
.
8
@
:
HH
:
#
5
1N
(
*
8
@! @ A
$
3
$
(<H <H#
(<H <H
(< H<H,
(< <
(< < *
.
$
.
8
:
#
)
&;
!
$$ 1
<
1N
© Christina Braz, 2003
$
onClosePhase()
$$ =
&
;
$
$
8
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
A
333 >
8
A
+
.
:
*$
$
HHV
8L < < #$ /
33+
A
!
33
333
H
33+
A
A
$
& h# 'A
+
HHV
>
) % 1 , H/
@
?
3.
(# 9 @ 38
* 3
A
!
33
=
h
G
© Christina Braz, 2003
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
<(/D7#7 D
7*0"!)!90D7)D77D"-! D7 % !/D7
/D -%/D
© Christina Braz, 2003
D @$%/%A!90D
% ! ! CD
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
.
%
&
:$
$
%
&
$
$$
8
-:$$
$ ; $
8
&
$
•
•
A
A
:@. &
$
@ :
&
& =
$
& $
5
3
&
&
&
<E
@ &
. &
$
3$
3 :@.0
$
%
&
>.
$
&
& :
-:@.0
& !
0
& 2 @ &
%
2
@ : &
L
L
1 N
% <
1
@ &
%
%
$
$
$
-@ :0 %
&
%
-@ ! 0 %
%
$
$
1
&
1
$
$
<A
%
3
$
4
2 $
%
& %
=
$
A
6@ &
&
6
6
68
$
© Christina Braz, 2003
;
>.
$
6@! @6 -@
1
6
!
6
$
&
1
$
$$
4@!
@ & 0
-10
$
$
1
-
0
1
$
&
$
$
4@!
J
&
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
G
:@.
$$
%
$
G
•
•
•
-:@.0
$
$$
6./! 3. )
&
:@.
$ $
$
&
@ &
@ &
&
;
$
%
$
6
= ]=
%
6
6
$
$=
6 :@.
% :@.
$
1
&
$
=
$
$
$ &
.
&; $
$
•
:@.
&
@! @ $
2
;
=
$
&
$
L
$
O
=
:@.
@! @
%
%
%
N
B $
=
$
=
$
$
N
$
%
:@.
$
@ &
%
&
•
6
@! @ %
%
2
;
=
$
%
%
$
%
=
% %
$
%
:@.
@ &
$
:@.
2
%
& $
%
@ &
:@.
2$
$
%
8
$ & $
&
>.
$ & $
&
$
1
= N
$
%
=
2
;
=
&
=
% =
=
;
2
$$
=
2
$ % =
$
&
:@. .
&
$
%
$
$
$
2
<
5
-0 @
$
8
- 0.
-
© Christina Braz, 2003
:@.
&
=
)
&
L
@! @0 $
6/
6
> .=
8
$
69
$
$
&
& 6
$
E
$
$
&
1
$
&
&
&
%
;
$
:@.
$
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
- 0 .
$
0$
&
$
$
$
&
$
%
-6
E
$
•
$
:@.
$
:@.
8 $
3@
$
$
%
:@.
;
&
3@
$
© Christina Braz, 2003
L
$
&
I$
&
:@.
:@. $
%
$
&
%
@! @0 $
$
*
- $
@ &
$
$
)
$
7%
]1
&
$
&
%
%
:@.
1
&
$ L $
;
$
$
3 3 3$
2
=4
/
=
$
%
:@.
$
& $ )%
%
$
&
,
-
$
0
7
•
&
$
;
$
L
&
=
$
= :@.
$
,
60
=
$
@! @
=$ & %
@
$
B
=
=
&
)
I
1
&
=
1
I
<
30-oct.-03
=
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
8
•
:&
&
:@.=
&
%
%
&
1
%
6)
%
•
b%
$
@ &
b
$
O
@! @
%
$
N
B $
•
$
•
$ N
$
$
$
$
$ N
$ &
& $
© Christina Braz, 2003
$
%
:@.
$
$
N $ &
.
&; $
:@. $
$
&
;
$
$
@! @ $
$
@! @ $
=
:@.
&
$
:@.
&
N
$
@ &
N
L
@! @
6@ : 6
6=
=
•
@ &
$
2
;
$
&
=
%
$
:@. 1
$
&
=
%
$
$
%
6: A/6
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
( +
$
+ "U
= HH 3
"
>> B:3 !
+
=Q
3G
$ @;
!
)"
B = HH m M
;
8 $
:@.5 7
$<JJ777
= HH 3
:@. < 5
I8
$<JJ777
I
M
-:@.0= HH
J
J J
J
)
3$ $
1
D
K $K
&
3!
.
K$
=:@.5 7
@ ?
JH=
=H
K(# ( K =
HH
:@. @
= ;4
6
J $K $
[.
=.
;3 M.
<:m 8
Om ?
>> B:
= HH 3 +
+
=8
/3@ &
+
)"
= HH m : &
J
$
N2 D
6
,
HH =2 <: 6
$ 7
J $ HJ
:@.
$<JJ777
0M
<A 1
6
-8 9:5 0 3 .
= HH m
:$$
@ & . &
$<JJ777
3
;
+
+
?
>> B:
.
J
&
= HH 3 +
+
A
J $K
m?
%
) +
3 M. 3 HH 3,H
.$ =
=8
J@ &=: &J@
"
=4
= ,,' 3 D
8 ! ? " . $ ,'3? .3 H , 3 G
8
;[ !
: M @
+
E & ; 8
=+ " ;+ " ;=8: , ( H
=Q
3G
$<JJ)
B -$
% =8 9:5
$
J "
J K
=
=8 9:5 0 [ 9
=Q %
=M/80= HH 3 +
'
J:
9
A
$
-& 3$
*,
4
$
+
HH = L
,
$<JJ777
J + M $JM $J MY Z@j
W
4
$<JJ$
8
= HH 3 A 2
:@.
3 3
HH =+
$<JJ777
© Christina Braz, 2003
J
J
A 2
& JH#H H J
2$
; J & J5 J $J
K ;!
H
$
&
N @
! "
:
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
8
8
@;
=
HH 3 +
$<JJ777
J7 $J$
8
$<JJ
8
@
$<JJ777
HH 3 @! @ .
J
6M
+
4
m
3+
6
J $ K
@ $
,
m8
HHH +
?
@
[!
@
+!
HH =.
$<JJ7773
$
M ;:
=
$<JJ777 "
6
J $J
. 1
!+
#=A 7 @
K
?
!+
#
,
O*
%
J
J
@
= HH
M!
;
J
/
$<JJ777
6
;J
$= HH
?
$<JJ
.
6
>> %
3 > )&
+
J
/
2
G
:J:B!
$<JJ777
8
J
$<JJ777
!
J $J7
)
J $J
J $J
HH =D
7
/
A(
m -6
$<JJ $$
$<JJ $$
!
:
J J J
HH =8
A 7
$<JJ
6
HH =8 >> P
86P
J7 $ $ J H '* H' ##*, $
&
8
$
$$
8
$
&
J
: &
J 7 J
= HH 3 +
&
J J
. $ : &
;J$ $
&
7
/ $
J
"
HH =14
=G
Om 8
A
"
<@
J
J
I
=/
!
I
!
J
M
(Jj $
;
"
I
J & H
- G8 ! 0= HH 3
"
: = HH
$<JJ777 $ %
© Christina Braz, 2003
:J: #@ &
J J "
+
"
J
6
J
I
I
/6
I
J
:J::K:J:9K
(J $
"
,
30-oct.-03
MOBITICKET: UNE APPLICATION MOBILE DE VENTES AUX ENCHÈRES DE BILLETS DE SPECTACLES
.
@ 7
@ 7
8 $
$<JJ777 $
@
?
$ <JJ777
8 $ HH 3 2 +
J$
= HH =
7
@;
HH =
$<JJ777 ;
>
.
=Q
$<JJ777
$
$<JJ
7
= HH 3 '.
I
IJ
© Christina Braz, 2003
*
;Q :
J $ J
J
$K.
[ 8 3G
&J
=.
$
,
J
1
J
J J
8 $
J7 K
8 $ ;= HH 3 +
$<JJ777
J$
U
J $$
J
J HH 3 G '*H < 4
& $$
0=! b
Jp '*H J
> @E:
@
$<JJ777 &
F
(
= HH
K $ H
6
J .A G
)
70
$
J
%
$
J8 $
-8 $
!
% =E &
J $
$
3
6
6
!+
Y:@.
6
#3 .
p
m
=M &
!
=
HH
#m
@ &
,
!+
I
#3 8
K
30-oct.-03