Hamkaran Cloud Developersتلفن ابری همکارانمرجع مستندات توسعه‌دهندگان
CID Lookup v1Web ServiceWebhookورود به پنل
● مستندات رسمی توسعه‌دهندگان

CID Lookup تلفن ابری همکاران

نام مخاطب را براساس شماره تماس از CRM، ERP یا نرم‌افزار اختصاصی خود استعلام بگیرید و پیش از پاسخ‌گویی روی تلفن کارشناس نمایش دهید.

روش درخواست: HTTP GETپاسخ: متن سادهپارامتر: [NUMBER]نسخه مستند: 1.0

CID Lookup چیست؟

CID Lookup قابلیتی برای شناسایی تماس‌گیرنده یا مخاطب تماس خروجی است. تلفن ابری همکاران شماره را به سامانه شما ارسال می‌کند و سامانه شما نام مخاطب را به‌صورت یک رشته متنی بازمی‌گرداند.

👤
شناسایی پیش از پاسخنام مخاطب پیش از پاسخ‌دادن روی تلفن کارشناس نمایش داده می‌شود.
اتصال به CRM و ERPاطلاعات مخاطبان از سامانه اصلی سازمان شما خوانده می‌شود.
استعلام لحظه‌ایدرخواست در زمان تماس ارسال می‌شود و باید سریع پاسخ داده شود.

نحوه عملکرد

ورود یا شروع تماسارسال شماره به URL شماجست‌وجو در CRMبازگشت نام مخاطبنمایش روی تلفن

تلفن ابری عبارت [NUMBER] را در URL تنظیم‌شده با شماره واقعی جایگزین می‌کند. پاسخ سرویس باید فقط شامل نام قابل نمایش باشد.

پیش‌نیازهای سرویس

الزامتوضیح
URL عمومیآدرس باید از اینترنت و بدون نیاز به VPN قابل دسترس باشد.
HTTPS معتبراستفاده از گواهی TLS معتبر قویاً توصیه می‌شود.
پارامتر شمارهURL باید محل قرارگیری شماره را با عبارت [NUMBER] مشخص کند.
پاسخ سریعپاسخ‌دهی کند می‌تواند باعث نمایش‌ندادن نام پیش از پاسخ تماس شود.
خروجی متنیبدنه پاسخ باید نام مخاطب باشد؛ نه صفحه HTML یا ساختار پیچیده.

شروع سریع

یک Endpoint در نرم‌افزار خود ایجاد کنید و آدرس آن را به شکل زیر در اختیار تیم پشتیبانی قرار دهید:

CID Lookup URL
https://crm.example.com/api/cid-lookup?number=[NUMBER]

هنگام تماس شماره جایگزین می‌شود:

Example Request
GET /api/cid-lookup?number=09121234567 HTTP/1.1
Host: crm.example.com
Accept: text/plain

ساختار درخواست

درخواست به‌صورت GET ارسال می‌شود و شماره در بخشی از URL که با [NUMBER] مشخص شده قرار می‌گیرد.

بخشمقدارتوضیح
MethodGETدرخواست استعلام مخاطب
Parameternumberنام پارامتر قابل انتخاب است؛ محل شماره با [NUMBER] مشخص می‌شود.
Accepttext/plainپاسخ متنی ساده توصیه می‌شود.
TimeoutکوتاهEndpoint باید برای پاسخ‌گویی بلادرنگ طراحی شود.

ساختار پاسخ

در صورت یافتن مخاطب، فقط نام موردنظر را در بدنه پاسخ برگردانید.

HTTP 200 Response
HTTP/1.1 200 OK
Content-Type: text/plain; charset=utf-8

علی محمدی

مخاطب پیدا نشد

در صورت پیدا نشدن شماره، پاسخ خالی یا یک نام عمومی کوتاه برگردانید. رفتار نهایی باید پیش از فعال‌سازی با تیم فنی هماهنگ شود.

Empty Response
HTTP/1.1 200 OK
Content-Type: text/plain; charset=utf-8

مهم: پاسخ JSON مانند {"name":"علی محمدی"} ارسال نکنید، مگر اینکه برای حساب شما قرارداد فنی متفاوتی تنظیم شده باشد.

قالب شماره‌ها و نرمال‌سازی

شماره ممکن است با قالب‌های متفاوت دریافت شود. Endpoint شما باید همه قالب‌های رایج را به یک قالب داخلی تبدیل کند.

ورودی احتمالینمونه مقدار نرمال‌شده
0912123456709121234567
98912123456709121234567
0098912123456709121234567
0219200351302192003513
92003513براساس کد شهر یا قواعد سازمان تکمیل شود.
پیشنهاد: پیش از جست‌وجو فاصله، خط تیره، علامت + و پیش‌شماره‌های 98 و 0098 را مدیریت کنید.

