Evo Voice

<back to all web services

QueueNodeWaitCallback

The following routes are available for this service:
All Verbs/nodes/queue/wait-callback
import 'package:servicestack/servicestack.dart';

abstract class TwilioRequestBase implements IPost
{
    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;
    int? numMedia;
    String? mediaContentType0;
    String? mediaUrl0;
    String? mediaContentType1;
    String? mediaUrl1;
    String? mediaContentType2;
    String? mediaUrl2;
    int? index;
    String? instanceSid;
    String? eventType;
    String? channelSid;
    String? attributes;
    String? clientIdentity;
    String? mediaContentType;
    String? mediaSid;
    String? identity;
    String? digits;
    String? speechResult;
    double? confidence;
    int? callDuration;
    String? recordingUrl;
    String? recordingSid;
    int? recordingDuration;
    String? recordingStatus;
    String? transcriptionSid;
    String? transcriptionText;
    String? transcriptionUrl;
    String? transcriptionStatus;
    String? dialCallStatus;
    String? dialCallSid;
    double? dialCallDuration;
    bool? dialBridged;
    String? queueResult;
    String? queueSid;
    int? queueTime;
    String? conferenceSid;
    String? friendlyName;
    String? statusCallbackEvent;
    bool? muted;
    bool? hold;
    bool? endConferenceOnExit;
    bool? startConferenceOnEnter;
    String? eventName;
    String? assistantSid;
    String? dialogueSid;
    String? userIdentifier;
    String? currentInput;
    String? currentTask;
    String? dialoguePayloadUrl;
    String? memory;
    String? channel;
    String? faxSid;
    String? faxStatus;
    int? numPages;
    String? mediaUrl;
    String? errorCode;
    String? errorMessage;

