Documentation

Horde_ActiveSync
in package

The Horde ActiveSync server. Entry point for performing all ActiveSync operations.

Tags
license

http://www.horde.org/licenses/gpl GPLv2

copyright

2009-2020 Horde LLC (http://www.horde.org)

author

Michael J Rubinsky mrubinsk@horde.org

Table of Contents

AIRSYNCBASE_ACCURACY  = 'AirSyncBase:Accuracy'
AIRSYNCBASE_ADD  = 'AirSyncBase:Add'
AIRSYNCBASE_ALLORNONE  = 'AirSyncBase:AllOrNone'
AIRSYNCBASE_ALTITUDE  = 'AirSyncBase:Altitude'
AIRSYNCBASE_ALTITUDEACCURACY  = 'AirSyncBase:AltitudeAccuracy'
AIRSYNCBASE_ANNOTATION  = 'AirSyncBase:Annotation'
AIRSYNCBASE_ATTACHMENT  = 'AirSyncBase:Attachment'
AIRSYNCBASE_ATTACHMENTS  = 'AirSyncBase:Attachments'
AIRSYNCBASE_BODY  = 'AirSyncBase:Body'
AIRSYNCBASE_BODYPART  = 'AirSyncBase:BodyPart'
AIRSYNCBASE_BODYPARTPREFERENCE  = 'AirSyncBase:BodyPartPreference'
AIRSYNCBASE_BODYPREFERENCE  = 'AirSyncBase:BodyPreference'
AIRSYNCBASE_CITY  = 'AirSyncBase:City'
AIRSYNCBASE_CLIENTID  = 'AirSyncBase:ClientId'
AIRSYNCBASE_CONTENT  = 'AirSyncBase:Content'
AIRSYNCBASE_CONTENTID  = 'AirSyncBase:ContentId'
AIRSYNCBASE_CONTENTLOCATION  = 'AirSyncBase:ContentLocation'
AIRSYNCBASE_CONTENTTYPE  = 'AirSyncBase:ContentType'
AIRSYNCBASE_COUNTRY  = 'AirSyncBase:Country'
AIRSYNCBASE_DATA  = 'AirSyncBase:Data'
AIRSYNCBASE_DELETE  = 'AirSyncBase:Delete'
AIRSYNCBASE_DISPLAYNAME  = 'AirSyncBase:DisplayName'
AIRSYNCBASE_ESTIMATEDDATASIZE  = 'AirSyncBase:EstimatedDataSize'
AIRSYNCBASE_FILEREFERENCE  = 'AirSyncBase:FileReference'
AIRSYNCBASE_INSTANCEID  = 'AirSyncBase:InstanceId'
AIRSYNCBASE_ISINLINE  = 'AirSyncBase:IsInline'
AIRSYNCBASE_LATITUDE  = 'AirSyncBase:Latitude'
AIRSYNCBASE_LOCATION  = 'AirSyncBase:Location'
AIRSYNCBASE_LOCATIONURI  = 'AirSyncBase:LocationUri'
AIRSYNCBASE_LONGITUDE  = 'AirSyncBase:Longitude'
AIRSYNCBASE_METHOD  = 'AirSyncBase:Method'
AIRSYNCBASE_NATIVEBODYTYPE  = 'AirSyncBase:NativeBodyType'
AIRSYNCBASE_POSTALCODE  = 'AirSyncBase:PostalCode'
AIRSYNCBASE_PREVIEW  = 'AirSyncBase:Preview'
AIRSYNCBASE_STATE  = 'AirSyncBase:State'
AIRSYNCBASE_STATUS  = 'AirSyncBase:Status'
AIRSYNCBASE_STREET  = 'AirSyncBase:Street'
AIRSYNCBASE_TRUNCATED  = 'AirSyncBase:Truncated'
AIRSYNCBASE_TRUNCATIONSIZE  = 'AirSyncBase:TruncationSize'
AIRSYNCBASE_TYPE  = 'AirSyncBase:Type'
ALL_GHOSTED  = 'allghosted'
AUTH_REASON_DEVICE_DENIED  = 'device'
AUTH_REASON_USER_DENIED  = 'user'
BODYPREF_TYPE_HTML  = 2
BODYPREF_TYPE_MIME  = 4
BODYPREF_TYPE_PLAIN  = 1
BODYPREF_TYPE_RTF  = 3
CHANGE_FORWARD_STATE  = '@--forward--@'
CHANGE_ORIGIN_NA  = 3
CHANGE_ORIGIN_PIM  = 0
CHANGE_ORIGIN_SERVER  = 1
CHANGE_REPLY_STATE  = '@--reply--@'
CHANGE_REPLYALL_STATE  = '@--replyall--@'
CHANGE_TYPE_CHANGE  = 'change'
CHANGE_TYPE_DELETE  = 'delete'
CHANGE_TYPE_DRAFT  = 'draft'
CHANGE_TYPE_FLAGS  = 'flags'
CHANGE_TYPE_FOLDERSYNC  = 'foldersync'
CHANGE_TYPE_MOVE  = 'move'
CHANGE_TYPE_SOFTDELETE  = 'softdelete'
CLASS_CALENDAR  = 'Calendar'
CLASS_CONTACTS  = 'Contacts'
CLASS_EMAIL  = 'Email'
CLASS_NOTES  = 'Notes'
CLASS_SMS  = 'SMS'
CLASS_TASKS  = 'Tasks'
CONFLICT_OVERWRITE_PIM  = 1
CONFLICT_OVERWRITE_SERVER  = 0
FILTERTYPE_1DAY  = 1
FILTERTYPE_1MONTH  = 5
FILTERTYPE_1WEEK  = 3
FILTERTYPE_2WEEKS  = 4
FILTERTYPE_3DAYS  = 2
FILTERTYPE_3MONTHS  = 6
FILTERTYPE_6MONTHS  = 7
FILTERTYPE_ALL  = 0
FILTERTYPE_INCOMPLETETASKS  = 8
FLAG_NEWMESSAGE  = 'NewMessage'
FOLDER_ROOT  = 0
FOLDER_TYPE_APPOINTMENT  = 8
FOLDER_TYPE_CONTACT  = 9
FOLDER_TYPE_DRAFTS  = 3
FOLDER_TYPE_DUMMY  = 999999
FOLDER_TYPE_INBOX  = 2
FOLDER_TYPE_JOURNAL  = 11
FOLDER_TYPE_NOTE  = 10
FOLDER_TYPE_OTHER  = 1
FOLDER_TYPE_OUTBOX  = 6
FOLDER_TYPE_RECIPIENT_CACHE  = 19
FOLDER_TYPE_SENTMAIL  = 5
FOLDER_TYPE_TASK  = 7
FOLDER_TYPE_UNKNOWN  = 18
FOLDER_TYPE_USER_APPOINTMENT  = 13
FOLDER_TYPE_USER_CONTACT  = 14
FOLDER_TYPE_USER_JOURNAL  = 16
FOLDER_TYPE_USER_MAIL  = 12
FOLDER_TYPE_USER_NOTE  = 17
FOLDER_TYPE_USER_TASK  = 15
FOLDER_TYPE_WASTEBASKET  = 4
FOLDERHIERARCHY_CHANGES  = 'FolderHierarchy:Changes'
FOLDERHIERARCHY_CONTENTCLASS  = 'FolderHierarchy:ContentClass'
FOLDERHIERARCHY_COUNT  = 'FolderHierarchy:Count'
FOLDERHIERARCHY_DISPLAYNAME  = 'FolderHierarchy:DisplayName'
FOLDERHIERARCHY_FOLDER  = 'FolderHierarchy:Folder'
FOLDERHIERARCHY_FOLDERS  = 'FolderHierarchy:Folders'
FOLDERHIERARCHY_FOLDERSYNC  = 'FolderHierarchy:FolderSync'
FOLDERHIERARCHY_PARENTID  = 'FolderHierarchy:ParentId'
FOLDERHIERARCHY_RESPONSE  = 'FolderHierarchy:Response'
FOLDERHIERARCHY_SERVERENTRYID  = 'FolderHierarchy:ServerEntryId'
FOLDERHIERARCHY_STATUS  = 'FolderHierarchy:Status'
FOLDERHIERARCHY_SYNCKEY  = 'FolderHierarchy:SyncKey'
FOLDERHIERARCHY_TYPE  = 'FolderHierarchy:Type'
FOLDERHIERARCHY_VERSION  = 'FolderHierarchy:Version'
GAL_ALIAS  = 'GAL:Alias'
GAL_COMPANY  = 'GAL:Company'
GAL_DATA  = 'GAL:Data'
GAL_DISPLAYNAME  = 'GAL:DisplayName'
GAL_EMAILADDRESS  = 'GAL:EmailAddress'
GAL_FIRSTNAME  = 'GAL:FirstName'
GAL_HOMEPHONE  = 'GAL:HomePhone'
GAL_LASTNAME  = 'GAL:LastName'
GAL_MOBILEPHONE  = 'GAL:MobilePhone'
GAL_OFFICE  = 'GAL:Office'
GAL_PHONE  = 'GAL:Phone'
GAL_PICTURE  = 'GAL:Picture'
GAL_STATUS  = 'GAL:Status'
GAL_TITLE  = 'GAL:Title'
IMAP_FLAG_FORWARD  = 'forward'
IMAP_FLAG_REPLY  = 'reply'
LIBRARY_VERSION  = '2.x.y-git'
MIME_SUPPORT_ALL  = 2
MIME_SUPPORT_NONE  = 0
MIME_SUPPORT_SMIME  = 1
POLICYTYPE_WBXML  = 'MS-EAS-Provisioning-WBXML'
POLICYTYPE_XML  = 'MS-WAP-Provisioning-XML'
PROVISION_DATA  = 'Provision:Data'
PROVISION_EASPROVISIONDOC  = 'Provision:EASProvisionDoc'
PROVISION_POLICIES  = 'Provision:Policies'
PROVISION_POLICY  = 'Provision:Policy'
PROVISION_POLICYKEY  = 'Provision:PolicyKey'
PROVISION_POLICYTYPE  = 'Provision:PolicyType'
PROVISION_PROVISION  = 'Provision:Provision'
PROVISION_REMOTEWIPE  = 'Provision:RemoteWipe'
PROVISION_STATUS  = 'Provision:Status'
PROVISIONING_FORCE  = \true
PROVISIONING_LOOSE  = 'loose'
PROVISIONING_NONE  = \false
REQUEST_TYPE_FOLDERSYNC  = 'foldersync'
REQUEST_TYPE_SYNC  = 'sync'
RESOLVE_RESULT_ADDRESSBOOK  = 2
RESOLVE_RESULT_GAL  = 1
RM_SUPPORT  = 'RightsManagement:RightsManagementSupport'
RM_TEMPLATEID  = 'RightsManagement:TemplateId'
RWSTATUS_NA  = 0
RWSTATUS_OK  = 1
RWSTATUS_PENDING  = 2
RWSTATUS_WIPED  = 3
SYNC_ADD  = 'Add'
SYNC_CLIENTENTRYID  = 'ClientEntryId'
SYNC_COMMANDS  = 'Commands'
SYNC_CONFLICT  = 'Conflict'
SYNC_CONVERSATIONMODE  = 'ConversationMode'
SYNC_DATA  = 'Data'
SYNC_DELETESASMOVES  = 'DeletesAsMoves'
SYNC_DOCUMENTLIBRARY_CONTENTLENGTH  = 'DocumentLibrary:ContentLength'
SYNC_DOCUMENTLIBRARY_CONTENTTYPE  = 'DocumentLibrary:ContentType'
SYNC_DOCUMENTLIBRARY_CREATIONDATE  = 'DocumentLibrary:CreationDate'
SYNC_DOCUMENTLIBRARY_DISPLAYNAME  = 'DocumentLibrary:DisplayName'
SYNC_DOCUMENTLIBRARY_ISFOLDER  = 'DocumentLibrary:IsFolder'
SYNC_DOCUMENTLIBRARY_ISHIDDEN  = 'DocumentLibrary:IsHidden'
SYNC_DOCUMENTLIBRARY_LASTMODIFIEDDATE  = 'DocumentLibrary:LastModifiedDate'
SYNC_DOCUMENTLIBRARY_LINKID  = 'DocumentLibrary:LinkId'
SYNC_FETCH  = 'Fetch'
SYNC_FILTERTYPE  = 'FilterType'
SYNC_FOLDER  = 'Folder'
SYNC_FOLDERID  = 'FolderId'
SYNC_FOLDERS  = 'Folders'
SYNC_FOLDERTYPE  = 'FolderType'
SYNC_GETCHANGES  = 'GetChanges'
SYNC_HEARTBEATINTERVAL  = 'HeartbeatInterval'
SYNC_LIMIT  = 'Limit'
SYNC_MAXITEMS  = 'MaxItems'
SYNC_MIMESUPPORT  = 'MIMESupport'
SYNC_MIMETRUNCATION  = 'MIMETruncation'
SYNC_MODIFY  = 'Modify'
SYNC_MOREAVAILABLE  = 'MoreAvailable'
SYNC_NEWMESSAGE  = 'NewMessage'
SYNC_NOTIFYGUID  = 'NotifyGUID'
SYNC_OPTIONS  = 'Options'
SYNC_PARTIAL  = 'Partial'
SYNC_REMOVE  = 'Remove'
SYNC_REPLIES  = 'Replies'
SYNC_RTFTRUNCATION  = 'RtfTruncation'
SYNC_SERVERENTRYID  = 'ServerEntryId'
SYNC_SOFTDELETE  = 'SoftDelete'
SYNC_STATUS  = 'Status'
SYNC_SUPPORTED  = 'Supported'
SYNC_SYNCHRONIZE  = 'Synchronize'
SYNC_SYNCKEY  = 'SyncKey'
SYNC_TRUNCATION  = 'Truncation'
SYNC_VERSION  = 'Version'
SYNC_WAIT  = 'Wait'
SYNC_WINDOWSIZE  = 'WindowSize'
TRUNCATION_1  = 1
TRUNCATION_2  = 2
TRUNCATION_3  = 3
TRUNCATION_4  = 4
TRUNCATION_5  = 5
TRUNCATION_6  = 6
TRUNCATION_7  = 7
TRUNCATION_8  = 8
TRUNCATION_9  = 9
TRUNCATION_ALL  = 0
TRUNCATION_NONE  = 9
VERSION_FOURTEEN  = '14.0'
VERSION_FOURTEENONE  = '14.1'
VERSION_SIXTEEN  = '16.0'
VERSION_TWELVE  = '12.0'
VERSION_TWELVEONE  = '12.1'
VERSION_TWOFIVE  = '2.5'
$certPath  : string
$decoder  : Horde_ActiveSync_Wbxml_Decoder
$device  : Horde_ActiveSync_Device
$driver  : Horde_ActiveSync_Driver_Base
$encoder  : Horde_ActiveSync_Wbxml_Encoder
$logger  : Horde_ActiveSync_Log_Logger
$multipart  : bool
$provisioning  : bool|string
$request  : Horde_Controller_Reqeust_Http
$state  : Horde_ActiveSync_State_Base
$_certPath  : string
Path to root certificate bundle
$_collectionsObj  : Horde_ActiveSync_Collections
The singleton collections handler.
$_compression  : bool
Support gzip compression of certain data parts?
$_decoder  : Horde_ActiveSync_Wbxml_Decoder
Wbxml decoder
$_device  : Horde_ActiveSync_Device
$_encoder  : Horde_ActiveSync_Wbxml_Encoder
Wbxml encoder
$_get  : array<string|int, mixed>
Local cache of Get variables/decoded base64 uri
$_globalError  : bool
Global error flag.
$_logger  : Horde_Log_Logger
The logger for this class.
$_loggerFactory  : Horde_ActiveSync_Interface_LoggerFactory
Logger
$_maxVersion  : float
Highest version to support.
$_multipart  : bool
Multipart support?
$_needMsRp  : bool
Flag to indicate we need to update the device version.
$_procid  : int
Process id (used in logging).
$_provisioning  : string
Provisioning support
$_supportedVersions  : array<string|int, mixed>
Supported EAS versions.
$_version  : float
The actual version we are supporting.
__construct()  : Horde_ActiveSync
Const'r
__get()  : mixed
Getter
_wrapLogger()  : mixed
activeSyncHeader()  : array<string|int, mixed>
Send the MS_Server-ActiveSync header.
authenticate()  : bool
Authenticate to the backend.
checkGlobalError()  : mixed
Return any global errors that occured during initial connection.
commandsHeader()  : string
Send protocol commands header.
contentTypeHeader()  : mixed
Send the content type header.
getCollectionsObject()  : Horde_ActiveSync_Collections
Return a collections singleton.
getGetVars()  : array<string|int, mixed>
Return the GET variables passed from the device, decoding from base64 if needed.
getImporter()  : Horde_ActiveSync_Connector_Importer
Return an Importer object.
getMIMETruncSize()  : int|bool
Return the number of bytes corresponding to the requested trunction constant. This applies to MIMETRUNCATION only.
getPolicyKey()  : int
Obtain the policy key header from the request.
getProtocolVersion()  : string
Obtain the ActiveSync protocol version requested by the client headers.
getSupportedCommands()  : string
Return the supported commands in a comma delimited string suitable for sending as the MS-ASProtocolCommands header.
getSupportedVersions()  : string
Return supported versions in a comma delimited string suitable for sending as the MS-ASProtocolVersions header.
getSyncCache()  : Horde_ActiveSync_SyncCache
Return a new, fully configured SyncCache.
getTruncSize()  : int|bool
Return the number of bytes corresponding to the requested trunction constant.
handleRequest()  : string|bool
The heart of the server. Dispatch a request to the appropriate request handler.
messageFactory()  : Horde_ActiveSync_Message_Base
Factory method for creating Horde_ActiveSync_Message objects.
provisionHeader()  : mixed
Send provision header
provisioningRequired()  : mixed
Send the headers indicating that provisioning is required.
setLogger()  : mixed
Setter for the logger factory.
setProvisioning()  : mixed
Setter for provisioning support
setRootCertificatePath()  : mixed
Set the local path to the root certificate bundle.
setSupportedVersion()  : mixed
Allow to force the highest version to support.
versionHeader()  : string
Send the protocol versions header.
_handleDevice()  : bool
Handle device checks. Takes into account permissions and restrictions via various callback methods.
_handleOptionsRequest()  : mixed
Send the OPTIONS request response headers.
_setLogger()  : mixed
Instantiate the logger from the factory and inject into all needed objects.

Constants

AIRSYNCBASE_ACCURACY

public mixed AIRSYNCBASE_ACCURACY = 'AirSyncBase:Accuracy'

AIRSYNCBASE_ADD

public mixed AIRSYNCBASE_ADD = 'AirSyncBase:Add'

AIRSYNCBASE_ALLORNONE

public mixed AIRSYNCBASE_ALLORNONE = 'AirSyncBase:AllOrNone'

AIRSYNCBASE_ALTITUDE

public mixed AIRSYNCBASE_ALTITUDE = 'AirSyncBase:Altitude'

AIRSYNCBASE_ALTITUDEACCURACY

public mixed AIRSYNCBASE_ALTITUDEACCURACY = 'AirSyncBase:AltitudeAccuracy'

AIRSYNCBASE_ANNOTATION

public mixed AIRSYNCBASE_ANNOTATION = 'AirSyncBase:Annotation'

AIRSYNCBASE_ATTACHMENT

public mixed AIRSYNCBASE_ATTACHMENT = 'AirSyncBase:Attachment'

AIRSYNCBASE_ATTACHMENTS

public mixed AIRSYNCBASE_ATTACHMENTS = 'AirSyncBase:Attachments'

AIRSYNCBASE_BODY

public mixed AIRSYNCBASE_BODY = 'AirSyncBase:Body'

AIRSYNCBASE_BODYPART

public mixed AIRSYNCBASE_BODYPART = 'AirSyncBase:BodyPart'

AIRSYNCBASE_BODYPARTPREFERENCE

public mixed AIRSYNCBASE_BODYPARTPREFERENCE = 'AirSyncBase:BodyPartPreference'

AIRSYNCBASE_BODYPREFERENCE

public mixed AIRSYNCBASE_BODYPREFERENCE = 'AirSyncBase:BodyPreference'

AIRSYNCBASE_CITY

public mixed AIRSYNCBASE_CITY = 'AirSyncBase:City'

AIRSYNCBASE_CLIENTID

public mixed AIRSYNCBASE_CLIENTID = 'AirSyncBase:ClientId'

AIRSYNCBASE_CONTENT

public mixed AIRSYNCBASE_CONTENT = 'AirSyncBase:Content'

AIRSYNCBASE_CONTENTID

public mixed AIRSYNCBASE_CONTENTID = 'AirSyncBase:ContentId'

AIRSYNCBASE_CONTENTLOCATION

public mixed AIRSYNCBASE_CONTENTLOCATION = 'AirSyncBase:ContentLocation'

AIRSYNCBASE_CONTENTTYPE

public mixed AIRSYNCBASE_CONTENTTYPE = 'AirSyncBase:ContentType'

AIRSYNCBASE_COUNTRY

public mixed AIRSYNCBASE_COUNTRY = 'AirSyncBase:Country'

AIRSYNCBASE_DATA

public mixed AIRSYNCBASE_DATA = 'AirSyncBase:Data'

AIRSYNCBASE_DELETE

public mixed AIRSYNCBASE_DELETE = 'AirSyncBase:Delete'

AIRSYNCBASE_DISPLAYNAME

public mixed AIRSYNCBASE_DISPLAYNAME = 'AirSyncBase:DisplayName'

AIRSYNCBASE_ESTIMATEDDATASIZE

public mixed AIRSYNCBASE_ESTIMATEDDATASIZE = 'AirSyncBase:EstimatedDataSize'

AIRSYNCBASE_FILEREFERENCE

public mixed AIRSYNCBASE_FILEREFERENCE = 'AirSyncBase:FileReference'

AIRSYNCBASE_INSTANCEID

public mixed AIRSYNCBASE_INSTANCEID = 'AirSyncBase:InstanceId'

AIRSYNCBASE_ISINLINE

public mixed AIRSYNCBASE_ISINLINE = 'AirSyncBase:IsInline'

AIRSYNCBASE_LATITUDE

public mixed AIRSYNCBASE_LATITUDE = 'AirSyncBase:Latitude'

AIRSYNCBASE_LOCATION

public mixed AIRSYNCBASE_LOCATION = 'AirSyncBase:Location'

AIRSYNCBASE_LOCATIONURI

public mixed AIRSYNCBASE_LOCATIONURI = 'AirSyncBase:LocationUri'

AIRSYNCBASE_LONGITUDE

public mixed AIRSYNCBASE_LONGITUDE = 'AirSyncBase:Longitude'

AIRSYNCBASE_METHOD

public mixed AIRSYNCBASE_METHOD = 'AirSyncBase:Method'

AIRSYNCBASE_NATIVEBODYTYPE

public mixed AIRSYNCBASE_NATIVEBODYTYPE = 'AirSyncBase:NativeBodyType'

AIRSYNCBASE_POSTALCODE

public mixed AIRSYNCBASE_POSTALCODE = 'AirSyncBase:PostalCode'

AIRSYNCBASE_PREVIEW

public mixed AIRSYNCBASE_PREVIEW = 'AirSyncBase:Preview'

AIRSYNCBASE_STATE

public mixed AIRSYNCBASE_STATE = 'AirSyncBase:State'

AIRSYNCBASE_STATUS

public mixed AIRSYNCBASE_STATUS = 'AirSyncBase:Status'

AIRSYNCBASE_STREET

public mixed AIRSYNCBASE_STREET = 'AirSyncBase:Street'

AIRSYNCBASE_TRUNCATED

public mixed AIRSYNCBASE_TRUNCATED = 'AirSyncBase:Truncated'

AIRSYNCBASE_TRUNCATIONSIZE

public mixed AIRSYNCBASE_TRUNCATIONSIZE = 'AirSyncBase:TruncationSize'

AIRSYNCBASE_TYPE

public mixed AIRSYNCBASE_TYPE = 'AirSyncBase:Type'

ALL_GHOSTED

public mixed ALL_GHOSTED = 'allghosted'

AUTH_REASON_DEVICE_DENIED

public mixed AUTH_REASON_DEVICE_DENIED = 'device'

AUTH_REASON_USER_DENIED

public mixed AUTH_REASON_USER_DENIED = 'user'

BODYPREF_TYPE_HTML

public mixed BODYPREF_TYPE_HTML = 2

BODYPREF_TYPE_MIME

public mixed BODYPREF_TYPE_MIME = 4

BODYPREF_TYPE_PLAIN

public mixed BODYPREF_TYPE_PLAIN = 1

BODYPREF_TYPE_RTF

public mixed BODYPREF_TYPE_RTF = 3

CHANGE_FORWARD_STATE

public mixed CHANGE_FORWARD_STATE = '@--forward--@'

CHANGE_ORIGIN_NA

public mixed CHANGE_ORIGIN_NA = 3

CHANGE_ORIGIN_PIM

public mixed CHANGE_ORIGIN_PIM = 0

CHANGE_ORIGIN_SERVER

public mixed CHANGE_ORIGIN_SERVER = 1

CHANGE_REPLY_STATE

public mixed CHANGE_REPLY_STATE = '@--reply--@'

CHANGE_REPLYALL_STATE

public mixed CHANGE_REPLYALL_STATE = '@--replyall--@'

CHANGE_TYPE_CHANGE

public mixed CHANGE_TYPE_CHANGE = 'change'

CHANGE_TYPE_DELETE

public mixed CHANGE_TYPE_DELETE = 'delete'

CHANGE_TYPE_DRAFT

public mixed CHANGE_TYPE_DRAFT = 'draft'

CHANGE_TYPE_FLAGS

public mixed CHANGE_TYPE_FLAGS = 'flags'

CHANGE_TYPE_FOLDERSYNC

public mixed CHANGE_TYPE_FOLDERSYNC = 'foldersync'

CHANGE_TYPE_MOVE

public mixed CHANGE_TYPE_MOVE = 'move'

CHANGE_TYPE_SOFTDELETE

public mixed CHANGE_TYPE_SOFTDELETE = 'softdelete'

CLASS_CALENDAR

public mixed CLASS_CALENDAR = 'Calendar'

CLASS_CONTACTS

public mixed CLASS_CONTACTS = 'Contacts'

CONFLICT_OVERWRITE_PIM

public mixed CONFLICT_OVERWRITE_PIM = 1

CONFLICT_OVERWRITE_SERVER

public mixed CONFLICT_OVERWRITE_SERVER = 0

FILTERTYPE_1DAY

public mixed FILTERTYPE_1DAY = 1

FILTERTYPE_1MONTH

public mixed FILTERTYPE_1MONTH = 5

FILTERTYPE_1WEEK

public mixed FILTERTYPE_1WEEK = 3

FILTERTYPE_2WEEKS

public mixed FILTERTYPE_2WEEKS = 4

FILTERTYPE_3DAYS

public mixed FILTERTYPE_3DAYS = 2

FILTERTYPE_3MONTHS

public mixed FILTERTYPE_3MONTHS = 6

FILTERTYPE_6MONTHS

public mixed FILTERTYPE_6MONTHS = 7

FILTERTYPE_INCOMPLETETASKS

public mixed FILTERTYPE_INCOMPLETETASKS = 8

FLAG_NEWMESSAGE

public mixed FLAG_NEWMESSAGE = 'NewMessage'

FOLDER_TYPE_APPOINTMENT

public mixed FOLDER_TYPE_APPOINTMENT = 8

FOLDER_TYPE_CONTACT

public mixed FOLDER_TYPE_CONTACT = 9

FOLDER_TYPE_DRAFTS

public mixed FOLDER_TYPE_DRAFTS = 3

FOLDER_TYPE_DUMMY

public mixed FOLDER_TYPE_DUMMY = 999999

FOLDER_TYPE_INBOX

public mixed FOLDER_TYPE_INBOX = 2

FOLDER_TYPE_JOURNAL

public mixed FOLDER_TYPE_JOURNAL = 11

FOLDER_TYPE_NOTE

public mixed FOLDER_TYPE_NOTE = 10

FOLDER_TYPE_OTHER

public mixed FOLDER_TYPE_OTHER = 1

FOLDER_TYPE_OUTBOX

public mixed FOLDER_TYPE_OUTBOX = 6

FOLDER_TYPE_RECIPIENT_CACHE

public mixed FOLDER_TYPE_RECIPIENT_CACHE = 19

FOLDER_TYPE_SENTMAIL

public mixed FOLDER_TYPE_SENTMAIL = 5

FOLDER_TYPE_TASK

public mixed FOLDER_TYPE_TASK = 7

FOLDER_TYPE_UNKNOWN

public mixed FOLDER_TYPE_UNKNOWN = 18

FOLDER_TYPE_USER_APPOINTMENT

public mixed FOLDER_TYPE_USER_APPOINTMENT = 13

FOLDER_TYPE_USER_CONTACT

public mixed FOLDER_TYPE_USER_CONTACT = 14

FOLDER_TYPE_USER_JOURNAL

public mixed FOLDER_TYPE_USER_JOURNAL = 16

FOLDER_TYPE_USER_MAIL

public mixed FOLDER_TYPE_USER_MAIL = 12

FOLDER_TYPE_USER_NOTE

public mixed FOLDER_TYPE_USER_NOTE = 17

FOLDER_TYPE_USER_TASK

public mixed FOLDER_TYPE_USER_TASK = 15

FOLDER_TYPE_WASTEBASKET

public mixed FOLDER_TYPE_WASTEBASKET = 4

FOLDERHIERARCHY_CHANGES

public mixed FOLDERHIERARCHY_CHANGES = 'FolderHierarchy:Changes'

FOLDERHIERARCHY_CONTENTCLASS

public mixed FOLDERHIERARCHY_CONTENTCLASS = 'FolderHierarchy:ContentClass'

FOLDERHIERARCHY_COUNT

public mixed FOLDERHIERARCHY_COUNT = 'FolderHierarchy:Count'

FOLDERHIERARCHY_DISPLAYNAME

public mixed FOLDERHIERARCHY_DISPLAYNAME = 'FolderHierarchy:DisplayName'

FOLDERHIERARCHY_FOLDER

public mixed FOLDERHIERARCHY_FOLDER = 'FolderHierarchy:Folder'

FOLDERHIERARCHY_FOLDERS

public mixed FOLDERHIERARCHY_FOLDERS = 'FolderHierarchy:Folders'

FOLDERHIERARCHY_FOLDERSYNC

public mixed FOLDERHIERARCHY_FOLDERSYNC = 'FolderHierarchy:FolderSync'

FOLDERHIERARCHY_PARENTID

public mixed FOLDERHIERARCHY_PARENTID = 'FolderHierarchy:ParentId'

FOLDERHIERARCHY_RESPONSE

public mixed FOLDERHIERARCHY_RESPONSE = 'FolderHierarchy:Response'

FOLDERHIERARCHY_SERVERENTRYID

public mixed FOLDERHIERARCHY_SERVERENTRYID = 'FolderHierarchy:ServerEntryId'

FOLDERHIERARCHY_STATUS

public mixed FOLDERHIERARCHY_STATUS = 'FolderHierarchy:Status'

FOLDERHIERARCHY_SYNCKEY

public mixed FOLDERHIERARCHY_SYNCKEY = 'FolderHierarchy:SyncKey'

FOLDERHIERARCHY_TYPE

public mixed FOLDERHIERARCHY_TYPE = 'FolderHierarchy:Type'

FOLDERHIERARCHY_VERSION

public mixed FOLDERHIERARCHY_VERSION = 'FolderHierarchy:Version'

GAL_COMPANY

public mixed GAL_COMPANY = 'GAL:Company'

GAL_DISPLAYNAME

public mixed GAL_DISPLAYNAME = 'GAL:DisplayName'

GAL_EMAILADDRESS

public mixed GAL_EMAILADDRESS = 'GAL:EmailAddress'

GAL_FIRSTNAME

public mixed GAL_FIRSTNAME = 'GAL:FirstName'

GAL_HOMEPHONE

public mixed GAL_HOMEPHONE = 'GAL:HomePhone'

GAL_LASTNAME

public mixed GAL_LASTNAME = 'GAL:LastName'

GAL_MOBILEPHONE

public mixed GAL_MOBILEPHONE = 'GAL:MobilePhone'

GAL_OFFICE

public mixed GAL_OFFICE = 'GAL:Office'

GAL_PICTURE

public mixed GAL_PICTURE = 'GAL:Picture'

GAL_STATUS

public mixed GAL_STATUS = 'GAL:Status'

IMAP_FLAG_FORWARD

public mixed IMAP_FLAG_FORWARD = 'forward'

IMAP_FLAG_REPLY

public mixed IMAP_FLAG_REPLY = 'reply'

LIBRARY_VERSION

public mixed LIBRARY_VERSION = '2.x.y-git'

MIME_SUPPORT_ALL

public mixed MIME_SUPPORT_ALL = 2

MIME_SUPPORT_NONE

public mixed MIME_SUPPORT_NONE = 0

MIME_SUPPORT_SMIME

public mixed MIME_SUPPORT_SMIME = 1

POLICYTYPE_WBXML

public mixed POLICYTYPE_WBXML = 'MS-EAS-Provisioning-WBXML'

POLICYTYPE_XML

public mixed POLICYTYPE_XML = 'MS-WAP-Provisioning-XML'

PROVISION_DATA

public mixed PROVISION_DATA = 'Provision:Data'

PROVISION_EASPROVISIONDOC

public mixed PROVISION_EASPROVISIONDOC = 'Provision:EASProvisionDoc'

PROVISION_POLICIES

public mixed PROVISION_POLICIES = 'Provision:Policies'

PROVISION_POLICY

public mixed PROVISION_POLICY = 'Provision:Policy'

PROVISION_POLICYKEY

public mixed PROVISION_POLICYKEY = 'Provision:PolicyKey'

PROVISION_POLICYTYPE

public mixed PROVISION_POLICYTYPE = 'Provision:PolicyType'

PROVISION_PROVISION

public mixed PROVISION_PROVISION = 'Provision:Provision'

PROVISION_REMOTEWIPE

public mixed PROVISION_REMOTEWIPE = 'Provision:RemoteWipe'

PROVISION_STATUS

public mixed PROVISION_STATUS = 'Provision:Status'

PROVISIONING_FORCE

public mixed PROVISIONING_FORCE = \true

PROVISIONING_LOOSE

public mixed PROVISIONING_LOOSE = 'loose'

PROVISIONING_NONE

public mixed PROVISIONING_NONE = \false

REQUEST_TYPE_FOLDERSYNC

public mixed REQUEST_TYPE_FOLDERSYNC = 'foldersync'

REQUEST_TYPE_SYNC

public mixed REQUEST_TYPE_SYNC = 'sync'

RESOLVE_RESULT_ADDRESSBOOK

public mixed RESOLVE_RESULT_ADDRESSBOOK = 2

RESOLVE_RESULT_GAL

public mixed RESOLVE_RESULT_GAL = 1

RM_SUPPORT

public mixed RM_SUPPORT = 'RightsManagement:RightsManagementSupport'

RM_TEMPLATEID

public mixed RM_TEMPLATEID = 'RightsManagement:TemplateId'

RWSTATUS_PENDING

public mixed RWSTATUS_PENDING = 2

SYNC_CLIENTENTRYID

public mixed SYNC_CLIENTENTRYID = 'ClientEntryId'

SYNC_COMMANDS

public mixed SYNC_COMMANDS = 'Commands'

SYNC_CONFLICT

public mixed SYNC_CONFLICT = 'Conflict'

SYNC_CONVERSATIONMODE

public mixed SYNC_CONVERSATIONMODE = 'ConversationMode'

SYNC_DELETESASMOVES

public mixed SYNC_DELETESASMOVES = 'DeletesAsMoves'

SYNC_DOCUMENTLIBRARY_CONTENTLENGTH

public mixed SYNC_DOCUMENTLIBRARY_CONTENTLENGTH = 'DocumentLibrary:ContentLength'

SYNC_DOCUMENTLIBRARY_CONTENTTYPE

public mixed SYNC_DOCUMENTLIBRARY_CONTENTTYPE = 'DocumentLibrary:ContentType'

SYNC_DOCUMENTLIBRARY_CREATIONDATE

public mixed SYNC_DOCUMENTLIBRARY_CREATIONDATE = 'DocumentLibrary:CreationDate'

SYNC_DOCUMENTLIBRARY_DISPLAYNAME

public mixed SYNC_DOCUMENTLIBRARY_DISPLAYNAME = 'DocumentLibrary:DisplayName'

SYNC_DOCUMENTLIBRARY_ISFOLDER

public mixed SYNC_DOCUMENTLIBRARY_ISFOLDER = 'DocumentLibrary:IsFolder'

SYNC_DOCUMENTLIBRARY_ISHIDDEN

public mixed SYNC_DOCUMENTLIBRARY_ISHIDDEN = 'DocumentLibrary:IsHidden'

SYNC_DOCUMENTLIBRARY_LASTMODIFIEDDATE

public mixed SYNC_DOCUMENTLIBRARY_LASTMODIFIEDDATE = 'DocumentLibrary:LastModifiedDate'

SYNC_DOCUMENTLIBRARY_LINKID

public mixed SYNC_DOCUMENTLIBRARY_LINKID = 'DocumentLibrary:LinkId'

SYNC_FILTERTYPE

public mixed SYNC_FILTERTYPE = 'FilterType'

SYNC_FOLDERID

public mixed SYNC_FOLDERID = 'FolderId'

SYNC_FOLDERS

public mixed SYNC_FOLDERS = 'Folders'

SYNC_FOLDERTYPE

public mixed SYNC_FOLDERTYPE = 'FolderType'

SYNC_GETCHANGES

public mixed SYNC_GETCHANGES = 'GetChanges'

SYNC_HEARTBEATINTERVAL

public mixed SYNC_HEARTBEATINTERVAL = 'HeartbeatInterval'

SYNC_MAXITEMS

public mixed SYNC_MAXITEMS = 'MaxItems'

SYNC_MIMESUPPORT

public mixed SYNC_MIMESUPPORT = 'MIMESupport'

SYNC_MIMETRUNCATION

public mixed SYNC_MIMETRUNCATION = 'MIMETruncation'

SYNC_MOREAVAILABLE

public mixed SYNC_MOREAVAILABLE = 'MoreAvailable'

SYNC_NEWMESSAGE

public mixed SYNC_NEWMESSAGE = 'NewMessage'

SYNC_NOTIFYGUID

public mixed SYNC_NOTIFYGUID = 'NotifyGUID'

SYNC_OPTIONS

public mixed SYNC_OPTIONS = 'Options'

SYNC_PARTIAL

public mixed SYNC_PARTIAL = 'Partial'

SYNC_REPLIES

public mixed SYNC_REPLIES = 'Replies'

SYNC_RTFTRUNCATION

public mixed SYNC_RTFTRUNCATION = 'RtfTruncation'

SYNC_SERVERENTRYID

public mixed SYNC_SERVERENTRYID = 'ServerEntryId'

SYNC_SOFTDELETE

public mixed SYNC_SOFTDELETE = 'SoftDelete'

SYNC_SUPPORTED

public mixed SYNC_SUPPORTED = 'Supported'

SYNC_SYNCHRONIZE

public mixed SYNC_SYNCHRONIZE = 'Synchronize'

SYNC_SYNCKEY

public mixed SYNC_SYNCKEY = 'SyncKey'

SYNC_TRUNCATION

public mixed SYNC_TRUNCATION = 'Truncation'

SYNC_VERSION

public mixed SYNC_VERSION = 'Version'

SYNC_WINDOWSIZE

public mixed SYNC_WINDOWSIZE = 'WindowSize'

TRUNCATION_NONE

public mixed TRUNCATION_NONE = 9

VERSION_FOURTEEN

public mixed VERSION_FOURTEEN = '14.0'

VERSION_FOURTEENONE

public mixed VERSION_FOURTEENONE = '14.1'

VERSION_SIXTEEN

public mixed VERSION_SIXTEEN = '16.0'

VERSION_TWELVE

public mixed VERSION_TWELVE = '12.0'

VERSION_TWELVEONE

public mixed VERSION_TWELVEONE = '12.1'

VERSION_TWOFIVE

public mixed VERSION_TWOFIVE = '2.5'

Properties

$certPath read-only

public string $certPath

Local path to the certificate bundle.

$multipart read-only

public bool $multipart

Indicate this is a multipart request.

$provisioning read-only

public bool|string $provisioning

Provisioning support: True, False, or 'loose'

$request read-only

public Horde_Controller_Reqeust_Http $request

The HTTP request object.

$_certPath

Path to root certificate bundle

protected string $_certPath

$_collectionsObj

The singleton collections handler.

protected Horde_ActiveSync_Collections $_collectionsObj

$_compression

Support gzip compression of certain data parts?

protected bool $_compression = \false

$_get

Local cache of Get variables/decoded base64 uri

protected array<string|int, mixed> $_get = array()

$_globalError

Global error flag.

protected bool $_globalError = \false

$_logger

The logger for this class.

protected static Horde_Log_Logger $_logger

$_maxVersion

Highest version to support.

protected float $_maxVersion = self::VERSION_SIXTEEN

$_multipart

Multipart support?

protected bool $_multipart = \false

$_needMsRp

Flag to indicate we need to update the device version.

protected bool $_needMsRp = \false

$_procid

Process id (used in logging).

protected int $_procid

$_provisioning

Provisioning support

protected string $_provisioning

$_supportedVersions

Supported EAS versions.

protected static array<string|int, mixed> $_supportedVersions = array(self::VERSION_TWOFIVE, self::VERSION_TWELVE, self::VERSION_TWELVEONE, self::VERSION_FOURTEEN, self::VERSION_FOURTEENONE, self::VERSION_SIXTEEN)

$_version

The actual version we are supporting.

protected static float $_version

Methods

__construct()

Const'r

public __construct(Horde_ActiveSync_Driver_Base $driver, Horde_ActiveSync_Wbxml_Decoder $decoder, Horde_ActiveSync_Wbxml_Endcoder $encoder, Horde_ActiveSync_State_Base $state, Horde_Controller_Request_Http $request) : Horde_ActiveSync
Parameters
$driver : Horde_ActiveSync_Driver_Base

The backend driver.

$decoder : Horde_ActiveSync_Wbxml_Decoder

The Wbxml decoder.

$encoder : Horde_ActiveSync_Wbxml_Endcoder

The Wbxml encoder.

$state : Horde_ActiveSync_State_Base

The state driver.

$request : Horde_Controller_Request_Http

The HTTP request object.

Return values
Horde_ActiveSync

The ActiveSync server object.

__get()

Getter

public __get(string $property) : mixed
Parameters
$property : string

The property to return.

Return values
mixed

The value of the requested property.

_wrapLogger()

public static _wrapLogger(Horde_Log_Logger $logger) : mixed
Parameters
$logger : Horde_Log_Logger
Return values
mixed

activeSyncHeader()

Send the MS_Server-ActiveSync header.

public activeSyncHeader() : array<string|int, mixed>
Return values
array<string|int, mixed>

Returns an array of the headers that were sent. @since 2.39.0

authenticate()

Authenticate to the backend.

public authenticate(Horde_ActiveSync_Credentials $credentials) : bool
Parameters
$credentials : Horde_ActiveSync_Credentials

The credentials object.

Tags
throws
Horde_ActiveSync_Exception
Return values
bool

True on successful authentication to the backend.

checkGlobalError()

Return any global errors that occured during initial connection.

public checkGlobalError() : mixed
Tags
since
2.4.0
Return values
mixed

A Horde_ActiveSync_Status:: constant of boolean false if no errors.

commandsHeader()

Send protocol commands header.

public commandsHeader() : string
Return values
string

The header that was sent. @since 2.39.0

contentTypeHeader()

Send the content type header.

public contentTypeHeader([mixed $content_type = null ]) : mixed
Parameters
$content_type : mixed = null
Return values
mixed

getCollectionsObject()

Return a collections singleton.

public getCollectionsObject() : Horde_ActiveSync_Collections
Tags
since
2.4.0
Return values
Horde_ActiveSync_Collections

getGetVars()

Return the GET variables passed from the device, decoding from base64 if needed.

public getGetVars() : array<string|int, mixed>
Return values
array<string|int, mixed>

A hash of get variables => values.

getMIMETruncSize()

Return the number of bytes corresponding to the requested trunction constant. This applies to MIMETRUNCATION only.

public static getMIMETruncSize(int $truncation) : int|bool
Parameters
$truncation : int

The constant.

Tags
since
2.20.0
Return values
int|bool

Either the size, in bytes, to truncate or falso if no truncation.

getPolicyKey()

Obtain the policy key header from the request.

public getPolicyKey() : int
Return values
int

The policy key or '0' if not set.

getProtocolVersion()

Obtain the ActiveSync protocol version requested by the client headers.

public getProtocolVersion() : string
Return values
string

The EAS version requested by the client.

getSupportedCommands()

Return the supported commands in a comma delimited string suitable for sending as the MS-ASProtocolCommands header.

public getSupportedCommands() : string
Return values
string

getSupportedVersions()

Return supported versions in a comma delimited string suitable for sending as the MS-ASProtocolVersions header.

public getSupportedVersions() : string
Return values
string

getSyncCache()

Return a new, fully configured SyncCache.

public getSyncCache() : Horde_ActiveSync_SyncCache
Tags
since
2.4.0
Return values
Horde_ActiveSync_SyncCache

getTruncSize()

Return the number of bytes corresponding to the requested trunction constant.

public static getTruncSize(int $truncation) : int|bool
Parameters
$truncation : int

The constant.

Return values
int|bool

Either the size, in bytes, to truncate or falso if no truncation.

handleRequest()

The heart of the server. Dispatch a request to the appropriate request handler.

public handleRequest(string $cmd, string $devId) : string|bool
Parameters
$cmd : string

The command we are requesting.

$devId : string

The device id making the request. @deprecated

Tags
throws
Horde_ActiveSync_Exception
throws
Horde_ActiveSync_Exception_InvalidRequest
throws
Horde_ActiveSync_PermissionDenied
Return values
string|bool

false if failed, true if succeeded and response content is wbxml, otherwise the content-type string to send in the response.

messageFactory()

Factory method for creating Horde_ActiveSync_Message objects.

public static messageFactory(string $message) : Horde_ActiveSync_Message_Base
Parameters
$message : string

The message type.

Tags
since
2.4.0
todo

For H6, move to Horde_ActiveSync_Message_Base::factory()

Return values
Horde_ActiveSync_Message_Base

The concrete message object.

provisionHeader()

Send provision header

public provisionHeader() : mixed
Return values
mixed

provisioningRequired()

Send the headers indicating that provisioning is required.

public provisioningRequired() : mixed
Return values
mixed

setProvisioning()

Setter for provisioning support

public setProvisioning(mixed $provision) : mixed
Parameters
$provision : mixed
Return values
mixed

setRootCertificatePath()

Set the local path to the root certificate bundle.

public setRootCertificatePath(string $path) : mixed
Parameters
$path : string

The local path to the bundle.

Return values
mixed

setSupportedVersion()

Allow to force the highest version to support.

public setSupportedVersion(float $version) : mixed
Parameters
$version : float

The highest version

Return values
mixed

versionHeader()

Send the protocol versions header.

public versionHeader() : string
Return values
string

The header that was sent. @since 2.39.0

_handleDevice()

Handle device checks. Takes into account permissions and restrictions via various callback methods.

protected _handleDevice(string $devId) : bool
Parameters
$devId : string

The client provided device id.

Tags
throws

Horde_ActiveSync_Exception, Horde_Exception_AuthenticationFailure

Return values
bool

If EAS version is > 12.1 returns false on any type of failure in allowing the device to connect. Sets appropriate internal variables to indicate the type of error to return to the client. Failure on EAS version < 12.1 results in throwing exceptions. Otherwise, return true.

_handleOptionsRequest()

Send the OPTIONS request response headers.

protected _handleOptionsRequest() : mixed
Return values
mixed

_setLogger()

Instantiate the logger from the factory and inject into all needed objects.

protected _setLogger(array<string|int, mixed> $options) : mixed
Parameters
$options : array<string|int, mixed>

[description]

Return values
mixed

Search results