Skip to content

Commit dbfeec1

Browse files
authored
Resolve VCSWP-23999 (#64)
* Resolve VCSWP-23999 * Fix package version for Python SDK and add changelog entry * Add new changes from latest spec updates part 2 * Resolve dependabot high critical vulnerabilities * Fix package version for python * Add AudioStream PerCL command
1 parent 4707940 commit dbfeec1

41 files changed

Lines changed: 1617 additions & 48 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.openapi-generator/FILES

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ docs/AnsweredBy.md
1111
docs/ApplicationList.md
1212
docs/ApplicationRequest.md
1313
docs/ApplicationResult.md
14+
docs/AudioStream.md
15+
docs/AudioStreamWebhook.md
1416
docs/AvailableNumber.md
1517
docs/AvailableNumberList.md
1618
docs/BargeInReason.md
@@ -22,6 +24,7 @@ docs/CallDirection.md
2224
docs/CallEndedReason.md
2325
docs/CallList.md
2426
docs/CallResult.md
27+
docs/CallResultAllOfSubresourceUris.md
2528
docs/CallStatus.md
2629
docs/CallStatusWebhook.md
2730
docs/Capabilities.md
@@ -176,6 +179,8 @@ freeclimb/models/answered_by.py
176179
freeclimb/models/application_list.py
177180
freeclimb/models/application_request.py
178181
freeclimb/models/application_result.py
182+
freeclimb/models/audio_stream.py
183+
freeclimb/models/audio_stream_webhook.py
179184
freeclimb/models/available_number.py
180185
freeclimb/models/available_number_list.py
181186
freeclimb/models/barge_in_reason.py
@@ -187,6 +192,7 @@ freeclimb/models/call_direction.py
187192
freeclimb/models/call_ended_reason.py
188193
freeclimb/models/call_list.py
189194
freeclimb/models/call_result.py
195+
freeclimb/models/call_result_all_of_subresource_uris.py
190196
freeclimb/models/call_status.py
191197
freeclimb/models/call_status_webhook.py
192198
freeclimb/models/capabilities.py
@@ -339,6 +345,8 @@ test/test_answered_by.py
339345
test/test_application_list.py
340346
test/test_application_request.py
341347
test/test_application_result.py
348+
test/test_audio_stream.py
349+
test/test_audio_stream_webhook.py
342350
test/test_available_number.py
343351
test/test_available_number_list.py
344352
test/test_barge_in_reason.py
@@ -350,6 +358,7 @@ test/test_call_direction.py
350358
test/test_call_ended_reason.py
351359
test/test_call_list.py
352360
test/test_call_result.py
361+
test/test_call_result_all_of_subresource_uris.py
353362
test/test_call_status.py
354363
test/test_call_status_webhook.py
355364
test/test_capabilities.py

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="5.4.0"></a>
13+
14+
## [5.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="5.3.0"></a>
1322

1423
## [5.3.0] - 2025-10-27

README.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ FreeClimb is a cloud-based application programming interface (API) that puts the
44
This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
55

66
- API version: 1.0.0
7-
- Package version: 5.3.0
7+
- Package version: 5.4.0
88
- Generator version: 7.9.0
99
- Build package: org.openapitools.codegen.languages.PythonClientCodegen
1010
For more information, please visit [https://www.freeclimb.com/support/](https://www.freeclimb.com/support/)
@@ -199,6 +199,8 @@ Class | Method | HTTP request | Description
199199
- [ApplicationList](docs/ApplicationList.md)
200200
- [ApplicationRequest](docs/ApplicationRequest.md)
201201
- [ApplicationResult](docs/ApplicationResult.md)
202+
- [AudioStream](docs/AudioStream.md)
203+
- [AudioStreamWebhook](docs/AudioStreamWebhook.md)
202204
- [AvailableNumber](docs/AvailableNumber.md)
203205
- [AvailableNumberList](docs/AvailableNumberList.md)
204206
- [BargeInReason](docs/BargeInReason.md)
@@ -210,6 +212,7 @@ Class | Method | HTTP request | Description
210212
- [CallEndedReason](docs/CallEndedReason.md)
211213
- [CallList](docs/CallList.md)
212214
- [CallResult](docs/CallResult.md)
215+
- [CallResultAllOfSubresourceUris](docs/CallResultAllOfSubresourceUris.md)
213216
- [CallStatus](docs/CallStatus.md)
214217
- [CallStatusWebhook](docs/CallStatusWebhook.md)
215218
- [Capabilities](docs/Capabilities.md)
@@ -389,4 +392,3 @@ Authentication schemes defined for the API:
389392

390393
support@freeclimb.com
391394

392-

docs/AudioStream.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# AudioStream
2+
3+
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.
4+
5+
## Properties
6+
7+
Name | Type | Description | Notes
8+
------------ | ------------- | ------------- | -------------
9+
**location** | **str** | The gRPC server location that will receive the grpc stream as a uri and must be port 80 or 443. |
10+
**action_url** | **str** | 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]
11+
**content_type** | **str** | The type and sample rate of the audio being received over the channel must match the environmental sample rate. | [optional]
12+
**meta_data** | **List[str]** | 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]
13+
**privacy_mode** | **bool** | Enables audio redaction with full call recording while gRPC session is running and blocks logging of any DTMFs received by FreeClimb. | [optional]
14+
15+
## Example
16+
17+
```python
18+
from freeclimb.models.audio_stream import AudioStream
19+
20+
# TODO update the JSON string below
21+
json = "{}"
22+
# create an instance of AudioStream from a JSON string
23+
audio_stream_instance = AudioStream.from_json(json)
24+
# print the JSON string representation of the object
25+
print(AudioStream.to_json())
26+
27+
# convert the object into a dict
28+
audio_stream_dict = audio_stream_instance.to_dict()
29+
# create an instance of AudioStream from a dict
30+
audio_stream_from_dict = AudioStream.from_dict(audio_stream_dict)
31+
```
32+
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
33+
34+

