示例#1
0
 def test_get_purchased_phone_number_from_managed_identity(self):
     endpoint, access_key = parse_connection_str(self.connection_str)
     credential = create_token_credential()
     phone_number_client = PhoneNumbersClient(endpoint, credential)
     phone_number = phone_number_client.get_purchased_phone_number(
         self.phone_number)
     assert phone_number.phone_number == self.phone_number
示例#2
0
 def test_list_purchased_phone_numbers_from_managed_identity(self):
     endpoint, access_key = parse_connection_str(self.connection_str)
     credential = create_token_credential()
     phone_number_client = PhoneNumbersClient(
         endpoint,
         credential,
         http_logging_policy=get_http_logging_policy())
     phone_numbers = phone_number_client.list_purchased_phone_numbers()
     assert phone_numbers.next()
示例#3
0
 def test_update_phone_number_capabilities_from_managed_identity(self):
     endpoint, access_key = parse_connection_str(self.connection_str)
     credential = create_token_credential()
     phone_number_client = PhoneNumbersClient(endpoint, credential)
     poller = phone_number_client.begin_update_phone_number_capabilities(
         self.phone_number,
         PhoneNumberCapabilityType.INBOUND_OUTBOUND,
         PhoneNumberCapabilityType.INBOUND,
         polling=True)
     poller.result()
     assert poller.status() == PhoneNumberOperationStatus.SUCCEEDED.value
示例#4
0
 def test_search_available_phone_numbers_from_managed_identity(self):
     endpoint, access_key = parse_connection_str(self.connection_str)
     credential = create_token_credential()
     phone_number_client = PhoneNumbersClient(endpoint, credential)
     capabilities = PhoneNumberCapabilities(
         calling=PhoneNumberCapabilityType.INBOUND,
         sms=PhoneNumberCapabilityType.INBOUND_OUTBOUND)
     poller = phone_number_client.begin_search_available_phone_numbers(
         self.country_code,
         PhoneNumberType.TOLL_FREE,
         PhoneNumberAssignmentType.APPLICATION,
         capabilities,
         polling=True)
     assert poller.result()
示例#5
0
def get_new_phonenumber(connection_string):
    try:
        phone_numbers_client = PhoneNumbersClient.from_connection_string(
            connection_string)
        capabilities = PhoneNumberCapabilities(
            calling=PhoneNumberCapabilityType.INBOUND,
            sms=PhoneNumberCapabilityType.INBOUND_OUTBOUND
        )
        search_poller = phone_numbers_client.begin_search_available_phone_numbers(
            "US",
            PhoneNumberType.TOLL_FREE,
            PhoneNumberAssignmentType.APPLICATION,
            capabilities,
            area_code="833",
            polling=True
        )
        search_result = search_poller.result()

        purchase_poller = phone_numbers_client.begin_purchase_phone_numbers(
            search_result.search_id, polling=True)
        purchase_poller.result()
        if(purchase_poller.status() == 'succeeded'):
            phone_number_list = search_result.phone_numbers
            for phone_number in phone_number_list:
                return phone_number

    except Exception as ex:
        return TEST_RECIPIENT_PHONENUMBER_DEFAULT
示例#6
0
 def test_update_phone_number_capabilities_from_managed_identity(self):
     endpoint, access_key = parse_connection_str(self.connection_str)
     credential = create_token_credential()
     phone_number_client = PhoneNumbersClient(
         endpoint,
         credential,
         http_logging_policy=get_http_logging_policy())
     current_phone_number = phone_number_client.get_purchased_phone_number(
         self.phone_number)
     calling_capabilities = PhoneNumberCapabilityType.INBOUND if current_phone_number.capabilities.calling == PhoneNumberCapabilityType.OUTBOUND else PhoneNumberCapabilityType.OUTBOUND
     sms_capabilities = PhoneNumberCapabilityType.INBOUND_OUTBOUND if current_phone_number.capabilities.sms == PhoneNumberCapabilityType.OUTBOUND else PhoneNumberCapabilityType.OUTBOUND
     poller = phone_number_client.begin_update_phone_number_capabilities(
         self.phone_number,
         sms_capabilities,
         calling_capabilities,
         polling=True)
     assert poller.result()
     assert poller.status() == PhoneNumberOperationStatus.SUCCEEDED.value
 def _get_managed_identity_phone_number_client(self):
     endpoint, access_key = parse_connection_str(self.connection_str)
     credential = create_token_credential()
     return PhoneNumbersClient(
         endpoint, 
         credential, 
         http_logging_policy=get_http_logging_policy(),
         headers_policy=get_header_policy()
     )
