PK ï›8 META-INF/þÊPK î›8œêjjMETA-INF/MANIFEST.MFManifest-Version: 1.0 Ant-Version: Apache Ant 1.7.0 Created-By: 1.5.0_12-b04 (Sun Microsystems Inc.) PK î›8WEB-INF/PK î›8WEB-INF/classes/PK î›8WEB-INF/classes/META-INF/PK î›8WEB-INF/classes/org/PK î›8WEB-INF/classes/org/jvnet/PK î›8$WEB-INF/classes/org/jvnet/glassfish/PK î›8,WEB-INF/classes/org/jvnet/glassfish/samples/PK î›85WEB-INF/classes/org/jvnet/glassfish/samples/imserver/PK î›8 WEB-INF/wsdl/PK î›8EòÓHss(WEB-INF/classes/META-INF/persistence.xml PK î›8^¶ÊØÙ)Ù)DWEB-INF/classes/org/jvnet/glassfish/samples/imserver/$IMServer.classÊþº¾1· wÎ ÏÐÑ ÎÒ Ó Ô Õ Ö× vØ ÙÚ ÛÜ ÙÝÞ ßàáâ vã Oä uå Oæ Ùç Oè éê vë vìí vî vïð Oñ òóôõ Oö Ù÷ vø ùú ûüý Ûþÿ Û Ù  Õ u u  6 v ù ù Ù ÙÜ v v v ò O Ù !"#$ OÎ O% O& O' é()* Ù+, XÎ X- X. X/ O01 Ï23456 O789: O; <= Ù> X? X+ X@ ÙABC OD EF GH GIJKLsfLjavax/servlet/sip/SipFactory;RuntimeVisibleAnnotationsLjavax/annotation/Resource; classNameLjava/lang/String; ConstantValueM()VCodeLineNumberTableLocalVariableTablethis0Lorg/jvnet/glassfish/samples/imserver/$IMServer; doRegister((Ljavax/servlet/sip/SipServletRequest;)Vrequest%Ljavax/servlet/sip/SipServletRequest;resp&Ljavax/servlet/sip/SipServletResponse; ExceptionsNO doSubscribefriendIDperson-Lorg/jvnet/glassfish/samples/imserver/Person;doNotify doMessageproxyLjavax/servlet/sip/Proxy;top doResponse)(Ljavax/servlet/sip/SipServletResponse;)VresponsegetFromA(Ljavax/servlet/sip/SipServletRequest;)Ljavax/servlet/sip/SipURI;addrLjavax/servlet/sip/Address;fromLjavax/servlet/sip/SipURI; stringURIexLjava/lang/Exception;subscribeForPresenceEventssReq sourceAddressprocessRegistration isRegisterZ((Ljavax/servlet/sip/SipServletRequest;)Zexpires expiresValI findPersonT(Ljavax/servlet/sip/SipServletRequest;)Lorg/jvnet/glassfish/samples/imserver/Person;sipURIpersonIdgetSourceAddresscreateAndAddPersonToDBupdatePersonDetailsU(Lorg/jvnet/glassfish/samples/imserver/Person;Ljavax/servlet/sip/SipServletRequest;)VstorePresenceInformationsubscriptionState contentTypecontentLjava/lang/Object;presenceInformation:Lorg/jvnet/glassfish/samples/imserver/PresenceInformation;event presenceEventsendPresenceInformation](Lorg/jvnet/glassfish/samples/imserver/Person;Lorg/jvnet/glassfish/samples/imserver/Person;)VsessLjavax/servlet/sip/SipSession; notifyReq#sendPresenceInformationToAllFriends0(Lorg/jvnet/glassfish/samples/imserver/Person;)Vfriendi$Ljava/util/Iterator; SourceFile$IMServer.java)Ljavax/servlet/sip/annotation/SipServlet; €P QRjava/lang/StringBuilder/$IMServer :: doRegister, incoming request = ST SU VWX YZ ©ˆ[ \]^ _ `ajavax/servlet/sip/SipURI bW&$IMServer :: doSubscribe for friend : , incoming request =  °± cW de fZ gh ijk lm Á ¦ˆ,$IMServer :: doNotify, incoming request = ¸± ÆÇ-$IMServer :: doMessage, incoming request = nqr st personID = +, proxying request to presentLocationURI = uW vw xyx yz{ |}/$IMServer :: doResponse, incoming response = ~WNOTIFY WOK'Received OK response for NOTIFY requestFrom €‚ ƒa„; …† ‡ˆjava/lang/Exception ‰ ´ž Š‹ SUBSCRIBE ŒEventpresence ŽExpires3600H$IMServer :: subscribeForPresenceEvents, outgoing SUBSCRIBE request = $Unable to send SUBSCRIBE request to ª¬ µ±Added new Person to DB : ¶·"Updated status of existing person Unregistering person : t ‘’ “”• –†Contact+org/jvnet/glassfish/samples/imserver/Person —Z ˜Z ™Z šÇSubscription-State Content-Type ›œ8org/jvnet/glassfish/samples/imserver/PresenceInformation Z žZ Ÿ  ¡¢-Successfully stored presence information for £Rf$IMServer :: SipServletRequest contains the presence information, but unable to retrieve and store it.X$IMServer :: storePresenceInformation : There is no presence information in the request.OUnable to NOTIFY friend because either one of the following is null :: from =  to = ¤¥0$IMServer :: sendPresenceInformation() : from = , to = , presenceInformation = ¦§¨ Œ© ª «W ¬W Ÿ­Vchatserver.RegistrationServer :: sendPresenceInformation : sending notify request = *Unable to NOTIFY friends because person = ®¯° ±²³ ´µ ¶œjava/lang/String.org/jvnet/glassfish/samples/imserver/$IMServerjavax/servlet/sip/SipServlet $IMServerjavax/servlet/ServletExceptionjava/io/IOExceptionjava/lang/SystemoutLjava/io/PrintStream;append-(Ljava/lang/String;)Ljava/lang/StringBuilder;-(Ljava/lang/Object;)Ljava/lang/StringBuilder;toString()Ljava/lang/String;java/io/PrintStreamprintln(Ljava/lang/String;)V#javax/servlet/sip/SipServletRequestcreateResponse)(I)Ljavax/servlet/sip/SipServletResponse;$javax/servlet/sip/SipServletResponsesend getRequestURI()Ljavax/servlet/sip/URI;getUsergetIdequals(Ljava/lang/Object;)Z addFriendID getSession ()Ljavax/servlet/sip/SipSession;setSubscriptionSession3(Ljava/lang/String;Ljavax/servlet/sip/SipSession;)V-org/jvnet/glassfish/samples/imserver/PersonDBfindPersonByIdA(Ljava/lang/String;)Lorg/jvnet/glassfish/samples/imserver/Person; getStatusStatus InnerClasses6()Lorg/jvnet/glassfish/samples/imserver/Person$Status;2org/jvnet/glassfish/samples/imserver/Person$StatusONLINE4Lorg/jvnet/glassfish/samples/imserver/Person$Status;getPresentLocationURIgetProxy()Ljavax/servlet/sip/Proxy;javax/servlet/sip/SipFactory createURI+(Ljava/lang/String;)Ljavax/servlet/sip/URI;javax/servlet/sip/ProxyproxyTo(Ljavax/servlet/sip/URI;)V getMethodgetReasonPhrasegetAddressHeader/(Ljava/lang/String;)Ljavax/servlet/sip/Address;javax/servlet/sip/AddressgetURIjava/lang/ObjectindexOf(Ljava/lang/String;)I substring(II)Ljava/lang/String;printStackTracecreateApplicationSession+()Ljavax/servlet/sip/SipApplicationSession; createRequest(Ljavax/servlet/sip/SipApplicationSession;Ljava/lang/String;Ljavax/servlet/sip/URI;Ljavax/servlet/sip/URI;)Ljavax/servlet/sip/SipServletRequest; addHeader'(Ljava/lang/String;Ljava/lang/String;)VOFFLINE setStatus7(Lorg/jvnet/glassfish/samples/imserver/Person$Status;)V getHeader&(Ljava/lang/String;)Ljava/lang/String;java/lang/IntegerparseIntsetIdsetNamesetPresentLocationURI addPerson getContent()Ljava/lang/Object;setSubscriptionStatesetContentType setContent(Ljava/lang/Object;)VsetPresenceInformation=(Lorg/jvnet/glassfish/samples/imserver/PresenceInformation;)VerrgetPresenceInformation<()Lorg/jvnet/glassfish/samples/imserver/PresenceInformation;getSubscriptionSession2(Ljava/lang/String;)Ljavax/servlet/sip/SipSession;javax/servlet/sip/SipSession9(Ljava/lang/String;)Ljavax/servlet/sip/SipServletRequest; setHeadergetSubscriptionStategetContentType'(Ljava/lang/Object;Ljava/lang/String;)V getFriendIDs()Ljava/util/List;java/util/Listiterator()Ljava/util/Iterator;java/util/IteratorhasNext()Znext!vwxyz{|}~€‚/*·±ƒ/„ …†‡ˆ‚}/²»Y·¶+¶¶¶ *+· +ȹ M,¹ ±ƒ=DI(K.M„ /…†/‰Š(‹ŒŽˆ‚ö|+¹ À¹M²»Y·¶,¶¶+¶¶¶¶ *+·N-Æ-¶,¶š-,¶-,+¹¶+ȹ :¹ *,¸-·*+·±ƒ. XZ6a<cKfPh[nfpmvv{{}„4|…†|‰Šm‘}<@’“f‹ŒŽ”ˆ‚–:²»Y·¶+¶¶¶¶ *+·M+ȹ N-¹ *,·±ƒ†Œ$‘.“4™9š„*:…†:‰Š$’“. ‹ŒŽ•ˆ‚B¬²»Y·¶+¶¶¶¶ +¹ À¹M,¸N-Æf-¶ ²!¦\²»Y·"¶-¶¶#¶-¶$¶¶¶ +¹%:*´&-¶$¹'¹(+ȹ :¹ §+”¹ :¹ ±ƒ6 ¥¨-©2«@­h±p²„·¹–»™¿¤Á«Ã„Hp&–—‹Œ¤‹Œ¬…†¬‰Š-˜}2z™“Žš›‚‡C²»Y·)¶+¶¶¶¶ +¹*+¶™+¹,-¶™ ².¶ ±ƒËÍ,Î:ÏBÒ„C…†CœŒŽž‚ÕM+/¹0M,¹1ÀN-¶2:3¶4Ÿ#3¶4d¶5:*´&¹'ÀN-°M,¶7°EF6ƒ* Ö ×ØÙ$Ú5ÛDÝFÞGßKà„> =Ÿ 3¡¢-£}G¤¥M…†M‰Š¦ˆ‚þ|*+·8M*´&*´&¹9:+¹ ,¹;N-<=¹>-?@¹>²»Y·A¶-¶¶¶¶ -¹B§!N²»Y·C¶,¶¶¶ -¶7±Z]6ƒ. èê"ð,ñ6òTôZù]õ^öwø{ú„4"8§Š^¤¥|…†|‰Šv¨¢©ˆ‚ñ}*+·M*+·D>™K,Ç%*+·EM²»Y·F¶,¶¶¶ §I*,+·G²»Y·H¶,¶¶¶ §'²»Y·I¶,¶¶¶ ,Æ ,²J¶K±ƒ2  6 < X qu|„*}…†}‰Šw’“ qª«ª¬‚p +?¹LM,Æ ,¸M§>š§¬ƒ „* …† ‰Š ­} ®¯°±‚™*+·8M,¹N-¸:°M,¶7°6ƒ$% &'()*„>²¢ ³}’“¤¥…†‰Š´ž‚Š+N¹0M,¹1ÀN-°M,¶7°6ƒ0 12345„4 Ÿ ²¢¤¥…†‰Šµ±‚™5»OY·PM*+·8N,-¹¶Q,,¶¶R,-¶2¶S,²!¶K,¸T,°ƒ"=>?@ A(B/C3D„*5…†5‰Š-’“'¨¢¶·‚j*,·8N+-¶2¶S+²!¶K±ƒLMNO„*…†’“‰Š¨¢¸±‚y ¡+<¹LM,Æ,=¶4Ÿ§>™y+U¹L:+V¹L:+¹W:»XY·Y:¶Z¶[¶\*+·:¶]²»Y·^¶¶¶¶ °:²_`¶ ¶7°²_a¶ °!…†6ƒR] ^a!f+g5h=mFoMpTq[vbwixƒz†{ˆ|•€—„Ÿ‡„f +[¹}5Qº}=I»¼F@½¾b$’“ˆ¤¥¡…†¡‰Š ˜¿}„À«Á‚„Ö+Æ,Ç&²_»Y·b¶+¶c¶,¶¶¶ ±+¶dN²»Y·e¶+¶f¶,¶g¶-¶¶¶ -Æy,¶ ²!¦o,+¶¶h:+¹i:<=¹jU-¶k¹j-¶l-¶m¹n²»Y·o¶¶¶¶¶ ¹B§ :¶7±iËÎ6ƒFŽ*’+—0™[œiŸs ~¡‰¢–¤¥§ÄªË­Î«Ð¬Õ¯„HsXÃÄ~MŊФ¥Ö…†Ö¡“Ö˜“0¦½¾ÆÇ‚ºL+Dz_»Y·p¶+¶¶¶ ±+¶q¹rM,¹s™,¹tÀuN-¸:*+·§ÿృ"¶·¹¿;ÀAÁHÂKÄ4AÈ“; ‘}(#ÉÊL…†L’“ËÌzÍp òOo@PK î›8ª,¦¼¼HWEB-INF/classes/org/jvnet/glassfish/samples/imserver/Person$Status.classÊþº¾15 & '(* + , - . /0OFFLINEStatus InnerClasses4Lorg/jvnet/glassfish/samples/imserver/Person$Status;ONLINE$VALUES5[Lorg/jvnet/glassfish/samples/imserver/Person$Status;values7()[Lorg/jvnet/glassfish/samples/imserver/Person$Status;CodeLineNumberTablevalueOfH(Ljava/lang/String;)Lorg/jvnet/glassfish/samples/imserver/Person$Status;LocalVariableTablenameLjava/lang/String;(Ljava/lang/String;I)Vthis Signature()VFLjava/lang/Enum; SourceFile Person.java  1232org/jvnet/glassfish/samples/imserver/Person$Status 4    java/lang/Enumclone()Ljava/lang/Object;+org/jvnet/glassfish/samples/imserver/Person5(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;@0 @ @" ²¶À°› 5 *¸À°›  1*+·±›  !"!N.»Y·³ »Y ·³ ½Y² SY² S³± ž› #$% )@PK î›8ŒùóAWEB-INF/classes/org/jvnet/glassfish/samples/imserver/Person.classÊþº¾1 j kl j m no p qrs qtu jv wx y z {| j }~ } € ‚ƒ„…Status InnerClassesserialVersionUIDJ ConstantValueidLjava/lang/String;RuntimeVisibleAnnotationsLjavax/persistence/Id;name friendIDsLjava/util/List; Signature$Ljava/util/List;status4Lorg/jvnet/glassfish/samples/imserver/Person$Status;presentLocationURIpresenceInformation:Lorg/jvnet/glassfish/samples/imserver/PresenceInformation;subscriptionSessionsLjava/util/HashMap;ELjava/util/HashMap;()VCodeLineNumberTableLocalVariableTablethis-Lorg/jvnet/glassfish/samples/imserver/Person;setSubscriptionSession3(Ljava/lang/String;Ljavax/servlet/sip/SipSession;)VfriendIDsessionLjavax/servlet/sip/SipSession;getSubscriptionSession2(Ljava/lang/String;)Ljavax/servlet/sip/SipSession;setId(Ljava/lang/String;)VgetId()Ljava/lang/String;hashCode()IhashIequals(Ljava/lang/Object;)ZobjectLjava/lang/Object;othertoStringgetNamesetName getFriendIDs()Ljava/util/List;&()Ljava/util/List; setFriendIDs(Ljava/util/List;)VLocalVariableTypeTable'(Ljava/util/List;)V addFriendIDremoveFriendID getStatus6()Lorg/jvnet/glassfish/samples/imserver/Person$Status; setStatus7(Lorg/jvnet/glassfish/samples/imserver/Person$Status;)VgetPresentLocationURIsetPresentLocationURIgetPresenceInformation<()Lorg/jvnet/glassfish/samples/imserver/PresenceInformation;setPresenceInformation=(Lorg/jvnet/glassfish/samples/imserver/PresenceInformation;)V SourceFile Person.javaLjavax/persistence/Entity; 67 34java/util/HashMap †‡ ˆ‰javax/servlet/sip/SipSession %&Š HI+org/jvnet/glassfish/samples/imserver/Person LMjava/lang/StringBuilder1org.jvnet.glassfish.samples.chatserver.Person[id= ‹Œ] QG )& *+java/util/ArrayList ŽM M ./ 0& 12java/lang/Objectjava/io/Serializable2org/jvnet/glassfish/samples/imserver/Person$Statusput8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;get&(Ljava/lang/Object;)Ljava/lang/Object;java/lang/Stringappend-(Ljava/lang/String;)Ljava/lang/StringBuilder;java/util/Listaddremove!  !"#%&'()&*+,-./‚0&‚12‚34,56783*·±9 )›: ;<=>8g*´Ç*»Y·µ*´+,¶W±9679:: ;<?&@ABC8Q*´Ç°*´+¶À°9=> @:;<?&DE8>*+µ±9 DE:;<%&FG8/*´°9H: ;<HI8U<*´Æ *´¶ §`<¬9MNO:;<JKLM8‡5+Á š¬+À M*´Ç ,´Ç*´Æ*´,´¶ š¬¬9TU WX1Z3\: 5;<5NO'P<QG8F» Y· ¶*´¶¶¶°9a: ;<RG8/*´°9e: ;<SE8>*+µ±9 ij:;<)&TU8/*´°9m: ;<,VWX8P*+µ±9 qr:;<*+Y *-,Z[E8^*´Ç*»Y·µ*´+¹W±9uvxy:;<?&\E8T*´Ç±*´+¹W±9|}€:;<?&]^8/*´°9ƒ: ;<_`8>*+µ±9 ‡ˆ:;<./aG8/*´°9‹: ;<bE8>*+µ±9 :;<0&cd8/*´°9“: ;<ef8>*+µ±9 ˜™:;<12gh'i  @PK î›8•@»ÑÑCWEB-INF/classes/org/jvnet/glassfish/samples/imserver/PersonDB.classÊþº¾1H ( ) *+ ,- ,./ 0 12 *3 *45 (67personsLjava/util/List; Signature?Ljava/util/List;()VCodeLineNumberTableLocalVariableTablethis/Lorg/jvnet/glassfish/samples/imserver/PersonDB;findPersonByIdA(Ljava/lang/String;)Lorg/jvnet/glassfish/samples/imserver/Person;p-Lorg/jvnet/glassfish/samples/imserver/Person;idLjava/lang/String;iterLjava/util/Iterator; addPerson0(Lorg/jvnet/glassfish/samples/imserver/Person;)V removePerson SourceFile PersonDB.java  8 9:; <= >?+org/jvnet/glassfish/samples/imserver/Person @AB CD EF GFjava/util/ArrayList-org/jvnet/glassfish/samples/imserver/PersonDBjava/lang/Objectjava/util/Listiterator()Ljava/util/Iterator;java/util/IteratorhasNext()Znext()Ljava/lang/Object;getId()Ljava/lang/String;java/lang/StringequalsIgnoreCase(Ljava/lang/String;)Zadd(Ljava/lang/Object;)Zremove!  /*·±# )„.²¹L+¹™+¹ÀM*,¶¶™,°§ÿà°, -./'0)2,3  . % !)"#9 ²*¹ W± 7 8  )$#9 ²*¹ W± ; <  %' » Y· ³± ( )&'PK î›8 ÔZ&SSNWEB-INF/classes/org/jvnet/glassfish/samples/imserver/PresenceInformation.classÊþº¾1%   ! "#$subscriptionStateLjava/lang/String; contentTypecontentLjava/lang/Object;()VCodeLineNumberTableLocalVariableTablethis:Lorg/jvnet/glassfish/samples/imserver/PresenceInformation;getSubscriptionState()Ljava/lang/String;setSubscriptionState(Ljava/lang/String;)VgetContentTypesetContentType getContent()Ljava/lang/Object; setContent(Ljava/lang/Object;)V SourceFilePresenceInformation.java   8org/jvnet/glassfish/samples/imserver/PresenceInformationjava/lang/Object!   /*·±  /*´°' >*+µ± +,/*´°/ >*+µ± 34 /*´°7 >*+µ± ;< PK î›8äËKWEB-INF/sip.xml PK î›8Jt«IýýWEB-INF/sun-web.xml /IMServer Keep a copy of the generated servlet class' java code. PK î›8¯;ÁýýWEB-INF/web.xml 30 index.jsp PK ï›8 íAMETA-INF/þÊPK î›8œêjj¤+META-INF/MANIFEST.MFPK î›8íAÇWEB-INF/PK î›8íAíWEB-INF/classes/PK î›8íAWEB-INF/classes/META-INF/PK î›8íARWEB-INF/classes/org/PK î›8íA„WEB-INF/classes/org/jvnet/PK î›8$íA¼WEB-INF/classes/org/jvnet/glassfish/PK î›8,íAþWEB-INF/classes/org/jvnet/glassfish/samples/PK î›85íAHWEB-INF/classes/org/jvnet/glassfish/samples/imserver/PK î›8 íA›WEB-INF/wsdl/PK î›8EòÓHss(¤ÆWEB-INF/classes/META-INF/persistence.xmlPK î›8^¶ÊØÙ)Ù)D¤WEB-INF/classes/org/jvnet/glassfish/samples/imserver/$IMServer.classPK î›8ª,¦¼¼H¤º/WEB-INF/classes/org/jvnet/glassfish/samples/imserver/Person$Status.classPK î›8ŒùóA¤Ü4WEB-INF/classes/org/jvnet/glassfish/samples/imserver/Person.classPK î›8•@»ÑÑC¤ÈEWEB-INF/classes/org/jvnet/glassfish/samples/imserver/PersonDB.classPK î›8 ÔZ&SSN¤úKWEB-INF/classes/org/jvnet/glassfish/samples/imserver/PresenceInformation.classPK î›8äËK¤¹PWEB-INF/sip.xmlPK î›8Jt«Iýý¤ëQWEB-INF/sun-web.xmlPK î›8¯;Áýý¤TWEB-INF/web.xmlPKaCV