Transport Level Commands

The commands a CS and CUA use to establish a session, resume it, and terminate it are known as CSTP (Calendar Server Transfer Protocol). They are:

All commands have a command ID that's generated by the CUA to keep commands separate on the server.

CAPABILITY

The CAPABILITY command is used by a CUA to request information from the CS about what features it has. It's covered in section 7.1.5 of the CAP draft. CAPABILITY is usually one of the first things a CUA says in a session; occasionally, STARTTLS is first. After CAPABILITY details are returned by the CS, the CS usually sends an AUTHENTICATE.

AUTHENTICATE

The AUTHENTICATE command is used by a CUA to login to a CS as a particular user. It's covered in section 7.1.3 of the CAP draft. An AUTHENTICATE command starts a series of CS challenges and CUA responses. Once the user's properly authenticated, there's usually a STARTTLS, unless there's already been a STARTTLS at the beginning of the session.

There's also a special subcase, the AUTHENTICATE ANONYMOUS command, which lets some random user connect to a CS for queries. See section 7.1.3.1 for more detail.

IDENTIFY

The IDENTIFY command is used by a CUA to change the identity (UPN) it's using for calendar access. If the authentication that's been established allows the authenticated user to assume the new identity, the session gets a new identity. It's covered in section 7.1.8 of the CAP draft.

STARTTLS

The STARTTLS command is used by a CUA to start negotiating transport level security according to RFC2222. After the security protocol has been negotiated, the server sends an AUTHENTICATE challenge to the CUA. Only one STARTTLS command can happen in a session. If the CUA has already successfully authenticated and issues a STARTTLS, the CS should drop connection.

STARTTLS is covered in section 7.1.10 of the CAP draft.

CALIDEXPAND

The CALIDEXPAND command is used by a CUA to find out what calendars on a CS have a child relationship to a given calendar ID. CALIDEXPAND is covered in section 7.1.4 of the CAP draft.

UPNEXPAND

The UPNEXPAND command is used by a CUA to find out what users on a CS are members of a given user group. UPNEXPAND is covered in section 7.1.8.1 of the CAP draft, which is out of number sequence with the rest of the sections. (Look after STARTTLS.)

SENDDATA

The SENDDATA command is used by a CUA to send MIME-encapsulated calendar data (iCalendar). SENDDATA is covered in section 7.1.8 of the CAP draft.

ABORT

The ABORT command is used by a CUA to stop a given command that's pending on the CS. It can be used without an argument to stop execution of the most recent command, or with a command ID to stop execution of a particular command. ABORT is covered in section 7.1.2 of the CAP draft.

CONTINUE

The CONTINUE command is used by a CUA to specify that it doesn't want the server to timeout on the last SENDDATA request the client sent. (In other words, "I know that request is taking a long time to answer; I still want the answer.") CONTINUE is covered in section 7.1.6 of the CAP draft.

DISCONNECT

The DISCONNECT command is used by a CUA to specify that it wants the server to drop connection. DISCONNECT is covered in section 7.1.7 of the CAP draft.