-
نقل قول: PDU Encoding And Decoding
سلام دوستان. از همتون ممنون بابت مطالبي گذاشتبن.
فقط كاشكي اين مطالبو تو يه فايل pdf ميذاشتيد كه اينقدر پستها زياد نشن و اونايي كه مثل من اينترنت پر سرعت ندارن واسه بازكردن صفحات عذاب نكشن.
و اگه امكان داره پستهاي اضافي رو حذف كنيد تا يكم تعداد صفحات كمتر بشه.
-
نقل قول: PDU Encoding And Decoding
سلام کسی pdf این مطالب رو نداره؟
من فرق بین اینکد 7 بیت و 8بیت و ucs2 چیه؟
-
نقل قول: رمز گشایی پیام دریافت شده "SMS" به فرمت PDU در مود Default Alphabet قسمت اول
سلام
آقا روی این قسمت میشه توضیح بیشتری بدین؟
اون 3 از کجا اومد؟
ممنون
-
نقل قول: رمز گشایی پیام دریافت شده "SMS" به فرمت PDU در مود Default Alphabet قسمت اول
نقل قول:
نوشته شده توسط
raravaice
به علت پیچیدگی این مورد با ذکر یک مثال مطلب رو دنبال میکنیم.
0791893905004102240C918939564208
8400008060504112928110C2B0DC1D6E
97DD657B7AEE7ACBCF
این پیامی هست که به دست من رسیده؟!!!
قسمت اول شماره مرکز پیام:
0791893905004102
07 : بدین معنی که شماره مرکز پیام 07H هفت بایت از این متن رو اشغال کرده که بعد از علامت شماره قرار میگیره.
91 : بدین معنی که شماره مرکز پیام بین المللی است و با + شروع شده ("اگر غیر از این بود عدد 81 جایگزین میشد")
893905004102 : این خود شماره مرکز پیام هست ، یه شمارش بزنید! میبینید که محتوای موجود دارای 6 بایت هست که با 1 بایت علاکت میشه 7 بایت یعنی همون عددی که در ابتدا داشتیم.این شماره هم مثل همیشه به صورت جفت معکوس هست که باید برای خوانا شدن معکوس بشه یعنی :
داریم :
89-39-05-00-41-02
که بعد از بر عکس کردن میشه :
98-93-50-00-14-20
پس با احتساب علامت شماره داریم :
+989350001420
خیلی راحت بود مگه نه ;)
24 : این عدد که یکی از پر معنا ترین اعداد برای ما هست 2 تا مسئله رو برامون روشن میکنه.
این عدد چندین حالت میتونه داشته باشه که من عام اون رو بهتون میگم.
04: برای SMS یعنی شخصی که پیام رو فرستاده
درخواست گزارش یا همون Delivery نکرده.
24: برای SMSیعنی شخصی که پیام رو فرستاده
درخواست گزارش یا همون Delivery کرده.
40: برای EMSیعنی شخصی که پیام رو فرستاده
درخواست گزارش یا همون Delivery نکرده.
44: برای EMS یعنی شخصی که پیام رو فرستاده
درخواست گزارش یا همون Delivery کرده.
06: پیام فعلی یک گزارش هست.
البته این اعداد همینجوری یلخی هم به دست نیامده و با 0 و 1 شده معادل باینری اونا سرو کار داره. ولی کلیات کار رو تا اینجا داشته باشید کفایت میکنه.
پس تا اینجا ما فهمیدیم که با این عدد به 2 دسته اطلاعات میشه پی برد یکی نوع پیام و دیگری آیا درخواست گزارش از طرف فرستنده ارسال شده یا نه.
حالا میخواهیم دقیق از روی عددی که توی این بایت وجود داره بفهمیم که نوع این کد چیه؟
- SMS دریافت شده = 0
- SMS ذخیره شده = 1
- گزارش دریافت یک پیام = 2
- EMS دریافت شده = 64
- EMS ذخیره شده = 65
البته اون عدد
24 در مبنای 16 هست و این عدد هایی که من نوشتم تا اینجای کار ربطی به اون 24 نداره و همچنین در مبنای 10 هستند.
اینجا باید عدد 24H رو با 3 و 64 در مبنای 10 And کنیم و هر دو نتیجه رو با هم جمع کنیم یعنی :
36 دسیمال =
24 هگز = 00100100 باینری
AND
3 دسیمال = 3 هگز = 00000011 باینری
جواب1
0 دسیمال = 0 هگز = 00000000 باینری
و داریم
36 دسیمال =
24 هگز = 00100100 باینری
AND
64 دسیمال = 40 هگز = 01000000 باینری
جواب2
0 دسیمال = 0 هگز = 00000000 باینری
که در جمع 2 جواب به عدد 0 میرسیم که میشه :
SMS دریافت شده = 0
فقط امیدوارم با AND باینری آشنا باشید!
AND باینری!
0AND0=0
0AND1=0
1AND1=1
پس ما با AND کردن این عدد با 3 و 64 و جمع نتیجه ها به این نکته پی میبری که پیام ما چیه ولی یه نکته که اهمیت داره و کاربرد نداره اینه که:
اگر جواب اول بشه 3 و جواب دوم بشه 64 نوع پیام میشه : EMS ارسال شده
-----------------------------------------------------------------------------
ادامه در پست بعد.
موفق باشید
سلام
آقا روی این قسمت میشه توضیح بیشتری بدین؟
اون 3 از کجا اومد؟
ممنون
-
نقل قول: PDU Encoding And Decoding
سلام
من کل تاپیک رو مطالعه کردم حیفم اومد از دوستان تشکر نکنم ، عالی بود خیلی زحمت کشیدید .
این تاپیک تقریباً نتیجه سه چهار سال هم فکریه واقعاً ارزشمنده .
ممنون از همه
-
نقل قول: PDU Encoding And Decoding
اساتید سلام
من یه سوال دارم!
همونطور که فرمودین بعد از AT+CMGS باید طول کارکتر رو بنویسیم بعد توی خط بعدی کد PDU Message اما من چطور میتونم این طول کارکترها رو بدست بیارم (با استفاده از کدام خاصیت کامپوننت ها)؟؟؟ سرویس سنتر شماره مقصد و پیام و سایر اطلاعات رو تونستم تبدیل به PDU کنم اما طولشو نمیدونم چطور بدست بیارم...
البته اینم بگم از کاکپوننتها دارم استفاده میکنم دوستانی که از SMSPduLib یا AtSMS استفاده میکنن ممکنه راهنمایی بفرمایید.
-
نقل قول: PDU Encoding And Decoding
سلام،
طول پیام میشه طول همون رشته که PDU توی اون قرار داره!!
اگه دارین از کامپوننت ها استفاده می کنید چه نیازی به این کاره؟ خودشون ارسال رو انجام میدن!؟
برای بدست آوردن طول رشته میتونید به این سایت مراجعه کنید.
-
نقل قول: PDU Encoding And Decoding
ممنونم از پاسختون
فکر کنم من سوالم رو ناقص پرسیدم
قبل از هر چیز بگم که من قصد دارم از Alphabet Size 16 بیتی استفاده کنم
طبق فرموده شما Length باید دو برابر تعداد کاراکترهای Message باشه
اما منظور من Length نیست بلکه به عنوان مثال در ارسال پیغام "تست" با مسیج سنتر "+9891962978184" و به مقصد "+989121234567" باید کدPDU به شکل "AT+CMGS=20
0891891969928781F411000C918919123254760008AA06062A 0633062A" داشته باشم .
سوال من عدد 20 در این مثال هست ، باید جلوی AT+CMGS= عدد 20 رو قرار بدم بعد در خط بعدی کد PDU رو بزارم
لطفا راهنمایی کنید این عدد رو با کدام خاصیت این کامپوننت ها (SMSPduLib یا AtSMS) میتونم بدست بیارم؟
ضمنا شما فرمودین با خواص خود کامپوننت (SMSPduLib یا AtSMS) میتونم ارسال رو هم انجام بدم ممکنه راهنمایی کنید.
نمونه کدی که استفاده میکنم به این شکله:
SMSPDULib.SMS sms = new SMSPDULib.SMS();
sms.Direction = SMSPDULib.SMSDirection.Submited;
sms.PhoneNumber = txtPhoneNumber.Text;
sms.ServiceCenterNumber ="\"+9891962978184\"";
sms.ValidityPeriod = newTimeSpan(4, 0, 0, 0);
sms.Message = txtMessage.Text;
string pduSource = sms.Compose(SMSPDULib.SMS.SMSEncoding.UCS2);
txtHexadecimalPDUMessage.Text = pduSource;
port.Open();
port.Write("AT\r\n");
port.WriteLine("AT+CMGF=0\r\n");
port.WriteLine("AT+CMGS=" pduSource);
port.WriteLine("\r\n" + '\x001a');
با توجه با این کدها چطور باید عدد 20 در این مثال و بعد PDU رو پاس کنم؟؟؟
نقل قول:
نوشته شده توسط
faravaghi
سلام،
طول پیام میشه طول همون رشته که PDU توی اون قرار داره!!
اگه دارین از کامپوننت ها استفاده می کنید چه نیازی به این کاره؟ خودشون ارسال رو انجام میدن!؟
برای بدست آوردن طول رشته میتونید به این سایت مراجعه کنید.
-
نقل قول: PDU Encoding And Decoding
دوستان ممکنه یکی کمک کنه!!!!
دقیقا همین کدها رو اگه توی هایپر ترمینال استفاده کنم در حالت pdu ارسال میشه اما وقتی کدهای سی شارپ تبدیل میشن هیچ اتفاقی نمیوفته یعنی کد کامل اجرا میشه ولی اس ام اس ای ارسال نمیشه!
یکی کمک کنه واقعا گیج شدم دیگه....
-
نقل قول: PDU Encoding And Decoding
سلام دوست عزیز،
یه چیزی رو قبل پاسخ به سوال شما بگم و اون اینه که اگه از کامپوننت استفاده می کنید، دیگه دنبال خیلی جزئیات ریز نباشید!!!
و اینم از همون موارده که شما دیگه به نحوه ارسال کار ندارید و فقط میگین که این پیام بره برای فلان شماره همین و بس!
برای ارسال پیام شما ابتدا طول PDU رو به عنوان پارامتر به AT+CMGS پاس بدین به این شکل:
AT+CMGS=20
سپس خط فرمان حاضر میشه تا دستور شما رو اجرا کنه که همون ارسال پیام و گرفتن کد PDU است.
شما میتونید در کامپوننت ATSMS از روش زیر برای ارسال استفاده کنید هرچند که همراه این کامپوننت هم Document است هم نمونه کد:
Dim msgId As String = oPhone.SendSMS(txtMSISDN.Text, txtMsg.Text)
ویا در سی شارپ :
string msgId = oPhone.SendSMS(txtMSISDN.Text, txtMsg.Text);
البته قبلش یکم تنظیمات داره که در زمان ساخت Object باید اون ها رو انجام بدین. مثلا همین که شماره پورت، کدینگ پیام چی باشه و ....
oPhone.Encoding = EnumEncoding.Unicode_16Bit
-
نقل قول: PDU Encoding And Decoding
دوست عزیز ممنون از پاسختون
خوشحالم بالاخره یکی پیدا شد با ATSMS کار کرده باشه تا راهنمایی کنه] ممکنه چند تا سر نخ به من بدین در مورد استفاده از این کامپوننت؟
اول اینکه تنظیمات پورت با این کامپوننت چطور تعریف میشن؟ یکیشون رو مثال بزنید لطفا.
دمو اینکه ظاهرا باید با خاصیت ATSMS.SMS برای ارسال اقدام کنم ولی SendSMS پیدا نکردم اگه ممکنه با یه مثال بیشتر راهنمایی کنین تا سر نخ دستم بیاد.
سوال سوم اینکه این کامپوننت وب رو پشتیبانی میکنه یا نه و ایا استفاده از این کامپوننت برای وب سایت مجازه (متن باز هست؟) یا نه چون مثلا Kylix اصلا ویندوزی بود و نتونستم ازش برای وب استفاده کنم گرچه متن باز هم نبود.
ممنون میشم به این سه سوال جواب بدین
نقل قول:
نوشته شده توسط
faravaghi
سلام دوست عزیز،
یه چیزی رو قبل پاسخ به سوال شما بگم و اون اینه که اگه از کامپوننت استفاده می کنید، دیگه دنبال خیلی جزئیات ریز نباشید!!!
و اینم از همون موارده که شما دیگه به نحوه ارسال کار ندارید و فقط میگین که این پیام بره برای فلان شماره همین و بس!
برای ارسال پیام شما ابتدا طول PDU رو به عنوان پارامتر به AT+CMGS پاس بدین به این شکل:
AT+CMGS=20
سپس خط فرمان حاضر میشه تا دستور شما رو اجرا کنه که همون ارسال پیام و گرفتن کد PDU است.
شما میتونید در کامپوننت ATSMS از روش زیر برای ارسال استفاده کنید هرچند که همراه این کامپوننت هم Document است هم نمونه کد:
Dim msgId As String = oPhone.SendSMS(txtMSISDN.Text, txtMsg.Text)
ویا در سی شارپ :
string msgId = oPhone.SendSMS(txtMSISDN.Text, txtMsg.Text);
البته قبلش یکم تنظیمات داره که در زمان ساخت Object باید اون ها رو انجام بدین. مثلا همین که شماره پورت، کدینگ پیام چی باشه و ....
oPhone.Encoding = EnumEncoding.Unicode_16Bit
-
نقل قول: PDU Encoding And Decoding
سلام برشما،
این تاپیک موضوعش فرق میکنه. نمی دونم میشه این جا همچین بحثی رو جواب داد یا نه؟
ولی به چندتا سوال جواب میدم بقیه رو لطف کنید با پیغام خصوصی دنبال کنید.
پشتیبانی از وب:
این نوع کامپوننت ها که دارن با سخت افزار کا میکنن دیگه کاری به وب ندارن! چون دنیاشون متفاوت میشه. این هم از این قاعده خارج نیست. پس ارسال از طریق وب رو انجام نمیده.
در ضمن برای ارسال از طریق وب باید از وب سرویس استفاده کنید که ساخت شرکت های واگذار کننده خدمات است.
Open Source:
این کامپوننت متن کامل کدهاش موجوده پس یک افزونه متن باز است.
در ضمن این کامپوننت ویندوزی است و در وب کاربرد نداره. برای ارسال از طریق وب باید از وب سرویس استفاده کنید نه سخت افزار مودم!
-
نقل قول: PDU Encoding And Decoding
من هر کاری میکنم نمیتونم اس ام اس چند پارتی با این روش بفرستم
لطفا راهنماییم کنید
-
نقل قول: PDU Encoding And Decoding
سلام
ایا امکان داره که متن دلخواه را به جای شماره بفرستیم؟
جایی خواندم مخابرات فقط به شرکت هایی که قرار داد دارند اجازه این کار رو میده!
کسی تاحالا این کارو انجام داده؟
-
نقل قول: PDU Encoding And Decoding
ایا امکان داره که متن دلخواه را به جای شماره بفرستیم؟
-
نقل قول: PDU Encoding And Decoding
-
نقل قول: PDU Encoding And Decoding
سلام
من ی pdu سه پارتی دارم....اما هر چی میگردم کد060804 رو پیدا نمی کنم ؟؟؟ چه کنم ؟؟
1-06918919015000400C91891975958047000831809200218341 8C0500033203010633064406270645
062A00200631062700200646064506CC0020062E0648062706 470646062F0020067E06270633062E
002006AF0641062A002E002006330631064706270020062F06 31002006AF063106CC062806270646
002006270633062A0021000A06A9063306CC00200633063100 2006280631064606CC06270631062F
002006A90631
2-06918919015000400C91891975958047000831809200212441 8C050003320302062F0020067E0627
0633062E002006AF0641062A0646002006480020062F06CC06 2F06270631002006CC062706310627
0646002006310627002E0020064606AF06470020062C063200 20067E06CC06340020067E06270020
063106270020062F06CC062F00200646062A06480627064606 2F002E002006A90647002006310647
0020062A0627
3-06918919015000640C91891975958047000831809200214441 26050003320303063106CC06A90020
064800200644063A063206270646002006270633062A002E
-
نقل قول: PDU Encoding And Decoding
سلام دوست عزیز،
کد 060804 رو میخواین چه کار کنید؟
ترجمه PDU شما میشه این:
EMS_RECEIVED
From:98915------- Time:29/08/2013 00:12:38 GMT+3.5
Refrence Number: 32 Total: 3 Part: 1
سلامت را نمی خواهند پاسخ گفت. سرها در گریبان است!
کسی سر برنیارد کر
EMS_RECEIVED
From:98915------- Time:29/08/2013 00:12:42 GMT+3.5
Refrence Number: 32 Total: 3 Part: 2
د پاسخ گفتن و دیدار یاران را. نگه جز پیش پا را دید نتواند. که ره تا
EMS_RECEIVED
From:98915------- Time:29/08/2013 00:12:44 GMT+3.5
Refrence Number: 32 Total: 3 Part: 3
ریک و لغزان است.
که این نشون میده پیام از نوع پیام های دریافتی است. که توی این پیام الزاما نباید کد 060804 باشد!!
این کد شما در حالت EMS_SUBMIT و یا همون موقع ارسال می باشد.
-
نقل قول: PDU Encoding And Decoding
سلام. ممنون از پاسختون
یعنی توی پیامهای دریافتی کد 060804 رو نداریم و فقط در پیام های ارسالی باید ایجاد بشه ؟؟؟ پس با این وضعیت چجوری میشه پیام های چند پارتی دریافتی رو تشخیص داد که از نوع چند پارتی هستن ؟؟؟ یعنی کدی مثل 060804 وجود داره ؟؟؟ اگه تو تاپیکای قبلی این مطلب ذکر شده بگید میرم دوباره نگاه می کنم...:چشمک:
ممنون
-
نقل قول: PDU Encoding And Decoding
آقا من جوابم رو از تاپیک 83 گرفتم! بجای 060804 باید دنبال 050003 می گشتم
بازم ممنون
-
نقل قول: قسمت دهم : تهیه محتوای پیام برای 1 پارت پیام در مود UCS2
سلام با تشکر پست خیلی خوبتون . من نمیدونم چطوری کد UCS2 هر کارکتر فارسی رو استخراج کنم؟ مرجعش چیه؟
-
نقل قول: PDU Encoding And Decoding
سلام .
من تقریبا با ارسال و دریافت sms فارسی و انگلیسی مشکلی ندارم .
ولی یه سوال بد جور فکرم مشغول کرده و اونم اینه که چطور یک سری sms ها به جای شماره فرستنده نام اون تو گوشی ثبت میشه ؟ مثل بانک ها ... آیا میشه با اعمال تغییرات در PDU ارسالی چنین کاری کرد ؟
البته تقریبا تمام اونها از طریق انترنت ارسال شده اند و نه از طریق GSM modem
با تشکر
-
نقل قول: PDU Encoding And Decoding
سلام .
گویا به صورت شخصی نمیشه شماره مقصد را با نام جایگزین کرد . و باید با دسترسی مرکز پیام باشه ....!!!؟
یه سوال در رابطه با Flash SMS داشتم ....
1- نوع فرمت sms باید text mode باشه یا PDU ؟
2- باید متن را 7bit کد کنم یا 16bit ؟
3- کد گزارش مرکز پیام و یا نوع پروتوکل را باید تغییر بدم ؟
متشکر میشم کمکم کنید .
-
نقل قول: PDU Encoding And Decoding
-
نقل قول: PDU Encoding And Decoding
سلام دوستان. من همه ی این آموزش رو نخوندم ولی از یک کلاس برای تولید و تحلیل pdu استفاده می کردم. الان میخوام از همون کلاس برای مودم D-Link DWM-156 استفاده کنم ولی مودم بهم ERROR میده. کسی تا حالا با این مودم کار کرده؟
-
نقل قول: PDU Encoding And Decoding
من میخوام یک پیام دو پارتی را به یک پروت خاص (8088) بفرستم پی دی یو به شرح زیر تشکیل دادم اما خطا 304 میده به نظر تون مشکلش چیه
در ضمن اگر کسی از دوستان در این زمینه اطلاعاتی داره لطف کنید راهنمایی کنید یعنی طرز تشکیل هم زمان پیام چند پارتی با ارسال به پورت خاص
PDU Number:1 Length For AT:143
0681994013534551000B819021562304F30008FF810C05041F 981F980804B49F020100350035003500350035003500350035 00350035003500350035003500350035003500350035003500 35003500350035003500350035003500350035003500350035 00350035003500350035003500350035003500350035003500 35003500350035003500350035003500350035003500350035 00350035
PDU Number:2 Length For AT:45
0681994013534551000B819021562304F30008FF1F0C05041F 981F980804B49F020200350035003500350035003500350035 003500350035
-
نقل قول: PDU Encoding And Decoding
دو تا سوال دارم از دوستان ممنون میشم اگه راهنمایی کنن..
توی بحثا گفته شد که اگه بخوایم از طریق PDU پیام بفرستیم و Delivery Report هم داشته باشیم یه کد 2 رقمی رو در محل تعیین شده قرار میدیم و پیام رو ارسال میکنیم حالا سوال من اینه که اولا:
وقتی Delivery فعال شد و پیام هم فرستاده شد جوابشو چطوری دریافت میکنیم؟ یعنی راهی هست که هر موقع گزارش رسیدن پیام به مقصد ، واسه ما اومد ما هم مثلا با یه MsgBox به کاربرمون اطلاع بدیم یا اینکه باید مرتبا وضعیت پیام رو توی شبکه بررسی کنیم ببینیم رسیده یا نه...
ثانیا در مد Text چطوری میشه تنظیمات اضافی (مثل همین Delivery) روی پیام ارسالی تنظیم کرد؟؟؟
آموزش خوشنویسی
آموزش ماساژ
آموزش عكاسي
پرورش مرغ
آموزش مكانيك خودرو