سرویس یکبار رمز (OTP) صوتی با مرکز تلفن سیموتل

یکبار رمز صوتی

یکی از قابلیت های قابل ارائه توسط مرکز تلفن سیموتل امکان Auto Dialer یا تماس گیر خودکار می باشد. همانطور که میدانیم قابلیت Auto Dialer به ما امکان تماس گرفتن با مخاطب خود و پخش صدای از پیش تعیین شده را به صورت خودکار میدهد.

حال میتوان با استفاده از API و وب سرویس های موجود در نرم افزار مرکز تلفن سیموتل و ترکیب آن با کامپوننت Auto Dialer امکان سرویس OTP صوتی ( ارسال رمز پویا به صورت صوتی در قالب تماس ) را فراهم آورد.

این فرایند طبق مراحل زیر طی میشود.

  • درخواست رمز یک بار مصرف توسط کاربر
  • ارسال شماره کاربر به نرم افزار مرکز تلفن توسط درگاه
  • استفاده مرکز تلفن از Auto Dialer و تماس با کاربر
  • فراخوانی تابع Say Digit توسط درگاه برای خواندن رمز یک بار مصرف برای کاربر

 

بدنه و پارامتر های کمپین یا تماس هایی که باید به صورت خودکار انجام شوند به شکل زیر و دارای پارامتر های زیر میباشد.

توضیحات داده های تعریف شده داده های نمونه پارامترهای ضروری[**]/منطقی[*] پارامترها
نام کمپین test ** name
شناسه‌یکتا ترانک که از جستجو بدست می‌آید 5f6c5b56c92de0068f32e592 ** trunk_manager_id
مقدار context در کامپوننت autodialer route auto interface_context
مقدار text در کامپوننت autodialer route text1 interface_text
شماره مخاطبین 09212396500 * numbers
شناسه‌یکتا گروه که از جستجو بدست می‌آید “5e96c8c2c92de0468920657e” “5e96d40cc92de025690d0a61” * groups
فاصله زمانی بین هر تلاش 600 * try_interval
تعداد تکرار 1 * try
زمان شروع کمپین 2021-02-19 15:17 * start
زمان پایان کمپین 2021-02-23 15:17 * end
شناسه‌یکتا فایل‌صوتی که از جستجو بدست می‌آید 5e5b629ec92de075df7af457 * announcement
توضیحات description

از طرفی از آنجایی که کمپین باید توسط طرف دوم فراخوانی شود این فراخوانی در قالب PHP به شکل زیر میباشد.

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => “http://X.X.X.X//api/v3/autodialer/campaigns”,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => “”,
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => “POST”,
CURLOPT_POSTFIELDS =>”{\r\n \”name\”:\”test\”,\r\n \”trunk_manager_id\”:\”5f6c5b56c92de0068f32e592\”,\r\n \”interface_context\”:\”auto\”,\r\n \”interface_text\”:\”text1\”,\r\n \”numbers\”:[\”09212396500\”],\r\n \”groups\”:[\”5e96c8c2c92de0468920657e\”,\”5e96d40cc92de025690d0a61\”],\r\n \”try_interval\”:\”600\”,\r\n \”try\”:\”1\”,\r\n \”start\”:\”2021-02-19 15:17\”,\r\n \”end\”:\”2021-02-23 15:17\”,\r\n \”announcement\”:\”5e5b629ec92de075df7af457\”,\r\n \”description\”:\”\”,\r\n \”count\”:3\r\n}”,
CURLOPT_HTTPHEADER => array(
“X-APIKEY: vZKtIKWsld0egNlkzHo8i5LVBqLNBSWARCQsPOSgDjFmAHM3tG”,
“Authorization: Basic dGVzdDpBYTEyMzQ1Ng==”,
“Content-Type: application/json”
),
));

$response = curl_exec($curl);

if (!curl_errno($curl)) {
$httpcode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
echo ‘response code:’.$httpcode, ‘<br/>’;
}

curl_close($curl);
echo $response;

نمونه خروجی درخواست نیز به شکل زیر میباشد.

 

{
“success”: 1,
“message”: “Requested operation is done successfully”,
“data”: {
“name”: “test”,
“trunk_manager_id”: {
“$oid”: “5f6c5b56c92de0068f32e592”
},
“interface_context”: “auto”,
“interface_text”: “text1”,
“numbers”: [
“09212396500”
],
“groups”: [
“5e96c8c2c92de0468920657e”,
“5e96d40cc92de025690d0a61”
],
“try_interval”: “600”,
“try”: “1”,
“start”: {
“$date”: {
“$numberLong”: “1613735220000”
}
},
“end”: {
“$date”: {
“$numberLong”: “1614080820000”
}
},
“announcement”: “5e5b629ec92de075df7af457”,
“description”: “”,
“count”: 1,
“repeat”: 1,
“date”: “1399-12-18 14:01:49”,
“status”: “waiting”,
“isoStart”: {
“$date”: {
“$numberLong”: “1613735220000”
}
},
“isoEnd”: {
“$date”: {
“$numberLong”: “1614080820000”
}
}
}
}

بعد از این که فراخوانی کمپین Auto Dialer صورت گرفت تماس وارد کامپوننت SmartAPI میشود و تابع SayDigit فراخوانی میشود تا رمز یک بار مصرف رقم به رقم خوانده شود.
با‌توجه به مقادیر منوی تنظیمات مربوط به API Method & API Version، آدرس وب‌سرویس فراخوانی شده و داده‌های زیر همراه با آن ارسال می‌گردند.
• SRC: شماره تماس‌‌گیرنده یا Caller id
• Dst: شماره وارد شده یا DID
• Data: داده‌‌ای که تماس‌‌گیرنده در مسیر تماس وارد کرده است.
• unique_id : شناسه یکتای تماس.
• app_name: نام کامپوننت جاری.
• و در جواب، خروجی زیر را بصورت json دریافت‌ می‌کند.

 

{
“ok”: “1”,
“commands”: “PlayAnnouncement(‘announce01’); SayNumber(5201); PlayAnnouncement(‘announce02’);”
}

پس از فراخوانی تابع SayDigit رمز یک بار مصرف به صورت رقم به رقم برای مشتری خوانده میشود.
بدنه تابع SayDigit :

Format: SayDigit(<number:int>);
SayDigit(1239);

شماتیک سناریوی بالا در دایل پلن سیموتل نیز به شکل زیر میباشد.

سیموتل یکبار رمز صوتی

که در آن تماس های ایجاد شده از طریق Auto Dialer با هدف خواندن رمز یک بار مصرف توسط Context موجود در کامپوننت Auto Dialer Route مسیردهی میشوند.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *