Registration

Disclaimer

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

User flow when lauching the application

The application initially collect the phone number of the user:

1. Retrieve the regional server (@fr1).
2. Retrieve the user on the regional server: /ASP_GetUserFromPhone?Phone=33612345678
    If there is a user → proceed to login on the Host server

3. If there is no user (all other cases):
     a) Retrieve the local server via FormOpenAccount.
     b) Check if the server is invitation-only:
          If no → register directly.
          If yes → Collect the user's email address and call /ASP_WaitStatus?Email= to manage waiting list status:
              - Status=UserNotFound → "Waiting list" screen, then:
                      Use OAuth2 Email authentication OR
                      Call /ASP_WaitEmailPIN?Email= followed by /ASP_WaitRegister?Email=

              - Status=SessionIdNotFound → "Obtain session ID" screen, then:
                       Use OAuth2 Email authentication OR
                       Call /ASP_WaitEmailPIN?Email= followed by /ASP_WaitObtainSession?Email= and then /ASP_WaitStatus?Email=

              - Status=Wait → "Pending validation" screen.
              - Status=Invite → "Invitation accepted" screen.
              - Status=User → displayed error (this case should not happen,
                                                                    /ASP_GetUserFromPhone has been called at the beginning of the flow).

If the user relaunches the app:

1. If Credentials (Phone+SessionID) are present -> perform /CheckSession
2. If no credential, Retrieve information locally:
    - Check if they have already registered on the waiting list
    - Retrieve Email, SessionID, Phone, CountryCode 
3. We call /ASP_WaitStatus?Email= with the available information:
     - Status=Invite → "Invitation accepted" screen.
     - Status=Wait → "Pending validation" screen.
     - If contact found but no SessionID:
            Use OAuth2 Email authentication OR
            Call /ASP_WaitEmailPIN?Email= followed by /ASP_WaitObtainSession?Email= and then /ASP_WaitStatus?Email=
     - Any other case → We display the first login page that asks for the phone number.

Preflight - Register on waiting list

During the rampup phase, all users will be queued on a waiting list.
This is the duty of the PhoneApp to manage the different steps to register the future user on the waiting list of the global connect servers:



0. The client application needs to query /ASP_WaitStatus on global connect servers to check the user is not already in the waiting list
1. The client application is now ready to proceed to register the candidate on the waiting list (if the region requires Wait=1), 
invoke /ASP_WaitEmailPIN on top-level Global connect1.buzzee.tel server.
2. Global connect server will send an email with a PIN code to the email address provided
3. Invoke /ASP_WaitRegister with the main infos CountryCode, Email, PIN code, FirstName, LastName, Phone, to enqueue the candidate on the waiting list for his country (based on the CountryCode selected).
4. Optional. To get notified PhoneApp will request the user to accept notifications, it will collect the FireBase device registration token, and store this token by invoking /ASP_WaitRegisterNotification
5. Optional. When the waiting user will be officially invited to proceed to open his account, a /sendNotification of type "Invite" will be sent to the Notifications server which will relay this notification to the FireBase, which in turns will send the notification to the device.
6. the user will be invited to check from time to time the status of his registration, and wait for an invite, this is done by querying /ASP_WaitStatus
Once the ASP_WaitStatus become { "Status" : "Invite" }, then PhoneApp can proceed to the standard workflow to open account for a new user.

Meanwhile, the future user can gain faster invitation by getting some support from sponsors :

Once queued in the waiting list, in order to accelerate his validation for an invite, the user can search for sponsors.
1. The user is invited to check the contacts listed in his contact manager, to search for existing registered users of the application by invoking /ASP_WaitGetUsers
2. global connect server will collect on the different regional connect servers the existing users matching the list of phone numbers provided by invoking /ASP_GetUsers
3. ForEach existing user, global connect server will invoke /Phone_InsertWMSGNOT to insert a notification in the account of each user to invite them to sponsor the waiting user
3.bis The user may trigger a /ASP_WaitRequestSponsor for a specific contact which a user of BuzzeeTalk
4. /Phone_ListWMSGNOT will display the list of notifications with invitation to sponsor the waiting user
5. Client application can display a one-button "accept and invite" for each message and invoke /Phone_Invite to invite the waiting user,
as well, the client application may provide a form to submit an invite by providing the phone number of a contact requesting an invite.
6. Delos hosting server will invoke /ASP_WaitInvite to passthru the invite from the hosting server to the global connect server, increasing the number of sponsors of the waiting user.

/ASP_WaitStatus (PhoneApp -> Connect)

At initial download of the application, the client invokes ASP_WaitStatus to verify the user does not exists in the waiting list.
At regular time, the client application may request the status in the waiting list, until Status=Invite, in order to proceed to open account on a hosting server.
This query is performed against the global connect servers, connect1.buzzee.tel, connect2, connect3, whichever first server responds.

https://connect1.buzzee.tel/JSON/ASP_WaitStatus?CountryCode=FR&Email=john.doe@acme.com&SessionID=ABCDEF&Phone=33612345678

Note: Prefer to check on connect1.buzzee.tel then connect2.buzzee.tel, rather than invoking https://connect.buzzee.tel/ since it may return a 301 Redirect.

Parameter Description
CountryCode Used to locate which database to use for this contact.
Example: FR  (DatabaseID will be 10033)
Email Email address used to register the contact on the waiting list.
SessionID Optional. Max 3 attempts per day. SessionID provided once registration on waiting list is completed.
If SessionID has been lost, PhoneApp can request a new SessionID through /ASP_WaitEmailPIN
and  /ASP_WaitObtainSession
Phone Optional. During the standby process on the waiting list.

Initially, the user does not exists :

{ "Status": "NotFound" }

If the user is queued on the waiting list, Connect instance will respond with following response:

{ "Status": "Wait" }

Once the user is invited to proceed to open an account of a hosting server, the response will be:

{ "Status": "Invite", "Host":"fr1.buzzee.tel", "Hosts", "fr2.buzzee.tel" }

The table below describes the different fields:

Fields Description
Status One of the following value:
- NotFound : initially the contact is not queued in the waiting list. The client application needs anyway to lookup on the regional connect server managing the international prefix of the phone number.
- Wait : the contact is queued in the waiting list
- Invite : the contact has been elected to open account and is invited to proceed the registration.
- User : the contact has successfully open his account on a hosting server.
- Unregister : the contact has unsubscribed from the waiting list, or closed his user account.
ScopeID Optional. Only for diagnosis information. ScopeID is created as Prefix Intl Code E164 (+10000).
ScopeID of USA/CANADA (+1) is 10001. FR (+33) is 10033. SXM (+1721) Sint Maarten (Dutch part) ScopeID is 11721.
CountryCode Optional. ISO code of the country extracted from the CLOC_METADATA. (Name of the country can be found in CLOC_INFO of the scope).
RegisteredAt Optional. Date of the registration in the waiting list, extracted from the CPSN_METADATA
Sponsors Optional. Number of sponsors who have validated his registration, extracted from the CPSN_METADATA
Position Optional. Estimated position in the list to receive the invitation.
Total Optional. Estimated number of candidates for this Region. (FastCount CPSN).

The server may return errors

Errors Description
ERR_ASP_USER_EXISTS An existing user is already registered with the same email address.
ERR_SESSION_MISMATCH SessionID submitted does not match the CPSN_SESSION registered for the contact.
ERR_MAX_DAILY_ATTEMPTS_PER_IP Max daily attempts from the same IP
ERR_MAX_DAILY_ATTEMPTS_PER_PHONE Max daily attempts for the same phone number
ERR_MAX_DAILY_ATTEMPTS_PER_EMAIL Max daily attempts for the same email address

/ASP_GetRegion (PhoneApp -> Connect)

DEPRECATED as-of 2024-11-12. Should be replaced by downloading file https://connect1.buzzee.tel/Regions.json

The topology of the infrastructure relies on 3 levels:
- The global connect servers (connect1, connect2, connect3, ... ), queueing future users in waiting list per country
- The regional connect servers (per country, fr1.buzzee.tel, fr2.buzzee.tel,...), meant for lookups to locate on which hosting servers are hosted the account of each user
- The local hosting servers fr01a.buzzee.tel (frb01.buzzee.tel) store the user accounts

/ASP_GetRegion will provide the regional connect server for the region serving this phone number (based on international prefix).

https://connect1.buzzee.tel/JSON/ASP_GetRegion?Phone=33612345678

Note: Prefer to check on connect1.buzzee.tel then connect2.buzzee.tel, rather than invoking https://connect.buzzee.tel/ since it may return a 301 Redirect.

If there is a user already registered, Connect instance will respond with following response:

{ "Region" : "fr.buzzee.tel", "Invite" : "1", "Country" : "FR",
   "Host" : "fr1.buzzee.tel",  "Hosts" : "fr1.buzzee.tel,fr2.buzzee.tel" }

The table below describes the different fields:

Fields Description
Region Domain of the region.
Example: fr.buzzee.tel or es.buzzee.tel
Invite Optional. During ramup phase, this value will be set to "1", and means to queue the applicants to a waiting list until they receive an invite to proceed to open an account.
"Invite": "1"
Country Optional. It will provide an information about the country code of this region.
Example: FR or ES
Host Host to perform the lookup to locate the hosting server of a user based on his phone number.
As explained in the topology, this Host is a regional connect server.
Example: fr1.buzzee.tel
Hosts Hosts participating in the cluster of this regional connect domain.
To be used in order until the first host is responding.
Example: fr1.buzzee.tel,fr2.buzzee.tel

The server may return errors

Errors Description
ERR_BLANK_PHONE Parameter Phone is blank.

/ASP_WaitObtainPIN (PhoneApp -> Connect)

DEPRECATED as-of 2024-11-12.

To validate the Phone number of the user, a PIN code will be sent to the device through SMS.
This PIN code will need to be collected by the PhoneApp or by the user to validate the action /ASP_WaitRegister.
the HTTP request will be GET on the global host, in this example: connect1.buzzee.tel

http://connect1.buzzee.tel/JSON/ASP_WaitObtainPIN?Phone=33612345678&XMLC_Language=FRANCAIS

Fields Description
Phone Mobile phone number of the user.
SMS containinig the PIN code will be sent to this number.
XMLC_Language Optional. You may define the language used for the SMS to be sent.
Possible values: ENGLISH, FRANCAIS, DEUTSCH, ESPANOL, ITALIANO.
SMS_Template Optional. You may request to use a pre-defined template to send the content of the SMS with the PIN code.
Example: LOGIN_PINCODE_ANDROID will send the follwoing SMS content: "Your PIN code is 123456"
LOGIN_PINCODE_APPLE will send the follwoing SMS content: "Your PIN code is 123456"
SMS_AppID Optional. For Android application, you may set value to "Phone_AndroidHashString"
Email Optional. Email of the user. This email will be used to locate existing user already registered or queued on the waiting list.

Delos instance will return in case of success a simple response:

{ "Status": "PIN_SENT" } 

In case of error, expect a 500 Internal Server Error response:

{ "Code": "ERR_SEND_SMS" } 

The server may return errors

Errors Description
ERR_BLANK_PHONE Parameter phone number is blank.
ERR_INVALID_PHONE Invalid phone number. Maybe wrong format.
ERR_SEND_SMS Cannot invoke the SMS provider to send SMS
ERR_SEND_PIN The SMS could not be sent due to error in phone number format or insufficient credits
ERR_MAX_DAILY_ATTEMPTS_PER_IP Max daily attempts from the same IP
ERR_MAX_DAILY_ATTEMPTS_PER_PHONE Max daily attempts for the same phone number
ERR_MAX_DAILY_ATTEMPTS_PER_EMAIL Max daily attempts for the same email address
ERR_ASP_USER_EXISTS An existing user is already registered with the same email address.
ERR_PHONE_ALREADY_EXISTS An existing user is already registered with the same phone number

/ASP_WaitEmailPIN (PhoneApp -> Connect)

To validate the process of registration based on email address to identify the candidate, a PIN code will be sent by email.
This PIN code will need to be copy/paste by the user from the email received to validate the action /ASP_WaitRegister.
the HTTP request will be GET on the global host, in this example: connect1.buzzee.tel

http://connect1.buzzee.tel/JSON/ASP_WaitEmailPIN?CountryCode=FR&Email=john.doe@acme.com&XMLC_Language=FRANCAIS

Fields Description
CountryCode Used to locate which database to use for this contact.
Example: FR  (DatabaseID will be 10033)
Email Email address used to register the contact on the waiting list.
XMLC_Language Optional. You may define the language used for the content of the email to be sent.
Possible values: ENGLISH, FRANCAIS, DEUTSCH, ESPANOL, ITALIANO.
CPSN_FIRST_NAME Optional. First name of the user. Used in the template of the email to start with "Hello John,"
CPSN_LAST_NAME Optional. Last name of the user. If not set, the last name will be initialized from the phone number

Delos instance will return in case of success a simple response:

{ "Status": "PIN_SENT" } 

If the contact already exists, the response will contain CPSN_ID not blank.
This workflow may be used to regain access to a SessionID using /ASP_WaitObtainSession:

{ "Status": "PIN_SENT", "CPSN_ID" : "1001002" } 

In case of error, expect a 500 Internal Server Error response:

{ "Code": "ERR_SEND_EMAIL" } 

The server may return errors

Errors Description
ERR_BLANK_EMAIL Parameter phone number is blank.
ERR_SEND_EMAIL Cannot send the email. It may be a different error.
ERR_MAX_DAILY_ATTEMPTS_PER_IP Max daily attempts from the same IP
ERR_MAX_DAILY_ATTEMPTS_PER_PHONE Max daily attempts for the same phone number
ERR_MAX_DAILY_ATTEMPTS_PER_EMAIL Max daily attempts for the same email address
ERR_ASP_USER_EXISTS An existing user is already registered with the same email address.
ERR_PHONE_ALREADY_EXISTS An existing user is already registered with the same phone number

/ASP_WaitRegister (PhoneApp -> Connect)

Once the PIN code has been received, and collected by the mobile app on the phone,
PhoneApp can proceed to register the future user in the waiting list.

The HTTP request will use POST multipart/form-data since there are few fields to submit:

http://connect1.buzzee.tel/JSON/ASP_WaitRegister?
CountryCode=FR
Email=john.doe@acme.com
PIN=123456
CPSN_LAST_NAME=Doe
CPSN_FIRST_NAME=John
Phone=33612345678
XMLC_Language=FRANCAIS

or

http://connect1.buzzee.tel/JSON/ASP_WaitRegister?
CountryCode=FR
Email=john.doe@acme.com
CPSN_LAST_NAME=Doe
CPSN_FIRST_NAME=John
Phone=33612345678
XMLC_Language=FRANCAIS
Provider=Google
IDToken=1x.abcdef.123456
AccessToken=1x.....
RefreshToken=1x.....

Params Description
CountryCode Used to locate which database to use for this contact.
Example: FR  (DatabaseID will be 10033)
Email Email of the user.
PIN The PIN code received by SMS to validate the phone number of the user. Made of 6 digits.
If the Email has been validated by OAuth on the client application, this field is optional, and replaced with the 2 parameters AccesToken and RefeshToken
XMLC_Language Optional. You need to define the preferred language for the user.
Possibly extracted from the Locale of the device (fr-FR).
Possible values: ENGLISH, FRANCAIS, DEUTSCH, ESPANOL, ITALIANO.
CPSN_FIRST_NAME Optional. First name of the user. Used in communication by email to start with "Hello John,"
CPSN_LAST_NAME Optional. Last name of the user. If not set, the last name will be initialized from the phone number
Phone Optional. The phone number of the future user.
Provider Optional. The OAuth provider used to validate the email address by the client application.
Example: Google, Apple, Microsoft
IDToken Optional. The OAuth ID token obtained from the OAuth provider, validated by the client application.
AccessToken Optional. The OAuth access token obtained from the OAuth provider, validated by the client application.
RefreshToken Optional. The OAuth refresh token obtained from the OAuth provider, validated by the client application.

Delos instance will save this contact on the global connect server, in the scope of the country code provided.
Delos instance will setup a SessionID (CPSN_SESSION) for future communication to update infos :

{ "Status": "Wait", "SessionID": "ABCDEF", "Verified": "1" }

The following fields in the response are:

Fields Description
Status If the action completes successfully, it should return a Status=Wait
SessionID A parameter to store locally on the device, used for all future communications with the global connect server to update infos.
Verified Optional. If the email provided is the same as the one dicovered in the JWT IDToken, then the value is set to "1".

The server may return errors:

Errors Description
ERR_BLANK_EMAIL Parameter phone number is blank.
ERR_INVALID_EMAIL Invalid email address. Maybe missing @ or TLD domain.
ERR_INVALID_PHONE Invalid phone number. Maybe wrong format.
ERR_PIN_MISMATCH PIN code submitted does not match the PIN code sent by SMS
ERR_ASP_USER_EXISTS An existing user is already registered with the same email address
ERR_PHONE_ALREADY_EXISTS An existing user is already registered with the same phone number
ERR_MISSING_PIN_OR_ACCESSTOKEN Missing parameter PIN or AccessToken

/ASP_WaitUnregister (PhoneApp -> Connect)

To unregister a user from the waiting list, PhoneApp can invoke /ASP_WaitUnregister

http://connect1.buzzee.tel/JSON/ASP_WaitUnegister?
CountryCode=FR
Email=john.doe@acme.com
Phone=33612345678
SessionID=ABCDEF

Params Description
CountryCode Used to locate which database to use for this contact.
Example: FR  (DatabaseID will be 10033)
Email Email of the user.
SessionID Value received in response to /ASP_WaitRegister.
Phone Optional. The phone number to identify the user.

Delos instance will unregister this contact from the global connect server DB, in the scope of the country code provided.

{ "Status": "Deleted" }

The following fields in the response are:

Fields Description
Status If the action completes successfully, it should return a Status=Deleted

The server may return errors:

Errors Description
ERR_BLANK_EMAIL Parameter phone number is blank.
ERR_INVALID_EMAIL Invalid email address. Maybe missing @ or TLD domain.
ERR_INVALID_PHONE Invalid phone number. Maybe wrong format.
ERR_SESSION_MISMATCH SessionID submitted does not match the CPSN_SESSION registered for the contact.
ERR_USER_NOT_FOUND User not found from Email/Phone parameters provided.

/ASP_WaitRegisterEmail (PhoneApp -> Connect)

DEPRECATED as-of 2024-11-12.

PhoneApp may suggest to submit email address to be updated on the status and progress of the candidate,
it is the right time to update FirstName and LastName if not provided before.

The HTTP request will use POST multipart/form-data since there are few fields to submit:

http://connect1.buzzee.tel/JSON/ASP_WaitRegisterEmail?
CountryCode=FR
Phone=33612345678
Email=john.doe@acme.com
CPSN_LAST_NAME=Doe
CPSN_FIRST_NAME=John
XMLC_Language=FRANCAIS

