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 .xml suffix or ?format=xml

HTTP + XML

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: application/xml
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<AppConfig xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Voice.Api.App">
  <AccessToken>String</AccessToken>
  <AccountId>String</AccountId>
  <AgentState>Unknown</AgentState>
  <AgentStateReason>Unknown</AgentStateReason>
  <AppSettings xmlns:d2p1="http://schemas.datacontract.org/2004/07/Voice.Api.Customers">
    <d2p1:ChakraTheme>String</d2p1:ChakraTheme>
    <d2p1:CustomCss>String</d2p1:CustomCss>
    <d2p1:EnableCallHistory>false</d2p1:EnableCallHistory>
    <d2p1:EnableDeviceManagement>false</d2p1:EnableDeviceManagement>
    <d2p1:EnableDialer>false</d2p1:EnableDialer>
    <d2p1:EnablePhoneNumberManagement>false</d2p1:EnablePhoneNumberManagement>
    <d2p1:LogoutUrl>String</d2p1:LogoutUrl>
    <d2p1:PageTitle>String</d2p1:PageTitle>
    <d2p1:PortMyNumberUrl>String</d2p1:PortMyNumberUrl>
    <d2p1:ShowFileNameInMessageCenter>false</d2p1:ShowFileNameInMessageCenter>
    <d2p1:StringMappings>String</d2p1:StringMappings>
  </AppSettings>
  <CustomerId>String</CustomerId>
  <EmailAddress>String</EmailAddress>
  <EndpointId>String</EndpointId>
  <Identity>String</Identity>
  <Tabs xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
    <d2p1:anyType />
  </Tabs>
  <ThirdPartyPhoneSystemSettings xmlns:d2p1="http://schemas.datacontract.org/2004/07/Voice.Api.Endpoints">
    <d2p1:DemoSettings>
      <d2p1:Extension>String</d2p1:Extension>
    </d2p1:DemoSettings>
    <d2p1:SipSettings>
      <d2p1:Accounts>
        <d2p1:ThirdPartyPhoneSystemSettings.ThirdPartySipSettings.ThirdPartySipAccountSettings>
          <d2p1:Agent>String</d2p1:Agent>
          <d2p1:AudioCodecs>
            <d2p1:ThirdPartyPhoneSystemSettings.ThirdPartySipSettings.AudioCodecTypes>PCMU</d2p1:ThirdPartyPhoneSystemSettings.ThirdPartySipSettings.AudioCodecTypes>
          </d2p1:AudioCodecs>
          <d2p1:AudioPlaybackDeviceName>String</d2p1:AudioPlaybackDeviceName>
          <d2p1:AudioRecordingDeviceName>String</d2p1:AudioRecordingDeviceName>
          <d2p1:AuthName>String</d2p1:AuthName>
          <d2p1:DTMFMethod>RFC2833</d2p1:DTMFMethod>
          <d2p1:DisplayName>String</d2p1:DisplayName>
          <d2p1:LocalIP>String</d2p1:LocalIP>
          <d2p1:LocalPort>0</d2p1:LocalPort>
          <d2p1:Number>String</d2p1:Number>
          <d2p1:OutboundServer>String</d2p1:OutboundServer>
          <d2p1:OutboundServerPort>0</d2p1:OutboundServerPort>
          <d2p1:Password>String</d2p1:Password>
          <d2p1:RegistrationExpires>0</d2p1:RegistrationExpires>
          <d2p1:SipServer>String</d2p1:SipServer>
          <d2p1:SipServerPort>0</d2p1:SipServerPort>
          <d2p1:StunPort>0</d2p1:StunPort>
          <d2p1:StunServer>String</d2p1:StunServer>
          <d2p1:TransportType>UDP</d2p1:TransportType>
          <d2p1:UserDomain>String</d2p1:UserDomain>
          <d2p1:UserName>String</d2p1:UserName>
        </d2p1:ThirdPartyPhoneSystemSettings.ThirdPartySipSettings.ThirdPartySipAccountSettings>
      </d2p1:Accounts>
    </d2p1:SipSettings>
    <d2p1:Type>Demo</d2p1:Type>
  </ThirdPartyPhoneSystemSettings>
  <UserInfo>
    <AvatarUrl>String</AvatarUrl>
    <FirstName>String</FirstName>
    <LastName>String</LastName>
    <Name>String</Name>
  </UserInfo>
</AppConfig>