Skip to content

Operator Connect

This set of API's allow to link a MS Teams Operator Connect consent to the Fusion platform.

Starting the onboarding process

The onboarding process is used to connect an existing Operator Connect consent to an existing Fusion subscription. Unless the direct routing onboarding process, this one is really simple and doesn't require asynchronous executions.

Request

Endpoint

POST /api/v01/draas/{draas_instance}/tenants/{uuid}/subscriptions/{subscription_id}/msteams/oc

Authorization

Required role

tenants.instance.subscriptions.instance.msteams.oc.wizard.start

Path Parameters

ParameterTypeDescription
draas_instancestringSee common parameters
uuidstringA system generated unique ID (UUID) identifying the tenant to which the subscription belongs
sub_idstringA system generated ID identifying the subscription for which you want to onboard the Operator Connect consent

URL/Query parameters

N/A

Body
ParameterTypeDescriptionRequired?
emailstringOne of the emails from the list of Operator Connect consentno
companyNamestringCompany name from Operator Connect consentno
msTenantIdstringThe MS Tenant ID as found on Azure ADno

Only one property

The launching of the wizard is done by using one and only one of the body properties described here above. The logic will retrieve MS Teams tenant and email address to be used for eventual code confirmation from any of these properties.

Example
json
{
  "email": "christophe@netaxisdev.onmicrosoft.com"
}

Response

Status codes

ParameterDescription
200According to the Fusion system flag specifying if code confirmation is required, the tenant is either onboarded or waiting for code confirmation
400The wizard has ended with an error
403The API consumer doesn't have sufficient rights to perform this action
500Uncatched error on server side

Success

Body
ParameterTypeDescriptionConditional?
messagestringMessage specifying the final status of the onboarding processno
Example
json
{
   "message": "Code sent to contact person for confirmation"
}

Sending the onboarding confirmation code

If set at Fusion system level, onboarding may require a confirmation code to be sent to the email address of a consent user for validation. The received code should then be used by this API to complete the onboarding process.

Request

Endpoint

PUT /api/v01/draas/{draas_instance}/tenants/{uuid}/subscriptions/{subscription_id}/msteams/oc

Authorization

Required role

tenants.instance.subscriptions.instance.msteams.oc.wizard.confirmation

Path Parameters

ParameterTypeDescription
draas_instancestringSee common parameters
uuidstringA system generated unique ID (UUID) identifying the tenant to which the subscription belongs
sub_idstringA system generated ID identifying the subscription for which you want to onboard the Operator Connect consent

URL/Query parameters

N/A

Body
ParameterTypeDescriptionrequired?
codestringA 4 digits code received by email for confirmationyes

Example

json
{
    "code": "2652"
}

Response

Status codes

ParameterDescription
200Operator Connect consent has been successfuly linked to the Fusion subscription
400An error occurred or entered code was not valid
403The API consumer doesn't have sufficient rights to perform this action
404The path requested doesn't exists for the provided tenant and subscription ID's or the MS Teams tenant has not been linked yet
500Uncatched error on server side

Success

Body
ParameterTypeDescriptionConditional?
messagestringMessage specifying the final status of the onboarding processno
Example
json
{
   "message": "MS Teams tenant successfully onboarded to Operator Connect"
}

Use this API to unlink an Operator Connect consent from your subscription. To do so, you will first have to release all provisioned phone numbers by using this API

Request

Endpoint

DELETE /api/v01/draas/{draas_instance}/tenants/{uuid}/subscriptions/{subscription_id}/msteams/oc

Authorization

Required role

tenants.instance.subscriptions.instance.msteams.oc.unlink

Path Parameters

ParameterTypeDescription
draas_instancestringSee common parameters
uuidstringA system generated unique ID (UUID) identifying the tenant to which the subscription belongs
sub_idstringA system generated ID identifying the subscription from which you want to unlink the Operator Connect consent

URL/Query parameters

N/A

Body

N/A

Response

Status codes

ParameterDescription
204The Operator Connect consent has been successfuly unlinked
400The unlinking process ended with an error or there are still phone numbers provisioned
403The API consumer doesn't have sufficient rights to perform this action
500Uncatched error on server side

Get Operator Connect civic addresses

When adding numbers to Operator Connect, a civic address used as emergency location has to be defined. This API gets the list of existing civic addresses that might be used in such case.

