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. |