Skip to main content

Setting Up Vodia PBX on Azure VM (Debian)

Note: We are grateful to one of our partners for submitting this tutorial.


Disclosure for VM creation: It should be noted that, unless it is EXPLICITLY instructed here, to ignore the settings presented.

  1. Create the Azure VM
    1. Basics
      1. Instance Details
        1. Size: Standard_B2s – 2vcpus, 4 GiB memory (Change this size if you need a bigger VM.)
        2. Image: Debian 11 “Bullseye”
          1. This is what is used for this guide, but your distro choice is up to you.
        3. Region: whatever is closest to you
        4. Resource group: whatever resource group is appropriate in your environment
        5. Virtual machine name: A meaningful name, i.e. companyname-vodia-pbx
        6. Security type: Standard
      2. Administrator account
        1. SSH public key
          1. Set a meaningful username, secure password, and key pair name.
      3. Inbound port rules
        1. Public inbound ports: Allow selected ports
        2. Use dropdown to ensure all HTTPS (443), HTTP (80) and SSH (22) are selected
    2. Disks
      1. Disk options
        1. OS disk type: Premium SSD
        2. Check box “Delete with VM”
        3. Encryption type: Default
    3. Networking
      1. Virtual network: select appropriate one, or create new if necessary
      2. Public IP: select appropriate one, or create new if necessary
      3. NIC network security group: Basic
      4. Public inbound ports: Allow selected ports
        1. HTTPS (443)
        2. HTTP (80)
        3. SSH (22)
    4. Management
      1. Monitoring
        1. Boot diagnostics: Enable with managed storage account
      2. Advanced
        1. Nothing, hit Next
      3. Tags
        1. Nothing, hit Next
      4. Review + create
        1. Review all changes, then click Create.
        2. Wait for it to provision, etc.
  2. Vodia Installation on the VM
    1. SSH into your new VM instance – make sure you’re sudo/root
      1. Ssh username@public_IP, i.e. ssh itdept@
        1. You can locate your VM’s public IP by going to the VM instance in Azure, and looking next to “Public IP address” in the “Overview” pane.
      2. Enter the password you just created in the previous step of VM creation.
    2. Run the following commands:
chmod a+rx
  1. Configure DNS – It is recommended that you assign a subdomain to the Vodia instance, i.e. You will need to do this in order to correctly issue SSL certificates to the Vodia instance.
    1. Cloudflare – Cloudflare was used for this guide, but you’re not required to use it.
      1. Add an A record with the following information on a top-level domain of your choice.
        1. Name: subdomain of choice, i.e. pbx
        2. Content: public IP address of your VM
        3. Proxy status: DNS only (This means NO proxy. This is VERY important!)
        4. TTL: Auto
  2. Configure Vodia on the VM
    1. Point your browser to the address you just set in Cloudflare (or other DNS management), i.e., and log in with the following:
      1. Username: admin
      2. Password: no password (leave blank)
        1. It is STRONGLY recommended that you set this to something secure IMMEDIATELY!
    2. Once logged in, at the Administrator (System level), go to Settings > General > License. Input your activation code in the text box, and click Save.
    3. At the top left, under the search bar, click Tenants > List, and then the Create button.
      1. Name of this tenant: your company or client, i.e. Your Company Name
      2. Primary DNS address: your full PBX DNS address that you created and configured, i.e.
      3. Click OK
      4. Under Tenants, click DID Management. Add all your DIDs in here.
    4. Once the new tenant shows in the list, click the name of the tenant to go into it. Within the tenant, do the following:
      1. Under Accounts, click Extensions. Make sure to add all of the following for each extension:
        1. Account (extension number)
        2. Name (who will be using it)
        3. Cell phone – Optional
        4. Email – Vodia will send setup credentials and instructions for softphones here in a welcome email, as well as other important information.
        5. MAC address – The phone itself assigned to the user. This is especially important later on, so do NOT skip it.
      2. On the left hand side, click Trunks > SIP Trunks. Find your SIP trunk provider, and click OK. (If yours is not listed, choose Other.)
        1. Once it shows up in the list, click its name, and configure the following:
        2. Type: SIP Registration
        3. Direction: Inbound and outbound
        4. State: Enabled
        5. Global: Yes
        6. Is secure: No (You can change this later once networking and ports are configured properly, but for the sake of initial set up, leave it as is.)
        7. Registrations: use your appropriate username, password, and domain as provided by your SIP trunking provider.
        8. Leave all other settings as is, click Save (at the bottom of the page).
      3. On the left, go to Trunks > DID Management, and do the following:
        1. Click the “Add DID” button, and configure as follows:
          1. Inbound DID: the phone # to associate with an individual
          2. Trunk: the name of the trunk you just created
          3. Mapped-To Account: the extension you want associated with that phone #
          4. Use it as Outbound-DID as well: Off (unless you want it on for some reason, but that’s up to you)
          5. Click OK.
          6. Repeat this process for all extensions and DIDs.
      4. On the left hand side, click Trunks > Dial Plans, and do the following:
        1. Name: Default
        2. Global: Yes
        3. Number presentation in dial plan: Domain number presentation (unless you have something more specific you want it to use)
        4. Check if number is in do not call list: Yes
        5. Star codes that are handled in dial plan: leave blank (to go with default)
        6. Route internal calls: Yes
        7. In the field boxes below, enter a 1 in Pref, and * for Pattern and Replacement. Make sure it’s enabled, and leave everything else as is.
        8. Click Save.
  3. Provision phones
    1. Factory reset ALL phones before proceeding, and make sure that the firmware is the most current.
    2. Follow instructions based on phone’s manufacturer.