Requires any of the roles: | SystemAdministrator, Manager, Customer |
GET | /endpoints/app/config |
---|
"use strict";
export class AppUserInfo {
/** @param {{firstName?:string,lastName?:string,name?:string,avatarUrl?:string}} [init] */
constructor(init) { Object.assign(this, init) }
/**
* @type {string}
* @description The user's first name */
firstName;
/**
* @type {string}
* @description The user's last name */
lastName;
/**
* @type {string}
* @description Shortcut to the user's full name */
name;
/**
* @type {string}
* @description The URL to the user's avatar */
avatarUrl;
}
/** @typedef {'Unknown'|'Ready'|'NotReady'|'LoggedOut'|'WrapUp'|'Outgoing'|'Other'} */
export var AgentStates;
(function (AgentStates) {
AgentStates["Unknown"] = "Unknown"
AgentStates["Ready"] = "Ready"
AgentStates["NotReady"] = "NotReady"
AgentStates["LoggedOut"] = "LoggedOut"
AgentStates["WrapUp"] = "WrapUp"
AgentStates["Outgoing"] = "Outgoing"
AgentStates["Other"] = "Other"
})(AgentStates || (AgentStates = {}));
/** @typedef {'Unknown'|'SetByUser'|'MissedCall'|'SetBySystem'} */
export var AgentStateReasons;
(function (AgentStateReasons) {
AgentStateReasons["Unknown"] = "Unknown"
AgentStateReasons["SetByUser"] = "SetByUser"
AgentStateReasons["MissedCall"] = "MissedCall"
AgentStateReasons["SetBySystem"] = "SetBySystem"
})(AgentStateReasons || (AgentStateReasons = {}));
export class AppSettings {
/** @param {{enablePhoneNumberManagement?:boolean,enableDeviceManagement?:boolean,enableDialer?:boolean,enableCallHistory?:boolean,enableAssistants?:boolean,showFileNameInMessageCenter?:boolean,chakraTheme?:string,customCss?:string,pageTitle?:string,stringMappings?:string,logoutUrl?:string,portMyNumberUrl?:string}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {boolean} */
enablePhoneNumberManagement;
/** @type {boolean} */
enableDeviceManagement;
/** @type {boolean} */
enableDialer;
/** @type {boolean} */
enableCallHistory;
/** @type {boolean} */
enableAssistants;
/** @type {boolean} */
showFileNameInMessageCenter;
/** @type {string} */
chakraTheme;
/** @type {string} */
customCss;
/** @type {string} */
pageTitle;
/** @type {string} */
stringMappings;
/** @type {string} */
logoutUrl;
/** @type {string} */
portMyNumberUrl;
}
/** @typedef {'Demo'|'Sip'} */
export var ThirdPartyPhoneSystemTypes;
(function (ThirdPartyPhoneSystemTypes) {
ThirdPartyPhoneSystemTypes["Demo"] = "Demo"
ThirdPartyPhoneSystemTypes["Sip"] = "Sip"
})(ThirdPartyPhoneSystemTypes || (ThirdPartyPhoneSystemTypes = {}));
/** @typedef {'UDP'|'TLS'|'TCP'|'PERS'} */
export var TransportTypes;
(function (TransportTypes) {
TransportTypes["UDP"] = "UDP"
TransportTypes["TLS"] = "TLS"
TransportTypes["TCP"] = "TCP"
TransportTypes["PERS"] = "PERS"
})(TransportTypes || (TransportTypes = {}));
/** @typedef {number} */
export var AudioCodecTypes;
(function (AudioCodecTypes) {
AudioCodecTypes[AudioCodecTypes["PCMU"] = 0] = "PCMU"
AudioCodecTypes[AudioCodecTypes["GSM"] = 3] = "GSM"
AudioCodecTypes[AudioCodecTypes["PCMA"] = 8] = "PCMA"
AudioCodecTypes[AudioCodecTypes["G722"] = 9] = "G722"
AudioCodecTypes[AudioCodecTypes["G729"] = 18] = "G729"
AudioCodecTypes[AudioCodecTypes["ILBC"] = 97] = "ILBC"
AudioCodecTypes[AudioCodecTypes["AMR"] = 98] = "AMR"
AudioCodecTypes[AudioCodecTypes["AMRWB"] = 99] = "AMRWB"
AudioCodecTypes[AudioCodecTypes["SPEEX"] = 100] = "SPEEX"
AudioCodecTypes[AudioCodecTypes["DTMF"] = 101] = "DTMF"
AudioCodecTypes[AudioCodecTypes["SPEEXWB"] = 102] = "SPEEXWB"
AudioCodecTypes[AudioCodecTypes["ISACWB"] = 103] = "ISACWB"
AudioCodecTypes[AudioCodecTypes["ISACSWB"] = 104] = "ISACSWB"
AudioCodecTypes[AudioCodecTypes["OPUS"] = 105] = "OPUS"
AudioCodecTypes[AudioCodecTypes["G7221"] = 121] = "G7221"
AudioCodecTypes[AudioCodecTypes["NONE"] = -1] = "NONE"
})(AudioCodecTypes || (AudioCodecTypes = {}));
/** @typedef {'RFC2833'|'INFO'} */
export var DtmfMethods;
(function (DtmfMethods) {
DtmfMethods["RFC2833"] = "RFC2833"
DtmfMethods["INFO"] = "INFO"
})(DtmfMethods || (DtmfMethods = {}));
export class ThirdPartySipAccountSettings {
/** @param {{number?:string,agent?:string,authName?:string,userName?:string,displayName?:string,password?:string,userDomain?:string,registrationExpires?:number,transportType?:TransportTypes,localIP?:string,localPort?:number,sipServer?:string,sipServerPort?:number,outboundServer?:string,outboundServerPort?:number,stunServer?:string,stunPort?:number,audioPlaybackDeviceName?:string,audioRecordingDeviceName?:string,audioCodecs?:AudioCodecTypes[],dtmfMethod?:DtmfMethods}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {string} */
number;
/** @type {string} */
agent;
/** @type {string} */
authName;
/** @type {string} */
userName;
/** @type {string} */
displayName;
/** @type {string} */
password;
/** @type {string} */
userDomain;
/** @type {number} */
registrationExpires;
/** @type {TransportTypes} */
transportType;
/** @type {string} */
localIP;
/** @type {number} */
localPort;
/** @type {string} */
sipServer;
/** @type {number} */
sipServerPort;
/** @type {string} */
outboundServer;
/** @type {number} */
outboundServerPort;
/** @type {string} */
stunServer;
/** @type {number} */
stunPort;
/** @type {string} */
audioPlaybackDeviceName;
/** @type {string} */
audioRecordingDeviceName;
/** @type {AudioCodecTypes[]} */
audioCodecs;
/** @type {DtmfMethods} */
dtmfMethod;
}
export class ThirdPartySipSettings {
/** @param {{accounts?:ThirdPartySipAccountSettings[]}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {ThirdPartySipAccountSettings[]} */
accounts;
}
export class ThirdPartyDemoSettings {
/** @param {{extension?:string}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {string} */
extension;
}
export class ThirdPartyPhoneSystemSettings {
/** @param {{type?:ThirdPartyPhoneSystemTypes,sipSettings?:ThirdPartySipSettings,demoSettings?:ThirdPartyDemoSettings}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {ThirdPartyPhoneSystemTypes} */
type;
/** @type {ThirdPartySipSettings} */
sipSettings;
/** @type {ThirdPartyDemoSettings} */
demoSettings;
}
export class AppConfig {
/** @param {{endpointId?:string,accountId?:string,customerId?:string,accessToken?:string,identity?:string,emailAddress?:string,userInfo?:AppUserInfo,agentState?:AgentStates,agentStateReason?:AgentStateReasons,tabs?:Object[],appSettings?:AppSettings,thirdPartyPhoneSystemSettings?:ThirdPartyPhoneSystemSettings}} [init] */
constructor(init) { Object.assign(this, init) }
/**
* @type {string}
* @description The ID of this endpoint */
endpointId;
/**
* @type {string}
* @description The ID of the account */
accountId;
/**
* @type {string}
* @description The customer ID associated with this user */
customerId;
/**
* @type {string}
* @description The access token for use with Twilio Voice */
accessToken;
/**
* @type {string}
* @description The access token's identity */
identity;
/**
* @type {string}
* @description The email address of the user */
emailAddress;
/**
* @type {AppUserInfo}
* @description The user's information */
userInfo;
/**
* @type {AgentStates}
* @description The agent state (for call center users) */
agentState;
/**
* @type {AgentStateReasons}
* @description The agent state reason */
agentStateReason;
/**
* @type {Object[]}
* @description The tabs for the app */
tabs;
/**
* @type {AppSettings}
* @description The app settings */
appSettings;
/**
* @type {ThirdPartyPhoneSystemSettings}
* @description The phone settings for third party connectivity */
thirdPartyPhoneSystemSettings;
}
/** @typedef {'Web'|'iOS'|'Android'} */
export var DeviceTypes;
(function (DeviceTypes) {
DeviceTypes["Web"] = "Web"
DeviceTypes["iOS"] = "iOS"
DeviceTypes["Android"] = "Android"
})(DeviceTypes || (DeviceTypes = {}));
export class GetEndpointAppConfig {
/** @param {{endpointId?:string,endpointEmailAddress?:string,deviceType?:DeviceTypes,pushCredentialSid?:string,applicationSid?:string,sandbox?:boolean}} [init] */
constructor(init) { Object.assign(this, init) }
/**
* @type {string}
* @description The endpoint whose config you want to get (this must be a User) */
endpointId;
/**
* @type {string}
* @description The endpoint email address whose config you want to get (this must be a User) - EndpointId takes priority over this */
endpointEmailAddress;
/**
* @type {DeviceTypes}
* @description The type of device you are requesting config for */
deviceType;
/**
* @type {string}
* @description Use a specific push credential SID */
pushCredentialSid;
/**
* @type {string}
* @description Use a specific application SID */
applicationSid;
/**
* @type {boolean}
* @description Is this device operating in a sandbox environment? IOS only. */
sandbox;
}
JavaScript GetEndpointAppConfig DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .json suffix or ?format=json
To embed the response in a jsonp callback, append ?callback=myCallback
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
GET /endpoints/app/config HTTP/1.1 Host: team.evovoice.io Accept: application/json
HTTP/1.1 200 OK Content-Type: application/json Content-Length: length {"endpointId":"String","accountId":"String","customerId":"String","accessToken":"String","identity":"String","emailAddress":"String","userInfo":{"firstName":"String","lastName":"String","name":"String","avatarUrl":"String"},"agentState":"Unknown","agentStateReason":"Unknown","tabs":[{}],"appSettings":{"enablePhoneNumberManagement":false,"enableDeviceManagement":false,"enableDialer":false,"enableCallHistory":false,"enableAssistants":false,"showFileNameInMessageCenter":false,"chakraTheme":"String","customCss":"String","pageTitle":"String","stringMappings":"String","logoutUrl":"String","portMyNumberUrl":"String"},"thirdPartyPhoneSystemSettings":{"type":"Demo","sipSettings":{"accounts":[{"number":"String","agent":"String","authName":"String","userName":"String","displayName":"String","password":"String","userDomain":"String","registrationExpires":0,"transportType":"UDP","localIP":"String","localPort":0,"sipServer":"String","sipServerPort":0,"outboundServer":"String","outboundServerPort":0,"stunServer":"String","stunPort":0,"audioPlaybackDeviceName":"String","audioRecordingDeviceName":"String","audioCodecs":["PCMU"],"dtmfMethod":"RFC2833"}]},"demoSettings":{"extension":"String"}}}