Skip to main content


Integrating Anynode with Vodia PBX

Anynode is integrated with Vodia through a trunk in the Vodia PBX. Anynode sits between Vodia PBX and Teams. That way users in Teams can call extensions on the Vodia PBX domain and Vodia extensions can call the Teams users. Also the Teams users can make trunk calls using their own trunks.

We will do the setup on Vodia and Anynode under the sections:

A. Setup on Vodia PBX B. Setup on Anynode

A. Setup on Vodia PBX

In the Vodia PBX, you simply have to create a new Anynode trunk.

  1. Go to the relevant domain.
  2. Then under Trunks, go to SIP Trunks.
  3. Press "Add" to add a new trunk.
  4. From the "Provider" list, select "Anynode".
  5. Give it any friendly name.
  6. Enter the username and password that you will set as credentials for registration in Anynode to be done in the next section.
  7. Press "Create".
  8. A new trunk will appear in the list of trunks by the name you gave it. Click on it and enter it.
  9. In the "Proxy address" setting, enter the IP or FQDN of Anynode (that you will setup in the next section) so that it can register to it. Also the port and transport you will be using for this registration. For example:;transport=tcp.
  10. Press "Save".

The Vodia side setup is now done. Of course many options can be used and changed according to your needs.

Incoming calls from Teams user to Vodia extension

Now, by default any call coming from Teams user -> Anynode will try to find the extension and connect to it. But you can route this trunk as any other trunk on Vodia PBX which is all documented in the Vodia trunks documenation.

Outgoing calls from Vodia extension to Teams user

For calls from Vodia extensions to Teams users, you can use the dial plan to use the Anynode trunk.

  1. In the same domain in Vodia, go to "Dial Plans" under Trunks.
  2. Click on the dial plan that the domain or user will be using.
  3. Enter an entry for when the Anynode trunk should be used.
  4. For example you can use a prefix number, say 9, for those calls to be routed out through the Anynode trunk.
  5. For that, enter 9* in the Pattern, leave the Replacement field empty, choose the Anynode trunk and give it a Pref to place it in correct order.
  6. Press "Save".
  7. So if a Vodia extension wants to call a Teams user with the extension or number 4001, he or she will dial 94001 and Vodia will route it out of the Anynode trunk to the Teams user via Anynode.

Of course many other dial plan entries can be made according to what is needed. The dial plans have been explained in detail in the Vodia dial plan documentation.

B. Setup on Anynode

Install Anynode on a server. From a browser enter the url of Anynode to enter Anynode web interface. You will need the login credentials that you had set to enter the interface.

