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