Contacts

Disclaimer

This document is a prelimary version and work-in-progress,
Details discussed in this document will be subject to future modifications.

Workflow

PhoneApp can query contact details stored on Delos instance and batch the contact details in Delos DB.
 

/Phone_GetCPSN (PhoneApp -> Delos)

The PhoneApp SHOULD lookup contact details from Delos instance to check if informations are up-to-date.
These data facilitate the process of transcript for the recorded conversation,
PhoneApp sends a HTTP GET request to Delos instance:

https://fr01a.buzzee.tel/JSON/1xxx1abcdef/Phone_GetCPSN?Phone=33609876543

Fields Description
Phone The phone number used to lookup CPSN_ID with informations.
Use either parameter Phone or CPSN_ID

Delos instance will respond with a JSON document:

{ "CPSN" : 
  { "CPSN_ID" : "1000202", "CPSN_VERSION" : "1000042"
    "CPSN_FIRST_NAME" : "Dave", "CPSN_LAST_NAME" : "THEUGLY",
    "CCOMS" : { "CCOM" :
          [ { "CCOM_ID" : "1001", "CCOMKND_ID" : "-3515", "CCOM_VALUE" : "33609876543" },
            { "CCOM_ID" : "1002", "CCOMKND_ID" : "-3501", "CCOM_VALUE" : "dave@acme.com" },  ….
          ] }
  },
  "CLOC" : { "CLOC_ID" : "10000201", "CLOC_VERSION" : "1000041", "CLOC_NAME" : "ACME" }
}

The major fields are:

Fields Description
CPSN_LAST_NAME Last name of the contact
CPSN_FIRST_NAME First name of the contact
CPSN_INFO Custom infos for this the contact
CLOC_NAME Name of the organization
CLOC_ADDRESS1 First line of address
CLOC_ADDRESS2 Second line of address
CLOC_ZIP Zip code of the address
CLOC_CITY City of the organization/contact
CLOCCRY_NAME Country name
CLOC_INFO Custom infos for this address
CCOMKND_ID -3501=Email, -3509=Cell/Mobile, -3515=Phone, ...
CCOM_VALUE Cell/Mobile number should be formatted as 33612345678
Landline phone number should be formatted as 33123456789
CCOM_INFO Custom infos associated with this media (Email,Cell/Mobile,Phone)

The following table summarizes the different error codes:

Errors Description
ERR_BLANK_CPSN_ID The Contact cannot be located from the Phone number supplied.

/Phone_BatchCPSN (PhoneApp -> Delos)

If the PhoneApp detects contact informations are not up-to-date between local version and Delos database,
PhoneApp will POST a request to Delos instance with the content of the body as a JSON document:

https://fr01a.buzzee.tel/JSON/1xxx1abcdef/Phone_BatchCPSN

{ "CPSN" : 
  { "CPSN_ID" : "1000202", "CPSN_VERSION" : "1000042"
    "CPSN_FIRST_NAME" : "Dave", "CPSN_LAST_NAME" : "THEUGLY",
    "CCOMS" : { "CCOM" :
          [ { "CCOM_ID" : "1001", "CCOMKND_ID" : "-3515", "CCOM_VALUE" : "33609876543" },
            { "CCOM_ID" : "1002", "CCOMKND_ID" : "-3501", "CCOM_VALUE" : "dave@acme.com" },  ….
          ] },
    "CLOC" : { "CLOC_ID" : "10000201", "CLOC_VERSION" : "1000041", "CLOC_NAME" : "ACME" }
  }
}

As of 2025-06-27 the structure of the document MUST BE: { CPSN { CLOC } }, meaning the CLOC entity must be a child of the CPSN entity.
The major fields are:

Fields Description
CPSN_ID The Contact ID, this is the value WMSGPSN_PSN from the WMSG.
CPSNKND_ID -3005001=Monsieur, -3005002=Madame, -3005003=Mademoiselle, -3005004=Docteur
CPSN_LAST_NAME Last name of the contact
CPSN_FIRST_NAME First name of the contact
CPSN_INFO Custom infos for the contact
CLOC_ID ID of the organization
CLOC_NAME Name of the organization
CLOC_ADDRESS1 First line of address
CLOC_ADDRESS2 Second line of address
CLOC_ZIP Zip code of the address
CLOC_CITY City of the organization/contact
CLOCCRY_NAME Country name
CLOC_INFO Custom infos for this address
CCOMKND_ID -3501=Email, -3509=Cell/Mobile, -3515=Phone, ...
CCOM_VALUE Cell/Mobile number should be formatted as 33612345678
Landline phone number should be formatted as 33123456789
CCOM_INFO Custom infos associated with this media (Email,Cell/Mobile,Phone)

