Le problème de la VOIP c'est la gestion de la présence.
Sinon, pour un truc universel, il te suffit d'utiliser firefox ou chromium/chrome qui supportent le WebRTC (oublions donc iPhone !).
Cela te permettra de la VOIP "portable" mais il va te manquer la "gestion de présence", c'est à dire savoir si l'utilisateur est là et donc si tu peux l'appeler. Lorsque tu veux l'appeler, il faut aussi avoir la "signalisation" histoire que l'appelé sache qu'on l'appelle.
Immanquablement, pour faire cela il te faut un programme qui soit toujours lancé et qui gère la présence et la signalisation. Jitsi/$kyp€ fait ce genre de chose.
Côté navigateur, cela progresse avec les notifications gérées de base dans les navigateurs. Cela suppose bien sûr que l'utilisateur qui veut pouvoir appelé/être appelé a lancé son navigateur... si ce n'est pas le cas c'est équivalent à ce qu'il soit "absent".
Pour voir les "progrès", le dernier truc qui m'a l'air prometteur c'est "Spreed" :
https://spreed.me
Visiblement ils ont "tout compris" puisqu'ils proposent aussi la partie serveur en open source. Tu peux donc avoir ton "spreed privé"... chose que je n'ai vu que chez eux pour le moment.
Bien sûr, en attendant de faire l'effort de tout installer sur un serveur privé, tu peux regarde ce que ça donne côté "client" en utilisant simplement leur serveur.
Je n'ai pas exploré au delà des tests de base. Notamment pour les conférences à plusieurs on atteint les limites du WebRTC qui est fait à la base pour du 1 <> 1, et donc une conférence a plusieurs doit être relayée par le serveur. Est-ce que ça va jusque là... je te laisse fouiller si ça t'intéresse.