زبان، طول نام و Encoding

  • پاسخ را با Encoding استاندارد UTF-8 ارسال کنید.
  • نام را کوتاه و قابل نمایش نگه دارید؛ مانند «علی محمدی» یا «شرکت نمونه».
  • برخی تلفن‌های سخت‌افزاری قدیمی ممکن است حروف فارسی را درست نمایش ندهند.
  • از ارسال HTML، خط جدید، توضیحات اضافی یا داده حساس خودداری کنید.
برای تلفن‌هایی که فارسی را پشتیبانی نمی‌کنند می‌توانید نام لاتین یا نسخه کوتاه‌شده را برگردانید.

نمونه PHP / Laravel

Laravel Route
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
use App\Models\Contact;

Route::get('/api/cid-lookup', function (Request $request) {
    $number = normalizePhone((string) $request->query('number'));

    $contact = Contact::query()
        ->where('normalized_phone', $number)
        ->first();

    return response($contact?->display_name ?? '', 200)
        ->header('Content-Type', 'text/plain; charset=utf-8');
});

نمونه Node.js / Express

JavaScript
import express from "express";

const app = express();

app.get("/api/cid-lookup", async (req, res) => {
  const number = normalizePhone(String(req.query.number || ""));
  const contact = await contacts.findByPhone(number);

  res.type("text/plain; charset=utf-8");
  res.status(200).send(contact?.displayName || "");
});

app.listen(3000);

نمونه Python / Flask

Python
from flask import Flask, request, Response

app = Flask(__name__)

@app.get('/api/cid-lookup')
def cid_lookup():
    number = normalize_phone(request.args.get('number', ''))
    contact = find_contact_by_phone(number)
    name = contact.display_name if contact else ''

    return Response(name, status=200, content_type='text/plain; charset=utf-8')

تست سرویس

پیش از ارسال درخواست فعال‌سازی، Endpoint را با چند شماره واقعی و ناشناس آزمایش کنید.

cURL
curl -i "https://crm.example.com/api/cid-lookup?number=09121234567"
تستنتیجه مورد انتظار
شماره موجودوضعیت 200 و نام مخاطب
شماره ناشناسوضعیت 200 و پاسخ خالی
شماره با 98همان مخاطب نسخه 09 پیدا شود
حروف فارسینمایش صحیح با UTF-8
سرعت پاسخپاسخ سریع و بدون پردازش سنگین

امنیت

  • فقط اطلاعات لازم برای نمایش نام مخاطب را برگردانید.
  • از قرار دادن کلیدهای حساس در URL عمومی خودداری کنید.
  • در صورت استفاده از Token، آن را طولانی و قابل تعویض انتخاب کنید.
  • Rate Limit منطقی تعریف کنید، اما تماس‌های واقعی را مسدود نکنید.
  • ورودی شماره را اعتبارسنجی و از Queryهای پارامتری استفاده کنید.
  • اطلاعات شماره‌ها و پاسخ‌ها را بدون ضرورت در Log عمومی ذخیره نکنید.

کارایی و دسترس‌پذیری

CID Lookup در مسیر بلادرنگ تماس اجرا می‌شود. بنابراین پایداری و سرعت Endpoint اهمیت مستقیم دارد.

موضوعپیشنهاد
Database Indexروی ستون شماره نرمال‌شده Index ایجاد کنید.
Cacheمخاطبان پرتکرار را برای مدت کوتاه Cache کنید.
Timeout داخلیاز فراخوانی سرویس‌های زنجیره‌ای کند خودداری کنید.
پاسخ خطادر خطا پاسخ خالی و سریع بهتر از Timeout طولانی است.
Monitoringزمان پاسخ، خطاهای 5xx و Availability را پایش کنید.

عیب‌یابی

مشکلراه‌حل
نام روی تلفن نمایش داده نمی‌شودURL عمومی، HTTPS، وضعیت HTTP و متن پاسخ را بررسی کنید.
به‌جای نام JSON نمایش داده می‌شودفقط متن ساده نام را برگردانید.
برخی شماره‌ها پیدا نمی‌شوندنرمال‌سازی 0098، 98، +98 و صفر ابتدایی را بررسی کنید.
فارسی ناخوانا استContent-Type و charset=utf-8 را تنظیم و سازگاری تلفن را بررسی کنید.
نام دیر ظاهر می‌شودQuery دیتابیس، Index، Cache و سرویس‌های وابسته را بهینه کنید.
خطای 403 یا 429Firewall، WAF و Rate Limit را بازبینی کنید.

فعال‌سازی CID Lookup

پس از آماده‌سازی و تست Endpoint، URL نهایی را از طریق تیکت پشتیبانی ارسال کنید.

اطلاعات موردنیاز
عنوان درخواست: فعال‌سازی CID Lookup
کد مرکز تماس: [کد مرکز تماس]
URL استعلام: https://crm.example.com/api/cid-lookup?number=[NUMBER]
نوع پاسخ: text/plain; charset=utf-8
شماره تست: [شماره ثبت‌شده در CRM]
پشتیبانی فنی: برای فعال‌سازی، تست پاسخ یا بررسی سازگاری CRM، از طریق پنل تلفن ابری همکاران تیکت ثبت کنید.