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
import java.math.*;
import java.util.*;
import net.servicestack.client.*;

public class dtos
{

    public static 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 String endpointId = null;

        /**
        * 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 String endpointEmailAddress = null;

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

        /**
        * Use a specific push credential SID
        */
        @ApiMember(Description="Use a specific push credential SID")
        public String pushCredentialSid = null;

        /**
        * Use a specific application SID
        */
        @ApiMember(Description="Use a specific application SID")
        public String applicationSid = null;

        /**
        * Is this device operating in a sandbox environment? IOS only.
        */
        @ApiMember(Description="Is this device operating in a sandbox environment? IOS only.")
        public Boolean sandbox = null;
        
        public String getEndpointId() { return endpointId; }
        public GetEndpointAppConfig setEndpointId(String value) { this.endpointId = value; return this; }
        public String getEndpointEmailAddress() { return endpointEmailAddress; }
        public GetEndpointAppConfig setEndpointEmailAddress(String value) { this.endpointEmailAddress = value; return this; }
        public DeviceTypes getDeviceType() { return deviceType; }
        public GetEndpointAppConfig setDeviceType(DeviceTypes value) { this.deviceType = value; return this; }
        public String getPushCredentialSid() { return pushCredentialSid; }
        public GetEndpointAppConfig setPushCredentialSid(String value) { this.pushCredentialSid = value; return this; }
        public String getApplicationSid() { return applicationSid; }
        public GetEndpointAppConfig setApplicationSid(String value) { this.applicationSid = value; return this; }
        public Boolean isSandbox() { return sandbox; }
        public GetEndpointAppConfig setSandbox(Boolean value) { this.sandbox = value; return this; }
    }

    public static enum DeviceTypes
    {
        Web,
        IOS,
        Android;
    }

    public static class AppConfig
    {
        /**
        * The ID of this endpoint
        */
        @ApiMember(Description="The ID of this endpoint")
        public String endpointId = null;

        /**
        * The ID of the account
        */
        @ApiMember(Description="The ID of the account")
        public String accountId = null;

        /**
        * The customer ID associated with this user
        */
        @ApiMember(Description="The customer ID associated with this user")
        public String customerId = null;

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

        /**
        * The access token's identity
        */
        @ApiMember(Description="The access token's identity")
        public String identity = null;

        /**
        * The email address of the user
        */
        @ApiMember(Description="The email address of the user")
        public String emailAddress = null;

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

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

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

        /**
        * The tabs for the app
        */
        @ApiMember(Description="The tabs for the app")
        public ArrayList<Object> tabs = null;

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

        /**
        * The phone settings for third party connectivity
        */
        @ApiMember(Description="The phone settings for third party connectivity")
        public ThirdPartyPhoneSystemSettings thirdPartyPhoneSystemSettings = null;
        
        public String getEndpointId() { return endpointId; }
        public AppConfig setEndpointId(String value) { this.endpointId = value; return this; }
        public String getAccountId() { return accountId; }
        public AppConfig setAccountId(String value) { this.accountId = value; return this; }
        public String getCustomerId() { return customerId; }
        public AppConfig setCustomerId(String value) { this.customerId = value; return this; }
        public String getAccessToken() { return accessToken; }
        public AppConfig setAccessToken(String value) { this.accessToken = value; return this; }
        public String getIdentity() { return identity; }
        public AppConfig setIdentity(String value) { this.identity = value; return this; }
        public String getEmailAddress() { return emailAddress; }
        public AppConfig setEmailAddress(String value) { this.emailAddress = value; return this; }
        public AppUserInfo getUserInfo() { return userInfo; }
        public AppConfig setUserInfo(AppUserInfo value) { this.userInfo = value; return this; }
        public AgentStates getAgentState() { return agentState; }
        public AppConfig setAgentState(AgentStates value) { this.agentState = value; return this; }
        public AgentStateReasons getAgentStateReason() { return agentStateReason; }
        public AppConfig setAgentStateReason(AgentStateReasons value) { this.agentStateReason = value; return this; }
        public ArrayList<Object> getTabs() { return tabs; }
        public AppConfig setTabs(ArrayList<Object> value) { this.tabs = value; return this; }
        public AppSettings getAppSettings() { return appSettings; }
        public AppConfig setAppSettings(AppSettings value) { this.appSettings = value; return this; }
        public ThirdPartyPhoneSystemSettings getThirdPartyPhoneSystemSettings() { return thirdPartyPhoneSystemSettings; }
        public AppConfig setThirdPartyPhoneSystemSettings(ThirdPartyPhoneSystemSettings value) { this.thirdPartyPhoneSystemSettings = value; return this; }
    }

    public static class AppUserInfo
    {
        /**
        * The user's first name
        */
        @ApiMember(Description="The user's first name")
        public String firstName = null;

        /**
        * The user's last name
        */
        @ApiMember(Description="The user's last name")
        public String lastName = null;

        /**
        * Shortcut to the user's full name
        */
        @ApiMember(Description="Shortcut to the user's full name")
        public String name = null;

        /**
        * The URL to the user's avatar
        */
        @ApiMember(Description="The URL to the user's avatar")
        public String avatarUrl = null;
        
        public String getFirstName() { return firstName; }
        public AppUserInfo setFirstName(String value) { this.firstName = value; return this; }
        public String getLastName() { return lastName; }
        public AppUserInfo setLastName(String value) { this.lastName = value; return this; }
        public String getName() { return name; }
        public AppUserInfo setName(String value) { this.name = value; return this; }
        public String getAvatarUrl() { return avatarUrl; }
        public AppUserInfo setAvatarUrl(String value) { this.avatarUrl = value; return this; }
    }

    public static enum AgentStates
    {
        Unknown,
        Ready,
        NotReady,
        LoggedOut,
        WrapUp,
        Outgoing,
        Other;
    }

    public static enum AgentStateReasons
    {
        Unknown,
        SetByUser,
        MissedCall,
        SetBySystem;
    }

    public static class AppSettings
    {
        public Boolean enablePhoneNumberManagement = null;
        public Boolean enableDeviceManagement = null;
        public Boolean enableDialer = null;
        public Boolean enableCallHistory = null;
        public Boolean showFileNameInMessageCenter = null;
        public String chakraTheme = null;
        public String customCss = null;
        public String pageTitle = null;
        public String stringMappings = null;
        public String logoutUrl = null;
        public String portMyNumberUrl = null;
        
        public Boolean isEnablePhoneNumberManagement() { return enablePhoneNumberManagement; }
        public AppSettings setEnablePhoneNumberManagement(Boolean value) { this.enablePhoneNumberManagement = value; return this; }
        public Boolean isEnableDeviceManagement() { return enableDeviceManagement; }
        public AppSettings setEnableDeviceManagement(Boolean value) { this.enableDeviceManagement = value; return this; }
        public Boolean isEnableDialer() { return enableDialer; }
        public AppSettings setEnableDialer(Boolean value) { this.enableDialer = value; return this; }
        public Boolean isEnableCallHistory() { return enableCallHistory; }
        public AppSettings setEnableCallHistory(Boolean value) { this.enableCallHistory = value; return this; }
        public Boolean isShowFileNameInMessageCenter() { return showFileNameInMessageCenter; }
        public AppSettings setShowFileNameInMessageCenter(Boolean value) { this.showFileNameInMessageCenter = value; return this; }
        public String getChakraTheme() { return chakraTheme; }
        public AppSettings setChakraTheme(String value) { this.chakraTheme = value; return this; }
        public String getCustomCss() { return customCss; }
        public AppSettings setCustomCss(String value) { this.customCss = value; return this; }
        public String getPageTitle() { return pageTitle; }
        public AppSettings setPageTitle(String value) { this.pageTitle = value; return this; }
        public String getStringMappings() { return stringMappings; }
        public AppSettings setStringMappings(String value) { this.stringMappings = value; return this; }
        public String getLogoutUrl() { return logoutUrl; }
        public AppSettings setLogoutUrl(String value) { this.logoutUrl = value; return this; }
        public String getPortMyNumberUrl() { return portMyNumberUrl; }
        public AppSettings setPortMyNumberUrl(String value) { this.portMyNumberUrl = value; return this; }
    }

    public static class ThirdPartyPhoneSystemSettings
    {
        public ThirdPartyPhoneSystemTypes type = null;
        public ThirdPartySipSettings sipSettings = null;
        public ThirdPartyDemoSettings demoSettings = null;
        
        public ThirdPartyPhoneSystemTypes getType() { return type; }
        public ThirdPartyPhoneSystemSettings setType(ThirdPartyPhoneSystemTypes value) { this.type = value; return this; }
        public ThirdPartySipSettings getSipSettings() { return sipSettings; }
        public ThirdPartyPhoneSystemSettings setSipSettings(ThirdPartySipSettings value) { this.sipSettings = value; return this; }
        public ThirdPartyDemoSettings getDemoSettings() { return demoSettings; }
        public ThirdPartyPhoneSystemSettings setDemoSettings(ThirdPartyDemoSettings value) { this.demoSettings = value; return this; }
    }

    public static enum ThirdPartyPhoneSystemTypes
    {
        Demo,
        Sip;
    }

    public static class ThirdPartySipSettings
    {
        public ArrayList<ThirdPartySipAccountSettings> accounts = null;
        
        public ArrayList<ThirdPartySipAccountSettings> getAccounts() { return accounts; }
        public ThirdPartySipSettings setAccounts(ArrayList<ThirdPartySipAccountSettings> value) { this.accounts = value; return this; }
    }

    public static class ThirdPartySipAccountSettings
    {
        public String number = null;
        public String agent = null;
        public String authName = null;
        public String userName = null;
        public String displayName = null;
        public String password = null;
        public String userDomain = null;
        public Integer registrationExpires = null;
        public TransportTypes transportType = null;
        public String localIP = null;
        public Integer localPort = null;
        public String sipServer = null;
        public Integer sipServerPort = null;
        public String outboundServer = null;
        public Integer outboundServerPort = null;
        public String stunServer = null;
        public Integer stunPort = null;
        public String audioPlaybackDeviceName = null;
        public String audioRecordingDeviceName = null;
        public ArrayList<AudioCodecTypes> audioCodecs = null;
        public DtmfMethods dtmfMethod = null;
        
        public String getNumber() { return number; }
        public ThirdPartySipAccountSettings setNumber(String value) { this.number = value; return this; }
        public String getAgent() { return agent; }
        public ThirdPartySipAccountSettings setAgent(String value) { this.agent = value; return this; }
        public String getAuthName() { return authName; }
        public ThirdPartySipAccountSettings setAuthName(String value) { this.authName = value; return this; }
        public String getUserName() { return userName; }
        public ThirdPartySipAccountSettings setUserName(String value) { this.userName = value; return this; }
        public String getDisplayName() { return displayName; }
        public ThirdPartySipAccountSettings setDisplayName(String value) { this.displayName = value; return this; }
        public String getPassword() { return password; }
        public ThirdPartySipAccountSettings setPassword(String value) { this.password = value; return this; }
        public String getUserDomain() { return userDomain; }
        public ThirdPartySipAccountSettings setUserDomain(String value) { this.userDomain = value; return this; }
        public Integer getRegistrationExpires() { return registrationExpires; }
        public ThirdPartySipAccountSettings setRegistrationExpires(Integer value) { this.registrationExpires = value; return this; }
        public TransportTypes getTransportType() { return transportType; }
        public ThirdPartySipAccountSettings setTransportType(TransportTypes value) { this.transportType = value; return this; }
        public String getLocalIP() { return localIP; }
        public ThirdPartySipAccountSettings setLocalIP(String value) { this.localIP = value; return this; }
        public Integer getLocalPort() { return localPort; }
        public ThirdPartySipAccountSettings setLocalPort(Integer value) { this.localPort = value; return this; }
        public String getSipServer() { return sipServer; }
        public ThirdPartySipAccountSettings setSipServer(String value) { this.sipServer = value; return this; }
        public Integer getSipServerPort() { return sipServerPort; }
        public ThirdPartySipAccountSettings setSipServerPort(Integer value) { this.sipServerPort = value; return this; }
        public String getOutboundServer() { return outboundServer; }
        public ThirdPartySipAccountSettings setOutboundServer(String value) { this.outboundServer = value; return this; }
        public Integer getOutboundServerPort() { return outboundServerPort; }
        public ThirdPartySipAccountSettings setOutboundServerPort(Integer value) { this.outboundServerPort = value; return this; }
        public String getStunServer() { return stunServer; }
        public ThirdPartySipAccountSettings setStunServer(String value) { this.stunServer = value; return this; }
        public Integer getStunPort() { return stunPort; }
        public ThirdPartySipAccountSettings setStunPort(Integer value) { this.stunPort = value; return this; }
        public String getAudioPlaybackDeviceName() { return audioPlaybackDeviceName; }
        public ThirdPartySipAccountSettings setAudioPlaybackDeviceName(String value) { this.audioPlaybackDeviceName = value; return this; }
        public String getAudioRecordingDeviceName() { return audioRecordingDeviceName; }
        public ThirdPartySipAccountSettings setAudioRecordingDeviceName(String value) { this.audioRecordingDeviceName = value; return this; }
        public ArrayList<AudioCodecTypes> getAudioCodecs() { return audioCodecs; }
        public ThirdPartySipAccountSettings setAudioCodecs(ArrayList<AudioCodecTypes> value) { this.audioCodecs = value; return this; }
        public DtmfMethods getDtmfMethod() { return dtmfMethod; }
        public ThirdPartySipAccountSettings setDtmfMethod(DtmfMethods value) { this.dtmfMethod = value; return this; }
    }

    public static enum TransportTypes
    {
        Udp,
        Tls,
        Tcp,
        Pers;
    }

    public static 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);

        private final int value;
        AudioCodecTypes(final int intValue) { value = intValue; }
        public int getValue() { return value; }
    }

    public static enum DtmfMethods
    {
        RfC2833,
        Info;
    }

    public static class ThirdPartyDemoSettings
    {
        public String extension = null;
        
        public String getExtension() { return extension; }
        public ThirdPartyDemoSettings setExtension(String value) { this.extension = value; return this; }
    }

}

Java 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
		}
	}
}