# RESTful Application Development Guide

# Third Party Call

## Operations

The RESTful Third Party Call interfaces allow an application to set up a call, get information on that call, cancel the call request before it is successfully completed, or end a call that has been successfully set up.

In the listings below, bold indicates a required attribute, <> a descriptive comment.

Note: | An HTML version of this information is at `http://host:port/rest/third_party_call/index.html` where host and port depend on the Oracle Communications Services Gatekeeper installation.

### Make Call

Sets up a call between two parties, the calling party and the called party.

#### Request

##### URI

`http://host:port/rest/third_party_call/calls`

##### Request Content-Type

application/json

##### Body

`{`

`` `"calledParty"``: "URI",` <The address of the party being called>

`` `"callingParty"``: "URI",`<The address of the party making the call>

`"charging": {`<This entire attribute is optional>

`` `"description"``: "String",` <Text to be used for information and billing>

`"amount": "BigDecimal",` <The amount to be charged>

`"code": "String",` <A charging code, from an existing contractual description>

`"currency": "String"` <A currency identifier as defined in ISO 4217 [9]>

`}`

`}`

##### HTTP Method

POST

#### Response

##### Response Content-Type

application/json

##### Body

`{``"result"``: "String"}`

The call identifier, a string used to identify the call for later correlation

##### Header

key= “Location” value = “host:port/rest/third_party_call/call/${result}”

${result}: The call identifier returned in the body

The URI of the pub/sub server, from which call information can be fetched

#### Error Response

Service Exception

Policy Exception

### Get Call Information

Get information on a previously established call. If the call has terminated, the information is available for an operator configurable amount of time.

#### Request

##### URI

`http://host:port/rest/third_party_call/call/${callIdentifier}`

${callIdentifier}: A string, the call identifier returned from the initial setup request

##### Response Content-Type

application/json

##### Body

`{``"result"``: {`

`` `"callStatus"``: "CallInitial|CallConnected|CallTerminated",`<The current status of the call. See Table 8-1 for more information>

`"duration": "Integer",`<Only when `callStatus=CallTerminated`. The duration of the call in seconds>

`"startTime": "Calendar",`<Only when `callStatus` in not `CallInitial`. The time of the beginning of the call in ISO 8601 extended format >

`"terminationCause": "CallingPartyNoAnswer|CalledPartyNoAnswer|CallingPartyBusy|CalledPartyBusy|CallingPartyNotReachable|CalledPartyNotReachable|CallHangUp|CallAborted"`

<Only when `callStatus=CallTerminated`. The reason for the termination.>

`}}`

Table 8-1 Call Status
Value | Meaning
--- | ---
`CallInitial` | The call is being established
`CallConnected` | The call is active
`CallTerminated` | The call was terminated

#### Error Response

Service Exception

Policy Exception

### Cancel Call Request

Cancels a previously requested call that is not yet active. If the call is established, this operation has no effect.

#### Request

##### URI

`http://host:port/rest/third_party_call/cancel-call/${callIdentifier}`

${callIdentifier}: A string, the call identifier returned from the initial call setup

##### HTTP Method

POST

#### Response

##### Body

Empty

#### Error Response

Service Exception

Policy Exception

### End Call

Ends a previously requested call that is active. (Calls in initial state should be cancelled instead.)

#### Request

##### URI

`http://host:port/rest/third_party_call/end-call/${callIdentifier}`

${callIdentifier}: A string, the call identifier returned from the initial call setup

##### HTTP Method

POST

#### Response

##### Body

Empty

#### Error Response

Service Exception

Policy Exception

## Errors

The content of possible error messages.

### Service Exception

{`"error"`:{

`"type":`"org.csapi.schema.parlayx.common.v2_1.ServiceException"

`"message"`:"String"

}}

### Policy Exception

{`"error"`:{

`"type"`:"org.csapi.schema.parlayx.common.v2_1.PolicyException"

`"message"`:"String"