Um telefone VoIP consiste nos componentes de hardware e software. O software requer componentes de rede padrão, como uma pilha de rede TCP/IP, implementação de cliente para DHCP e o Domain Name System (DNS). Além disso, uma pilha de protocolo de sinalização VoIP, como para o Session Initiation Protocol (SIP), H.323, Skinny Client Control Protocol (Cisco), e Skype, é necessária. Para codificação de voz e mídia, uma variedade de codificadores está disponível, como por exemplo, para áudio: G.711, GSM, iLBC, Speex, G.729, G.722, G.722.2 (AMR-WB), outros codecs de áudio, e para vídeo H.263, H.263+, H.264. O software de interface com o usuário controla a operação dos componentes de hardware, e pode responder às ações do usuário com mensagens para uma tela de exibição.
STUN clientEdit
Para habilitar as comunicações VoIP, os pacotes SIP/RTP devem ser utilizados e o cliente STUN seria o componente chave para comunicações VoIP com gerenciamento dos pacotes SIP/RTP. Um Session Traversal Utilities para o cliente NAT (STUN) é usado em alguns telefones VoIP baseados em SIP como firewalls na interface de rede às vezes bloqueiam os pacotes SIP/RTP. Algum mecanismo especial é necessário neste caso para permitir o roteamento de pacotes SIP de uma rede para outra. STUN é usado em alguns dos telefones sip para habilitar os pacotes SIP/RTP para cruzar as fronteiras de duas redes IP diferentes. Um pacote se torna não-roteável entre dois elementos sip se uma das redes usar faixa de endereços IP privados e outra estiver na faixa de endereços IP públicos. Stun é um mecanismo para permitir essa travessia de fronteira. Existem mecanismos alternativos para a travessia de NAT, STUN é apenas um deles. STUN ou qualquer outro mecanismo de traversal NAT não é necessário quando os dois telefones SIP conectando são roteáveis um do outro e nenhum firewall existe entre.
DHCP clientEdit
DHCP client software simplifica a conexão de um dispositivo a uma rede IP. O software configura automaticamente os parâmetros da rede e do serviço VoIP.