Ingestion/SDKs
SDKs & OpenTelemetry
Instrument custom SIP, WebRTC and voice pipelines. Traces, spans, metrics, logs, baggage and context propagation.
OTel · TracesOTel · SpansOTel · MetricsOTel · LogsOTel · BaggageOTel · Trace context
TypeScript / Node.js
@ziplyhuman/sdk
npm i @ziplyhuman/sdkPython
ziplyhuman
pip install ziplyhumanJava
com.ziplyhuman:sdk
Maven / GradleGo
github.com/ziplyhuman/go-sdk
go get github.com/ziplyhuman/go-sdk.NET
ZiplyHuman.Sdk
dotnet add package ZiplyHuman.SdkBrowser JavaScript
@ziplyhuman/browser
npm i @ziplyhuman/browserReact Native
@ziplyhuman/react-native
npm i @ziplyhuman/react-nativeSwift
ZiplyHumanSDK
SPM: ZiplyHumanSDKKotlin
com.ziplyhuman:android
Gradle implementationVoice AI semantic conventions
Documented span names and attributes
voice.callRoot span for an entire production conversation
telephony.connectCarrier / SIP / WebRTC connect path
sip.inviteSIP INVITE transaction
media.streamRTP / media stream lifecycle
asr.transcribeSpeech-to-text turn or chunk
llm.generateModel completion for agent response
tts.synthesizeText-to-speech generation
tool.executeExternal tool / function call
workflow.stepDialog / state-machine step
handoff.initiateTransfer to human or queue
crm.updateCRM write or lookup side-effect
Attribute families
call
voice.call.idvoice.call.directionvoice.call.providervoice.agent.idvoice.agent.versionvoice.languagevoice.regiontelephony
telephony.carriertelephony.sip.call_idtelephony.from.maskedtelephony.to.maskedtelephony.disconnect_reasonasr
asr.providerasr.modelasr.confidenceasr.languageasr.latency_msllm
llm.providerllm.modelllm.prompt_tokensllm.completion_tokensllm.latency_msllm.retriestts
tts.providertts.voicetts.characterstts.latency_mstool
tool.nametool.statustool.latency_mstool.errorworkflow
workflow.nameworkflow.stepworkflow.statehandoff
handoff.reasonhandoff.queuehandoff.agent_idMetric names
voice.calls.activevoice.calls.completedvoice.calls.failedvoice.latency.e2evoice.latency.asrvoice.latency.llmvoice.latency.ttsvoice.latency.toolvoice.quality.scorevoice.cost.usdvoice.sentiment.score
Node.js example
import { ZiplyHuman } from "@ziplyhuman/sdk";
import { trace } from "@opentelemetry/api";
const zh = new ZiplyHuman({ apiKey: process.env.ZH_KEY });
const span = trace.getTracer("voice-agent").startSpan("voice.call");
span.setAttribute("voice.call.id", callId);
span.setAttribute("voice.agent.id", agentId);
await zh.events.track("call.started", {
call: { provider_call_id: providerId, agent_id: agentId },
});
// asr.transcribe / llm.generate / tts.synthesize child spans...
span.end();