Evo Voice

<back to all web services

LiveAnswerCallback

The following routes are available for this service:
All Verbs/nodes/live-answer/callback
namespace ServiceStack

open System
open System.IO
open System.Collections
open System.Collections.Generic
open System.Runtime.Serialization
open ServiceStack
open ServiceStack.DataAnnotations

    [<AllowNullLiteral>]
    type LiveAnswerCallbackTranscriptMessage() = 
        member val Date:DateTime = new DateTime() with get,set
        member val Role:String = null with get,set
        member val SenderName:String = null with get,set
        member val TargetName:String = null with get,set
        member val FunctionName:String = null with get,set
        member val FunctionArgs:String = null with get,set
        member val Content:String = null with get,set

    [<AllowNullLiteral>]
    type LiveAnswerCallbackAttachment() = 
        member val FileName:String = null with get,set
        member val ContentType:String = null with get,set
        member val Uri:String = null with get,set
        member val Data:String = null with get,set

    [<AllowNullLiteral>]
    type LiveAnswerCallback() = 
        member val SessionId:String = null with get,set
        member val FlowId:String = null with get,set
        member val NodeId:String = null with get,set
        member val ClientId:String = null with get,set
        member val ConversationId:String = null with get,set
        member val AIMinutes:Int32 = new Int32() with get,set
        member val From:String = null with get,set
        member val To:String = null with get,set
        member val Transcript:ResizeArray<LiveAnswerCallbackTranscriptMessage> = null with get,set
        member val StartDate:DateTime = new DateTime() with get,set
        member val EndDate:DateTime = new DateTime() with get,set
        member val Attachments:ResizeArray<LiveAnswerCallbackAttachment> = null with get,set
        member val Completed:String = null with get,set
        member val CallRecordingUrl:String = null with get,set

    [<AllowNullLiteral>]
    type IVirtualDirectory = 
        interface end

    [<AllowNullLiteral>]
    type IVirtualPathProvider = 
        abstract RootDirectory:IVirtualDirectory with get,set
        abstract VirtualPathSeparator:String with get,set
        abstract RealPathSeparator:String with get,set

    [<AllowNullLiteral>]
    type IVirtualFile = 
        abstract VirtualPathProvider:IVirtualPathProvider with get,set
        abstract Extension:String with get,set
        abstract Length:Int64 with get,set

    [<Flags>]
    type CacheControl =
        | None = 0
        | Public = 1
        | Private = 2
        | MustRevalidate = 4
        | NoCache = 8
        | NoStore = 16
        | NoTransform = 32
        | ProxyRevalidate = 64

    [<AllowNullLiteral>]
    type IContentTypeWriter = 
        interface end

    [<AllowNullLiteral>]
    type IResponse = 
        abstract OriginalResponse:Object with get,set
        abstract Request:IRequest with get,set
        abstract StatusCode:Int32 with get,set
        abstract StatusDescription:String with get,set
        abstract ContentType:String with get,set
        abstract OutputStream:Stream with get,set
        abstract Dto:Object with get,set
        abstract UseBufferedStream:Boolean with get,set
        abstract IsClosed:Boolean with get,set
        abstract KeepAlive:Boolean with get,set
        abstract HasStarted:Boolean with get,set
        abstract Items:Dictionary<String, Object> with get,set

    [<Flags>]
    type 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

    [<AllowNullLiteral>]
    type IRequestPreferences = 
        abstract AcceptsBrotli:Boolean with get,set
        abstract AcceptsDeflate:Boolean with get,set
        abstract AcceptsGzip:Boolean with get,set

    [<AllowNullLiteral>]
    type IHttpFile = 
        abstract Name:String with get,set
        abstract FileName:String with get,set
        abstract ContentLength:Int64 with get,set
        abstract ContentType:String with get,set
        abstract InputStream:Stream with get,set

    [<AllowNullLiteral>]
    type IRequest = 
        abstract OriginalRequest:Object with get,set
        abstract Response:IResponse with get,set
        abstract OperationName:String with get,set
        abstract Verb:String with get,set
        abstract RequestAttributes:RequestAttributes with get,set
        abstract RequestPreferences:IRequestPreferences with get,set
        abstract Dto:Object with get,set
        abstract ContentType:String with get,set
        abstract IsLocal:Boolean with get,set
        abstract UserAgent:String with get,set
        abstract Cookies:IDictionary<String, Cookie> with get,set
        abstract ResponseContentType:String with get,set
        abstract HasExplicitResponseContentType:Boolean with get,set
        abstract Items:Dictionary<String, Object> with get,set
        abstract Headers:NameValueCollection with get,set
        abstract QueryString:NameValueCollection with get,set
        abstract FormData:NameValueCollection with get,set
        abstract UseBufferedStream:Boolean with get,set
        abstract RawUrl:String with get,set
        abstract AbsoluteUri:String with get,set
        abstract UserHostAddress:String with get,set
        abstract RemoteIp:String with get,set
        abstract Authorization:String with get,set
        abstract IsSecureConnection:Boolean with get,set
        abstract AcceptTypes:String[] with get,set
        abstract PathInfo:String with get,set
        abstract OriginalPathInfo:String with get,set
        abstract InputStream:Stream with get,set
        abstract ContentLength:Int64 with get,set
        abstract Files:IHttpFile[] with get,set
        abstract UrlReferrer:Uri with get,set

    [<AllowNullLiteral>]
    type HttpResult() = 
        member val ResponseText:String = null with get,set
        member val ResponseStream:Stream = null with get,set
        member val FileInfo:FileInfo = null with get,set
        member val VirtualFile:IVirtualFile = null with get,set
        member val ContentType:String = null with get,set
        member val Headers:Dictionary<String, String> = null with get,set
        member val Cookies:ResizeArray<Cookie> = null with get,set
        member val ETag:String = null with get,set
        member val Age:Nullable<TimeSpan> = new Nullable<TimeSpan>() with get,set
        member val MaxAge:Nullable<TimeSpan> = new Nullable<TimeSpan>() with get,set
        member val Expires:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val LastModified:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val CacheControl:CacheControl = new CacheControl() with get,set
        member val ResultScope:Func<IDisposable> = null with get,set
        member val AllowsPartialResponse:Boolean = new Boolean() with get,set
        member val Options:IDictionary<String, String> = null with get,set
        member val Status:Int32 = new Int32() with get,set
        member val StatusCode:HttpStatusCode = new HttpStatusCode() with get,set
        member val StatusDescription:String = null with get,set
        member val Response:Object = null with get,set
        member val ResponseFilter:IContentTypeWriter = null with get,set
        member val RequestContext:IRequest = null with get,set
        member val View:String = null with get,set
        member val Template:String = null with get,set
        member val PaddingLength:Int32 = new Int32() with get,set
        member val IsPartialRequest:Boolean = new Boolean() with get,set

F# LiveAnswerCallback DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml

HTTP + 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" />