رفتن به محتوای صفحه

مستندات Cloud Call OTP رسانکس

راهنمای رسمی راه‌اندازی و استفاده از Cloud Call OTP در رسانکس با مسیرهای دقیق پنل، Endpoint واقعی، نمونه درخواست و مدیریت خطا.

منتشرشده در رسانکس
شروع مطالعه

تصویر مستندات Cloud Call OTP رسانکس

این مستندات برای چیست؟

این صفحه راهنمای دقیق استفاده از Cloud Call OTP است تا کد OTP را از طریق تماس صوتی و با مسیر پشتیبان استاندارد ارسال کنید.

مسیرهای دقیق داخل پنل

مسیرها را به این ترتیب انجام دهید:

  1. تنظیم سرویس‌دهنده تماس: /app/call-otp/providers
  2. تنظیم صف پشتیبان تماس: /app/call-otp/routing
  3. دریافت API Key وب‌سرویس: /app/webservice
  4. مشاهده مستندات ماژول در پنل: /app/webservice/call_otp
  5. بررسی گزارش تماس‌ها: /app/call-otp/logs

پیش‌نیازهای الزامی

  1. ماژول call_otp برای کسب‌وکار فعال باشد.
  2. ماژول webservice برای کسب‌وکار فعال باشد.
  3. حداقل یک سرویس‌دهنده تماس صوتی تنظیم و فعال شده باشد.
  4. API Key معتبر از بخش وب‌سرویس دریافت شده باشد.

Endpoint رسمی ارسال

  • Method: POST
  • Path: /v1/call-otp/send
  • Full URL (مثال): https://api.rasanex.com/v1/call-otp/send

Headerهای لازم

headers.http
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

بدنه درخواست

فیلدها:

  • phone اجباری: شماره مقصد تماس
  • code اجباری: کد OTP
  • params اختیاری: پارامترهای تکمیلی
  • options.idempotency_key اختیاری: جلوگیری از تماس تکراری در retry
  • tenant_id اختیاری: فقط در سناریوی توکن چندکسب‌وکاری
request.json
{
  "phone": "09120000000",
  "code": "4821",
  "options": {
    "idempotency_key": "call-otp-login-20260411-01"
  }
}

پاسخ موفق

202-accepted.json
{
  "tracking_id": "f0e9c32b62e24b78a3e0a9c3f2d14e88",
  "status": "accepted"
}

خطاهای رایج و اقدام اصلاحی

401 - توکن نامعتبر

401.json
{
  "message": "Unauthorized. Invalid bearer token."
}

اقدام: API Key را بررسی کنید و هدر Authorization را صحیح بفرستید.

403 - ماژول غیرفعال یا دسترسی ناکافی

403.json
{
  "error": "Webservice module must be enabled to use call_otp webservice APIs.",
  "module_id": "webservice",
  "code": "module_disabled"
}

اقدام: فعال بودن ماژول‌های call_otp و webservice را بررسی کنید.

422 - بدنه نامعتبر

422-validation.json
{
  "message": "The code field is required.",
  "errors": {
    "code": [
      "The code field is required."
    ]
  }
}

اقدام: هر دو فیلد phone و code را همیشه ارسال کنید.

نمونه کدهای آماده

cURL

send-call-otp.sh
curl --request POST \
  --url https://api.rasanex.com/v1/call-otp/send \
  --header 'Authorization: Bearer YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
    "phone": "09120000000",
    "code": "4821",
    "options": {
      "idempotency_key": "call-otp-login-20260411-01"
    }
  }'

JavaScript

sendCallOtp.js
const response = await fetch('https://api.rasanex.com/v1/call-otp/send', {
  method: 'POST',
  headers: {
    Authorization: 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    phone: '09120000000',
    code: '4821',
    options: {
      idempotency_key: 'call-otp-login-20260411-01'
    }
  })
})

const data = await response.json()
console.log(data)

PHP

send_call_otp.php
<?php

$payload = [
    'phone' => '09120000000',
    'code' => '4821',
    'options' => [
        'idempotency_key' => 'call-otp-login-20260411-01',
    ],
];

$ch = curl_init('https://api.rasanex.com/v1/call-otp/send');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer YOUR_API_KEY',
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode($payload, JSON_UNESCAPED_UNICODE),
]);

$result = curl_exec($ch);
curl_close($ch);

echo $result;

Python

send_call_otp.py
import requests

url = 'https://api.rasanex.com/v1/call-otp/send'
headers = {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json',
}
payload = {
    'phone': '09120000000',
    'code': '4821',
    'options': {
        'idempotency_key': 'call-otp-login-20260411-01'
    }
}

response = requests.post(url, json=payload, headers=headers, timeout=20)
print(response.status_code)
print(response.json())

روال پیشنهادی برای اجرای صحیح

  1. در /app/call-otp/providers سرویس‌دهنده تماس را تنظیم و فعال کنید.
  2. در /app/call-otp/routing ترتیب سرویس‌دهنده اصلی و پشتیبان را ذخیره کنید.
  3. API Key را از /app/webservice دریافت کنید.
  4. برای هر عملیات تماس، idempotency_key یکتا بسازید.
  5. وضعیت نهایی ارسال را با tracking_id در /app/call-otp/logs ردیابی کنید.

با این ترتیب، هم پایداری ارسال بهتر می‌شود و هم خطاهای تکراری کنترل می‌شود.

قدم بعدی، در پنل شما.

ماژول‌ها، مسیرهای ارسال و گزارش‌ها را از پنل رسانکس مدیریت کنید.

ورود به پنل رسانکس