I currently have my PBX registered to my main voip.ms account, with no subaccounts. Should I create a new subaccount specifically for the new voip.ms iOS app, or can I register it to the main account, thereby having 2 registrations on that account? PJsip supports that, depending on how it’s configured on voip.ms servers. The desired behavior is for incoming calls to be sent to both registrations simultaneously (i.e. my PBX and the iOS app), so that either one can pick up the call.
The alternate solution is to define a new subaccount for the iOS app and configure the DID to a ring group containing the main account and the new subaccount, but this is more complicated if I can simply have 2 registrations on the main account.
As a best practice, I do not recommend using the Main account and Subaccounts at the same time. If you have more than one client endpoints (phones, softphones or PBX), create a subaccount for each. The main benefit is that you are not exposing your VoIP.ms main account password used to manage your settings into your devices and therefore lowering your risk of credential leakage. Just leave the main account unused (no client, no routing). In terms of configuration there are no features that can only be done with the main account and not with a subaccount.
There are more unexpected behaviors with multiple registrations of the same account than with multiple subaccounts. You will also sacrifice some features.
Unpredictable ringing: When an incoming call comes in, the server needs to decide which registered device to send the call to. If it “forks” the call to all registered devices, all of them will ring. While this (SIP Forking) is supported by VoIP.ms, there can be issues where one device answers, but the other continues to ring.
Conflicting responses: If multiple devices receive the call simultaneously, the first device to send a SIP response (e.g., 200 OK for answering, or 486 Busy Here) can dictate the call’s outcome. If another device sends a conflicting response shortly after, it can lead to dropped calls, silent connections, or other strange behaviors for other devices that responded first.
Registration “flapping”: Some SIP servers or devices might struggle to manage multiple registrations for the same account, leading to registrations frequently dropping and re-registering (“flapping”). This can result in intermittent service, delays in answering, or inability to dial out.
Difficult troubleshooting: Because both devices are using the same account and may be behind the same IP address (if your IPhone is using the WiFi at the same location as your PBX), it is really difficult for VoIP.ms tech support to debug which device is responding or doing what when a call comes in.
Call history: If you use different subaccounts for your PBX and App, you will be able to tell them apart in the CDR.
Conditional routing: When using the same account for both, you cannot set automated conditions that will make one device ring and not the other. For example, if you want to set a condition that will not route calls to your App during the night, multiple subaccounts will allow you to do that.
Call transfer: You cannot transfer a call to a device using the same registered account. So, if you are away with your iOS App and pick up a call that is for someone who is still at home/in the office, having subaccounts will enable you to transfert the call directly to the PBX subaccount and have someone there pick it up.
Conference call: With multiple subaccounts, you will be able to make a conference call between your IPhone, your PBX and a 3rd party caller. If your PBX and App would use the same account, you would not be able to connect them together in the same call.
No additional cost: Subaccounts are a built-in feature in VoIP.ms. There a not additional cost to use them and it will not use more call time compare to multiple registrations.
So, for your configuration, even if the initial configuration is more complex, I would recommend using 2 subaccounts (one for your PBX and one for your iOS app) and a ring group as your DID destination. Once this is configured, you should not have to revisit this configuration often. Over time, you may actually save more time by being able to use all VoIP.ms features on both devices and making call routing and registration troubleshooting easier.
Thank you for your very thorough reply! I’ve configured it as you suggested with 2 subaccounts, and the main account remaining unused. Everything is working fine.
Another advantage of this approach is that the phone app’s Push functionality for incoming calls relies, I believe, on Acrobits’ SIPIS servers, since the app seems to be a white-labeled version of Acrobits Softphone or Groundwire. This means that the subaccount credentials are sent to Acrobits to enable registration on their SIPIS server cluster for the Push functionality. By using a separate subaccount for the app, I’m not exposing my main account credentials (as you pointed out), and if I ever want to ensure that Acrobits no longer has access for whatever reason, I can simply change the subaccount password or delete it altogether.
The main account defaults the SIP password to the management login but the SIP password can be changed to a separate password. There is even a button that will generate a password for the SIP account (although the password is emailed so using a separate password generator may be preferable).
I agree that one should have a separate management password from the SIP password and I am glad that it is available in the main account (for subscribers who only have one device).
That being said, the second device is a major feature of the voip.ms service. Following your suggestion I had a sub account for my cell phone before I got my home phone equipment attached. I leave the app set to “Do not Disturb” unless I want to receive calls and that setting does not affect the other device(s) ringing.