Evo Voice

<back to all web services

ListSessions

Retrieve a list of sessions

Requires Authentication
The following routes are available for this service:
GET/sessions
Imports System
Imports System.Collections
Imports System.Collections.Generic
Imports System.Runtime.Serialization
Imports ServiceStack
Imports ServiceStack.DataAnnotations
Imports Voice.Api.Sessions
Imports Voice.Api
Imports Voice.Api.Customers
Imports Voice.Api.Flows
Imports Voice.Api.Accounts

Namespace Global

    Namespace Voice.Api

        Public Partial Class EntityInfo
            '''<Summary>
            '''The ID of the object
            '''</Summary>
            <ApiMember(Description:="The ID of the object")>
            Public Overridable Property Id As String

            '''<Summary>
            '''The date the object was created
            '''</Summary>
            <ApiMember(Description:="The date the object was created")>
            Public Overridable Property DateCreated As String

            '''<Summary>
            '''The date the object was last modified
            '''</Summary>
            <ApiMember(Description:="The date the object was last modified")>
            Public Overridable Property DateLastModified As String

            '''<Summary>
            '''The user that created this object
            '''</Summary>
            <ApiMember(Description:="The user that created this object")>
            Public Overridable Property CreatedBy As String

            '''<Summary>
            '''The user that last modified this object
            '''</Summary>
            <ApiMember(Description:="The user that last modified this object")>
            Public Overridable Property LastModifiedBy As String
        End Class

        Public Partial Class ListRequest(Of T)
            Implements IGet
            Public Sub New()
                SpecificIds = New List(Of String)
            End Sub

            '''<Summary>
            '''The page of data to retrieve
            '''</Summary>
            <ApiMember(Description:="The page of data to retrieve")>
            Public Overridable Property Page As Integer

            '''<Summary>
            '''If you want all objects to be returned. This should be used with care
            '''</Summary>
            <ApiMember(Description:="If you want all objects to be returned. This should be used with care")>
            Public Overridable Property All As Boolean

            '''<Summary>
            '''The number per page to retrieve
            '''</Summary>
            <ApiMember(Description:="The number per page to retrieve")>
            Public Overridable Property CountPerPage As Integer

            '''<Summary>
            '''Specific IDs
            '''</Summary>
            <ApiMember(Description:="Specific IDs")>
            Public Overridable Property SpecificIds As List(Of String)

            '''<Summary>
            '''Specify a sort field
            '''</Summary>
            <ApiMember(Description:="Specify a sort field")>
            Public Overridable Property SortField As String

            '''<Summary>
            '''Specify a sort order
            '''</Summary>
            <ApiMember(Description:="Specify a sort order")>
            Public Overridable Property SortOrder As SortOrders

            '''<Summary>
            '''Disables total / page counts - improves performance. Returns only data. If there is no more data, Items will be empty array
            '''</Summary>
            <ApiMember(Description:="Disables total / page counts - improves performance. Returns only data. If there is no more data, Items will be empty array")>
            Public Overridable Property SimplifiedPaging As Boolean
        End Class

        Public Partial Class ListResponse(Of AccountInfo)
            Public Sub New()
                Items = New List(Of AccountInfo)
            End Sub

            '''<Summary>
            '''The items
            '''</Summary>
            <ApiMember(Description:="The items")>
            Public Overridable Property Items As List(Of AccountInfo)

            '''<Summary>
            '''The total number of items
            '''</Summary>
            <ApiMember(Description:="The total number of items")>
            Public Overridable Property TotalCount As Integer

            '''<Summary>
            '''The total number of pages
            '''</Summary>
            <ApiMember(Description:="The total number of pages")>
            Public Overridable Property TotalPages As Integer

            '''<Summary>
            '''Are there more pages of items? Used with simplified paging
            '''</Summary>
            <ApiMember(Description:="Are there more pages of items? Used with simplified paging")>
            Public Overridable Property HasMorePages As Boolean
        End Class

        Public Enum SortOrders
            Ascend
            Descend
        End Enum
    End Namespace

    Namespace Voice.Api.Accounts

        Public Partial Class AccountInfo
            Inherits EntityInfo
            Public Sub New()
                AncestorIds = New List(Of String)
            End Sub

            '''<Summary>
            '''The name of this account
            '''</Summary>
            <ApiMember(Description:="The name of this account")>
            Public Overridable Property Name As String

            '''<Summary>
            '''The ID of this account's parent
            '''</Summary>
            <ApiMember(Description:="The ID of this account's parent")>
            Public Overridable Property ParentAccountId As String

            '''<Summary>
            '''The twilio account SID
            '''</Summary>
            <ApiMember(Description:="The twilio account SID")>
            Public Overridable Property TwilioAccountSid As String

            '''<Summary>
            '''The ancestors of this account. Useful for breadcrumbs
            '''</Summary>
            <ApiMember(Description:="The ancestors of this account. Useful for breadcrumbs")>
            Public Overridable Property AncestorIds As List(Of String)

            '''<Summary>
            '''The max number of phone numbers this account can have
            '''</Summary>
            <ApiMember(Description:="The max number of phone numbers this account can have")>
            Public Overridable Property MaxPhoneNumbers As Integer

            '''<Summary>
            '''This account is BYOA
            '''</Summary>
            <ApiMember(Description:="This account is BYOA")>
            Public Overridable Property IsBYOA As Boolean

            '''<Summary>
            '''TrustHub Profile Sid
            '''</Summary>
            <ApiMember(Description:="TrustHub Profile Sid")>
            Public Overridable Property TrustHubProfileSid As String

            '''<Summary>
            '''The ID of the logo file
            '''</Summary>
            <ApiMember(Description:="The ID of the logo file")>
            Public Overridable Property LogoId As String

            '''<Summary>
            '''The URI of the logo file
            '''</Summary>
            <ApiMember(Description:="The URI of the logo file")>
            Public Overridable Property LogoUri As String

            '''<Summary>
            '''The billing settings for this account
            '''</Summary>
            <ApiMember(Description:="The billing settings for this account")>
            Public Overridable Property BillingSettings As BillingSettings
        End Class

        Public Partial Class BillingItem
            Public Overridable Property BaseCost As Double
            Public Overridable Property RawUnitMultiplier As Double
            Public Overridable Property UnitCost As Double
            Public Overridable Property Allowance As Integer
        End Class

        Public Partial Class BillingSettings
            Public Overridable Property Base As BillingItem
            Public Overridable Property LocalNumbers As BillingItem
            Public Overridable Property TollFreeNumbers As BillingItem
            Public Overridable Property InboundVoiceCalls As BillingItem
            Public Overridable Property OutboundVoiceCalls As BillingItem
            Public Overridable Property InboundFaxes As BillingItem
            Public Overridable Property OutboundFaxes As BillingItem
            Public Overridable Property InboundSmsMessages As BillingItem
            Public Overridable Property OutboundSmsMessages As BillingItem
        End Class
    End Namespace

    Namespace Voice.Api.Customers

        Public Partial Class CustomerBreadcrumb
            Public Overridable Property Id As String
            Public Overridable Property Name As String
        End Class
    End Namespace

    Namespace Voice.Api.Flows

        Public Enum FlowChannels
            Voice
            Chat
            Fax
        End Enum
    End Namespace

    Namespace Voice.Api.Sessions

        '''<Summary>
        '''Retrieve a list of sessions
        '''</Summary>
        <Api(Description:="Retrieve a list of sessions")>
        Public Partial Class ListSessions
            Inherits ListRequest(Of SessionInfo)
            Public Sub New()
                AccountIds = New List(Of String)
                CustomerIds = New List(Of String)
                EndpointIds = New List(Of String)
            End Sub

            '''<Summary>
            '''The account IDs for the sessions to retrieve
            '''</Summary>
            <ApiMember(Description:="The account IDs for the sessions to retrieve")>
            Public Overridable Property AccountIds As List(Of String)

            '''<Summary>
            '''Whether to search live or archived sessions
            '''</Summary>
            <ApiMember(Description:="Whether to search live or archived sessions")>
            Public Overridable Property SearchArchive As Boolean

            '''<Summary>
            '''The start date to retrieve usage records for (YYYY-MM-DD)
            '''</Summary>
            <ApiMember(Description:="The start date to retrieve usage records for (YYYY-MM-DD)")>
            Public Overridable Property StartDate As String

            '''<Summary>
            '''The end date to retrieve usage records for (YYYY-MM-DD)
            '''</Summary>
            <ApiMember(Description:="The end date to retrieve usage records for (YYYY-MM-DD)")>
            Public Overridable Property EndDate As String

            '''<Summary>
            '''The IDs of the customers whose sessions you want to retrieve
            '''</Summary>
            <ApiMember(Description:="The IDs of the customers whose sessions you want to retrieve")>
            Public Overridable Property CustomerIds As List(Of String)

            '''<Summary>
            '''The IDs of the endpoints whose sessions you want to retrieve
            '''</Summary>
            <ApiMember(Description:="The IDs of the endpoints whose sessions you want to retrieve")>
            Public Overridable Property EndpointIds As List(Of String)

            '''<Summary>
            '''Filter by the from  (this is a contains search)
            '''</Summary>
            <ApiMember(Description:="Filter by the from  (this is a contains search)")>
            Public Overridable Property From As String

            '''<Summary>
            '''Filter by the to  (this is a contains search)
            '''</Summary>
            <ApiMember(Description:="Filter by the to  (this is a contains search)")>
            Public Overridable Property To As String

            '''<Summary>
            '''Filter by text in the log
            '''</Summary>
            <ApiMember(Description:="Filter by text in the log")>
            Public Overridable Property Log As String

            '''<Summary>
            '''Filter by parent session ID
            '''</Summary>
            <ApiMember(Description:="Filter by parent session ID")>
            Public Overridable Property ParentSessionId As String
        End Class

        Public Enum SessionCallState
            Disconnected
            Ringing
            Connected
            Hold
            Passive
        End Enum

        Public Enum SessionDialState
            None
            Active
        End Enum

        Public Enum SessionDirections
            Incoming
            Outgoing
        End Enum

        Public Enum SessionHoldReasons
            None
            Transferring
        End Enum

        Public Partial Class SessionInfo
            Inherits EntityInfo
            Public Sub New()
                CustomerBreadcrumb = New List(Of CustomerBreadcrumb)
                Log = New List(Of SessionLogInfo)
                Members = New List(Of SessionMemberInfo)
            End Sub

            '''<Summary>
            '''The state of the session
            '''</Summary>
            <ApiMember(Description:="The state of the session")>
            Public Overridable Property DialState As SessionDialState

            '''<Summary>
            '''The call state of the session
            '''</Summary>
            <ApiMember(Description:="The call state of the session")>
            Public Overridable Property CallState As SessionCallState

            '''<Summary>
            '''The queue state of the session
            '''</Summary>
            <ApiMember(Description:="The queue state of the session")>
            Public Overridable Property QueueState As SessionQueueStates

            '''<Summary>
            '''The ID of the account associated with the flow
            '''</Summary>
            <ApiMember(Description:="The ID of the account associated with the flow")>
            Public Overridable Property AccountId As String

            '''<Summary>
            '''The name of the account associated with the session
            '''</Summary>
            <ApiMember(Description:="The name of the account associated with the session")>
            Public Overridable Property AccountName As String

            '''<Summary>
            '''The ID of the customer this session is associated with
            '''</Summary>
            <ApiMember(Description:="The ID of the customer this session is associated with")>
            Public Overridable Property CustomerId As String

            '''<Summary>
            '''The customer breadcrumb this session is associated with
            '''</Summary>
            <ApiMember(Description:="The customer breadcrumb this session is associated with")>
            Public Overridable Property CustomerBreadcrumb As List(Of CustomerBreadcrumb)

            '''<Summary>
            '''The name of the customer this session is associated with
            '''</Summary>
            <ApiMember(Description:="The name of the customer this session is associated with")>
            Public Overridable Property CustomerName As String

            '''<Summary>
            '''The ID of the endpoint associated with this session
            '''</Summary>
            <ApiMember(Description:="The ID of the endpoint associated with this session")>
            Public Overridable Property EndpointId As String

            '''<Summary>
            '''The name of the endpoint associated with this session
            '''</Summary>
            <ApiMember(Description:="The name of the endpoint associated with this session")>
            Public Overridable Property EndpointName As String

            '''<Summary>
            '''The date the call completed
            '''</Summary>
            <ApiMember(Description:="The date the call completed")>
            Public Overridable Property DateCompleted As String

            '''<Summary>
            '''The destination of the session (e.g. what was entered into the Dial box)
            '''</Summary>
            <ApiMember(Description:="The destination of the session (e.g. what was entered into the Dial box)")>
            Public Overridable Property Destination As String

            '''<Summary>
            '''The to address if any
            '''</Summary>
            <ApiMember(Description:="The to address if any")>
            Public Overridable Property ToAddress As String

            '''<Summary>
            '''The from address if any
            '''</Summary>
            <ApiMember(Description:="The from address if any")>
            Public Overridable Property FromAddress As String

            '''<Summary>
            '''The from name if any
            '''</Summary>
            <ApiMember(Description:="The from name if any")>
            Public Overridable Property FromName As String

            '''<Summary>
            '''Answered by name (if any)
            '''</Summary>
            <ApiMember(Description:="Answered by name (if any)")>
            Public Overridable Property AnsweredByName As String

            '''<Summary>
            '''The ID of the queue member assigned to this call
            '''</Summary>
            <ApiMember(Description:="The ID of the queue member assigned to this call")>
            Public Overridable Property QueueMemberId As String

            '''<Summary>
            '''The flow channel
            '''</Summary>
            <ApiMember(Description:="The flow channel")>
            Public Overridable Property Channel As FlowChannels

            '''<Summary>
            '''Has the session ended
            '''</Summary>
            <ApiMember(Description:="Has the session ended")>
            Public Overridable Property Ended As Boolean

            '''<Summary>
            '''The outcome of the call
            '''</Summary>
            <ApiMember(Description:="The outcome of the call")>
            Public Overridable Property Outcome As String

            '''<Summary>
            '''The twilio Call SID of this session
            '''</Summary>
            <ApiMember(Description:="The twilio Call SID of this session")>
            Public Overridable Property CallSid As String

            '''<Summary>
            '''Any console data for this session
            '''</Summary>
            <ApiMember(Description:="Any console data for this session")>
            Public Overridable Property ConsoleData As String

            '''<Summary>
            '''The name of the hold queue for this call
            '''</Summary>
            <ApiMember(Description:="The name of the hold queue for this call")>
            Public Overridable Property HoldQueueName As String

            '''<Summary>
            '''The user ID who put this call on hold
            '''</Summary>
            <ApiMember(Description:="The user ID who put this call on hold")>
            Public Overridable Property HeldByUserId As String

            '''<Summary>
            '''The reason for the hold
            '''</Summary>
            <ApiMember(Description:="The reason for the hold")>
            Public Overridable Property HoldReason As SessionHoldReasons

            '''<Summary>
            '''The SID of the conference if in a conference call
            '''</Summary>
            <ApiMember(Description:="The SID of the conference if in a conference call")>
            Public Overridable Property ConferenceSid As String

            '''<Summary>
            '''The display name for this session
            '''</Summary>
            <ApiMember(Description:="The display name for this session")>
            Public Overridable Property DisplayName As String

            '''<Summary>
            '''The log entries for this session
            '''</Summary>
            <ApiMember(Description:="The log entries for this session")>
            Public Overridable Property Log As List(Of SessionLogInfo)

            '''<Summary>
            '''The members of this session
            '''</Summary>
            <ApiMember(Description:="The members of this session")>
            Public Overridable Property Members As List(Of SessionMemberInfo)

            '''<Summary>
            '''The callback number (typically used for SIP to User calls)
            '''</Summary>
            <ApiMember(Description:="The callback number (typically used for SIP to User calls)")>
            Public Overridable Property CallbackNumber As String

            '''<Summary>
            '''The ID of the endpoint that answered
            '''</Summary>
            <ApiMember(Description:="The ID of the endpoint that answered")>
            Public Overridable Property AnsweredById As String

            '''<Summary>
            '''Is this session incoming or outgoing?
            '''</Summary>
            <ApiMember(Description:="Is this session incoming or outgoing?")>
            Public Overridable Property Direction As SessionDirections

            '''<Summary>
            '''The phone number that this session is coming from (used with SMS chats)
            '''</Summary>
            <ApiMember(Description:="The phone number that this session is coming from (used with SMS chats)")>
            Public Overridable Property FromPhoneNumber As String

            '''<Summary>
            '''The Call SID of the most recently added conference participant
            '''</Summary>
            <ApiMember(Description:="The Call SID of the most recently added conference participant")>
            Public Overridable Property MostRecentParticipantCallSid As String

            '''<Summary>
            '''Was this session missed?
            '''</Summary>
            <ApiMember(Description:="Was this session missed?")>
            Public Overridable Property WasMissed As Boolean

            '''<Summary>
            '''The ring queue that the call is currently in
            '''</Summary>
            <ApiMember(Description:="The ring queue that the call is currently in")>
            Public Overridable Property RingQueueId As String
        End Class

        Public Partial Class SessionLogInfo
            Public Overridable Property [Date] As String
            Public Overridable Property Message As String
        End Class

        Public Enum SessionMemberCallState
            None
            Ringing
            Connected
            Hold
        End Enum

        Public Partial Class SessionMemberInfo
            Public Sub New()
                ApplicationData = New Dictionary(Of String, String)
            End Sub

            Public Overridable Property Identity As String
            Public Overridable Property EndpointId As String
            Public Overridable Property DisplayName As String
            Public Overridable Property IsOriginalMember As Boolean
            Public Overridable Property AvatarUrl As String
            Public Overridable Property ApplicationData As Dictionary(Of String, String)
            Public Overridable Property CallState As SessionMemberCallState
            Public Overridable Property Role As SessionMemberRoles
            Public Overridable Property CallSid As String
            Public Overridable Property Muted As Boolean
        End Class

        Public Enum SessionMemberRoles
            None
            Caller
            Agent
            Transfer
        End Enum

        Public Enum SessionQueueStates
            None
            Queued
            Ringing
            Connected
            Hold
            Disconnected
        End Enum
    End Namespace
End Namespace

VB.NET ListSessions 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.

GET /sessions HTTP/1.1 
Host: evovoice.io 
Accept: application/json
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: length

{"items":[{"dialState":"None","callState":"Disconnected","queueState":"None","accountId":"String","accountName":"String","customerId":"String","customerBreadcrumb":[{"id":"String","name":"String"}],"customerName":"String","endpointId":"String","endpointName":"String","dateCompleted":"String","destination":"String","toAddress":"String","fromAddress":"String","fromName":"String","answeredByName":"String","queueMemberId":"String","channel":"Voice","ended":false,"outcome":"String","callSid":"String","consoleData":"String","holdQueueName":"String","heldByUserId":"String","holdReason":"None","conferenceSid":"String","displayName":"String","log":[{"date":"String","message":"String"}],"members":[{"identity":"String","endpointId":"String","displayName":"String","isOriginalMember":false,"avatarUrl":"String","applicationData":{"String":"String"},"callState":"None","role":"None","callSid":"String","muted":false}],"callbackNumber":"String","answeredById":"String","direction":"Incoming","fromPhoneNumber":"String","mostRecentParticipantCallSid":"String","wasMissed":false,"ringQueueId":"String","id":"String","dateCreated":"String","dateLastModified":"String","createdBy":"String","lastModifiedBy":"String"}],"totalCount":0,"totalPages":0,"hasMorePages":false}