@meecode/ng112-reg-js v2.0.4
ng112-reg-js
Table of Contents
- Installation
- Exposed Classes
- Prerequisites
- Usage
- Methods & Properties
- DEC112RegistrationClient
- PhoneVerificationData
- RegistrationData
- RegistrationInformationData
- RequestDataError
- Registration
- DeleteRegistration
- AppConfiguration
- AppServices
- AppService
- RootConfiguration
- Settings
- SettingsInvalidError
- NormalizePhoneNumberData
- NormalizedPhoneNumber
- CheckRegistrationData
- ResendVerificationCode
- RegistrationEndpoint
- CountryRegistrationEndpoint
- RequestError
- RegistrationState
- InAppSearch
- InAppSearchItem
Installation
npm install @meecode/ng112-reg-js
Exposed Classes
- DEC112RegistrationClient
- AppConfiguration
- AppServices
- AppService
- App
- DeleteRegistration
- DeleteRegistrationData
- NormalizePhoneNumberData
- NormalizedPhoneNumber
- Notification
- PhoneVerificationData
- Registration
- RegistrationData
- RegistrationInformationData
- RegistrationState
- CheckRegistrationData
- ResendPhoneVerificationCodeData
- ResendVerificationCode
- RequestDataError
- RequestError
- RootConfiguration
- RegistrationEndpoint
- CountryRegistrationEndpoint
- Settings
- SettingsInvalidError
- Service
- EmergencyService
- Message
- Category
- DefaultMessages
- SilentMessages
Prerequisites
- Valid API Key
- Registration service URL
Usage
Be aware that the import syntax depends on the environment you are using
Registration Client
Initializing the registration client
import { DEC112RegistrationClient, Settings } from '@meecode/ng112-reg-js/dist/node';
const registrationServer = 'https://your-registration-server-url/api/apiVersion';
const apiKey = 'yourApiKey';
const settings: Settings = new Settings(registrationServer, apiKey);
const instance = new DEC112RegistrationClient(settings);
Register a device
Follow these steps to register a device:
Parameter | Required |
---|---|
Get root configuration and choose the appropriate registration endpoint | yes |
Normalize phone number | yes |
Register device | yes |
Send verification code | yes |
Resend verification code | no (Optional) |
Get configuration when verification was successful | yes |
Test configuration | no (Optional) |
The registrationId is very important and needs to be stored in order to send other queries. There is no possibility on recover a lost registrationId.
import { RegistrationData, Registration } from '@meecode/ng112-reg-js/dist/node';
const registrationServer = 'https://your-registration-server-url/api/apiVersion';
const apiKey = 'yourApiKey';
const settings: Settings = new Settings(registrationServer, apiKey);
const instance = new DEC112RegistrationClient(settings);
const normalizePhoneNumberData = new NormalizePhoneNumberData('066475007205', '0042');
const response = await instance.normalizePhoneNumber(normalizePhoneNumberData);
const registrationData = new RegistrationData('iPhone XS', 'en', response.normalizedPhoneNumber);
const registrationResponse = await instance.register(registrationData);
const phoneVerificationData = new PhoneVerificationData("4444-1111", registrationResponse.registrationId);
const verifyPhoneResponse = await instance.verifyPhoneNumber(phoneVerificationData);
const registrationInformationData = new RegistrationInformationData(registrationResponse.registrationId);
const deviceConfiguration = await instance.getConfiguration();
Error Handling
Every method returns Readonly<RequestError>
in case one or more errors occur.
import { RegistrationData, Registration } from '@meecode/ng112-reg-js/dist/node';
const registrationServer = 'https://your-registration-server-url/api/apiVersion';
const apiKey = 'yourApiKey';
const settings: Settings = new Settings(registrationServer, apiKey);
const instance = new DEC112RegistrationClient(settings);
const registrationData = new RegistrationData('iPhone XS', 'en', '000011112222');
const registrationResponse = instance.register(registrationData)
.catch((error: Readonly<RequestError>) => {
//TODO: implement
});
Usage in combination with ng112-js SDK
Query the app configuration after successful registration
import {
Agent,
DEC112Specifics,
} from 'ng112-js/dist/node';
const registrationServer = 'https://your-registration-server-url/api/apiVersion';
const apiKey = 'yourApiKey';
const settings: Settings = new Settings(registrationServer, apiKey);
const instance = new DEC112RegistrationClient(settings);
const registrationInformationData = new RegistrationInformationData('registrationId');
const configuration = await instance.getConfiguration(registrationInformationData);
const agenConfiguration = {
endpoint: configuration.server,
domain: configuration.realm,
user: configuration.privateId,
password: configuration.password,
displayName: 'Your display name',
namespaceSpecifics: new DEC112Specifics(undefined, configuration.registrationId, 'your language')
};
const agent = new Agent(agenConfiguration);
// Choose the appropriate service from the array of available services and use the sip property as conversation partner
const conversationPartner = configuration.services.default[0].sip;
agent.createConversation(conversationPartner);
Methods & Properties
DEC112RegistrationClient
The DEC112RegistrationClient
is used to communicate with the corresponding registration service.
Constructor
constructor(settings)
Parameter | Type | Default | Required | Description |
---|---|---|---|---|
settings | Settings | null | yes | Settings used for initializing the client |
UpdateRegistrationServer
Update the registration server
updateRegistrationServer(registrationServer)
Parameter | Type | Default | Required | Description |
---|---|---|---|---|
registrationServer | string | null | yes |
GetConfiguration
Get the configuration for an already existing registration. The configuration can change, so it is recommended to check periodically if the configuration has changed.
getConfiguration(registrationInfo)
Parameter | Type | Default | Required | Description |
---|---|---|---|---|
registrationInformation | RegistrationInformationData | null | yes |
Returns a Promise which resolves with Readonly<AppConfiguration>
when successful and rejects
with Readonly<RequestError>
when an error occurred.
GetRootConfiguration
The root configuration provides a list of DEC112 registries and other resources (e.g. language resources). Select the registry which should be used for the registration process.
getRootConfiguration()
No parameters required.
Returns a Promise which resolves with Readonly<RootConfiguration>
when successful and rejects
with Readonly<RequestError>
when an error occurred.
NormalizePhoneNumber
normalizePhoneNumber(phoneNumberData)
Parameter | Type | Default | Required | Description |
---|---|---|---|---|
phoneNumberData | NormalizePhoneNumberData | null | true |
Returns a Promise which resolves with Readonly<NormalizedPhoneNumber>
when
successful and rejects with Readonly<RequestError>
when an error occurred.
Register
Register a new user with the given registration information.
register(registrationData)
Parameter | Type | Default | Required | Description |
---|---|---|---|---|
registrationData | RegistrationData | null | yes |
Returns a Promise which resolves with Readonly<Registration>
when successful and rejects
with Readonly<RequestError>
when an error occurred.
CheckRegistration
Check the registration data of an existing registration. Can also be used to check the registration state (e.g.: pending, ...)
Returns a Promise which resolves with Readonly<Registration>
when successful and rejects
with Readonly<RequestError>
when an error occurred.
ResendPhoneVerificationCode
Allows resending a possibly lost phone verification SMS code up to two times.
resendPhoneVerificationCode(rendCodeData)
Parameter | Type | Default | Required | Description |
---|---|---|---|---|
resendCodeData | ResendPhoneVerificationCodeData | null | true |
Returns a Promise which resolves with Readonly<ResendVerificationCode>
when successful and
rejects with Readonly<RequestError>
when an error occurred.
Unregister
Deletes an existing Registration.
unregister(deleteRegistrationData)
Parameter | Type | Default | Required | Description |
---|---|---|---|---|
deleteRegistrationData | DeleteRegistrationData | null | true |
Returns a Promise which resolves with Readonly<DeleteRegistration>
when successful and rejects
with Readonly<RequestError>
when an error occurred.
VerifyPhoneNumber
Verifies a registrations phone number.
verifyPhoneNumber(verificationData)
Parameter | Type | Default | Required | Description |
---|---|---|---|---|
verificationData | PhoneVerificationData | null | true |
Returns a Promise which resolves with Readonly<Registration>
when successful and rejects
with Readonly<RequestError>
when an error occurred.
EnableDebug
Enables the debug mode which outputs also debug statements to the console.
enableDebug(true)
Parameter | Type | Default | Required | Description |
---|---|---|---|---|
enabled | boolean | null | true |
IsDebugEnabled
Checks whether the debug mode is enabled or not.
isDebugEnabled()
PhoneVerificationData
Property | Type | Default | Required | Description |
---|---|---|---|---|
verificationCode | string | null | yes | |
registrationId | string | null | yes |
RegistrationData
Property | Type | Default | Required | Description |
---|---|---|---|---|
model | string | null | no | |
language | string | null | yes | |
phoneNumber | string | null | yes |
SaveRegistrationData
Property | Type | Default | Required | Description |
---|---|---|---|---|
registrationId | string | null | yes | |
phoneNumber | string | null | yes | |
data | object | null | yes |
RegistrationInformationData
Property | Type | Default | Required | Description |
---|---|---|---|---|
registrationId | string | null | yes | The registration id of the device which the configuration should be queried for |
DeleteRegistrationData
Property | Type | Default | Required | Description |
---|---|---|---|---|
registrationId | string | null | yes | |
phoneNumber | string | null | yes |
RequestDataError
Property | Type | Default | Required | Description |
---|
Registration
Property | Type | Description |
---|---|---|
registrationId | string | |
language | string | |
state | RegistrationState | |
phoneVerificationTimeStamp | string | |
phonePrivacy | string | |
registrationTimeStamp | string |
DeleteRegistration
Property | Type | Description |
---|---|---|
registrationId | string |
AppConfiguration
Response of getConfiguration
request
Property | Type | Description |
---|---|---|
registrationId | string | |
server | string | |
publicId | string | |
privateId | string | |
password | string | |
realm | string | |
services | AppServices |
AppServices
Property | Type | Description |
---|---|---|
service | Service | A Service element containing all available emergency services information |
app | App | A list of AppService elements used for test emergency calls |
RootConfiguration
Property | Type | Description |
---|---|---|
countryRegistryEndpoints | Array<CountryRegistrationEndpoint> |
Settings
Property | Type | Default | Required | Description |
---|---|---|---|---|
registrationServer | string | null | yes | |
apiKey | string | string | yes | The api key used for verification |
SettingsInvalidError
Property | Type | Default | Required | Description |
---|---|---|---|---|
errors | Array<RequestDataError> | null | yes |
NormalizePhoneNumberData
Property | Type | Default | Required | Description | |
---|---|---|---|---|---|
phoneNumber | string | null | yes | ||
phoneNumberPrefix | string | null | yes | The prefix for the phone number. | 0043 |
NormalizedPhoneNumber
Property | Type | Default | Required | Description | Example(s) |
---|---|---|---|---|---|
phoneNumber | string | null | true | ||
normalizedPhoneNumber | string | null | true | ||
code | string | null | true |
CheckRegistrationData
Property | Type | Default | Required | Description | Example(s) |
---|---|---|---|---|---|
registrationId | string | null | true |
ResendPhoneVerificationCodeData
Response of ResendPhoneVerificationCode request.
Property | Type | Description |
---|---|---|
registrationId | string |
ResendVerificationCode
Request data for the ResendPhoneVerificationCode request.
Property | Type | Default | Required | Description |
---|---|---|---|---|
registrationId | string | null | yes |
RegistrationEndpoint
Property | Type | Description |
---|---|---|
type | string | |
baseUrl | string |
CountryRegistrationEndpoint
Property | Type | Description |
---|---|---|
name | string | |
registrationEndpoints | Array<RegistrationEndpoint> |
RequestError
Property | Type | Description |
---|---|---|
message | string | |
value | string | |
identifier | string |
RegistrationState
Enum for the different registration states. Every value between 2 - 8 means ongoing verification process.
Value | Integer Value | Description |
---|---|---|
notRegistered | 0 | |
pendingRegistration | 1 | |
registrationError | 9 | |
registered | 10 |
Service
Emergency service configuration
Property | Type | Description |
---|---|---|
services | Array<EmergencyService> | A list of EmergencyService items |
message | Message | A Message object |
category | Category | A Message object |
EmergencyService
Property | Type | Description |
---|---|---|
in | string | Unique id for the server |
enabled | boolean | A value indicating whether the service is enabled or not |
title | Translations | A Translations object |
category | string | |
urn | string | |
sip | string | |
icon | string | |
type | string | |
titleShort | Translations | A Translations object |
Message
Property | Type | Description |
---|---|---|
defaultMessages | DefaultMessages | A DefaultMessages object |
silentMessages | SilentMessages | A SilentMessages object |
Category
Property | Type | Description |
---|---|---|
emergency | EmergencyCategory | A EmergencyCategory object |
test | TestCategory | A TestCategory object |
DefaultMessages
Property | Type | Description |
---|---|---|
start | Translations | The start message for an emergency call. A Translation object |
stop | Translations | The stop message for an emergency call. A Translation object |
background | Translations | The message when the device is sent to background. A Translation object |
foreground | Translations | The message when the device is sent to foreground. A Translation object |
internal | Translations | An internal message not intended to be sent to the call center. A Translation object |
SilentMessages
Property | Type | Description |
---|---|---|
start | Translations | The start message for a silent emergency call. A Translation object |
EmergencyCategory
Property | Type | Description |
---|---|---|
title | Translations | A Translation object |
TestCategory
Property | Type | Description |
---|---|---|
title | Translations | A Translation object |
Translations
Translations object
Property | Type | Description |
---|---|---|
en | string | English translation text |
de | string | German translation text |
App
App specific configuration
Property | Type | Description |
---|---|---|
notification | Notification | Notification object |
environmentType | string | Current values: DEC112 or undefined |
Notification
Notification specific configuration
Property | Type | Description |
---|---|---|
appIdentifier | string |
InAppSearch
Property | Type | Description |
---|---|---|
emergencyCalls | Array<InAppSearchItem> |
InAppSearchItem
Property | Type | Description |
---|---|---|
id | string | |
title | Translation | |
description | Translation | |
domain | string | |
keywords | Array<Translation> |
Author
Special Thanks
For supporting the development:
License
UNLICENSED
Copyright
Copyright © 2021 - 2023, MeeCode by Mario Murrent. All Rights Reserved.
CI Status
2 months ago
2 months ago
3 months ago
3 months ago
4 months ago
4 months ago
6 months ago
6 months ago
6 months ago
7 months ago
7 months ago
6 months ago
5 months ago
6 months ago
6 months ago
6 months ago
5 months ago
6 months ago
6 months ago
6 months ago
7 months ago
6 months ago
6 months ago
6 months ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago