IPlanet Instant Communication API -- Pseudo DTD

Warning: This is not a stable specification.  It WILL change.

A lot of this comes from the CPIM presence draft and related.  Some modifications have been made to better suit our immeditate needs.  The draft is located at http://search.ietf.org/internet-drafts/draft-ietf-impp-cpim-01.txt .
 

Presence information
====================

<!ELEMENT presence (tuple+)>
<!ATTLIST presence
          publisher     %URI;           ""
          lastUpdate    %TIMESTAMP;     ""
          publisherInfo %URI;           "">

<!ELEMENT tuple (note)>
<!ATTLIST tuple
          destination    %URI;          #REQUIRED
          status         %PSTATUS;      #REQUIRED
          expires        %TIMESTAMP;    ""
          tupleInfo      %URI;          "">
<!ELEMENT note (#PCDATA)>
 

Example:

<presence publisher='fred@example.com'
          lastUpdate='14 May 2000 13:02:00 -0800'
          publisherInfo='http://www.example.com/fred/'>
    <tuple destination='im:fred@example.com'
           status='open'
           expires='14 May 2000 14:02:00 -0800'>
        <note>I'm happy today</note>
    </tuple>
</presence>

 

Conference events
=================
<!ELEMENT cevent (subject*)>
<!ATTLIST cevent
          publisher     %URI;           "">

<!ELEMENT subject>
<!ATTLIST subject
          destination   %URI;           #REQUIRED
          accesslevel   %ACCESSLEVEL;   ""
          status        %CSTATUS;       "">
 

Example:

<cevent>
    <subject destination='fred@example.com'
             accesslevel='INVITE' />
</cevent>

 
 

data types
==========

<!--
    ACCESSLEVEL := "NONE" |    \    ; no privileges
                   "LISTEN" |  \    ; can only receive
                   "PUBLISH" | \    ; can receive an send
                   "LIST" |    \    ; can list participants
                   "INVITE" |  \    ; can invite other users
                   "MANAGE"         ; can manage other participants'
                                    ; privileges

    All other values are ignored
-->
<!ENTITY  % ACCESSLEVEL  "NMTOKENS">

<!--
    CSTATUS := "on" |      \    ; user has joined
               "off" |     \    ; user has left

    All other values are ignored
-->
<!ENTITY  % CSTATUS  "NMTOKENS">

<!--
    URI: a RFC 2396 string
    Examples:
        http://iplanet.com
        im:fred@example.com
-->
<!ENTITY  % URI  "CDATA">
 

<!--
    TIMESTAMP: a sanitized RFC 822 date  (no comments)
    Example:
        14 May 2000 14:02:00 -0800
-->
<!ENTITY  % TIMESTAMP  "CDATA">
 

<!--
    PSTATUS: presence status value

    PSTATUS     := "OPEN" |      \  ; online; available
                   "CLOSED" |    \  ; offline; unreachable
                   "FORWARDED" | \  ; offline; one-way messages forwarded
                   "IDLE" |      \  ; online; probably not responsive
                   "AWAY" |      \  ; online; unavailable
                   "BUSY"           ; online; not fully available

-->
<!ENTITY  % PSTATUS  "NMTOKENS">