Params Description
CountryCode Used to locate which database to use for this contact.
Example: FR  (DatabaseID will be 10033)
Phone The phone number of the waiting user.
SessionID Value received in response to /ASP_WaitRegister.
XMLC_Language Optional. You need to define the preferred language for the user.
Possibly extracted from the Locale of the device (fr-FR).
Possible values: ENGLISH, FRANCAIS, DEUTSCH, ESPANOL, ITALIANO.
Email Email to be used to communicate with the user.
CPSN_FIRST_NAME Optional. First name of the user.
CPSN_LAST_NAME Optional. Last name of the user. If not set, the last name will be initialized from the phone number

Delos instance will update only FirstName, LastName, not email address until it is validated.
Delos will send an email with a PIN code to be copy-paste in PhoneApp to validate the email address,
The client application may invite the user to check his mailbox, to copy-paste the 6-digits PIN code received.

{ "Status": "EmailSent" }

The following fields in the response are:

Fields Description
Status If the action completes successfully, it should return a Status=EmailSent.
Actually, the email is being sent asynchronously.

The server may return errors:

Errors Description
ERR_BLANK_PHONE Parameter phone number is blank.
ERR_INVALID_PHONE Invalid phone number. Maybe wrong format.
ERR_SESSION_MISMATCH SessionID submitted does not match the CPSN_SESSION registered for the contact.
ERR_EMAIL_ALREADY_EXISTS Another user is already registered with the same email address.

/ASP_WaitVerifyEmail (PhoneApp -> Connect)

DEPRECATED as-of 2024-11-12.

The user should be invited to check his inbox for an incoming email from connect.buzzee.tel containing a PIN code,
the user should copy-paste this PIN code inside PhoneApp.

The client application will send a POST multipart/form-data request with following fields:

http://connect1.buzzee.tel/ui/ASP_WaitVerifyEmail
CountryCode=FR
Phone=33612345678
SessionID=ABCDEF
Email=john.doe@acme.com
PIN=123456

Params Description
CountryCode Used to locate which database to use for this contact.
Example: FR  (DatabaseID will be 10033)
Phone The phone number of the waiting user.
SessionID Value received in response to /ASP_WaitRegister.
Email Email to be used to communicate with the waiting user.
PIN PIN code received by email.

Delos instance will check PIN code for this email address, and update the contact with the email address provided.
The response should be:

{ "Status": "OK" }

The following fields in the response are:

Fields Description
Status If the action completes successfully, it should return a Status=OK.

The server may return errors:

Errors Description
ERR_BLANK_PHONE Parameter phone number is blank.
ERR_INVALID_PHONE Invalid phone number. Maybe wrong format.
ERR_SESSION_MISMATCH SessionID submitted does not match the CPSN_SESSION registered for the contact.
ERR_PIN_MISMATCH PIN code submitted does not match the PIN code sent by email.
ERR_EMAIL_ALREADY_EXISTS Another user is already registered with the same email address.

/ASP_WaitRegisterNotification (PhoneApp -> Connect)

Optional. PhoneApp will request the user to accept notifications to get updated once his registration is being accepted,
PhoneAPp will collect the FireBase device registration token, and store this token on Delos instance with a HTTP POST multipart/form-data request:

https://connect1.buzzee.tel/JSON/ASP_WaitRegisterNotification
CountryCode=FR
Email=john.doe@acme.com
SessionID=ABCDEF
Token=abcdef0123456789

Fields Description
CountryCode Used to locate which database to use for this contact.
Example: FR  (DatabaseID will be 10033)
Email Email of the waiting user.
SessionID Value received in response to /ASP_WaitRegister. or /ASP_WaitObtainSession
Token The device registration token as obtained by the FireBase SDK on the mobile application.

Delos instance will respond with Status OK:

{ "Status" : "OK" } 

This device registration token will be sent to the Notifications gateway server to be relayed to FCM (FireBase Cloud Messaging)

The server may return errors:

Errors Description
ERR_BLANK_EMAIL Parameter email is blank.
ERR_USER_NOT_FOUND Email address is not registered in the waiting list
ERR_SESSION_MISMATCH SessionID submitted does not match the CPSN_SESSION registered for the contact.

/sendNotification [type=Invite] (Delos -> Notifications)

Optional. Once the contact has been validated, Delos will send a notification to invite the user to open an account on the hosting server of his region.
Delos instance sends a HTTP POST request to the PhoneNotifications server, with the type parameter as "Invite":

http://phoneappnotifications.buzzee.tel/sendNotification
Email=john.doe@acme.com
SessionID=ABCDEF
type=Invite
Token=abcdef0123456789

Fields Description
Email Email of the waiting user.
SessionID Value of the CPSN_SESSION of the waiting user to be validated by Notifications gateway server .only if necessary
type The value "Invite" will be intercepted by the PhoneApp in order to invite the user to proceed to the workflow to open an account on the hosting server.
Token This is the device registration token which has been stored using /ASP_WaitRegisterNotification

/ASP_WaitGetUsers (PhoneApp -> Connect)

The future user can gain faster invitation by getting some support from sponsors,
PhoneApp can suggest to search for contacts in the contact manager of the device to list the existing users of the application,
for which the future user could leverage to gain sponsor from them.
This action requires a HTTP POST request to /ASP_GetUsersFromPhones on the top-level global connect servers, providing the list of selected phone numbers from the contact manager:

https://connect1.buzzee.tel/JSON/ASP_WaitGetUsers
CountryCode=FR
Email=john.doe@acme.com
SessionID=ABCDEF
Phone=33612345678
Contacts=33711223344
33722334455
33733445566
 

The table below describes the different fields:

Fields Description
CountryCode Used to locate which database to use for this contact.
Example: FR  (DatabaseID will be 10033)
Email Email identifying the waiting user.
SessionID Value received in response to /ASP_WaitRegister.
Phone The phone number of the waiting user.
Contacts Multi-lines formatted as 1 line per contact, selected from the contact manager.
Each line contain 1 phone number per single contact
Example: 33711223344
33722334455
33733445566

The top-level global connect server, will lookup on regional connect servers to find existing users based on the phone numbers provided. The response will contain the list of users found on the regional connect server:

{ "Status" : "OK", "Users" : "33711223344\n33722334455" }

If no user found in the list of the contact manager top-level global connect server will respond with:

{"Status": "NotFound" }

The following fields in the response are:

Fields Description
Status If users have been found, Status=OK.
If no user have been found, Status=NotFound.
Users Multi-lines formatted as 1 line per contact, selected from the contact manager.
Each line contain 1 phone number per single contact.
PhoneApp may suggest to contact these existing users to request for an invite directly from their PhoneApp.
Example:
33711223344
33722334455

The server may return errors

Errors Description
ERR_BLANK_PHONE Parameter phone number is blank.
ERR_INVALID_PHONE Invalid phone number. Maybe wrong format.
ERR_SESSION_MISMATCH SessionID submitted does not match the CPSN_SESSION registered for the contact.

/ASP_WaitRequestSponsor (PhoneApp -> Connect)

The user in the waiting list may enforce to request a sponsor to one of his contact which is an existing user of BuzzeeTalk
This is a HTTP POST request to the Global server connect1.buzzee.tel :

https://connect1.buzzee.tel/JSON/ASP_WaitRequestSponsor?
CountryCode=FR
Email=john.doe@acme.com
SessionID=ABCDEF
Contact=33711223344

Fields Description
CountryCode Used to locate which database to use for this contact.
Example: FR  (DatabaseID will be 10033)
Email Email identifying the waiting user.
SessionID Value received in response to /ASP_WaitRegister.
Phone Phone of the waiting user. It will be used to create the proper contact in the DB of the sponsor.
Contact Phone number of the contact to request a sponsor

Delos will lookup in the regional server where resides the user, and then post the request for sponsor to the server hosting the contact.
Delos instance will respond with a JSON document with Status=OK

{ "Status" : "OK" } 

The server may return errors

Errors Description
ERR_BLANK_EMAIL Parameter email is blank.
ERR_SESSION_MISMATCH SessionID submitted does not match the CPSN_SESSION registered for the contact.

/Phone_ListWMSGNOT (PhoneApp -> Delos)

Existing users may have a list of notification messages in their notification center,
one type of these notifications comes from a candidate in the waiting list in order to obtain an invitation to open his account.
This list can be obtained with a HTTP GET request to /Phone_ListWMSGNOT:

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

Fields Description
WMSGKND_ID Optional. By default will list all notifications.
WMSGKND_ID: -3508=Sponsorship request
To filter on multiple medias use a comma separated formatting.
WMSGKND_ID=-3508,-3528   -> Sponsorship request + Voicemails
WMSG_StartingRow Optional. Fetch a new datapacket starting from the N row.
The previous response contains at the level of WMSGS the attribute "@NextStartingRow": "30"
By requesting WMSG_StartingRow=30 it will load the next 30 records.
When the datapacket reached the end of all records, the attribute @EOF will be set to 1 at level of WMSGS.
WMSG_MaxRows Optional. The number of records to extract per datapacket.
When the datapacket reached the end of all records, the attribute @EOF will be set to 1 at level of WMSGS.

 Delos instance respond with a JSON document corresponding to the list of notifications:

