Services Communications Gateway Args
Manages a Voice Services Communications Gateways. !>NOTE: You must have signed an Operator Connect agreement with Microsoft to use this resource. For more information, see Prerequisites
. !>NOTE: Access to Azure Communications Gateway is restricted, see Get access to Azure Communications Gateway for your Azure subscription
for details.
Example Usage
import * as pulumi from "@pulumi/pulumi";
import * as azure from "@pulumi/azure";
const example = new azure.core.ResourceGroup("example", {
name: "example-resources",
location: "West Europe",
});
const exampleServicesCommunicationsGateway = new azure.voice.ServicesCommunicationsGateway("example", {
name: "example-vcg",
location: "West Europe",
resourceGroupName: example.name,
connectivity: "PublicAddress",
codecs: "PCMA",
e911Type: "DirectToEsrp",
platforms: [
"OperatorConnect",
"TeamsPhoneMobile",
],
serviceLocations: [
{
location: "eastus",
allowedMediaSourceAddressPrefixes: ["10.1.2.0/24"],
allowedSignalingSourceAddressPrefixes: ["10.1.1.0/24"],
esrpAddresses: ["198.51.100.3"],
operatorAddresses: ["198.51.100.1"],
},
{
location: "eastus2",
allowedMediaSourceAddressPrefixes: ["10.2.2.0/24"],
allowedSignalingSourceAddressPrefixes: ["10.2.1.0/24"],
esrpAddresses: ["198.51.100.4"],
operatorAddresses: ["198.51.100.2"],
},
],
autoGeneratedDomainNameLabelScope: "SubscriptionReuse",
apiBridge: JSON.stringify({}),
emergencyDialStrings: [
"911",
"933",
],
onPremMcpEnabled: false,
tags: {
key: "value",
},
microsoftTeamsVoicemailPilotNumber: "1",
});
import pulumi
import json
import pulumi_azure as azure
example = azure.core.ResourceGroup("example",
name="example-resources",
location="West Europe")
example_services_communications_gateway = azure.voice.ServicesCommunicationsGateway("example",
name="example-vcg",
location="West Europe",
resource_group_name=example.name,
connectivity="PublicAddress",
codecs="PCMA",
e911_type="DirectToEsrp",
platforms=[
"OperatorConnect",
"TeamsPhoneMobile",
],
service_locations=[
{
"location": "eastus",
"allowed_media_source_address_prefixes": ["10.1.2.0/24"],
"allowed_signaling_source_address_prefixes": ["10.1.1.0/24"],
"esrp_addresses": ["198.51.100.3"],
"operator_addresses": ["198.51.100.1"],
},
{
"location": "eastus2",
"allowed_media_source_address_prefixes": ["10.2.2.0/24"],
"allowed_signaling_source_address_prefixes": ["10.2.1.0/24"],
"esrp_addresses": ["198.51.100.4"],
"operator_addresses": ["198.51.100.2"],
},
],
auto_generated_domain_name_label_scope="SubscriptionReuse",
api_bridge=json.dumps({}),
emergency_dial_strings=[
"911",
"933",
],
on_prem_mcp_enabled=False,
tags={
"key": "value",
},
microsoft_teams_voicemail_pilot_number="1")
using System.Collections.Generic;
using System.Linq;
using System.Text.Json;
using Pulumi;
using Azure = Pulumi.Azure;
return await Deployment.RunAsync(() =>
{
var example = new Azure.Core.ResourceGroup("example", new()
{
Name = "example-resources",
Location = "West Europe",
});
var exampleServicesCommunicationsGateway = new Azure.Voice.ServicesCommunicationsGateway("example", new()
{
Name = "example-vcg",
Location = "West Europe",
ResourceGroupName = example.Name,
Connectivity = "PublicAddress",
Codecs = "PCMA",
E911Type = "DirectToEsrp",
Platforms = new[]
{
"OperatorConnect",
"TeamsPhoneMobile",
},
ServiceLocations = new[]
{
new Azure.Voice.Inputs.ServicesCommunicationsGatewayServiceLocationArgs
{
Location = "eastus",
AllowedMediaSourceAddressPrefixes = new[]
{
"10.1.2.0/24",
},
AllowedSignalingSourceAddressPrefixes = new[]
{
"10.1.1.0/24",
},
EsrpAddresses = new[]
{
"198.51.100.3",
},
OperatorAddresses = new[]
{
"198.51.100.1",
},
},
new Azure.Voice.Inputs.ServicesCommunicationsGatewayServiceLocationArgs
{
Location = "eastus2",
AllowedMediaSourceAddressPrefixes = new[]
{
"10.2.2.0/24",
},
AllowedSignalingSourceAddressPrefixes = new[]
{
"10.2.1.0/24",
},
EsrpAddresses = new[]
{
"198.51.100.4",
},
OperatorAddresses = new[]
{
"198.51.100.2",
},
},
},
AutoGeneratedDomainNameLabelScope = "SubscriptionReuse",
ApiBridge = JsonSerializer.Serialize(new Dictionary<string, object?>
{
}),
EmergencyDialStrings = new[]
{
"911",
"933",
},
OnPremMcpEnabled = false,
Tags =
{
{ "key", "value" },
},
MicrosoftTeamsVoicemailPilotNumber = "1",
});
});
package main
import (
"encoding/json"
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core"
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/voice"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
example, err := core.NewResourceGroup(ctx, "example", &core.ResourceGroupArgs{
Name: pulumi.String("example-resources"),
Location: pulumi.String("West Europe"),
})
if err != nil {
return err
}
tmpJSON0, err := json.Marshal(map[string]interface{}{})
if err != nil {
return err
}
json0 := string(tmpJSON0)
_, err = voice.NewServicesCommunicationsGateway(ctx, "example", &voice.ServicesCommunicationsGatewayArgs{
Name: pulumi.String("example-vcg"),
Location: pulumi.String("West Europe"),
ResourceGroupName: example.Name,
Connectivity: pulumi.String("PublicAddress"),
Codecs: pulumi.String("PCMA"),
E911Type: pulumi.String("DirectToEsrp"),
Platforms: pulumi.StringArray{
pulumi.String("OperatorConnect"),
pulumi.String("TeamsPhoneMobile"),
},
ServiceLocations: voice.ServicesCommunicationsGatewayServiceLocationArray{
&voice.ServicesCommunicationsGatewayServiceLocationArgs{
Location: pulumi.String("eastus"),
AllowedMediaSourceAddressPrefixes: pulumi.StringArray{
pulumi.String("10.1.2.0/24"),
},
AllowedSignalingSourceAddressPrefixes: pulumi.StringArray{
pulumi.String("10.1.1.0/24"),
},
EsrpAddresses: pulumi.StringArray{
pulumi.String("198.51.100.3"),
},
OperatorAddresses: pulumi.StringArray{
pulumi.String("198.51.100.1"),
},
},
&voice.ServicesCommunicationsGatewayServiceLocationArgs{
Location: pulumi.String("eastus2"),
AllowedMediaSourceAddressPrefixes: pulumi.StringArray{
pulumi.String("10.2.2.0/24"),
},
AllowedSignalingSourceAddressPrefixes: pulumi.StringArray{
pulumi.String("10.2.1.0/24"),
},
EsrpAddresses: pulumi.StringArray{
pulumi.String("198.51.100.4"),
},
OperatorAddresses: pulumi.StringArray{
pulumi.String("198.51.100.2"),
},
},
},
AutoGeneratedDomainNameLabelScope: pulumi.String("SubscriptionReuse"),
ApiBridge: pulumi.String(json0),
EmergencyDialStrings: pulumi.StringArray{
pulumi.String("911"),
pulumi.String("933"),
},
OnPremMcpEnabled: pulumi.Bool(false),
Tags: pulumi.StringMap{
"key": pulumi.String("value"),
},
MicrosoftTeamsVoicemailPilotNumber: pulumi.String("1"),
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azure.core.ResourceGroup;
import com.pulumi.azure.core.ResourceGroupArgs;
import com.pulumi.azure.voice.ServicesCommunicationsGateway;
import com.pulumi.azure.voice.ServicesCommunicationsGatewayArgs;
import com.pulumi.azure.voice.inputs.ServicesCommunicationsGatewayServiceLocationArgs;
import static com.pulumi.codegen.internal.Serialization.*;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var example = new ResourceGroup("example", ResourceGroupArgs.builder()
.name("example-resources")
.location("West Europe")
.build());
var exampleServicesCommunicationsGateway = new ServicesCommunicationsGateway("exampleServicesCommunicationsGateway", ServicesCommunicationsGatewayArgs.builder()
.name("example-vcg")
.location("West Europe")
.resourceGroupName(example.name())
.connectivity("PublicAddress")
.codecs("PCMA")
.e911Type("DirectToEsrp")
.platforms(
"OperatorConnect",
"TeamsPhoneMobile")
.serviceLocations(
ServicesCommunicationsGatewayServiceLocationArgs.builder()
.location("eastus")
.allowedMediaSourceAddressPrefixes("10.1.2.0/24")
.allowedSignalingSourceAddressPrefixes("10.1.1.0/24")
.esrpAddresses("198.51.100.3")
.operatorAddresses("198.51.100.1")
.build(),
ServicesCommunicationsGatewayServiceLocationArgs.builder()
.location("eastus2")
.allowedMediaSourceAddressPrefixes("10.2.2.0/24")
.allowedSignalingSourceAddressPrefixes("10.2.1.0/24")
.esrpAddresses("198.51.100.4")
.operatorAddresses("198.51.100.2")
.build())
.autoGeneratedDomainNameLabelScope("SubscriptionReuse")
.apiBridge(serializeJson(
jsonObject(
)))
.emergencyDialStrings(
"911",
"933")
.onPremMcpEnabled(false)
.tags(Map.of("key", "value"))
.microsoftTeamsVoicemailPilotNumber("1")
.build());
}
}
resources:
example:
type: azure:core:ResourceGroup
properties:
name: example-resources
location: West Europe
exampleServicesCommunicationsGateway:
type: azure:voice:ServicesCommunicationsGateway
name: example
properties:
name: example-vcg
location: West Europe
resourceGroupName: ${example.name}
connectivity: PublicAddress
codecs: PCMA
e911Type: DirectToEsrp
platforms:
- OperatorConnect
- TeamsPhoneMobile
serviceLocations:
- location: eastus
allowedMediaSourceAddressPrefixes:
- 10.1.2.0/24
allowedSignalingSourceAddressPrefixes:
- 10.1.1.0/24
esrpAddresses:
- 198.51.100.3
operatorAddresses:
- 198.51.100.1
- location: eastus2
allowedMediaSourceAddressPrefixes:
- 10.2.2.0/24
allowedSignalingSourceAddressPrefixes:
- 10.2.1.0/24
esrpAddresses:
- 198.51.100.4
operatorAddresses:
- 198.51.100.2
autoGeneratedDomainNameLabelScope: SubscriptionReuse
apiBridge:
fn::toJSON: {}
emergencyDialStrings:
- '911'
- '933'
onPremMcpEnabled: false
tags:
key: value
microsoftTeamsVoicemailPilotNumber: '1'
Import
Voice Services Communications Gateways can be imported using the resource id
, e.g.
$ pulumi import azure:voice/servicesCommunicationsGateway:ServicesCommunicationsGateway example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceGroup1/providers/Microsoft.VoiceServices/communicationsGateways/communicationsGateway1
Constructors
Properties
Specifies the scope at which the auto-generated domain name can be re-used. Possible values are TenantReuse
, SubscriptionReuse
, ResourceGroupReuse
and NoReuse
. Changing this forces a new resource to be created. Defaults to TenantReuse
.
How to connect back to the operator network, e.g. MAPS. Possible values is PublicAddress
. Changing this forces a new Voice Services Communications Gateways to be created.
A list of dial strings used for emergency calling.
This number is used in Teams Phone Mobile scenarios for access to the voicemail IVR from the native dialer.
Whether an on-premises Mobile Control Point is in use.
Specifies the name of the Resource Group where the Voice Services Communications Gateways should exist. Changing this forces a new resource to be created.
A service_location
block as defined below.