ارسال و دریافت پیامک

  نحوه ی محاسبه ط تعداد کارکتر ها در پیامک های طولانی

تاريخ ثبت : 17 دی 1391 ساعت 14 و 38 دقیقه

درود بر شما

همانطور که در جریان هستید ، یک sms از ۱۴۰ بایت تشکیل شده است؛ شما میتوانید از ۱۴۰ بایت مورد نظر خود به یکی از اشکال زیر استفاده نمائید
۱. استاندارد ۷ بیتی( که عموما انگلیسی خوانده میشود )
۲. 8 بیتی ( که عمدتا برای ارسال پیامک باینری استفاده میشود )
۳. ۱۶ بیتی ( که عمدتا برای ارسال پیامک فارسی از آن استفاده میشود )

در حالت اول از تقسیم عدد ۱۴۰*۸ ( ۱۴۰ بایت ضرب در ۸ بیت هر بایت ) بر ۷ ( مقیاس پیامک ۷ بیتی ) به عدد ۱۶۰ خواهید رسید. همینطور برای حالت دوم و سوم اعداد ۱۴۰ و ۷۰ را خواهید داشت. این بدین معنی است که با استاندارد ۷ بیتی ( که عمدتا پیامک انگلیسی خوانده میشود ) ، متیوانید ۱۶۰ کاراکتر را برای هر پیامک مورد استفاده قراردهید؛ و برای پیامک فارسی نیز تا ۷۰ کاراکتر را در اختیار خواهید داشت.

حال اگر تعداد کاراکتر های مورد استفاده شما از تعداد تعیین شده فراتر رود؛ بخشی با نام UDH در ابتدای هر پیام قرار خواهد گرفت تا بیانگر توالی این پیام‌ها باشد. UDH کاربردهای دیگری هم دارد، که ارسال پیامک چند بخشی یکی از این موارد است ( که اصطلاحا به آن Concatenated UDH ) گفته میشود. برای استفاده از Concatenated UDH هم دو استاندارد وجود دارد که اصطلاحا به آن 5 بایتی و یا استاندارد۶ بایتی گفته میشود؛ از آنجائیکه بایت اول هر udh لزوما به معنای طول udh است، پس برای یک Cocatenated UDH باید ۶ تا ۷ بایت (‌بسته به استاندارد مورد استفاده ) را در نظر گرفت. فرق این دو حالت در تعداد بایت هائی است که برای reference number در udh استفاده میشود که در حالت ۵ بایتی ۱ بایت برای reference number در نظر گرفته میشود و در حالت ۶ بایتی ۲ بایت برای این منظور در نظر گرفته شده است. برای آشنائی بیشتر شما، یک توضیح ساده از ساختار کلی یک Concatenated UDH نوع اول میتواند بدین صورت باشد :
050003xxaabb
- بایت اول : 05 : بیانگر طول udh است که در ادامه خواهد آمد
- بایت دوم و سوم : بیانگر concatenated udh است
- بایت چهارم : xx : یک عدد تصادفی در قالب reference number که برای یک پیام چند بخشی یکسان است
- بایت پنجم : aa : تعداد کل بخش های یک پیام چند بخشی
- بایت ششم : bb : ایندکس پیامک مورد نظر

این امکان برای کاربران وجود دارد که از هر کدام از استانداردهای مورد نظر خود استفاده کنند؛ اما زمانی که شکستن یه پیام چند بخشی را توسط سیستم اتوماتیک انجام شود و تنها متن پیام خود را برای ارسال به سیستم میفرستند؛ سیستم ارسال پیامک ( پیام کوتاه - sms ) آردین دیتا از استاندارد udh با طول کمتر (‌ ۵ بایتی که با جمع سرایند طول udh که در ابتدای پیام خواهد آمد به ۶ بایت خواهد رسید )‌ استفاده میکند تا کاربران یک بایت فضای بیشتر برای ارسال پیامک خود داشته باشند. پس ...
برای مثال در یک پیامک فارسی چند بخشی ( پیامکی که بیش از ۷۰ کاراکتر باشد )، که نیاز به استفاده از concatenated udh خواهد شد، نحوه محاسبه به این شکل است که از ۱۴۰ بایت مورد استفاده در هر پیامک مقدار ۶ بایت به ازای udh کم خواهد شدو برای ۱۳۴ بایت باقیمانده ، و در صورتیکه بخواهیم این محاسبه را برای استاندارد ۱۶ بیتی ( عمدتا مورد استفاده برای پیامک فارسی ) انجام دهیم خواهیم داشت :
(134*8)/16=67
یعنی هر بخش از پیامک فارسی چند بخشی شما (‌فارغ از اینکه بخش اول باشد یا دوم یا ...؛ چرا که udh به تمامی بخش‌های یک پیامک چند بخشی اعمال خواهد شد ) با احتساب 6 بایت برای کل udh ، برابر با ۶۷ کاراکتر خواهد بود ...
میتوانید محاسبه مشابهی را برای پیامک انگلیسی (‌منظور استاندارد ۷ بیتی است ) انجام دهید که در این صورت به عدد ۱۵۳ خواهید رسید و نیز برای پیامک باینری ( استاندارد ۸ بیتی ) نیز پاسخ عدد ۱۳۴ خواهد بود