All Verbs | /nodes/queue/wait-callback |
---|
import Foundation
import ServiceStack
public class QueueNodeWaitCallback : TwilioRequestBase
{
public var waitMusic:[QueueWaitMusic]
public var queueName:String
public var accountId:String
public var sessionId:String
public var recordingReady:String
public var recordCall:Bool
public var recordedFile:String
public var recordedFileUrl:String
required public init(){ super.init() }
private enum CodingKeys : String, CodingKey {
case waitMusic
case queueName
case accountId
case sessionId
case recordingReady
case recordCall
case recordedFile
case recordedFileUrl
}
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
let container = try decoder.container(keyedBy: CodingKeys.self)
waitMusic = try container.decodeIfPresent([QueueWaitMusic].self, forKey: .waitMusic) ?? []
queueName = try container.decodeIfPresent(String.self, forKey: .queueName)
accountId = try container.decodeIfPresent(String.self, forKey: .accountId)
sessionId = try container.decodeIfPresent(String.self, forKey: .sessionId)
recordingReady = try container.decodeIfPresent(String.self, forKey: .recordingReady)
recordCall = try container.decodeIfPresent(Bool.self, forKey: .recordCall)
recordedFile = try container.decodeIfPresent(String.self, forKey: .recordedFile)
recordedFileUrl = try container.decodeIfPresent(String.self, forKey: .recordedFileUrl)
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
var container = encoder.container(keyedBy: CodingKeys.self)
if waitMusic != nil { try container.encode(waitMusic, forKey: .waitMusic) }
if queueName != nil { try container.encode(queueName, forKey: .queueName) }
if accountId != nil { try container.encode(accountId, forKey: .accountId) }
if sessionId != nil { try container.encode(sessionId, forKey: .sessionId) }
if recordingReady != nil { try container.encode(recordingReady, forKey: .recordingReady) }
if recordCall != nil { try container.encode(recordCall, forKey: .recordCall) }
if recordedFile != nil { try container.encode(recordedFile, forKey: .recordedFile) }
if recordedFileUrl != nil { try container.encode(recordedFileUrl, forKey: .recordedFileUrl) }
}
}
public class TwilioRequestBase : IPost, Codable
{
public var callSid:String
public var accountSid:String
public var from:String
public var to:String
public var callStatus:String
public var apiVersion:String
public var direction:String
public var forwardedFrom:String
public var callerName:String
public var parentCallSid:String
public var stirVerstat:String
public var called:String
public var calledZip:String
public var calledCity:String
public var calledState:String
public var calledCountry:String
public var caller:String
public var callerCity:String
public var callerState:String
public var callerZip:String
public var callerCountry:String
public var fromCity:String
public var fromState:String
public var fromZip:String
public var fromCountry:String
public var toCity:String
public var toState:String
public var toZip:String
public var toCountry:String
public var messageSid:String
public var smsId:String
public var messagingServiceSid:String
public var body:String
public var numMedia:Int
public var mediaContentType0:String
public var mediaUrl0:String
public var mediaContentType1:String
public var mediaUrl1:String
public var mediaContentType2:String
public var mediaUrl2:String
public var index:Int
public var instanceSid:String
public var eventType:String
public var channelSid:String
public var attributes:String
public var clientIdentity:String
public var mediaContentType:String
public var mediaSid:String
public var identity:String
public var digits:String
public var speechResult:String
public var confidence:Double
public var callDuration:Int
public var recordingUrl:String
public var recordingSid:String
public var recordingDuration:Int
public var recordingStatus:String
public var transcriptionSid:String
public var transcriptionText:String
public var transcriptionUrl:String
public var transcriptionStatus:String
public var dialCallStatus:String
public var dialCallSid:String
public var dialCallDuration:Double
public var dialBridged:Bool
public var queueResult:String
public var queueSid:String
public var queueTime:Int
public var conferenceSid:String
public var friendlyName:String
public var statusCallbackEvent:String
public var muted:Bool
public var hold:Bool
public var endConferenceOnExit:Bool
public var startConferenceOnEnter:Bool
public var eventName:String
public var assistantSid:String
public var dialogueSid:String
public var userIdentifier:String
public var currentInput:String
public var currentTask:String
public var dialoguePayloadUrl:String
public var memory:String
public var channel:String
public var faxSid:String
public var faxStatus:String
public var numPages:Int
public var mediaUrl:String
public var errorCode:String
public var errorMessage:String
required public init(){}
}
public class QueueWaitMusic : Codable
{
public var mode:QueueWaitMusicModes
public var audioFile:String
public var text:String
public var textVoice:SayVoices
public var numTimes:Int
required public init(){}
}
public enum QueueWaitMusicModes : String, Codable
{
case Audio
case Text
}
public enum SayVoices : String, Codable
{
case Man
case Woman
case Polly_Mads_Danish_Male
case Polly_Naja_Danish_Female
case Polly_Lotte_Dutch_Female
case Polly_Ruben_Dutch_Male
case Polly_Nicole_Australian_Female
case Polly_Russell_Australian_Male
case Polly_Amy_British_Female
case Polly_Brian_British_Male
case Polly_Emma_British_Female
case Polly_Raveena_Indian_Female
case Polly_Ivy_US_Female
case Polly_Joanna_US_Female
case Polly_Joey_US_Male
case Polly_Justin_US_Male
case Polly_Kendra_US_Female
case Polly_Kimberly_US_Female
case Polly_Matthew_US_Male
case Polly_Salli_US_Female
case Polly_Geraint_Welsh_Male
case Polly_Celine_French_Female
case Polly_Mathieu_French_Male
case Polly_Chantal_French_Canadian_Female
case Polly_Hans_German_Male
case Polly_Marlene_German_Female
case Polly_Vicki_German_Female
case Polly_Dora_Iceland_Female
case Polly_Karl_Iceland_Male
case Polly_Carla_Italian_Female
case Polly_Giorgio_Italian_Male
case Polly_Mizuki_Japanese_Female
case Polly_Takumi_Japanese_Male
case Polly_Liv_Norwegian_Female
case Polly_Jacek_Polish_Male
case Polly_Jan_Polish_Female
case Polly_Ewa_Polish_Female
case Polly_Maja_Polish_Female
case Polly_Ricardo_Portuguese_Male
case Polly_Vitoria_Portuguese_Female
case Polly_Cristiano_Portuguese_Male
case Polly_Inese_Portuguese_Female
case Polly_Carmen_Romanian_Female
case Polly_Maxim_Russian_Male
case Polly_Tatyana_Russian_Female
case Polly_Conchita_Spanish_Female
case Polly_Enrique_Spanish_Male
case Polly_Miguel_Latin_American_Male
case Polly_Penelope_Latina_American_Female
case Polly_Astrid_Swedish_Female
case Polly_Filiz_Turkish_Male
case Polly_Gwyneth_Welsh_Female
}
Swift QueueNodeWaitCallback DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /nodes/queue/wait-callback HTTP/1.1
Host: team.evovoice.io
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
waitMusic:
[
{
mode: Audio,
audioFile: String,
text: String,
textVoice: Man,
numTimes: 0
}
],
queueName: String,
accountId: String,
sessionId: String,
recordingReady: String,
recordCall: False,
recordedFile: String,
recordedFileUrl: String,
callSid: String,
accountSid: String,
from: String,
to: String,
callStatus: String,
apiVersion: String,
direction: String,
forwardedFrom: String,
callerName: String,
parentCallSid: String,
stirVerstat: String,
called: String,
calledZip: String,
calledCity: String,
calledState: String,
calledCountry: String,
caller: String,
callerCity: String,
callerState: String,
callerZip: String,
callerCountry: String,
fromCity: String,
fromState: String,
fromZip: String,
fromCountry: String,
toCity: String,
toState: String,
toZip: String,
toCountry: String,
messageSid: String,
smsId: String,
messagingServiceSid: String,
body: String,
numMedia: 0,
mediaContentType0: String,
mediaUrl0: String,
mediaContentType1: String,
mediaUrl1: String,
mediaContentType2: String,
mediaUrl2: String,
index: 0,
instanceSid: String,
eventType: String,
channelSid: String,
attributes: String,
clientIdentity: String,
mediaContentType: String,
mediaSid: String,
identity: String,
digits: String,
speechResult: String,
confidence: 0,
callDuration: 0,
recordingUrl: String,
recordingSid: String,
recordingDuration: 0,
recordingStatus: String,
transcriptionSid: String,
transcriptionText: String,
transcriptionUrl: String,
transcriptionStatus: String,
dialCallStatus: String,
dialCallSid: String,
dialCallDuration: 0,
dialBridged: False,
queueResult: String,
queueSid: String,
queueTime: 0,
conferenceSid: String,
friendlyName: String,
statusCallbackEvent: String,
muted: False,
hold: False,
endConferenceOnExit: False,
startConferenceOnEnter: False,
eventName: String,
assistantSid: String,
dialogueSid: String,
userIdentifier: String,
currentInput: String,
currentTask: String,
dialoguePayloadUrl: String,
memory: String,
channel: String,
faxSid: String,
faxStatus: String,
numPages: 0,
mediaUrl: String,
errorCode: String,
errorMessage: String
}
HTTP/1.1 200 OK Content-Type: text/jsv Content-Length: length (string)