Skip to content

סטטוסי מסירה

השדה status שכל רשומה בדוח מסירה נושאת — בתוך transactions[] שמוחזר מ-dlr ומ-dlrByDate, ובשדה status של דוח שנדחף ב-Push.

זה סולם שונה מקודי סטטוס הבקשה, שאומרים אם ה-API קיבל את הקריאה. כאן 0 ו-102 שניהם אומרים נמסר; ה-0 ברמה העליונה של אותה תשובה אומר רק שהדוח הופק.

כל רשומה נושאת גם he_message ו-en_message — אותו סטטוס במלל, בעברית ובאנגלית. העמודה he_message בטבלאות למטה היא בדיוק המלל הזה.

נמסר

Statushe_messageמשמעות
0הגיע ליעדנמסר למכשיר.
102הגיע ליעדנמסר למכשיר. זהו הערך שרוב התעבורה החיה מתייצבת עליו.

נשלח, התוצאה לא ידועה

Statushe_messageמשמעות
-1נשלח - ללא אישור מסירהנשלח, אבל המפעיל לא החזיר אישור מסירה. לא כשל — פשוט ללא אישור.
2Timeoutלא הגיע אישור בתוך חלון הזמן של המפעיל.

לא נמסר

Statushe_messageמשמעות
1נכשלנכשל.
3נכשלנכשל.
4נכשל סלולרנכשל ברשת הסלולרית.
5נכשלנכשל.
6נכשלנכשל.
14נכשל סלולר - עבר תהליך של store&forwardנכשל ברשת הסלולרית לאחר מחזור ניסיונות store-and-forward — הרשת החזיקה את ההודעה ובכל זאת לא הצליחה למסור אותה.
101לא הגיע ליעדלא נמסר.
103פג תוקףפג תוקף לפני שניתן היה למסור — בדרך כלל מכשיר שנשאר בלתי ניתן להשגה.
104נמחקנמחק לפני המסירה.
105לא הגיע ליעדלא נמסר.
106לא הגיע ליעדלא נמסר.
107לא הגיע ליעדלא נמסר.
108נדחהנדחה על ידי הרשת.
109132לא הגיע ליעדלא נמסר. בלוק של קודי כשל ספציפיים למפעילים, שכולם אומרים לכם אותו דבר.
747מנוי נמצא מחוץ לכיסוי רשת מקומיתהמנוי מחוץ לכיסוי הרשת המקומית — נדידה או מחוץ לטווח.

חסום או נדחה

אלה תוצאות של מדיניות, לא תקלות רשת. מספר שמחזיר אותן ימשיך להחזיר אותן עד שמשהו ישתנה בחשבון או בצד המנוי.

Statushe_messageמשמעות
15מספר כשרמכשיר כשר (מסונן), שאינו מקבל SMS רגיל. אפשר להגיע אליו בהודעה קוליתtts.type בערך 2 מנתב SMS למכשירים רגילים ושיחה למכשירים מסוננים באופן אוטומטי.
16אין הרשאת שעת שליחההשליחה לא הותרה בשעה הזו.
17חסום להודעות פירסומיותהמנוי חסום להודעות פרסומיות.
18הודעה לא חוקיתההודעה נמצאה בלתי חוקית או לא תקנית.
201נחסם לפי בקשהנחסם לפי בקשת המנוי עצמו — הסרה מרשימת תפוצה. ראו הסרה ורגולציה.

חשבון ומערכת

Statushe_messageמשמעות
7אין יתרהלא הייתה יתרה ברגע השליחה.
998אין הרשאהאין הרשאה.
999שגיאה לא ידועהשגיאה לא ידועה.

קריאה שלהם בקוד

במקום להתנות על כל ערך בנפרד, מיינו אותם לארבע התוצאות שבאמת מכתיבות התנהגות:

js
const DELIVERED = new Set(['0', '102'])
const PENDING = new Set(['-1', '2'])
const BLOCKED = new Set(['15', '16', '17', '18', '201'])

function outcome(status) {
  const code = String(status)

  if (DELIVERED.has(code)) return 'delivered'
  if (PENDING.has(code)) return 'unconfirmed'
  if (BLOCKED.has(code)) return 'blocked' // אין לנסות שוב את המספר הזה
  return 'failed'
}
python
DELIVERED = {"0", "102"}
PENDING = {"-1", "2"}
BLOCKED = {"15", "16", "17", "18", "201"}


def outcome(status):
    code = str(status)

    if code in DELIVERED:
        return "delivered"
    if code in PENDING:
        return "unconfirmed"
    if code in BLOCKED:
        return "blocked"  # אין לנסות שוב את המספר הזה
    return "failed"
php
<?php

const TEXTME_DELIVERED = ['0', '102'];
const TEXTME_PENDING = ['-1', '2'];
const TEXTME_BLOCKED = ['15', '16', '17', '18', '201'];

function textme_outcome(string|int $status): string
{
    $code = (string) $status;

    return match (true) {
        in_array($code, TEXTME_DELIVERED, true) => 'delivered',
        in_array($code, TEXTME_PENDING, true) => 'unconfirmed',
        in_array($code, TEXTME_BLOCKED, true) => 'blocked', // אין לנסות שוב
        default => 'failed',
    };
}

כדאי להפריד את unconfirmed מ-failed. ערך -1 בדרך כלל כן הגיע ליעד; התייחסות אליו ככשל ושליחה חוזרת אומרות תשלום כפול על מסירה אחת.