با سلام!برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید ارسالی توسط ofog2000 برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
دوست عزیز عضویت شما رو در PCN تبریک می گم.
1- در مورد Delivery می تونید از DLL که آقا مبین زحمت رو کشیدند استفاده کنید:
اسم این کتابخانه ActiveXpert SMS and MMS Toolkit هستش که نحوه ی استفاده از اون در پست های قبل موجود هستش.
کد گزارش ارسال با این DLL در VB.net به شکل زیر هستش:
در بخش ارسال پیام یک مقدار دهی باید انجام بشه:
در نهایت با کد زیر وضعیت Delivery پیام ها رو متوجه می شویم. که کار هم به واسطه همان ListView انجام میشه:کد:Dim objSmsMessage As SmsMessage = New SmsMessage objSmsMessage.RequestDeliveryStatus = -1'با این کار می به برنامه می گوییم، می خواهیم گزارش ارسال برای این پیامک فعال بشه.If (objGsmProtocol.LastError = 0) Then Dim str(4) As String Dim itm As ListViewItem str(0) = strMessageReference str(1) = objSmsMessage.Recipient str(2) = "n/a" str(3) = "Submitted" itm = New ListViewItem(str) itm.Tag = 0 ctlSentMessages.Items.Insert(0, itm) End If'این بخش برای اینه که بتونیم پیامک های deliver شده رو تشخیص بدیم. با این کد مشخصات پیامک ارسال شده وارد یک ListView میشه.
2- شما می تونید گزارش ارسال رو ، روی گوشی خودتون فعال کنید. با ارسال فرمان At به گوشی پیامک بفرستید. اندکی بعد با فرمان At پیامک های دریافتی گوشیتون رو بخونید و اون ها رو وارد رایانه کنید. سپس با استفاده از یک سری الگوریتم های ساده می تونید بین پیام های خوانده نشده، Delivery Message Report رو تشخیص بدید. بدین ترتیب می تونید تعیین کنید که چه پیامک هایی به مقصد رسیده اند.کد:Dim i, numMessageCount As System.Int32 Dim lvItem As ListViewItem Dim objDeliveryStatus As SmsDeliveryStatus numMessageCount = ctlSentMessages.Items.Count For i = 0 To numMessageCount - 1 lvItem = ctlSentMessages.Items(i) If (lvItem.Tag <= 1) Then objDeliveryStatus = objGsmProtocol.QueryStatus(lvItem.SubItems(0).Text) If (objGsmProtocol.LastError = 0L) Then lvItem.Tag = objDeliveryStatus.Status If (objDeliveryStatus.Status > 1) Then lvItem.SubItems(2).Text = objDeliveryStatus.StatusTime End If lvItem.SubItems(3).Text = objGsmProtocol.GetStatusDescription(objDeliveryStatus.Status) Else UpdateResult(objGsmProtocol.LastError) End If End If Next
3- فکر کنم در مودم های GSM یک فرمان وجود داشته باشه به نام +CDS که معلوم می کنه پیامک به مقصد رسیده یا نه:
مثال بالا نشون میده که پیامکی در 12:30:07 به شماره +33146290800 ارسال شده و در 12:30:08 به مقصد رسیده است.کد:+CDS : 2, 116, ”+33146290800”, 145, “98/10/01,12 :30 :07+04”, “98/10/01 12 :30 :08+04”, 0
* بازم فکر کنم یه راه کارآمد در عین حال پیچیده برای تشخیص deliver شدن پیام وجود داره که متاسفانه بنده از نحوه ی انجام آن اطلاعی ندارم. اگر چیزی بیش تری به دست آوردم در اختیارتون قرار می دم.
با سپاس
آرمینبرای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید






پاسخ با نقل قول
Bookmarks