Evo Voice

<back to all web services

QueueNodeWaitCallback

The following routes are available for this service:
All Verbs/nodes/queue/wait-callback
import datetime
import decimal
from marshmallow.fields import *
from servicestack import *
from typing import *
from dataclasses import dataclass, field
from dataclasses_json import dataclass_json, LetterCase, Undefined, config
from enum import Enum, IntEnum


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class TwilioRequestBase(IReturn[str], IPost):
    call_sid: Optional[str] = None
    account_sid: Optional[str] = None
    from_: Optional[str] = field(metadata=config(field_name='from'), default=None)
    to: Optional[str] = None
    call_status: Optional[str] = None
    api_version: Optional[str] = None
    direction: Optional[str] = None
    forwarded_from: Optional[str] = None
    caller_name: Optional[str] = None
    parent_call_sid: Optional[str] = None
    stir_verstat: Optional[str] = None
    called: Optional[str] = None
    called_zip: Optional[str] = None
    called_city: Optional[str] = None
    called_state: Optional[str] = None
    called_country: Optional[str] = None
    caller: Optional[str] = None
    caller_city: Optional[str] = None
    caller_state: Optional[str] = None
    caller_zip: Optional[str] = None
    caller_country: Optional[str] = None
    from_city: Optional[str] = None
    from_state: Optional[str] = None
    from_zip: Optional[str] = None
    from_country: Optional[str] = None
    to_city: Optional[str] = None
    to_state: Optional[str] = None
    to_zip: Optional[str] = None
    to_country: Optional[str] = None
    message_sid: Optional[str] = None
    sms_id: Optional[str] = None
    messaging_service_sid: Optional[str] = None
    body: Optional[str] = None
    num_media: Optional[int] = None
    media_content_type0: Optional[str] = None
    media_url0: Optional[str] = None
    media_content_type1: Optional[str] = None
    media_url1: Optional[str] = None
    media_content_type2: Optional[str] = None
    media_url2: Optional[str] = None
    index: Optional[int] = None
    instance_sid: Optional[str] = None
    event_type: Optional[str] = None
    channel_sid: Optional[str] = None
    attributes: Optional[str] = None
    client_identity: Optional[str] = None
    media_content_type: Optional[str] = None
    media_sid: Optional[str] = None
    identity: Optional[str] = None
    digits: Optional[str] = None
    speech_result: Optional[str] = None
    confidence: Optional[float] = None
    call_duration: Optional[int] = None
    recording_url: Optional[str] = None
    recording_sid: Optional[str] = None
    recording_duration: Optional[int] = None
    recording_status: Optional[str] = None
    transcription_sid: Optional[str] = None
    transcription_text: Optional[str] = None
    transcription_url: Optional[str] = None
    transcription_status: Optional[str] = None
    dial_call_status: Optional[str] = None
    dial_call_sid: Optional[str] = None
    dial_call_duration: Optional[float] = None
    dial_bridged: Optional[bool] = None
    queue_result: Optional[str] = None
    queue_sid: Optional[str] = None
    queue_time: Optional[int] = None
    conference_sid: Optional[str] = None
    friendly_name: Optional[str] = None
    status_callback_event: Optional[str] = None
    muted: Optional[bool] = None
    hold: Optional[bool] = None
    end_conference_on_exit: Optional[bool] = None
    start_conference_on_enter: Optional[bool] = None
    event_name: Optional[str] = None
    assistant_sid: Optional[str] = None
    dialogue_sid: Optional[str] = None
    user_identifier: Optional[str] = None
    current_input: Optional[str] = None
    current_task: Optional[str] = None
    dialogue_payload_url: Optional[str] = None
    memory: Optional[str] = None
    channel: Optional[str] = None
    fax_sid: Optional[str] = None
    fax_status: Optional[str] = None
    num_pages: Optional[int] = None
    media_url: Optional[str] = None
    error_code: Optional[str] = None
    error_message: Optional[str] = None
    @staticmethod
    def response_type(): return str


class QueueWaitMusicModes(str, Enum):
    AUDIO = 'Audio'
    TEXT = 'Text'


