{"id":22100575,"url":"https://github.com/voxoco/call-control-sdk","last_synced_at":"2026-05-04T02:39:49.599Z","repository":{"id":172055626,"uuid":"641716663","full_name":"voxoco/call-control-sdk","owner":"voxoco","description":"Typescript Client SDK for VOXO call control","archived":false,"fork":false,"pushed_at":"2023-06-02T20:36:47.000Z","size":25,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-24T01:47:40.920Z","etag":null,"topics":["deno","typescript","voip"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/voxoco.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-05-17T02:53:20.000Z","updated_at":"2023-06-02T20:27:59.000Z","dependencies_parsed_at":"2023-07-03T16:32:05.762Z","dependency_job_id":null,"html_url":"https://github.com/voxoco/call-control-sdk","commit_stats":null,"previous_names":["voxoco/call-control-sdk"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/voxoco/call-control-sdk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voxoco%2Fcall-control-sdk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voxoco%2Fcall-control-sdk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voxoco%2Fcall-control-sdk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voxoco%2Fcall-control-sdk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/voxoco","download_url":"https://codeload.github.com/voxoco/call-control-sdk/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voxoco%2Fcall-control-sdk/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32592720,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-03T22:12:39.696Z","status":"online","status_checked_at":"2026-05-04T02:00:06.625Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["deno","typescript","voip"],"created_at":"2024-12-01T05:14:48.893Z","updated_at":"2026-05-04T02:39:49.585Z","avatar_url":"https://github.com/voxoco.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TypeScript SDK for Call Control\n\nThis is a Deno TypeScript SDK for Call Control, providing an easy way to\ninteract with the Call Control API. The SDK includes methods to manage calls,\nperform actions like dialing, answering, and hanging up, as well as working with\nDTMF tones, real-time transcription, and media streaming.\n\n## Table of Contents\n\n- [Getting Started](#getting-started)\n- [Usage](#usage)\n- [Available Methods](#available-methods)\n\n## Getting Started\n\nTo use this SDK, you'll need to import the `CallControl` class into your project\nand instantiate it with your `baseUrl` and `bearerToken`.\n\n```typescript\nimport { CallControl, DialResponse } from \"https://deno.land/x/voxo_call_control@v1.0.1/mod.ts\";\n\nconst cc = new CallControl({\n  baseUrl: \"https://your-api-url.com\",\n  bearerToken : \"your-bearer-token\"\n});\n```\n\n## Usage\n\nAfter initializing the `CallControl` class, you can call its methods to interact\nwith the Call Control API. For example, to dial a number:\n\n```typescript\ntry {\n  const call = await cc.dial({\n    to: \"+10409992842\",\n    from: \"+12994882747\",\n    connection_id: \"2299939939jfjj93\",\n  });\n} catch (err) {\n  console.log(err.message);\n}\n```\n\n## Available Methods\n\nThe following methods are available in the CallControl class:\n\n### 1. dial(dialRequest: DialRequest)\n\nDials a number or SIP URI from a given connection. Returns a `DialResponse` with\na `call_leg_id` that can be used to correlate the command with subsequent\nwebhooks.\n\n### 2. answer(callControlId: string, answerRequest?: AnswerRequest)\n\nAnswers an incoming call. The Answer command must be issued before executing\nsubsequent commands on an incoming call. Returns a `CommandResponse`.\n\n### 3. bridge(callControlId: string, bridgeRequest: BridgeRequest)\n\nBridges two call control calls. Returns a `CommandResponse`.\n\n### 4. enqueue(callControlId: string, enqueueRequest: EnqueueRequest)\n\nPuts the call in a queue. Returns a `CommandResponse`.\n\n### 5. forkingStart(callControlId: string, forkingStartRequest: ForkingStartRequest)\n\nStarts forking the media from a call to a specific target in realtime. This\nstream can be used to enable real-time audio analysis for a variety of use\ncases, such as fraud detection or AI-generated audio responses. Returns a\n`CommandResponse`.\n\n### 6. forkingStop(callControlId: string, forkingStopRequest?: ForkingStopRequest)\n\nStops forking a call. Returns a `CommandResponse`.\n\n### 7. gather(callControlId: string, gatherRequest?: GatherRequest)\n\nGathers DTMF signals to build interactive menus. The Answer command must be\nissued before the `gather` command. Returns a `CommandResponse`.\n\n### 8. gatherStop(callControlId: string, gatherStopRequest?: GatherStopRequest)\n\nStops the current gather. Returns a `CommandResponse`.\n\n### 9. gatherUsingAudio(callControlId: string, gatherUsingAudioRequest?: GatherUsingAudioRequest)\n\nPlays an audio file on the call until the required DTMF signals are gathered to\nbuild interactive menus. The Answer command must be issued before the\n`gatherUsingAudio` command. Returns a `CommandResponse`.\n\n### 10. gatherUsingSpeak(callControlId: string, gatherUsingSpeakRequest: GatherUsingSpeakRequest)\n\nConverts text to speech and plays it back on the call to gather DTMF signals.\nThe Answer command must be issued before the `gatherUsingSpeak` command. Returns\na `CommandResponse`.\n\n### 11. hangup(callControlId: string, hangupRequest?: HangupRequest)\n\nHangs up the call. Returns a `CommandResponse`.\n\n### 12. removeFromQueue(callControlId: string, removeFromQueueRequest?: RemoveFromQueueRequest)\n\nRemoves the call from a queue. Returns a `CommandResponse`.\n\n### 13. playAudio(callControlId: string, playAudioRequest: PlayAudioRequest)\n\nPlays an audio file on the call. If multiple play audio commands are issued\nconsecutively, the audio files will be placed in a queue awaiting playback.\nReturns a `CommandResponse`.\n\n### 14. stopAudio(callControlId: string, stopAudioRequest?: StopAudioRequest)\n\nStops audio being played on the call. Returns a `CommandResponse`.\n\n### 15. pauseRecording(callControlId: string, pauseRecordingRequest?: PauseRecordingRequest)\n\nPauses recording the call. Recording can be resumed via the Resume recording\ncommand. Returns a `CommandResponse`.\n\n### 16. resumeRecording(callControlId: string, resumeRecordingRequest?: ResumeRecordingRequest)\n\nResumes recording the call. Returns a `CommandResponse`.\n\n### 17. startRecording(callControlId: string, startRecordingRequest: StartRecordingRequest)\n\nStarts recording the call. Recording will stop on call hang-up or can be\ninitiated via the Stop Recording command. Returns a `CommandResponse`.\n\n### 18. stopRecording(callControlId: string, stopRecordingRequest?: StopRecordingRequest)\n\nStops recording the call. Returns a `CommandResponse`.\n\n### 19. refer(callControlId: string, sipReferRequest: ReferRequest)\n\nInitiates a SIP Refer on a Call Control call. Returns a `CommandResponse`.\n\n### 20. reject(callControlId: string, rejectRequest: RejectRequest)\n\nRejects an incoming call. Returns a `CommandResponse`.\n\n### 21. sendDtmf(callControlId: string, sendDTMFRequest: SendDtmfRequest)\n\nSends DTMF tones from this leg. DTMF tones will be heard by the other end of the\ncall. Returns a `CommandResponse`.\n\n### 22. speakText(callControlId: string, speakTextRequest: SpeakTextRequest)\n\nConverts text to speech and plays it back on the call. If multiple speak text\ncommands are issued consecutively, the audio files will be placed in a queue\nawaiting playback. Returns a `CommandResponse`.\n\n### 23. startStream(callControlId: string, startStreamRequest?: StartStreamRequest)\n\nStarts streaming the media from a call to a specific WebSocket address in\nnear-realtime. Audio will be delivered as base64-encoded RTP payload (raw\naudio), wrapped in JSON payloads. Returns a `CommandResponse`.\n\n### 24. stopStream(callControlId: string, stopStreamRequest?: StopStreamRequest)\n\nStops streaming a call to a WebSocket. Returns a `CommandResponse`.\n\n### 25. startTranscription(callControlId: string, startTranscriptionRequest?: StartTranscriptionRequest)\n\nStarts real-time transcription. Transcription will stop on call hang-up or can\nbe initiated via the Transcription stop command. Returns a `CommandResponse`.\n\n### 26. stopTranscription(callControlId: string, stopTranscriptionRequest?: StopTranscriptionRequest)\n\nStops real-time transcription. Returns a `CommandResponse`.\n\n### 27. transfer(callControlId: string, transferRequest: TransferRequest)\n\nTransfers a call to a new destination. If the transfer is unsuccessful, a\n`call.hangup` webhook for the other call (Leg B) will be sent indicating that\nthe transfer could not be completed. The original call will remain active and\nmay be issued additional commands, potentially transferring the call to an\nalternate destination. Returns a `CommandResponse`.\n\n### 28. updateState(callControlId: string, updateStateRequest: UpdateStateRequest)\n\nUpdates client state. Returns a `CommandResponse`.\n\nFor each method, refer to the SDK's `types.ts` for more details on the required\nparameters and expected responses.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvoxoco%2Fcall-control-sdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvoxoco%2Fcall-control-sdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvoxoco%2Fcall-control-sdk/lists"}