@photon-ai/voice-ts and @inkibra/voice-sdk12npm install @photon-ai/voice-ts @inkibra/voice-sdk npx @inkibra/voice-cli init
12345678910import { AudioCodec, createClient } from "@photon-ai/voice-ts"; const photon = createClient({ token: () => getPhotonVoiceToken(), keepalive: { timeMs: 30_000, timeoutMs: 10_000, permitWithoutCalls: true, }, });
123const call = await photon.calls.dial("+14155551234", { from: process.env.PHOTON_VOICE_NUMBER!, });
123for await (const event of photon.calls.subscribe()) { await routePhotonEvent(event); }
123456789101112131415import LiveVoice from "@inkibra/voice-sdk/server"; const media = photon.media.openStream({ callControlId: call.callControlId, codec: AudioCodec.pcmu8000, sendInbound: true, }); const live = await LiveVoice.connect({ apiKey: process.env.INKIBRA_API_KEY!, audio: new PhotonAudioTransport(media), prompt: "Help the caller schedule an appointment.", conversation: { starts: "assistant" }, tools: {}, });
123live.stop(); await live.closed; await media[Symbol.asyncDispose]();