ワンクリックで
click2call
Initiate or terminate outgoing calls using the Voicenter Click2Call API
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Initiate or terminate outgoing calls using the Voicenter Click2Call API
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
| name | click2call |
| description | Initiate or terminate outgoing calls using the Voicenter Click2Call API |
Language. Reply in the user's language: detect what they write — Hebrew→Hebrew, English→English — and mirror it, switching if they switch mid-conversation. This shapes your prose, your questions, and your
AskUserQuestionoption labels only. It does not change the artifacts you produce — identifiers, JSON keys, BCP-47 language codes, API field names, and other data stay exactly as specified.
CRM integration context. When the user is building a full CRM integration — not just this API in isolation — always invoke the
crm-onboardingskill alongside this one and frame the answer covering all three core services: Click2Call, Screen Pop, and Call History.
Help the developer integrate Click2Call — initiate outbound calls directly from a CRM or web application with a single API request.
Use this skill when the user wants to:
VOICENTER_API_CODE=your_api_token_here
# The server's IP must be authorized in Voicenter CPanel
Click2Call creates two sequential call legs:
phone param). The agent picks up.target param) and bridges both legs.https://api.voicenter.com/ForwardDialer/click2call.aspx
Accepts: GET or POST-JSON
Response: XML by default, or JSON when format=json is included (always use format=json)
| Parameter | Required | Description |
|---|---|---|
code | ✅ | API authentication token |
phone | ✅ | Agent's extension SIP code or phone number (E.164 without +). For login-dependent extension: phone=logincode&phonelogincode=XXXX |
target | ✅ | Customer phone number (E.164 without +) or extension SIP |
action | ✅ | call to initiate, terminate to hang up |
format | ✅ | Always set to json to get JSON response instead of XML |
record | ❌ | true / false — enable call recording (default: false) |
phonecallerid | ❌ | Caller ID shown on agent's phone |
targetcallerid | ❌ | Caller ID shown to the customer |
phonemaxdialtime | ❌ | Leg 1 max ring time in seconds (default: 60) |
targetmaxdialtime | ❌ | Leg 2 max ring time in seconds (default: 60) |
maxduration | ❌ | Max call duration in seconds (default: 7200) |
phoneautoanswer | ❌ | true / 1 — auto-answer Leg 1 (Voicenter extensions only) |
checkphonedevicestate | ❌ | Block call if agent extension is offline |
checktargetdevicestate | ❌ | Block call if target extension is offline |
language | ❌ | Language for system prompts: he, en, ru, etc. |
var_* | ❌ | Up to 10 custom CRM params (e.g. var_clientID=123). Appear in CDR and Pop-Up Screen. |
ignoredncstatus | ❌ | 1=ignore DNC on phone, 2=ignore on target, 3=both |
{
"code": "XXXXXXXXXXXX",
"phone": "SIPSIP",
"target": "0501234567",
"action": "call",
"format": "json",
"record": "true",
"var_clientID": "CRM-9876",
"var_campaignID": "SUMMER2024"
}
https://api.voicenter.com/ForwardDialer/click2call.aspx?phone=SIPSIP&target=0501234567&code=XXXX&action=call&format=json&record=true
{
"ERRORCODE": 0,
"ERRORMESSAGE": "OK",
"CALLID": "20240601abc123def456"
}
| ERRORCODE | Meaning |
|---|---|
| 0 | Success |
| 1 | Invalid request parameters |
| 2 | Application error |
| 3 | Agent extension is offline |
| 4 | Extension blocked for Click2Call |
To hang up an active call on an extension:
{
"code": "XXXXXXXXXXXX",
"phone": "SIPSIP",
"action": "terminate",
"format": "json"
}
const C2C_URL = 'https://api.voicenter.com/ForwardDialer/click2call.aspx';
const CODE = process.env.VOICENTER_API_CODE!;
interface Click2CallResponse {
ERRORCODE: number;
ERRORMESSAGE: string;
CALLID: string;
}
async function click2call(
phone: string,
target: string,
options?: {
record?: boolean;
phonecallerid?: string;
targetcallerid?: string;
maxduration?: number;
customData?: Record<string, string>; // keys must start with var_
}
): Promise<Click2CallResponse> {
const body: Record<string, unknown> = {
code: CODE,
phone,
target,
action: 'call',
format: 'json',
record: options?.record ? 'true' : 'false',
...(options?.phonecallerid && { phonecallerid: options.phonecallerid }),
...(options?.targetcallerid && { targetcallerid: options.targetcallerid }),
...(options?.maxduration && { maxduration: options.maxduration }),
...options?.customData,
};
const res = await fetch(C2C_URL, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(body),
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
const data: Click2CallResponse = await res.json();
if (data.ERRORCODE !== 0) throw new Error(`Click2Call error ${data.ERRORCODE}: ${data.ERRORMESSAGE}`);
return data;
}
async function terminateCall(phone: string): Promise<void> {
await fetch(C2C_URL, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ code: CODE, phone, action: 'terminate', format: 'json' }),
});
}
// CRM "Call" button — agent clicks to dial customer
const result = await click2call('SIPSIP', '0501234567', {
record: true,
customData: { var_clientID: 'CRM-9876', var_campaignID: 'SUMMER2024' },
});
console.log('Call started, CALLID:', result.CALLID);
format=json — without it the response is XML.CALLID — use it to correlate CDR records (Call Log API) and real-time events (Real-Time API).var_* custom params to surface CRM data in the Pop-Up Screen and CDR Notification webhook.checkphonedevicestate=true to avoid Leg 1 failures when agents are offline.+ — e.g. 972501234567 not +972501234567.CALLIDvar_* params you pass here appear in the Pop-Up Screen responseCALLID as ivrid to mute recording on this specific callphone parameterDesigns the structural skeleton of a Voicenter Bot via interview. Use this skill when the user wants to create, design, scope, or modify a Voicenter voice/chat bot — phrases like "design a bot", "create an agent spec", "build a Voicenter bot", "patch this bot", "add an intent", "change the bot's persona", "modify the flow graph", or any reference to the Agent Spec Designer / Skill 1 in the Voicenter bot generation pipeline. Produces an Agent Spec markdown file (sections 1-4, 4.5, section 5 stubs, section 6 initial, section 7 init). Two named entry modes — greenfield (no spec attached) and patch (spec attached). Does NOT author per-intent language content (validationPrompt, post-execution intentInstructions) — that's Skill 2 (Intent Detail Author). Does NOT emit wire-format JSON — that's Skill 3 (JSON Assembler).
Assembles a fully-detailed Voicenter Agent Spec into Bot JSON wire format — the final mechanical step in the three-skill pipeline. Use this skill when an Agent Spec exists with all section 5 entries marked `[detailed]` and the user wants the deployable JSON. Trigger phrases include "run Skill 3", "assemble the JSON", "emit the bot JSON", "publish the bot", "build the wire-format", "Skill 3 (JSON Assembler)", or any direct continuation from Skill 2's completion handoff. Produces a single `bot-<name>-<date>.json` file plus a banner identifying every fail-loud sentinel and any drift between spec section 6 and what Skill 3 regenerated. Refuses to assemble if any intent is still `[structural]` or `[detailed-revisit]`, or if the spec deviates from the strict template (Doc 2 §3.7). Runs the §15.4 cross-reference pass — 23 checks (8 §15.4 + 3 Compass + 3 botIntents-role + 1 duplicate-global-intent + 8 field-placement doctrine), checks 1–7, 11–13, 15, and 16–21 blocking. Does NOT author any text content (Skills 1 and
Authors the per-intent language content of a Voicenter Agent Spec — slot descriptions, validationPrompt, post-execution intentInstructions, and RT-specific Configuration text. Use this skill when an Agent Spec exists with section 5 entries marked `[structural]` or `[detailed-revisit]`, and the user wants to fill them in. Trigger phrases include "run Skill 2", "detail the intents", "fill in the per-intent fields", "Skill 2 (Intent Detail Author)", or any direct continuation from Skill 1's handoff hint. Walks intents in user-confirmed batches with a checkpoint after each batch. Reactivable — invoke as many times as needed; spec state is the resume point. Does NOT modify the structural skeleton (sections 1, 2, 3, 4, 4.5.1/.2/.4) — that's Skill 1 (Agent Spec Designer). Does NOT emit wire-format JSON — that's Skill 3 (JSON Assembler).
Pull call detail records (CDR) from Voicenter using the Call Log API
Receive and handle CDR push notifications from Voicenter after every call ends
Implement a Pop-Up Screen endpoint that Voicenter calls during incoming calls to display caller CRM data to agents