@zapperhub/softphone
v1.0.2
Published
Biblioteca embutível de chamadas de voz ao vivo da ZapperAPI — o atendente conversa pelo headset, dentro do CRM, usando o número de WhatsApp da instância.
Readme
@zapperhub/softphone
Biblioteca embutível de chamadas de voz ao vivo da ZapperAPI. O CRM inclui o componente, o atendente clica em um botão, e a ligação sai pelo número de WhatsApp da instância — com a voz indo e voltando pelo headset do computador.
A documentação de integração é pública e vive em https://docs.zapperhub.com/functions/softphone. Este README existe para quem trabalha neste repositório; quem vai usar a biblioteca deve seguir a documentação.
Fronteira deste repositório
Definida no Princípio I da constituição do ecossistema (.specify/memory/constitution.md):
- é a única sede de artefato de navegador publicado para terceiros;
- não contém regra de negócio de domínio — fala com a API pública e com a sessão de tempo real da instância;
- nunca custodia o
x-api-keyda instância. A credencial que ela usa é de curta duração, emitida pelo backend do cliente.
Desenvolvimento
npm install
npm run dev # tsup em modo watch
npm test # vitest
npm run check:write # Biome
npx tsc --noemit # portão de tiposA página de exemplo em examples/plain-html/ precisa ser servida em contexto seguro —
localhost conta, um IP na rede local não. É ela que o cenário de validação da documentação
usa para medir se um desenvolvedor externo chega a uma chamada ao vivo em menos de uma hora.
Saídas do build
| Arquivo | Para quem |
|---|---|
| dist/softphone.js (ESM) + dist/softphone.cjs | CRM com bundler |
| dist/softphone.global.js (IIFE, global ZapperSoftphone) | CRM que inclui por <script> |
| dist/softphone.d.ts | Tipos |
Especificação
O comportamento desta biblioteca é normativo em
specs/021-audio-bidirecional/contracts/sdk-api.md, e o protocolo que ela fala com a
plataforma, em specs/021-audio-bidirecional/contracts/softphone-ws.md. Mudança de superfície
pública sem atualizar os dois é defeito, não descuido.