    TwilioRequestBase({this.callSid,this.accountSid,this.from,this.to,this.callStatus,this.apiVersion,this.direction,this.forwardedFrom,this.callerName,this.parentCallSid,this.stirVerstat,this.called,this.calledZip,this.calledCity,this.calledState,this.calledCountry,this.caller,this.callerCity,this.callerState,this.callerZip,this.callerCountry,this.fromCity,this.fromState,this.fromZip,this.fromCountry,this.toCity,this.toState,this.toZip,this.toCountry,this.messageSid,this.smsId,this.messagingServiceSid,this.body,this.numMedia,this.mediaContentType0,this.mediaUrl0,this.mediaContentType1,this.mediaUrl1,this.mediaContentType2,this.mediaUrl2,this.index,this.instanceSid,this.eventType,this.channelSid,this.attributes,this.clientIdentity,this.mediaContentType,this.mediaSid,this.identity,this.digits,this.speechResult,this.confidence,this.callDuration,this.recordingUrl,this.recordingSid,this.recordingDuration,this.recordingStatus,this.transcriptionSid,this.transcriptionText,this.transcriptionUrl,this.transcriptionStatus,this.dialCallStatus,this.dialCallSid,this.dialCallDuration,this.dialBridged,this.queueResult,this.queueSid,this.queueTime,this.conferenceSid,this.friendlyName,this.statusCallbackEvent,this.muted,this.hold,this.endConferenceOnExit,this.startConferenceOnEnter,this.eventName,this.assistantSid,this.dialogueSid,this.userIdentifier,this.currentInput,this.currentTask,this.dialoguePayloadUrl,this.memory,this.channel,this.faxSid,this.faxStatus,this.numPages,this.mediaUrl,this.errorCode,this.errorMessage});
    TwilioRequestBase.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        callSid = json['callSid'];
        accountSid = json['accountSid'];
        from = json['from'];
        to = json['to'];
        callStatus = json['callStatus'];
        apiVersion = json['apiVersion'];
        direction = json['direction'];
        forwardedFrom = json['forwardedFrom'];
        callerName = json['callerName'];
        parentCallSid = json['parentCallSid'];
        stirVerstat = json['stirVerstat'];
        called = json['called'];
        calledZip = json['calledZip'];
        calledCity = json['calledCity'];
        calledState = json['calledState'];
        calledCountry = json['calledCountry'];
        caller = json['caller'];
        callerCity = json['callerCity'];
        callerState = json['callerState'];
        callerZip = json['callerZip'];
        callerCountry = json['callerCountry'];
        fromCity = json['fromCity'];
        fromState = json['fromState'];
        fromZip = json['fromZip'];
        fromCountry = json['fromCountry'];
        toCity = json['toCity'];
        toState = json['toState'];
        toZip = json['toZip'];
        toCountry = json['toCountry'];
        messageSid = json['messageSid'];
        smsId = json['smsId'];
        messagingServiceSid = json['messagingServiceSid'];
        body = json['body'];
        numMedia = json['numMedia'];
        mediaContentType0 = json['mediaContentType0'];
        mediaUrl0 = json['mediaUrl0'];
        mediaContentType1 = json['mediaContentType1'];
        mediaUrl1 = json['mediaUrl1'];
        mediaContentType2 = json['mediaContentType2'];
        mediaUrl2 = json['mediaUrl2'];
        index = json['index'];
        instanceSid = json['instanceSid'];
        eventType = json['eventType'];
        channelSid = json['channelSid'];
        attributes = json['attributes'];
        clientIdentity = json['clientIdentity'];
        mediaContentType = json['mediaContentType'];
        mediaSid = json['mediaSid'];
        identity = json['identity'];
        digits = json['digits'];
        speechResult = json['speechResult'];
        confidence = JsonConverters.toDouble(json['confidence']);
        callDuration = json['callDuration'];
        recordingUrl = json['recordingUrl'];
        recordingSid = json['recordingSid'];
        recordingDuration = json['recordingDuration'];
        recordingStatus = json['recordingStatus'];
        transcriptionSid = json['transcriptionSid'];
        transcriptionText = json['transcriptionText'];
        transcriptionUrl = json['transcriptionUrl'];
        transcriptionStatus = json['transcriptionStatus'];
        dialCallStatus = json['dialCallStatus'];
        dialCallSid = json['dialCallSid'];
        dialCallDuration = JsonConverters.toDouble(json['dialCallDuration']);
        dialBridged = json['dialBridged'];
        queueResult = json['queueResult'];
        queueSid = json['queueSid'];
        queueTime = json['queueTime'];
        conferenceSid = json['conferenceSid'];
        friendlyName = json['friendlyName'];
        statusCallbackEvent = json['statusCallbackEvent'];
        muted = json['muted'];
        hold = json['hold'];
        endConferenceOnExit = json['endConferenceOnExit'];
        startConferenceOnEnter = json['startConferenceOnEnter'];
        eventName = json['eventName'];
        assistantSid = json['assistantSid'];
        dialogueSid = json['dialogueSid'];
        userIdentifier = json['userIdentifier'];
        currentInput = json['currentInput'];
        currentTask = json['currentTask'];
        dialoguePayloadUrl = json['dialoguePayloadUrl'];
        memory = json['memory'];
        channel = json['channel'];
        faxSid = json['faxSid'];
        faxStatus = json['faxStatus'];
        numPages = json['numPages'];
        mediaUrl = json['mediaUrl'];
        errorCode = json['errorCode'];
        errorMessage = json['errorMessage'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'callSid': callSid,
        'accountSid': accountSid,
        'from': from,
        'to': to,
        'callStatus': callStatus,
        'apiVersion': apiVersion,
        'direction': direction,
        'forwardedFrom': forwardedFrom,
        'callerName': callerName,
        'parentCallSid': parentCallSid,
        'stirVerstat': stirVerstat,
        'called': called,
        'calledZip': calledZip,
        'calledCity': calledCity,
        'calledState': calledState,
        'calledCountry': calledCountry,
        'caller': caller,
        'callerCity': callerCity,
        'callerState': callerState,
        'callerZip': callerZip,
        'callerCountry': callerCountry,
        'fromCity': fromCity,
        'fromState': fromState,
        'fromZip': fromZip,
        'fromCountry': fromCountry,
        'toCity': toCity,
        'toState': toState,
        'toZip': toZip,
        'toCountry': toCountry,
        'messageSid': messageSid,
        'smsId': smsId,
        'messagingServiceSid': messagingServiceSid,
        'body': body,
        'numMedia': numMedia,
        'mediaContentType0': mediaContentType0,
        'mediaUrl0': mediaUrl0,
        'mediaContentType1': mediaContentType1,
        'mediaUrl1': mediaUrl1,
        'mediaContentType2': mediaContentType2,
        'mediaUrl2': mediaUrl2,
        'index': index,
        'instanceSid': instanceSid,
        'eventType': eventType,
        'channelSid': channelSid,
        'attributes': attributes,
        'clientIdentity': clientIdentity,
        'mediaContentType': mediaContentType,
        'mediaSid': mediaSid,
        'identity': identity,
        'digits': digits,
        'speechResult': speechResult,
        'confidence': confidence,
        'callDuration': callDuration,
        'recordingUrl': recordingUrl,
        'recordingSid': recordingSid,
        'recordingDuration': recordingDuration,
        'recordingStatus': recordingStatus,
        'transcriptionSid': transcriptionSid,
        'transcriptionText': transcriptionText,
        'transcriptionUrl': transcriptionUrl,
        'transcriptionStatus': transcriptionStatus,
        'dialCallStatus': dialCallStatus,
        'dialCallSid': dialCallSid,
        'dialCallDuration': dialCallDuration,
        'dialBridged': dialBridged,
        'queueResult': queueResult,
        'queueSid': queueSid,
        'queueTime': queueTime,
        'conferenceSid': conferenceSid,
        'friendlyName': friendlyName,
        'statusCallbackEvent': statusCallbackEvent,
        'muted': muted,
        'hold': hold,
        'endConferenceOnExit': endConferenceOnExit,
        'startConferenceOnEnter': startConferenceOnEnter,
        'eventName': eventName,
        'assistantSid': assistantSid,
        'dialogueSid': dialogueSid,
        'userIdentifier': userIdentifier,
        'currentInput': currentInput,
        'currentTask': currentTask,
        'dialoguePayloadUrl': dialoguePayloadUrl,
        'memory': memory,
        'channel': channel,
        'faxSid': faxSid,
        'faxStatus': faxStatus,
        'numPages': numPages,
        'mediaUrl': mediaUrl,
        'errorCode': errorCode,
        'errorMessage': errorMessage
    };