docs/AudioStreamWebhook.md

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# AudioStreamWebhook
2+
3+
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.
4+
5+
## Properties
6+
7+
Name | Type | Description | Notes
8+
------------ | ------------- | ------------- | -------------
9+
**request_type** | **str** | 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]
10+
**call_id** | **str** | Unique ID for this Call, generated by FreeClimb. This is the call leg which ended its gRPC session. | [optional]
11+
**account_id** | **str** | Account ID associated with your account. | [optional]
12+
**var_from** | **str** | Phone number of the party that initiated the Call (in E.164 format). | [optional]
13+
**to** | **str** | Phone number provisioned to you and to which this Call is directed (in E.164 format). | [optional]
14+
**call_status** | [**CallStatus**](CallStatus.md) | | [optional]
15+
**direction** | [**CallDirection**](CallDirection.md) | | [optional]
16+
**conference_id** | **str** | This is only populated if request pertains to a Conference. Otherwise, it is set to null. | [optional]
17+
**queue_id** | **str** | This is only populated if the request pertains to a Queue. Otherwise, it is set to null. | [optional]
18+
19+
## Example
20+
21+
```python
22+
from freeclimb.models.audio_stream_webhook import AudioStreamWebhook
23+
24+
# TODO update the JSON string below
25+
json = "{}"
26+
# create an instance of AudioStreamWebhook from a JSON string
27+
audio_stream_webhook_instance = AudioStreamWebhook.from_json(json)
28+
# print the JSON string representation of the object
29+
print(AudioStreamWebhook.to_json())
30+
31+
# convert the object into a dict
32+
audio_stream_webhook_dict = audio_stream_webhook_instance.to_dict()
33+
# create an instance of AudioStreamWebhook from a dict
34+
audio_stream_webhook_from_dict = AudioStreamWebhook.from_dict(audio_stream_webhook_dict)
35+
```
36+
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
37+
38+

docs/AvailableNumber.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ Name | Type | Description | Notes
88
**capabilities** | [**Capabilities**](Capabilities.md) | | [optional]
99
**campaign_id** | **str** | The campaign ID generated by the campaign registry | [optional]
1010
**phone_number** | **str** | The phone number, in E.164 format (+ country code and phone number: +18003608245). | [optional]
11+
**alias** | **str** | A nicely-formatted version of the phone number. | [optional]
1112
**region** | **str** | The state or province of this phone number. | [optional]
1213
**country** | **str** | The country of this phone number. | [optional]
1314

