מידע טכני

שליחת הודעות

שליחת הודעות MT / Mobile Terminated SMS מתבצעת דרך Web Service API הבא: SmsGate2.asmx

שליחה בסיסית ניתן לבצע גם באמצעות ה-API הישן באמצעות HTTP GET ל-URL הבא:

http://sms.cellcom.co.il/scripts/smsgate.asp?username=&password=&target=&source=&message=&validity=&replace=
חובה למלא לפחות את את שם המשתמש, הסיסמה, יעד ההודעה ותוכנה.
ניתן להוריד מספר דוגמאות לתוכנת Client השולחות הודעת SMS לשרת דרך פרוטוקול HTTP או את רשימת הודעות השגיאה.

WAP Push

הודעות WAP Push משמשות לשליחת סימנייה (bookmark) לטלפונים תומכי WAP.
בסימניה מצוינת כתובת URL של דף WAP כלשהוא באינטרנט.
לאחר קבלת ההודעה, דפדפן ה-WAP בטלפון ניגש לדף שצוין בהודעה.
בתלות בתוכן הדף ניתן להציג תוכן כלשהוא למשתמש, או להוריד תכנים בינאריים לטלפון כמו רינגטונים, אייקונים, משחקי Java וכדומה.

קיימים 2 סוגים של הודעות WAP Push:

כדי לשלוח הודעת WAP Push יש להשתמש בפעולה WapPush.
לשליחת הודעת Service Load יש להשאיר את שדה Description ריק, אחרת תשלח הודעת Service Indication.

קבלת הודעות

ניתן להגדיר שהודעות MO / Mobile Originated SMS הנשלחות ע"י מנויי סלקום למספר מקוצר ינותבו לתיבת דואר או לאפליקציה:

קבלה לתיבת דואר sms2email

הודעת email תשלח לתיבת הדואר המוגדרת מהכתובת 05xxxxxxxx@sms.cellcom.co.il , כאשר 05xxxxxxxx הוא זיהוי המנוי ששלח את הודעת ה-MO.
תוכן ההודעה יהיה הטקסט שנשלח בהודעת ה-MO.

קבלת לשרת Web sms2application

ההודעה תנותב לאפליקציה ע"י פעולת HTTP GET, כאשר פרמטרים לגבי הודעת ה-MO מופיעים ב-QueryString של ה-Url שיופעל.
לדוגמה הודעה שנשלחה ממנוי 0521234567 למספר 1234 עם התוכן "ג את":
http://www.yourhost.com/whatever/yourMoApp.asp?target=1234&source=0521234567&text=%E2+%E0%FA&text_utf8=ג+את&mob_type=GSM&sm_no=2011
הפרמטרים המופיעים בהודעה:

תוכן ההודעה מופיע פעמיים מקודד גם לפי ASCII וגם לפי Unicode, וזאת כדי לתמוך גם בטכנולוגיות ישנות שמסוגלות לקבל את הבקשה רק עם Request Encoding בפורמט ASCII, וגם בטכנולוגיות עדכניות שכברירת מחדל מצפות לקבל את הבקשה ב- UTF-8 Request Encoding.

אם האפליקציה מחזירה תשובה תקינה (HTTP Status 200) אז תוכן התשובה (Response) תשלח בחזרה למנוי ששלח את הודעת ה-MO. אם האפליקציה לא רוצה להחזיר תשובה אז צריך להקפיד שה-Response יהיה ריק.

דוגמת קוד לאפליקציית MO בסיסית הכתובה בטכנולוגיית ASP המקבלת את ההודעה ומחזירה את ההודעה שהתקבלה בחזרה למנוי:

    target = Request("target")
    source = Request("source")
    text_ascii = Request("text")
    text_utf8 = Request("text_utf8")
    mob_type = Request("mob_type")
    sm_no = Request("sm_no")
    message = "Message " & sm_no & " From " & source & " : " & text_ascii
    Response.Write message

אישורי קבלה DR / Delivery Receipt

בזמן שליחת הודעה ניתן לבקש אישור על קבלת ההודעה ע"י המנוי.
בעת שליחת ההודעה השולח מקבל מהמערכת מספר הודעה. מספר זה מציין שההודעה התקבלה במערכת ה-SMSC ותשלח למנוי בהקדם האפשרי.
לאחר שה-SMSC שלח את ההודעה למנוי בהצלחה יקבל השולח הודעת חיווי שההודעה נשלחה בהצלחה.
אם שליחת ההודעה נכשלה מסיבה כלשהיא ה-SMSC מנסה שנית מספר פעמים. אם ה-SMSC מזהה שאין אפשרות לשלוח את ההודעה בעתיד או שתוקף ההודעה פג אז השולח יקבל הודעת חיווי ששליחת ההודעה נכשלה.

אופן העברת הודעות החיווי לשולח מתבצע בדומה לקבלת הודעת MO: דרך HTTP או דרך email.
לפני שליחת ההודעות השולח צריך להגדיר יעד לקבלת החיווים באמצעות הפעולה SetRoutingUri.
ניתן להגדיר url מסוג http או https או תיבת דואר (לדוגמא mailto:mailbox@server.com).

בקשה לקבלת חיווי מתבצע ע"י סימון true בפרמטר deliveryReceipt בזמן שליחת הודעה באמצעות הטופס בדף הבית או בשליחת הודעה באמצעות הפעולה SendSmsEx .

