| Version 5.4
Introduction
Installation
SysAdmin
Network
Objects
Storage
E-mail
Real-Time
Access
Services
Directory
Clusters
Applications
Miscellaneous
Licensing
WebMail
Pronto!
PBX
Overview | POP | IMAP | WebUser | XIMSS | MAPI | AirSync | WebDAV | FTP | TFTP | ACAP
# WebDAV Module Root Element Configuring the Root Element DAV Module Principal Elements Configuring the Prinicipal Elements DAV Module File Access Configuring the FileDAV Module CalDAV Configuring the CalDAV Module Using the Publish/Subscribe (ICS) method. CardDAV Configuring the CardDAV Module The WebDAV protocol is an extension of the HTTP protocol. Various clients use it to access and manage various data resources. The CommuniGate Pro WebDAV module implements authenticated access to Account File Storage, Calendar, Task, and Contacts mailboxes. The CommuniGate Pro WebDAV implementation is a part of the HTTP User module, and that module settings are applied to the WebDAV functions, too.

## Root Element

The WebDAV component provides a read-only "root" element, with the following URLs:
`http://servername[:port]/`
or
`https://servername[:port]/` URL
where `port` is a HTTP User Module port (8100, 9100 by default).

Various WebDAV (CalDAV, CardDAV, etc.) clients can be configured to use this Root Element. They can retrieve the Root Element properties, which direct them to other URLs (realms), implementing the respective protocols.

### Configuring the Root Element Module

The WebDAV protocol works over the HTTP protocol, using the HTTP User Module. Open the HTTP User Module settings, and find the Sub-Protocols panel:

Sub-Protocols
RootDAV: |

Use the RootDAV Log setting to specify the type of information the Root Element DAV module should put in the Server Log.

The Root Element DAV module records in the System Log are marked with the `RootDAV` tag.

## Principal Elements

The WebDAV protocol and protocols based on WebDAV allow users to access resources of other users if the proper access rights have been granted.
To support WebDAV ACLs (Access Control Lists), each CommuniGate Pro users is granted a unique URL that represents that user in the Access Control Lists. These URLs are:
`http://servername[:port]/UserDAV/accountName@domainName`
or
`https://servername[:port]/UserDAV/accountName@domainName/` URL
where `port` is a HTTP User Module port (8100, 9100 by default).

### Configuring the Principal Elements DAV Module

The WebDAV protocol works over the HTTP protocol, using the HTTP User Module. Open the HTTP User Module settings, and find the Sub-Protocols panel:

Sub-Protocols
UserDAV: |

Use the UserDAV Log setting to specify the type of information the Principal Elements DAV module should put in the Server Log.

The Principal Elements DAV module records in the System Log are marked with the `UserDAV` tag.

## File Access

The CommuniGate Pro Server implements access to Account File Storage via the WebDAV protocol (FileDAV).

All FileDAV data requests must be authenticated: the user should specify the Account name and password. The Account and its Domain must have the WebSite Service enabled.

The "root" of the user File Storage has the following URL:
`http://servername[:port]/WebDAV/`
or
`https://servername[:port]/WebDAV/`
where `port` is a HTTP User Module port (8100, 9100 by default).

To Access the File Storage of some other user, the following URLs should be used:

`http://servername[:port]/WebDAV/~accountName/`
or
`https://servername[:port]/WebDAV/~accountName/`
where `port` is a HTTP User Module port (8100, 9100 by default), and the accountName is the name of the Account to access. If this Account is located in a different Domain, user accountName@domainName instead.

### Configuring the FileDAV Module

The WebDAV protocol works over the HTTP protocol, using the HTTP User Module. Open the HTTP User Module settings, and find the Sub-Protocols panel:

Sub-Protocols
FileDAV: |

Use the FileDAV Log setting to specify the type of information the FileDAV module should put in the Server Log.

The FileDAV module records in the System Log are marked with the `FileDAV` tag.

## CalDAV

The CommuniGate Pro Server supports the CalDAV protocol, a WebDAV protocol extension.

This protocol allows CalDAV clients to access and modify Calendaring and Tasks data stored in the user Account(s).

A full-featured CalDAV client can detect the proper URL for CalDAV operations itself, when it is directed to the WebDAV Root element:
`http://servername[:port]/`
or
`https://servername[:port]/` URL
where `port` is a HTTP User Module port (8100, 9100 by default).

If the CalDAV client cannot detect the CalDAV URL location, it should be specified explicitly:

  `http://servername:port/CalDAV/`

  `https://servername:port/CalDAV/`

Some CalDAV clients need to be configured to access a particular Calendar or Task collection. Any Calendaring or Tasks Mailbox can be accessed using the following URLs:

  `http://servername:port/CalDAV/mailboxName/`

  `https://servername:port/CalDAV/mailboxName/`

If the mailboxName ends with the `ics` file extension, the Server removes that extension.

All CalDAV data requests must be authenticated: the user should specify the Account name and password. The Account and its Domain must have the WebCal Service enabled.

If the user Domain Name or Domain Alias name is mail.company.com, the HTTP User port is 80, and the Mailbox name is `Calendar`, the access URL is

  `http://mail.company.com/CalDAV/Calendar`

or

  `https://mail.company.com/CalDAV/Calendar.ics`

Any Calendar-type or Tasks-type Mailbox can be accessed this way. To access a Mailbox in a different Account, the full Mailbox name should be specified:

  `http://mail.company.com/CalDAV/~username/Calendar`