Request

Endpoint

GET /api/v01/draas/{draas_instance}/tenants/{uuid}/subscriptions/{subscription_id}/msteams/oc/civic_addresses

Authorization

Required role

tenants.instance.subscriptions.instance.msteams.oc.civic_addresses.read

Path Parameters

ParameterTypeDescription
draas_instancestringSee common parameters
uuidstringA system generated unique ID (UUID) identifying the tenant to which the subscription belongs
sub_idstringA system generated ID identifying the subscription for which you have onboarded to Operator Connect consent

URL/Query parameters

N/A

Body

N/A

Response

Status codes

ParameterDescription
200The list of available civic addresses is returned
400An error has occurred while retrieving the list of civic addresses
403The API consumer doesn't have sufficient rights to perform this action
404The path requested doesn't exists for the provided tenant and subscription ID's or the MS Teams tenant has not been linked yet
500Uncatched error on server side

Success

Body
ParameterTypeDescriptionConditional?
civicAddressesarrayList of existing civic addresses to be used for adding numbers to Operator Consentno
Civic Address Object
ParameterTypeDescriptionConditional?
idstringMicrosoft UUID reference to the civic address, to be used when adding numbers to Operator Connect consentno
streetstringStreet name of the civic addressno
numberstringStreet number of the civic addressno
citystringCity name of the civic addressno
statestringState name of the civic addressno
postalCodestringPostal Code of the civic addressno
countrystringCountry code of the civic address as a ISO 3166 alpha-2 codeno
companyNamestringCompany name of the civic addressno
descriptionstringText describing the civic addressno
locationarrayList of available locations for the civic addressno
Location Object
ParameterTypeDescriptionConditional?
idstringMicrosoft UUID reference to the locationno
descriptionstringText describing the locationyes
defaultbooleanFlag telling which of the locations is the default oneno
Example
json
{
    "civicAddresses": [
        {
            "id": "0de2d930-a96e-11ec-8511-67212b730a2b",
            "street": "Oosthuizen Drive",
            "number": "23",
            "city": "Roodepoort",
            "state": "Gauteng",
            "postalCode": "1709",
            "country": "ZA",
            "companyName": "Netaxis Dev",
            "description": "South Africa",
            "locations": [
                {
                    "id": "44d95fd4-19b1-4278-b93a-43bb80161958",
                    "description": "South Africa",
                    "default": true
                },
                {
                    "id": "2c2c7310-a96e-11ec-8511-67212b730a2b",
                    "default": false
                },
                {
                    "id": "2fccf260-a96e-11ec-8511-67212b730a2b",
                    "default": false
                }
            ]
        }
    ]
}

Get Operator Connect allowed usages

When adding numbers to Operator Connect, a usage has to be specified. This API gets the list of allowed usages and their characteristics.

Request

Endpoint

GET /api/v01/draas/{draas_instance}/tenants/{uuid}/subscriptions/{subscription_id}/msteams/oc/allowed_usages

Authorization

Required role

tenants.instance.subscriptions.instance.msteams.oc.allowed_usages.read

Path Parameters

ParameterTypeDescription
draas_instancestringSee common parameters
uuidstringA system generated unique ID (UUID) identifying the tenant to which the subscription belongs
sub_idstringA system generated ID identifying the subscription for which you have onboarded to Operator Connect consent

URL/Query parameters

N/A

Body

N/A

Response

Status codes

ParameterDescription
200The list of available allowed usages is returned
400An error has occurred while retrieving the list of allowed usages
403The API consumer doesn't have sufficient rights to perform this action
404The path requested doesn't exists for the provided tenant and subscription ID's or the MS Teams tenant has not been linked yet
500Uncatched error on server side

Success