האפשרות לקבלת הודעות חיווי אינה אפשרית לכל משתמש ויש צורך בהגדרת האפשרות במערכת.

אישור הקבלה מכיל את הפרמטרים הבאים בהודעת HTTP GET:
?target={0}&source={1}&text={2}&submitDate={3}&doneDate={4}&receiptedMessageId={5}&messageState={6}&deliveryFailureReason={7}
כאשר הערכים המתקבלים הם ע"פ תקן SMPP:
target - מכיל את שדה source של ההודעה המקורית.
source - מכיל את שדה target של ההודעה המקורית.
text -מכיל במקרים מסויימים את התווים הראשונים של תוכן ההודעה המקורית.
submitDate -מכיל את תאריך ושעה המקוריים בה נשלחה ההודעה המקורית.
doneDate - מכיל את תאריך ושעה בה התקבלה ההודעה אצל המנוי או פג התוקף שלה.
receiptedMessageId - מכיל את מספר ההודעה המקורית שהתקבל בתשובה לשליחת ההודעה  המקורית. ע"פ שדה זה ניתן לקשר בין ההודעה המקורית לאישור הקבלה.
messageState - מכיל את הסטטוס הסופי של ההודעה. בדר"כ אחד מהערכים הבאים: Delivered, Expired, Deleted, Undeliverable
deliveryFailureReason - סיבת הכשלון במקרה ש-messageState != Delivered: אחד מהערכים DestinationUnavailable, DestinationAddressInvalid, PermanentNetworkError, TemporaryNetworkError

הודעות שגיאה

Status Code Description Remarks
0 Ok message sent SMPP 3.4 Ok
1 Message too long SMPP 3.4 InvMsgLen
2 Command length is invalid SMPP 3.4 InvcmdLen
3 Command id is invalid or not supported SMPP 3.4 InvCmdId
4 Incorrect bind status for given command SMPP 3.4 InvBndSts
5 Already bound SMPP 3.4 AlyBnd
6 Invalid priority flag SMPP 3.4 InvPrtFlg
7 Invalid registered delivery flag SMPP 3.4 InvRegDlvFlg
8 System error SMPP 3.4 SysErr
10 Invalid source address SMPP 3.4 InvSrcAdr
11 Invalid destination address SMPP 3.4 InvDstAdr
12 Message id is invalid SMPP 3.4 InvMsgId
13 Bind failed SMPP 3.4 BindFail
14 Invalid password SMPP 3.4 InvPaswd
15 Invalid system id SMPP 3.4 InvSysId
17 Cancelling message failed SMPP 3.4 CancelFail
19 Message replacement failed SMPP 3.4 ReplaceFail
20 Message queue full SMPP 3.4 MsgQFul
21 Invalid service type SMPP 3.4 InvSerTyp
51 Invalid number of destinations SMPP 3.4 InvNumDests
52 Invalid distribution list name SMPP 3.4 InvDlName
64 Invalid destination flag SMPP 3.4 InvDestFlag
66 Invalid submit with replace request SMPP 3.4 InvSubRep
67 Invalid esm class set SMPP 3.4 InvEsmClass
68 Invalid submit to distribution list SMPP 3.4 CntSubDl
69 Submitting message has failed SMPP 3.4 SubmitFail
72 Invalid source address type of number SMPP 3.4 InvSrcTon
73 Invalid source address numbering plan SMPP 3.4 InvSrcNpi
80 Invalid destination address type of number SMPP 3.4 InvDstTon
81 Invalid destination address numbering plan SMPP 3.4 InvDstNpi
83 Invalid system type SMPP 3.4 InvSysTyp
84 Invalid replace if present flag SMPP 3.4 InvRepFlag
85 Invalid number of messages SMPP 3.4 InvNumMsgs
88 Throttling error SMPP 3.4 Throttled
97 Invalid scheduled delivery time SMPP 3.4 InvSched
98 Invalid validity period value SMPP 3.4 InvExpiry
99 Predefined message not found SMPP 3.4 InvDftMsgId
100 Esme receiver temporary error SMPP 3.4 X_t_appn
101 Esme receiver permanent error SMPP 3.4 X_p_appn
102 Esme receiver reject message error SMPP 3.4 X_r_appn
103 Message query request failed SMPP 3.4 QueryFail
130 Bad username or password or ip address not allowed
192 Invalid optional parameter stream SMPP 3.4 InvOptParStream
193 Optional parameter not allowed SMPP 3.4 OptParNotAllwd
194 Invalid parameter length SMPP 3.4 InvParLen
195 Missing optional parameter SMPP 3.4 MissingOptParam
196 Invalid optional parameter value SMPP 3.4 InvOptParamVal
240 Missing parameters
241 Bad target number with operator name
242 Bad target number
243 Not authorized for requested service
244 Target locked or low prepaid balance
245 Target does not support wap
246 Binary marketing message is not supported
247 Target blocked for requested service
248 Marketing message with missing or illegal sender name of phone
249 Marketing message truncated by max segments
250 Replace or immediate not supported in concatenated message
254 Delivery failure SMPP 3.4 DeliveryFailure
255 Unknown error SMPP 3.4 UnknownErr
256 Smpp response timeout
257 Smpp generic nack
260 Invalid account properties
262 Invalid provider content type parameters
264 Invalid provider price plan parameters
265 Alphanumeric target not allowed
1001 The request has been accepted for processing