From 4a6808168fa7e6940228c0c94f31e25957a356c6 Mon Sep 17 00:00:00 2001 From: narayana-plivo Date: Wed, 21 Jan 2026 08:03:56 +0530 Subject: [PATCH 1/3] ha number --- CHANGELOG.md | 5 +++++ plivo/resources/numbers.py | 5 +++-- plivo/version.py | 2 +- setup.py | 2 +- tests/resources/fixtures/phoneNumberCreateResponse.json | 3 ++- tests/resources/test_numbers.py | 7 +++++++ 6 files changed, 19 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4a7a0f3e..f673eeec 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,9 @@ # Change Log +## [4.59.5](https://github.com/plivo/plivo-python/tree/v4.59.5) (2026-01-21) +**Feature - HA Number support** +- Added `ha_enabled` optional parameter to PhoneNumber `buy` method for enabling High Availability Number functionality +- Added `fallback_number` field in PhoneNumber buy response + ## [4.59.4](https://github.com/plivo/plivo-python/tree/v4.59.4) (2026-01-13) **Feature - Profile API business_contact_email support** - Added `business_contact_email` parameter support to Profile `create` and `update` methods for PUBLIC entity types diff --git a/plivo/resources/numbers.py b/plivo/resources/numbers.py index 9549f5b8..7a3418ed 100644 --- a/plivo/resources/numbers.py +++ b/plivo/resources/numbers.py @@ -34,8 +34,9 @@ def __init__(self, client): number=[is_phonenumber()], app_id=[optional(of_type(six.text_type))], verification_info=[optional(of_type_exact(dict))], - cnam_lookup=[optional(of_type(six.text_type))],) - def buy(self, number, app_id=None, verification_info=None, cnam_lookup=None): + cnam_lookup=[optional(of_type(six.text_type))], + ha_enabled=[optional(of_type(bool))],) + def buy(self, number, app_id=None, verification_info=None, cnam_lookup=None, ha_enabled=None): return self.client.request('POST', ('PhoneNumber', number), to_param_dict(self.buy, locals())) diff --git a/plivo/version.py b/plivo/version.py index 9222a418..5735124a 100644 --- a/plivo/version.py +++ b/plivo/version.py @@ -1,2 +1,2 @@ # -*- coding: utf-8 -*- -__version__ = '4.59.3' +__version__ = '4.59.5' diff --git a/setup.py b/setup.py index 49df99c4..da4b902c 100644 --- a/setup.py +++ b/setup.py @@ -10,7 +10,7 @@ setup( name='plivo', - version='4.59.4', + version='4.59.5', description='A Python SDK to make voice calls & send SMS using Plivo and to generate Plivo XML', long_description=long_description, url='https://github.com/plivo/plivo-python', diff --git a/tests/resources/fixtures/phoneNumberCreateResponse.json b/tests/resources/fixtures/phoneNumberCreateResponse.json index 5ac21c44..7bd0d2ce 100644 --- a/tests/resources/fixtures/phoneNumberCreateResponse.json +++ b/tests/resources/fixtures/phoneNumberCreateResponse.json @@ -4,7 +4,8 @@ "numbers": [ { "number": "14154009186", - "status": "Success" + "status": "Success", + "fallback_number": "14154009187" } ], "status": "fulfilled" diff --git a/tests/resources/test_numbers.py b/tests/resources/test_numbers.py index efd93e2a..1793d55c 100644 --- a/tests/resources/test_numbers.py +++ b/tests/resources/test_numbers.py @@ -79,3 +79,10 @@ def test_create(self): self.assertUrlEqual(self.client.current_request.url, self.get_url('PhoneNumber', number_id)) self.assertEqual(self.client.current_request.method, 'POST') + + @with_response(202) + def test_create_with_ha_enabled(self): + self.client.numbers.buy(number_id, app_id='test', ha_enabled=True) + self.assertUrlEqual(self.client.current_request.url, + self.get_url('PhoneNumber', number_id)) + self.assertEqual(self.client.current_request.method, 'POST') From e2b52255be581141b4e04df94ca32d661f45c011 Mon Sep 17 00:00:00 2001 From: narayana-plivo Date: Wed, 21 Jan 2026 16:52:28 +0530 Subject: [PATCH 2/3] update flag --- CHANGELOG.md | 2 +- plivo/resources/numbers.py | 4 ++-- tests/resources/test_numbers.py | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f673eeec..ac494750 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,7 @@ # Change Log ## [4.59.5](https://github.com/plivo/plivo-python/tree/v4.59.5) (2026-01-21) **Feature - HA Number support** -- Added `ha_enabled` optional parameter to PhoneNumber `buy` method for enabling High Availability Number functionality +- Added `ha_enable` optional parameter to PhoneNumber `buy` method for enabling High Availability Number functionality - Added `fallback_number` field in PhoneNumber buy response ## [4.59.4](https://github.com/plivo/plivo-python/tree/v4.59.4) (2026-01-13) diff --git a/plivo/resources/numbers.py b/plivo/resources/numbers.py index 7a3418ed..8787b656 100644 --- a/plivo/resources/numbers.py +++ b/plivo/resources/numbers.py @@ -35,8 +35,8 @@ def __init__(self, client): app_id=[optional(of_type(six.text_type))], verification_info=[optional(of_type_exact(dict))], cnam_lookup=[optional(of_type(six.text_type))], - ha_enabled=[optional(of_type(bool))],) - def buy(self, number, app_id=None, verification_info=None, cnam_lookup=None, ha_enabled=None): + ha_enable=[optional(of_type(bool))],) + def buy(self, number, app_id=None, verification_info=None, cnam_lookup=None, ha_enable=None): return self.client.request('POST', ('PhoneNumber', number), to_param_dict(self.buy, locals())) diff --git a/tests/resources/test_numbers.py b/tests/resources/test_numbers.py index 1793d55c..e92ac887 100644 --- a/tests/resources/test_numbers.py +++ b/tests/resources/test_numbers.py @@ -81,8 +81,8 @@ def test_create(self): self.assertEqual(self.client.current_request.method, 'POST') @with_response(202) - def test_create_with_ha_enabled(self): - self.client.numbers.buy(number_id, app_id='test', ha_enabled=True) + def test_create_with_ha_enable(self): + self.client.numbers.buy(number_id, app_id='test', ha_enable=True) self.assertUrlEqual(self.client.current_request.url, self.get_url('PhoneNumber', number_id)) self.assertEqual(self.client.current_request.method, 'POST') From e59d85418f39705e6973097b7db193f88125cccc Mon Sep 17 00:00:00 2001 From: narayana-plivo Date: Thu, 22 Jan 2026 08:53:24 +0530 Subject: [PATCH 3/3] fix --- tests/resources/test_numbers.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/resources/test_numbers.py b/tests/resources/test_numbers.py index e92ac887..76b1bfd3 100644 --- a/tests/resources/test_numbers.py +++ b/tests/resources/test_numbers.py @@ -80,7 +80,7 @@ def test_create(self): self.get_url('PhoneNumber', number_id)) self.assertEqual(self.client.current_request.method, 'POST') - @with_response(202) + @with_response(202, method_name='create') def test_create_with_ha_enable(self): self.client.numbers.buy(number_id, app_id='test', ha_enable=True) self.assertUrlEqual(self.client.current_request.url,