    getTypeName() => "TwilioRequestBase";
    TypeContext? context = _ctx;
}

enum QueueWaitMusicModes
{
    Audio,
    Text,
}

enum SayVoices
{
    Man,
    Woman,
    Polly_Mads_Danish_Male,
    Polly_Naja_Danish_Female,
    Polly_Lotte_Dutch_Female,
    Polly_Ruben_Dutch_Male,
    Polly_Nicole_Australian_Female,
    Polly_Russell_Australian_Male,
    Polly_Amy_British_Female,
    Polly_Brian_British_Male,
    Polly_Emma_British_Female,
    Polly_Raveena_Indian_Female,
    Polly_Ivy_US_Female,
    Polly_Joanna_US_Female,
    Polly_Joey_US_Male,
    Polly_Justin_US_Male,
    Polly_Kendra_US_Female,
    Polly_Kimberly_US_Female,
    Polly_Matthew_US_Male,
    Polly_Salli_US_Female,
    Polly_Geraint_Welsh_Male,
    Polly_Celine_French_Female,
    Polly_Mathieu_French_Male,
    Polly_Chantal_French_Canadian_Female,
    Polly_Hans_German_Male,
    Polly_Marlene_German_Female,
    Polly_Vicki_German_Female,
    Polly_Dora_Iceland_Female,
    Polly_Karl_Iceland_Male,
    Polly_Carla_Italian_Female,
    Polly_Giorgio_Italian_Male,
    Polly_Mizuki_Japanese_Female,
    Polly_Takumi_Japanese_Male,
    Polly_Liv_Norwegian_Female,
    Polly_Jacek_Polish_Male,
    Polly_Jan_Polish_Female,
    Polly_Ewa_Polish_Female,
    Polly_Maja_Polish_Female,
    Polly_Ricardo_Portuguese_Male,
    Polly_Vitoria_Portuguese_Female,
    Polly_Cristiano_Portuguese_Male,
    Polly_Inese_Portuguese_Female,
    Polly_Carmen_Romanian_Female,
    Polly_Maxim_Russian_Male,
    Polly_Tatyana_Russian_Female,
    Polly_Conchita_Spanish_Female,
    Polly_Enrique_Spanish_Male,
    Polly_Miguel_Latin_American_Male,
    Polly_Penelope_Latina_American_Female,
    Polly_Astrid_Swedish_Female,
    Polly_Filiz_Turkish_Male,
    Polly_Gwyneth_Welsh_Female,
}