docs/CallResult.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ Name | Type | Description | Notes
99
**date_created** | **str** | The date that this resource was created (GMT) in RFC 1123 format (e.g., Mon, 15 Jun 2009 20:45:30 GMT). | [optional]
1010
**date_updated** | **str** | The date that this resource was last updated (GMT) in RFC 1123 format (e.g., Mon, 15 Jun 2009 20:45:30 GMT). | [optional]
1111
**revision** | **int** | Revision count for the resource. This count is set to 1 on creation and is incremented every time it is updated. | [optional]
12+
**date_created_iso** | **datetime** | The date that this resource was created in ISO 8601 format (e.g., 2022-01-01T00:00:00.000Z). | [optional]
13+
**date_updated_iso** | **datetime** | The date that this resource was last updated in ISO 8601 format (e.g., 2022-01-01T00:00:00.000Z). | [optional]
1214
**call_id** | **str** | String that uniquely identifies this Call resource. | [optional]
1315
**parent_call_id** | **str** | ID of the Call that created this leg (child Call). | [optional]
1416
**account_id** | **str** | ID of the account that owns this Call. | [optional]
@@ -17,13 +19,19 @@ Name | Type | Description | Notes
1719
**phone_number_id** | **str** | 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]
1820
**status** | [**CallStatus**](CallStatus.md) | | [optional]
1921
**start_time** | **str** | 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]
22+
**start_time_iso** | **datetime** | 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]
2023
**connect_time** | **str** | 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]
24+
**connect_time_iso** | **datetime** | 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]
2125
**end_time** | **str** | 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]
26+
**end_time_iso** | **datetime** | 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]
2227
**duration** | **int** | 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]
2328
**connect_duration** | **int** | 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]
29+
**audio_stream_duration** | **int** | 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]
2430
**direction** | [**CallDirection**](CallDirection.md) | | [optional]
2531
**answered_by** | [**AnsweredBy**](AnsweredBy.md) | | [optional]
26-
**subresource_uris** | **object** | The list of subresources for this Call. These include things like logs and recordings associated with the Call. | [optional]
32+
**caller_name** | **str** | The caller ID name (CNAM) for this Call. Empty if unavailable. | [optional]
33+
**web_rtc** | **bool** | Indicates whether this Call was initiated via WebRTC. | [optional]
34+
**subresource_uris** | [**CallResultAllOfSubresourceUris**](CallResultAllOfSubresourceUris.md) | | [optional]
2735
**application_id** | **str** | ApplicationId associated with the Call. | [optional]
2836

2937
## Example
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# CallResultAllOfSubresourceUris
2+
3+
The list of subresources for this Call. These include things like logs and recordings associated with the Call.
4+
5+
## Properties
6+
7+
Name | Type | Description | Notes
8+
------------ | ------------- | ------------- | -------------
9+
**logs** | **str** | The URI for the logs associated with this Call. | [optional]
10+
**recordings** | **str** | The URI for the recordings associated with this Call. | [optional]
11+
12+
## Example
13+
14+
```python
15+
from freeclimb.models.call_result_all_of_subresource_uris import CallResultAllOfSubresourceUris
16+
17+
# TODO update the JSON string below
18+
json = "{}"
19+
# create an instance of CallResultAllOfSubresourceUris from a JSON string
20+
call_result_all_of_subresource_uris_instance = CallResultAllOfSubresourceUris.from_json(json)
21+
# print the JSON string representation of the object
22+
print(CallResultAllOfSubresourceUris.to_json())
23+
24+
# convert the object into a dict
25+
call_result_all_of_subresource_uris_dict = call_result_all_of_subresource_uris_instance.to_dict()
26+
# create an instance of CallResultAllOfSubresourceUris from a dict
27+
call_result_all_of_subresource_uris_from_dict = CallResultAllOfSubresourceUris.from_dict(call_result_all_of_subresource_uris_dict)
28+
```
29+
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
30+
31+

docs/ConferenceResult.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ Name | Type | Description | Notes
1212
**conference_id** | **str** | A string that uniquely identifies this Conference resource. | [optional]
1313
**account_id** | **str** | ID of the account that created this Conference. | [optional]
1414
**alias** | **str** | A description for this Conference. | [optional]
15-
**play_beep** | [**PlayBeep**](PlayBeep.md) | | [optional]
15+
**play_beep** | [**PlayBeep**](PlayBeep.md) | Setting that controls when a beep is played. One of: always, never, entryOnly, exitOnly. Defaults to always. | [optional]
1616
**record** | **bool** | Flag indicating whether recording is enabled for this Conference. | [optional]
1717
**status** | [**ConferenceStatus**](ConferenceStatus.md) | | [optional]
1818
**wait_url** | **str** | URL referencing the audio file to be used as default wait music for the Conference when it is in the populated state. | [optional]

0 commit comments

Comments
 (0)