{ "WMSGS" : { "WMSG" : [ 
   { "WMSG_ID": "1001002", "WMSG_DATE": "12/12/2023 09:20:00", "WMSG_MEDIA" : "-3508", 
     "WMSG_INFO" : "Dave TheUgly is requesting a sponsorship to join BuzzeeTalk", 
     "WMSGUSR_PSN" : "1000002", "WMSGUSR_FIRST_NAME" : "Bob", "WMSGUSR_LAST_NAME" : "THEGREAT",
     "WMSGPSN_PSN" : "1000202", "WMSGPSN_FIRST_NAME" : "Dave", "WMSGPSN_LAST_NAME" : "THEUGLY" },
   { "WMSG_ID": "1001004", "WMSG_DATE": "12/12/2023 09:00:00", "WMSG_MEDIA" : "-3508", 
     "WMSG_INFO" : "Carol TheMad is requesting a sponsorship to join BuzzeeTalk",
     "WMSGUSR_PSN" : "1000002", "WMSGUSR_FIRST_NAME" : "Bob", "WMSGUSR_LAST_NAME" : "THEGREAT", 
     "WMSGPSN_PSN" : "1000202", "WMSGPSN_FIRST_NAME" : "Carol", "WMSGPSN_LAST_NAME" : "THEMAD" },
   ...
   ] } 
} 

Actually, JSON document will return a larger document with a lot more fields, but these are the minimalists to be useful in the context of PhoneApp to display the notifications to validate invitation.

/Phone_Invite (PhoneApp -> Delos)

Existing users may have a list of notification messages in their notification center,
one type of these notifications comes from a candidate in the waiting list in order to obtain an invitation to open his account.
To sponsor a waiting candidate the user can invoke with a HTTP GET request /Phone_Invite:

https://fr01a.buzzee.tel/JSON/1xxx1abcdef/Phone_Invite?Phone=33612345678

Fields Description
Phone Phone number to identify the contact to sponsor.
WMSG_ID ID of the message notification of the sponsorship request.

 Delos instance respond with a JSON document Status=OK

{ "Status" : "OK" } 

Delos will forward this request to the global connect server where resides the waiting lists of candidates.

/CloseWMSG (PhoneApp -> Delos)

To mark a sponsorship request as completed, PhoneApp may invoke a HTTP GET request to /CloseWMSG:

https://fr01a.buzzee.tel/JSON/1xxx1abcdef/CloseWMSG?WMSG_ID=1001002&XMLC_SkipNextAction=1

Parameters Description
WMSG_ID ID of the message notification of the sponsorship request.
XMLC_SkipNextAction Set this parameter to 1 to avoid obtaining in response the document of FormWMSG

 Delos instance may respond with a JSON document, but it is probably containing other informations to ignore:

{ "Status" : "OK" } 

/CancelWMSG (PhoneApp -> Delos)

To mark a sponsorship request as cancelled, PhoneApp may invoke a HTTP GET request to /CancelWMSG:

https://fr01a.buzzee.tel/JSON/1xxx1abcdef/CancelWMSG?WMSG_ID=1001002&XMLC_SkipNextAction=1

Parameters Description
WMSG_ID ID of the message notification of the sponsorship request.
XMLC_SkipNextAction Set this parameter to 1 to avoid obtaining in response the document of FormWMSG

 Delos instance may respond with a JSON document, but it is probably containing other informations to ignore:

{ "Status" : "OK" } 

/Phone_Invite (PhoneApp -> Delos)

Existing users may have a list of notification messages in their notification center,
one type of these notifications comes from a candidate in the waiting list in order to obtain an invitation to open his account.
This list can be obtained with a HTTP GET request to /Phone_Invite:

https://fr01a.buzzee.tel/JSON/1xxx1abcdef/Phone_Invite?Phone=33612345678

Fields Description
Phone Phone number to identify the contact to invite.
WMSG_ID ID of the message notification requesting to be sponsored.

 Delos instance respond with a JSON document corresponding to the list of notifications:

{ "Status" : "OK" } 

Delos will forward this request to the global connect server where resides the waiting lists of candidates.

/ASP_WaitObtainSession (PhoneApp -> Connect)

This API is used when SessionID has been lost.
First, the PhoneApp will request /ASP_WaitEmailPIN, the user will copy/paste the PIN code received, PhoneApp will invoke /ASP_WaitObtainSession with the Email and PIN code:

https://fr01a.buzzee.tel/JSON/ASP_WaitObtainSession?CountryCode=FR&Email=john.doe@acme.com&PIN=123456

or POST https://fr01a.buzzee.tel/JSON/ASP_WaitObtainSession
CountryCode=FR
Email=john.doe@acme.com
Provider=Google
IDToken=1x.abcdef.123456
AccessToken=1x...
RefreshToken=1x...

Fields Description
CountryCode Used to locate which database to use for this contact.
Example: FR  (DatabaseID will be 10033)
Email Email of the user.
PIN The PIN code received by Email to validate the email address of the user. Made of 6 digits.
If the Email has been validated by OAuth on the client application, this field is optional, and replaced with the 2 parameters AccesToken and RefeshToken
Provider Optional. The OAuth provider used to validate the email address by the client application.
Example: Google, Apple, Microsoft
IDToken Optional. The OAuth ID token obtained from the OAuth provider, validated by the client application.
AccessToken Optional. The OAuth access token obtained from the OAuth provider, validated by the client application.
RefreshToken Optional. The OAuth refresh token obtained from the OAuth provider, validated by the client application.

 Delos instance responds with a JSON document containing the SessionID:

{ "SessionID": "ABCDEF" }

The following fields in the response are:

Fields Description
SessionID A parameter to store locally on the device, used for all future communications with the global connect server to update infos.

The server may return errors:

Errors Description
ERR_BLANK_EMAIL Parameter phone number is blank.
ERR_PIN_MISMATCH PIN code submitted does not match the PIN code sent by SMS

OpenAccount Workflow

Once the waiting user has been invited to proceed to open account,
the registration of a new user from the PhoneApp follows these steps:

1. Query /ASP_WaitStatus on global connect servers (connect1.buzzee.tel) to check if the phone number of the user is invited to proceed to open an account. It should return Status=Invite.
2. Next, query /ASP_GetRegion on connect1.buzzee.tel to get to which region is assigned this phone number (based on the international prefix).
3. Query /ASP_GetUserFromPhone on fr1.buzzee.tel to check response code error ERR_USER_NOT_FOUND
4. Request /FormOpenAccount on fr1.buzzee.tel to discover the available hosts, ie: RegionID=fr (or fr.buzzee.tel)
    It will respond for a specific RegionID with the list of available servers (hosts) with their capacity, the section PARAMS suggests the host with highest available accounts (Free)
5. Invoke the candidate hosting server (fr01a.buzzee.tel) OpenAccountObtainPIN with Phone and CPSN_EMAIL to check availability
6. the host fr01a.buzzee.tel will send an SMS
    Intercept the SMS containing the PIN code on the device
7. Invoke OpenAccount with Phone, CPSN_EMAIL and PIN code received by SMS
    the response will contain the Credential of the user newly created, PhoneApp can query /CheckSession to verify the Credential
8. To check the validity of the Credential, invoke action CheckSession with the Credential obtained in response of OpenAccount.
9. PhoneApp may register a secondary line (eSIM) used for MakeCall, by first, requesting a PIN code by SMS through Phone_RegisterLineObtainPIN, then submitting the PIN code received to Phone_RegisterLine
10. Finally PhoneApp will invoke Phone_Register to store on Delos instance the device registration token that will be used to identify the device for push notifications for FCM (FireBase Cloud Messaging)
11. a test notification will be sent which can be intercepted by PhoneApp in order to verify that device registration token is valid.

/ASP_GetUserFromPhone

After getting the hosts of regional connect servers from the top-level global connect server at /ASP_GetRegion,
the client application needs to check that the phone number is not yet registered on the regional connect server associated : fr1.buzzee.tel (fr1, fr2, ..., whichever first server respond).

https://fr1.buzzee.tel/JSON/ASP_GetUserFromPhone?Phone=33612345678&XMLC_Culture=fr

Note: Prefer to check on fr1.buzzee.tel then fr2.buzzee.tel, rather than invoking https://fr.buzzee.tel/ since it may return a 301 Redirect.

If there is a user already registered, the regional connect instance will respond with following response:

{ "Domain": "fr01.buzzee.tel", "Host": "fr01a.buzzee.tel", 
  "XMLC_UserID": "100008", "XMLC_ScopeID": "100007" }

The table below describes the different fields:

Fields Description
Domain Domain where the user is registered. This is the cluster of Delos instance (made of multiple hosts).
Host Primary host where the data of the user are stored.
This is the primary endpoint URL to use to invoke the instance.
XMLC_UserID UserID for this user phone number declared at the Host.
XMLC_UserID is unique for a host but a similar UserID may exists on a different host.
XMLC_ScopeID Scope of the user at the host. This is the Database ID, the TenantID, it may also be called SandboxID.
A scope may contain multiple users from the same organization.
A host may contains hundreds of scopes (independant databases).

If the user is not registered with this phone number the regional connect instance will respond with 404 Not Found:

{"Code": "ERR_USER_NOT_FOUND", "Message": "TXMLInstruction.Process - Operation=Assert Name=CheckCPSN_ID"}

PhoneApp can proceed to the next step of the registration process: /FormOpenAccount
Note: during rampup phase, /ASP_GetUserFromPhone should be used to obtain ERR_USER_NOT_FOUND, and proceed to /ASP_WaitObtainPIN to register the future user on waiting list at the top-level global connect servers.

The server may return errors

