| All Verbs | /nodes/live-answer/callback |
|---|
export class NodeParameterMap
{
[key:string] : NodeParameter;
public constructor(init?: Partial<NodeParameterMap>) { (Object as any).assign(this, init); }
}
export class LiveAnswerCallbackTranscriptMessage
{
public date: string;
public role: string;
public senderName: string;
public targetName: string;
public functionName: string;
public functionArgs: string;
public content: string;
public constructor(init?: Partial<LiveAnswerCallbackTranscriptMessage>) { (Object as any).assign(this, init); }
}
export class LiveAnswerCallbackAttachment
{
public fileName: string;
public contentType: string;
public uri: string;
public data: string;
public constructor(init?: Partial<LiveAnswerCallbackAttachment>) { (Object as any).assign(this, init); }
}
export class LiveAnswerCallback
{
public sessionId: string;
public flowId: string;
public nodeId: string;
public clientId: string;
public conversationId: string;
public aiMinutes: number;
public from: string;
public to: string;
public transcript: LiveAnswerCallbackTranscriptMessage[];
public startDate: string;
public endDate: string;
public attachments: LiveAnswerCallbackAttachment[];
public completed: string;
public callRecordingUrl: string;
public constructor(init?: Partial<LiveAnswerCallback>) { (Object as any).assign(this, init); }
}
export interface IVirtualDirectory
{
}
export interface IVirtualPathProvider
{
rootDirectory: IVirtualDirectory;
virtualPathSeparator: string;
realPathSeparator: string;
}
export interface IVirtualFile
{
virtualPathProvider: IVirtualPathProvider;
extension: string;
length: number;
}
// @Flags()
export enum CacheControl
{
None = 0,
Public = 1,
Private = 2,
MustRevalidate = 4,
NoCache = 8,
NoStore = 16,
NoTransform = 32,
ProxyRevalidate = 64,
}
export interface IContentTypeWriter
{
}
export interface IResponse
{
originalResponse: Object;
request: IRequest;
statusCode: number;
statusDescription: string;
contentType: string;
outputStream: string;
dto: Object;
useBufferedStream: boolean;
isClosed: boolean;
keepAlive: boolean;
hasStarted: boolean;
items: { [index:string]: Object; };
}
// @Flags()
export enum RequestAttributes
{
None = 0,
Localhost = 1,
LocalSubnet = 2,
External = 4,
Secure = 8,
InSecure = 16,
AnySecurityMode = 24,
HttpHead = 32,
HttpGet = 64,
HttpPost = 128,
HttpPut = 256,
HttpDelete = 512,
HttpPatch = 1024,
HttpOptions = 2048,
HttpOther = 4096,
AnyHttpMethod = 8160,
OneWay = 8192,
Reply = 16384,
AnyCallStyle = 24576,
Soap11 = 32768,
Soap12 = 65536,
Xml = 131072,
Json = 262144,
Jsv = 524288,
ProtoBuf = 1048576,
Csv = 2097152,
Html = 4194304,
Jsonl = 8388608,
MsgPack = 16777216,
FormatOther = 33554432,
AnyFormat = 67076096,
Http = 67108864,
MessageQueue = 134217728,
Tcp = 268435456,
Grpc = 536870912,
EndpointOther = 1073741824,
AnyEndpoint = 2080374784,
InProcess = -2147483648,
InternalNetworkAccess = -2147483645,
AnyNetworkAccessType = -2147483641,
Any = -1,
}
export interface IRequestPreferences
{
acceptsBrotli: boolean;
acceptsDeflate: boolean;
acceptsGzip: boolean;
}
export interface IHttpFile
{
name: string;
fileName: string;
contentLength: number;
contentType: string;
inputStream: string;
}
export interface IRequest
{
originalRequest: Object;
response: IResponse;
operationName: string;
verb: string;
requestAttributes: RequestAttributes;
requestPreferences: IRequestPreferences;
dto: Object;
contentType: string;
isLocal: boolean;
userAgent: string;
cookies: { [index:string]: Cookie; };
responseContentType: string;
hasExplicitResponseContentType: boolean;
items: { [index:string]: Object; };
headers: NameValueCollection;
queryString: NameValueCollection;
formData: NameValueCollection;
useBufferedStream: boolean;
rawUrl: string;
absoluteUri: string;
userHostAddress: string;
remoteIp: string;
authorization: string;
isSecureConnection: boolean;
acceptTypes: string[];
pathInfo: string;
originalPathInfo: string;
inputStream: string;
contentLength: number;
files: IHttpFile[];
urlReferrer: string;
}
export class HttpResult
{
public responseText: string;
public responseStream: string;
public fileInfo: FileInfo;
public virtualFile: IVirtualFile;
public contentType: string;
public headers: { [index:string]: string; };
public cookies: Cookie[];
public eTag: string;
public age?: string;
public maxAge?: string;
public expires?: string;
public lastModified?: string;
public cacheControl: CacheControl;
public resultScope: Func<IDisposable>;
public allowsPartialResponse: boolean;
public options: { [index:string]: string; };
public status: number;
public statusCode: HttpStatusCode;
public statusDescription: string;
public response: Object;
public responseFilter: IContentTypeWriter;
public requestContext: IRequest;
public view: string;
public template: string;
public paddingLength: number;
public isPartialRequest: boolean;
public constructor(init?: Partial<HttpResult>) { (Object as any).assign(this, init); }
}
TypeScript LiveAnswerCallback DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /nodes/live-answer/callback HTTP/1.1
Host: evovoice.io
Accept: application/xml
Content-Type: application/xml
Content-Length: length
<LiveAnswerCallback xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Voice.Api.Nodes.AI">
<AIMinutes>0</AIMinutes>
<Attachments>
<LiveAnswerCallbackAttachment>
<ContentType>String</ContentType>
<Data>String</Data>
<FileName>String</FileName>
<Uri>String</Uri>
</LiveAnswerCallbackAttachment>
</Attachments>
<CallRecordingUrl>String</CallRecordingUrl>
<ClientId>String</ClientId>
<Completed>String</Completed>
<ConversationId>String</ConversationId>
<EndDate>0001-01-01T00:00:00</EndDate>
<FlowId>String</FlowId>
<From>String</From>
<NodeId>String</NodeId>
<SessionId>String</SessionId>
<StartDate>0001-01-01T00:00:00</StartDate>
<To>String</To>
<Transcript>
<LiveAnswerCallbackTranscriptMessage>
<Content>String</Content>
<Date>0001-01-01T00:00:00</Date>
<FunctionArgs>String</FunctionArgs>
<FunctionName>String</FunctionName>
<Role>String</Role>
<SenderName>String</SenderName>
<TargetName>String</TargetName>
</LiveAnswerCallbackTranscriptMessage>
</Transcript>
</LiveAnswerCallback>
HTTP/1.1 200 OK Content-Type: application/xml Content-Length: length <CustomHttpResult xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.servicestack.net/types" />