Skip to content

Commit 4d54c46

Browse files
authored
Resolve VCSWP-23999 (#66)
* Resolve VCSWP-23999 * Fix package version for Java SDK and add changelog entry * Add new changes from latest spec updates * Add new changes from latest spec updates part 2 * Resolve dependabot high critical vulnerabilities * Fix package version for java * Add AudioStream PerCL command
1 parent c800898 commit 4d54c46

37 files changed

Lines changed: 3259 additions & 188 deletions

‎.openapi-generator/FILES‎

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ docs/AnsweredBy.md
1616
docs/ApplicationList.md
1717
docs/ApplicationRequest.md
1818
docs/ApplicationResult.md
19+
docs/AudioStream.md
20+
docs/AudioStreamWebhook.md
1921
docs/AvailableNumber.md
2022
docs/AvailableNumberList.md
2123
docs/BargeInReason.md
@@ -27,6 +29,7 @@ docs/CallDirection.md
2729
docs/CallEndedReason.md
2830
docs/CallList.md
2931
docs/CallResult.md
32+
docs/CallResultAllOfSubresourceUris.md
3033
docs/CallStatus.md
3134
docs/CallStatusWebhook.md
3235
docs/Capabilities.md
@@ -187,6 +190,8 @@ src/main/java/com/github/freeclimbapi/ApiResponse.java
187190
src/main/java/com/github/freeclimbapi/ApplicationList.java
188191
src/main/java/com/github/freeclimbapi/ApplicationRequest.java
189192
src/main/java/com/github/freeclimbapi/ApplicationResult.java
193+
src/main/java/com/github/freeclimbapi/AudioStream.java
194+
src/main/java/com/github/freeclimbapi/AudioStreamWebhook.java
190195
src/main/java/com/github/freeclimbapi/AvailableNumber.java
191196
src/main/java/com/github/freeclimbapi/AvailableNumberList.java
192197
src/main/java/com/github/freeclimbapi/BargeInReason.java
@@ -198,6 +203,7 @@ src/main/java/com/github/freeclimbapi/CallDirection.java
198203
src/main/java/com/github/freeclimbapi/CallEndedReason.java
199204
src/main/java/com/github/freeclimbapi/CallList.java
200205
src/main/java/com/github/freeclimbapi/CallResult.java
206+
src/main/java/com/github/freeclimbapi/CallResultAllOfSubresourceUris.java
201207
src/main/java/com/github/freeclimbapi/CallStatus.java
202208
src/main/java/com/github/freeclimbapi/CallStatusWebhook.java
203209
src/main/java/com/github/freeclimbapi/Capabilities.java
@@ -357,6 +363,8 @@ src/test/java/com/github/freeclimbapi/AnsweredByTest.java
357363
src/test/java/com/github/freeclimbapi/ApplicationListTest.java
358364
src/test/java/com/github/freeclimbapi/ApplicationRequestTest.java
359365
src/test/java/com/github/freeclimbapi/ApplicationResultTest.java
366+
src/test/java/com/github/freeclimbapi/AudioStreamTest.java
367+
src/test/java/com/github/freeclimbapi/AudioStreamWebhookTest.java
360368
src/test/java/com/github/freeclimbapi/AvailableNumberListTest.java
361369
src/test/java/com/github/freeclimbapi/AvailableNumberTest.java
362370
src/test/java/com/github/freeclimbapi/BargeInReasonTest.java
@@ -367,6 +375,7 @@ src/test/java/com/github/freeclimbapi/CallControlWebhookTest.java
367375
src/test/java/com/github/freeclimbapi/CallDirectionTest.java
368376
src/test/java/com/github/freeclimbapi/CallEndedReasonTest.java
369377
src/test/java/com/github/freeclimbapi/CallListTest.java
378+
src/test/java/com/github/freeclimbapi/CallResultAllOfSubresourceUrisTest.java
370379
src/test/java/com/github/freeclimbapi/CallResultTest.java
371380
src/test/java/com/github/freeclimbapi/CallStatusTest.java
372381
src/test/java/com/github/freeclimbapi/CallStatusWebhookTest.java

‎CHANGELOG.md‎

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,15 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
99

1010
None
1111

12+
<a name="6.4.0"></a>
13+
14+
## [6.4.0] - 2026-04-06
15+
16+
### Added
17+
18+
- New parameters for fetching recordings (start time and end time)
19+
- Audio Streaming feature
20+
1221
<a name="6.3.0"></a>
1322

1423
## [6.3.0] - 2025-10-21

‎README.md‎

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ Add this dependency to your project's POM:
4040
<dependency>
4141
<groupId>com.github.freeclimbapi</groupId>
4242
<artifactId>freeclimb-java-client</artifactId>
43-
<version>6.3.0</version>
43+
<version>6.4.0</version>
4444
<scope>compile</scope>
4545
</dependency>
4646
```
@@ -56,7 +56,9 @@ Add this dependency to your project's build file:
5656
}
5757
5858
dependencies {
59-
implementation "com.github.freeclimbapi:freeclimb-java-client:6.3.0"
59+
implementation "com.github.freeclimbapi:freeclimb-java-client:6.4.0"
60+
implementation("com.squareup.okhttp3:okhttp:4.9.3")
61+
implementation("com.squareup.okhttp3:logging-interceptor:4.9.3")
6062
}
6163
```
6264

@@ -70,7 +72,7 @@ mvn clean package
7072

7173
Then manually install the following JARs:
7274

73-
* `target/freeclimb-java-client-6.3.0.jar`
75+
* `target/freeclimb-java-client-6.4.0.jar`
7476
* `target/lib/*.jar`
7577

7678
## Getting Started
@@ -93,7 +95,7 @@ public class Example {
9395
// Configure API client
9496
ApiClient defaultClient = Configuration.getDefaultApiClient();
9597
defaultClient.setBasePath("https://www.freeclimb.com/apiserver");
96-
defaultClient.setAccountId("YOUR_ACCOUNT_ID");
98+
defaultClient.setAccountId("AC0123456789abcdefABCDEF0123456789abcdef00");
9799
defaultClient.setApiKey("YOUR_API_KEY");
98100

99101
DefaultApi apiInstance = new DefaultApi(defaultClient);
@@ -224,6 +226,8 @@ Class | Method | HTTP request | Description
224226
- [ApplicationList](docs/ApplicationList.md)
225227
- [ApplicationRequest](docs/ApplicationRequest.md)
226228
- [ApplicationResult](docs/ApplicationResult.md)
229+
- [AudioStream](docs/AudioStream.md)
230+
- [AudioStreamWebhook](docs/AudioStreamWebhook.md)
227231
- [AvailableNumber](docs/AvailableNumber.md)
228232
- [AvailableNumberList](docs/AvailableNumberList.md)
229233
- [BargeInReason](docs/BargeInReason.md)
@@ -235,6 +239,7 @@ Class | Method | HTTP request | Description
235239
- [CallEndedReason](docs/CallEndedReason.md)
236240
- [CallList](docs/CallList.md)
237241
- [CallResult](docs/CallResult.md)
242+
- [CallResultAllOfSubresourceUris](docs/CallResultAllOfSubresourceUris.md)
238243
- [CallStatus](docs/CallStatus.md)
239244
- [CallStatusWebhook](docs/CallStatusWebhook.md)
240245
- [Capabilities](docs/Capabilities.md)

‎build.gradle‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ apply plugin: 'java'
44
apply plugin: 'com.diffplug.spotless'
55

66
group = 'com.github.freeclimbapi'
7-
version = '6.3.0'
7+
version = '6.4.0'
88

99
buildscript {
1010
repositories {
@@ -154,7 +154,7 @@ spotless {
154154
// don't need to set target, it is inferred from java
155155

156156
// apply a specific flavor of google-java-format
157-
googleJavaFormat('1.19.2').aosp().reflowLongStrings()
157+
googleJavaFormat('1.24.0').aosp().reflowLongStrings()
158158

159159
removeUnusedImports()
160160
importOrder()

‎build.sbt‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ lazy val root = (project in file(".")).
22
settings(
33
organization := "com.github.freeclimbapi",
44
name := "freeclimb-java-client",
5-
version := "6.3.0",
5+
version := "6.4.0",
66
scalaVersion := "2.11.4",
77
scalacOptions ++= Seq("-feature"),
88
javacOptions in compile ++= Seq("-Xlint:deprecation"),

‎docs/AudioStream.md‎

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
2+
3+
# AudioStream
4+
5+
The `AudioStream` command transfers control of the call to a gRPC session. Upon completion of the gRPC session, if the actionUrl is specified, control can be returned to percl usage or the call will simply be hung up if the actionUrl is not specified.
6+
7+
## Properties
8+
9+
Name | Type | Description | Notes
10+
------------ | ------------- | ------------- | -------------
11+
**location** | **URI** | The gRPC server location that will receive the grpc stream as a uri and must be port 80 or 443. |
12+
**actionUrl** | **URI** | A request is made to this URL when the gRPC session is concluded. The PerCL script returned in response to the actionUrl will be executed on the call. | [optional]
13+
**contentType** | **String** | The type and sample rate of the audio being received over the channel must match the environmental sample rate. | [optional]
14+
**metaData** | **List&lt;String&gt;** | An arbitrary array of strings passed through FC to the GRPC server can be used to pass state or other information about the call. | [optional]
15+
**privacyMode** | **Boolean** | Enables audio redaction with full call recording while gRPC session is running and blocks logging of any DTMFs received by FreeClimb. | [optional]
16+
17+
18+

‎docs/AudioStreamWebhook.md‎

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
2+
3+
# AudioStreamWebhook
4+
5+
A gRPC session has ended for this Call its actionUrl is being invoked. A PerCL response is expected — unless the URL is invoked due to the participant hanging up.
6+
7+
## Properties
8+
9+
Name | Type | Description | Notes
10+
------------ | ------------- | ------------- | -------------
11+
**requestType** | **String** | Context or reason why this request is being made. Will be audioStream - gRPC session for this Call has ended and its actionUrl is being invoked. | [optional]
12+
**callId** | **String** | Unique ID for this Call, generated by FreeClimb. This is the call leg which ended its gRPC session. | [optional]
13+
**accountId** | **String** | Account ID associated with your account. | [optional]
14+
**from** | **String** | Phone number of the party that initiated the Call (in E.164 format). | [optional]
15+
**to** | **String** | Phone number provisioned to you and to which this Call is directed (in E.164 format). | [optional]
16+
**callStatus** | **CallStatus** | | [optional]
17+
**direction** | **CallDirection** | | [optional]
18+
**conferenceId** | **String** | This is only populated if request pertains to a Conference. Otherwise, it is set to null. | [optional]
19+
**queueId** | **String** | This is only populated if the request pertains to a Queue. Otherwise, it is set to null. | [optional]
20+
21+
22+

‎docs/AvailableNumber.md‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ Name | Type | Description | Notes
1010
**capabilities** | [**Capabilities**](Capabilities.md) | | [optional]
1111
**campaignId** | **String** | The campaign ID generated by the campaign registry | [optional]
1212
**phoneNumber** | **String** | The phone number, in E.164 format (+ country code and phone number: +18003608245). | [optional]
13+
**alias** | **String** | A nicely-formatted version of the phone number. | [optional]
1314
**region** | **String** | The state or province of this phone number. | [optional]
1415
**country** | **String** | The country of this phone number. | [optional]
1516

‎docs/CallResult.md‎

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ Name | Type | Description | Notes
1111
**dateCreated** | **String** | The date that this resource was created (GMT) in RFC 1123 format (e.g., Mon, 15 Jun 2009 20:45:30 GMT). | [optional]
1212
**dateUpdated** | **String** | The date that this resource was last updated (GMT) in RFC 1123 format (e.g., Mon, 15 Jun 2009 20:45:30 GMT). | [optional]
1313
**revision** | **Integer** | Revision count for the resource. This count is set to 1 on creation and is incremented every time it is updated. | [optional]
14+
**dateCreatedISO** | **OffsetDateTime** | The date that this resource was created in ISO 8601 format (e.g., 2022-01-01T00:00:00.000Z). | [optional]
15+
**dateUpdatedISO** | **OffsetDateTime** | The date that this resource was last updated in ISO 8601 format (e.g., 2022-01-01T00:00:00.000Z). | [optional]
1416
**callId** | **String** | String that uniquely identifies this Call resource. | [optional]
1517
**parentCallId** | **String** | ID of the Call that created this leg (child Call). | [optional]
1618
**accountId** | **String** | ID of the account that owns this Call. | [optional]
@@ -19,13 +21,19 @@ Name | Type | Description | Notes
1921
**phoneNumberId** | **String** | If the Call was inbound, this is the ID of the IncomingPhoneNumber that received the Call (DNIS). If the Call was outbound, this is the ID of the phone number from which the Call was placed (ANI). | [optional]
2022
**status** | **CallStatus** | | [optional]
2123
**startTime** | **String** | Start time of the Call (GMT) in RFC 1123 format (e.g., Mon, 15 Jun 2009 20:45:30 GMT). Empty if the Call has not yet been dialed. | [optional]
24+
**startTimeISO** | **OffsetDateTime** | Start time of the Call in ISO 8601 format (e.g., 2022-01-01T00:00:00.000Z). Empty if the Call has not yet been dialed. | [optional]
2225
**connectTime** | **String** | Time the Call was answered (GMT) in RFC 1123 format (e.g., Mon, 15 Jun 2009 20:45:30 GMT). Empty if the Call has not yet been dialed. | [optional]
26+
**connectTimeISO** | **OffsetDateTime** | Time the Call was answered in ISO 8601 format (e.g., 2022-01-01T00:00:00.000Z). Empty if the Call has not yet been dialed. | [optional]
2327
**endTime** | **String** | End time of the Call (GMT) in RFC 1123 format (e.g., Mon, 15 Jun 2009 20:45:30 GMT). Empty if the Call did not complete successfully. | [optional]
28+
**endTimeISO** | **OffsetDateTime** | End time of the Call in ISO 8601 format (e.g., 2022-01-01T00:00:00.000Z). Empty if the Call did not complete successfully. | [optional]
2429
**duration** | **Integer** | Total length of the Call in seconds. Measures time between startTime and endTime. This value is empty for busy, failed, unanswered or ongoing Calls. | [optional]
2530
**connectDuration** | **Integer** | Length of time that the Call was connected in seconds. Measures time between connectTime and endTime. This value is empty for busy, failed, unanswered or ongoing Calls. | [optional]
31+
**audioStreamDuration** | **Integer** | Length of time that the Call used the audio stream in seconds. This value is empty or zero when the Call did not use the audio stream. | [optional]
2632
**direction** | **CallDirection** | | [optional]
2733
**answeredBy** | **AnsweredBy** | | [optional]
28-
**subresourceUris** | **Object** | The list of subresources for this Call. These include things like logs and recordings associated with the Call. | [optional]
34+
**callerName** | **String** | The caller ID name (CNAM) for this Call. Empty if unavailable. | [optional]
35+
**webRTC** | **Boolean** | Indicates whether this Call was initiated via WebRTC. | [optional]
36+
**subresourceUris** | [**CallResultAllOfSubresourceUris**](CallResultAllOfSubresourceUris.md) | | [optional]
2937
**applicationId** | **String** | ApplicationId associated with the Call. | [optional]
3038

3139

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
2+
3+
# CallResultAllOfSubresourceUris
4+
5+
The list of subresources for this Call. These include things like logs and recordings associated with the Call.
6+
7+
## Properties
8+
9+
Name | Type | Description | Notes
10+
------------ | ------------- | ------------- | -------------
11+
**logs** | **String** | The URI for the logs associated with this Call. | [optional]
12+
**recordings** | **String** | The URI for the recordings associated with this Call. | [optional]
13+
14+
15+

0 commit comments

Comments
 (0)