@dstny/scp-sdk v2.19.2
SCP SDK
Install
npm i @dstny/scp-sdk
or
yarn add @dstny/scp-sdk
or
pnpm i @dstny/scp-sdk
🚀 Initialize
import { Connect } from '@dstny/scp-sdk'
const configuration = {
mode: 'live',
oauthUrl: 'https://oauth.connect.fuzer.net',
}
await Connect.init(configuration)Configuration
| Attribute | Type | Default | Notes |
|---|---|---|---|
| domain | |||
| loginMethod | 'oauth2' | 'smg' | oauth2 | |
| smgAuthUrl | |||
| smgRealm | |||
| smgClientId | |||
| oauthUrl | |||
| oauthClientId | |||
| oauthAuthorizationRoute | |||
| oauthScope | |||
| apiUrl | |||
| secureStorage | |||
| mode | 'live' | 'mock' | 'dev' | ||
| logMode | 'silent' | 'info' | 'verbose' | ||
| softphone | |||
| auth | |||
| onError | (error: unknown) => void | Function is using for handling errors from SDK side. | |
| It will receive string or Error object as parameter |
export interface Configuration {
defaultLogModule?: string
defaultLoggerMetadata?: LoggerMetadata
loggerFactory?: LoggerFactory
domain?: string
loginMethod?: LoginMethodType
smgAuthUrl?: string
smgRealm?: string
smgClientId?: string
oauthUrl?: string
oauthClientId?: string
oauthAuthorizationRoute?: string
oauthScope?: string
apiUrl?: string
secureStorage?: () => SecureStorageHandler
mode?: 'live' | 'mock' | 'dev'
logMode?: LogLevel
softphone?: SoftphoneOptions
messaging?: MessagingOptions
auth?: AuthOptions
onError?: (error: unknown) => void
gateways?: GatewayOptions
apiOptions?: ApiOptions
}🔐 Auth
Usage
import { Connect } from '@dstny/scp-sdk';
...
// Listen to authentication changes
const unsubscribe = Connect.auth.onAuthStateChanged((user: User) => {
if(user){
// Logged in
} else {
// Logged out
}
})
// This will return oauth url to open in browser
Connect.auth.initOauth(returnUrl: string).then((url: string) => {
// open Url in browser > user login > get Authorization Code in the return url
})
...
const result = await Connect.auth.signIn("<authorizationCode>", "<redirectUri>")
...Current user
import { Connect } from '@dstny/scp-sdk';
...
const currentUser = Connect.auth.currentUser
await currentUser.setMood('Feeling good')Methods
| Methods Name | Args | Returns | Notes |
|---|---|---|---|
| setStatus | status: SetStatusData | Promise<void> | |
| setMood | mood: string | Promise<void> |
Events
import { Connect } from '@dstny/scp-sdk';
...
const currentUser = Connect.auth.currentUser
const unsubscribe = currentUser.on(CONTACT_EVENT.ON_CONTACT_UPDATE, (user) => {
})
// To remove subsciption on current user contact events events call unsubscribe function
unsubscribe()| Event Name | Returns | Notes |
|---|---|---|
| ON_CONTACT_UPDATE | User | |
| ON_PRESENCE_UPDATE | User |
Attributes
| Name | type | Default | Notes |
|---|---|---|---|
| mood | string | ||
| photo | string | ||
| availableStatus | IStatusDefinition[] | [] | |
| contact | Contact |
📱 Softphone
import { Connect } from 'connect-sdk'
...
const softphone = Connect.softphone
...
const call = softphone.placeCall('+32494049494')
...
await call.hangup()
...
const unsub = softphone.onNewCall((call) => {
await call.answer()
})Softphone
Methods
| Methods Name | Args | Returns | Notes |
|---|---|---|---|
| placeCall | number: string, callerIdName = 'Unknown' | Promise<Call> | |
| answerCall | uuid: string | Promise<void> | @deprecated Please use Call.answer |
| endCall | uuid: string | Promise<void> | deprecated Please Use Call.hangup |
Events
| Event Name | Args | Returns | Notes |
|---|---|---|---|
| onNewCall | cb: (call: Call) => void | () => void | |
| onCallEstablished | cb: (call: Call) => void | () => void | |
| onCallsUpdate | cb: (calls: Call[]) => void | () => void | |
| onSipRegistered | cb: () => void | () => void | |
| onSipUnRegistered | cb: () => void | () => void |
Attributes
| Name | type | Default | Notes |
|---|---|---|---|
| calls | {[uuid: string]: Call} | [] | |
| currentCall | Call | undefined | |
| peopleInConference | Contact[] | [] | |
| audioManager | AudioManager |
Call object
Methods
| Methods Name | Args | Returns | Notes |
|---|---|---|---|
| answer | Promise<void> | ||
| hangup | Promise<void> | ||
| attendedTransfer | call: Call | Promise<void> | |
| blindTransfer | number: string | Promise<void> | |
| addToConference | Promise<void> | ||
| hold | Promise<void> | ||
| unHold | Promise<void> | ||
| toggleMute | |||
| sendDTMF | dtmf:DTMF | Promise<void> |
Events
.....
const unsubscribe = call.on(CALL_EVENT.ON_CALL_INFO_UPDATE,(call)=>{
})
// To remove subsciption on call events call unsubscribe function
unsubscribe()| Event Name | Returns | Notes |
|---|---|---|
| ON_CALL_ANSWER | Call | |
| ON_CALL_HANGUP | Call | |
| ON_CALL_INFO_UPDATE | Call | |
| ON_CALL_HOLD | Call | |
| ON_CALL_UNHOLD | Call | |
| ON_CALL_MUTED | Call | |
| ON_CALL_UNMUTED | Call | |
| ON_CALL_ESTABLISHED | Call | |
| ON_CALL_QUALITY_UPDATE | CallQuality |
Attributes
| Name | type | Default | Notes |
|---|---|---|---|
| contact | Contact | undefined | |
| isTransfert | booleab | false | |
| isOutGoing | boolean | false | |
| isRemote | boolean | false | |
| callId | string | ||
| channel | Channels | Channels | undefined |
| callerName | string | ||
| callerNum | string | ||
| muted | boolean | false | |
| transferable | boolean | ||
| inConference | boolean | false | |
| peopleInConference | Contact [] | [] |
🗂 Directory
Usage
import { Connect } from 'connectme-sdk'
...
const directory = Connect.directory
const contactList = await directory.getContactList()
...
await directory.onContactSelectedFromSearch(contactsResult[index].uid)
...
const contacts = await directory.search(_query)Methods
| Methods Name | Args | Returns | Notes |
|---|---|---|---|
| search | query: string | Promise<Contact[]> | |
| getSearchHistory | Promise<Contact[]> | ||
| onContactSelectedFromSearch | uid: string | Promise<void> | |
| getContact | uid: string | Promise<Contact | undefined> | |
| getContactByNumber | phoneNumber: string | Promise<Contact | undefined> | |
| getGroups | Promise<Group[]> | ||
| getAllContact | Promise<Contact[]> | ||
| getAvailableContactFirstLetter | Promise<ContactAlphabet> | ||
| addToFavorite | contact: Contact | Promise<void> | |
| getContactList | Promise<Contact[]> | ||
| removeToFavorite | contact: Contact | Promise<void> | |
| addToVip | contact: Contact | Promise<void> | |
| removeFromVip | contact: Contact | Promise<void> | |
| block | contact: Contact | Promise<void> | |
| unBlock | contact: Contact | Promise<void> | |
| deleteContact | uid: string | Promise<void> | |
| reOrderGroups | groupId: string, fromIndex: number, toIndex: number | Promise<void> | |
| addToFavorite | contact: Contact | Promise<void> |
Events
import { Connect } from 'connectme-sdk';
...
const directory = Connect.directory
const unsubscribe = directory.on(DIRECTORY_EVENT.ON_DIRECTORY_UPDATE, (user) => {
})
// To remove subsciption on directory events call unsubscribe function
unsubscribe()| Event Name | Returns | Notes |
|---|---|---|
| ON_CONTACT_UPDATE | Contact | |
| ON_DIRECTORY_UPDATE | Contact[] | |
| ON_CONTACT_DELETE | User | |
| ON_GROUPS_UPDATE | Group[] |
Attributes
| Name | type | Default | Notes |
|---|---|---|---|
| groups | Group[] | [] |
Contact object
Methods
| Methods Name | Args | Returns | Notes |
|---|---|---|---|
| subscribe | cb: (contact: Contact) => void | () => void |
Events
.....
const unsubscribe = contact.on(CONTACT_EVENT.ON_CONTACT_UPDATE, (contact) => {
})
// To remove subsciption on contact events call unsubscribe function
unsubscribe()| Event Name | Returns | Notes |
|---|---|---|
| ON_CONTACT_UPDATE | Contact | |
| ON_PRESENCE_UPDATE | Contact |
Attributes
See => Contact source code
📣 Gateway
Gateway Documentation
📣 Application Storage
Application Storage
12 months ago
12 months ago
10 months ago
11 months ago
8 months ago
5 months ago
6 months ago
5 months ago
12 months ago
7 months ago
7 months ago
9 months ago
10 months ago
10 months ago
5 months ago
5 months ago
11 months ago
9 months ago
12 months ago
1 year ago
5 months ago
7 months ago
6 months ago
8 months ago
8 months ago
7 months ago
8 months ago
8 months ago
9 months ago
7 months ago
9 months ago
8 months ago
10 months ago
9 months ago
9 months ago
10 months ago
10 months ago
10 months ago
8 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago