vodia-teams
v2.0.0
Published
Microsoft Teams Direct Routing configuration tool
Maintainers
Readme
Vodia Teams Configuration Tool
A tool for automating Microsoft 365 Teams Direct Routing setup for multi-tenant environments.
Features
- Automated App Registration with proper permissions
- Domain verification and management with DNS propagation options
- SBC (Session Border Controller) configuration
- Voice routing setup with proper priorities
- Enterprise Voice enablement for selected users
- Multiple phone number assignment options
- Support for tenant-specific credential files
Installation
The tool can be installed globally via npm:
npm install -g vodia-teamsAutomatic Prerequisites Installation
The package includes an automated setup script that will attempt to install all required prerequisites:
- PowerShell 7+ (via appropriate method for your OS)
- Microsoft Teams PowerShell Module
The installation script will run automatically after installing the package. Depending on your system, you may need to provide administrator credentials during the installation process.
If the automatic installation fails, you can manually run the prerequisites installation:
# Navigate to your installation directory
cd /path/to/vodia-teams
node install-prereqs.jsManual Prerequisites Installation (if automatic installation fails)
PowerShell Installation
Ubuntu/Debian:
# Install via Snap (recommended for Ubuntu 24.04)
sudo snap install powershell --classic
# OR via apt repository
sudo apt update
sudo apt install -y wget apt-transport-https software-properties-common
wget -q "https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/packages-microsoft-prod.deb"
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb
sudo apt update
sudo apt install -y powershellRHEL/CentOS/Fedora:
# Register Microsoft repository
curl https://packages.microsoft.com/config/rhel/8/prod.repo | sudo tee /etc/yum.repos.d/microsoft.repo
# Install PowerShell
sudo yum install -y powershellmacOS:
brew install --cask powershellWindows: PowerShell 7+ can be installed from: https://github.com/PowerShell/PowerShell/releases
Microsoft Teams Module
# Start PowerShell
pwsh
# Install Teams module
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force -Scope CurrentUser
Set-PSRepository -Name PSGallery -InstallationPolicy Trusted
Install-Module -Name MicrosoftTeams -Force -AllowClobber -Scope CurrentUser
# Exit PowerShell
exitUsage
vodia-teams --sbc sbc.yourdomain.com --domain yourdomain.comOptions
--sbc: Session Border Controller FQDN--domain: Domain name for Microsoft 365 tenant--help: Show help information
Workflow Steps
- Credentials Setup: Creates or uses tenant-specific credentials file
- Graph API Authentication: Connects to tenant (with retry logic for admin consent)
- Domain Management: Adds and verifies domain with DNS records
- SBC Configuration: Sets up Session Border Controller
- Voice Routing: Configures voice routing with priority 1
- Enterprise Voice: Enables users with Teams Phone capabilities
Phone Number Assignment Options
The tool provides three different ways to assign phone numbers:
- Sequential E.164 Numbers: Based on a starting number (e.g., +12065550001, +12065550002)
- Individual E.164 Numbers: Enter a unique number for each user
- Extension Numbers: Assign simple extensions (e.g., 40, 500, 9020)
User Selection
You can choose to:
- Configure all users with Teams Phone licenses
- Select specific users by index number (comma-separated list)
DNS Verification Options
When verifying domain ownership, you have three options:
- Verify Immediately: Best if DNS records are already propagated
- Wait and Verify: Specify a wait time for DNS propagation (minutes)
- Skip Verification: Continue without verification (can verify later in Microsoft 365 admin center)
Credentials Management
The tool creates separate credentials files for each tenant based on the SBC FQDN (replacing dots with underscores):
- For example:
sbc_example_com-credentials.json
This allows managing multiple tenants from the same installation.
License
MIT