class SayVoices(str, Enum):
    MAN = 'Man'
    WOMAN = 'Woman'
    POLLY__MADS__DANISH__MALE = 'Polly_Mads_Danish_Male'
    POLLY__NAJA__DANISH__FEMALE = 'Polly_Naja_Danish_Female'
    POLLY__LOTTE__DUTCH__FEMALE = 'Polly_Lotte_Dutch_Female'
    POLLY__RUBEN__DUTCH__MALE = 'Polly_Ruben_Dutch_Male'
    POLLY__NICOLE__AUSTRALIAN__FEMALE = 'Polly_Nicole_Australian_Female'
    POLLY__RUSSELL__AUSTRALIAN__MALE = 'Polly_Russell_Australian_Male'
    POLLY__AMY__BRITISH__FEMALE = 'Polly_Amy_British_Female'
    POLLY__BRIAN__BRITISH__MALE = 'Polly_Brian_British_Male'
    POLLY__EMMA__BRITISH__FEMALE = 'Polly_Emma_British_Female'
    POLLY__RAVEENA__INDIAN__FEMALE = 'Polly_Raveena_Indian_Female'
    POLLY__IVY__U_S__FEMALE = 'Polly_Ivy_US_Female'
    POLLY__JOANNA__U_S__FEMALE = 'Polly_Joanna_US_Female'
    POLLY__JOEY__U_S__MALE = 'Polly_Joey_US_Male'
    POLLY__JUSTIN__U_S__MALE = 'Polly_Justin_US_Male'
    POLLY__KENDRA__U_S__FEMALE = 'Polly_Kendra_US_Female'
    POLLY__KIMBERLY__U_S__FEMALE = 'Polly_Kimberly_US_Female'
    POLLY__MATTHEW__U_S__MALE = 'Polly_Matthew_US_Male'
    POLLY__SALLI__U_S__FEMALE = 'Polly_Salli_US_Female'
    POLLY__GERAINT__WELSH__MALE = 'Polly_Geraint_Welsh_Male'
    POLLY__CELINE__FRENCH__FEMALE = 'Polly_Celine_French_Female'
    POLLY__MATHIEU__FRENCH__MALE = 'Polly_Mathieu_French_Male'
    POLLY__CHANTAL__FRENCH__CANADIAN__FEMALE = 'Polly_Chantal_French_Canadian_Female'
    POLLY__HANS__GERMAN__MALE = 'Polly_Hans_German_Male'
    POLLY__MARLENE__GERMAN__FEMALE = 'Polly_Marlene_German_Female'
    POLLY__VICKI__GERMAN__FEMALE = 'Polly_Vicki_German_Female'
    POLLY__DORA__ICELAND__FEMALE = 'Polly_Dora_Iceland_Female'
    POLLY__KARL__ICELAND__MALE = 'Polly_Karl_Iceland_Male'
    POLLY__CARLA__ITALIAN__FEMALE = 'Polly_Carla_Italian_Female'
    POLLY__GIORGIO__ITALIAN__MALE = 'Polly_Giorgio_Italian_Male'
    POLLY__MIZUKI__JAPANESE__FEMALE = 'Polly_Mizuki_Japanese_Female'
    POLLY__TAKUMI__JAPANESE__MALE = 'Polly_Takumi_Japanese_Male'
    POLLY__LIV__NORWEGIAN__FEMALE = 'Polly_Liv_Norwegian_Female'
    POLLY__JACEK__POLISH__MALE = 'Polly_Jacek_Polish_Male'
    POLLY__JAN__POLISH__FEMALE = 'Polly_Jan_Polish_Female'
    POLLY__EWA__POLISH__FEMALE = 'Polly_Ewa_Polish_Female'
    POLLY__MAJA__POLISH__FEMALE = 'Polly_Maja_Polish_Female'
    POLLY__RICARDO__PORTUGUESE__MALE = 'Polly_Ricardo_Portuguese_Male'
    POLLY__VITORIA__PORTUGUESE__FEMALE = 'Polly_Vitoria_Portuguese_Female'
    POLLY__CRISTIANO__PORTUGUESE__MALE = 'Polly_Cristiano_Portuguese_Male'
    POLLY__INESE__PORTUGUESE__FEMALE = 'Polly_Inese_Portuguese_Female'
    POLLY__CARMEN__ROMANIAN__FEMALE = 'Polly_Carmen_Romanian_Female'
    POLLY__MAXIM__RUSSIAN__MALE = 'Polly_Maxim_Russian_Male'
    POLLY__TATYANA__RUSSIAN__FEMALE = 'Polly_Tatyana_Russian_Female'
    POLLY__CONCHITA__SPANISH__FEMALE = 'Polly_Conchita_Spanish_Female'
    POLLY__ENRIQUE__SPANISH__MALE = 'Polly_Enrique_Spanish_Male'
    POLLY__MIGUEL__LATIN__AMERICAN__MALE = 'Polly_Miguel_Latin_American_Male'
    POLLY__PENELOPE__LATINA__AMERICAN__FEMALE = 'Polly_Penelope_Latina_American_Female'
    POLLY__ASTRID__SWEDISH__FEMALE = 'Polly_Astrid_Swedish_Female'
    POLLY__FILIZ__TURKISH__MALE = 'Polly_Filiz_Turkish_Male'
    POLLY__GWYNETH__WELSH__FEMALE = 'Polly_Gwyneth_Welsh_Female'


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class QueueWaitMusic:
    mode: Optional[QueueWaitMusicModes] = None
    audio_file: Optional[str] = None
    text: Optional[str] = None
    text_voice: Optional[SayVoices] = None
    num_times: Optional[int] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class QueueNodeWaitCallback(TwilioRequestBase):
    wait_music: Optional[List[QueueWaitMusic]] = None
    queue_name: Optional[str] = None
    account_id: Optional[str] = None
    session_id: Optional[str] = None
    recording_ready: Optional[str] = None
    record_call: Optional[bool] = None
    recorded_file: Optional[str] = None
    recorded_file_url: Optional[str] = None

Python 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)