• אוטובוסים

    פורום מפתחים API
    3
    0 הצבעות
    3 פוסטים
    13 צפיות
    א
    @מאיר-אמר 1700707050
  • שיתוף | קוד PHP לאימות זיהוי ספיישל

    פורום PHP
    11
    2 הצבעות
    11 פוסטים
    88 צפיות
    I
    @איל-משולש כתב: כתבתי קוד PHP שדרכו ניתן להוספת זיהוי למערכת ההגדרות לשלוחה שתוסיף את המספר שתקישו type=api api_link=לינק לקוד שלכם api_hangup_send=no api_phone_send=no title=אימות טלפון api_add_0=token=טוקן המערכת שלכם הגדרות לשלוחה שתוסיף את המספר שנכנס לשלוחה type=api api_link=לינק api_hangup_send=no title=אימות טלפון api_add_0=token=טוקן הקוד מצורף בספויילר Spoiler <?php header('Content-Type: text/plain; charset=utf-8'); // הגדרת נתיבים לקבצים באותה התיקייה $jsonFilePath = __DIR__ . '/requests.json'; $logFilePath = __DIR__ . '/system.log'; // פונקציה לייעודית לכתיבת לוגים function writeToLog($message, $logFilePath) { $timestamp = date('Y-m-d H:i:s'); $logMessage = "[{$timestamp}] {$message}\n" . str_repeat('-', 40) . "\n"; @file_put_contents($logFilePath, $logMessage, FILE_APPEND); } // 1. קבלת הפרמטרים מהקריאה $token = isset($_GET['token']) ? $_GET['token'] : ''; $code = isset($_GET['code']) ? $_GET['code'] : ''; // 2. קביעת מספר הטלפון (תמיכה ב-Phone וב-ApiPhone) $phone = ''; if (!empty($_GET['Phone'])) { $phone = $_GET['Phone']; } elseif (!empty($_GET['ApiPhone'])) { $phone = $_GET['ApiPhone']; } // ניקוי מספר הטלפון מתווים שאינם ספרות $phoneKey = preg_replace('/[^0-9]/', '', $phone); // תיעוד כניסת פרמטרים ללוג $incomingParams = json_encode($_GET, JSON_UNESCAPED_UNICODE); writeToLog("בקשה נכנסת לשרת.\nפרמטרים שהתקבלו: {$incomingParams}", $logFilePath); // בדיקת חובה: האם קיים טוקן? if (empty($token)) { $err = "שגיאה: פרמטר token חסר בבקשה."; echo $err; writeToLog($err, $logFilePath); exit; } // טעינת קובץ ה-JSON הקיים $jsonData = []; if (file_exists($jsonFilePath)) { $fileContent = file_get_contents($jsonFilePath); $jsonData = json_decode($fileContent, true) ?: []; } // ========================================== // ניתוב לפי שלבי הפעולה // ========================================== if (empty($code)) { // ========================================== // שלב א': שליחת קוד אימות לטלפון // ========================================== if (empty($phoneKey)) { echo "read=m-1125=Phone,,10,9,,Phone,,,,,,,,,"; writeToLog("שלב א': חסר מספר טלפון, הוחזרה הוראת הקשה למערכת.", $logFilePath); exit; } // בניית הפרמטרים לשליחה (כאן בתגובה החוזרת מהם זה מגיע כ-reqId) $apiParams = [ 'token' => $token, 'action' => 'send', 'callerId' => $phoneKey, 'validType' => 'CALL' ]; $url = "https://www.call2all.co.il/ym/api/ValidationCallerId?" . http_build_query($apiParams); writeToLog("שלב א': פנייה ל-API.\nכתובת: {$url}", $logFilePath); $response = @file_get_contents($url); if ($response === false) { $err = "שגיאה בשלב א': file_get_contents נכשל."; echo $err; writeToLog($err, $logFilePath); exit; } writeToLog("שלב א': תשובה גולמית מה-API:\n{$response}", $logFilePath); $data = json_decode($response, true); if (!$data) { $err = "שגיאה בשלב א': תגובה אינה JSON תקין."; echo $err; writeToLog($err, $logFilePath); exit; } if (isset($data['responseStatus']) && $data['responseStatus'] === 'OK' && isset($data['reqId'])) { // דריסת זיהוי ישן אם קיים if (isset($jsonData[$phoneKey])) { unset($jsonData[$phoneKey]); writeToLog("זיהוי ישן עבור מספר {$phoneKey} נמחק מהקובץ.", $logFilePath); } // שמירת ה-reqId $jsonData[$phoneKey] = $data['reqId']; file_put_contents($jsonFilePath, json_encode($jsonData, JSON_PRETTY_PRINT)); echo "read=f-A000=code,,6,4,12,Digits,yes,,,,,,,,"; writeToLog("שלב א' הסתיים בהצלחה. המזהה נשמר ב-JSON.", $logFilePath); } else { $msg = isset($data['message']) ? $data['message'] : 'לא צוינה סיבה'; echo "שגיאה מה-API בשלב השליחה: " . $msg; writeToLog("שגיאה מה-API בשלב השליחה: " . $msg, $logFilePath); } } else { // ========================================== // שלב ב': אימות הקוד שהוקש על ידי המשתמש // ========================================== if (empty($phoneKey)) { $err = "שגיאה בשלב ב': נשלח קוד אך מספר הטלפון חסר בקריאה."; echo $err; writeToLog($err, $logFilePath); exit; } if (!isset($jsonData[$phoneKey])) { $err = "שגיאה בשלב ב': לא נמצא מזהה בקשה שמור עבור הטלפון " . $phoneKey . " ב-JSON."; echo $err; writeToLog($err, $logFilePath); exit; } // שליפת המזהה השמור $savedId = $jsonData[$phoneKey]; // תיקון ה-URL: שימוש בפרמטר reId במקום reqId והסרת משתנים מיותרים $apiParams = [ 'token' => $token, 'action' => 'valid', 'reId' => $savedId, // התיקון המדויק שלך! 'code' => $code ]; $url = "https://www.call2all.co.il/ym/api/ValidationCallerId?" . http_build_query($apiParams); writeToLog("שלב ב': פנייה ל-API לצורך אימות.\nכתובת שנשלחה: {$url}", $logFilePath); $response = @file_get_contents($url); if ($response === false) { $err = "שגיאה בשלב ב': נכשלה ההתקשרות לשרת לצורך אימות."; echo $err; writeToLog($err, $logFilePath); exit; } writeToLog("שלב ב': תשובה גולמית מה-API:\n{$response}", $logFilePath); $data = json_decode($response, true); if (!$data) { $err = "שגיאה בשלב ב': תגובת השרת אינה JSON תקין."; echo $err; writeToLog($err, $logFilePath); exit; } if (isset($data['responseStatus']) && $data['responseStatus'] === 'OK') { // הסרת הרשומה לאחר הצלחה unset($jsonData[$phoneKey]); file_put_contents($jsonFilePath, json_encode($jsonData, JSON_PRETTY_PRINT)); echo "OK"; writeToLog("שלב ב' הסתיים בהצלחה מוחלטת! הקוד אומת, הרשומה נמחקה.", $logFilePath); } else { $msg = isset($data['message']) ? $data['message'] : 'הקוד שגוי או פג תוקף'; echo "אימות הקוד נכשל מול ימות המשיח. סיבה: " . $msg; writeToLog("אימות נכשל. סיבה: {$msg}. קוד: {$code}, מזהה שנשלח (reId): {$savedId}", $logFilePath); } } שימו לב בתקייה של הקוד יווצר קובץ ששומר את הפרטים שמתקבלים בין הקריאות בנוסף יווצר קובץ לוג שבו מתועד כל בקשה וכל לשיחה לימות המשיח ומה בדיוק היתה התשובה שימו לב! יש להעלות בשלוחה קובץ בשם A000 שבו אומרים כעת נשלחה שיחת אימות "אנא הקישו את הקוד שקיבלתם בשיחה" ניסיתי את זה, ואחרי הקשת מספר זה אומר לי: שגיאה, לא הוקשה בחירה. אגב, בהגדרות השלוחה עשיתי כך: type=api api_link=לינק לקוד שלכם api_hangup_send=no api_phone_send=no title=אימות טלפון api_add_0=token=טוקן המערכת שלכם כמובן ששיניתי לינק וטוקן. שאלה נוספת: מה זה הקוד השני ששמת - הזה: type=api api_link=לינק api_hangup_send=no title=אימות טלפון api_add_0=token=טוקן האם זה למקרה שרוצים לאשר את המספר טלפון עצמו שמתקשר? בכל אופן יותר מתאימה לי אופציה א' שעשיתי, אבל כאמור זה אומר לי כנ"ל "שגיאה לא הוקשה בחירה".
  • 0 הצבעות
    53 פוסטים
    1k צפיות
    ה
    תעדכנו...
  • 0 הצבעות
    1 פוסטים
    4 צפיות
    אין תגובות
  • שיחה חוזרת לשלוחה מסויימת

    לא נפתר עזרה הדדית למשתמשים מתקדמים
    1
    0 הצבעות
    1 פוסטים
    5 צפיות
    אין תגובות
  • איכות קבצי השמע

    לא נפתר עזרה הדדית למשתמשים מתקדמים
    8
    1 הצבעות
    8 פוסטים
    25 צפיות
    ה
    @שלוחה-404 השאלה שלי היא האם הקובץ הזה מנצל את מלוא הפוטנציאל של דור 4 ושיחות HD כי אם לא אז אולי הגיע הזמן להתקדם.
  • קו פורום

    פורום מפתחים API
    1
    0 הצבעות
    1 פוסטים
    6 צפיות
    אין תגובות
  • האם אפשר לשלוח הקלטה לשרת api

    לא נפתר שאלות ועזרה הדדית
    15
    0 הצבעות
    15 פוסטים
    57 צפיות
    ה
    @יהודה-הוצלר-0 תודה רבה על הרעיון. מסכים איתך בכל מילה
  • מספרים של קוים

    עזרה הדדית למשתמשים מתקדמים
    6
    0 הצבעות
    6 פוסטים
    50 צפיות
    מ
    @הדיבל-המעופף @שלמה-גולד שני הקישורים לא נפתחים לי בכשר, פעם ראיתי פה בפורום נושא כזה, תודה
  • תזמון צינתוקים דרך הטלפון

    שאלות ועזרה הדדית
    13
    0 הצבעות
    13 פוסטים
    49 צפיות
    S
    @הדיבל-המעופף תשים בשלוחה את ההגדרות האלו type=api api_link=https://www.call2all.co.il/ym/api/CreateTask api_000=toList,,,,2,Digits,yes,yes api_001=year,,4,4,4,Number,yes,yes,,,1,Ok,None api_002=month,,2,2,2,Number,yes,yes,,,1,Ok,None api_003=day,,2,2,2,Number,yes,yes,,,2,Ok,None api_004=hour,,2,2,2,Number,yes,yes,,,1,Ok,None api_005=minute,,2,2,2,Number,yes,yes,,,1,Ok,None תשנה לטוקן שלך api_add_0=token=0772222770:123456 לא להפעיל בשבתות וחגים api_add_1=checkIsKodesh=1 מצב פעיל api_add_2=active=1 מספר משנה לצינתוק api_add_3=callerId=0772222770 רשימת תפוצה api_add_4=typeList=tpl api_end_goto=/ api_call_id_send=no api_phone_send=no api_did_send=no api_extension_send=no api_enter_id_send=no api_enter_id_name_send=no api_time_send=no api_hangup_send=no ואת הקבצים הנ"ל תעלה לשלוחה תזהר בהעלאה לשלוחה שישאר באותו סדר 000.tts 001.tts 002.tts 003.tts 004.tts 005.tts
  • 0 הצבעות
    3 פוסטים
    37 צפיות
    A
    @אA איך עובד בזה תגמולים?
  • הודעה זמנית.

    הועבר עזרה הדדית למשתמשים מתקדמים
    32
    0 הצבעות
    32 פוסטים
    2k צפיות
    מ
    @חנון-המרבה איך אני בכלל משנה מ-M0000 ל-M0001 ?
  • מספר כוכבית

    לא נפתר עזרה הדדית למשתמשים מתקדמים
    12
    0 הצבעות
    12 פוסטים
    109 צפיות
    ש
    לא הבנתי מה כ"כ מסובך. לימות יש הרבה מספרי כוכבית והם משכירים את זה לכל מבקש ודורש. בבקשה חייג לימות, ותבקש מהשרות לקוחות מספר כוכבית. אם אני לא טועה זה משהו כמו 150 לחודש.
  • 0 הצבעות
    31 פוסטים
    22 צפיות
    א
    @שלוחה-404 תודה רבה
  • 17 הצבעות
    58 פוסטים
    751 צפיות
    ש
    @חיים-באוטומציה כתב: שימו לב! ההתחברות למערכת אינו דורש אימות דו שלבי במערכות שהופעל באופן יזום "אכיפה מוקדמת" בטאב "אימות דו שלבי" בלשונית "אבטחה", נדרש אימות דו שלבי, גם דרך הממשק הזה, בשאר המערכות עדיין ניתן להיכנס ללא אימות דו שלבי.
  • בקשה לפיתוח אפשרות לעריכת קובץ בטלפון

    בקשות לפיתוח
    29
    2 הצבעות
    29 פוסטים
    1k צפיות
    ה
    @סוד-כמוב כתב: להוסיף הקלטה בתחילת הקובץ זה יש "להקלטת כותרת"
  • כמה נושאים שבהם נתקעתי!

    שאלות ועזרה הדדית
    3
    0 הצבעות
    3 פוסטים
    15 צפיות
    ה
    @המומחה לגבי אחד או שתעשה עיוות קול וצריך לשלוח הרשאה להודעות קצרות אתה יכול להשתמש בזה להודעות קצרות ארוכות אתה יכול בתשלום
  • תרגום של קוד

    שאלות ועזרה הדדית
    25
    0 הצבעות
    25 פוסטים
    62 צפיות
    ה
    @המומחה שלוחת הרשמה type=tzintuk list_tzintuk=123 שלוחת ניהול type=tzintuk tzintuk_admin=yes list_tzintuk=123 run_tzintuk_automat=yes
  • 0 הצבעות
    1 פוסטים
    7 צפיות
    אין תגובות
  • לא שולח הקלטות למייל

    עזרה הדדית למשתמשים מתקדמים
    3
    1 הצבעות
    3 פוסטים
    24 צפיות
    M
    @לעזור-לכולם שלחו לי כעת מימות שהתקלה סודרה ולאחר בדיקה אכן סודר.