آموزش ارسال پیامک با ملی پیامک در سیموتل

با سلام و احترام
در این آموزش میخواهیم با استفاده از Smart api در سناریو تماس قبل از اتصال تماس به داخلی، پیامکی ارسال کنیم.
ما از زبان PHP و ارسال به صورت پترن استفاده کردیم.

<?php
try {
    // بررسی ورودی‌ها
    if (!isset($_REQUEST["data"]) || !isset($_REQUEST["src"])) {
        throw new Exception("پارامترهای لازم ارسال نشده‌اند.");
    }

    // تعیین مقادیر پیام بر اساس ورودی
    $exten = $_REQUEST["data"];
    settype($exten, "string");

    // آرایه اطلاعات شماره‌ها و پیام‌ها
    $contacts = array(
  "998" => array("message" => "نسیم  تل", "call" => "02191099000"
        "999" => array("message" => "آس تل", "call" => "02191099010"),
    );

    if (!isset($contacts[$exten])) {
        throw new Exception("شماره مورد نظر یافت نشد.");
    }

    // دریافت پیام و شماره تماس
    $message = $contacts[$exten]["message"];
    $call = $contacts[$exten]["call"];

    // تشکیل متن پیام برای ارسال
    $text = sprintf("%s;%s", $message, $call);
      $to = $_REQUEST["src"];
    settype($to, "string");

    // تنظیمات ارسال پیام
    $data = array(
        'username' => "نام کاربری ملی پیامک",
        'password' => "کلمه عبور ملی پیامک",
        'text' => $text,
        'to' => $to,
        'bodyId' => "کد پترن ساخته شده"
    );

    // ارسال درخواست به سرویس Payamak Panel
    $handle = curl_init('https://rest.payamak-panel.com/api/SendSMS/BaseServiceNumber');
    curl_setopt($handle, CURLOPT_HTTPHEADER, array(
        'content-type' => 'application/x-www-form-urlencoded'
    ));
    curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($handle, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($handle, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($handle, CURLOPT_POST, true);
    curl_setopt($handle, CURLOPT_POSTFIELDS, http_build_query($data));

    $response = curl_exec($handle);

    if (!$response) {
        throw new Exception(curl_error($handle), curl_errno($handle));
    }

    curl_close($handle);

    // تجزیه و تحلیل پاسخ
    $response = json_decode($response);

    // بررسی پاسخ
    if ($response && isset($response->ok) && $response->ok == "1") {
        $result = array(
            "ok" => "1",
            "commands" => "Exit('go-a');"
        );
    } else {
        $result = array(
            "ok" => "0",
            "commands" => "Exit('go-b');"
        );
    }
    $response = json_decode($response);

    // بررسی پاسخ
    if ($response && isset($response->ok) && $response->ok == "1") {
        $result = array(
            "ok" => "1",
            "commands" => "Exit('go-a');"
        );
    } else {
        $result = array(
            "ok" => "0",
            "commands" => "Exit('go-b');"
        );
    }
} catch (Exception $e) {
    // در صورت بروز خطا
    $result = array(
        "ok" => "0",
        "Type" => $e,
        "commands" => "Exit('go-c');"
    );
}

header("Content-Type: application/json; charset=utf-8");
echo json_encode($result);
?>

پی نوشت:
در این سناریو ارسال پیامک چند نکته لازم به توجه بیشتر است.
1- در این پیامک ما قصد داریم که اسم داخلی و شماره تعریف شده برای آن در متن پیامک جایگذاری شود به همین دلیل از $text = sprintf استفاده کردیم

2- در این سناریو ما قصد داریم پیامک به شماره تماس گیرنده ارسال شود به همین دلیل از $to = $_REQUEST[“src”]; استفاده کردیم.

3- با توجه بر اینکه سناریو ما بعد از پیامک همچنان ادامه دارد، حالت های مختلفی را برای ریسپانسیو قرار داده ایم تا با آن پارامتر ها از case های Smart api خارج شود و سناریو ادامه یابد.