Errors Description
ERR_BLANK_PHONE Parameter Phone is blank.
ERR_INVALID_PHONE Invalid phone number. Probably including invalid characters or invalid length (shorter than PSTN local phone number and shorter than the international format for the region).
ERR_INVALID_PSTN_LEADING Phone parameter detected as local phone number based on the length, but the phone value does not start with the proper leading digit. 
1612345678 does not start with '0' for local number in France
ERR_INVALID_PHONE_LENGTH Invalid length for the international phone number.
Too long: 331612345678
Too short: 3361234567
ERR_INTL_PHONE_NOT_SUPPORTED International phone number not supported in this region.
For instance, 34612345678 will be rejected for region=FR.
ERR_USER_NOT_FOUND User does not exists.
During the registration process, the client application should proceed to following stage.
ERR_MAX_DAILY_ATTEMPTS_PER_IP Max daily attempts from the same IP
ERR_MAX_DAILY_ATTEMPTS_PER_PHONE Max daily attempts for the same phone number
ERR_MAX_DAILY_ATTEMPTS_PER_EMAIL Max daily attempts for the same email address

/FormOpenAccount

PhoneApp will query the instance fr1.buzzee.tel to retrieve the list of Regions,
then querying again the same endpoint with a RegionID will list hosts ready to accept registration of new users.

The first request to obtain the list of regions:

https://fr1.buzzee.tel/JSON/FormOpenAccount?Phone=33612345678&XMLC_Language=FRANCAIS

Parameters Description
Phone Required. It will be used during rampup phase based on invitation.
XMLC_Language Required. It will be used during rampup phase based on invitation.
Possible values: ENGLISH, FRANCAIS, DEUTSCH, ESPANOL, ITALIANO.

The instance will respond with the list of Regions (the document displayed here is only partial, the actual document may contain multiple fields and datasets)

{ "Regions": { "Region": [
    { "ID": "fr.buzzee.tel", "Name": "France BuzzeeTel" },
    { "ID": "be.buzzee.tel", "Name": "Belgique BuzzeeTel" },
    { "ID": "ch.buzzee.tel", "Name": "Suisse BuzzeeTel" } ] }
}

The PhoneApp client application may pick the proper Region based on the location of the user,
then it may query now fr1.buzzee.tel to obtain the list of available hosts for this RegionID:

https://fr1.buzzee.tel/JSON/FormOpenAccount?Phone=33612345678&RegionID=fr.buzzee.tel

Parameters Description
Phone Required. It will be used during rampup phase based on invitation validated.
RegionID Extract the Region with preferred servers for this region.

The instance will respond with the list of hosts for this region (the document displayed here is only partial, the actual document may contain multiple fields and datasets)

{ "Regions": { "Region": [
    { "ID": "fr.buzzee.tel", "Name": "France BuzzeeTel", "Server" : [
      { "Domain": "fr01.buzzee.tel", "Host": "fr01a.buzzee.tel", 
        "URL": "https://fr01a.buzzee.tel/Delos/", 
        "MaxAccounts": "100", "FreeCount": "99", "Current": "1" },
      { "Domain": "fra02.buzzee.tel", "Host": "fra02.buzzee.tel",
        "URL": "https://fra02.buzzee.tel/Delos/",
        "MaxAccounts": "100", "FreeCount": "85", "Current": "15" }
      ] }
   ] },
  "PARAMS": { "RegionID": "fr.buzzee.tel", "ASP_Host": "fr01a.buzzee.tel", 
              "FreeCount": "14", "CheckInvite": "1" }
}

New as of 2024-12-02: The PARAMS record contains the following fields

Fields Description
RegionID The RegionID selected as parameter to the request to /FormOpenAccount
ASP_Host The preferred host for this region selected by the regional server.
The app should redirect the user to open account on this host.
FreeCount The number of accounts available on the preferred ASP_Host.
CheckInvite New as of 2025-01-03. When CheckInvite=1, the FreeCount is only valid for contact registered in the waiting list with Status=Inivite. There is no longer any open accounts available on any ASP_Host.
This requires the PhoneApp to query the global connect server to obtain the Status=Invite for the contact before routing to continue processing to ASP_Host.
If the contact is not yet registered in the waiting list on the global connect server, the PhoneApp need to route to the workflow of /ASP_WaitRegister. (AS_WaitEmailPIN,...)

Before 2024-12-02: The client application needs to first select the Region, then lookup in the array of Server for this region, to select the host with maximum FreeCount, in order to balance the registration of new users across the pool of servers.

The Server record contains the following fields

Fields Description
Domain Domain of the server. This is the cluster of Delos instance (made of multiple hosts).
Host Primary host of the Domain.
URL This is the primary endpoint URL to use to invoke this instance.
In case of automation it requires to replace the end of the URL containing "/Delos/" with "/JSON/" to receive a JSON response.
MaxAccounts The maximum number of user accounts this server can handle.
FreeCount The number of available user accounts at this server.
Current The current number of active user accounts on this server.
Note: this information may not be delivered in future versions.

At this stage the client application will select the least loaded server to continue the process of registration and obtain a PIN code for validation.

/OpenAccountObtainPIN

To validate the Phone number of the user, a PIN code will be sent to the device through SMS.
This PIN code will need to be collected by the PhoneApp or by the user to validate the action OpenAccount.
the HTTP request will be POST on the selected Host of the Region, in this example: fr01a.buzzee.tel

http://fr01a.buzzee.tel/JSON/OpenAccountObtainPIN
Phone=33612345678
XMLC_Language=FRANCAIS
SMS_Template=LOGIN_PINCODE_ANDROID
SMS_AppID=Hash123456
CountryCode=FR
XMLC_SkipNextAction=1

Fields Description
Phone Mobile phone number of the user.
SMS containinig the PIN code will be sent to this number.
If optional parameter CPSN_EMAIL is not setup, this phone number will be used to identify the user.
XMLC_Language Optional. You may define the language used for the SMS to be sent.
Possible values: ENGLISH, FRANCAIS, DEUTSCH, ESPANOL, ITALIANO.
SMS_Template Optional. You may request to use a pre-defined template to send the content of the SMS with the PIN code.
Example: LOGIN_PINCODE_ANDROID will send the follwoing SMS content: "Your PIN code is 123456"
LOGIN_PINCODE_APPLE will send the follwoing SMS content: "Your PIN code is 123456"
SMS_AppID Optional. For Android application, you may set value to "Phone_AndroidHashString"
CPSN_EMAIL Optional. Existing email of the user. This email will be used as a user name for the user to login on the server.
In the future this email may also serve as a recovery email.
If not set, the phone number will be used to identify the user.
CountryCode Optional. Used to invoke the global server to locate in which waiting list is registered this contact.
If not provided, the parameter Phone will be used to determine from the prefix the CountryCode.
Example: FR  (DatabaseID will be 10033)
XMLC_SkipNextAction Skip the pipeline of the WebApp by returning after updting the preferences.

Delos instance will return in case of success a simple response:

{ "Status": "PIN_SENT" } 

In case of error, expect a 500 Internal Server Error response:

{ "Code": "ERR_SEND_SMS" } 

The server may return errors

Errors Description
ERR_ASP_INSUFFICIENT_FREECOUNT Insufficient available resource to create a new account at this host
The client application needs to select a different host from the top region
ERR_BLANK_PHONE Parameter phone number is blank.
ERR_INVALID_PHONE Invalid phone number. Maybe wrong format.
ERR_SEND_SMS Cannot invoke the SMS provider to send SMS
ERR_SEND_PIN The SMS could not be sent due to error in phone number format or insufficient credits
ERR_MAX_DAILY_ATTEMPTS_PER_IP Max daily attempts from the same IP
ERR_MAX_DAILY_ATTEMPTS_PER_PHONE Max daily attempts for the same phone number
ERR_MAX_DAILY_ATTEMPTS_PER_EMAIL Max daily attempts for the same email address
ERR_ASP_USER_EXISTS An existing user is already registered with the same email address
ERR_PHONE_ALREADY_EXISTS An existing user is already registered with the same phone number
ERR_STATUS_NOT_INVITE This registration has not yet been approved. User may be invited to retry at a later time.

/OpenAccount

Once the PIN code has been received, and collected by the mobile app on the phone,
it is possible to invoke the action which will create the account for the user on the selected server of the region.

The HTTP request will use POST multipart/form-data since there are few fields to submit:

http://fr01a.buzzee.tel/JSON/OpenAccount?
ASP_Host=fr01a.buzzee.tel
Phone=33612345678
PIN=123456
SkipCLOC_ROOT_PPRJ=1
SkipCPSN_ROOT_PPRJ=1
SkipPopulateFDB=1
SkipMessenger=1

Params Description
ASP_Host Host which should match the server hostname
Phone The phone number of the user,
the same phone number used to obtain the PIN code
PIN The PIN code received by SMS to validate the phone number of the user. Made of 6 digits.
XMLC_Language You need to define the preferred language for the user.
Possibly extracted from the settings of the device.
Possible values: ENGLISH, FRANCAIS, DEUTSCH, ESPANOL, ITALIANO.
CPSN_EMAIL Optional. Existing email of the user. If this value is setup it will be used as a user name for the user to login on the server.
In the future this email may also serve as a recovery email.
CountryCode Optional. Used to invoke the global server to locate in which waiting list is registered this contact.
If not provided, the parameter Phone will be used to determine from the prefix the CountryCode.
Example: FR  (DatabaseID will be 10033)
CPSN_FIRST_NAME Optional. First name of the user.
CPSN_LAST_NAME Optional. Last name of the user. If not set, the last name will be initialized from the phone number
SkipMessenger Optional. PhoneApp requires only a simplified account. This parameter should be setup as SkipMessenger=1
SkipCLOC_ROOT_PPRJ Optional. PhoneApp requires only a simplified account. This parameter should be setup as SkipCLOC_ROOT_PPRJ=1
SkipCPSN_ROOT_PPRJ Optional. PhoneApp requires only a simplified account. This parameter should be setup as SkipCPSN_ROOT_PPRJ=1
SkipPopulateFDB Optional. PhoneApp requires only a simplified account. This parameter should be setup as SkipPopulateFDB=1

