These pages are optimized to be displayed by Internet Explorer and Netscape.
+There are some display problems with mozilla and konqueror, specially the
+installation page is not displayed perfectly, sorry, I'll try to fix that.
+
+
+Installation Guide
+
+
+Back: Jabber Server Installation
+Next: General user documentation
+
+
+
+
+
+To install the jabber package for OACS adequately you have to
+follow these installation instructions. You have to know that the jabber package
+is separated in three different installations, which are the C-module for AOLserver,
+C-module for Jabber server and the Jabber APM.
+
+I you want to go directly to a certain installation guide click on the links:
+AOLServer Installation Guide
+
+
+Jabber Client Installation Guide
+
+
+
+
+All C-Sources you will need to download.
+
+
+To install the APM follow the installation instructions for all APMs described
+in the documentation for the package manager.
+
+1. Installation Requirements for the C-modules
+
+The C-modules have certain requirements to work correctly. First of all you need an
+AOLserver installation with the entire source code (no rpm installation!) and of course
+an Jabber server installation with enteire source code.
+
+Installation instructions for these applications can be found at these urls:
+
AOLserver installation: http://www.aolserver.com
+
Jabber server installation: http://www.jabber.org
+
+
+
+Up
+
+You must have a valid Jabber-ID, so please start a public Jabber Client and register
+as a normal Jabber user. This Jabber user is necessary as a parameter for the AOLserver.
+
+Following instructions should be made as "nsadmin", so type in a bash shell:
+
?- su -nsadmin (RET)
+
?- password: ******* (RET)
+
+
+
Copy the tar file to "/your/path/to/aolserver/" and untar the file there.
+
Now you should have a new directory named nsjabber. Next go to "/your/path/to/aolserver/nsjabber/bin"
+and type "make". To see whether everything went right you should find a new file named ns_jabber.so.
+
+You may now type "make install" to install the Jabber_Client in the
+directory "/usr/local/aolserver/bin", this is the default installation
+directory for AOLServer.
+Now you have to configure the client and add following lines to your
+aolserver-config.tcl.
+
+
+
+
+- ns_section ns/server/${server}/module/nsjabber
+- ns_param jid aiesec@intranet.sussdorff-roy.com/DEV
+- ns_param pw secret
+- ns_param jabber_server intranet.sussdorff-roy.com
+- ns_param aim_transport aim.intranet.sussdorff-roy.com
+- ns_param conference_service conference.intranet.sussdorff-roy.com
+- ns_param msn_transport msn.intranet.sussdorff-roy.com
+- ns_param yahoo_transport yahoo.intranet.sussdorff-roy.com
+- ns_param icq_transport icq.intranet.sussdorff-roy.com
+- ns_param yahoo_transport yahoo.intranet.sussdorff-roy.com
+
+
+The "jid" parameter is the jabber id you created already (as described
+above). It has to be exactly (case sensetive) the same you
+specified (or you will specify) in the jabber.xml config file of your
+Jabber Server.
+
+The "pw" parameter is the password for the above specified jid to
+login the Jabber Server.
+
+The "jabber_server" parameter is the URL of your Jabber Server, the
+same that you specified in your jabber.xml config file in the
+ section.
+
+
+The folowing param's are the FQN of your transports (aim. icq , etc.).
+
+The next section has to be below the above one in your config.tcl.
+The section probably already exists in your config and you will only
+have to add one parameter.
+
+
+
+
+- ns_section ns/server/${server}/modules
+- ns_param nsperm nsperm.so
+- ns_param nssock nssock.so
+- ns_param nslog nslog.so
+- ns_param nssha1 nssha1.so
+- ns_param nscache nscache.so
+
+- #-------The parameter to add------
+- ns_param nsjabber ns_jabber.so
+- #---------------------------------
+
+
+This parameter tells the AOLServer to load the Jabber Client module
+into the core AOLServer.
+
+The jabber client needs a own Databasehandle pool with 2 handles.
+To create the Pool add the following Lines to the existing sections ...
+(NOTE: The configuration of the Database may vary,
+depending on what driver you are using)
+
+
+
+- ns_section "ns/servers"
+- #-------The parameter to add------
+- set jabberpoolconn(yourserver) 2
+- #--------------------------------
+
+- ns_section "ns/db/pools"
+- #-------The parameter to add------------
+- ns_param jabber "Jabber Pool"
+- #---------------------------------------
+
+
+
... and then add this section to your ini.tcl
+
+
+- ns_section "ns/db/pool/jabber"
+- ns_param Driver ora8
+- ns_param Connections $jabberpoolconn(${server})
+- ns_param DataSource ""
+- ns_param User $dbuser(${server})
+- ns_param Password $dbpw(${server})
+- ns_param Verbose on
+- ns_param LogSQLErrors On
+- ns_param ExtendedTableInfo On
+- ns_param MaxOpen 1000000000
+- ns_param MaxIdle 1000000000
+
+
+Finaly add this line to the mime type section.It is needed to let the Aolserver work together with Java WebStart.
+
+ns_section ns/mimetypes
+ |
ns_param Default text/plain |
+ns_param NoExtension text/plain |
+ns_param .pcd image/x-photo-cd |
+ns_param .prc application/x-pilot |
+ns_param .xls application/vnd.ms-excel |
+the line to add \/ |
+ns_param .jnlp application/x-java-jnlp-file |
+
+
+Now you may restart your AOLserver to load the nsjabber.so module and
+test it. Make sure you have installed the the mod_acs in your Jabber
+Server otherwise you won't be able to use the admin functionality.
+But if you like you can let aolserver send Messages to any valid jid,
+
+use the folowing tcl commands:
+
+set conn_state [jb_login] #conn_state will be 0 on succsess -1 on error
+
+set succsess [jb_message "user@server" "The Message string"]
+#will be 0 on succsess -1 when the client isn't logged in
+
+set conn_state [jb_logout]
+
+
+
+
+Up
+
+
+Now follow some installion tasks for the Jabber Client
+These tasks have to be accomplished as the user how is in charge for the Jabber Server !
+C-module. These C-module enables a jabber admin mod.
+Copy the mod_acs.tar file to the head Source directory of your Jabber Server (like /your/path/to/jabber-1.4.x),
+ Now type
+?- tar -xvf mod_acs.tar to utar the file.
+
+The extracted files should be copyed to the directorys where they belong atomaticly.
+
+
+
+
+Change to the modules directory type:
+
+
?- cd jsm/modules
+
open the file 'Makefile' with your prefered editor,
+(type: emacs Makefile )
+and put a entry saying 'mod_acs.o' at the end of the 'jsm_modules_OBJECTS'
+section and save it.It should look like this when you are finished :
+
+
+jsm_modules_OBJECTS=\ |
+ mod_admin.o \ |
+ mod_agents.o \ |
+ mod_browse.o \ |
+ mod_announce.o \ |
+ mod_auth_plain.o \ |
+ mod_auth_digest.o \ |
+ mod_auth_0k.o \ |
+ mod_echo.o \ |
+ mod_filter.o \ |
+ mod_groups.o \ |
+ mod_presence.o \ |
+ mod_xml.o \ |
+ mod_roster.o \ |
+ mod_time.o \ |
+ mod_vcard.o \ |
+ mod_version.o \ |
+ mod_register.o \ |
+ mod_log.o \ |
+ mod_last.o \ |
+ mod_offline.o\ <----------------------------------! |
+ mod_acs.o <---- Your edit. Don't forget to put a ' \ ' at the end |
+
+ of the above line!!! |
+
+
+Don't forget to save your edits.
+
+Now close your editor , and go back one directory (type: cd .. ),
+you are now in the '/your/path/to/jabber-1.4.x/jsm' directory.
+Open the file 'Makefile' with your prefered editor
+(this is the second and last Makefile you have to edit),
+(type: emacs Makefile )
+and put a entry saying 'mod_acs.o' at the end of the 'jsm_EXOBJECTS'
+section and save it.It should look like this when your finished :
+
+
+
+jsm_EXOBJECTS = \
+ modules/mod_admin.o \ |
+ modules/mod_agents.o \ |
+ modules/mod_browse.o \ |
+ modules/mod_announce.o \ |
+ modules/mod_auth_plain.o \ |
+ modules/mod_auth_digest.o \ |
+ modules/mod_auth_0k.o \ |
+ modules/mod_echo.o \ |
+ modules/mod_filter.o \ |
+ modules/mod_groups.o \ |
+ modules/mod_presence.o \ |
+ modules/mod_xml.o \ |
+ modules/mod_roster.o \ |
+ modules/mod_time.o \ |
+ modules/mod_vcard.o \ |
+ modules/mod_version.o \ |
+ modules/mod_register.o \ |
+ modules/mod_log.o \ |
+ modules/mod_last.o \ |
+ modules/mod_offline.o\ <----------------------------------! |
+ modules/mod_acs.o <------ Your edit. Don't forget to put a ' \ '
+ |
+ at the end of the above line!!! |
+
+
+Don't forget to save your edits.
+
+Close your editor aigan and and move up a nother directory,
+do this by typing:
+
cd .. in your shell. Now you schould be in the '/your/path/to/jabber-1.4.x'
+directory now type:
+
+make
+
+and may (to install the new binarys)
+
+make install
+
+
+in your shell.You will see a debug report if no errors ocure you are done.
+If an error ocures (somthing like: `can't find mod_acs.o'),
+check if you have done everything right in the above sections,
+
+
+But if everything went right, its now time to configure your Jabber Server
+to work with the module.
+
+In the same dir the '/your/path/to/jabber-1.4.x' open the jabber.xml file
+with your prefered editor, type:
+
+emacs jabber.xml
+
+you have probably done this before, now go to the '<service>' section and in
+ther to the '<load>' section
+insert a line saying :
+
+
+"<mod_acs>./jsm/jsm.so</mod_acs>"
+
+
+
+
+at the seconed row of the '<load>' section.Make sure you placed your edits in
+the first row after the '<jsm>' row , other wise the module wont work.
+Save your edits , it should look like this:
+
+
+
+
+
+ <service> |
+ ... |
+<several services> |
+.... |
+ <load main="jsm"> |
+ <jsm>./jsm/jsm.so</jsm> |
+ <mod_acs>./jsm/jsm.so</mod_acs> <-----enter your row here. |
+ <mod_echo>./jsm/jsm.so</mod_echo> |
+ <mod_roster>./jsm/jsm.so</mod_roster> |
+ <mod_time>./jsm/jsm.so</mod_time> |
+ <mod_vcard>./jsm/jsm.so</mod_vcard> |
+ <mod_last>./jsm/jsm.so</mod_last> |
+ <mod_version>./jsm/jsm.so</mod_version> |
+ <mod_announce>./jsm/jsm.so</mod_announce> |
+ <mod_agents>./jsm/jsm.so</mod_agents> |
+ <mod_browse>./jsm/jsm.so</mod_browse> |
+ <mod_admin>./jsm/jsm.so</mod_admin> |
+ <mod_filter>./jsm/jsm.so</mod_filter> |
+ <mod_offline>./jsm/jsm.so</mod_offline> |
+ <mod_presence>./jsm/jsm.so</mod_presence> |
+ <mod_auth_plain>./jsm/jsm.so</mod_auth_plain> |
+ <mod_auth_digest>./jsm/jsm.so</mod_auth_digest> |
+ <mod_auth_0k>./jsm/jsm.so</mod_auth_0k> |
+ <mod_log>./jsm/jsm.so</mod_log> |
+ <mod_register>./jsm/jsm.so</mod_register> |
+ <mod_xml>./jsm/jsm.so</mod_xml> |
+ </load> |
+ </service> |
+
+
+
+
+Defining a jadmin section in the jabber-configfile (jabber.xml).
+The </jadmin> tag has to be a direct subtag of the <jsm> section of your config file.
+
+
+
+ <jsm xmlns="jabber:config:jsm">
+ .
+ .
+
+<jadmin host="localhost" community_client="xxx@localhost/resource" standard_buddy="buddy_name" standard_group="buddy_group" ></jadmin>
+
+ .
+ .
+ .
+ </jsm>
+
+
+ <!-- the "host" attribute has to be of the same value,that you defined in the <host> section above.
+ the "community_client" needs the same value you defined in the configfile of your web server.
+ admin functions will only register to the session of your web server client
+ when the jid you login with, exactily matches this string
+ (user , server and recource)
+
+ the "standard_buddy" is the user part of the jid you defined in the "community_client" attribute.
+ the "standard_group" is the name of the default group you wish to add buddys to.
+
+
+
+
+
+Don't forget to save your edits.(In emacs you do this by typing: C-x C-s)
+
+
+
+
+Now go to the spool directory of your jabber server,
+
+
+?- cd spool
+
+
+there you find towe files plain.xml.1 and plain.xml.2 , the number at the end stands for the server you are using i.e. jabber-1.4.1/1.4.2. If you have not installed the jabber server with make install , all you need to do is to move the file in the server directoy, type :
+
+
+?- mv plain.xml.x yourserver.com/plain.xml
+
+
+if you have installed the binarys in another directory you have to move the file into the server directory of your installation path.You have to type somthing like this:
+
+
+?- mv plain.xml.x /your/jabber-instalation/spool/yourserver.com/plain.xml
+
+
+default path is
+
+
+?- mv plain.xml.x /usr/locale/jabber/spool/yourserver.com/plain.xml
+
+
+The mod will work without this file , but you will not be able to register users via the admin client.
+
+
+
+
Now you should install the Conference Module for the Jabber Server.
+ If you have already installed the commen Conference Module you schould change to our one,
+ it is usaly named like the oficial releas with an '+' at the end,
+ it offers additional features witch make it more usefull for OpenACS.
+ The extra features are:
+ Limit the creation of Rooms with a specific prefix (like 'offical_xyz') to Admins
+ Get the Remote (real) JID's of the Members in a Room. This way we know to wich OpenACS User belongs a Message.
+
+ The nsjabber module for Aolserver will work with the normal Conference Module,
+ but it's recomended to use the '+' version.
+
+
+Download the conference-0.4.1+.tar to your server copy it to your Jabber Server directory and untar it.
+
?- tar -xvf conference-0.4.1+.tar
+
know change to the confererence directory and build the binarys. Type:
+
?- cd conference-0.4.1+
+
?- make
+
+
if the build was successfull you can now configure the Conference Module.
+
+
+
+ Conference can be configured as a public or private chatroom server, users from other Jabber Servers will only
+ be able to access your Conference Server if the URL it uses is fully qualified :
+
+
+
+ Open the jabber.xml configuration file again with your prefered Editor and enter the following section to the <service> section;
+
+
+<service id='conference.localhost'> |
+ <load><conference>/your/path/to/conference/conference.so</conference></load> |
+ <conference xmlns="jabber:config:conference"> |
+ <public/> |
+The below admins section defines admins that are allowed to create Rooms with a specific prefix! |
+One of the admins schould be the jid your Aolserver uses, together with the prefix(s) you want to limit to your Comunity |
+ <admins> |
+ <admin jid="admin@sussdorff-roy.com"> |
+ <room>room_name</room> |
+ <room>room_prefix</room> |
+ </admin> |
+ </admins> |
+ <vCard> |
+ <FN>Public Chatrooms</FN> |
+ <DESC>This service is for public chatrooms.</DESC> |
+ <URL>http://foo.bar/</URL> |
+ </vCard> |
+ <history>20</history> |
+ <notice> |
+ <join> has become available</join> |
+ <leave> has left</leave> |
+ <rename> is now known as </rename> |
+ </notice> |
+ <room jid="help@conference.localhost"> |
+ <name>Assistance Zone</name> |
+ <privacy/> |
+ </room> |
+ <room jid="admin@conference.localhost"> |
+ <name>Adminz only</name> |
+ <secret>con0r</secret> |
+ <notice> |
+ <join> just rocks!</join> |
+ <leave> gets lost</leave> |
+ <rename> feels it is more important to be known as </rename> |
+ </notice> |
+ </room> |
+ </conference> |
+</service> |
+
+
+
+Add this section to the <browse> area to advertise it to your users:
+
+
<conference type="public" jid="conference.localhost" name="Public Chatrooms"/>
+
+
+
+
+
+If you have done this, and no error ocured you are throug with the
+instalation.Check if you have doene everything right by restarting your
+server.Type :
+
+
+
+?- cd ../jabberd
+
+?- jabberd -D
+
+
+Debugg output will showe errors if any occured.
+
+Up
+
+
+Back: Jabber Server Installation
+Next: General user documentation
+
+
+
+
\ No newline at end of file
Index: openacs-4/packages/jabber/www/doc/introduction.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/doc/introduction.adp,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/jabber/www/doc/introduction.adp 20 Oct 2004 19:36:50 -0000 1.1
@@ -0,0 +1,118 @@
+
+Jabber Introduction
+
+
+
+Next: Installation Guide
+
+
+Introduction
+
+
+This document explains the Jabber Server, which functionality and characteristics
+it has, so everyone can get a better overview.
+
+Jabber is an XML-based system for the near-real-time exchange of messages and
+presence.(A strong foundation in XML, which makes structured, intelligent
+messaging possible not only between human users but also between software
+applications.) Jabber uses a client-server architecture, not a client-to-client
+architecture. All Jabber messages and data from one client to another must go
+through the server. Any client is free to negotiate a direct connection to
+another client, but those connections are for application-specific usage only.
+There are even specific instances where this is encouraged, such as file
+transfers, but those instances are negotiated first within the context of a
+client-server framework. Jabber uses a distributed Network, its architecture is
+modeled after that of the e-mail system. Each user has their local server which
+receives information for them, and the servers transfer messages and presence
+information among themselves. There can exist any number of Jabber servers which
+accept connections from clients as well as communicate to other Jabber servers.
+Each server functions independently of the others, and maintains its own user
+list. Any Jabber server can talk to any other Jabber server that is accessable
+via the Internet. A particular user is associated with a specific server by a
+unique identefier (jid) that is like an emailadress.
+
+Jabber ID (jid)
+
Jabber IDs are used both externally and internally to express ownership or
+routing information. A Jabber ID is made up of a domain, node, and resource in
+the following format: user@host/resource or [node@]domain[/resource]. It is
+designed as a URI (Uniform Resource Identifier), a URI is a character string
+used to identify a resource (such as a file, in this case a session of a Jabber
+Server entity) from anywhere on the Internet by type and location. The term
+�URL� (Uniform Resource Locator) is a specific type of URI. For more
+information, visit http://www.w3.org/Addressing/.
+The three main branches of the Jabber communication.
+-Info/Query: In the Jabber protocol, Info/Query is a data structure used to
+obtain information about a Jabber Entity or to set information for an entity.
+
+-Presence: Presence indicates whether a Jabber Entity is available for
+communication. It includes basic Availability (i.e., online vs. offline), as
+well as status indicators that capture various Availability Types.
+-Message: A Message is used to transport information (a message) between two or more entitys
+of a Jabber Server.
+Jabber Server
+The Jabber Server is the software that connects and communicates with other
+Jabber clients and servers. All communications for a client are directed to the
+server and then passed to the client. All client preferences and data are stored
+on the server. The Jabber server plays two primary roles: 1. Listening for
+client connections and communicating directly with client applications. 2.
+Communicating with other Jabber servers. The Jabber Server is designed to be
+modular, it can be extended by modules (JSM) that implement speciale purposes,
+or comunicat with other deamons that register them selfs at the Jabber core
+Server (not like then the modules, they are not a part of it) , and translate
+the Jabber native protocol to a protocol of any other IM Service. This protocol
+translation deamons are called Transports, the comunication between a Transport
+and the core Server is based on Networkprotokols such as TCP/IP and can be
+hosted on diferent Servers.The Jabber core Server can be configured in one
+config file that is loaded into the Jabber core Server, it determines what
+modules of the JSM and what Transports should be loaded (on start up) along with
+detailed configuration information for each.
+Transport
+A component of the Jabber server that provides a bridge over the Internet or
+a network, between the Jabber Server and any non-Jabber system or network. How
+is it doing that: -Protocol A protocol is a formalized set of instructions that
+developers follow when creating applications, including Jabber applications.
+-Native Protocol A native protocol is the format in which communications occur
+within a particular service. For example, the AIM Transport communicates with
+AIM by translating Jabber�s native XML protocol into AIM�s native protocol
+and vice-versa.
+
Client
+
-Resource: The resource of a Jabber ID can provide additional information
+about how a user is accessing a Jabber server. A Resource can be the location
+from which a user is connecting (e.g., home or work), the type of device a user
+is connecting with (e.g., notebook or handheld), or the user�s specific Jabber
+Client (e.g., JIM or WinJab).
+-Priority: Priority is a user-defined setting that
+determines the importance of each Resource a Jabber user is using to access the
+Jabber server. The server will send messages and presence information to the
+highest-priority resource, which is known as the Primary Resource. This enables
+a user to connect to the server from multiple locations or devices, but only
+receive messages at a single device or location.
+-Roster: A list of Jabber Users or other Jabber Entities to whom a
+Jabber User is subscribed. A user�s roster is often the combination of a
+user�s Personal Groups and Shared Groups. -Subscription: A subscription is a
+request to receive presence updates from a Jabber User or other Jabber Entity.
+The receiving entity may refuse a subscription, preventing the requesting party
+from seeing presence updates. If the receiving entity approves the subscription,
+the requesting party will see presence updates.
+
+Important:
+
+ The OACS Jabber server acts as one buddy, so if you send a message the receiver
+of the message will think that the user "OACS" send him this message. Of course we want the receiver
+to know who send him the message, so we append on every message your name at the beginning. Furthermore
+the receiver cannot send you messages back if you send him the message via Webpages, because this way you would
+be the OACS-user and not you!Therefore it is impossible for the Jabber server to track the messages and find
+the original sender. So if you want to be recognized perfectly by the receiver and be able to receive messages aswell,
+you have to send your messages through the Jabber Applet, because this Jabber Applet acts like a normal Jabber Client
+and you would not send your messages via the Jabber server as general OACS-user, but as Jabber user with his own JabberID.
+
+
+
+Next: Installation Guide
+
+
+
+Author:
+ Bjoern Kiesbye
+
+
Index: openacs-4/packages/jabber/www/doc/jabber-developer.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/doc/jabber-developer.adp,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/jabber/www/doc/jabber-developer.adp 20 Oct 2004 19:36:50 -0000 1.1
@@ -0,0 +1,33 @@
+
+Overview
+
+
+Overview
+The Jabber module for OpenACS can track any entity presence state (i.e. online or offline) from most of the Big Instant Messaging Systems (AIM , MSN , Yahoo , ICQ and Jabber). It is able to interact with your local Jabber Server and it can record Chat�s hosted by the Conference Component of your local Jabber Server.
+
+
+
+The tracking of presence :
+The Aolserver log�s into your precreated account at your local Jabber Server , it acts like a usual Jabber Client so it can connect it self to any IM System your Jabber Server is able to connect to. When a user enters a name from an entity from any supported IM System (say name: �Fred123� IM System: �AIM� ), this information is inserted into the table jb_screens (Oacs) and into the account information (in jabber terms �roster�) (the account the Aolserver uses ) at your local Jabber Server.
+Once this information is in the Aolserver�s accounts roster , the Jabber Server will push any presence state changes ,from this entity , to the Aolserver. Who then writes the new state into the state column of the jb_screens table where the screen column has the value �Fred123� and the service column has the value �AIM�. The table jb_screens holds all information about a entity , the screen(name) the service the screen belongs to , the current online state (and possibly a away message and a resource). If any application has an interest in the online state of any entity (like the IM Addressbook) this application has to reefer to the jb_screens table .In the www/image subdirectory their are several icons for displaying different online states and IM Systems . In the jabber-procs.tcl library file their are some functions that return a colour for a passed in online state (it would be help full for users if the different states are display system wide in the same colour ).
+As well you are able to send IM Messages to any entity of any IM System your Jabber Server supports, but you can�t receive any Messages. For end users it can be used like a SMS web interfaces , the OpenACS could use it in it�s alert system. You find all pages related to the tracking of presence in the www/jabber directory.
+
+The recording of Chat�s:
+The Aolserver can enter any Conference Room from the Conference Module of your local Jabber Server, so it is able to receive any Messages send to a Conference Room once it is asked to record this Conference Room. The Conferences are stored in three tables jb_conference_protocols , this table holds any Message from any Conference Room , in addition to the Message text any line reefers to the table jb_conference_rooms ,via the room_id (which holds the room name the description of what discussions this room is for etc. ), the table jb_conference_thraeds ,via the thread_id (which holds the name of the currently discussed topic), and the users table via the user_id (the user_id is figured out with the help of the jid, the possibility to query the conference module for the real jid�s of conference members isn�t a standard so make sure you use the version that comes with the package). You find all tcl/adp pages used for conferencing in the www/jabber/conferencing subdirectory. Later access is done by relations , the jb_conferens_room is defined as an Object (acs 4.x) so a room can (has to) be related to a Group (Groups for conferencing can be created and administrated in the admin section of the jabber module www/jabber/admin/conferencing). On the Conference index page a list of all Groups the user is a member of are displayed, which link them to an overview of all Room� including all Topics that belong to this Group which themselves link the user to read a Topic enter an currently active Room or to Restart an inactive Room. On the index page their is an overview with all new Topics (since last visit) displayed.
+
+
+
+
+
+Conferencing for Admins:
+On the www/jabber/admin/conference.adp page you are able to define Group�s , this will Groups be able to use the Conferencing facility of the Jabber module. You can define a new Group by entering a name in the Group Name Field a pressing the create Button. Once a Group is created it will show up in the list of existing Conference Group�s below. The Group names link you to a page where you can add and remove Users or whole Groups to the one you have just created. At the bottom of the page you can search the System for Users or Groups , the search results will be displayed below your search entry . Clicking on one of the search results will add this User/Group to your Conference Group. At the top of the Page two lists are displayed the first shows all Users (their names) of the Conference Group , the second shows all Groups of your Conference Group (their names). Behind every Name you have a Link to remove this User/Group from your Conference Group.
+You are able to add a hole Group A to your Group Conf , all users who are members of Group A will then be members of Group Conf , even if members from Group A wont show up in the Users List of Group Conf.
+
+
+
+Conferencing for Users:
+If you want to use the Conferencing facility you should have a Jabber account already and you should (but you don�t have to ) be online with the Enigma Jabber Client (or any other Jabber Client that supports Conferencing , the Jabber Applet doesn�t support Conferencing ). Go to the page /jabber/conferencing you will see a list displaying all Conference Groups you are a member of, below you will see a List displaying all new Topics that have been discussed since you last visited this System. Clicking on one of the read links behind a new topic will bring you directly to the page that show�s the whole discussion on this Topic. If you follow one of the Group Name Links ,at the top, you get to the main Page of this Group. On the Groups main Page You find two Links one to Create a new Top level Room , a second to Invite other Users to a Conference Room, below you find a structure displaying all Rooms of this Group with all Topics that have been discussed. Behind every room you find a Link ,in case other users are currently in this Room , saying Enter. If you are online with Enigma you enter this Room when you Click on the Enter Link. If no one is currently in this Room the Link will be named Restart, clicking this link will restart the Room and you will enter it. In case you restarted a Room you can now go to the Invite page (just follow the Link �Invite other Users to a Room� at the top of the page ), here you find a Selection Box with other Users (only those who are currently online will be displayed) . Select the once you want to invite (in case you want to invite more then User , hold the �Ctrl� or �Strg� � Key down while making your selections with the Mouse ) , below you find a Selection Box with all active Rooms including the one you have just restated , select it. In the two Text Fields below enter some words that let the Users your going to Invite know why your inviting them and what you want to discuss. Now you can press the �Invite� Button ,every User o you selected above will be asked to come to the Room you selected.
+
+
+That means after you have entered contact information into the IM Addressbook (like Firstname: �Fred� Name: �Example� AIM screen: �Fred123� ) the Jabber module tracks the presence of the AIM entity �Fred123� . From now on ,when ever you call one of the Jabber Pages , the online state of your contact is displayed to you.
+
\ No newline at end of file
Index: openacs-4/packages/jabber/www/doc/jabber-instalation.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/doc/jabber-instalation.adp,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/jabber/www/doc/jabber-instalation.adp 20 Oct 2004 19:36:50 -0000 1.1
@@ -0,0 +1,283 @@
+
+
+Installation Guide
+
+
+
+Download the jabber-1.4.2 server to your tmp directory.
+and do the same with mod_acs-0.0.8.x.tar.gz
+
+
+Now unzip and untar the archive.
+
+
+- >gzip -d jabber-1.4.2.tar.gz
+- >tar -xvf jabber-1.4.2.tar
+
+
+now copy the mod_acs-0.0.8.x.tar.gz into the jabber-1.4.2 dir.
+
+
+>mv mod_acs-0.0.8.x.tar.gz jabber-1.4.2
+
+
+Now configure and make the binaries.
+
+
+
+- >cd jabber-1.4.2
+- >gzip -d mod_acs-0.0.8.x.tar.gz
+- >tar -xvf mod_acs-0.0.8.x.tar
+- >./configure
+
+edit the make files.
+
+
+>make
+
+
+If no errors occured you can now configure your jabber server.
+
+
+>emacs jabber.xml
+
+
+now replace the all "localhost" appearences with "your.domain.name"
+
+
+
+(In emacs the easiest way in emacs todo this is:
+ M-x replace-string (hit enter)
+ localhost (enter)
+ your.domain.com (enter)
+
+ emacs will tell you how many times it replaces "localhost" with "your.domain.name"
+ )
+
+
+
+Quit emacs C-x C-c, and start the server vor the first time.
+
+
+>jabberd/jabberd -D
+
+
+Now try to connect to your Jabber Server with your Jabber Client , and register a account, if it worecked
+, register an acount for your aolserver.
+
+
+Now install the jabberd server to /usr/local/jabber
+
+
+- >su root
+- >cd /usr/local
+- >mkdir jabber
+- >chown nsadmin jabber
+- >chown web jabber
+- >exit
+
+
+As nsadmin go back to the /tmp/jabber-1.4.2/ dir. and copy the following files.
+
+
+- >cd /tmp/jabber-1.4.2
+- >mkdir /usr/local/jabber/jabberd
+- >cp jabberd/jabberd /usr/local/jabber/jabberd
+- >mkdir /usr/local/jabber/
+- >cp jsm/*.so /usr/local/jabber/jsm
+- >cp pthsock/*.so /usr/local/jabber/
+- >cp dnsrv/*.so /usr/local/jabber/
+- >cp xdb_file/*.so /usr/local/jabber/
+- >cp -r spool /usr/local/jabber/
+- >cp dialback/*.so /usr/local/jabber
+- >rm -r cygin
+
+
+
+
+Now download the transports (aim , yahoo , etc.) and install them.
+
+
+Download the aim-transport-0.x.x.tar.gz to the folder /tmp/jabber-1.4.1
+
+
+- >gzip -d aim-transport-0.x.x.tar.gz
+- >tar -xvf aim-transport-0.x.x.tar
+- >cd aim-transport-0.x.x
+- >emacs README
+
+
+
+In the README file you find everything you have to know to compile an configure the transport,
+compilation an configuration can vary from transport to transport, this is what it mostly locks like.
+
+
+
+- >cd aim-transport-0.x.x
+- > ./configure
+- >make
+- >mkdir /usr/local/jabber/aim
+- >cp src/*.so /usr/local/jabber/aim
+- >emacs /usr/local/jabber/jabber.xml
+
+
+
+Inserting a <browes> and a <service> section, into the jabber.xml file.
+
+
+
+<jabber> |
+ ... |
+ >jsm> |
+ ... |
+ <browes> |
+
+ <!-- The Browes section is only important if you want to let users use
+ your transporst, this is no technical configuration of the Server or
+ it's Transports, it's just to information Jabber Client Aplication's
+ what Transports are available.
+ -->
+ |
+ <service type="aim" jid="aim.intranet.sussdorff-roy.com" name="AIM Transport"> |
+ <ns>jabber:iq:gateway</ns> |
+ <ns>jabber:iq:register</ns> |
+ </service> |
+
+ ..... |
+ </browes> |
+ </jsm> |
+
+
+
+
+
+
+ <!-- The Service section is very important, it tells jabberd wich Transports (lib's) to use,
+ their two ways to use a Transport 1. load/run it in the main jabberd proccess.
+ 2. load/run a Transport in a own jabberd proccess, and let the main jabberd proccess
+ connect to it via the network (prefered way )
+
+ As well the service Section configures the Transports (wich url they use etc.) -->
+
+ |
+
+ <!-- 1. To load/run a Transport in the main jabberd proccess, put a <service>-xml (like the example A.)
+ into the jabber.xml file to let the main jabberd proccess load/configure/run the Transport.
+ After you entered this Section you can restart your server with:
+
+ >jabberd/jabberd -c /usr/local/jabber/jabber.xml
+
+ and the Transport will be available to your users.
+ -->
+ |
+
+
+
+ Example A. :
+
+ <service id='aim.intranet.sussdorff-roy.com'> |
+ <aimtrans xmlns='jabber:config:aimtrans'> |
+ <aimbinarydir</home/bkiesbye/jabber/jabber-1.4.1/aim-transport-0.9.23/aim3.5.1670>/aimbinarydir< |
+ <vCard> |
+ <FN>AIM Transport</FN> |
+ <DESC>An AIM Transport!</DESC> |
+ <URL>http://aim.intranet.sussdorff-roy.com/</URL> |
+ </vCard> |
+ </aimtrans> |
+ <load> |
+ <aim_transport>./aim-transport-0.9.24c/src/aimtrans.so</aim_transport> |
+ </load> |
+ <t/service> |
+ |
+
+
+
+ <!-- 2. To let the main jabberd proccess connect to a Transport that runs in a seperate proccess.
+ you need a different styled sektion in your jabber.xml file (Example B) to let the main jabberd
+ know how to connect to a Transport that runs in a seperate proccess (may even on a seperate server)
+ , and a seperate Transport-jabber.xml (Example C.) file, to let the seperate jabberd proccess
+ load/configure/run The transport.
+-->
+ |
+
+
+
+ Example B.:
+
+
+ |
+ <service id="yahoo-linker"> |
+ <host>yahoo.intranet.sussdorff-roy.com</host> |
+ <accept> |
+ <ip>127.0.0.1</ip> <!-- Server IP the Transport runs on > |
+ <port>5237</port> <!-- the port to connect to (same as in Example C.) > |
+ <secret>passwd</secret> |
+ </accept> |
+ </service> |
+
+
+ |
+</jabber> |
+
+
+
+ The conntent of the extra file should look like this (yahoo-jabber.xml)
+
+
+
+ <!-- Example yahoo-jabber.xml configuration file --> |
+ |
+ <jabber> |
+ |
+ <!-- This section is to let this proccess know how to connect to the main jabberd proccess --> |
+ |
+ <service id="yahoo-linker"> |
+ <connect> |
+ <ip>127.0.0.1</ip> |
+ <port>5237</port> |
+ <secret>passwd</secret> |
+ </connect> |
+ <uplink/> |
+ </service> |
+ <pidfile>./yahoo-jabber.pid</pidfile> |
+ |
+ |
+
+ <!-- This section is to load/configure the Transport it self. --> |
+ |
+ <service id="yahoo.intranet.sussdorff-roy.com"> |
+ <load><yahoo_transport>./yahoo-transport.so</yahoo_transport></load> |
+ <config xmlns="jabber:config:yahoo"> |
+ <vCard> |
+ <NAME>Yahoo Transport</NAME> |
+ </vCard> |
+ <server>scs.yahoo.com</server> |
+ <port>5050</port> |
+ <charmap>CP1252</charmap> |
+ </config> |
+ </service> |
+ |
+</jabber> |
+
+
+
+You can now start your main jabberd proccess with:
+
+
+>jabberd/jabberd -c /usr/local/jabber/jabber.xml
+
+
+and to start the Transport in it's own proccess type:
+
+
+>jabberd/jabberd -c /usr/local/jabber/yahoo-jabber.xml
+
+
+It will atomaticly try to connect to the main jabberd proccess via the network,
+you can start/stop/crash the seperate Transport proccess without harming the main jabberd proccess.
+In case you run your Transport on a seperate Server you need a Jabber instalation on this Server as well.
+
+
+
+
+
\ No newline at end of file
Index: openacs-4/packages/jabber/www/doc/jabber-installation.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/doc/jabber-installation.adp,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/jabber/www/doc/jabber-installation.adp 20 Oct 2004 19:36:51 -0000 1.1
@@ -0,0 +1,292 @@
+
+
+Installation Guide
+
+Back: Introduction
+Next: Jabber Client Installation
+
+
+
+Download the jabber-1.4.2 server to your tmp directory.
+and do the same with mod_acs-0.0.8.x.tar.gz
+
+
+Now unzip and untar the archive.
+
+
+- >gzip -d jabber-1.4.2.tar.gz
+- >tar -xvf jabber-1.4.2.tar
+
+
+now copy the mod_acs-0.0.8.x.tar.gz into the jabber-1.4.2 dir.
+
+
+>mv mod_acs-0.0.8.x.tar.gz jabber-1.4.2
+
+
+Now configure and make the binaries.
+
+
+
+- >cd jabber-1.4.2
+- >gzip -d mod_acs-0.0.8.x.tar.gz
+- >tar -xvf mod_acs-0.0.8.x.tar
+- >./configure
+
+edit the make files.
+
+
+>make
+
+
+If no errors occured you can now configure your jabber server.
+
+
+>emacs jabber.xml
+
+
+now replace the all "localhost" appearences with "your.domain.name"
+
+
+
+(In emacs the easiest way in emacs todo this is:
+ M-x replace-string (hit enter)
+ localhost (enter)
+ your.domain.com (enter)
+
+ emacs will tell you how many times it replaces "localhost" with "your.domain.name"
+ )
+
+
+
+Quit emacs C-x C-c, and start the server vor the first time.
+
+
+>jabberd/jabberd -D
+
+
+Now try to connect to your Jabber Server with your Jabber Client , and register a account, if it worecked
+, register an acount for your aolserver.
+
+
+Now install the jabberd server to /usr/local/jabber
+
+
+- >su root
+- >cd /usr/local
+- >mkdir jabber
+- >chown nsadmin jabber
+- >chown web jabber
+- >exit
+
+
+As nsadmin go back to the /tmp/jabber-1.4.2/ dir. and copy the following files.
+
+
+- >cd /tmp/jabber-1.4.2
+- >mkdir /usr/local/jabber/jabberd
+- >cp jabberd/jabberd /usr/local/jabber/jabberd
+- >mkdir /usr/local/jabber/
+- >cp jsm/*.so /usr/local/jabber/jsm
+- >cp pthsock/*.so /usr/local/jabber/
+- >cp dnsrv/*.so /usr/local/jabber/
+- >cp xdb_file/*.so /usr/local/jabber/
+- >cp -r spool /usr/local/jabber/
+- >cp dialback/*.so /usr/local/jabber
+- >rm -r cygin
+
+
+
+
+Now download the transports (aim , yahoo , etc.) and install them.
+
+
+Download the aim-transport-0.x.x.tar.gz to the folder /tmp/jabber-1.4.1
+
+
+- >gzip -d aim-transport-0.x.x.tar.gz
+- >tar -xvf aim-transport-0.x.x.tar
+- >cd aim-transport-0.x.x
+- >emacs README
+
+
+
+In the README file you find everything you have to know to compile an configure the transport,
+compilation an configuration can vary from transport to transport, this is what it mostly locks like.
+
+
+
+- >cd aim-transport-0.x.x
+- > ./configure
+- >make
+- >mkdir /usr/local/jabber/aim
+- >cp src/*.so /usr/local/jabber/aim
+- >emacs /usr/local/jabber/jabber.xml
+
+
+
+Inserting a <browes> and a <service> section, into the jabber.xml file.
+
+
+
+<jabber> |
+ ... |
+ >jsm> |
+ ... |
+ <browes> |
+
+ <!-- The Browes section is only important if you want to let users use
+ your transporst, this is no technical configuration of the Server or
+ it's Transports, it's just to information Jabber Client Aplication's
+ what Transports are available.
+ -->
+ |
+ <service type="aim" jid="aim.intranet.sussdorff-roy.com" name="AIM Transport"> |
+ <ns>jabber:iq:gateway</ns> |
+ <ns>jabber:iq:register</ns> |
+ </service> |
+
+ ..... |
+ </browes> |
+ </jsm> |
+
+
+
+
+
+
+ <!-- The Service section is very important, it tells jabberd wich Transports (lib's) to use,
+ their two ways to use a Transport 1. load/run it in the main jabberd proccess.
+ 2. load/run a Transport in a own jabberd proccess, and let the main jabberd proccess
+ connect to it via the network (prefered way )
+
+ As well the service Section configures the Transports (wich url they use etc.) -->
+
+ |
+
+ <!-- 1. To load/run a Transport in the main jabberd proccess, put a <service>-xml (like the example A.)
+ into the jabber.xml file to let the main jabberd proccess load/configure/run the Transport.
+ After you entered this Section you can restart your server with:
+
+ >jabberd/jabberd -c /usr/local/jabber/jabber.xml
+
+ and the Transport will be available to your users.
+ -->
+ |
+
+
+
+ Example A. :
+
+ <service id='aim.intranet.sussdorff-roy.com'> |
+ <aimtrans xmlns='jabber:config:aimtrans'> |
+ <aimbinarydir</home/bkiesbye/jabber/jabber-1.4.1/aim-transport-0.9.23/aim3.5.1670>/aimbinarydir< |
+ <vCard> |
+ <FN>AIM Transport</FN> |
+ <DESC>An AIM Transport!</DESC> |
+ <URL>http://aim.intranet.sussdorff-roy.com/</URL> |
+ </vCard> |
+ </aimtrans> |
+ <load> |
+ <aim_transport>./aim-transport-0.9.24c/src/aimtrans.so</aim_transport> |
+ </load> |
+ <t/service> |
+ |
+
+
+
+ <!-- 2. To let the main jabberd proccess connect to a Transport that runs in a seperate proccess.
+ you need a different styled sektion in your jabber.xml file (Example B) to let the main jabberd
+ know how to connect to a Transport that runs in a seperate proccess (may even on a seperate server)
+ , and a seperate Transport-jabber.xml (Example C.) file, to let the seperate jabberd proccess
+ load/configure/run The transport.
+-->
+ |
+
+
+
+ Example B.:
+
+
+ |
+ <service id="yahoo-linker"> |
+ <host>yahoo.intranet.sussdorff-roy.com</host> |
+ <accept> |
+ <ip>127.0.0.1</ip> <!-- Server IP the Transport runs on > |
+ <port>5237</port> <!-- the port to connect to (same as in Example C.) > |
+ <secret>passwd</secret> |
+ </accept> |
+ </service> |
+
+
+ |
+</jabber> |
+
+
+
+ The conntent of the extra file should look like this (yahoo-jabber.xml)
+
+
+
+ <!-- Example yahoo-jabber.xml configuration file --> |
+ |
+ <jabber> |
+ |
+ <!-- This section is to let this proccess know how to connect to the main jabberd proccess --> |
+ |
+ <service id="yahoo-linker"> |
+ <connect> |
+ <ip>127.0.0.1</ip> |
+ <port>5237</port> |
+ <secret>passwd</secret> |
+ </connect> |
+ <uplink/> |
+ </service> |
+ <pidfile>./yahoo-jabber.pid</pidfile> |
+ |
+ |
+
+ <!-- This section is to load/configure the Transport it self. --> |
+ |
+ <service id="yahoo.intranet.sussdorff-roy.com"> |
+ <load><yahoo_transport>./yahoo-transport.so</yahoo_transport></load> |
+ <config xmlns="jabber:config:yahoo"> |
+ <vCard> |
+ <NAME>Yahoo Transport</NAME> |
+ </vCard> |
+ <server>scs.yahoo.com</server> |
+ <port>5050</port> |
+ <charmap>CP1252</charmap> |
+ </config> |
+ </service> |
+ |
+</jabber> |
+
+
+
+You can now start your main jabberd proccess with:
+
+
+>jabberd/jabberd -c /usr/local/jabber/jabber.xml
+
+
+and to start the Transport in it's own proccess type:
+
+
+>jabberd/jabberd -c /usr/local/jabber/yahoo-jabber.xml
+
+
+It will atomaticly try to connect to the main jabberd proccess via the network,
+you can start/stop/crash the seperate Transport proccess without harming the main jabberd proccess.
+In case you run your Transport on a seperate Server you need a Jabber instalation on this Server as well.
+
+
+
+
+Back: Introduction
+Next: Jabber Client Installation
+
+
+
+
+
\ No newline at end of file
Index: openacs-4/packages/jabber/www/doc/ns-jabber-documentation.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/doc/ns-jabber-documentation.adp,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/jabber/www/doc/ns-jabber-documentation.adp 20 Oct 2004 19:36:51 -0000 1.1
@@ -0,0 +1,526 @@
+
+nsjabber procedure documentation
+
+
+
+
+Index of all the tcl functions related to the Jabber Client for the AOLServer
+All functions return 0 if the client is connected to the Jabber server,
+ and -1 if the client is not connected to the Jabber Server.
+
In the second case no action at all takes places.
+Index
+jb_getconnstate
+jb_addbuddy
+jb_addtransbuddy
+jb_chat
+jb_message
+jb_login
+jb_logout
+jb_remove
+jb_removebuddy
+jb_removetransbuddy
+jb_sendxml
+jb_invite
+jb_activeroommembers
+jb_activeconferencerooms
+jb_delconferenceroom
+jb_createconferenceroom
+jb_new_subject
+jb_append_subject
+jb_spellcheck
+jb_get_transport_url_from_id
+
+
+
+
+
+
+
+
+
+
+
+jb_getconnstate
+Overview
+Check if the Aolserver is online at the Jabber Server
+Syntax
+ jb_addbuddy
+Description
+jb_getconnstate Takes no parameters, returns 0 if the Aolserver is online or -1 if not.
+
+
+
+
+
+
+
+
+
+
+jb_addbuddy
+Overview
+Adding buddy('s) to a user roster.
+Syntax
+ [1] jb_addbuddy screenname screenname ...
+Description
+[1]jb_addbuddy This function is not limited to the amount of parameters,each parameter must be a valid
+ sreenname (a screenname is a jid with out the Server portion).
+ The first parameter has to be the screenname of the user who wants to add someones jid to his roster (e.g. the one who is triggering this function), all other parameters are the screennames to be added to the firsts roster.
+ If a screenname contains invalid charakters this function returns an error, if a screenname is spelled corectly but is not valid the function will not return an error and no action to this specific screenname takes place, but it will still apear in all valid screennames rosters.
+
+Syntax
+ [2]jb_addbuddy list1 list2 .... listn
+Description
+[2]jb_addbuddy works like [1]jb_addbuddy except that it gets past lists instaed of
+simple variables. A list consists of :
+
+
+ Index | Value | Description |
+ 1 | screen | The screenname of a user |
+ 2 | group | The (roster)group the jid should be added to.Defaults to "acs" |
+ 3 | name | The name to be displayed in the roster/chat.Defaults to screen.Requiers a group specified in index 2. |
+
+
+
+
+
+
+
+
+
+
+jb_addtransbuddy
+Overview
+Adding buddy from other IM Systems to the Roster of the Web Server Client to track their presence.
+Syntax
+ [1] jb_addtransbuddy screenname group Transport id
+Description
+[1]jb_addtransbuddy This function takes three parameters the first is a Screenname from any IM System that is available, the second is the ID of the IM System (transport) to wich the screenname belongs.You can find out wich ID a transport uses by calling the function jb_get_transport_id_from_symbol $symbol, where symbol is used in the db to identify a service (or transport in jabber terms) (aim ,msn , jabber , etc.)).
+
+
+
+
+
+
+
+
+
+
+jb_chat
+Overview
+Start a chat between two users.
+Syntax
+ jb_chat screenname screenname
+Description
+jb_chat
+This function takes two parameters, both are screennames (a screenname is a jid with out the Server portion) , it will start a chat between the specified
+ users. Even if both are offline they recive at least a "Hello" and all masseges send, when they go online the next time.If a screenname contains invalid charakters this function returns an error.
+NOTE
+Nothing
+
+
+
+
+
+
+
+jb_login
+Overview
+Log the AOLServer Client into the Jabber IM Server
+Syntax
+success jb_login void
+Description
+jb_loginThis function takes no parameters, it logs the community client into the Jabber Server. A call to this function should be done on AOLServer startup, or after a restart of the Jabber Server. It returns (success) 0 on a successfull login and -1 otherwise.
+NOTE
+A automatic login on AOLServer startup is in work but not implemented yet
+
+
+
+
+
+
+
+jb_logout
+Overview
+Log the AOLServer Client out of the Jabber IM Server
+Syntax
+ jb_logout void
+Description
+jb_logout This function takes no parameters, it logs the community client out of the Jabber Server.
+NOTE
+This function is not password protected any tcl programmer can call it.
+
+
+
+
+
+
+
+
+jb_message
+Overview
+Sending a message.
+Syntax
+ jb_message jid message
+Description
+jb_message
+This funktion takes two parameters, the first is a full jid (of any valid Jabber Server including its transports) , the second is the message String.
+This function dosen't return any errors yet.
+
+
+
+
+
+
+
+
+
+jb_remove
+Overview
+Unregistering a user at the Jabber Server.
+Syntax
+ jb_remove screenname
+Description
+jb_remove
+This function takes one parameter, the srcreenname of the user to be unregistered.If a screenname contains invalid charakters this function returns an error.
+The screenname and all information related to it, will be removed from the community db backend , as well as the Jabber acount relaeted to the screenname.
+The user will be imidiatly disconected from the Jabber server.
+
NOTE
+We work on a version of this function that returns a un-/successfull unregistration
+information.
+
+
+
+
+
+
+
+
+jb_removebuddy
+Overview
+Removing buddy('s) from a user roster.
+Syntax
+ [1] jb_removebuddy screenname screenname ...
+Description
+[1] jb_removebudy This function is not limited to the amount of parameters,each parameter must be a valid
+ sreenname (a screenname is a jid with out the Server portion).
+ The first parameter has to be the screenname of the user who wants to remove someones jid from his roster (e.g. the one who is triggering this function), all other parameters are the screennames to be removed from the firsts roster.
+ If a screenname contains invalid charakters this function returns an error, if a screenname is spelled corectly but is not valid the function will not return an error and no action to this specific screenname takes place. The roster held in the users prefered Jabber Client (if the user is online) will not change till the user does a relogin.
+
+Syntax
+ [2] jb_removebuddy list1 list2 .... listn
+Description
+[2]jb_removebuddy works like [1]jb_removebuddy exept that it gets past lists instaed of
+simple variables. A list consists of :
+
+
+ Index | Value | Description |
+ 1 | screen | The screenname of a user |
+ 2 | group | The (roster)group the jid should be removed from .Defaults to "acs" |
+
+
+
+
+
+
+
+
+
+jb_removetransbuddy
+Overview
+Removing a buddy from other IM Systems, from the Roster of the Web Server Client to stop tracking their presence.
+Syntax
+ jb_removetransbuddy screenname Transport_ID
+Description
+jb_removetransbuddy This function takes two parameters the first is a Screenname from any IM System that is available, the second is the Transport ID of the IM System (transport) to wich the screenname belongs.
+
+
+
+
+
+
+
+
+jb_sendxml
+Overview
+Sending raw XML.For developers to test new XML.
+Syntax
+ jb_sendxml XML
+Description
+jb_sendxml This function takes one parameter that consists of serialised XML (Serialised XML is a string of XML - Tag's).
+ It is used by developers only to test new XML , the XML will be directly send to the Jabber server without any tests.
+ If the Jabber server does not accept the XML as valid Jabber XML it will disconect the client.
+
+NOTE
+This function is not password protected any tcl programmer can call it.
+ It is also possible that the Jabber server disconnects the client, if bad XML is passed.
+
+
+
+
+
+
+
+jb_get_transport_url_from_id
+Overview
+Retrieving the URL of a transport from the local Jabber Server
+
+Syntax
+ URL jb_get_transport_url_from_id ID
+Description
+jb_get_transport_url_from_id This function takes one parameter, the ID of a transport. It returns the URL this Transport uses.It is manly used to form JID's .
+Example:
+
+ db_select get_jabber_information "SELECT screen , service FROM jb_screens WHERE user_id = :user_id"
+
+
+set users_jid "$screen@[jb_get_transport_url_from_id [jb_get_transport_id_from_symbol $service]]"
+
+
+jb_message $users_jid "This is your jid $users_jid"
+
+
+This view lines of code retrieve the abstract stored user information from the db. The screen name from one IM System and a Identifier for the service the screen name belongs to. The ns_jabber module stores all URL's
+of the local Jabber Server in an array (not tcl array) , it needs a correct id to identify the correct transport. The function jb_get_transport_id_from_symbol is written in tcl , it converts the symbol (easy to read) used to identify a service (transport in jabber terms) in your System into the correct transport id.
+
+
+
+
+
+
+
+
+
+
+
+jb_spellcheck
+Overview
+Tests if a screen name is spelled corectly
+
+Syntax
+int jb_spellcheck screen
+Description
+jb_spellcheck This function takes one parameter, a screen that should be checked for illigal Charackters. It returns 0 if no illigal charackters are used, and -1 if the screen contains illigal charackters.
+
+
+
+
+
+
+
+
+
+
+jb_createconferenceroom
+Overview
+ Start recording a chat from the local Jabber Server Conference service.
+
+Syntax
+int jb_createconferenceroom RoomName user_id Threadname creator_jid short description
+Description
+jb_createconferenceroom
+This function takes a RoomName the user_id of the creator , a topic name Threadname (which will only be used in case it is the first time this room is recorded), the creator_jid and a short description as parameters. This function will start to record the chat in the conference Room RoomName , if this Room hasn't been opened when it is called , it opens up this Room at the local Jabber Conference Service.
+If it is the first time a Chat in this Room is Recorded , it will also create a new entry in the table jb_conference_rooms (or an abstraction) and a new entry in the table jb_conference_room_threads
+(or an abstraction) . In case a Chat from this Room has been recorded before , it will create a new entry in the table jb_conference_room_threads (or an abstraction) only. In case of an error it returns -1 and 0 otherwise.
+
+
+
+
+
+
+
+
+
+
+
+jb_delconferenceroom
+Overview
+ Stop recording a chat from the local Jabber Server Conference service.
+
+Syntax
+int jb_delconferenceroom RoomName
+Description
+jb_delconferenceroom
+This function takes a RoomName as parameter, a call to this function will stop the recording of the Chat in the Room RoomName. The recording of this Room can be restarted by a call to jb_createconferenceroom.
+This function returns -1 on an error and 0 otherwise.
+
+
+
+
+
+
+
+
+
+jb_new_subject
+Overview
+ Sending a new subject (Topic) to a Room at the Jabber Server Conference service.
+
+Syntax
+int jb_new_subject RoomName New_Thread_name explaination_of_Thread_Name [optional existing thread_id]
+Description
+jb_new_subject
+This function takes a RoomName New_Thread_name explaination_of_Thread_Name and optional an existing thread_idas parameter, a call to this function will stop the recording of the current subject in the Room RoomName. The recording of this Room will go on, but every thing will eather be stored with the passed in thread_id (to append the discussion of an old subject) in this case New_Thread_name and explaination_of_Thread_Name will NOT overwrite the old values, or with a internaly new created thread_id if none is passed in. In the second case New_Thread_name and explaination_of_Thread_Name will be written into the db. (See SQL doc,check table jb_conference_room_threads for details).
+This function returns -1 on an error and 0 otherwise.
+
+
+
+
+
+
+
+
+
+jb_new_subject
+Overview
+ Sending a old subject (Topic) to a Room at the Jabber Server Conference service to append the recordings of this subject, incase the Room is not active it will be restarted automaticly.
+
+Syntax
+int jb_new_subject RoomName New_Thread_name explaination_of_Thread_Name existing_thread_id
+Description
+jb_new_subject
+This function takes a RoomName New_Thread_name explaination_of_Thread_Name and an existing thread_id as parameter, a call to this function will stop the recording of the current subject in the Room RoomName. The recording of this Room will go on, but every thing will eather be stored with the passed in thread_id (to append the discussion of an old subject) in this case New_Thread_name and explaination_of_Thread_Name will NOT overwrite the old values, in case the Room is not active at the moment it will be restated.
+This function returns -1 on an error and 0 otherwise.
+
+
+
+
+
+
+
+
+
+
+jb_activeconferencerooms
+Overview
+ Returns a ns_set with all Conference Rooms that get recorded at the moment.
+
+Syntax
+ns_set id jb_delconferenceroom
+Description
+jb_activeconferencerooms
+This function is called with no parameters , it returns a ns_set . This ns_set has the names of the active Rooms as its keys , and ns_set's as values. The ns_set's store more detailed information about the room .
Example:
+
+ set active_rooms [jb_activeconferencerooms]
+
+
+if {$active_rooms != -1} {
+
+ set room_count [ns_set size $active_rooms] }
+
+ set html "<TABLE> <tr> <th> Room Name </th> <th> Current Topic </th></tr>"
+
+for {set i 0} {i < $row_count} {incr i}{
+
+
+ append html "<tr><td>[ns_set key $active_rooms $i] </td><td>[ns_set value [ns_set value $active_rooms $i ] 1]</td></tr>"
+
+}
+
+append html "</table>"
+
+
+This example calls jb_activeconferencerooms and stores the ns_set ID in the variable active_rooms, it checks if the function hasent returned -1 (no error). Then it reads the size of the ns_set into the variable row_count . Then in a for loop , it loops through the returned ns_set putting it's keys in the first column of the table , and in the second column it first reads the ns_set ID from the keys (roomNames) value pair , and then from this ns_set it reads the value from position 1 (wich holds the topic of this room).
+
+
+Structur of the ns_set returned by jb_activeconferencerooms
+
Key | Value |
---|
Room A | ns_set_id A |
Room B | ns_set_id B |
+
+
+
+Structure of the ns_set from a value of a returned ns_set:
+
Key | Value | Position |
+ name | Room Name | 0 |
+ subject | Current Topic | 1 |
+ roomid | Room Id which identifies the Room in the db. | 2 |
+ threadid | Thread Id which identifies the current Topic in the db | 3 |
+
+
+
+
+
+
+
+
+
+
+
+
+jb_activeroommembers
+Overview
+ Returns a ns_set with all Members from a Conference Room that gets recorded at the moment.
+
+Syntax
+ns_set id jb_activeroommembers RoomName
+Description
+jb_activroommembers
+This function is called with a RoomName as parameter, it returns a ns_set . This ns_set has the current nicks (nick inside a Room) of the Members who are inside this Room as its keys , and ns_set's as values. The ns_set's store more detailed information about the Member .
+
+Structur of the ns_set returned by jb_activeroommembers:
+
Key | Value |
---|
NickName1 | ns_set_id 1 |
NickName2 | ns_set_id 2 |
+
+
+
+Structure of the ns_set from a value of a returned ns_set:
+
Key | Value | Position |
+ nick | AnyNickName | 0 |
+ jid | The jid of this Member | 1 |
+ status | The status of this Member (online,away,etc.) | 2 |
+ user_id | The acs user_id. (if available) | 3 |
+
+
+
+
+
+
+
+
+
+
+
+jb_invite
+Overview
+ Sends a Invite to a Conference Room , to a user.
+
+Syntax
+int jb_invite Jid RoomName Topic A_short_message Type
+
+Description
+jb_invite
+This function is called with
+a Jid to send the invite to, the RoomName to which the recipient should be invited to, the Topic that will be discused in the room, a A short message that lets the recipient know why he got invited , and the Type of the invite. The type can be 1 or 2 , standing for the versions v.1 and v.2. Right know v.1 is the prefered way to invite some one to a Conference Room, most Jabber Clients support this version , the Room RoomName doesn't needs to be recorded to send an invite to this Room. While v.2 is more power full but not all Jabber Clients support this version jet, the Room RoomName has to be recorded to send an invite to this Room.
+
+
+
+
+
+
+
+
+jb_new_subject
+Overview
+ Sends a new subject (Topic) to a Conference Room .
+
+Syntax
+int jb_new_subject RoomName TopicName Description_of_the_new_Topic
+
+Description
+jb_new_subject
+This function is called with
+a RoomName to send the subject change to, the TopicName to change to and a Discription of the new topic. This function worcks only on Rooms that get recorded at the moment.
+
+
+
+
+
+
+
+Back to design page
+
+Author:
+Bjoern Kiesbye
+
+Last modified: January 10 2003
+
+ Copyright Sussdorff & Roy 2001 |
+
Index: openacs-4/packages/jabber/www/doc/nsjabber.png
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/doc/nsjabber.png,v
diff -u
Binary files differ
Index: openacs-4/packages/jabber/www/doc/pl-sql-documentation.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/doc/pl-sql-documentation.adp,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/jabber/www/doc/pl-sql-documentation.adp 20 Oct 2004 19:36:51 -0000 1.1
@@ -0,0 +1,782 @@
+
+PL/SQL procedure documentation
+
+PL/SQL procedure documentation
+
+
+Following PL/SQL procedures and functions are invoked by the nsjabber-module. Please mind that some procedures are not useful for
+the datamodel of the OACS, specially those dealing with a conference room ID, because the conference room is implemented as an object so
+we cannot query the room ID, but this procedures have to be defined, because the nsjabber-module uses those procedures to be for
+general use.
+
+
+
+
+
+
+
+ Procedure jb_reg_validation
+ |
+
+
+
+ Overview
+ |
+
+
+
+    Validates whether user is in the database. If the user is in the database his regstate is changed.
+ |
+
+
+
+ Syntax
+ |
+
+
+
+    jb_reg_validation  screen_in  regstate
+ |
+
+
+
+ Return
+ |
+
+
+
+    No return
+ |
+
+
+
+ Description
+ |
+
+
+
+    Screen_in is the Jabber screen name of the user, who should be validated, and regstate is the new regstate for this user.
+ |
+
+
+
+
+
+
+
+
+ Procedure jb_update_status
+ |
+
+
+
+ Overview
+ |
+
+
+
+    Update user's online status.
+ |
+
+
+
+ Syntax
+ |
+
+
+
+    jb_update_status  status_in   resourc_in   screen_in   service_in
+ |
+
+
+
+ Return
+ |
+
+
+
+    No return
+ |
+
+
+
+ Description
+ |
+
+
+
+    Status_in is the new online status
+    resourc_in is the resource of the user (whether he is at home or...)
+    screen_in is the screen name of the user
+    service_in is the IM service of the user
+ |
+
+
+
+
+
+
+
+
+ Procedure jb_clear_status
+ |
+
+
+
+ Overview
+ |
+
+
+
+    Puts every status and resource on offline when the Jabber server logs in or out.
+ |
+
+
+
+ Syntax
+ |
+
+
+
+    jb_clear_status
+ |
+
+
+
+ Return
+ |
+
+
+
+    No return
+ |
+
+
+
+ Description
+ |
+
+
+
+    When the Jabber server logs in or out every status and resource is put on offline.
+ |
+
+
+
+
+
+
+
+
+ Function jb_subscription_check
+ |
+
+
+
+ Overview
+ |
+
+
+
+    Checks whether a certain Jabber ID is in our subscription table, which stores Jabber IDs, which need approval by the user.
+ |
+
+
+
+ Syntax
+ |
+
+
+
+    jb_subscription_check  jid_in
+ |
+
+
+
+ Return
+ |
+
+
+
+    Returns 0 if Jabber ID is not in jb_subscription_request, otherwise returns number n of subscription requests for this Jabber ID.
+ |
+
+
+
+ Description
+ |
+
+
+
+    jid_in is the requested Jabber ID.
+ |
+
+
+
+
+
+
+
+
+ Procedure jb_subscription_insert
+ |
+
+
+
+ Overview
+ |
+
+
+
+    Inserts a new subscription request into the database.
+ |
+
+
+
+ Syntax
+ |
+
+
+
+    jb_subscription_insert  jid_in
+ |
+
+
+
+ Return
+ |
+
+
+
+    No return
+ |
+
+
+
+ Description
+ |
+
+
+
+    jid_in is the Jabber ID, which should be inserted.
+ |
+
+
+
+
+
+
+
+
+ Procedure jb_subscription_del
+ |
+
+
+
+ Overview
+ |
+
+
+
+    Removes a subscription from the database.
+ |
+
+
+
+ Syntax
+ |
+
+
+
+    jb_subscription_del  jid_in
+ |
+
+
+
+ Return
+ |
+
+
+
+    No return
+ |
+
+
+
+ Description
+ |
+
+
+
+    jid_in is the Jabber ID, which should be removed from the database.
+ |
+
+
+
+
+
+
+
+
+ Function jb_get_user_id
+ |
+
+
+
+ Overview
+ |
+
+
+
+    Gets the user_id for a given Jabber screen name.
+ |
+
+
+
+ Syntax
+ |
+
+
+
+    jb_get_user_id  screen_in
+ |
+
+
+
+ Return
+ |
+
+
+
+    Returns the user_id
+ |
+
+
+
+ Description
+ |
+
+
+
+    screen_in is the Jabber screen name for which you want to get the user ID.
+ |
+
+
+
+
+
+
+
+
+ Function jb_get_jid
+ |
+
+
+
+ Overview
+ |
+
+
+
+    Gets the Jabber ID for a given user ID.
+ |
+
+
+
+ Syntax
+ |
+
+
+
+    jb_get_jid  user_id_in
+ |
+
+
+
+ Return
+ |
+
+
+
+    Returns the Jabber ID
+ |
+
+
+
+ Description
+ |
+
+
+
+    user_id_in is the User ID for which you want to get the Jabber ID.
+ |
+
+
+
+
+
+
+
+
+ Procedure jb_conference_thread_finish
+ |
+
+
+
+ Overview
+ |
+
+
+
+    Finishes a conference room thread.
+ |
+
+
+
+ Syntax
+ |
+
+
+
+    jb_conference_thread_finish  thread_id_in
+ |
+
+
+
+ Return
+ |
+
+
+
+    No return
+ |
+
+
+
+ Description
+ |
+
+
+
+    thread_id_in is the Conference Room Thread ID for the thread, which should be finished.
+ |
+
+
+
+
+
+
+
+
+ Procedure jb_conference_thread_new
+ |
+
+
+
+ Overview
+ |
+
+
+
+    Creates a new thread for a certain Conference Room.
+ |
+
+
+
+ Syntax
+ |
+
+
+
+    jb_conference_thread_new  thread_id_in   room_id_in   subject_in   creator_jid   creator_user_id
+ |
+
+
+
+ Return
+ |
+
+
+
+    No return
+ |
+
+
+
+ Description
+ |
+
+
+
+    thread_id_in is the new Thread ID
+    room_id_in is the Room ID for which a new thread is created
+    subject_in is the subject for this thread
+    creator_jid is the Jabber ID of the creator of this thread
+    creator_user_id is the User ID of the creator of this thread
+ |
+
+
+
+
+
+
+
+
+ Procedure jb_conference_message
+ |
+
+
+
+ Overview
+ |
+
+
+
+    Inserts a message in the database (jb_conference_protocols).
+ |
+
+
+
+ Syntax
+ |
+
+
+
+    jb_conference_message  jid_in   message_in   room_id_in   thread_id_in   user_id_in
+ |
+
+
+
+ Return
+ |
+
+
+
+    No return
+ |
+
+
+
+ Description
+ |
+
+
+
+    jid_in is the Jabber ID of the user who has written the message
+    message_in is the message
+    room_id_in is the Conference Room in which this message was written
+    thread_id_in is the Conference Room Thread in which this message was written
+    user_id_in is the User ID of the user who has written the message
+ |
+
+
+
+
+
+
+
+
+ Function jb_conference_room_check
+ |
+
+
+
+ Overview
+ |
+
+
+
+    Checks whether a Conference Room exists for a given room name.
+ |
+
+
+
+ Syntax
+ |
+
+
+
+    jb_conference_room_check  room_name_in
+ |
+
+
+
+ Return
+ |
+
+
+
+    Returns a room ID on success, otherwise -1 is returned
+ |
+
+
+
+ Description
+ |
+
+
+
+    room_name_in is the room name, which should be checked.
+ |
+
+
+
+
+
+
+
+
+ Procedure jb_conference_rooms_new
+ |
+
+
+
+ Overview
+ |
+
+
+
+    Creates a new Conference Room.
+ |
+
+
+
+ Syntax
+ |
+
+
+
+    jb_conference_rooms_new  room_id_in   user_id_in   creator_jid_in   name_in   description_in
+ |
+
+
+
+ Return
+ |
+
+
+
+    No return
+ |
+
+
+
+ Description
+ |
+
+
+
+    room_id_in is irrelevant for OACS datamodel, because we get the ID from acs_objects, but we have to give the procedure
+ a room ID to not generate an error
+    user_id_in is the user ID of the creator
+    creator_jid_in is the Jabber ID of the creator
+    name_in is the name of the new Conference Room
+    description_in is the description of the new Conference Room
+   
+    This procedure invokes the jb_conference_room.new procedure to create a new conference room
+ |
+
+
+
+
+
+
+
+
+ Function jb_conference_next_room_id
+ |
+
+
+
+ Overview
+ |
+
+
+
+    Gets a room ID (irrelevant for OACS datamodel. Function returns an integer value so the nsjabber module doesn't
+ generates an error.
+ |
+
+
+
+ Syntax
+ |
+
+
+
+    jb_conference_next_room_id
+ |
+
+
+
+ Return
+ |
+
+
+
+    Returns an integer value
+ |
+
+
+
+ Description
+ |
+
+
+
+    This procedure doesn't get a room ID, it only returns an integer value. This ID is used to create a new Conference Room,
+    but as seen in the procedure jb_conference_rooms_new we don't use the room_id.
+ |
+
+
+
+
+
+
+
+
+ Function jb_conference_next_thread_id
+ |
+
+
+
+ Overview
+ |
+
+
+
+    Gets a new Conference Room Thread ID.
+ |
+
+
+
+ Syntax
+ |
+
+
+
+    jb_conference_next_thread_id
+ |
+
+
+
+ Return
+ |
+
+
+
+    Returns a thread ID
+ |
+
+
+
+ Description
+ |
+
+
+
+    Gets a new thread ID from the corresponding sequence.
+ |
+
+
+
\ No newline at end of file
Index: openacs-4/packages/jabber/www/doc/requirements.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/doc/requirements.adp,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/jabber/www/doc/requirements.adp 20 Oct 2004 19:36:51 -0000 1.1
@@ -0,0 +1,70 @@
+
+
+Jabber Requirements
+
+
+
+
+
+Back: Conferencing admin help
+Next: Design
+
+
+1.Introduction
+
+This document explains brief what the Jabber Module does and what the
+requirements for the Jabber module are.
+
+2. What is Jabber and what features should the Jabber Module offer
+
+A Jabber server permits users to communicate between users even
+when they are in different Instant Messaging Services, so the Jabber
+server offers a common platform. Jabber server can support the most
+frequently used Im-Services like AIM, ICQ, MSN and Yahoo Messaging.
+You can have personal chats with users of these IM services, if you register yourself
+in one of these IM services. To chat with users not using Jabber you need the Enigma client. The
+conference rooms should offer the same features as the existing chat module.
+If you want more detailed information please refer to our introduction page:
+Introduction
+
+
+- General:
+
- Creation of new buddys and possibility to add buddys
+- Possibility of saving buddy or
+contact lists for every user where the im-screen-name, service name
+and actual status of the contact is stored.
+- The Jabber Module has to know whether the buddy is member of the
+OACS or not.
+- Set a permission whether a user can be added to our buddy list or
+not.
+- Messages should be logged with auditing information.
+- Messages should be stored if the jabber server cannot send the message due to internal
+problems.
+- Creation of conference rooms and threads for each room with
+permissioning system for each room.
+- Conference Rooms and Threads have unique display names and a description.
+- Creator of the room and creation date should be stored.
+- Protocols for every room and thread should be stored.
+- Permissioning system to allow to view the protocols.
+- Two ways to send messages, via webpages or via Jabber Applet.
+- Admin:
+
- Set permissioning for buddys and for conference rooms.
+- Add and delete buddys.
+- Add and deactivate IM-services.
+- Send messages.
+- View over registered users, online users and those, who want to be registered.
+- Create conference rooms or delete them.
+
+
+
+
+Back: Conferencing admin help
+Next: Design
+
+
+
+Author:
+Luis Mosteiro Fernandez
+
+Last modified: October 18 2002
+
Index: openacs-4/packages/jabber/www/doc/user-conference.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/doc/user-conference.adp,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/jabber/www/doc/user-conference.adp 20 Oct 2004 19:36:51 -0000 1.1
@@ -0,0 +1,114 @@
+
+
+User Conference Guide
+@context@
+
+
+Back: Conferencing
+Next: Conferencing admin help
+
+
+
+Before you start:
+
+If you want to use the Conferencing facility you should have a Jabber account already and you should be online with the Enigma Jabber Client (or any other Jabber Client that supports Conferencing, the Jabber Applet doesn�t support Conferencing ).
+
+
+How to get to the Conference facility :
+
+In your (dotLRN) Classes workspace you will find a Link that:
+1. Brings you to the Conferencing main page of this Class
+2. Let you directly enter this Classes default Conference Room (this facility is not implemented yet).
+
+The global main Page (Pic. 1) for conferencing is usually ClassHome/jabber/conference (if you don�t find it there email your System administrator).
+
+At the global main Page you will see a list displaying all the Conference Groups you are a member of, below you will see a List displaying all new Topics that have been discussed since you last visited this System. Clicking on one of the �View Log� links behind a new topic brings you directly to the page that shows the whole discussion on this Topic. If you follow one of the Group Name Links ,at the top, you get to the main Page of this Group.
+
+Pic. 1
+
+
+
+ On the Groups main Page (Pic. 2) you find two Links one to Create a new Top level Room , a second to Invite other Users to a Conference Room.
+ Below them you find a structure displaying all Rooms of this Group with all Topics that have been discussed.
+ Behind every room you find a Link ,in case other users are currently in this Room , saying Enter. If you are online with Enigma you enter this Room when you Click on the Enter Link. If no one is currently in this Room the Link will be named Restart, clicking this link will restart the Room and you will enter it, again.
+
+Pic. 2
+
+
+1. Invite other users.
+2. Create a new Top level Room.
+3.View a Log.
+4. Create a new Sublevel Room.
+ 5. Structure your Rooms and Topics (Example).
+
+
+1. Invite other Users:
+
+ Go to the Invite Page (Pic.2 ) (just follow the Link �Invite other Users to a Room� at the top of the page Pic. 2), here you find a List off all users which are currently online and in the same group you are in. . Select the once you want to invite , below you find a Selection Box with all active Rooms including the one you want to Invite your friends to , select it.
+ Note: You are able to select only those Rooms which are currently open (Re/Started).
+
+In the two Text Fields below enter some words that let the Users you are going to Invite know why you are inviting them and what you want to discuss.
+Now you can press the �Invite� button, every User you selected above will be asked to come to the Room you selected.
+At the bottom of the Page you find an extra Section from where you can restart Rooms as well, in case the Room you want to invite users to hasn�t been opened/restarted yet.
+
+Pic. 3
+
+
+
+ 2.Create a new Top level Room:
+
+To Create a new Top Level Room just click the link on the Groups main Page saying �Create new Top level Room �. A page will be displayed asking you to enter a new Room Name a description of this Room, as well as the name of the initial Topic and its description. Pressing the create Button will create and start a new Room which will be identified by the Room Name you have entered before.
+Back at the Groups main Page you find a Link saying �Create new' Top Level Room at the top of the Page, this Link will bring you to a page where you can create an new Room. This way to create a Room is a special one, it will be displayed at the very left of the Room and Topic hierarchy (as you can see it on Pic. 4.1+4.3), you should only use it when there are no Rooms in this Group yet , or if you want to start a completely different Topic to what is usually discussed in this Group
+
+Pic.4
+
+
+
+3. View Log
+
+You can view a Log from a previously recorded chat by clicking on the �View Log/Read� Link behind a Topic name (Pic. 4). On this Page the discussion in Room (RoomName) about the Topic (TopicName) will be displayed Line by Line (Pic. 5.3). Every Line starts with the nickname of the User who submitted the Text displayed in this Line. If this nickname belongs to a local User you can view it�s user information (including online and contact information) by clicking on his/her nickname. At the end of every Line the time , when the Text where submitted to the Room , is displayed.
+At the Top of every Log Page you have two options, the first is to pick up the Topic (Pic. 5.1). Be carefull using the Pickup option, there can be only one Topic at the time, discussed in one Room. Picking up a Topic means that everything submitted to the Room (RoomName) will be appended to this Log Page , until someone changes the Topic again. The system will warn you, in case someone discusses a different Topic in this Room at the moment, before it picks up a Topic.
+
+
+The second option is to create a sublevel Room (SubRoomName), a sublevel Room has all the features of a top level Room (RoomName) has, the difference is where it is going to be displayed on the Groups main Page. If you create a sublevel Room (SubRoomName ) from a Topic�s Log Page, the new Room name will be displayed next to this Topic�s name, just below and a little bit to the left (Pic. 4.4).
+
+Pic. 5
+
+
+
+
+4. Create a sublevel Room
+
+On the View Log Page you find a Form at the top of the page (Pic. 5.2), asking you for the new Rooms name ,this Rooms description , the name of the initial Topic and a description for this topic. When you press the 'Create' button at the bottom of the Form , the new Room (SubRoomName) will be created and you�ll be brought??? to the Invite Page to let you invite other users to the new Room.
+If you create a sublevel Room (SubRoomName ) from a Topic�s Log Page, the new Room name will be displayed next to this Topic�s name, just below and a little bit to the left (Pic. 4.4).
+
+
+
+5. Structure your Rooms and Topics (Example)
+
+There are two types of Rooms (top and sub level) both have the same features, their types differentiate them to let them be created/displayed in a structured way . This makes it easier for you and others, to navigate through and find the information, they are interested in.
+
+Overview:
+
+- Every Room can have more than one Topic , but only one Topic can be discussed in one Room at the time.
+
+- Sometimes one Room is just not enough for A. All Users B. All Topics
+ Case A.: Create a new Top level Room 2 and split the users in room Room 1 into two groups
+
+ Case B.: Create a new Top level Room 2 if you have to discuss
+ a absolute different Topic to what Topics you discuss in Room 1.
+ Or Create a new sub level Room 2 in case you want to discuss a Topic
+ that somehow belongs to an existing Topic, but is fare to complex to discuss everything under the existing Topics name
+
+
+Example:
+ Back at the Groups main Page you find a Link saying �Create new Top Level Room� at the top of the Page, this Link will bring you to a page where you can create a new Room. This way to create a Room is a special one, it will be displayed at the very left of the Room hierarchy, you should only use it when there are no Rooms in this Group yet , or if you want to start a completely different Topic to what is usually discussed in this Group. Lets say you work for a small company and you are a member of the Group �Computer Staff� , right now all you have to do is to administrate the existing Computer Network , you will need a Room (named �Administration�) where the members of the Computer Staff can meet to discuss there daily work. This should be a top level Room. Every morning the �Administration� Room is restarted , and every thing about new User accounts, Software updates etc. will be discussed in that Room. May be there are some sub level Rooms created for some bigger Software updates, that need to be discussed in an extra Room but still belong to the major Topic �Administration�.
+
+The company grows and decides to hire Software Developers to standardize the Software company uses with scripts, to serve the needs that grow with the Company. These Software Developers will belong to the Group �Computer Staff� as well, but you can�t let them discuss their Topics in the same Room the Administrators use. And logically the Development Topics don�t fit in a sub level Room , of the top level Room �Administrators�, even if only Developers use this Room it will be hard to find this discussions on development when they are placed somewhere in between administration Topics.
+
+This is the time to create a new top level Room named �Software_Development�, this Room can then be used by the Developers to discuss their Topics, and in case the Developers need information from the System Administrators (or vice versa) (the current version of the standard Software, for example) they can enter the �Administration� Room and ask their Questions, or browse older discussions of the �Administration� Room to find the information they need.
+
+
+Back: Conferencing
+Next: Conferencing admin help
+
Index: openacs-4/packages/jabber/www/doc/user-conference.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/doc/user-conference.tcl,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/jabber/www/doc/user-conference.tcl 20 Oct 2004 19:36:51 -0000 1.1
@@ -0,0 +1,13 @@
+ad_page_contract {
+
+ @email bkiesbye@sussdorff-roy.com
+
+
+} -properties {
+
+ conference_url:onevalue
+
+}
+
+set context "Conferencing"
+set conference_url "../conference"
\ No newline at end of file
Index: openacs-4/packages/jabber/www/doc/user-documentation-2.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/doc/user-documentation-2.adp,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/jabber/www/doc/user-documentation-2.adp 20 Oct 2004 19:36:51 -0000 1.1
@@ -0,0 +1,56 @@
+
+Index Site Structure
+
+
+Back: First Steps
+Next: Two different buddy lists
+
+
+General user documentation
+
+We will proceed now with the documentation of the index page structure
+
+After registering with our Jabber Server, you will see that the registration form disappeared and three links
+under the main grey frame appeared:
+
+- Edit your contact information
+- View your external contacts
+- Add external contact
+- Search users
+
+
+
+Edit your contact information
+
+You will be directed to a page where you can write your different screens in other Instant Messaging services.
+This allows the server to track down your online states in these IM services, so other users can see, whether
+you are online via other IM services, if they added you to their buddy list. Being aware of your other online
+states make it possible to send you messages to this other IM services via the web frontend. This means that even if
+you are offline with Jabber, users will see your other online states on the web page and be able to send you a message
+or invite you to an one-to-one chat.
+
+View your external contacts
+
+This page displays all your external contacts ordered by there last name. The external contacts will be
+displayed by first name, last name, Instant messaging service and Instant messaging screen name. Via this page
+you can edit the external contact or remove it from your external contact list clicking on the links on the right.
+
+
+Add external contact
+
+This page offers you the possibility to add an external contact filling the form displayed on the page. You have
+to fill at least the first names, last name and one of the textfield corresponding to one of the Instant messaging
+services.
+
+Search users
+
+Following these link you will be directed to a page, where you can search users, who are registered users of the
+community and registered users of our Jabber server and not in your friends buddy list yet. The users will be
+displayed by there first and last name. You can then easily add the users clicking on the link "Add".
+
+
+
+
+Back:First Steps
+Next:Two different buddy lists
+
\ No newline at end of file
Index: openacs-4/packages/jabber/www/doc/user-documentation-3.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/doc/user-documentation-3.adp,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/jabber/www/doc/user-documentation-3.adp 20 Oct 2004 19:36:51 -0000 1.1
@@ -0,0 +1,63 @@
+
+Two different buddy lists
+
+
+Back:index page structure
+Next: Conferencing
+
+
+General user documentation
+
+This page explains the two different buddy lists displayed on the index page. Furthermore it assets the
+different actions you can carry out with your buddy list via the web frontend. We want to remind you that changes
+in your buddy list accomplished via the web frontend will not effect the buddy lists in your clients unless it is
+about adding/removing Jabber users registered in our local Jabber server.
+
+
+The system differentiates between two buddy lists:
+
+
+- Your friends online
+- External friends online
+
+
+Your friends online
+
+These are your buddies, who are registered users both in the Community system and our Jabber server.
+The status of the user for each IM system is displayed assumed the user has written his contact information under
+"Edit your contact information" (previous page). You can remove the user clicking on the link "remove from list".
+
+Please note that the user will be displayed as online although he might not be online with Jabber, he just needs
+to be online in one of the other IM systems. Another possibility to be displayed is to move around the community
+pages. Our server tracks down registered users. You will see them as online users, but you will not be able to
+send them a message.
+By clicking on one of the icons, you will be redirected to a page, where you can write the
+user a message. Please note that the user will not have the chance to answer your message because you send the
+message via the web frontend. If you want to chat with the user, click on the chatlink or use your clients like the
+applet or Enigma.To send the user a message via the web frotnend allows you to send the user a message without
+being online yourself!
+
+External friends online
+
+This category displays the online users you explicitly added to your external contact list. You can send them
+a message clicking on the icon. To remove the user from the list, you have to follow the link "View your external
+contacts" (previous page).
+
+
+If you want to see other community users, who are online and not on your buddy list, you can follow the link
+at the bottom of the page. You will get to a page, where all other users are displayed depending on their last
+name prefix. You can add these users easily to your buddy list clicking on the link "Add to friends". Furthermore
+you can send the user a message. Users, who are just surfing through the page will also be displayed.
Please
+note that this page displays community users or system users!
+
+
+
+
+
+Remember: If you remove a user from "Your friends online" or add a user from "Other Community users online" it will effect
+the buddy lists of your clients!
+
+
+Back:index page structure
+Next: Conferencing
+
\ No newline at end of file
Index: openacs-4/packages/jabber/www/doc/user-documentation.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/doc/user-documentation.adp,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/jabber/www/doc/user-documentation.adp 20 Oct 2004 19:36:51 -0000 1.1
@@ -0,0 +1,75 @@
+
+First Steps
+
+
+Back: Jabber Client Installation
+Next: Index pagee structure
+
+
+General User documentation
+
+These page gives a user a general view over the Jabber Instant Messging System. It will explain,
+which different clients are at your disposal, which are the features of each client and the structure
+of the index site. Moreover you will learn how to edit your Instant Messaging information, how to
+add external contacts, edit and delete them.
+
+First Steps
+Now we will explain the first steps to be taken to register in our system.
+
+
+On your first visit to the index page of the Jabber system you will see a grey frame displaying
+your current messenger status. Due to the fact that at your first visit you are not already a registered
+user, you will see the avaiable Instant messenger platforms crossed and on the right you will see a form
+with which you will be able to register. Although you might have a Jabber ID already, we have to register a
+new Jabber Id for you on our Jabber server, so we can track your presence and distinguish you as an internal
+and not external user.
+
+
+Getting online: Which client shall I use?
+
+You have three ways to get online via three different clients. The links to the
+different clients are displayed in the grey frame with your messenger status:
+
+
+- Start Jabber Applet
+- Webstart Jabber Applet
+- Webstart Enigma 3 (advanced)
+
+
+Before explaining the functionality of the clients, an important notice:
+The clients work independently from our database! As a consequence, users you add via the Webfrontend will not be
+displayed on your client and vice versa. Only Jabber users of our local Jabber server can be displayed on the client when
+being added/removed through the webfrontend.
To display both users on the client and on the webfrontend you
+need to add them in both. The webfrontend adds functionality like sending messages without being online
+yourself or see people online without being online yourself!
+
+Start Jabber Applet
+
+This client offers a rudimentary Java Applet to start the Instant Messaging system. Please note that
+because of the limited functionality of a Java Applet you will not be able to use all the features of the system.
+You will be able to add Jabber buddies to your buddy list, categorising them in groups, sending them messages and of
+course see there online status.
You will not be able to add buddies of other Instant messaging services neither
+register yourself in other Instant messaging services or participate in Jabber conference rooms.
The Jabber Applet
+can be used from all over the world, you only need a Java enabled web browser and you do not need to download
+a huge program. So this client is especially useful for travellers and users, who want to get online fast without
+having to download a client.
+
+Webstart Jabber Applet
+
+This is the same Applet is mentioned above. Webstart downloads the Jabber Applet and archives it on the local
+hard disk, so the user do not has to download the Applet all the time. There is no difference in functionality.
+
+Webstart Enigma 3 (advanced)
+
+The Enigma client is equiped with all the functionality of other clients like Trillian. Plus the functionality
+offered by the Jabber Applet you can register in other Instant Messaging services via this client, add buddies to
+that Instant Messaging services and participate on Jabber conferences (group chats). But this client is not as
+small as the normal Jabber Applet, it is 3.5 mb huge, so you have to download it. The combination of Enigma with
+Webstart makes an explicit installation of the client Enigma unnecessary. Webstart downloads the client to your
+local hard disk and when you click on the link, Webstart starts the client without having installed it. This client
+should be the first choice of use because of the range of functionality, which is offered by the client.
+
+
+Back: Jabber Client Installation
+Next: Index page structure
+
Index: openacs-4/packages/jabber/www/doc/user.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/doc/user.adp,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/jabber/www/doc/user.adp 20 Oct 2004 19:36:51 -0000 1.1
@@ -0,0 +1,27 @@
+
+Users Documentation
+
+
+Back: Two different buddy lists
+Next: Conferencing (advanced)
+
+
+Conferencing for Users:
+
If you want to use the Conferencing facility you should have a Jabber account already and you should (but you dont have to ) be online with the Enigma Jabber Client (or any other Jabber Client that supports Conferencing , the Jabber Applet doesnt support Conferencing ).
+ Go to the page /jabber/conferencing you will see a list displaying all Conference Groups you are a member of, below you will see a List displaying all new Topics that have been discussed since you last visited this System. Clicking on one of the read links behind a new topic will bring you directly to the page that shows the whole discussion on this Topic.
+If you follow one of the Group Name Links ,at the top, you get to the main Page of this Group. On the Groups main Page You find two Links one to Create a new Top level Room , a second to Invite other Users to a Conference Room. Below them you find a structure displaying all Rooms of this Group with all Topics that have been discussed. Behind every room you find a Link ,in case other users are currently in this Room , saying Enter. If you are online with Enigma you enter this Room when you Click on the Enter Link. If no one is currently in this Room the Link will be named Restart, clicking this link will restart the Room and you will enter it.
+In case you restarted a Room you can now go to the Invite page (just follow the Link Invite other Users to a Room at the top of the page ), here you find a Selection Box with other Users (only those who are currently online will be displayed) . Select the once you want to invite (in case you want to invite more then one User , hold the Ctrl or Strg Key down while making your selections with the Mouse ) , below you find a Selection Box with all active Rooms including the one you have just restated , select it. In the two Text Fields below enter some words that let the Users your going to Invite know why your inviting them and what you want to discuss. Now you can press the Invite Button ,every User you selected above will be asked to come to the Room you selected. At the bottom of the Page you find an extra Section from where you can restart Rooms as well, in case the Room you want to invite users to hasnt been restarted yet.
+Back at the Groups main Page you find a Link saying Create new Top Level Room at the top of the Page, this Link will bring you to a page where you can create an new Room. This way to create a Room is a little special, it will be displayed at the very left of the Room hierarchy, you should only use it when there are no Rooms in this Group yet , or if you want to start a completely different Topic to what is usually discussed in this Group. Lets say you work for a little company and you are a member of the Group Computer Staff , right now all you have to do is to administrate the existing Computer Network , you will need a Room (named Administration) where the members of the Computer Staff can meet to discuss there daily work this should bee a top level Room. Every morning the Administration Room is restarted , and every thing about new User accounts, Software updates etc. will be discussed in that Room. May be there are some sub level Rooms created for some bigger Software updates , that need to bee discussed in an extra Room but still belong to the major Topic Administration .The company grows and decides to hire Software Developers that specialise the standard Software the company uses with scripts , to serve the needs that grow with the Company. Thais Software Developers will belong to the Group Computer Staff as well, but you cant let them discuss the Developers their Topics in the same Room the Administrators use. And logically the Development Topics dont fit in a sub level Room , of the top level Room Administrators , even if only Developers use this Room it will be hard to find this discussions on development when there placed some where in between administration Topics. This is the time to create a new top level Room named Software_Development, this Room can than be used by the Developers to discuss their Topics , and in case the Developers need information from the System Administrators (or vice versa) (the current version of the standard Software for example) they can enter the Administration Room and ask their Questions , or brows older discussions of the Administration Room to find the information they need.
+Creation of sublevel Rooms is only able from the Recorded Chat Page. Behind every Topic on the Group Main Page, you find a Link saying Read, following this Link will bring you to the Recorded Chat Page. At the top of the Page the Room name and the discussed Topic is displayed, beneath you find a List displaying the Chat Line by Line. At the beginning of each Line the first and the last name of the Person who wrote that Line is displayed. If you read something you are interested in, but you have further questions to one of the Persons who wrote it, you can click on the Persons first name you want to contact. This will create a new sublevel Room , and you and the Person you want to contact, will automatically receive an Invite (only when you are online ) to this new Room. This new sublevel Room will later be displayed, in the Room Topic Hierarchy, next (left below) to the Topic you are just reading.
+
+
+Back: Two different buddy lists
+Next: Conferencing (advanced)
+
+
+
+
+Author:
+Bjoern Kiesbye
+
+
Last modified: Janury 10 2003
Index: openacs-4/packages/jabber/www/doc/images/current.jpg
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/doc/images/current.jpg,v
diff -u
Binary files differ
Index: openacs-4/packages/jabber/www/doc/images/display-conference.jpg
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/doc/images/display-conference.jpg,v
diff -u
Binary files differ
Index: openacs-4/packages/jabber/www/doc/images/global-conference.jpg
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/doc/images/global-conference.jpg,v
diff -u
Binary files differ
Index: openacs-4/packages/jabber/www/doc/images/global-confernce.jpg
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/doc/images/global-confernce.jpg,v
diff -u
Binary files differ
Index: openacs-4/packages/jabber/www/doc/images/global-confernece.jpg
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/doc/images/global-confernece.jpg,v
diff -u
Binary files differ
Index: openacs-4/packages/jabber/www/doc/images/index-site.jpg
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/doc/images/index-site.jpg,v
diff -u
Binary files differ
Index: openacs-4/packages/jabber/www/doc/images/index-unregistered.jpg
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/doc/images/index-unregistered.jpg,v
diff -u
Binary files differ
Index: openacs-4/packages/jabber/www/doc/images/invite-conference.jpg
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/doc/images/invite-conference.jpg,v
diff -u
Binary files differ
Index: openacs-4/packages/jabber/www/doc/images/log-conference-1.jpg
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/doc/images/log-conference-1.jpg,v
diff -u
Binary files differ
Index: openacs-4/packages/jabber/www/doc/images/log-conference.jpg
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/doc/images/log-conference.jpg,v
diff -u
Binary files differ
Index: openacs-4/packages/jabber/www/doc/images/main-conference.jpg
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/doc/images/main-conference.jpg,v
diff -u
Binary files differ
Index: openacs-4/packages/jabber/www/doc/images/search.jpg
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/doc/images/search.jpg,v
diff -u
Binary files differ
Index: openacs-4/packages/jabber/www/image/aim.gif
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/image/aim.gif,v
diff -u
Binary files differ
Index: openacs-4/packages/jabber/www/image/aim_away.gif
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/image/aim_away.gif,v
diff -u
Binary files differ
Index: openacs-4/packages/jabber/www/image/aim_no.gif
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/image/aim_no.gif,v
diff -u
Binary files differ
Index: openacs-4/packages/jabber/www/image/aim_off.gif
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/image/aim_off.gif,v
diff -u
Binary files differ
Index: openacs-4/packages/jabber/www/image/aim_offline.gif
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/image/aim_offline.gif,v
diff -u
Binary files differ
Index: openacs-4/packages/jabber/www/image/aim_on.gif
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/image/aim_on.gif,v
diff -u
Binary files differ
Index: openacs-4/packages/jabber/www/image/aim_online.gif
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/image/aim_online.gif,v
diff -u
Binary files differ
Index: openacs-4/packages/jabber/www/image/icq_away.gif
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/image/icq_away.gif,v
diff -u
Binary files differ
Index: openacs-4/packages/jabber/www/image/icq_dnd.gif
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/image/icq_dnd.gif,v
diff -u
Binary files differ
Index: openacs-4/packages/jabber/www/image/icq_no.gif
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/image/icq_no.gif,v
diff -u
Binary files differ
Index: openacs-4/packages/jabber/www/image/icq_off.gif
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/image/icq_off.gif,v
diff -u
Binary files differ
Index: openacs-4/packages/jabber/www/image/icq_offline.gif
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/image/icq_offline.gif,v
diff -u
Binary files differ
Index: openacs-4/packages/jabber/www/image/icq_on.gif
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/image/icq_on.gif,v
diff -u
Binary files differ
Index: openacs-4/packages/jabber/www/image/icq_online.gif
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/image/icq_online.gif,v
diff -u
Binary files differ
Index: openacs-4/packages/jabber/www/image/icq_xa.gif
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/image/icq_xa.gif,v
diff -u
Binary files differ
Index: openacs-4/packages/jabber/www/image/irc_away.gif
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/image/irc_away.gif,v
diff -u
Binary files differ
Index: openacs-4/packages/jabber/www/image/irc_dnd.gif
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/image/irc_dnd.gif,v
diff -u
Binary files differ
Index: openacs-4/packages/jabber/www/image/irc_offline.gif
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/image/irc_offline.gif,v
diff -u
Binary files differ
Index: openacs-4/packages/jabber/www/image/irc_online.gif
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/image/irc_online.gif,v
diff -u
Binary files differ
Index: openacs-4/packages/jabber/www/image/irc_xa.gif
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/image/irc_xa.gif,v
diff -u
Binary files differ
Index: openacs-4/packages/jabber/www/image/jabber_away.gif
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/image/jabber_away.gif,v
diff -u
Binary files differ
Index: openacs-4/packages/jabber/www/image/jabber_dnd.gif
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/image/jabber_dnd.gif,v
diff -u
Binary files differ
Index: openacs-4/packages/jabber/www/image/jabber_off.gif
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/image/jabber_off.gif,v
diff -u
Binary files differ
Index: openacs-4/packages/jabber/www/image/jabber_offline.gif
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/image/jabber_offline.gif,v
diff -u
Binary files differ
Index: openacs-4/packages/jabber/www/image/jabber_on.gif
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/image/jabber_on.gif,v
diff -u
Binary files differ
Index: openacs-4/packages/jabber/www/image/jabber_online.gif
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/image/jabber_online.gif,v
diff -u
Binary files differ
Index: openacs-4/packages/jabber/www/image/jabber_xa.gif
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/image/jabber_xa.gif,v
diff -u
Binary files differ
Index: openacs-4/packages/jabber/www/image/msn_away.gif
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/image/msn_away.gif,v
diff -u
Binary files differ
Index: openacs-4/packages/jabber/www/image/msn_dnd.gif
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/image/msn_dnd.gif,v
diff -u
Binary files differ
Index: openacs-4/packages/jabber/www/image/msn_no.gif
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/image/msn_no.gif,v
diff -u
Binary files differ
Index: openacs-4/packages/jabber/www/image/msn_off.gif
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/image/msn_off.gif,v
diff -u
Binary files differ
Index: openacs-4/packages/jabber/www/image/msn_offline.gif
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/image/msn_offline.gif,v
diff -u
Binary files differ
Index: openacs-4/packages/jabber/www/image/msn_on.gif
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/image/msn_on.gif,v
diff -u
Binary files differ
Index: openacs-4/packages/jabber/www/image/msn_online.gif
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/image/msn_online.gif,v
diff -u
Binary files differ
Index: openacs-4/packages/jabber/www/image/msn_xa.gif
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/image/msn_xa.gif,v
diff -u
Binary files differ
Index: openacs-4/packages/jabber/www/image/yahoo_away.gif
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/image/yahoo_away.gif,v
diff -u
Binary files differ
Index: openacs-4/packages/jabber/www/image/yahoo_dnd.gif
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/image/yahoo_dnd.gif,v
diff -u
Binary files differ
Index: openacs-4/packages/jabber/www/image/yahoo_no.gif
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/image/yahoo_no.gif,v
diff -u
Binary files differ
Index: openacs-4/packages/jabber/www/image/yahoo_off.gif
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/image/yahoo_off.gif,v
diff -u
Binary files differ
Index: openacs-4/packages/jabber/www/image/yahoo_offline.gif
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/image/yahoo_offline.gif,v
diff -u
Binary files differ
Index: openacs-4/packages/jabber/www/image/yahoo_on.gif
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/image/yahoo_on.gif,v
diff -u
Binary files differ
Index: openacs-4/packages/jabber/www/image/yahoo_online.gif
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/image/yahoo_online.gif,v
diff -u
Binary files differ
Index: openacs-4/packages/jabber/www/image/yahoo_xa.gif
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/image/yahoo_xa.gif,v
diff -u
Binary files differ
Index: openacs-4/packages/jabber/www/resources/E4-neu.jar
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/resources/E4-neu.jar,v
diff -u
Binary files differ
Index: openacs-4/packages/jabber/www/resources/skin.jar
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber/www/resources/skin.jar,v
diff -u
Binary files differ
Index: openacs-4/packages/jabber-portlet/jabber-portlet.info
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber-portlet/jabber-portlet.info,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/jabber-portlet/jabber-portlet.info 20 Oct 2004 19:43:20 -0000 1.1
@@ -0,0 +1,28 @@
+
+
+
+
+ Jabber Portlet
+ Jabber Portlets
+ f
+ f
+
+
+
+ Bjoern Kiesbye
+ Malte Sussdorff
+ Portlet for the Jabber Package.
+ Sussdorff & Roy GbR
+ Portlet for the Jabber Package.
+ 2
+
+
+
+
+
+
+
+
+
+
+
Index: openacs-4/packages/jabber-portlet/sql/oracle/jabber-portlet-create.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber-portlet/sql/oracle/jabber-portlet-create.sql,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/jabber-portlet/sql/oracle/jabber-portlet-create.sql 20 Oct 2004 19:43:21 -0000 1.1
@@ -0,0 +1,159 @@
+
+-- This is free software distributed under the terms of the GNU Public
+-- License version 2 or higher. Full text of the license is available
+-- from the GNU Project: http://www.fsf.org/copyleft/gpl.html
+
+
+
+declare
+ ds_id portal_datasources.datasource_id%TYPE;
+begin
+ ds_id := portal_datasource.new(
+ name => 'jabber_portlet',
+ description => 'Displays the jabber'
+ );
+
+ -- 4 defaults procs
+
+ -- shadeable_p
+ portal_datasource.set_def_param (
+ datasource_id => ds_id,
+ config_required_p => 't',
+ configured_p => 't',
+ key => 'shadeable_p',
+ value => 't'
+);
+
+ -- shaded_p
+ portal_datasource.set_def_param (
+ datasource_id => ds_id,
+ config_required_p => 't',
+ configured_p => 't',
+ key => 'shaded_p',
+ value => 'f'
+);
+
+ -- hideable_p
+ portal_datasource.set_def_param (
+ datasource_id => ds_id,
+ config_required_p => 't',
+ configured_p => 't',
+ key => 'hideable_p',
+ value => 't'
+);
+
+ -- user_editable_p
+ portal_datasource.set_def_param (
+ datasource_id => ds_id,
+ config_required_p => 't',
+ configured_p => 't',
+ key => 'user_editable_p',
+ value => 'f'
+);
+
+ -- link_hideable_p
+ portal_datasource.set_def_param (
+ datasource_id => ds_id,
+ config_required_p => 't',
+ configured_p => 't',
+ key => 'link_hideable_p',
+ value => 't'
+);
+
+
+end;
+/
+show errors
+
+
+declare
+ foo integer;
+begin
+ -- create the implementation
+ foo := acs_sc_impl.new (
+ 'portal_datasource',
+ 'jabber_portlet',
+ 'jabber_portlet'
+ );
+
+end;
+/
+show errors
+
+declare
+ foo integer;
+begin
+
+ -- add all the hooks
+ foo := acs_sc_impl.new_alias (
+ 'portal_datasource',
+ 'jabber_portlet',
+ 'GetMyName',
+ 'jabber_portlet::get_my_name',
+ 'TCL'
+ );
+
+ foo := acs_sc_impl.new_alias (
+ 'portal_datasource',
+ 'jabber_portlet',
+ 'GetPrettyName',
+ 'jabber_portlet::get_pretty_name',
+ 'TCL'
+ );
+
+ foo := acs_sc_impl.new_alias (
+ 'portal_datasource',
+ 'jabber_portlet',
+ 'Link',
+ 'jabber_portlet::link',
+ 'TCL'
+ );
+
+ foo := acs_sc_impl.new_alias (
+ 'portal_datasource',
+ 'jabber_portlet',
+ 'AddSelfToPage',
+ 'jabber_portlet::add_self_to_page',
+ 'TCL'
+ );
+
+ foo := acs_sc_impl.new_alias (
+ 'portal_datasource',
+ 'jabber_portlet',
+ 'Show',
+ 'jabber_portlet::show',
+ 'TCL'
+ );
+
+ foo := acs_sc_impl.new_alias (
+ 'portal_datasource',
+ 'jabber_portlet',
+ 'Edit',
+ 'jabber_portlet::edit',
+ 'TCL'
+ );
+
+ foo := acs_sc_impl.new_alias (
+ 'portal_datasource',
+ 'jabber_portlet',
+ 'RemoveSelfFromPage',
+ 'jabber_portlet::remove_self_from_page',
+ 'TCL'
+ );
+
+end;
+/
+show errors
+
+declare
+ foo integer;
+begin
+
+ -- Add the binding
+ acs_sc_binding.new (
+ contract_name => 'portal_datasource',
+ impl_name => 'jabber_portlet'
+ );
+end;
+/
+show errors
Index: openacs-4/packages/jabber-portlet/sql/postgresql/jabber-portlet-create.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber-portlet/sql/postgresql/jabber-portlet-create.sql,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/jabber-portlet/sql/postgresql/jabber-portlet-create.sql 20 Oct 2004 19:43:21 -0000 1.1
@@ -0,0 +1,212 @@
+-- Copyrigth Bjoern Kiesbye
+-- Author Bjoern Kiesbye
+-- email: Kiesbye@theservice.de Bjoern_kiesbye@web.de
+-- This is free software distributed under the terms of the GNU Public
+-- License version 2 or higher. Full text of the license is available
+-- from the GNU Project: http://www.fsf.org/copyleft/gpl.html
+
+-- dotLRN is distributed in the hope that it will be useful, but WITHOUT ANY
+-- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+-- FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+-- details.
+--
+
+--
+-- /jabber-portlet/sql/postgresql/calendar-full-portlet-create.sql
+--
+
+-- Creates Jabber portlet
+
+-- Copyright (C) 2004 Bjoern Kiesbye
+-- @author Bjoern Kiesbye (kiesbye@theservice.de bjoern_kiesbye@web.de)
+-- @creation-date 2004-07-18
+-- ported to postres 2004-07-18
+
+
+create function jabber_inline_0()
+returns integer as '
+declare
+ ds_id portal_datasources.datasource_id%TYPE;
+begin
+ ds_id := portal_datasource__new(
+ ''jabber_portlet'',
+ ''Displays the jabber''
+ );
+
+
+ -- the standard 4 params
+
+ -- shadeable_p
+ perform portal_datasource__set_def_param (
+ ds_id,
+ ''t'',
+ ''t'',
+ ''shadeable_p'',
+ ''t''
+);
+
+
+
+ -- shaded_p
+ perform portal_datasource__set_def_param (
+ ds_id,
+ ''t'',
+ ''t'',
+ ''shaded_p'',
+ ''f''
+);
+
+ -- hideable_p
+ perform portal_datasource__set_def_param(
+ ds_id,
+ ''t'',
+ ''t'',
+ ''hideable_p'',
+ ''t''
+ );
+
+
+
+ -- user_editable_p
+ perform portal_datasource__set_def_param (
+ ds_id,
+ ''t'',
+ ''t'',
+ ''user_editable_p'',
+ ''f''
+);
+
+
+ -- link_hideable_p
+ perform portal_datasource__set_def_param (
+ ds_id,
+ ''t'',
+ ''t'',
+ ''link_hideable_p'',
+ ''t''
+);
+
+
+
+ return 0;
+
+end;' language 'plpgsql';
+select jabber_inline_0();
+drop function jabber_inline_0();
+
+-------------------------------------------------------------------------------
+
+
+create function jabber_inline_0()
+returns integer as '
+declare
+ foo integer;
+begin
+ -- create the implementation
+ foo := acs_sc_impl__new (
+ ''portal_datasource'',
+ ''jabber_portlet'',
+ ''jabber_portlet''
+ );
+
+ return 0;
+
+end;' language 'plpgsql';
+select jabber_inline_0();
+drop function jabber_inline_0();
+
+
+------------------------------------------------------------------------------
+
+create function jabber_inline_0()
+returns integer as '
+declare
+ foo integer;
+begin
+
+ -- add all the hooks
+ foo := acs_sc_impl_alias__new (
+ ''portal_datasource'',
+ ''jabber_portlet'',
+ ''GetMyName'',
+ ''jabber_portlet::get_my_name'',
+ ''TCL''
+ );
+
+ foo := acs_sc_impl_alias__new (
+ ''portal_datasource'',
+ ''jabber_portlet'',
+ ''GetPrettyName'',
+ ''jabber_portlet::get_pretty_name'',
+ ''TCL''
+ );
+
+ foo := acs_sc_impl_alias__new (
+ ''portal_datasource'',
+ ''jabber_portlet'',
+ ''Link'',
+ ''jabber_portlet::link'',
+ ''TCL''
+ );
+
+ foo := acs_sc_impl_alias__new (
+ ''portal_datasource'',
+ ''jabber_portlet'',
+ ''AddSelfToPage'',
+ ''jabber_portlet::add_self_to_page'',
+ ''TCL''
+ );
+
+ foo := acs_sc_impl_alias__new (
+ ''portal_datasource'',
+ ''jabber_portlet'',
+ ''Show'',
+ ''jabber_portlet::show'',
+ ''TCL''
+ );
+
+ foo := acs_sc_impl_alias__new (
+ ''portal_datasource'',
+ ''jabber_portlet'',
+ ''Edit'',
+ ''jabber_portlet::edit'',
+ ''TCL''
+ );
+
+ foo := acs_sc_impl_alias__new (
+ ''portal_datasource'',
+ ''jabber_portlet'',
+ ''RemoveSelfFromPage'',
+ ''jabber_portlet::remove_self_from_page'',
+ ''TCL''
+ );
+
+ return 0;
+
+end;' language 'plpgsql';
+select jabber_inline_0();
+drop function jabber_inline_0();
+
+
+-------------------------------------------------------------------------------
+
+
+create function jabber_inline_0()
+returns integer as '
+declare
+ foo integer;
+begin
+
+ -- Add the binding
+ perform acs_sc_binding__new (
+ ''portal_datasource'',
+ ''jabber_portlet''
+ );
+
+ return 0;
+
+end;' language 'plpgsql';
+select jabber_inline_0();
+drop function jabber_inline_0();
+
+
Index: openacs-4/packages/jabber-portlet/tcl/jabber-portlet-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber-portlet/tcl/jabber-portlet-procs.tcl,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/jabber-portlet/tcl/jabber-portlet-procs.tcl 20 Oct 2004 19:43:21 -0000 1.1
@@ -0,0 +1,109 @@
+
+ad_library {
+
+ Jabber Portal Library
+
+ @author Bjoern Kiesbye
+ @email bkiesbye@sussdorff-roy.com
+
+
+}
+
+
+ namespace eval jabber_portlet {
+
+
+
+ ad_proc -private get_my_name {
+ } {
+ return "jabber_portlet"
+ }
+
+ ad_proc -public get_pretty_name {
+ } {
+ return "Jabber"
+ }
+
+ ad_proc -private my_package_key {
+ } {
+ return "jabber-portlet"
+ }
+
+ ad_proc -public link {
+ } {
+ return "jabber"
+ }
+
+ ad_proc -public add_self_to_page {
+ {-portal_id:required}
+ {-package_id:required}
+ } {
+ Adds a Jabber PE to the given portal
+ ( We don't need to append we have only one package_id at all )or appends the given Jabber package_id
+ to the forums PE that already on the portal
+ } {
+ return [portal::add_element_parameters \
+ -portal_id $portal_id \
+ -portlet_name [get_my_name] \
+ -pretty_name [get_pretty_name] \
+ -value $package_id \
+ ]
+ }
+
+ ad_proc -public show {
+ cf
+ } {
+ } {
+ portal::show_proc_helper \
+ -package_key [my_package_key] \
+ -config_list $cf \
+ -template_src "jabber-portlet"
+
+ }
+
+
+ ad_proc -public edit {
+ } {
+ } {
+
+ #nothing
+ return
+ }
+
+
+ ad_proc -public remove_self_from_page {
+ {portal_id:required}
+ {package_id:required}
+ } {
+ Removes a Jabber PE from the given page or just the given jabber's package_id
+ } {
+ portal::remove_element_parameters \
+ -portal_id $portal_id \
+ -portlet_name [get_my_name] \
+ -value $package_id
+ }
+
+
+ ad_proc -public new {
+
+ Create a new Jabber instance for dotlrn , just return the single instace package_id.
+ } {
+ {-forum_id ""}
+ {-name:required}
+ {-charter ""}
+ {-presentation_type flat}
+ {-posting_policy open}
+ {-package_id:required}
+ } {
+
+
+ return [apm_package_id_from_key jabber]
+ }
+
+
+
+
+}
+
+
+
Index: openacs-4/packages/jabber-portlet/www/index.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber-portlet/www/index.tcl,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/jabber-portlet/www/index.tcl 20 Oct 2004 19:43:21 -0000 1.1
@@ -0,0 +1,191 @@
+Who's online?
+
+The IM System is not avaiable, please try it again later!
+
+Go to the Conference facility
+This page displays users, who are currently online. It differentiate between three user groups. Internal, registered Jabber users, who are on your buddy list including their
+other Instant Messaging contacts. Then external friends, who are not registered in @system_name@, but you want to have on your buddy list. At last other internal, registered Jabber users, who are online. This provides you information, who is online, if you want to begin a chat. Furthermore you do not have to search internal users to add them to your buddy list, you have to click only on the link to add them to your friend list.
+
+
+
+
+
+
+ Your Messenger Status |
+
+
+
+
+
+ |
+
+
+ Log in to and out off the @system_name@ Jabber by clicking on the icon
+ Note: The moment you log into the @system_name@ Jabber, you will automatically
+ be logged into other services that you have authorised the Jabber
+ to connect with. At this point, the Jabber be your default messenger
+ for all services. Other instant messaging clients on your desktop
+ will not work when you are logged in through the Jabber.
+
+
+
+
+
+ Jabber Applet Active
+
+
+
+
+
+
+
+ |
+
+
+ |
+
+
+
+
+
+
+ The screen name you typed in is already in use!
+
+
+ Please fill in the form to register with Jabber!
+
+ |
+
+
+
+
+ |
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+ Your Friends online |
+
+
+ @friend_status.first_names@ @friend_status.last_name@ |
+ Remove from list |
+
+
+
+ |
+ |
+
+
+
+
+
+
+
+
+
+
+ External Friends Online |
+
+
+
+
+
+ @external_status.first_names@ @external_status.last_name@ |
+ Contact from IM-Addressbook |
+
+
+
+ |
+
+
+
+ |
+
+
+
+
+If you want to see all community users online, who are not on your buddy list, follow this link: Current Community users online
+
+ On a public Internet service, the number of casual surfers (unregistered) will
+ outnumber the registered users by at least 10 to 1. Thus there could be many
+ more people using this service than it would appear.
+
+
+
Index: openacs-4/packages/jabber-portlet/www/jabber-portal.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber-portlet/www/jabber-portal.tcl,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/jabber-portlet/www/jabber-portal.tcl 20 Oct 2004 19:43:21 -0000 1.1
@@ -0,0 +1,166 @@
+
+
+#reading the information from dotlrn
+array set config $cf
+
+set shaded_p $config(shaded_p)
+set list_of_package_ids $config(package_id)
+#set one_instance_p [ad_decode [llength $list_of_package_ids] 1 1 0]
+#set can_read_private_data_p [acs_privacy::user_can_read_private_data_p -object_id [ad_conn package_id]]
+
+
+set reg_error "nothing"
+set url_to_conference_group [jb_start_conference_room_for_group_url 15331]
+set system_name [ad_system_name]
+set trans_symbol [list]
+set return_url [ad_conn url]
+set context ""
+set user_id [ad_conn user_id]
+ad_maybe_redirect_for_registration
+set reg_need "0"
+set connstate [jb_getconnstate]
+set user_invisible [util::whos_online::check_invisible $user_id ]
+set all_invisible [util::whos_online::all_invisible_user_ids]
+if {[llength $all_invisible] == 0 } {lappend all_invisible 0}
+set all_users [util::whos_online::all_user_ids]
+
+#----------------------------------------------------check, whether user is registered-------------------------------------
+
+if { ![db_0or1row is_user_reg_with_jabber { select (user_id) as reg_check, (uc.jabber_regstate) as reg_stat
+ from jb_user_jabber_information uc where user_id = :user_id }]} {
+ set reg_need "1"
+}
+
+ad_form -name user-register -action user-register -form {
+ {jscreen:text(text) {label "Jabber Screen:
"}}
+ {passwd:text(password) {label "Password:
"}}
+ {return_url:text(hidden) {value "index"}}
+}
+
+#-----------------------------------------------------get avaiable services--------------------------------------------------
+
+db_foreach get_services { Select service from jb_services where active_check_p = 't'} {
+ set user_states($service) "offline"
+ set online_state($service) "offline"
+ set online_state_name($service) $service
+ set online_ext($service) "offline"
+ set online_ext_name($service) $service
+ set online_any($service) "offline"
+ set online_any_name($service) $service
+ append trans_symbol " $service"
+}
+
+#-------------------------------------get the different user states for the IM services-----------------------------------------
+
+multirow create user_status service status
+
+db_foreach get_users_state {
+ select lower(sn.status) as status,
+ lower(sn.service) as service
+ FROM jb_screens sn , jb_services
+ WHERE sn.user_id = :user_id
+ AND sn.service = jb_services.service
+ AND jb_services.active_check_p = 't'
+} {
+ multirow append user_status $service $status
+ set user_states($service) $status
+} if_no_rows {
+
+ db_foreach get_services {
+ select service
+ from jb_services
+ where active_check_p = 't'
+ } {
+ multirow append user_status $service "no"
+ set user_states($service) "offline"
+ }
+
+}
+
+set jabber_start "offline"
+
+for {set j 0} { $j < [llength $trans_symbol]} {incr j} {
+ if { [lindex $trans_symbol $j] == "jabber" } {
+ if { [set user_states([lindex $trans_symbol $j])] == "offline" } {
+ set jabber_start "offline"
+ } else {
+ set jabber_start "online"
+ }
+ }
+ if { [lindex $trans_symbol $j] == "aim" } {
+ if { [set user_states([lindex $trans_symbol $j])] != "offline" } {
+ set aim_on 1
+ } else {
+ set aim_on 0
+ }
+ }
+}
+
+#-------------------------------internal friend online ------------------------------------------------------------------------------
+
+set friend_is_online_p 0
+set onliners [util::whos_online::user_ids]
+
+multirow create friend_status first_names last_name friend_user_id friend_screen_id service status create_jid chat
+
+
+db_foreach get_a_friend "
+ select (persons.person_id) as friends_user_id ,
+ persons.first_names as first_names, persons.last_name as last_name
+ from persons
+ where persons.person_id IN (Select jb_screens.user_id from jb_screens, jb_friends
+ where jb_friends.user_id = :user_id
+ and jb_screens.screen_id = jb_friends.friend_screen_id
+ and jb_screens.user_id IS NOT NULL)
+ AND persons.person_id NOT IN [tcl_to_oracle_list $all_invisible] " {
+
+ lappend friends_online_list $friends_user_id
+
+
+ db_foreach get_his_online_states "
+ SELECT (sn.screen_id) as friend_screen_id,
+ (sn.status) as status ,
+ sn.im_screen_name,
+ lower(sn.service) as service
+ FROM jb_screens sn
+ WHERE sn.user_id = :friends_user_id
+ AND ( ( lower(sn.status) != 'offline' ) or (sn.user_id IN [tcl_to_oracle_list $onliners]) )
+
+ " {
+ set online_state($service) $status
+ multirow append friend_status $first_names $last_name $friends_user_id $friend_screen_id $service $status [jb_create_jid $im_screen_name $service] [jb_best_chat $friends_user_id]
+ set friend_is_online_p 1
+ }
+
+}
+
+#--------------------------External friends----------------------------------------------------------------------
+
+set external_is_online_p 0
+
+multirow create external_status friend_screen_id first_names last_name combi_name service status create_jid
+
+
+db_foreach get_friends_users_online {
+ select (ef.friend_screen_id) as ef_id ,
+ (ef.friend_first_name) as first_names ,
+ (ef.friend_last_name) as last_name
+ FROM jb_friends ef
+ WHERE ef.user_id = :user_id
+ AND ef.friend_screen_id IN ( Select screen_id from jb_screens
+ where user_id is null )
+} {
+
+ db_foreach get_this_online_anys { select (sn.status) as status ,
+ (sn.service) as service, sn.im_screen_name
+ FROM jb_screens sn
+ WHERE sn.screen_id = :ef_id
+ AND sn.status != 'offline'
+ } {
+ set online_ext($service) $status
+ multirow append external_status $ef_id $first_names $last_name "$first_names $last_name" $service $status [jb_create_jid $im_screen_name $service]
+ set external_is_online_p 1
+ }
+
+}
+
Index: openacs-4/packages/jabber-portlet/www/jabber-portlet.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber-portlet/www/jabber-portlet.adp,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/jabber-portlet/www/jabber-portlet.adp 20 Oct 2004 19:43:21 -0000 1.1
@@ -0,0 +1,64 @@
+
+
+
+The IM System is not avaiable, please try it again later!
+
+
+
+
+
+
+ Please fill in the form to register with Jabber! You can change the system created Screen to what ever Screen you prefer, using the Carackters A to z , 0 to 9 or the "." (dot)
+ |
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Community members online at: |
+
+
+Jabber | Msn | Icq | Aim | Yahoo |
+@jabber_number@ | @msn_number@ | @icq_number@ | @aim_number@ | @yahoo_number@ |
+
+List Members |
+
+
+
+
+
+
+
+
+
+
Index: openacs-4/packages/jabber-portlet/www/jabber-portlet.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/jabber-portlet/www/jabber-portlet.tcl,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/jabber-portlet/www/jabber-portlet.tcl 20 Oct 2004 19:43:21 -0000 1.1
@@ -0,0 +1,207 @@
+
+##cluster##
+if {[ad_canonical_server_p] != 1 } {
+ set canonical_p 0
+ set canonical_address "http://[ad_parameter -package_id [ad_acs_kernel_id] CanonicalServer server-cluster]"
+} else {
+ set canonical_p 1
+}
+##cluster##
+
+
+#reading the information from dotlrn
+array set config $cf
+
+set shaded_p $config(shaded_p)
+#set list_of_package_ids $config(package_id)
+#set one_instance_p [ad_decode [llength $list_of_package_ids] 1 1 0]
+#set can_read_private_data_p [acs_privacy::user_can_read_private_data_p -object_id [ad_conn package_id]]
+#set comm_id $config(community_id)
+set community_id [dotlrn_community::get_community_id_from_url]
+
+set reg_error "nothing"
+#set url_to_conference_group [jb_start_conference_room_for_group_url 15331]
+set system_name [ad_system_name]
+set trans_symbol [list]
+set return_url [ad_conn url]
+set context ""
+set user_id [ad_conn user_id]
+set reg_need "0"
+set not_registred false
+
+ad_maybe_redirect_for_registration
+
+if {$canonical_p == 1} {
+ set connstate [jb_getconnstate]
+} else {
+ set canonical_url "$canonical_address"
+ append canonical_url "/SYSTEM/jb-getconnstate.tcl"
+ set connstate [ns_httpget $canonical_url]
+}
+
+set user_invisible [whos_online::check_invisible $user_id ]
+set all_invisible [whos_online::all_invisible_user_ids]
+if {[llength $all_invisible] == 0 } {lappend all_invisible 0}
+set all_users [whos_online::all_user_ids]
+
+#----------------------------------------------------check, whether user is registered-------------------------------------
+
+if { ![db_0or1row is_user_reg_with_jabber { select (user_id) as reg_check, (uc.jabber_regstate) as reg_stat
+ from jb_user_jabber_information uc where user_id = :user_id }]} {
+ set reg_need "1"
+
+
+ set not_registred true
+
+ ad_form -name user-register -action jabber/user-register -form {
+ {jscreen:text(text) {label "Jabber Screen:
"} {value "[jb_get_leagel_screen $user_id]"}}
+ {passwd:text(password) {label "Password:
"}}
+ {return_url:text(hidden) {value "index"}}
+}
+
+
+}
+
+#-----------------------------------------------------get avaiable services--------------------------------------------------
+
+db_foreach get_services { Select service from jb_services where active_check_p = 't'} {
+ set user_states($service) "offline"
+ set online_state($service) "offline"
+ set online_state_name($service) $service
+ set online_ext($service) "offline"
+ set online_ext_name($service) $service
+ set online_any($service) "offline"
+ set online_any_name($service) $service
+ append trans_symbol " $service"
+}
+
+#-------------------------------------get the different user states for the IM services----------------------------------------
+
+
+
+
+multirow create user_status service status
+
+db_foreach get_users_state {
+ select lower(sn.status) as status,
+ lower(sn.service) as service
+ FROM jb_screens sn , jb_services
+ WHERE sn.user_id = :user_id
+ AND sn.service = jb_services.service
+ AND jb_services.active_check_p = 't'
+} {
+ multirow append user_status $service $status
+ set user_states($service) $status
+} if_no_rows {
+
+ db_foreach get_services {
+ select service
+ from jb_services
+ where active_check_p = 't'
+ } {
+ multirow append user_status $service "no"
+ set user_states($service) "offline"
+ }
+
+}
+
+
+set jabber_start "offline"
+
+for {set j 0} { $j < [llength $trans_symbol]} {incr j} {
+ if { [lindex $trans_symbol $j] == "jabber" } {
+ if { [set user_states([lindex $trans_symbol $j])] == "offline" } {
+ set jabber_start "offline"
+ set user_is_online false
+ set after_login_url [ad_conn url]
+
+
+ template::form::create user-login -action "/jabber/jabber-login"
+ template::element::create user-login return_url -widget hidden -value "[ad_conn url]"
+ template::element::create user-login Login -widget submit -lable Login -value reg
+
+
+ } else {
+ set jabber_start "online"
+ set user_is_online true
+ }
+ }
+ if { [lindex $trans_symbol $j] == "aim" } {
+ if { [set user_states([lindex $trans_symbol $j])] != "offline" } {
+ set aim_on 1
+ } else {
+ set aim_on 0
+ }
+ }
+}
+
+
+set jabber_number 0
+if { [db_0or1row number_of_onliners_jabber {SELECT count (js.status) as jabber_number
+ FROM group_distinct_member_map gdmm , jb_screens js, persons pe
+ WHERE gdmm.member_id = js.user_id
+ AND gdmm.member_id = pe.person_id
+ AND js.service = 'jabber'
+ AND js.status != 'offline'
+ AND gdmm.group_id = :community_id } ] } {
+
+
+
+}
+
+set icq_number 0
+if { [db_0or1row number_of_onliners_icq {SELECT count (js.status) as icq_number
+ FROM group_distinct_member_map gdmm , jb_screens js, persons pe
+ WHERE gdmm.member_id = js.user_id
+ AND gdmm.member_id = pe.person_id
+ AND js.service = 'icq'
+ AND js.status != 'offline'
+ AND gdmm.group_id = :community_id } ] } {
+
+
+
+}
+
+
+set msn_number 0
+if { [db_0or1row number_of_onliners_msn {SELECT count (js.status) as msn_number
+ FROM group_distinct_member_map gdmm , jb_screens js, persons pe
+ WHERE gdmm.member_id = js.user_id
+ AND gdmm.member_id = pe.person_id
+ AND js.service = 'msn'
+ AND js.status != 'offline'
+ AND gdmm.group_id = :community_id } ] } {
+
+
+
+}
+
+
+set yahoo_number 0
+if { [db_0or1row number_of_onliners_yahoo {SELECT count (js.status) as yahoo_number
+ FROM group_distinct_member_map gdmm , jb_screens js, persons pe
+ WHERE gdmm.member_id = js.user_id
+ AND gdmm.member_id = pe.person_id
+ AND js.service = 'yahoo'
+ AND js.status != 'offline'
+ AND gdmm.group_id = :community_id } ] } {
+
+
+
+}
+
+
+
+set aim_number 0
+if { [db_0or1row number_of_onliners_aim {SELECT count (js.status) as aim_number
+ FROM group_distinct_member_map gdmm , jb_screens js, persons pe
+ WHERE gdmm.member_id = js.user_id
+ AND gdmm.member_id = pe.person_id
+ AND js.service = 'aim'
+ AND js.status != 'offline'
+ AND gdmm.group_id = :community_id } ] } {
+
+
+
+}
+