
با وبسرویس ایجاد تماس سریع Telefonchy، از داخل سیستم خود درخواست برقراری تماس را از یک داخلی مشخص به شمارهٔ مقصد ثبت کنید؛ کافی است شناسهٔ سرویس، داخلی و شمارهٔ مقصد را ارسال کنید و از آنلاینبودن اپراتور مطمئن باشید.
تماس سریع تلفنچی
با وبسرویس تماس سریع Telefonchy میتوانید از داخل CRM، نرمافزار پشتیبانی یا سامانهٔ اختصاصی خود، برقراری تماس از یک داخلی مشخص به شمارهٔ مقصد را درخواست کنید.
در این فرایند، ابتدا تلفن یا Softphone داخلی زنگ میخورد. پس از پاسخدادن اپراتور، تماس با شمارهٔ مقصد برقرار میشود. داخلی انتخابشده باید فعال و آنلاین باشد.
نکته مهم: پاسخ موفق API فقط به معنی ثبت و صفشدن درخواست تماس است؛ این پاسخ بهتنهایی پاسخدادن اپراتور یا برقراری کامل مکالمه را تضمین نمیکند. برای پیگیری،
request_idرا ذخیره و وضعیت آن را استعلام کنید.
پیشنیازها
سرویس Telefonchy و وبسرویس فعال
توکن وبسرویس متعلق به مالک
service_idداخلی فعال و آنلاین متعلق به همان سرویس
شمارهٔ مقصد معتبر و مسیر خروجی در دسترس
ارسال درخواست از
Backendامن، نه مستقیماً از مرورگر کاربر
فرایند تماس سریع
سامانهٔ شما درخواست تماس سریع را به Telefonchy ارسال میکند.
Telefonchy اعتبار توکن، سرویس و داخلی را بررسی میکند.
یک
request_idبرای رهگیری درخواست ایجاد میشود.درخواست به مرکز تماس مربوط به سرویس ارسال میشود.
ابتدا داخلی اپراتور زنگ میخورد.
پس از پاسخ اپراتور، تماس با شمارهٔ مقصد برقرار میشود.
با مسیر استعلام وضعیت میتوانید
cuidو آخرین وضعیت پردازش تماس را دریافت کنید.
ایجاد تماس سریع
نشانی و روش درخواست
GET https://panel.telefonchy.com/webservice/v1/smartcallپارامترها باید در Query String ارسال شوند. برای این مسیر، بدنهٔ JSON یا Form Data ارسال نکنید.
هدرهای درخواست
نام | اجباری | توضیحات |
|---|---|---|
| بله | توکن وبسرویس دریافتشده از پنل کاربری |
| خیر | پیشنهاد میشود مقدار |
پارامترهای Query String
نام | اجباری | توضیحات |
|---|---|---|
| بله | شناسهٔ سرویس تلفنی |
| بله | شماره یا شناسهٔ داخلی فعال متعلق به همان سرویس |
| بله | شمارهٔ مقصد تماس؛ مانند |
توکن باید متعلق به مالک
service_idباشد و داخلی نیز باید به همان سرویس تعلق داشته باشد.
نمونهٔ cURL
curl --get 'https://panel.telefonchy.com/webservice/v1/smartcall' \
--header 'Accept: application/json' \
--header 'webservice-token: YOUR_WEBSERVICE_TOKEN' \
--data-urlencode 'service_id=YOUR_SERVICE_ID' \
--data-urlencode 'exten=YOUR_EXTENSION' \
--data-urlencode 'to=09330393515'نمونهٔ PHP
<?php
$query = http_build_query([
'service_id' => 'YOUR_SERVICE_ID',
'exten' => 'YOUR_EXTENSION',
'to' => '09330393515',
]);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://panel.telefonchy.com/webservice/v1/smartcall?' . $query,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CONNECTTIMEOUT => 5,
CURLOPT_TIMEOUT => 20,
CURLOPT_FOLLOWLOCATION => false,
CURLOPT_HTTPHEADER => [
'Accept: application/json',
'webservice-token: YOUR_WEBSERVICE_TOKEN',
],
]);
$response = curl_exec($curl);
$httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
$error = curl_error($curl);
curl_close($curl);
if ($response === false) {
throw new RuntimeException($error ?: 'Click-to-call request failed.');
}
$result = json_decode($response, true, 512, JSON_THROW_ON_ERROR);
if ($httpCode < 200 || $httpCode >= 300 || ($result['code'] ?? null) !== 200) {
throw new RuntimeException($result['message'] ?? 'Click-to-call request was rejected.');
}
print_r($result);نمونهٔ پاسخ موفق
{
"status": "Ok",
"code": 200,
"message": null,
"data": {
"status": "success",
"request_id": "ctc_8c47d6ac-60df-4218-a570-4cdf4629aa32",
"originated_call_id": "orig.call.1966cd3a-050e-426a-9180-1ba69bcb185c",
"cuid": null,
"call_status": "queued",
"caller": "188464",
"callee": "09330393515",
"server_id": 2,
"failure_reason": null
}
}مهمترین فیلدهای پاسخ
request_id: شناسهٔ اصلی رهگیری درخواست؛ آن را در سامانهٔ خود ذخیره کنید.originated_call_id: شناسهٔ درخواست در مرکز تماس؛ برای بررسی فنی و لاگها کاربرد دارد.cuid: شناسهٔ تماس پس از ورود به مسیر پردازش؛ ممکن است در پاسخ اولیهnullباشد.call_status: آخرین وضعیت درخواست؛ در پاسخ اولیه معمولاًqueuedاست.failure_reason: علت خطا در صورت بروز مشکل.created_atوupdated_at: زمان ایجاد و آخرین بهروزرسانی درخواست با قالبISO 8601.
استعلام وضعیت تماس سریع
برای استعلام وضعیت، request_id دریافتی از پاسخ ایجاد تماس را در مسیر زیر قرار دهید:
GET https://panel.telefonchy.com/webservice/v1/smartcall/status/{request_id}در این درخواست فقط هدر webservice-token لازم است.
نمونهٔ cURL
curl 'https://panel.telefonchy.com/webservice/v1/smartcall/status/ctc_8c47d6ac-60df-4218-a570-4cdf4629aa32' \
--header 'Accept: application/json' \
--header 'webservice-token: YOUR_WEBSERVICE_TOKEN'وضعیتهای احتمالی تماس
وضعیت | مفهوم |
|---|---|
| درخواست ثبت شده و در آستانهٔ ارسال به مرکز تماس است |
| مرکز تماس درخواست را پذیرفته است |
| تماس در مرحلهٔ شناسایی و مسیریابی است |
| تلاش برای برقراری تماس در جریان است |
| رویداد پاسخ تماس دریافت شده است |
| ارسال اولیهٔ درخواست ناموفق بوده است |
برای تماس بدون پاسخ، وضعیت ممکن است روی مرحلهای مانند
dialingباقی بماند. برای نتیجهٔ نهایی تماس، مدت مکالمه، فایل ضبطشده یا وضعیتCDR، پس از ایجادcuidاز APIهای گزارش تماس استفاده کنید.
پیشنهاد برای Polling
پس از دریافت پاسخ ایجاد تماس، وضعیت را هر ۲ تا ۳ ثانیه استعلام کنید. برای جلوگیری از درخواست اضافی، Polling را پس از رسیدن به وضعیت موردنظر یا پس از یک بازهٔ محدود، مانند ۳۰ تا ۶۰ ثانیه، متوقف کنید.
خطاهای رایج
ارسالنشدن
service_id،extenیاtoارسالنشدن یا نامعتبر بودن
webservice-tokenتعلقنداشتن توکن یا داخلی به سرویس انتخابشده
غیرفعالبودن سرویس، وبسرویس یا داخلی
آفلاینبودن
Softphoneاپراتوردر دسترس نبودن مرکز تماس یا مسیر خروجی
نامعتبر بودن شمارهٔ مقصد
نکات امنیتی و عملیاتی
توکن وبسرویس را فقط در
Backendنگه دارید.توکن را در
JavaScriptمرورگر، اپلیکیشن عمومی یا مخزن کد منتشر نکنید.درخواست تماس را از سرور خود به Telefonchy ارسال کنید.
از
HTTPSاستفاده کنید و بررسی گواهیSSLرا در محیط عملیاتی غیرفعال نکنید.شمارهٔ مقصد،
service_idوextenرا پیش از ارسال اعتبارسنجی کنید.request_id،originated_call_idوcuidرا در سامانهٔ خود ذخیره کنید.برای جلوگیری از تماس تکراری، دکمهٔ تماس را پس از کلیک موقتاً غیرفعال کنید.
در
Retryخودکار محتاط باشید؛Timeoutالزاماً به معنی ثبتنشدن تماس نیست.

