@פיתה בפוסט שאתה מצטט מדובר על שלוחה שדרכה מקבלים פקס מוגדר מראש.
אני דיברתי על משהו אחר. שלוחה שניתן לשלוח אליה פקסים.
@פיתה בפוסט שאתה מצטט מדובר על שלוחה שדרכה מקבלים פקס מוגדר מראש.
אני דיברתי על משהו אחר. שלוחה שניתן לשלוח אליה פקסים.
@יעקב-יצחק השלוחה קיימת ומקבלת פקסים. אמנם לפעמים עם תקלות.
@cubase האם אפשר לעשות הגדרה כזו גם אם אני לא עושה את כל המדריך בשלוחה הראשית?
ואם כן, איך?
@שואל-שאלה זה חסום במסלול הקהילתי. כמובן לא האתר של הקריינות, אלא האתר שבו ניתן לקבל מפתח API
לא נטפרי.
אלא ב...
נתיב.
@מוטי-מוטי-מוטי יש אפשרות קבלת פקס בימות, ובדרך כלל זה עובד מצוין.
הבעיה שרק בדרך כלל, אבל יש שם גם תקלות של אי קבלת פקס.
האם מישהו יכול לעזור למי שחסום לו הקישור לקבל מפתח API, ולתת לי מפתח API ?
@חסיד-חזק אם לעשות לכל מספר שלוחה בפני עצמה, זה טוב אם מדובר רק במספרים בודדים, וניתן לעשות זאת גם במודול הוותיק:
type=routing
routing_any_phone=yes
//עושה שהניתוב יהיה אל המספר שמקיש המתקשר
routing_your_id=special.0555555555
//עושה שהזיהוי של המתקשר יהיה המספר הנל
אבל אני מחפש משהו שאוכל להקיש מספר, ולפי המספר שהקשתי תהיה המזהה של השיחה היוצאת.
עשיתי איזה קוד API שנותן מענה קצר ופשוט למה שאני מחפש, זה בשלבי סיום.
@שלוחה-404 כעת אני לא מוציא כי איני יודע איך עושים זאת. אבל כל מודול שתציעו לי שזה יכול לעבוד, יהיה מצוין.
כתבתי קוד 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=טוקןהקוד מצורף בספויילר
<?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שבו אומרים כעת נשלחה שיחת אימות "אנא הקישו את הקוד שקיבלתם בשיחה"
ניסיתי את הקוד, אולם אחרי הקשת מספר - זה אומר לי: "שגיאה, לא הוקשה בחירה".
והוא חוזר על ההודעה הזו שוב ושוב, ללא לתת לי את האפשרות להקיש את הקוד שקיבל הנמען.
בפועל הוא שולח קוד למספר שהקשתי ומקריא לו אותו בטלפון,
אבל לי הוא לא נותן להקיש את המספר שהנמען קיבל, ולהשלים את הפעולה.
הוא אומר לנמען להקיש את המספר הזה שהוא קיבל, באתר.
אבל אם יש לי גישה לאתר, יכולתי גם לשלוח לו את ההודעה דרך האתר.
כל הרעיון של השלוחה דרך הטלפון, שאוכל להשלים כזו פעולה דרך הטלפון, בזמן שאין לי גישה לאתר.
האם ניתן ליצור שלוחה שאקיש בה מספר מתוך המספרים של המערכת שלי (יש לי כמה מספרים מורשים שעברו אימות וכן כמה מספרים משניים),
ואז השלוחה תשאל אותי שוב להקיש מספר שאליה תצא השיחה, והשיחה תצא מהמספר שהקשתי.
איך שייך לעשות זאת?
@איל-משולש יש אפשרות שהמספר יתווסף ללא אימות?
@דוד_מלך_ישראל זה יהיה תשלום באמצעות יחידות של ימות, או בתשלום נפרד אליך?
@דוד_מלך_ישראל כדאי מאד שיהיה ממשק שאוכל להעלות לשם קובץ PDF, ושאני אכתוב לו לאיזה מספר לשלוח את זה.
@דוד_מלך_ישראל ממתינים לכזה דבר מאד!
@שלוחה-404 איך אני יוצר עמך קשר במייל?
@פלוס מלכתחילה כן עדיף לכתוב 200, בפרט מי שיש לו כמה חשבונות, כי החשבונות אמורות להיות משויכות לפי המספרים הללו במרכזיה.
אבל אני כעת רואה שבכלל רשמת משהו אחר. מה שצריך לרשום הוא:
account_dial_extension=200
ואצלך רשום:
account_dial_number=1
והאמת שאפשר להשאיר כמו שרשום אצלך, אלא שאם יהיו כמה חשבונות סיפ, אופן ההפניה שונה.
ראה למעלה כבר שכתבתי להגדיר כנ"ל. כנראה שלא שמתם לב, ולא שיניתם לפי איך שכתבתי.