Vodia Microsoft Teams Integration Tool
Enhance your Vodia PBX by integrating it seamlessly with Microsoft Teams using our vodia-teams
NPM tool. Designed for efficiency, this tool supports the integration of multiple tenants with their respective Microsoft 365 Teams environments. The tool has an option to retrieve a list of extensions from a Vodia PBX tenant and map them to their respective Teams user accounts using email addresses. We'll demonstrate its use with an example below.
Prerequisites
- DNS Control: Ensure you have administrative control over the DNS records for the tenant's FQDN that will be enrolled as the SBC in Teams.
- User Licensing: Verify that all Teams users possess the necessary Microsoft licenses, such as Microsoft Business Standard with the Teams Phone add-on or a Microsoft E5 license.
- Usage Location: Confirm that a usage location has been set for each Teams user during license assignment in Microsoft.
- Microsoft Credentials: You must have global administrator credentials for the Microsoft tenant.
- OS: To run the
vodia-teams
NPM tool, you will need an Ubuntu 24 server. - Emails: To leverage the tool's automation capabilities, we recommend ensuring the extension's email address matches the user's primary Microsoft username (UPN) and then selecting option 4 ( i.e. Map Vodia PBX extension numbers to Teams users? You'll need the server management address, admin credentials and API enabled for the admin user.) for phone number assignment.
Vodia PBX configuration
-
Create a tenant with a Fully Qualified Domain Name (FQDN) that will serve as the SBC for Teams enrollment.
-
Ensure the tenant has a valid certificate.
-
Create a Teams trunk using Vodia's predefined template, remembering to set the country code.
-
Create a generic SIP trunk for routing inbound and outbound calls for Teams users.
-
Configure the dial plan as depicted in the screenshot and assign it as default dialplan within the tenant's general settings. This is where you can normalize numbers (e.g., remove the '+' sign). Importantly, note the entry labeled
[teams]
for the Teams trunk, as this is crucial for proper routing of Teams calls. -
Create extensions and assign a Teams number to each. Remember to enable the Include Microsoft Teams when calling the extension setting.
We recommend using your existing extension numbers as the Teams numbers. Additionally, map any external Direct Inward Dialing (DID) numbers to their corresponding extensions within your Vodia PBX.
Utilize the Vodia Microsoft Teams Configuration Tool to set up client Teams environments (Ubuntu 24 server)
-
Install the
vodia-teams
NPM toolcurl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
apt-get install -y nodejs
npm install -g vodia-teams -
Execute the
vodia-teams
NPM tool. In the example below:-
vodia-teams.com
represents the base domain that needs to be verified within the Microsoft tenant. -
sbc.vodia-teams.com
is the SBC FQDN, which should match your Vodia tenant name.root@vodia:~# vodia-teams --sbc sbc.vodia-teams.com --domain vodia-teams.com
-
-
The tool will guide you through several steps in single flow, starting with authentication using your Microsoft global administrator credentials.
-
App registration and admin consent: This step grants the tool access to Microsoft's Graph API. When prompted, copy and paste the provided URL into your web browser and authenticate using your global administrator credentials. You should then observe output similar to what is shown below.
To sign in, use a web browser to open the page: https://microsoft.com/devicelogin
Enter the code J8FRT9HU7 to authenticate
NOTE: You must sign in with a Global Administrator account
Waiting for authentication...
Waiting for you to complete authentication...
Waiting for you to complete authentication...
Authentication successful!
Step 2: Getting tenant details...
Tenant identified: Vodia Networks (02f2fdd7-c2d6-46ea-8ed9-6c4698ba7a8b)
Step 3: Creating application registration...
Application created: VodiaTeamsAutomation-174615683XXXXXX
Application (client) ID: XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX
Application Object ID: XXXXXX-XXXXXX-4XXXXXX-XXXXXX-XXXXXX
Step 4: Creating client secret...
Step 5: Creating service principal...
Service principal created: XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX
Credentials saved to sbc_vodia-teams_com-credentials.json
IMPORTANT: Keep this file secure as it contains sensitive information.
Final Step: Please open the following URL in your browser to grant admin consent:
https://login.microsoftonline.com/02f2fdd7-c2d6-46ea-8ed9-6c4698ba7a8b/adminconsent?client_id=844091e6-b232-4434-9964-f2e883216ee6&redirect_uri=http://localhost
After granting consent, you can use the credentials in the saved file for API calls.
Press Enter to continue...
App registration completed.You will see these permissions in your web browser when granting admin consent.
-
Add and Verify Domain: Next it will add your domain for e.g.
vodia-teams.com
to the Microsoft tenant and present you with DNS TXT records. You must add these records to your DNS provider. The tool will then wait for a specified time (1-30 minutes) before verifying the domain. We recommend setting a waiting period of at least 2 minutes to ensure sufficient DNS propagation time. You should then observe output similar to what is shown below.Step 2: Authenticating with Microsoft Graph...
Authentication successful!
Connected to tenant: Vodia Networks
Step 3: Managing domain...
Domain vodia-teams.com not found. Adding domain...
Domain vodia-teams.com added successfully!
Please add these DNS records to your domain:
TXT Record:
Host/Name: vodia-teams.com
Value: MS=ms32055599
TTL: 3600
MX Record:
Host/Name: vodia-teams.com
Points to: ms32055599.msv1.invalid
Priority: 32767
TTL: 3600
DNS propagation takes time. Please choose how long to wait before verification:
1. Wait 1 minute
2. Wait 2 minutes
3. Wait 5 minutes
4. Wait 15 minutes
5. Wait 30 minutes
6. Skip verification and continue with the workflow
Select an option (1-6): 2
You selected option: 2
Waiting 2 minutes for DNS propagation...
2 minute(s) remaining...
1 minute(s) remaining...
Wait completed. Attempting to verify domain...
Domain vodia-teams.com verified successfully! -
Direct Routing Configuration: While the tool configures the SBC, voice route, PSTN usage and voice policy, you will need to authenticate mutliple times. When prompted please copy the provided URL into your browser and use your global credentials. Once authenticated, the tool will proceed to detect users with valid licenses and offer you the option to set up all valid users or specific users. It will assign phone numbers and enable Enterprise Voice for each valid user. For setting up phone numbers, we strongly recommend option 4: Map Vodia PBX extension numbers to Teams users? You'll need the server management address, admin credentials and API enabled for the admin user as this option will further automate and speed up the Microsoft Teams setup process. When using this option, ensure that the extension's email address matches the user's primary Microsoft username (UPN). Additionally, the Teams Number must be identical to the extension number in your Vodia tenant. Alternatively, you can use option 3 to manually assign numbers (i.e. extension numbers) to each user. You should then observe output similar to what is shown below.
How would you like to assign phone numbers to users?
1. Use a base phone number with sequential digits
2. Enter individual phone numbers for each user
3. Enter extension numbers that will be assigned to each user
4. Map Vodia PBX extension numbers to Teams users? You will need the server management address, admin credentials and API enabled for the admin user.
Enter your choice (1, 2, 3, or 4): 4
You selected option: 4
Vodia PBX Integration Setup:
Enter Vodia PBX server address (e.g., ztfznb.vodia-pbx.com): ztfznb.vodia-pbx.com
Enter Vodia admin username: admin
Enter Vodia admin password: 75EfS65NXcySQZ23
Fetching tenants from Vodia PBX...
Available Vodia tenants:
1. lhgrxp.vodia-pbx.com
2. sbc.vodia-teams.com
Found matching tenant: sbc.vodia-teams.com
Fetching extensions from tenant sbc.vodia-teams.com...
Found 4 extensions in Vodia PBX.
Fetch completed in 1.23 seconds.
Sample extensions:
┌──────────────────────────────────────────────┐
│ Extension │ Name │ Email │
├──────────────────────────────────────────────┤
│ 500 │ 500 │ azure@vodia.com │
│ 501 │ 501 │ ak@vodia.com │
│ 502 │ 502 │ hc@vodia.com │
│ 503 │ 503 │ cs@vodia.com │
└──────────────────────────────────────────────┘
===== VODIA EXTENSION MAPPING SUMMARY =====
┌─────────────────────────────────────────────────────────────────────────────┐
│ User │ Email │ Vodia Extension │
├─────────────────────────────────────────────────────────────────────────────┤
│ Asad Khan │ ak@vodia.com │ 501 │
│ Azure Vodia │ azure@vodia.com │ 500 │
-