Evo Voice

<back to all web services

DialNodeCallback

The following routes are available for this service:
All Verbs/nodes/dial/callback
import Foundation
import ServiceStack

public class DialNodeCallback : TwilioRequestBase
{
    public var noAnswer:String?
    public var hangup:String?
    public var sessionId:String?
    public var version:Int?
    public var failed:String?
    public var busy:String?
    public var usageMetricKey:String?
    public var timeoutInSeconds:Double?

    required public init(){ super.init() }

    private enum CodingKeys : String, CodingKey {
        case noAnswer
        case hangup
        case sessionId
        case version
        case failed
        case busy
        case usageMetricKey
        case timeoutInSeconds
    }

    required public init(from decoder: Decoder) throws {
        try super.init(from: decoder)
        let container = try decoder.container(keyedBy: CodingKeys.self)
        noAnswer = try container.decodeIfPresent(String.self, forKey: .noAnswer)
        hangup = try container.decodeIfPresent(String.self, forKey: .hangup)
        sessionId = try container.decodeIfPresent(String.self, forKey: .sessionId)
        version = try container.decodeIfPresent(Int.self, forKey: .version)
        failed = try container.decodeIfPresent(String.self, forKey: .failed)
        busy = try container.decodeIfPresent(String.self, forKey: .busy)
        usageMetricKey = try container.decodeIfPresent(String.self, forKey: .usageMetricKey)
        timeoutInSeconds = try container.decodeIfPresent(Double.self, forKey: .timeoutInSeconds)
    }

    public override func encode(to encoder: Encoder) throws {
        try super.encode(to: encoder)
        var container = encoder.container(keyedBy: CodingKeys.self)
        if noAnswer != nil { try container.encode(noAnswer, forKey: .noAnswer) }
        if hangup != nil { try container.encode(hangup, forKey: .hangup) }
        if sessionId != nil { try container.encode(sessionId, forKey: .sessionId) }
        if version != nil { try container.encode(version, forKey: .version) }
        if failed != nil { try container.encode(failed, forKey: .failed) }
        if busy != nil { try container.encode(busy, forKey: .busy) }
        if usageMetricKey != nil { try container.encode(usageMetricKey, forKey: .usageMetricKey) }
        if timeoutInSeconds != nil { try container.encode(timeoutInSeconds, forKey: .timeoutInSeconds) }
    }
}

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(){}
}


Swift DialNodeCallback DTOs

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

To embed the response in a jsonp callback, append ?callback=myCallback

HTTP + JSON

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /nodes/dial/callback HTTP/1.1 
Host: evovoice.io 
Accept: application/json
Content-Type: application/json
Content-Length: length

{"noAnswer":"String","hangup":"String","sessionId":"String","version":0,"failed":"String","busy":"String","usageMetricKey":"String","timeoutInSeconds":0,"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: application/json
Content-Length: length

(string)