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 java.io.InputStream
import net.servicestack.client.*
import com.google.gson.annotations.*
import com.google.gson.reflect.*


open 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)")
    open var endpointId:String? = 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")
    open var endpointEmailAddress:String? = null

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

    /**
    * Use a specific push credential SID
    */
    @ApiMember(Description="Use a specific push credential SID")
    open var pushCredentialSid:String? = null

    /**
    * Use a specific application SID
    */
    @ApiMember(Description="Use a specific application SID")
    open var applicationSid:String? = null

    /**
    * Is this device operating in a sandbox environment? IOS only.
    */
    @ApiMember(Description="Is this device operating in a sandbox environment? IOS only.")
    open var sandbox:Boolean? = null
}

enum class DeviceTypes
{
    Web,
    IOS,
    Android,
}

open class AppConfig
{
    /**
    * The ID of this endpoint
    */
    @ApiMember(Description="The ID of this endpoint")
    open var endpointId:String? = null

    /**
    * The ID of the account
    */
    @ApiMember(Description="The ID of the account")
    open var accountId:String? = null

    /**
    * The customer ID associated with this user
    */
    @ApiMember(Description="The customer ID associated with this user")
    open var customerId:String? = null

    /**
    * The access token for use with Twilio Voice
    */
    @ApiMember(Description="The access token for use with Twilio Voice")
    open var accessToken:String? = null

    /**
    * The access token's identity
    */
    @ApiMember(Description="The access token's identity")
    open var identity:String? = null

    /**
    * The email address of the user
    */
    @ApiMember(Description="The email address of the user")
    open var emailAddress:String? = null

    /**
    * The user's information
    */
    @ApiMember(Description="The user's information")
    open var userInfo:AppUserInfo? = null

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

    /**
    * The agent state reason
    */
    @ApiMember(Description="The agent state reason")
    open var agentStateReason:AgentStateReasons? = null

    /**
    * The tabs for the app
    */
    @ApiMember(Description="The tabs for the app")
    open var tabs:ArrayList<Object>? = null

    /**
    * The app settings
    */
    @ApiMember(Description="The app settings")
    open var appSettings:AppSettings? = null

    /**
    * The phone settings for third party connectivity
    */
    @ApiMember(Description="The phone settings for third party connectivity")
    open var thirdPartyPhoneSystemSettings:ThirdPartyPhoneSystemSettings? = null
}

open class AppUserInfo
{
    /**
    * The user's first name
    */
    @ApiMember(Description="The user's first name")
    open var firstName:String? = null

    /**
    * The user's last name
    */
    @ApiMember(Description="The user's last name")
    open var lastName:String? = null

    /**
    * Shortcut to the user's full name
    */
    @ApiMember(Description="Shortcut to the user's full name")
    open var name:String? = null

    /**
    * The URL to the user's avatar
    */
    @ApiMember(Description="The URL to the user's avatar")
    open var avatarUrl:String? = null
}

enum class AgentStates
{
    Unknown,
    Ready,
    NotReady,
    LoggedOut,
    WrapUp,
    Outgoing,
    Other,
}

enum class AgentStateReasons
{
    Unknown,
    SetByUser,
    MissedCall,
    SetBySystem,
}

open class AppSettings
{
    open var enablePhoneNumberManagement:Boolean? = null
    open var enableDeviceManagement:Boolean? = null
    open var enableDialer:Boolean? = null
    open var enableCallHistory:Boolean? = null
    open var enableAssistants:Boolean? = null
    open var showFileNameInMessageCenter:Boolean? = null
    open var chakraTheme:String? = null
    open var customCss:String? = null
    open var pageTitle:String? = null
    open var stringMappings:String? = null
    open var logoutUrl:String? = null
    open var portMyNumberUrl:String? = null
}

open class ThirdPartyPhoneSystemSettings
{
    @SerializedName("type") open var Type:ThirdPartyPhoneSystemTypes? = null
    open var sipSettings:ThirdPartySipSettings? = null
    open var demoSettings:ThirdPartyDemoSettings? = null
}

enum class ThirdPartyPhoneSystemTypes
{
    Demo,
    Sip,
}

open class ThirdPartySipSettings
{
    open var accounts:ArrayList<ThirdPartySipAccountSettings>? = null
}

open class ThirdPartySipAccountSettings
{
    open var number:String? = null
    open var agent:String? = null
    open var authName:String? = null
    open var userName:String? = null
    open var displayName:String? = null
    open var password:String? = null
    open var userDomain:String? = null
    open var registrationExpires:Int? = null
    open var transportType:TransportTypes? = null
    open var localIP:String? = null
    open var localPort:Int? = null
    open var sipServer:String? = null
    open var sipServerPort:Int? = null
    open var outboundServer:String? = null
    open var outboundServerPort:Int? = null
    open var stunServer:String? = null
    open var stunPort:Int? = null
    open var audioPlaybackDeviceName:String? = null
    open var audioRecordingDeviceName:String? = null
    open var audioCodecs:ArrayList<AudioCodecTypes>? = null
    open var dtmfMethod:DtmfMethods? = null
}

enum class TransportTypes
{
    Udp,
    Tls,
    Tcp,
    Pers,
}

enum class AudioCodecTypes(val value:Int)
{
    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),
}

enum class DtmfMethods
{
    RfC2833,
    Info,
}

open class ThirdPartyDemoSettings
{
    open var extension:String? = null
}

Kotlin 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: team.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:EnableAssistants>false</d2p1:EnableAssistants>
    <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>