The following table summarizes the different error codes:

Errors Description
ERR_BLANK_CPSN_ID The parameter CPSN_ID is missing
ERR_MISMATCH_CLOC The field CLOC_ID does not match the organization ID of the contact found by looking up phone number.
ERR_MISMATCH_CPSN The field CPSN_ID does not match the Contact of the phone number found by lookup.

/DeleteCPSNCOM (PhoneApp -> Delos)

PhoneApp may decide to delete a phone number or a mobile number for a contact.
DeleteCPSNCOM can only be performed after Phone_GetCPSN since it requires to send CPSN_ID and CCOM_ID identifiers.
This scenario occurs when PhoneApp detects differences between local contact manager infos and infos received from Phone_GetCPSN.
To delete a CCOM for a CPSN, PhoneApp sends a HTTP GET request to Delos instance:

https://fr01a.buzzee.tel/JSON/1xxx1abcdef/DeleteCPSNCOM?CPSN_ID=1000202&CCOM_ID=1001&XMLC_SkipNextAction=1

Fields Description
CPSN_ID The Contact ID as received when invoking Phone_GetCPSN
CCOM_ID The ID of CCOM to delete retrieved from Phone_GetCPSN
XMLC_SkipNextAction Skip the following action The resulting DataPacket is unknown

Delos instance MAY respond with a JSON document:

{ }

The following table summarizes the different error codes:

Errors Description
ERR_BLANK_CPSN_ID The parameter CPSN_ID is missing.
ERR_BLANK_CCOM_ID The parameter CCOM_ID is missing.

/DeleteCLOCCOM (PhoneApp -> Delos)

PhoneApp may decide to delete a phone number or a mobile number for an organization (phone number associated to an address).
DeleteCLOCCOM can only be performed after Phone_GetCPSN since it requires to send CLOC_ID and CCOM_ID identifiers.
This scenario occurs when PhoneApp detects differences between local contact manager infos and infos received from Phone_GetCPSN.
To delete a CCOM for a CLOC, PhoneApp sends a HTTP GET request to Delos instance:

https://fr01a.buzzee.tel/JSON/1xxx1abcdef/DeleteCLOCCOM?CPSN_ID=1000201&CCOM_ID=1001&XMLC_SkipNextAction=1

Fields Description
CLOC_ID The Organization ID as received when invoking Phone_GetCPSN
CCOM_ID The ID of CCOM to delete retrieved from Phone_GetCPSN
XMLC_SkipNextAction Skip the following action The resulting DataPacket is unknown

Delos instance MAY respond with a JSON document:

{ }

The following table summarizes the different error codes:

Errors Description
ERR_BLANK_CLOC_ID The parameter CLOC_ID is missing.
ERR_BLANK_CCOM_ID The parameter CCOM_ID is missing.

Workflow to sync contacts

PhoneApp needs to keep track of the bookmark of versioning of Delos DB by invoking /Phone_GetDBVersions
this is used by PhoneApp when querying contact details from Delos instance to know if the local version of contact details is up-to-date or should be replaced. As well, comparing Bookmark from Delos with local bookmark, PhoneApp may decide to batch a modified contact by invoking BatchCPSN. This is the duty of client application PhoneApp to compare with Phone_GetCPSN which details of the contact are up-to-date. The bookmark maintained locally reflect the latest Phone_SyncExtractCPSN performed.
At registration time, PhoneApp may populate initially all contacts stored on the mobile by invoking Delos instance BatchCPSB foreach contact, and keep the bookmark of the DBVersions for future comparisons.

Bookmark is also used to retrieve the modified contacts from the Delos instance, by invoking /Phone_SyncExtractCPSN with the bookmark saved from previous Sync.

At the end of Sync sequence the PhoneApp will store locally the bookmark as reference for future synchronization.

/Phone_SyncExtractCPSN (PhoneApp -> Delos)

The PBX server may query the list of existing users.
The PBX sends a HTTP GET request with the last bookmark received, to query the list of most recently created users

