Evo Voice

<back to all web services

GetEndpointAppConfig

Requires Authentication
Requires any of the roles:SystemAdministrator, Manager, Customer
The following routes are available for this service:
GET/endpoints/app/config


export class NodeParameterMap
{
    [key:string] : NodeParameter;

    public constructor(init?: Partial<NodeParameterMap>) { (Object as any).assign(this, init); }
}


export class AppUserInfo
{
    /**
    * The user's first name
    */
    // @ApiMember(Description="The user's first name")
    public firstName?: string;

    /**
    * The user's last name
    */
    // @ApiMember(Description="The user's last name")
    public lastName?: string;

    /**
    * Shortcut to the user's full name
    */
    // @ApiMember(Description="Shortcut to the user's full name")
    public name?: string;

    /**
    * The URL to the user's avatar
    */
    // @ApiMember(Description="The URL to the user's avatar")
    public avatarUrl?: string;

    public constructor(init?: Partial<AppUserInfo>) { (Object as any).assign(this, init); }
}

export enum AgentStates
{
    Unknown = 'Unknown',
    Ready = 'Ready',
    NotReady = 'NotReady',
    LoggedOut = 'LoggedOut',
    WrapUp = 'WrapUp',
    Outgoing = 'Outgoing',
    Other = 'Other',
}

export enum AgentStateReasons
{
    Unknown = 'Unknown',
    SetByUser = 'SetByUser',
    MissedCall = 'MissedCall',
    SetBySystem = 'SetBySystem',
}

export class AppSettings
{
    public enablePhoneNumberManagement?: boolean;
    public enableDeviceManagement?: boolean;
    public enableDialer?: boolean;
    public enableCallHistory?: boolean;
    public showFileNameInMessageCenter?: boolean;
    public chakraTheme?: string;
    public customCss?: string;
    public pageTitle?: string;
    public stringMappings?: string;
    public logoutUrl?: string;
    public portMyNumberUrl?: string;

    public constructor(init?: Partial<AppSettings>) { (Object as any).assign(this, init); }
}

export enum ThirdPartyPhoneSystemTypes
{
    Demo = 'Demo',
    Sip = 'Sip',
}

export enum TransportTypes
{
    UDP = 'UDP',
    TLS = 'TLS',
    TCP = 'TCP',
    PERS = 'PERS',
}

export enum AudioCodecTypes
{
    PCMU = 0,
    GSM = 3,
    PCMA = 8,
    G722 = 9,
    G729 = 18,
    ILBC = 97,
    AMR = 98,
    AMRWB = 99,
    SPEEX = 100,
    DTMF = 101,
    SPEEXWB = 102,
    ISACWB = 103,
    ISACSWB = 104,
    OPUS = 105,
    G7221 = 121,
    NONE = -1,
}

export enum DtmfMethods
{
    RFC2833 = 'RFC2833',
    INFO = 'INFO',
}

export class ThirdPartySipAccountSettings
{
    public number?: string;
    public agent?: string;
    public authName?: string;
    public userName?: string;
    public displayName?: string;
    public password?: string;
    public userDomain?: string;
    public registrationExpires?: number;
    public transportType?: TransportTypes;
    public localIP?: string;
    public localPort?: number;
    public sipServer?: string;
    public sipServerPort?: number;
    public outboundServer?: string;
    public outboundServerPort?: number;
    public stunServer?: string;
    public stunPort?: number;
    public audioPlaybackDeviceName?: string;
    public audioRecordingDeviceName?: string;
    public audioCodecs?: AudioCodecTypes[];
    public dtmfMethod?: DtmfMethods;

    public constructor(init?: Partial<ThirdPartySipAccountSettings>) { (Object as any).assign(this, init); }
}

export class ThirdPartySipSettings
{
    public accounts?: ThirdPartySipAccountSettings[];

    public constructor(init?: Partial<ThirdPartySipSettings>) { (Object as any).assign(this, init); }
}

export class ThirdPartyDemoSettings
{
    public extension?: string;

    public constructor(init?: Partial<ThirdPartyDemoSettings>) { (Object as any).assign(this, init); }
}

export class ThirdPartyPhoneSystemSettings
{
    public type?: ThirdPartyPhoneSystemTypes;
    public sipSettings?: ThirdPartySipSettings;
    public demoSettings?: ThirdPartyDemoSettings;

    public constructor(init?: Partial<ThirdPartyPhoneSystemSettings>) { (Object as any).assign(this, init); }
}

export class AppConfig
{
    /**
    * The ID of this endpoint
    */
    // @ApiMember(Description="The ID of this endpoint")
    public endpointId?: string;

    /**
    * The ID of the account
    */
    // @ApiMember(Description="The ID of the account")
    public accountId?: string;

    /**
    * The customer ID associated with this user
    */
    // @ApiMember(Description="The customer ID associated with this user")
    public customerId?: string;

    /**
    * The access token for use with Twilio Voice
    */
    // @ApiMember(Description="The access token for use with Twilio Voice")
    public accessToken?: string;

    /**
    * The access token's identity
    */
    // @ApiMember(Description="The access token's identity")
    public identity?: string;

    /**
    * The email address of the user
    */
    // @ApiMember(Description="The email address of the user")
    public emailAddress?: string;

    /**
    * The user's information
    */
    // @ApiMember(Description="The user's information")
    public userInfo?: AppUserInfo;

    /**
    * The agent state (for call center users)
    */
    // @ApiMember(Description="The agent state (for call center users)")
    public agentState?: AgentStates;

    /**
    * The agent state reason
    */
    // @ApiMember(Description="The agent state reason")
    public agentStateReason?: AgentStateReasons;

    /**
    * The tabs for the app
    */
    // @ApiMember(Description="The tabs for the app")
    public tabs?: Object[];

    /**
    * The app settings
    */
    // @ApiMember(Description="The app settings")
    public appSettings?: AppSettings;

    /**
    * The phone settings for third party connectivity
    */
    // @ApiMember(Description="The phone settings for third party connectivity")
    public thirdPartyPhoneSystemSettings?: ThirdPartyPhoneSystemSettings;

    public constructor(init?: Partial<AppConfig>) { (Object as any).assign(this, init); }
}

export enum DeviceTypes
{
    Web = 'Web',
    iOS = 'iOS',
    Android = 'Android',
}

export class GetEndpointAppConfig
{
    /**
    * The endpoint whose config you want to get (this must be a User)
    */
    // @ApiMember(Description="The endpoint whose config you want to get (this must be a User)")
    public endpointId?: string;

    /**
    * The endpoint email address whose config you want to get (this must be a User) - EndpointId takes priority over this
    */
    // @ApiMember(Description="The endpoint email address whose config you want to get (this must be a User) - EndpointId takes priority over this")
    public endpointEmailAddress?: string;

    /**
    * The type of device you are requesting config for
    */
    // @ApiMember(Description="The type of device you are requesting config for")
    public deviceType?: DeviceTypes;

    /**
    * Use a specific push credential SID
    */
    // @ApiMember(Description="Use a specific push credential SID")
    public pushCredentialSid?: string;

    /**
    * Use a specific application SID
    */
    // @ApiMember(Description="Use a specific application SID")
    public applicationSid?: string;

    /**
    * Is this device operating in a sandbox environment? IOS only.
    */
    // @ApiMember(Description="Is this device operating in a sandbox environment? IOS only.")
    public sandbox?: boolean;

    public constructor(init?: Partial<GetEndpointAppConfig>) { (Object as any).assign(this, init); }
}

TypeScript GetEndpointAppConfig DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv

HTTP + JSV

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: evovoice.io 
Accept: text/jsv
HTTP/1.1 200 OK
Content-Type: text/jsv
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,
		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
		}
	}
}