Delos instance will create the user and register the user also on the connect.buzzee.tel cluster.
Delos instance will setup a credential dedicated for the JSON client :

{ "XMLC_UserID": "1000001", "XMLC_Session": "20231208", "XMLC_Credential": "1xx1abcdef"}

The following fields in the response are:

Fields Description
XMLC_UserID User ID on this server
XMLC_Session Session for this JSON client
XMLC_Credential Credential encoding both XMLC_UserID and XMLC_Session

But the server may return errors:

Errors Description
ERR_ASP_INSUFFICIENT_FREECOUNT Insufficient available resource to create a new account at this host
The client application needs to select a different host from the top region
ERR_INVALID_PHONE Invalid phone number. Maybe wrong format.
ERR_ASP_USER_EXISTS An existing user is already registered with the same email address
ERR_PHONE_ALREADY_EXISTS An existing user is already registered with the same phone number
ERR_PIN_MISMATCH PIN code submitted does not match the PIN code sent by SMS

Once the account of the user has been completed, the mobile phone application can perform a validation by query the host server to check the session with the newly obtained credential,

and store on Delos instance the device registration token that will be used for the notifications.

/CheckSession

After initial OpenAccount, PhoneApp may check validity of credential against Delos instance with following HTTP GET request

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

Delos instance will respond in case of success with the Status 1, meaning the credential encoded is valid:

{ "Status" : "1" } 

in case of invalid credential Delos instance will return HTTP Status 401 Unauthorized with JSON response:

{"Code": "ERR_LOGIN_FAILED", "Message": "User not found"}

/Phone_RegisterLineObtainPIN

There is an optional step to register a secondary LineID (eSIM 33712345678) for the user phone number,
this secondary eSIM will be used to perform a /Phone_MakeCall,
This process requires 2 steps, first, request a PIN code, then submit the PIN code received by SMS to /Phone_RegisterLine

Note: in case the Line to register is the same as the Phone, skip directly to /Phone_RegisterLine

http://fr01a.buzzee.tel/JSON/1xxx1abcdef/Phone_RegisterLineObtainPIN?Phone=33712345678

Fields Description
Phone Mobile phone number of the user.
Line LineID associated with the phone number to originate the MakeCall action,
this is the secondary eSIM,
SMS containing the PIN code will be sent to this number.
XMLC_Language Optional. You may define the language used for the SMS to be sent.
Possible values: ENGLISH, FRANCAIS, DEUTSCH, ESPANOL, ITALIANO.
SMS_Template Optional. You may request to use a pre-defined template to send the content of the SMS with the PIN code.
Example: LOGIN_PINCODE_ANDROID will send the follwoing SMS content: "Your PIN code is 123456"
LOGIN_PINCODE_APPLE will send the follwoing SMS content: "Your PIN code is 123456"
SMS_AppID Optional. For Android application, you may set value to "Phone_AndroidHashString"

Delos instance will return in case of success a simple response:

{ "Status": "PIN_SENT" } 

In case of error, expect a 500 Internal Server Error response:

{ "Code": "ERR_SEND_SMS" } 

The server may return errors

Errors Description
ERR_INVALID_PHONE Invalid phone number. Maybe wrong format.
ERR_PHONE_MISMATCH Phone registered for this user mismatch with the parameter Phone provided.
ERR_SEND_SMS Cannot invoke the SMS provider to send SMS
ERR_SEND_PIN The SMS could not be sent due to error in phone number format or insufficient credits
ERR_MAX_DAILY_ATTEMPTS_PER_IP Max daily attempts from the same IP
ERR_MAX_DAILY_ATTEMPTS_PER_PHONE Max daily attempts for the same phone number
ERR_MAX_DAILY_ATTEMPTS_PER_EMAIL Max daily attempts for the same email address

/Phone_RegisterLine

To complete the registration of a secondary line associated with the Phone number of the user, submit to Phone_RegisterLine the PIN code recevied from Phone_RegisterLineObtainPIN (optional in case Phone and Line are the same number)

https://fr01a.buzzee.tel/JSON/1xxx1abcdef/Phone_RegisterLine?Phone=33612345678&Line=33712345678&PIN=123456

Fields Description
Phone Phone number of the user
Line LineID associated with the phone number to originate the MakeCall action,
this is the secondary eSIM
PIN PIN code received by SMS. Made of 6 digits.
Note: if Phone and Line are the same number, the PIN code is not used.

Delos instance will respond with Status OK:

{ "Status" : "OK" } 

/Phone_Register

After initial OpenAccount process, PhoneApp will request the user to accept notifications,
will collect the FireBase device registration token, and store this token on Delos instance with a HTTP GET request (or POST depending the length of the device registration token)

https://fr01a.buzzee.tel/JSON/1xxx1abcdef/Phone_Register?Application=Phone&Token=abcdef0123456789

Fields Description
Token The device registration token as obtained by the FireBase SDK on the mobile application.
Application Optional. The Device Registration Token is unique per Application.
Values: "Phone" in the case of mobile application "PhoneApp", "Record" in the case of the mobile application "R2T"

Delos instance will respond with Status OK:

{ "Status" : "OK" } 

This device registration token will be sent to PhoneNotifications server to be relayed to FCM (FireBase Cloud Messaging)

/sendNotification [type=test] (Delos -> PhoneNotifications)

To verify the validity of the device registration token a test notification will be sent from Delos instance upon Phone_Register call
Delos instance sends a HTTP POST multipart/form-data request to the Notifications gateway server, with the type parameter as "test":

http://phoneappnotifications.buzzee.tel/sendNotification
XMLC_UserID=1000001
XMLC_Credential=1xx1abcdef
Domain=fr01.buzzee.tel
Host=fr01a.buzzee.tel
type=test
Application=Phone
Token=abcdef0123456789

Fields Description
XMLC_UserID Delos internal user ID
XMLC_Credential Credential for the user, it can be used to invoke Delos instance from the PhoneNotifications server in order to invalidate the device registration token of the user
http://fr01a.buzzee.tel/JSON/1xx1abcdef/Phone_Register?Application=Phone&Token=...
Domain Domain of the user. Domain + XMLC_UserID is used to lookup the connected PhoneApp at PhoneNotifications server
Host Host of the Delos instance where is located the user of the message.
This is the host to be used for the URL to invoke Delos instance.
type The value "test" will be intercepted by the PhoneApp in order to check the validity of the chain of actions to receive notifications from Delos instance.
in order to have a unique endPoint URL for PhoneNotifications server, the action /sendNotification requires an additional parameter: type=test
Application The target application for this notification.
Values: "Phone" in the case of mobile application "PhoneApp", "Record" in the case of the mobile application "R2T"
Token This is the device registration token which has been stored using /Phone_Register?Application=Phone&Token=abcdef0123456789

Note: If the contact associated with the call recording has been setup to always skip transcript (CPSN_TRANSCRIPT=0),
then Delos will not send a notification to PhoneNotifications server.

Login into existing account

The connection of an existing account from the PhoneApp follows these steps:

1. Query connect1.buzzee.tel (connect2, ...) to lookup regional connect server (fr1.buzzee.tel, fr2.buzzee.tel) associated to the international prefix of the user phone number
2. Query fr1.buzzee.tel (fr2, ...) to lookup user from phone number ASP_GetUserFromPhone
    The regional connect instance will provide URL of the hosting server and UserID
3. Invoke the hosting server (fr01a.buzzee.tel) LoginObtainPIN with Phone and XMLC_UserID to obtain a new PIN code to submit for login
4. the host fr01a.buzzee.tel will send an SMS
    Intercept the SMS containing the PIN code on the device
5. Invoke Login with XMLC_UserID and PIN code received by SMS
    This will return Credential (and XMLC_Session) for the user, PhoneApp can query /CheckSession to verify the Credential

/LoginObtainPIN

After looking up /ASP_GetUserFromPhone against the connect server, PhoneApp can request a PIN code by SMS on the hosting server managing the user (XMLC_UserID).
the HTTP request will be GET on the hosting server, in this example: fr01a.buzzee.tel

http://fr01a.buzzee.tel/JSON/LoginObtainPIN?XMLC_UserID=1000001&Phone=33612345678

Fields Description
Phone Mobile phone number of the user.
SMS containinig the PIN code will be sent to this number.
XMLC_Language Optional. You may define the language used for the SMS to be sent.
Possible values: ENGLISH, FRANCAIS, DEUTSCH, ESPANOL, ITALIANO.
SMS_Template Optional. You may request to use a pre-defined template to send the content of the SMS with the PIN code.
Example: LOGIN_PINCODE_ANDROID will send the follwoing SMS content: "Your PIN code is 123456"
LOGIN_PINCODE_APPLE will send the follwoing SMS content: "Your PIN code is 123456"

Delos instance will return in case of success a simple response:

{ "Status": "PIN_SENT" } 

In case of error, expect a 500 Internal Server Error response:

{ "Code": "ERR_SEND_SMS" } 

The server may return errors

Errors Description
ERR_INVALID_PHONE Invalid phone number. Maybe wrong format.
ERR_PHONE_MISMATCH Phone registered for this user mismatch with the parameter Phone provided.
ERR_SEND_SMS Cannot invoke the SMS provider to send SMS
ERR_SEND_PIN The SMS could not be sent due to error in phone number format or insufficient credits
ERR_MAX_DAILY_ATTEMPTS_PER_IP Max daily attempts from the same IP
ERR_MAX_DAILY_ATTEMPTS_PER_PHONE Max daily attempts for the same phone number
ERR_MAX_DAILY_ATTEMPTS_PER_EMAIL Max daily attempts for the same email address

/Login

PhoneApp is in charge to intercept the PIN code received by SMS.
The format of SMS is "123456 your PIN code to login.\n@fr01a.buzzee.tel #123456"
where @fr01a.buzzee.tel is the host
and #123456 is the PIN code (123456)

To login and obtain the credential, PhoneApp will send a HTTP request GET on the hosting server, in this example: fr01a.buzzee.tel

http://fr01a.buzzee.tel/JSON/Login?XMLC_UserID=1000001&PIN=1234

Fields Description
XMLC_UserID UserID obtained by looking up connect server.
PIN PIN code received by SMS. Made of 6 digits.

Delos instance will return in case of success the XMLC_Credential and the XMLC_Session

{ "XMLC_Session": "4400000005", "XMLC_Credential": "1xxx1abcdef"}

This server may raise an error which is formatted as follow:

{ "Code" : "ERR_LOGIN_FAILED", "Message": "TWebAccount.Login_BeforeXMLGram" }

The following table summarizes the different error codes:

Errors Description
ERR_PIN_MISMATCH PIN code submitted does not match the PIN code sent by SMS
ERR_LOGIN_FAILED The PIN code provided cannot be validated.


Once the XMLC_Credential is obtained, PhoneApp can check the validity of the credential by invoking /CheckSession

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

Delos instance will respond in case of success with the Status 1, meaning the credential is valid:

{ "Status" : "1" } 

Customizing preferences

The preferences are setup initialy during /OpenAccount but may need to be customized by the user.

/User_Culture

PhoneApp may query the preferences of the user by sending a GET request on the hosting server, in this example: fr01a.buzzee.tel

http://fr01a.buzzee.tel/JSON/1xxx1abcdef/User_Culture

Delos instance will return a JSON document.

{ "Culture": {
  "Name": "en", "Locale": "en",
  "DecimalSeparator": ".", "ThousandSeparator": "\u0000",
  "CurrencyDecimals": "2", "CurrencyString": "$",
  "DateSeparator": "/", "TimeSeparator": ":", "TimeAM": "AM", "TimePM": "PM",
  "ShortDate": "m/d/yyyy", "LongDate": "dddd, mmmm d, yyyy",
  "ShortTime": "hh:nn", "LongTime": "hh:nn:ss",
  "ShortDateTime": "m/d/yyyy hh:nn", "LongDateTime": "dddd, mmmm d, yyyy hh:nn",
  "DynamicDate": "mmm d", "DynamicShortDate": "m/d/yy" }
}

/UpdatePreferences

PhoneApp will send a POST a HTTP request on the hosting server, in this example: fr01a.buzzee.tel

http://fr01a.buzzee.tel/JSON/1xxx1abcdef/UpdatePreferences
Profile.XMLC_Language=FRANCAIS
Profile.XMLC_Culture=fr
XMLC_SkipNextAction=1

Fields Description
Profile.XMLC_Language Language used for references values such months, days.
Possibly extracted from the settings of the device.
Possible values: ENGLISH, FRANCAIS, DEUTSCH, ESPANOL, ITALIANO.
Profile.XMLC_Culture Culture for data formattings.
Possibly extracted from the settings of the device, OR in accordance to XMLC_Language
Possible values: en, fr, de, es, it.
XMLC_SkipNextAction Skip the pipeline of the WebApp by returning after updting the preferences.

Delos instance may return an unknown JSON document with a HTTP status code 200 OK.

{ }

/Phone_UpdateFilter (PhoneApp -> Delos)

Once call fowarding has been setup, the PBX can filter some of the incoming calls to redirect to voicemail, and may start the transcription.
PhoneApp will update the list of phone numbers to filter by posting HTTP request on the hosting server with the Filter:

http://fr01a.buzzee.tel/JSON/1xxx1abcdef/Phone_UpdateFilter
Filter=0162,0163,0270,0271,0377,0378,0424,0425,0568,0569,0948,0949

Fields Description
Filter Al ist of phone number or prefix of phone number to filter separated with comma
Example: 0162,0163,...

Delos instance will return a JSON response with a HTTP status code 200 OK.

{ "Status": "OK" }

The following table summarizes the different error codes:

Errors Description
ERR_USER_CCOM_NOT_FOUND Phone is not registered for this user.

/Phone_GetFilter (S2T -> Delos)

Deprecated in favor of /Phone_CallEvent Event=Incoming -> Action: Hangup or Voicemail.

When an incoming call arrives at the PBX (once call fowarding has been setup),
PBX S2T server should invoke Delos to retrieve the list of filtered numbers the user has registered.
The PBX will redirect to voicemail, and may start the transcription.
S2T will query with a GET HTTP request on the hosting server:

http://fr01a.buzzee.tel/JSON/Phone_GetFilter?XMLC_UserID=100008&Phone=33612345678

Fields Description
XMLC_UserID XMLC_UserID field retrieved from ASP_GetUserFromPhone with the Phone number of the user.
Phone Phone number of the user (the destination of the incoming call).
Example: 33612345678

Delos instance will return a JSON response formatted as follow:

{ "Filter": "0162,0163,0270,0271,0377,0378,0424,0425,0568,0569,0948,0949" }

The following table summarizes the different error codes:

Errors Description
ERR_CPSN_NOT_FOUND Contact not found for this phone number
ERR_CPSN_IS_NOT_USER Phone number is not associated to the user

Call Forwarding Workflow

In order to intercept incoming phone calls in PhoneApp, and being able to record conversations,
the user need to setup call forwarding of the main SIM number.
The worflow to setup call forwarding from PhoneApp is described below:

1. PhoneApp queries /Phone_ObtainCallForwarding on fr01a.buzzee.tel to obtain which PSTN line the main SIM phone number need to be setup for call forwarding.
2. the Delos instance fr01a.buzzee.tel will invoke the PBX (S2T) using action /ObtainCallForwarding and return the Line number to use for call forwarding
3. The PhoneApp will invite the user to setup the call forwarding on his phone, for the main phone number to redirect all calls to the PSTN Line number provided in previous step
4. Once the user has completed previous step, in order to check if the setup of call forwarding is active, PhoneApp will initiate the process of verification by invoking /Phone_VerifyCallForwarding on fr01a.buzzee.tel
5. Delos instance will forward this request to PBX S2T by invoking action /VerifyCallForwarding
6. The PBX S2T will originate a MakeCall on the trunk to the main phone number of the user (as provided in the request)
7. The Telco should reach the call forwarding number programmed (Status=OK) or the mobile device of the user (Status=Failed)
8. the PBX intercept the call from the network on the redirected line 33987654321 knowing the diversion is from the user phone number 33612345678 and initiated from a specific phone number located on this very same PBX, then the PBX S2T will invoke the CallbackURL /Phone_VerifyCallForwardingCB by setting the Status=OK. Delos will respond to PhoneApp waiting on the original request Phone_VerifyCallForwarding.
BUT, if the call is being answered by the user phone, it will play a voice message telling the user that the setup has failed and need to retry, it means the PBX S2T did not intercept the call on the Line 33987654321 and will invoke the CallbackURL with Status=Failed.
Delos will respond to PhoneApp waiting up to a specific Timeout from the original request to Phone_VerifyCallForwarding.
PhoneApp will receive the response "Status": "Failed" and will iterate over to step #3 with details on how to proceed, such as selecting properly the main SIM for calls.

/Phone_ObtainCallForwarding (PhoneApp -> Delos)

PhoneApp will request Delos instance to obtain which PSTN line the main SIM phone number need to be setup for call forwarding.
Important: The call forwarding will be setup from the mobile device initiated by the user. This operation CANNOT BE performed by Delos instance or PBX.

http://fr01a.buzzee.tel/JSON/1xxx1abcdef/Phone_ObtainCallForwarding?Phone=33612345678

Fields Description
Phone The phone number which will be setup for call forwarding.

Delos instance will forward the request to the PBX S2T (SpeechToText), which will return the Line to use for setting call fowarding, and Delos will finally return in the response the Line parameter:

{ "Line": "33987654321" }

/ObtainCallForwarding (Delos -> PBX S2T)

Delos will request PBX S2T to obtain to which PSTN line the user will need to configure call forwarding.
Important: The call forwarding will be setup from the mobile device initiated by the user. This operation CANNOT BE performed by PBX.

http://s2t.buzzee.tel/ObtainCallForwarding?Phone=33612345678
&XMLC_UserID=1000001&Domain=fr01.buzzee.tel&Host=fr01a.buzzee.tel

Fields Description
Phone The phone number which will be setup for call forwarding.
XMLC_UserID Delos internal user ID
Domain Domain of the user.
Host Host of the Delos instance where is located the user of the message.

Note: The PBX may use the parameters XMLC_UserID, Domain and/or Host to partition the pool of call forwarding to different Lines.

The PBX S2T (SpeechToText) will respond with the Line to use for setting call fowarding, and Delos will forward this response to the PhoneApp:

{ "Line": "33987654321" }

/Phone_VerifyCallForwarding (PhoneApp -> Delos)