Body
ParameterTypeDescriptionConditional?
usagesarrayList of allowed usages to be used for adding numbers to Operator Consentno
Allowed Usage Object
ParameterTypeDescriptionConditional?
idstringMicrosoft UUID reference to the civic address, to be used when adding numbers to Operator Connect consentno
serviceTypestringStreet name of the civic addressno
descriptionstringStreet number of the civic addressno
addressRequiredbooleanCity name of the civic addressno
capabilitiesarrayList of available capabilities, posssible values are InboundCalling or OutboundCallingno
allowedNumberTypesarrayList of available phone number types as checked by the Google phonumbers libraryno
Example
json
{
    "usages": [
        {
            "id": "CallingUserAssignment",
            "serviceType": "user",
            "description": "Numbers that can be assigned to users",
            "addressRequired": true,
            "capabilities": [
                "InboundCalling",
                "OutboundCalling"
            ],
            "allowedNumberTypes": [
                "FIXED_LINE",
                "VOIP"
            ]
        },
        {
            "id": "FirstPartyAppAssignment",
            "serviceType": "resourceAccount",
            "description": "Numbers that can be assigned to resource users",
            "addressRequired": false,
            "capabilities": [
                "InboundCalling",
                "OutboundCalling"
            ],
            "allowedNumberTypes": [
                "FIXED_LINE",
                "VOIP",
                "TOLLFREE",
                "UAN",
                "PREMIUM_RATE"
            ]
        }
    ]
}

Use this API to list phone numbers added to an Operator Connect consent. Note that this API gives priority to the Microsoft list, meaning you get all numbers of the Operator Connect consent, including numbers that have not been subscribed through the Fusion platform.

Request

Endpoint

GET /api/v01/draas/{draas_instance}/tenants/{uuid}/subscriptions/{subscription_id}/msteams/oc/numbers

Authorization

Required role

tenants.instance.subscriptions.instance.msteams.oc.numbers.read

Path Parameters

ParameterTypeDescription
draas_instancestringSee common parameters
uuidstringA system generated unique ID (UUID) identifying the tenant to which the subscription belongs
sub_idstringA system generated ID identifying the subscription for which you have onboarded to Operator Connect consent

URL/Query parameters

ParameterTypeDescriptionRequired?
page_sizeintegerUsed for pagination, determines the maximum number of records on one page of results (defaults to 10)no
nextstringA token used to get the next records in the list. This token is taken back from the results of the previous callno
searchstringUse this parameter to search for all numbers that contains this string. Phone number in e.164 formatno
Body

N/A

Response

Status codes

ParameterDescription
200The list of numbers that have been added to Operator Connect consent
400An error occurred while retrieving the list of numbers
403The API consumer doesn't have sufficient rights to perform this action
404The path requested doesn't exists for the provided tenant and subscription ID's or the MS Teams tenant has not been linked yet
500Uncatched error on server side

Success

Body
ParameterTypeDescriptionConditional?
nextstringA token used for infinite scrolling, to be used in the next call to retrieve subsequent records. Only present if the list of numbers has to be continuedyes
numbersarrayA list of phone number objects enriched with Fusion data if anyno
Resource Account Object
ParameterTypeDescriptionConditional?
msTeamsobjectMS Teams phone number properties as described by a MS Teams phone number objectno
draasobjectFusion phone number as described by a Fusion phone number objectyes
MS Teams Phone Number Object
ParameterTypeDescriptionConditional?
countrystringCountry code in ISO 3166 alpha-2 formatno
numberstringMS Teams phone number in international formatno
provisionedOnMSTeamsbooleanFlag that indicates if the number has been provisioned in MS Teamsno
batchstringMS Teams reference of the uploading batch when the phone number has been provisionedno
uploadedOnstringDate and time when the phone number was uploaded to MS Teamsno
usagestringAllowed usage of the phone numbers in Teamsno
Fusion Phone Number Object
ParameterTypeDescriptionConditional?
idintegerInternal ID of the phone numberno
connectionIdintegerInternal ID of the connection made between the phone number and a MS Teams userno
countryCodestringCountry code of the number you want to deleteno
nsnintegerNational subscriber number. E.g. in +32-16474942, +32 is the country code and 16474942 is the nsnno
fullNumberstringPhone number assigned to Operator Connect consent in international formatno
Example
json
{
    "next": "cGFnZV9zaXplPTEwJnBhZ2U9Mg==",
    "numbers": [
        {
            "msTeams": {
                "country": "ZA",
                "number": "+27102850041",
                "provisionedOnMSTeams": true,
                "batch": "d536d79d-bd92-4529-b308-9d2582024749",
                "uploadedOn": "5/23/2022 11:42:04 AM (GMT)",
                "usage": "User assignment"
            },
            "draas": {
                "id": 1232,
                "connectionId": 369,
                "countryCode": 27,
                "nsn": "102850041",
                "fullNumber": "+27102850041"
            }
        },
        {
            "msTeams": {
                "country": "ZA",
                "number": "+27102850044",
                "provisionedOnMSTeams": true,
                "batch": "d536d79d-bd92-4529-b308-9d2582024749",
                "uploadedOn": "5/23/2022 11:42:04 AM (GMT)",
                "usage": "User assignment"
            },
            "draas": {
                "id": 1235,
                "connectionId": 365,
                "countryCode": 27,
                "nsn": "102850044",
                "fullNumber": "+27102850044"
            }
        }
    ]
}

Use this API to list phone numbers added to an Operator Connect consent that are still free for assignation to a MS Teams user or resource.

Request

Endpoint

GET /api/v01/draas/{draas_instance}/tenants/{uuid}/subscriptions/{subscription_id}/msteams/oc/free_numbers

Authorization

Required role

tenants.instance.subscriptions.instance.msteams.oc.free_numbers.read

Path Parameters

ParameterTypeDescription
draas_instancestringSee common parameters
uuidstringA system generated unique ID (UUID) identifying the tenant to which the subscription belongs
sub_idstringA system generated ID identifying the subscription for which you have onboarded to Operator Connect consent

URL/Query parameters

ParameterTypeDescriptionRequired?
usagestringAllow to filter the phone number list on a specific usage. Allowed values are CallingUserAssignment or FirstPartyAppAssignment as returned by this APIno
countrystringAllow to filter the phone number list on a country code in ISO 3166 alpha-2 formatno
Body

N/A

Response

Status codes

ParameterDescription
200The list of numbers that are still free for assignment
400An error occurred while retrieving the list of free numbers
403The API consumer doesn't have sufficient rights to perform this action
404The path requested doesn't exists for the provided tenant and subscription ID's or the MS Teams tenant has not been linked yet
500Uncatched error on server side

Success

Body
ParameterTypeDescriptionConditional?
freeNumbersarrayA list of phone numbers free for assignment in international formatno
Example
json
{
    "freeNumbers": [
        "+27102850040",
        "+27102850041",
        "+27102850042",
        "+27102850043",
        "+27102850044",
        "+27102850045"
    ]
}

Use this API to add phone numbers to an Operator Connect consent. To add phone numbers, you have to:

  • Have enough Fusion MS Teams user licenses
  • Have enough entitlements in a geo region you want to use and enough phone numbers available from this entitlement or valid ported-in numbers

Request

Endpoint

POST /api/v01/draas/{draas_instance}/tenants/{uuid}/subscriptions/{subscription_id}/msteams/oc/numbers

Authorization

Required role

tenants.instance.subscriptions.instance.msteams.oc.numbers.create

Path Parameters

ParameterTypeDescription
draas_instancestringSee common parameters
uuidstringA system generated unique ID (UUID) identifying the tenant to which the subscription belongs
sub_idstringA system generated ID identifying the subscription for which you have onboarded to Operator Connect consent

URL/Query parameters

N/A

Body
ParameterTypeDescriptionrequired?
civicAddressIdstringThe civic address id as returned by this APIyes
usagestringThe usage id as returned by this APIyes
numbersarrayArray of international subscriber numbers (string starting with + sign) that you want to addno
rangesarrayArray of arrays where each array contains 2 international subscriber numbers (both string starting with + sign): range start & range endno
Example
json
{
    "civicAddressId": "0de2d930-a96e-11ec-8511-67212b730a2b",
    "usage": "CallingUserAssignment",
    "countryCode": "+27",
    "numbers": [
      "+27102850040",
      "+27102850041"
    ],
    "ranges": [
      ["+27102850042", "+27102850045"]
    ]
}

Response

Status codes

ParameterDescription
200The numbers have been added to Operator Connect consent
400An error occurred (subscription doesn't own requested numbers or there are not enough MS Teams user licenses available)
403The API consumer doesn't have sufficient rights to perform this action
404The path requested doesn't exists for the provided tenant and subscription ID's or the MS Teams tenant has not been linked yet
500Uncatched error on server side

Success

Body
ParameterTypeDescriptionConditional?
totalintegerTotal amount of numbers you tried to add to the subscriptionno
assignedintegerTotal amount of numbers that really have been assigned to the subscriptionno
alreadyAssignedintegerTotal amount of numbers that were provided in the request but already added beforeno
Example
json
{
    "total": 6,
    "assigned": 6,
    "alreadyAssigned": 0
}

Use this API to remove phone numbers from an Operator Connect consent. To remove a phone number, it has to be free and not yet assigned to a MS Teams user or resource.

Request

Endpoint

DELETE /api/v01/draas/{draas_instance}/tenants/{uuid}/subscriptions/{subscription_id}/msteams/oc/numbers

Authorization

Required role

tenants.instance.subscriptions.instance.msteams.oc.numbers.delete

Path Parameters

ParameterTypeDescription
draas_instancestringSee common parameters
uuidstringA system generated unique ID (UUID) identifying the tenant to which the subscription belongs
sub_idstringA system generated ID identifying the subscription for which you have onboarded to Operator Connect consent

URL/Query parameters

N/A

Body
ParameterTypeDescriptionRequired
numbersarrayList containing all number objects that have to be deletedno
Number object
ParameterTypeDescriptionRequired
countryCodestringCountry code of the number you want to deleteno
nsnintegerNational subscriber number. E.g. in +32-16474942, +32 is the country code and 16474942 is the nsnno
Example
json
{
  "numbers": [
    { "countryCode": "+27", "nsn": 102850040 },
    { "countryCode": "+27", "nsn": 102850041 },
    { "countryCode": "+27", "nsn": 102850042 }
  ]
}

Response

Status codes

ParameterDescription
200The numbers have been removed from Operator Connect consent
400An error occurred (some of the numbers are still assigned or doesn't belong to the subscription)
403The API consumer doesn't have sufficient rights to perform this action
404The path requested doesn't exists for the provided tenant and subscription ID's or the MS Teams tenant has not been linked yet
500Uncatched error on server side

Success

Body
ParameterTypeDescriptionRequired
numbersarrayList containing all number objects that have to be deletedno
Number to Delete object
ParameterTypeDescriptionRequired
countryCodestringCountry code of the number you want to deleteno
nsnintegerNational subscriber number. E.g. in +32-16474942, +32 is the country code and 16474942 is the nsnno
Example
json
{
  "numbers": [
    { "countryCode": "+27", "nsn": 102850040 },
    { "countryCode": "+27", "nsn": 102850041 },
    { "countryCode": "+27", "nsn": 102850042 }
  ]
}

Adds or removes a phone number to or from a user of an Operator Connect consent. Note that to assign a phone number to a user of an Operator Connect consent, the requesting tenant has to hold a valid subscription with some phone numbers assigned to the consent. Trying to add a phone number that is not assigned to an Operator Connect consent or already belonging to another user will result in an error.

Request

Endpoint

PUT /api/v01/draas/{draas_instance}/tenants/{uuid}/subscriptions/{subscription_id}/msteams/oc/users/{ms_user_id}

Authorization

Required role

tenants.instance.subscriptions.instance.msteams.oc.users.instance.update

Path Parameters

ParameterTypeDescription
draas_instancestringSee common parameters
uuidstringA system generated unique ID (UUID) identifying the tenant managing the subscription
sub_idintegerIndex of a subscription for which you want to create or update the MS Teams administrator
ms_user_idstringMS Teams Azure AD Object ID identifying the user

URL/Query parameters

N/A

Body
ParameterTypeDescriptionRequired
phoneNumberstring or nullPhone number to be assigned to the Operator Connect user. Set to null to remove a phone numberyes

Example

json
{
  "phoneNumber": "+27102851554"
}

Response

Status codes

ParameterDescription
200The phone number was successfully added
204The phone number was successfully removed
400Error while modifying the phone number
403The API consumer doesn't have sufficient rights to perform this action
404The path tenant / subscription doesn't exist
500Uncatched error on server side

Success

Body
ParameterTypeDescriptionConditional?
idintegerInternal ID of the Operator Connect userno
connectionIdintegerInternal ID of the connection made between the phone number and the Operator Connect userno
numberIdintegerInternal ID of the phone number linked to the Operator Connect userno
phoneNumberstringPhone number assigned to the Operator Connect userno
Example
json
{
  "id": 11,
  "connectionId": 8,
  "numberId": 441,
  "phone_number": "+31302861233"
}