Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

Build Status

Azure Communication Administration Package client library for Python

This package has been deprecated. Please use azure-communication-identity and azure-communication-phonenumbers instead.

The requested features were implemented in the new libraries. See change log for more details.

Getting started

Prerequisites

  • Python 2.7, or 3.5 or later is required to use this package.
  • You must have an Azure subscription

Install the package

Install the Azure Communication Administration client library for Python with pip:

pip install azure-communication-administration

Key concepts

CommunicationIdentityClient

CommunicationIdentityClient provides operations for:

  • Create/delete identities to be used in Azure Communication Services. Those identities can be used to make use of Azure Communication offerings and can be scoped to have limited abilities through token scopes.

  • Create/revoke scoped user access tokens to access services such as chat, calling, sms. Tokens are issued for a valid Azure Communication identity and can be revoked at any time.

CommunicationPhoneNumberClient

Initializing Phone Number Client

# You can find your endpoint and access token from your resource in the Azure Portal
import os
from azure.communication.administration import PhoneNumberAdministrationClient

connection_str = os.getenv('AZURE_COMMUNICATION_SERVICE_CONNECTION_STRING')
phone_number_administration_client = PhoneNumberAdministrationClient.from_connection_string(connection_str)

Phone plans overview

Phone plans come in two types; Geographic and Toll-Free. Geographic phone plans are phone plans associated with a location, whose phone numbers' area codes are associated with the area code of a geographic location. Toll-Free phone plans are phone plans not associated location. For example, in the US, toll-free numbers can come with area codes such as 800 or 888.

All geographic phone plans within the same country are grouped into a phone plan group with a Geographic phone number type. All Toll-Free phone plans within the same country are grouped into a phone plan group.

Searching and Acquiring numbers

Phone numbers search can be search through the search creation API by providing a phone plan id, an area code and quantity of phone numbers. The provided quantity of phone numbers will be reserved for ten minutes. This search of phone numbers can either be cancelled or purchased. If the search is cancelled, then the phone numbers will become available to others. If the search is purchased, then the phone numbers are acquired for the Azure resources.

Configuring / Assigning numbers

Phone numbers can be assigned to a callback URL via the configure number API. As part of the configuration, you will need an acquired phone number, callback URL and application id.

Examples

The following section provides several code snippets covering some of the most common Azure Communication Services tasks, including:

Create/delete Azure Communication Service identities

Create/revoke scoped user access tokens

Communication Phone number

Get Countries

phone_number_administration_client = PhoneNumberAdministrationClient.from_connection_string(connection_str)

supported_countries = phone_number_administration_client.list_all_supported_countries()
for supported_country in supported_countries:
    print(supported_country)

Get Phone Plan Groups

Phone plan groups come in two types, Geographic and Toll-Free.

phone_number_administration_client = PhoneNumberAdministrationClient.from_connection_string(connection_str)

phone_plan_groups_response = phone_number_administration_client.list_phone_plan_groups(
    country_code='<country code>'
)
for phone_plan_group in phone_plan_groups_response:
    print(phone_plan_group)

Get Phone Plans

Unlike Toll-Free phone plans, area codes for Geographic Phone Plans are empty. Area codes are found in the Area Codes API.

phone_number_administration_client = PhoneNumberAdministrationClient.from_connection_string(connection_str)

phone_plans_response = phone_number_administration_client.list_phone_plans(
    country_code='<country code>',
    phone_plan_group_id='<phone plan group id>'
)
for phone_plan in phone_plans_response:
    print(phone_plan)

Get Location Options

For Geographic phone plans, you can query the available geographic locations. The locations options are structured like the geographic hierarchy of a country. For example, the US has states and within each state are cities.

phone_number_administration_client = PhoneNumberAdministrationClient.from_connection_string(connection_str)

location_options_response = phone_number_administration_client.get_phone_plan_location_options(
    country_code='<country code>',
    phone_plan_group_id='<phone plan group id>',
    phone_plan_id='<phone plan id>'
)
print(location_options_response)

Get Area Codes

Fetching area codes for geographic phone plans will require the the location options queries set. You must include the chain of geographic locations traversing down the location options object returned by the GetLocationOptions API.

phone_number_administration_client = PhoneNumberAdministrationClient.from_connection_string(connection_str)

all_area_codes = phone_number_administration_client.get_all_area_codes(
    location_type="NotRequired",
    country_code='<country code>',
    phone_plan_id='<phone plan id>'
)
print(all_area_codes)

Create Search

from azure.communication.administration import CreateSearchOptions
phone_number_administration_client = PhoneNumberAdministrationClient.from_connection_string(connection_str)

searchOptions = CreateSearchOptions(
    area_code='<area code>',
    description="testsearch20200014",
    display_name="testsearch20200014",
    phone_plan_ids=['<phone plan id>'],
    quantity=1
)
search_response = phone_number_administration_client.create_search(
    body=searchOptions
)
print(search_response)

Get search by id

phone_number_administration_client = PhoneNumberAdministrationClient.from_connection_string(connection_str)

phone_number_search_response = phone_number_administration_client.get_search_by_id(
    search_id='<search id>'
)
print(phone_number_search_response)

Purchase Search

phone_number_administration_client = PhoneNumberAdministrationClient.from_connection_string(connection_str)

phone_number_administration_client.purchase_search(
    search_id='<search id to purchase>'
)

Troubleshooting

The Azure Communication Service Identity client will raise exceptions defined in Azure Core.

Next steps

More sample code

Please take a look at the samples directory for detailed examples of how to use this library to manage identities and tokens.

Provide Feedback

If you encounter any bugs or have suggestions, please file an issue in the Issues section of the project

Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.microsoft.com.

When you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.

Metadata

Release files for azure-communication-administration 1.0.0b4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for azure-communication-administration 1.0.0b4
File Size Uploaded
azure-communication-administration-1.0.0b4.zip 117.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for azure-communication-administration 1.0.0b4
File Interpreter ABI Platform
azure_communication_administration-1.0.0b4-py2.py3-none-any.whl Python 3, Python 2 none any Details

Total release size: 190.4 kB

Release files / azure-communication-administration-1.0.0b4.zip

Download URL azure-communication-administration-1.0.0b4.zip
Size 117.8 kB
Tags Source
SHA-256 checksum
How to use checksums
a9190d2aa70c34147f7a978ceac1b41d5bcae7a79e84918b90da1a37981c7068
BLAKE2b-256 checksum
How to use checksums
7bdc5fe62594f83f5ec72d36147eaa5f3982cd94ac7c44df9e885176665a457a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/3.10.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.4

Release files / azure_communication_administration-1.0.0b4-py2.py3-none-any.whl

Download URL azure_communication_administration-1.0.0b4-py2.py3-none-any.whl
Size 72.6 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
58f10b5782e4d023dd66f20f6814a1eae24d95160526de346ba76d25b267c574
BLAKE2b-256 checksum
How to use checksums
2ff469f05e3b803db928e4ae3dab3fa1d6c0b74d825ed6003f0716575b5bdfa4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/3.10.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.4
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page