O padrão da indústria para VOIP é o servidor Asterisk. Dentro dele você configura quais protocolos de telefonia são suportados, quem tem permissão para ligar e para quem as chamadas são roteadas.
Como cliente, você pode usar algum softphone de linha de comando. Será fácil integrá-lo ao projeto com alguns scripts de shell.
Ou você pode pegar uma biblioteca VOIP que suporte SIP, H323 ou qualquer protocolo e integrá-la diretamente no aplicativo. Se for um aplicativo da Web, o protocolo WebRTC está surgindo agora.
Para começar, instale um telefone SIP com GUI do repositório do Ubuntu, configure o Asterisk e várias contas em diferentes máquinas. Ligue para o número de uma conta da outra.