Here two nodes have to be created; one to which Vodia PBX will connect and one to which Microsoft Teams will connect through direct routing. That way calls can be routed between the Vodia PBX and Teams users. The Anynode wizard can be used for creating them.

  1. Press the "Configuration Mode" button at the top right.
  2. Then press "Wizard" button at the top left.
  3. You will get a list of options. Select "Microsoft Teams Direct Routing and a PBX or VoIP System" and press "Start".
  4. Select "Voice over IP System" to create the Vodia node first. Press "Configure".
  5. Select "Other VoIP System" and press "Next" to go to "Network Controller".
  6. Leave the name as is or give it a friendly name of your choice.
  7. Select "Use an interface’s address" if that's what you will use and select the network interface from the dropdown.
  8. Press "Next" to go to Ports.
  9. Select "Specify the UDP/TCP Port" and "Specify the TLS Port" and give it the available ports to Vodia will connect. You can leave it default but just make sure the ports you select here are not used by the system else where.
  10. Press "Next" to go to "SIP Interconnection". Select "Node as SIP Registrar" which means Vodia will register to Anynode on one of these ports.
  11. Press "Next" to go to "Local SIP Domain". Leave it empty as default and press "Next".
  12. In "Server Authentication", select "Activate server authentication" and give the username and password that Vodia will use as credentials to register to this node. These are the credentials that you had to enter in setting up Vodia above while creating the Anynode SIP Trunk.
  13. Then you can keep pressing "Next", which is about many different options like routing and string manipulations, depending on what is needed, but can be skipped for now. Anything can be changed later anyway. At the end you can give this node a friendly name or leave it as default and press "Finish".
  14. The Vodia PBX side node is not setup in Anynode. We will next setup the Teams side node.
  15. Select "Microsoft Teams Direct Routing" and press "Configure".
  16. "Microsoft Teams Direct Routing" is already selected. Press "Next" to go to "Network Controller".
  17. Leave the name as is or give it a friendly name of your choice.
  18. Select "Use an interface’s address" if that's what you will use and select the network interface from the dropdown.
  19. Press "Next" to go to Ports.
  20. Select "Specify the TLS Port" and give it a TLS port to which Microsoft Teams Direct Routing will connect. You can leave it default but just make sure the port you select here is different from the TLS port you listen for another node like the Vodia PBX if you are using TLS in both cases.
  21. You can leave the rest as default and press "Next".
  22. In "Certificate and Private Key", upload a valid certificate and its private key of the SBC FQDN that Teams will use as PSTN gateway for calls from or to through direct routing.
  23. Press "Next" to add any certificate chain if required.
  24. Press "Next" to enter the SBC FQDN (this should resolve to IP that reaches the server on the Anynode is running) for which you had already added the valid certificate in the previous step.
  25. Give a friendly name to this node or leave it as default and press "Finish".
  26. The Teams side node is now setup.

Now on Anynode on left side under nodes, you should be able to see both the nodes with the friendly names or default you gave them, like Vodia and Microsoft Teams.

We have to setup a few more things:

  • Click on the Vodia node (or whatever name you gave it). A graphic will appear in the center to show the different modules. Click on the "SIP Registrar" module and it's settings will appear. Expand the Settings and choose the setting "Maintain the registration connection and use it as a transport flow." And select "Yes" from the radio buttons under it. Now commit these changes by pressing the "Commit" button at the top right corner.
  • When a Teams user dials and arrives at Anynode, Teams usually adds + and the country code. For example if you want to reach an extension on Vodia 4002, and dial 4002 on Teams, +14002 will arrive at Anynode (1 being US country code in this example). We need to remove that before passing it to Vodia so that Vodia can ring the extension 4002. To do that, just like the point above but click on the module "SIP Node" this time. Expand "URI and Dial String Mapping". Under "SIP dial string manipulations, which are applied to outgoing SIP messages. This is independent of the call direction." press the "Add" button to add a new manipulation rule. Select "Prefix and Suffix Manipulation" and press "Next". In Prefix, enter +1 (since that is what we want to look for and remove). The "Delete Leading Characters" will automatically be filled with 2 (meaning delete these 2 numbers before sending). Of course this will be different for different country codes and manipulation, but this example explains the process. Click "Finish" and the rule will appear in the list. Press "Commit" button at the top right corner again to save.

Now you are set for Teams users to call PBX extensions and PBX extensions to call Teams users (with the prefix as explained above).

More Nodes

Of course you can add more nodes with "Add Node" (top left) or the "Wizard". For example a node to connect your trunk. Then you can create routes and use string manipulation as to when calls from Teams go to Vodia and when to the trunk; as well as when calls from the trunk should go to Vodia or Teams etc. In the Anynode documentation you can also find out how to do the routing and manipulation and much more according to your setup.

Here we explained a basic configuration which will probably be used the most, but of course you can have different kinds of scenarios and configurations setup by using the different settings on Vodia and Anynode, all of which are documented under those headings in their respective documents.

Teams Setup

Teams has to be setup for direct routing to connect to the Teams node created above in Anynode. That is covered in Microsoft Teams Direct Routing, and in Anynode documentation.

Some relevant documents

Vodia: Especially under the Trunks.

Anynode: You may have to create an account there first.