The authenticated user should have proper access rights to retrieve and/or modify data in Mailboxes belonging to other users.

The CalDAV checks the Mailbox Subscription list and reports all Calendar-type Mailboxes in other Accounts included into this list.

The CalDAV module stores Calendar and Tasks attachments in the Account File Storage, inside the `private/caldav/` directory.

### Configuring the CalDAV Module

The CalDAV protocol works over the HTTP protocol, using the HTTP User Module. Open the HTTP User Module settings, and find the Sub-Protocols panel:

Sub-Protocols
CalDAV: |

Use the CalDAV Log setting to specify the type of information the CalDAV module should put in the Server Log.

The CalDAV module records in the System Log are marked with the `CalDAV` tag.

### Using the Publish/Subscribe (ICS) method

The CommuniGate Pro HTTP User module implements an older, pre-CalDAV method of dealing with data in Calendar and Task Mailboxes.
The module allows client applications to retrieve all items using the iCalendar format. This operation is often called subscribing to Calendar data.
The module also allows client applications to rewrite the Mailbox content new iCalendar-formatted data (to publish calendaring data).

The URL for Calendaring data is:

  `http://servername:port/CalendarData/mailboxName`

  `https://servername:port/CalendarData/mailboxName`

where `port` is the HTTP User port (8100, 9100 by default).
If the mailboxName ends with the `ics` file extension, the server removes that extension.
If the mailboxName is empty, the Server uses the Default Calendar name.

All Calendaring data requests must be authenticated: the user should specify the Account name and password. The Account and its Domain must have their WebCal Service enabled.

If the user Domain Name or Domain Alias name is mail.company.com, the HTTP User port is 80, and the Mailbox name is `Calendar`, the access URL is

  `http://mail.company.com/CalendarData/Calendar`

or

  `http://mail.company.com/CalendarData/Calendar.ics`

Any Calendar-type or Tasks-type Mailbox can be accessed this way. To access a Mailbox in a different Account, the full Mailbox name should be specified:

  `http://mail.company.com/CalendarData/~username/Calendar.ics`

The authenticated user should have proper access rights to retrieve and/or modify data in Mailboxes belonging to other users.

The HTTP module supports the following HTTP operations for the /CalendarData/ realm:

- GET/HEAD: the Mailbox is parsed, and all items containing iCalendar information are retrieved as one VCALENDAR object with VEVENT and VTODO elements. If the Mailbox is a foreign one, the authenticated user must have the `Select` access right for that Mailbox.
- DELETE: the Mailbox is parsed and all items containing iCalendar information are removed. If the Mailbox is a foreign one, the authenticated user must have the Delete access right for that Mailbox.
- PUT: the HTTP request body is parsed as a VCALENDAR object. All parsed VEVENT and VTODO elements are added to the Mailbox as separate items. If parsing of any element failed, no item is added. If the Mailbox is a foreign one, the authenticated user must have the Insert access right for that Mailbox.

Some applications do not support the DELETE method. These applications expect that the PUT operation removes all previous information from the Calendar Mailbox.
To support these applications, use the `CalendarDataDel` realm instead of the `CalendarData` realm, or include the `DeleteAll="1"` parameter into the URL.
In this case each PUT operation will be preceded with a virtual DELETE operation removing all existing iCalendar items from the Mailbox.

## CardDAV

The CommuniGate Pro Server supports the CardDAV protocol, a WebDAV protocol extension.

This protocol allows CardDAV clients to access and modify Contacts data stored in the user Account(s).

A full-featured CardDAV client can detect the proper URL for CardDAV operations itself, when it is directed to the WebDAV Root element:
`http://servername[:port]/`
or
`https://servername[:port]/` URL
where `port` is a HTTP User Module port (8100, 9100 by default).

If the CardDAV client cannot detect the CardDAV URL location, it should be specified explicitly:

  `http://servername:port/CardDAV/`

  `https://servername:port/CardDAV/`

Some CardDAV clients need to be configured to access a particular Contacts collection. Any Contacts Mailbox can be accessed using the following URLs:

  `http://servername:port/CardDAV/mailboxName/`

  `https://servername:port/CardDAV/mailboxName/`

If the mailboxName ends with the `vcf` file extension, the Server removes that extension.

All CardDAV data requests must be authenticated: the user should specify the Account name and password. The Account and its Domain must have the WebSite Service enabled.

If the user Domain Name or Domain Alias name is mail.company.com, the HTTP User port is 80, and the Mailbox name is `Contacts`, the access URL is

  `http://mail.company.com/CardDAV/Contacts`

or

  `https://mail.company.com/CardDAV/Contacts.vcf`

Any Contacts-type Mailbox can be accessed this way. To access a Mailbox in a different Account, the full Mailbox name should be specified:

  `http://mail.company.com/CardDAV/~username/Contacts`

The authenticated user should have proper access rights to retrieve and/or modify data in Mailboxes belonging to other users.

The CalDAV checks the Mailbox Subscription list and reports all Contacts-type Mailboxes in other Accounts included into this list.

### Configuring the CardDAV Module

The CardDAV protocol works over the HTTP protocol, using the HTTP User Module. Open the HTTP User Module settings, and find the Sub-Protocols panel:

Sub-Protocols
CardDAV: |

Use the CardDAV Log setting to specify the type of information the CardDAV module should put in the Server Log.

The CardDAV module records in the System Log are marked with the `CardDAV` tag.

CommuniGate® Pro Guide. Copyright © 1998-2012, Stalker Software, Inc.