סטטוסי מסירה
השדה status שכל רשומה בדוח מסירה נושאת — בתוך transactions[] שמוחזר מ-dlr ומ-dlrByDate, ובשדה status של דוח שנדחף ב-Push.
זה סולם שונה מקודי סטטוס הבקשה, שאומרים אם ה-API קיבל את הקריאה. כאן 0 ו-102 שניהם אומרים נמסר; ה-0 ברמה העליונה של אותה תשובה אומר רק שהדוח הופק.
כל רשומה נושאת גם he_message ו-en_message — אותו סטטוס במלל, בעברית ובאנגלית. העמודה he_message בטבלאות למטה היא בדיוק המלל הזה.
נמסר
| Status | he_message | משמעות |
|---|---|---|
0 | הגיע ליעד | נמסר למכשיר. |
102 | הגיע ליעד | נמסר למכשיר. זהו הערך שרוב התעבורה החיה מתייצבת עליו. |
נשלח, התוצאה לא ידועה
| Status | he_message | משמעות |
|---|---|---|
-1 | נשלח - ללא אישור מסירה | נשלח, אבל המפעיל לא החזיר אישור מסירה. לא כשל — פשוט ללא אישור. |
2 | Timeout | לא הגיע אישור בתוך חלון הזמן של המפעיל. |
לא נמסר
| Status | he_message | משמעות |
|---|---|---|
1 | נכשל | נכשל. |
3 | נכשל | נכשל. |
4 | נכשל סלולר | נכשל ברשת הסלולרית. |
5 | נכשל | נכשל. |
6 | נכשל | נכשל. |
14 | נכשל סלולר - עבר תהליך של store&forward | נכשל ברשת הסלולרית לאחר מחזור ניסיונות store-and-forward — הרשת החזיקה את ההודעה ובכל זאת לא הצליחה למסור אותה. |
101 | לא הגיע ליעד | לא נמסר. |
103 | פג תוקף | פג תוקף לפני שניתן היה למסור — בדרך כלל מכשיר שנשאר בלתי ניתן להשגה. |
104 | נמחק | נמחק לפני המסירה. |
105 | לא הגיע ליעד | לא נמסר. |
106 | לא הגיע ליעד | לא נמסר. |
107 | לא הגיע ליעד | לא נמסר. |
108 | נדחה | נדחה על ידי הרשת. |
109–132 | לא הגיע ליעד | לא נמסר. בלוק של קודי כשל ספציפיים למפעילים, שכולם אומרים לכם אותו דבר. |
747 | מנוי נמצא מחוץ לכיסוי רשת מקומית | המנוי מחוץ לכיסוי הרשת המקומית — נדידה או מחוץ לטווח. |
חסום או נדחה
אלה תוצאות של מדיניות, לא תקלות רשת. מספר שמחזיר אותן ימשיך להחזיר אותן עד שמשהו ישתנה בחשבון או בצד המנוי.
| Status | he_message | משמעות |
|---|---|---|
15 | מספר כשר | מכשיר כשר (מסונן), שאינו מקבל SMS רגיל. אפשר להגיע אליו בהודעה קולית — tts.type בערך 2 מנתב SMS למכשירים רגילים ושיחה למכשירים מסוננים באופן אוטומטי. |
16 | אין הרשאת שעת שליחה | השליחה לא הותרה בשעה הזו. |
17 | חסום להודעות פירסומיות | המנוי חסום להודעות פרסומיות. |
18 | הודעה לא חוקית | ההודעה נמצאה בלתי חוקית או לא תקנית. |
201 | נחסם לפי בקשה | נחסם לפי בקשת המנוי עצמו — הסרה מרשימת תפוצה. ראו הסרה ורגולציה. |
חשבון ומערכת
| Status | he_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 בדרך כלל כן הגיע ליעד; התייחסות אליו ככשל ושליחה חוזרת אומרות תשלום כפול על מסירה אחת.