Once the user has completed the setup of the call forwarding of his main phone number 33612345678 to the redirected Line 33987654321, (*21*0987654321#)
PhoneApp will offer to the user the possiblity to verify that call fowarding is active for his number by invoking /Phone_VerifyCallForwarding on Delos instance.

http://fr01a.buzzee.tel/JSON/1xxx1abcdef/Phone_VerifyCallForwarding?Phone=33612345678&Timeout=5&Http2UseDispatchThread=1

Fields Description
Phone The phone number to verify that call forwarding is enabled.
Http2UseDispatchThread Optional. When value is set to "1" the request will be processed in a separate thread on the server. Other HTTP requests sent from the same client connection can be performed in parallel.
This parameter is used when a request takes a long time to obtain a response.
Timeout Optional. Default if blank is 5 seconds.
The phone call to the mobile of the user will be operated asynchronously by the PBX,
Delos will wait for the signal from the PBX up to this timeout, before returning Status=Failed.

Delos instance will forward the request to the PBX S2T (SpeechToText), which will originate a MakeCall to the Phone number being setup. If the PBX intercept the call on its Line 33987654321, then it will respond OK:

{ "Status": "OK" }

If the PBX does not intercept the call on the Line 33987654321, then it will respond Failed:

{ "Status": "Failed" }

The PBX will play a voice message telling the user call forwarding is not active, and setup need to be retried from step #3.

/VerifyCallForwarding (Delos -> PBX S2T)

Delos forwards the verification request of call forwarding to the PBX S2T POSTing http request to /VerifyCallForwarding with parameter of Phone number and CallbackURL

http://s2t.buzzee.tel/VerifyCallForwarding
Phone=33612345678
XMLC_UserID=1000001
Domain=fr01.buzzee.tel
Host=fr01a.buzzee.tel
CallbackURL=http://fr01a.buzze.tel/JSON/PBX_VerifyCallForwardingCB?XMLC_UserID=100001&RequestNo=2001003

Fields Description
Phone The phone number to verify that call forwarding is enabled.
XMLC_UserID Delos internal user ID
Domain Domain of the user.
Host Host of the Delos instance where is located the user of the message.
The PBX may use the user informations to log a trace for the intermediate actions using for instance:
http://fr01a.buzzee.tel/JSON/Phone_Trace?XMLC_UserID=100001&Message=Ringing on 33612345678
CallbackURL URL to invoke when completing the phone call, with either Status=OK or Status=Failed
Example: http://fr01a.buzzee.tel/JSON/PBX_VerifyCallForwardingCB?XMLC_User_ID=100001
Timeout Optional. Default if blank is 5 seconds.
Timeout before invoking CallbackURL with Status=Failed when the call originated is not intercepted by the PBX.

The PBX S2T (SpeechToText), will originate a MakeCall to the Phone number of the user and will respond with:

{ "Status": "Originating" }

The PBX will play a voice message telling the user call forwarding is not active, and setup need to be retried from step #3.

/Phone_VerifyCallForwardingCB (PBX S2T -> Delos)

If the PBX intercept the call on its Line 33987654321, then it will invoke CallbackURL with Status=OK

http://fr01a.buzze.tel/JSON/PBX_VerifyCallForwardingCB?XMLC_User_ID=100001&Status=OK

Delos instance will respond with HTTP status 200.

If the PBX does not intercept the call on the Line 33987654321, then it will CallbackURL with Status=Failed

http://fr01a.buzze.tel/JSON/PBX_VerifyCallForwardingCB?XMLC_User_ID=100001&Status=Failed

The PBX will play a voice message telling the user call forwarding is not active, and setup need to be retried from step #3.

Verify Call Forwarding Disabled Worflow

In order to verify call forwarding is disabled, the user will follow from PhoneApp the following workflow:

1. PhoneApp will invite the user to dial the number #21# to cancel call forwarding on his phone, for the main phone number
2. PhoneApp will help to validate that from now on call forwarding is disabled by invoking on fr01a.buzzee.tel action /Phone_VerifyCallFowardingDisabled (despite the naming, it means to verify if call forwarding has been properly cancelled)
3. Delos instance fr01a.buzzee.tel will invoke PBX S2T /VerifyCallFowardingDisabled with necessary parameters such as main phone number of the user
4. The PBX S2T will originate a MakeCall to the main phone number of the user (as provided in the request)
5. The Telco should reach the mobile device of the user Status=OK) or the call forwarding number programmed (Status=Failed)
6. If the PBX intercept the call from the network on the redirected line 33987654321 knowing the diversion is from the user phone number 33612345678, then the PBX S2T will invoke the CallbackURL /Phone_VerifyCallForwardingDisabledCB with Status=Failed, the process to disable call forwarding was not effective and need to be retried from Step #1 in PhoneApp with details on how to proceed, such as selecting properly the main SIM for calls.
NOW, if the call is being answered by the user phone, it will play a voice message telling the user that call forwarding is now disabled, and all calls will endup directly on his phone. Meaning, that the phone call is not intercepted by the PBX on the redirected Line 33987654321, and so the PBX S2T will invoke the CallbackURL /Phone_VerifyCallForwardingDisabledCB with Status=OK

/Phone_VerifyCallForwardingDisabled (PhoneApp -> Delos)

Once the user has disabled call forwarding of his main phone number 33612345678, (#21#)
PhoneApp will offer to the user the possiblity to verify that call fowarding is disabled and restored to initial state by invoking /Phone_VerifyCallForwardingDisabled on Delos instance.

http://fr01a.buzzee.tel/JSON/1xxx1abcdef/Phone_VerifyCallForwardingDisabled?Phone=33612345678&Timeout=5&Http2UseDispatchThread=1

Fields Description
Phone The phone number to verify that call forwarding is disabled.
Http2UseDispatchThread Optional. When value is set to "1" the request will be processed in a separate thread on the server. Other HTTP requests sent from the same client connection can be performed in parallel.
This parameter is used when a request takes a long time to obtain a response.
Timeout Optional. Default if blank is 5 seconds.
The phone call to the mobile of the user will be operated asynchronously by the PBX,
Delos will wait for the signal from the PBX up to this timeout, before returning Status=Failed.

Delos instance will forward the request to the PBX S2T (SpeechToText), which will originate a MakeCall to the Phone number to validate call forwarding is disabled. If the PBX intercept the call on its Line 33987654321, then it will respond Failed:

{ "Status": "Failed" }

If the PBX does not intercept the call on the Line 33987654321, then it will respond OK:

{ "Status": "OK" }

The PBX will play a voice message to the user that tells that from now on call forwarding is properly disabled.

/VerifyCallForwardingDisabled (Delos -> PBX S2T)

Delos will POST the verification request to the PBX S2T using action /VerifyCallForwarding with parameter of hte PhoneNumber

http://s2t.buzzee.tel/VerifyCallForwardingDisabled
Phone=33612345678
XMLC_UserID=1000001
Domain=fr01.buzzee.tel
Host=fr01a.buzzee.tel
CallbackURL=http://fr01a.buzzee.tel/JSON/PBX_VerifyCallForwardingDisabledCB?XMLC_UserID=100001&RequestNo=2001003

Fields Description
Phone The phone number to verify that call forwarding is disabled.
XMLC_UserID Delos internal user ID
Domain Domain of the user.
Host Host of the Delos instance where is located the user of the message.
The PBX may use the user informations to log a trace for the intermediate actions using for instance:
http://fr01a.buzzee.tel/JSON/Phone_Trace?XMLC_UserID=100001&Message=Ringing on 33612345678
CallbackURL URL to invoke when completing the phone call, with either Status=OK or Status=Failed
Example: http://fr01a.buzzee.tel/JSON/PBX_VerifyCallForwardingDisabledCB?XMLC_User_ID=100001
Timeout Optional. Default if blank is 5 seconds.
Timeout before invoking CallbackURL with Status=OK when the call originated is not intercepted by the PBX.

The PBX S2T (SpeechToText), which will originate a MakeCall to the Phone number of the user and will respond with:

{ "Status": "Originating" }

/Phone_VerifyCallForwardingDisabledCB (PBX S2T -> Delos)

If the PBX intercept the call on its Line 33987654321, then it will invoke CallbackURL with Status=Failed:

http://fr01a.buzzee.tel/JSON/PBX_VerifyCallForwardingDisabledCB?XMLC_User_ID=100001&Status=Failed

Delos instance will respond with HTTP status 200.

If the PBX does not intercept the call on the Line 33987654321, then it will CallbackURL with Status=OK

http://fr01a.buzzee.tel/JSON/PBX_VerifyCallForwardingDisabledCB?XMLC_User_ID=100001&Status=OK

Delos instance will respond with HTTP status 200.

 

Traces and Logs

New as of 2025-01-14 Two API endpoints are available to allow PhoneApp to trace activity and log errors.
It is not necessary to use HTTPS to invoke http://log.buzzee.tel/JSON/ASP_Trace or http://log.buzzee.tel/JSON/ASP_Log

/ASP_Trace

PhoneApp may notify the "Log" server to all kind of activity when downloading the application, starting the application, through all major steps when opening account.
This will be useful to track down where the users may face difficulties.
There is a limit of a maximum of 100 traces per day per IP.
PhoneApp can POST a Message:

http://log.buzzee.tel/JSON/ASP_Trace
Message=Launching the application for the first time

Delos instance will append in the traces of log.buzzee.tel the message and will return a JSON document.

{ "Status": "OK" }

/ASP_Log

PhoneApp may notify the "Log" server when an error occured with all the context necessary to diagnose the cause.
There is a limit of a maximum of 10 log per day per IP.
The application may POST all unknown parameters of its choice:

http://log.buzzee.tel/JSON/ASP_Log
Message=Cannot connect to server connect1.buzzee.tel
CountryCode=FR
Phone=33612345678
Language=FRANCAIS

Delos instance will append in the traces of log.buzzee.tel a complete log of all parameters and will return a JSON document.

{ "Status": "OK" }