class QueueWaitMusic implements IConvertible
{
    QueueWaitMusicModes? mode;
    String? audioFile;
    String? text;
    SayVoices? textVoice;
    int? numTimes;

    QueueWaitMusic({this.mode,this.audioFile,this.text,this.textVoice,this.numTimes});
    QueueWaitMusic.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        mode = JsonConverters.fromJson(json['mode'],'QueueWaitMusicModes',context!);
        audioFile = json['audioFile'];
        text = json['text'];
        textVoice = JsonConverters.fromJson(json['textVoice'],'SayVoices',context!);
        numTimes = json['numTimes'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'mode': JsonConverters.toJson(mode,'QueueWaitMusicModes',context!),
        'audioFile': audioFile,
        'text': text,
        'textVoice': JsonConverters.toJson(textVoice,'SayVoices',context!),
        'numTimes': numTimes
    };

    getTypeName() => "QueueWaitMusic";
    TypeContext? context = _ctx;
}

class QueueNodeWaitCallback extends TwilioRequestBase implements IConvertible
{
    List<QueueWaitMusic>? waitMusic;
    String? queueName;
    String? accountId;
    String? sessionId;
    String? recordingReady;
    bool? recordCall;
    String? recordedFile;
    String? recordedFileUrl;

    QueueNodeWaitCallback({this.waitMusic,this.queueName,this.accountId,this.sessionId,this.recordingReady,this.recordCall,this.recordedFile,this.recordedFileUrl});
    QueueNodeWaitCallback.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        waitMusic = JsonConverters.fromJson(json['waitMusic'],'List<QueueWaitMusic>',context!);
        queueName = json['queueName'];
        accountId = json['accountId'];
        sessionId = json['sessionId'];
        recordingReady = json['recordingReady'];
        recordCall = json['recordCall'];
        recordedFile = json['recordedFile'];
        recordedFileUrl = json['recordedFileUrl'];
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'waitMusic': JsonConverters.toJson(waitMusic,'List<QueueWaitMusic>',context!),
        'queueName': queueName,
        'accountId': accountId,
        'sessionId': sessionId,
        'recordingReady': recordingReady,
        'recordCall': recordCall,
        'recordedFile': recordedFile,
        'recordedFileUrl': recordedFileUrl
    });

    getTypeName() => "QueueNodeWaitCallback";
    TypeContext? context = _ctx;
}

TypeContext _ctx = TypeContext(library: 'evovoice.io', types: <String, TypeInfo> {
    'TwilioRequestBase': TypeInfo(TypeOf.AbstractClass),
    'QueueWaitMusicModes': TypeInfo(TypeOf.Enum, enumValues:QueueWaitMusicModes.values),
    'SayVoices': TypeInfo(TypeOf.Enum, enumValues:SayVoices.values),
    'QueueWaitMusic': TypeInfo(TypeOf.Class, create:() => QueueWaitMusic()),
    'QueueNodeWaitCallback': TypeInfo(TypeOf.Class, create:() => QueueNodeWaitCallback()),
    'List<QueueWaitMusic>': TypeInfo(TypeOf.Class, create:() => <QueueWaitMusic>[]),
});

Dart QueueNodeWaitCallback 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.

POST /nodes/queue/wait-callback HTTP/1.1 
Host: 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)