https://fr01a.buzzee.tel/JSON/1xxx1abcdef/ASP_UsersPhones?Bookmark=1000010,1000000000&MaxRecords=100

 
Fields Description
Bookmark optional parameter. An opaque string meaningful only for the Delos server.
This value is blank for the initial request, or to reset the sync process from the beginning.
Subsequent call is using the value returned in the previous response.
MaxRecords optional parameter. The maximum number of records in the response.
The response will contain the element EOF=1 if all records have been fetched, otherwise EOF=0 meaning it requires to query again Phone_SYncExtractCPSN with the latest bookmark to fetch the next datapacket.

Delos instance will respond with status code 200 with the list of contacts (CPSN):

{ "Bookmark": "1000046,100000000", 
  "EOF": "1", 
  "CPSNS": { "CPSN": [
     { "CPSN_ID": "1000202", "CPSN_VERSION": "1000045", 
       "CPSN_FIRST_NAME": "Dave", "CPSN_LAST_NAME": "THEUGLY",
       "CCOMS": { "CCOM": [ { "CCOM_ID": "1001", "CCOMKND_ID": "-3515", "CCOM_VALUE": "33609876543" },
                   { "CCOM_ID" : "1002", "CCOMKND_ID" : "-3501", "CCOM_VALUE" : "dave@acme.com" } ] 
                 }
       "CLOC" : { "CLOC_ID" : "10000201", "CLOC_VERSION" : "1000041", "CLOC_NAME" : "ACME" }
     } 
   ], ... 
  }
}

The major elements are:

Errors Description
Bookmark The opaque bookmark to be used for subsequent calls.
EOF End Of File. This element will be set to "1" if the response contain all records up-to-date.
If this element is set to "0", then it is necessary to query again the server to fetch the next list of contacts.
CPSNS An array of contacts
CPSN The record of the contact. The same record, meaning with the same contact CPSN_ID, may appear multiple times in the response. The PhoneApp MUST check against field values to compare with local version.
CLOC The record for the address of the contact. 
Note: This record is embedded inside the record of CPSN, which is a different structure than Phone_GetCPSN.
K_SYSTEM/K_DELETED Optional. When a contact has been deleted in the Delos DB, the record CPSN/K_SYSTEM will contain a field K_DELETED with a date meaning that the record has been deleted.
In this case, the CPSN record may not contain a CLOC embedded record.

/Phone_SyncBatchCPSN (PhoneApp -> Delos)

PhoneApp may batch multiple contacts at once during the process of Synchronization.
PhoneApp will POST a request to Delos instance with the content of the body as a JSON document:

https://fr01a.buzzee.tel/JSON/1xxx1abcdef/Phone_SyncBatchCPSN

{ "CPSNS" { "CPSN" : [ 
  { "CPSN_ID" : "1000202", 
    "CPSN_FIRST_NAME" : "Dave", "CPSN_LAST_NAME" : "THEUGLY",
    "CCOMS" : { "CCOM" :
          [ { "CCOM_ID" : "1001", "CCOMKND_ID" : "-3515", "CCOM_VALUE" : "33609876543" },
            { "CCOM_ID" : "1002", "CCOMKND_ID" : "-3501", "CCOM_VALUE" : "dave@acme.com" },  ….
          ] },
    "CLOC" : { "CLOC_ID" : "10000201", "CLOC_NAME" : "ACME" }
  }, ...
  ] } 
}

The major fields are:

Fields Description
CPSN_ID The Contact ID if updating existing contact
CPSNKND_ID -3005001=Monsieur, -3005002=Madame, -3005003=Mademoiselle, -3005004=Docteur
CPSN_LAST_NAME Last name of the contact
CPSN_FIRST_NAME First name of the contact
CPSN_INFO Informations for the contact
CLOC_ID ID of the organization if updating existing address
CLOC_NAME Name of the organization
CLOC_ADDRESS1 First line of address
CLOC_ADDRESS2 Second line of address
CLOC_ZIP Zip code of the address
CLOC_CITY City of the organization/contact
CLOCCRY_NAME Country name
CLOC_INFO Informations for this address
CCOMKND_ID -3501=Email, -3509=Cell/Mobile, -3515=Phone, ...
CCOM_VALUE Cell/Mobile number should be formatted as 33612345678
Landline phone number should be formatted as 33123456789

The following table summarizes the different error codes:

Errors Description
ERR_MISMATCH_CLOC The field CLOC_ID does not match the organization ID of the contact found by looking up phone number.
ERR_MISMATCH_CPSN The field CPSN_ID does not match the Contact of the phone number found by lookup.