/* Options: Date: 2024-06-09 16:34:33 SwiftVersion: 5.0 Version: 6.40 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://evovoice.io //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True IncludeTypes: GetAppConfig.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack /** * Gets the config for the app including webRTC token */ // @Route("/app/config", "GET") // @Api(Description="Gets the config for the app including webRTC token") public class GetAppConfig : IReturn, IGet, Codable { public typealias Return = AppConfig /** * The type of device you are requesting config for */ // @ApiMember(Description="The type of device you are requesting config for") public var deviceType:DeviceTypes? /** * Use a specific push credential SID */ // @ApiMember(Description="Use a specific push credential SID") public var pushCredentialSid:String? /** * Use a specific application SID */ // @ApiMember(Description="Use a specific application SID") public var 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 var sandbox:Bool? required public init(){} } public class AppConfig : Codable { /** * The ID of this endpoint */ // @ApiMember(Description="The ID of this endpoint") public var endpointId:String? /** * The ID of the account */ // @ApiMember(Description="The ID of the account") public var accountId:String? /** * The customer ID associated with this user */ // @ApiMember(Description="The customer ID associated with this user") public var customerId:String? /** * The access token for use with Twilio Voice */ // @ApiMember(Description="The access token for use with Twilio Voice") public var accessToken:String? /** * The access token's identity */ // @ApiMember(Description="The access token's identity") public var identity:String? /** * The email address of the user */ // @ApiMember(Description="The email address of the user") public var emailAddress:String? /** * The user's information */ // @ApiMember(Description="The user's information") public var userInfo:AppUserInfo? /** * The agent state (for call center users) */ // @ApiMember(Description="The agent state (for call center users)") public var agentState:AgentStates? /** * The agent state reason */ // @ApiMember(Description="The agent state reason") public var agentStateReason:AgentStateReasons? /** * The tabs for the app */ // @ApiMember(Description="The tabs for the app") public var tabs:[Object] = [] /** * The app settings */ // @ApiMember(Description="The app settings") public var appSettings:AppSettings? /** * The phone settings for third party connectivity */ // @ApiMember(Description="The phone settings for third party connectivity") public var thirdPartyPhoneSystemSettings:ThirdPartyPhoneSystemSettings? required public init(){} } public enum DeviceTypes : String, Codable { case Web case iOS case Android } public class AppSettings : Codable { public var enablePhoneNumberManagement:Bool? public var enableDeviceManagement:Bool? public var enableDialer:Bool? public var enableCallHistory:Bool? public var showFileNameInMessageCenter:Bool? public var chakraTheme:String? public var customCss:String? public var pageTitle:String? public var stringMappings:String? public var logoutUrl:String? public var portMyNumberUrl:String? required public init(){} } public class ThirdPartyPhoneSystemSettings : Codable { public var type:ThirdPartyPhoneSystemTypes? public var sipSettings:ThirdPartySipSettings? public var demoSettings:ThirdPartyDemoSettings? required public init(){} } public enum AgentStates : String, Codable { case Unknown case Ready case NotReady case LoggedOut case WrapUp case Outgoing case Other } public enum AgentStateReasons : String, Codable { case Unknown case SetByUser case MissedCall case SetBySystem } public enum ThirdPartyPhoneSystemTypes : String, Codable { case Demo case Sip } public class ThirdPartySipSettings : Codable { public var accounts:[ThirdPartySipAccountSettings] = [] required public init(){} } public class ThirdPartyDemoSettings : Codable { public var `extension`:String? required public init(){} } public class ThirdPartySipAccountSettings : Codable { public var number:String? public var agent:String? public var authName:String? public var userName:String? public var displayName:String? public var password:String? public var userDomain:String? public var registrationExpires:Int? public var transportType:TransportTypes? public var localIP:String? public var localPort:Int? public var sipServer:String? public var sipServerPort:Int? public var outboundServer:String? public var outboundServerPort:Int? public var stunServer:String? public var stunPort:Int? public var audioPlaybackDeviceName:String? public var audioRecordingDeviceName:String? public var audioCodecs:[AudioCodecTypes] = [] public var dtmfMethod:DtmfMethods? required public init(){} } public enum TransportTypes : String, Codable { case UDP case TLS case TCP case PERS } public enum AudioCodecTypes : Int, Codable { case PCMU = 0 case GSM = 3 case PCMA = 8 case G722 = 9 case G729 = 18 case ILBC = 97 case AMR = 98 case AMRWB = 99 case SPEEX = 100 case DTMF = 101 case SPEEXWB = 102 case ISACWB = 103 case ISACSWB = 104 case OPUS = 105 case G7221 = 121 case NONE = -1 } public enum DtmfMethods : String, Codable { case RFC2833 case INFO } public class AppUserInfo : Codable { /** * The user's first name */ // @ApiMember(Description="The user's first name") public var firstName:String? /** * The user's last name */ // @ApiMember(Description="The user's last name") public var lastName:String? /** * Shortcut to the user's full name */ // @ApiMember(Description="Shortcut to the user's full name") public var name:String? /** * The URL to the user's avatar */ // @ApiMember(Description="The URL to the user's avatar") public var avatarUrl:String? required public init(){} }