Required role: | User |
POST | /sessions/{sessionId}/members |
---|
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
///<summary>
///Add a member to the chat session
///</summary>
[<Api(Description="Add a member to the chat session")>]
[<AllowNullLiteral>]
type InviteChatMember() =
interface IPost
///<summary>
///The ID of the session
///</summary>
[<ApiMember(Description="The ID of the session")>]
member val SessionId:String = null with get,set
///<summary>
///The member to add. This can be a cell phone number, user ID (email)
///</summary>
[<ApiMember(Description="The member to add. This can be a cell phone number, user ID (email)")>]
member val MemberToAdd:String = null with get,set
///<summary>
///Outbound caller ID to use
///</summary>
[<ApiMember(Description="Outbound caller ID to use")>]
member val CallerId:String = null 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.
POST /sessions/{sessionId}/members HTTP/1.1
Host: team.evovoice.io
Accept: text/csv
Content-Type: text/csv
Content-Length: length
{"sessionId":"String","memberToAdd":"String","callerId":"String"}
HTTP/1.1 200 OK Content-Type: text/csv Content-Length: length {"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"}