GET | /portal/activity |
---|
namespace Voice.Api
open System
open System.IO
open System.Collections
open System.Collections.Generic
open System.Runtime.Serialization
open ServiceStack
open ServiceStack.DataAnnotations
[<AllowNullLiteral>]
type EntityInfo() =
///<summary>
///The ID of the object
///</summary>
[<ApiMember(Description="The ID of the object")>]
member val Id:String = null with get,set
///<summary>
///The date the object was created
///</summary>
[<ApiMember(Description="The date the object was created")>]
member val DateCreated:String = null with get,set
///<summary>
///The date the object was last modified
///</summary>
[<ApiMember(Description="The date the object was last modified")>]
member val DateLastModified:String = null with get,set
///<summary>
///The user that created this object
///</summary>
[<ApiMember(Description="The user that created this object")>]
member val CreatedBy:String = null with get,set
///<summary>
///The user that last modified this object
///</summary>
[<ApiMember(Description="The user that last modified this object")>]
member val LastModifiedBy:String = null with get,set
type SessionDialState =
| None = 0
| Active = 1
type SessionCallState =
| Disconnected = 0
| Ringing = 1
| Connected = 2
| Hold = 3
| Passive = 4
type SessionQueueStates =
| None = 0
| Queued = 1
| Ringing = 2
| Connected = 3
| Hold = 4
| Disconnected = 5
[<AllowNullLiteral>]
type CustomerBreadcrumb() =
member val Id:String = null with get,set
member val Name:String = null with get,set
type FlowChannels =
| Voice = 0
| Chat = 1
| Fax = 2
type SessionHoldReasons =
| None = 0
| Transferring = 1
[<AllowNullLiteral>]
type SessionLogInfo() =
member val Date:String = null with get,set
member val Message:String = null with get,set
type SessionMemberCallState =
| None = 0
| Ringing = 1
| Connected = 2
| Hold = 3
type SessionMemberRoles =
| None = 0
| Caller = 1
| Agent = 2
| Transfer = 3
[<AllowNullLiteral>]
type SessionMemberInfo() =
member val Identity:String = null with get,set
member val EndpointId:String = null with get,set
member val DisplayName:String = null with get,set
member val IsOriginalMember:Boolean = new Boolean() with get,set
member val AvatarUrl:String = null with get,set
member val ApplicationData:Dictionary<String, String> = null with get,set
member val CallState:SessionMemberCallState = new SessionMemberCallState() with get,set
member val Role:SessionMemberRoles = new SessionMemberRoles() with get,set
member val CallSid:String = null with get,set
member val Muted:Boolean = new Boolean() with get,set
type SessionDirections =
| Incoming = 0
| Outgoing = 1
[<AllowNullLiteral>]
type SessionInfo() =
inherit EntityInfo()
///<summary>
///The state of the session
///</summary>
[<ApiMember(Description="The state of the session")>]
member val DialState:SessionDialState = new SessionDialState() with get,set
///<summary>
///The call state of the session
///</summary>
[<ApiMember(Description="The call state of the session")>]
member val CallState:SessionCallState = new SessionCallState() with get,set
///<summary>
///The queue state of the session
///</summary>
[<ApiMember(Description="The queue state of the session")>]
member val QueueState:SessionQueueStates = new SessionQueueStates() with get,set
///<summary>
///The ID of the account associated with the flow
///</summary>
[<ApiMember(Description="The ID of the account associated with the flow")>]
member val AccountId:String = null with get,set
///<summary>
///The name of the account associated with the session
///</summary>
[<ApiMember(Description="The name of the account associated with the session")>]
member val AccountName:String = null with get,set
///<summary>
///The ID of the customer this session is associated with
///</summary>
[<ApiMember(Description="The ID of the customer this session is associated with")>]
member val CustomerId:String = null with get,set
///<summary>
///The customer breadcrumb this session is associated with
///</summary>
[<ApiMember(Description="The customer breadcrumb this session is associated with")>]
member val CustomerBreadcrumb:ResizeArray<CustomerBreadcrumb> = null with get,set
///<summary>
///The name of the customer this session is associated with
///</summary>
[<ApiMember(Description="The name of the customer this session is associated with")>]
member val CustomerName:String = null with get,set
///<summary>
///The ID of the endpoint associated with this session
///</summary>
[<ApiMember(Description="The ID of the endpoint associated with this session")>]
member val EndpointId:String = null with get,set
///<summary>
///The name of the endpoint associated with this session
///</summary>
[<ApiMember(Description="The name of the endpoint associated with this session")>]
member val EndpointName:String = null with get,set
///<summary>
///The date the call completed
///</summary>
[<ApiMember(Description="The date the call completed")>]
member val DateCompleted:String = null with get,set
///<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)")>]
member val Destination:String = null with get,set
///<summary>
///The to address if any
///</summary>
[<ApiMember(Description="The to address if any")>]
member val ToAddress:String = null with get,set
///<summary>
///The from address if any
///</summary>
[<ApiMember(Description="The from address if any")>]
member val FromAddress:String = null with get,set
///<summary>
///The from name if any
///</summary>
[<ApiMember(Description="The from name if any")>]
member val FromName:String = null with get,set
///<summary>
///Answered by name (if any)
///</summary>
[<ApiMember(Description="Answered by name (if any)")>]
member val AnsweredByName:String = null with get,set
///<summary>
///The ID of the queue member assigned to this call
///</summary>
[<ApiMember(Description="The ID of the queue member assigned to this call")>]
member val QueueMemberId:String = null with get,set
///<summary>
///The flow channel
///</summary>
[<ApiMember(Description="The flow channel")>]
member val Channel:FlowChannels = new FlowChannels() with get,set
///<summary>
///Has the session ended
///</summary>
[<ApiMember(Description="Has the session ended")>]
member val Ended:Boolean = new Boolean() with get,set
///<summary>
///The outcome of the call
///</summary>
[<ApiMember(Description="The outcome of the call")>]
member val Outcome:String = null with get,set
///<summary>
///The twilio Call SID of this session
///</summary>
[<ApiMember(Description="The twilio Call SID of this session")>]
member val CallSid:String = null with get,set
///<summary>
///Any console data for this session
///</summary>
[<ApiMember(Description="Any console data for this session")>]
member val ConsoleData:String = null with get,set
///<summary>
///The name of the hold queue for this call
///</summary>
[<ApiMember(Description="The name of the hold queue for this call")>]
member val HoldQueueName:String = null with get,set
///<summary>
///The user ID who put this call on hold
///</summary>
[<ApiMember(Description="The user ID who put this call on hold")>]
member val HeldByUserId:String = null with get,set
///<summary>
///The reason for the hold
///</summary>
[<ApiMember(Description="The reason for the hold")>]
member val HoldReason:SessionHoldReasons = new SessionHoldReasons() with get,set
///<summary>
///The SID of the conference if in a conference call
///</summary>
[<ApiMember(Description="The SID of the conference if in a conference call")>]
member val ConferenceSid:String = null with get,set
///<summary>
///The display name for this session
///</summary>
[<ApiMember(Description="The display name for this session")>]
member val DisplayName:String = null with get,set
///<summary>
///The log entries for this session
///</summary>
[<ApiMember(Description="The log entries for this session")>]
member val Log:ResizeArray<SessionLogInfo> = null with get,set
///<summary>
///The members of this session
///</summary>
[<ApiMember(Description="The members of this session")>]
member val Members:ResizeArray<SessionMemberInfo> = null with get,set
///<summary>
///The callback number (typically used for SIP to User calls)
///</summary>
[<ApiMember(Description="The callback number (typically used for SIP to User calls)")>]
member val CallbackNumber:String = null with get,set
///<summary>
///The ID of the endpoint that answered
///</summary>
[<ApiMember(Description="The ID of the endpoint that answered")>]
member val AnsweredById:String = null with get,set
///<summary>
///Is this session incoming or outgoing?
///</summary>
[<ApiMember(Description="Is this session incoming or outgoing?")>]
member val Direction:SessionDirections = new SessionDirections() with get,set
///<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)")>]
member val FromPhoneNumber:String = null with get,set
///<summary>
///The Call SID of the most recently added conference participant
///</summary>
[<ApiMember(Description="The Call SID of the most recently added conference participant")>]
member val MostRecentParticipantCallSid:String = null with get,set
///<summary>
///Was this session missed?
///</summary>
[<ApiMember(Description="Was this session missed?")>]
member val WasMissed:Boolean = new Boolean() with get,set
///<summary>
///The ring queue that the call is currently in
///</summary>
[<ApiMember(Description="The ring queue that the call is currently in")>]
member val RingQueueId:String = null with get,set
type SortOrders =
| Ascend = 0
| Descend = 1
[<AllowNullLiteral>]
type ListRequest<T>() =
interface IGet
///<summary>
///The page of data to retrieve
///</summary>
[<ApiMember(Description="The page of data to retrieve")>]
member val Page:Int32 = new Int32() with get,set
///<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")>]
member val All:Boolean = new Boolean() with get,set
///<summary>
///The number per page to retrieve
///</summary>
[<ApiMember(Description="The number per page to retrieve")>]
member val CountPerPage:Int32 = new Int32() with get,set
///<summary>
///Specific IDs
///</summary>
[<ApiMember(Description="Specific IDs")>]
member val SpecificIds:ResizeArray<String> = null with get,set
///<summary>
///Specify a sort field
///</summary>
[<ApiMember(Description="Specify a sort field")>]
member val SortField:String = null with get,set
///<summary>
///Specify a sort order
///</summary>
[<ApiMember(Description="Specify a sort order")>]
member val SortOrder:SortOrders = new SortOrders() with get,set
///<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")>]
member val SimplifiedPaging:Boolean = new Boolean() with get,set
[<AllowNullLiteral>]
type AppGetActivity() =
inherit ListRequest<SessionInfo>()
member val AccountId:String = null with get,set
member val CustomerId:String = null with get,set
member val FromAddressFilter:String = null with get,set
member val ToAddressFilter:String = null with get,set
member val StartDateTime:String = null with get,set
member val EndDateTime:String = null with get,set
[<AllowNullLiteral>]
type BillingItem() =
member val BaseCost:Double = new Double() with get,set
member val RawUnitMultiplier:Double = new Double() with get,set
member val UnitCost:Double = new Double() with get,set
member val Allowance:Int32 = new Int32() with get,set
[<AllowNullLiteral>]
type BillingSettings() =
member val Base:BillingItem = null with get,set
member val LocalNumbers:BillingItem = null with get,set
member val TollFreeNumbers:BillingItem = null with get,set
member val InboundVoiceCalls:BillingItem = null with get,set
member val OutboundVoiceCalls:BillingItem = null with get,set
member val InboundFaxes:BillingItem = null with get,set
member val OutboundFaxes:BillingItem = null with get,set
member val InboundSmsMessages:BillingItem = null with get,set
member val OutboundSmsMessages:BillingItem = null with get,set
member val AIInsights:BillingItem = null with get,set
member val AILiveMinutes:BillingItem = null with get,set
[<AllowNullLiteral>]
type AccountInfo() =
inherit EntityInfo()
///<summary>
///The name of this account
///</summary>
[<ApiMember(Description="The name of this account")>]
member val Name:String = null with get,set
///<summary>
///The ID of this account's parent
///</summary>
[<ApiMember(Description="The ID of this account's parent")>]
member val ParentAccountId:String = null with get,set
///<summary>
///The twilio account SID
///</summary>
[<ApiMember(Description="The twilio account SID")>]
member val TwilioAccountSid:String = null with get,set
///<summary>
///The ancestors of this account. Useful for breadcrumbs
///</summary>
[<ApiMember(Description="The ancestors of this account. Useful for breadcrumbs")>]
member val AncestorIds:ResizeArray<String> = null with get,set
///<summary>
///The max number of phone numbers this account can have
///</summary>
[<ApiMember(Description="The max number of phone numbers this account can have")>]
member val MaxPhoneNumbers:Int32 = new Int32() with get,set
///<summary>
///This account is BYOA
///</summary>
[<ApiMember(Description="This account is BYOA")>]
member val IsBYOA:Boolean = new Boolean() with get,set
///<summary>
///TrustHub Profile Sid
///</summary>
[<ApiMember(Description="TrustHub Profile Sid")>]
member val TrustHubProfileSid:String = null with get,set
///<summary>
///The ID of the logo file
///</summary>
[<ApiMember(Description="The ID of the logo file")>]
member val LogoId:String = null with get,set
///<summary>
///The URI of the logo file
///</summary>
[<ApiMember(Description="The URI of the logo file")>]
member val LogoUri:String = null with get,set
///<summary>
///The billing settings for this account
///</summary>
[<ApiMember(Description="The billing settings for this account")>]
member val BillingSettings:BillingSettings = null with get,set
[<AllowNullLiteral>]
type ListResponse<T>() =
///<summary>
///The items
///</summary>
[<ApiMember(Description="The items")>]
member val Items:ResizeArray<AccountInfo> = null with get,set
///<summary>
///The total number of items
///</summary>
[<ApiMember(Description="The total number of items")>]
member val TotalCount:Int32 = new Int32() with get,set
///<summary>
///The total number of pages
///</summary>
[<ApiMember(Description="The total number of pages")>]
member val TotalPages:Int32 = new Int32() with get,set
///<summary>
///Are there more pages of items? Used with simplified paging
///</summary>
[<ApiMember(Description="Are there more pages of items? Used with simplified paging")>]
member val HasMorePages:Boolean = new Boolean() with get,set
To override the Content-type in your clients, use the HTTP Accept Header, append the .csv suffix or ?format=csv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
GET /portal/activity HTTP/1.1 Host: team.evovoice.io Accept: text/csv
HTTP/1.1 200 OK Content-Type: text/csv 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}