示例#8
0
def cf_communication_phonenumbers(cli_ctx, kwargs):
    from azure.communication.phonenumbers import PhoneNumbersClient

    connection_string = kwargs.pop('connection_string', None)
    if connection_string is None:
        error_msg = 'Please specify --connection-string, or set AZURE_COMMUNICATION_CONNECTION_STRING.'
        raise RequiredArgumentMissingError(error_msg)

    client = PhoneNumbersClient.from_connection_string(connection_string)
    return client
 def test_purchase_phone_number_from_managed_identity(self):
     endpoint, access_key = parse_connection_str(self.connection_str)
     credential = create_token_credential()
     phone_number_client = PhoneNumbersClient(endpoint, credential)
     capabilities = PhoneNumberCapabilities(
         calling = PhoneNumberCapabilityType.INBOUND,
         sms = PhoneNumberCapabilityType.INBOUND_OUTBOUND
     )
     search_poller = phone_number_client.begin_search_available_phone_numbers(
         self.country_code,
         PhoneNumberType.TOLL_FREE,
         PhoneNumberAssignmentType.APPLICATION,
         capabilities,
         polling = True
     )
     phone_number_to_buy = search_poller.result()
     purchase_poller = phone_number_client.begin_purchase_phone_numbers(phone_number_to_buy.search_id, polling=True)
     purchase_poller.result()
     release_poller = phone_number_client.begin_release_phone_number(phone_number_to_buy.phone_numbers[0])
     assert release_poller.status() == PhoneNumberOperationStatus.SUCCEEDED.value
 def setUp(self):
     super(PhoneNumbersClientTest, self).setUp()
     if self.is_playback():
         self.phone_number = "sanitized"
         self.country_code = "US"
     else:
         self.phone_number = os.getenv("AZURE_COMMUNICATION_SERVICE_PHONE_NUMBER")
         self.country_code = os.getenv("AZURE_COMMUNICATION_SERVICE_COUNTRY_CODE", "US")
     self.phone_number_client = PhoneNumbersClient.from_connection_string(self.connection_str)
     self.recording_processors.extend([
         BodyReplacerProcessor(
             keys=["id", "token", "phoneNumber"]
         ),
         PhoneNumberUriReplacer(),
         ResponseReplacerProcessor()])
    python update_phone_number_capabilities_sample.py
    Set the environment variables with your own values before running the sample:
    1) AZURE_COMMUNICATION_SERVICE_CONNECTION_STRING - The connection string including your endpoint and 
        access key of your Azure Communication Service
    2) AZURE_COMMUNICATION_SERVICE_PHONE_NUMBER - The phone number you want to update
"""

import os
from azure.communication.phonenumbers import (PhoneNumbersClient,
                                              PhoneNumberCapabilityType)

connection_str = os.getenv('AZURE_COMMUNICATION_SERVICE_CONNECTION_STRING')
phone_number_to_update = os.getenv(
    "AZURE_COMMUNICATION_SERVICE_PHONE_NUMBER"  # e.g. "+15551234567"
)
phone_numbers_client = PhoneNumbersClient.from_connection_string(
    connection_str)


def update_phone_number_capabilities():
    poller = phone_numbers_client.begin_update_phone_number_capabilities(
        phone_number_to_update,
        PhoneNumberCapabilityType.INBOUND_OUTBOUND,
        PhoneNumberCapabilityType.INBOUND,
        polling=True)
    poller.result()
    print('Status of the operation: ' + poller.status())


if __name__ == '__main__':
    update_phone_number_capabilities()
示例#12
0
def cf_communication_phonenumbers(cli_ctx, kwargs):
    from azure.communication.phonenumbers import PhoneNumbersClient
    connection_string = kwargs.pop('connection_string', None)
    client = PhoneNumbersClient.from_connection_string(connection_string)
    return client
示例#13
0
FILE: managed_identity_authentication_sample.py
DESCRIPTION:
    This sample demonstrates how to authenticate the PhoneNumbersClient using managed identity
USAGE:
    python managed_identity_authentication_sample.py
    Set the environment variables with your own values before running the sample:
    1) AZURE_COMMUNICATION_SERVICE_CONNECTION_STRING - The connection string of your Azure Communication Service resource
    2) AZURE_CLIENT_ID - The id of your registered Azure Active Directory application
    3) AZURE_CLIENT_SECRET - A client secret created for your registered AAD aplication
    4) AZURE_TENANT_ID - The tenant in which this application can be found
"""

import os
from azure.communication.phonenumbers import PhoneNumbersClient
from azure.communication.phonenumbers._shared.utils import parse_connection_str
from azure.identity import DefaultAzureCredential

connection_str = os.getenv('AZURE_COMMUNICATION_SERVICE_CONNECTION_STRING')
endpoint, _ = parse_connection_str(connection_str)
phone_numbers_client = PhoneNumbersClient(endpoint, DefaultAzureCredential())

def list_purchased_phone_numbers_using_managed_identity():
    purchased_phone_numbers = phone_numbers_client.list_purchased_phone_numbers()
    print('Purchased phone numbers:')
    for acquired_phone_number in purchased_phone_numbers:
        print(acquired_phone_number.phone_number)


if __name__ == '__main__':
    list_purchased_phone_numbers_using_managed_identity()
示例#14
0
 def test_list_acquired_phone_numbers_from_managed_identity(self):
     endpoint, access_key = parse_connection_str(self.connection_str)
     credential = create_token_credential()
     phone_number_client = PhoneNumbersClient(endpoint, credential)
     phone_numbers = phone_number_client.list_acquired_phone_numbers()
     assert phone_numbers.next()