دریافت مقاله با فرمت PDF
دانلود یک برنامه نمونه نوشته شده با این روش
چکیده
:
SMS (Short Message Service) یا سرویس
پیام کوتاه ،
به موفقیت
عظیمی در جهان
بی سیم رسیده
است. هرروز میلیون
ها پیام
کوتاه فرستاده
می شود. اکنون پیام
کوتاه به یک
تولید کننده
عظیم درآمد
برای حاملان
بی سیم تبدیل
شده است. ایده
فرستادن پیام
های کوتاه بسیار
ساده است. یک
پیام روی تلفن
موبایلتان می
نویسید،
شماره تلفن
موبایل
مقصدتان را
وارد می کنید،
دکمه Send
را می فشارید
و پیام خیلی
زود توسط
گیرنده قابل
دسترس خواهد
بود.
در
این مقاله ما
در مورد
دستورات AT
، کاربرد آن
در GSM MODEM ها (به
طور خاص در
مورد ارسال و
دریافت پیام
کوتاه) و
چگونگی
استفاده از
این دستورات در
C# را مورد
بحث قرار
خواهیم داد .
فهرست
مطالب :
1.
مقدمه ای
بر پیام های
کوتاه
2.
چگونگی
دریافت پیام
های کوتاه با
استفاده از یک
کامپیوتر
3.
ارسال پیام
های کوتاه از کامپیوتر
به تلفن همراه
4.
چگونگی
استفاده از AT COMMAND در C#
5.
منابع و
مآخذ
مقدمه
ای بر پیام
های کوتاه
1-1 SMS
چیست؟
SMS
مخفف Short Message Service
است.تکنولوژی
است که باعث
فرستادن و
دریافت پیام
ها بین
تلفنهای
موبایل می
شود. SMS
برای اولین
بار در اروپا
در سال 1992
پیشنهاد شد و
استانداردهای
GSM (Global System for Mobile Communication) را نیز در
بر گرفت. بعد
به تکنولوژی
های بی سیم
مثل CDMA وTDMA منتقل
شد. استانداردهای
GSM و SMS
بطور اصلی با ETSI توسعه
یافت. ETSI
مخفف European Telecommunication Standards Institute است. اکنون 3GPP(Third Generation Partnership
Project) برای
توسعه و
نگهداری
استانداردهای
GSM وSMS قابل
پشتیبانی است. همانطور
که به این تکنولوژی
نام Short Message Service داده شده
است، داده
هایی که با یک
پیام SMS
منتقل می شوند
خیلی محدود
هستند. یک
پیام SMS
می تواند شامل
بیش از 140 بایت (1120
بیت) داده
باشد. بنابراین
یک پیام SMS
می تواند
شامل:
1-
160
کارکتر، اگر
کارکتر7 بیتی
بکار رود
(مناسب برای
کارکترهای
لاتین)
2-
70
کارکتر، اگرUnicode UCS2 16 بیتی بکار
رود(پیام های
متنی SMS
شامل کارکترهای
غیر لاتین مثل
کارکترهای
چینی باید ازencoding 16 بیتی
استفاده کنند)
پیام
دهی متنی کوتاه،
از زبانهای
بین المللی
پشتیبانی می
کند و با همه
زبانهای
حمایت شده
توسط Unicode
شامل عربی،
چینی، ژاپنی و
کره ای خوب
کار می کند.
گذشته
از این متن،
پیام های کوتاه
می توانند
داده های
باینری را نیز
حمل کنند.
برای فرستادن
تون های زنگ،
تصاویر، logoهای
عمل
کننده،کاغذ
دیواری ها،
انیمیشن ها،کارت
های تجاری(مثل
VCards) و
پیکربندی WAP
برای یک تلفن
موبایل با
پیام SMS
ممکن است.
مزیت
اصلی پیام
کوتاه اینست
که توسط 100% تلفن
های موبایل GSM پشتیبانی
می شوند.
برای
فرستادن و
دریافت پیام
های کوتاه
ازطریق یک
تلفن موبایل و
با استفاده از
یک PC حاوی
سیستم عامل
ویندوز به
موارد زیر
نیاز دارید:
1-
یک تلفن
موبایل که می
تواند به
کامپیوتر شما
متصل شود
(بعضی موبایل
ها رابطی برای
اتصال به
کامپیوتر
ندارند)
2-
یک
برنامه
ویندوز که می
تواند تلفن
موبایل را برای
فرستادن و
دریافت پیام
های کوتاه
کنترل کند.
امروزه
بیشتر موبایل
ها حداقل از یکی
از موارد زیر
برای اتصال به
PC پشتیبانی
می کنند:
1-
از طریق infrared(IrDA)
2-
از طریق Bluetooth
3-
ازطریق
کابل USB
4-
از طریق
کابل سریال
برنامه
ویندوز برای
فرستادن و
دریافت پیام های
کوتاه توسط
بعضی جنبه های
تلفن موبایل
فراهم می شود.
برای مثال
نوکیا بسته
نرم افزاری با
نام Nokia PC Suite
را برای
کاربران تلفن
موبایل خود ارائه
می دهد که می
تواند بدون
شارژ از وب
سایت نوکیا
دانلود شود.
مایکروسافت
هم یک برنامه
مجانی با نام SMS Sender ایجاد
کرده که
کاربران
ویندوز را
قادر به فرستادن
پیام های SMS
از طریق
موبایل GSM ، از
یک PC
می کند. محدودیت
بزرگ این
برنامه
ویندوزی آنست
که نمی تواند
پیام های SMS
را از یک تلفن
موبایل
بخواند. گذشته
ازاین، از
دیگر فرمت های
پیام های متنی
عادی مثل پیام
های SMS
رشته ای، flash message، پیام های MMS و پیام
هایی که شامل
صدای زنگ و logo است حمایت
نمی کند.
توجه:
برنامه SMS Sender
فقط می تواند
برروی ویندوز XP
و ویندوز
سرور2003 نصب شود.
چگونگی
دریافت پیام
های کوتاه با استفاده
از یک
کامپیوتر
در حالت
کلی سه روش
برای دریافت
پیام های SMS
از طریق
کامپیوتر یا PC
وجود دارد:
1-
اتصال
تلفن موبایل
یا مودم GSM/GPRS
به کامپیوتر
یا PC . سپس
از یک
کامپیوتر/PC
و AT
Commands برای
گرفتن پیام
های SMS
دریافت شده
ازتلفن
موبایل یا
مودم GSM/GPRS
استفاده کنید.
2-
دسترسی
به مرکزSMS (SMSC)
یا دروازه SMS
ازطریق حامل
بی سیم. هر
پیام SMS
دریافت شده با
استفاده ازیک
پروتکل یا
واسط پشتیبانی
شده از طرف SMSC یا دروازه SMS برای
کامپیوتر/PC
شما فرستاده
خواهد شد.
3-
دسترسی
به دروازه SMS فراهم
کننده سرویس SMS (SMS Service provider). هر پیام SMS دریافت
شده با
استفاده ازیک
پروتکل یا
واسط پشتیبانی
شده از طرف
دروازه SMS
برای
کامپیوتر/PC
شما فرستاده
خواهد شد.
اولین
روش:
دریافت
پیام کوتاه از
طریق موبایل
یا مودم GSM/GPRS
نسبت به دو
روش دیگر مزیت
دارد.
عیب
دریافت پیام
کوتاه با این
روش آنست که
موبایل یا
مودم GSM/GPRS
نمی تواند
مقدار ترافیک
زیاد SMS
را اداره کند.
یک روش برای
غلبه بر این
مشکل، بارگذاری
میزان ترافیک SMS با یک مخزن
از تلفن های
موبایل یا
مودم های GSM/GPRS
است.
هر
تلفن موبایل
یا مودم GSM/GPRS
شماره تلفن و
سیم کارت خودش
را دارد. از
نظر برنامه
نویسی
فرستادن و
دریافت پیام
از موبایل با
مودم GSM/GPRS
مشابه هستند.
درزیر
جدول حاوی
لیست دستورات AT Commands مربوط به
فرستادن و
دریافت SMS
وجود دارد.
|
AT command
|
معنی
|
|
+CNMI
|
اشاره
به پیام جدید
|
|
+CMGL
|
لیست
کردن پیام ها
|
|
+CMGR
|
خواندن
پیام ها
|
|
+CNMA
|
دانش
پیام جدید
|
در زیر
یک مثال ساده
نشان داده شده
که ثابت می
کند ،چگونه AT Command ها و
برنامه HyperTerminal
مایکروسافت
برای خواندن
پیام ها
ازمودم GSM/GPRS
یا موبایل
استفاده می
کند.
خطوطی
که به صورت Bold تایپ شده
باید در Hyper Terminal وارد شوند.
خطوط دیگر
پاسخی است که
از طرف مودم GSM/GPRS یا موبایل
داده می شود.
AT
OK
AT+CMGF=1
OK
AT+CMGL="ALL"
+CMGL: 1,"REC READ","+989353659299",,"06/11/11,00:30:29+32"
Hello, welcome to our SMS tutorial.
+CMGL: 2,"REC READ","+989353659299",,"06/11/11,00:32:20+32"
A simple demo of SMS text messaging.
OK
توضیح
:
خط
اول: "AT" برای
بررسی شرایط
به مودم GSM/GPRS
فرستاده می
شود. GSM/GPRS
کد نتیجه "OK" (خط
دوم) را بازمی
گرداند، که به
این معنی است که
ارتباط بین
برنامه HyperTerminal و
مودم GSM/GPRS
خوب کار می کند.
خط سوم: +CMGF به
مودم دستور می
دهد تا در
حالت متنی SMS
عمل کند.
نتیجه "OK"
بازگردانده
می شود (خط 4)، که
نشان می دهد
خط کد "AT+CMGF=1" با موفقیت
انجام شده
است. اگر کد "ERROR"
بازگردانده
شود، شبیه
آنست که مودم
از حالت متنی SMS
پشتیبانی
نکرده است.
خط 5-9: +CMGL
برای لیست
کردن تمام
پیام های متنی
SMS در
حافظه پیام
مودم GSM/GPRS
بکارمی رود. در
این مثال دو
پیام متنی SMS
درحافظه پیام
وجود دارد: "Hello, welcome to our SMS tutorial." و "A
simple demo of SMS text messaging." .
"+989353659299"
شماره تلفن
موبایل فرستنده
است. "06/11/11,00:30:29+32"
و "06/11/11,00:32:20+32" زمان
دریافت پیام
های متنی SMS
توسط SMSC
را به ما می
گوید. "+32" ناحیه
زمان (time
zone) است.
توجه: واحد،
یک ربع ساعت
است. بنابراین
، +32 به
معنی GMT+8
ساعت، 32ربع
ساعت = 8 ساعت. "REC READ"
هردو پیام
متنی که ازقبل
خوانده شده را
نشان می دهد.
خط 11: کد
نتیجه "OK"
نشان می دهد
که اجرای +CMGL
با موفقیت
انجام شده
است.
برای
فعال کردن نرم
افزار دریافت
پیام های متنی،
باید source
code ی برای
اتصال و
فرستادن AT Command ها
به تلفن
موبایل یا
مودم GSM/GPRS
بنویسید،
درست شبیه
برنامه terminal
بنویسید (مثل HyperTerminal
ویندوزمایکروسافت).
می توانید source code ی
در C،C++،Java،Visual Basic،Delphi، یا هر
زبان برنامه
نویسی دیگر که
دوست دارید
بنویسید.
معمولا
راه حل بهتری
برای استفاده
از API (Application
Programming Interface) / SDK(Software Development Kit) /
کتابخانه (Library) پیام SMS
سطح بالا ،
بجای اینکه
خودتان کدها
را برای تعامل
با تلفن
موبایل یا
مودم GSM/GPRS
از طریق AT Commandها بنویسید. API / SDK / library
جزئیات سطح
پایین را بسته
بندی می کند.
بنابراین
یک توسعه دهنده
برنامه SMS نیاز
به دانستن AT Command ها
و ترکیب پیام
های SMS
در سطح بیت (bit-level)
ندارد. بعضی API ها / SDK ها/ Library
های پیام SMS از
پروتکل های SMSC
علاوه بر AT Commandها پشتیبانی
می کنند.
برای
حرکت از راه
حل SMS
مبتنی بر مودم
بی سیم به راه
حل SMS
مبتنی بر SMSC،
معمولا نیاز
به اصلاح پیکربندی
فایل / خصوصیت
فایل یا ایجاد
تغییرات اندک
در source code
برنامه پیام SMS
خود دارید.
راه حل
سطح بالای
دیگر،
قراردادن یک
دروازه SMS بین
برنامه پیام
دهنده SMS و
موبایل یا
مودم GSM/GPRS
است. برنامه
پیام دهنده SMS می
تواند از پروتکل
های ساده ای
مثل HTTP
/ HTTPS
برای دریافت
پیام های SMS
استفاده کند.
اگر از یک
پروتکل SMSC (مثل SMPP ، CIMD و
غیره) بجای HTTP / HTTPS
برای ارتباط
با دروازه SMS
استفاده شود،
یک API
/ SDK / Library
پیام دهنده SMS می
تواند برای
شما خیلی مفید
باشد. به این
دلیل که
جزئیات
پروتکل SMSC را
بسته بندی می
کند.
ارسال
پیام های
کوتاه
از کامپیوتر
به تلفن همراه
به طور
معمول دو روش
برای ارسال SMS از
کامپیوتربه
موبایل وجود
دارد:
1.
بین یک
تلفن همراه (mobile phone) یا
یک مودم GSM/GPRS با
یک کامپیوتر اتصالی
برقرار کنید
.سپس برای
دستور دادن به
تلفن همراه یا
مودم GSM/GPRS
جهت ارسال SMS، از
کامپیوتر و AT command ها
استفاده کنید
.
2.
با کامپیوتر
(PC) به
مرکز SMS
(SMSC ) یا
گذرگاه SMS یک
حمل ونقل
بیسیم (SMS gateway of a wireless carrier)، یا
یک ارائه کننده
ی سرویس SMS متصل
شوید. سپس
با استفاده از
پروتکل یا
رابطی که توسط
SMSC
یا درگاهSMS (SMS
gateway) پشتیبانی
می شود،
پیامتان (SMS) را
ارسال کنید.
در این
مقاله قصد
داریم اولین
روش ارسال SMS را
توضیح
دهیم.
ارسال SMS از
یک کامپیوتر
با استفاده از
یک تلفن همراه
یا مودم GSM/GPRS :
مودم GSM/GPRS،
یک مودم بیسیم
است که با
شبکه های
بیسیم GSM/GPRS کار می
کند. مودم
بیسم بسیار
شبیه مودم dial-up است.
تفاوت اصلی
این دو در این
است که مودم
بیسیم داده ها
را در میان
شبکه ی بیسیم
انتقال می دهد
حال آنکه مودم
dial-up داده
ها را در میان
سیم های خط
تلفن منتقل می
کند. بیشتر
تلفن های همراه
را می توان به
عنوان مودم
بیسیم به کار
برد. بعضی از
تلفن های
همراه
محدودیتهایی
را در مقایسه
با مودم های GSM/GPRS
دارا هستند.
جهت
ارسال SMS ,
ابتدا باید یک
سیم کارت
معتبر (که
بعدا به کامپیوتر
متصل می شود)
را در تلفن
همراه یا مودم
GSM/GPRS
قرار دهید.
چندین راه
مختلف جهت
اتصال یک تلفن
همراه یا مودم
GSM/GPRS به
کامپیوتر
وجود دارد.
برای مثال،
این ها می
توانند با
کابل
سریال، یک
کابل USB،
یک لینک Bluetooth،
یا یک لینک infrared بهم
متصل
شوند.انتخاب
روش اتصال
بستگی به
قابلیتهای
تلفن همراه یا
مودم GSM/GPRS
دارد. مثلا
اگر گوشی
موبایل Bluetooth را
پشتیبانی نمی
کند، نمی توان
تلفن همراه را
از این طریق
به کامپیوتر متصل
کرد.
بعد از
اتصال یک تلفن
همراه یا مودم
GSM/GPRS به
کامپیوتر، می
توانید با
ارسال یکسری
دستورات،
تلفن همراه یا
مودم GSM/GPRS
را کنترل
کنید. AT command ها
دستوراتی
هستند که به
این منظور
بکار برده می
شوند. (AT
command ها همچنین
به منظور
کنترل
مودمهای dial-up برای
سیستم تلفن
سیمی استفاده
می شوند). مودم های
dial-up،
مودم های GSM/GPRS و
تلفن های
همراه یک
مجموعه ی
استاندارد از
این دستورات
را پشتیبانی
می کنند. مودم های
GSM/GPRS و
تلفن های
همراه علاوه
براین
دستورات
استاندارد،
یک مجموعه ی
توسعه یافته (Extended) از AT command ها
را نیز
پشتیبانی می
کنند.یکی از
جنبه های استفاده
از این
دستورات
توسعه یافته
ارسال و
دریافت SMS است.
جدول
زیرلیست
دستوراتی را
نشان می دهد
که جهت نوشتن
وارسال SMS بکار
می روند.
|
توضیح
|
AT
command
|
|
ارسال
پیام
|
+CMGS
|
|
ارسال
پیام از
مکانی که
ذخیره شده
است
|
+CMSS
|
|
نوشتن
پیام در
حافظه
|
+CMGW
|
|
حذف
پیام
|
+CMGD
|
|
ارسال
دستور
|
+CMGC
|
|
ارسال
چندین پیام
|
+CMMS
|
یک راه
ارسال AT command ها به
تلفن همراه یا
مودم GSM/GPRS،
استفاده از یک
برنامه ی
ترمینال است.
وظیفه ی برنامه
ی ترمینال
بدین صورت است
که: کارکترهایی
را که تایپ می
کنید، به یک
تلفن همراه یا
مودم GSM/GPRS
می فرستد. سپس تلفن
همراه یا مودم
GSM/GPRS پاسخ
دریافتی را در
صفحه نمایش
نشان می دهد. Hyper Terminal،
برنامه ی
ترمینال در Windows
است.
در زیر
یک مثال ساده
جهت توضیح
چگونگی
استفاده از
این دستورات و
همچنین
استفاده از
برنامه ی Hyper Terminal به
منظور ارسال SMS،
نشان داده شده
است. خطوطی که
فونت آنها bold است،
دستوراتی
هستند که ما
باید آنها را
در Hyper terminal
بنویسیم. خطوط
دیگر،
پاسخهای
برگشتی از طرف
تلفن همراه یا
مودم GSM/GPRS
است.
AT
OK
AT+CMGF=1
OK
AT+CMGW="+989353659299"
> A simple demo of SMS text messaging.
+CMGW: 1
OK
AT+CMSS=1
+CMSS: 20
OK
توضیح:
- خط 1: به
منظور تست connection، "AT"
به مودم GSM/GPRS
ارسال می شود. مودم
GSM/GPRS
نتیجه که "OK"
است را در خط
بعد(2) برمی
گرداند. نتیجه
بدین معناست
که connection
بین برنامه یHyper Terminal و
مودمGSM/GPRS
به
خوبی برقرار
شده و درست
کار می کند.
- خط3: +CMGF
دستور AT command ی
است که جهت
قرار دادن
مودم GSM/GPRS
در حالت text استفاده
می شود. نتیجه
ی این دستور
که "OK"
است در خط 4 بر
گردانده شده
است. این نشان
می دهد که دستور "AT+CMGF=1"
با موفقیت
اجرا شده است. اگر
نتیجه ی این
دستور "ERRROR"
باشد، به این
معنا است که
مودم GSM/GPRS
ی که در
اختیار
دارید حالت text را
پشتیبانی
نمی کند. جهت
تعیین این
مطلب، در
برنامه ی Hyper Terminal
دستور"AT+CMGF=?"
را تایپ کنید.
اگر پاسخ "+CMGF(0,1)"
بود (0=مد PDU و1=
مدtext)،
مودم حالت text را
پشتیبانی می
کند. اما اگر
پاسخ "+CMGF:(0)"
بود، SMS
text mode
پشتیبانی
نمی شود.
- خطوط 5 و6: +CMGW
دستور AT command ی
است که یک SMS با
پیام متنی (SMS text message)
را در مخزن
پیام یک مودم GSM/GPRS می
نویسد. "+852912345567"
,
شماره ی تلفن
همراه
گیرنده ی
پیام است. بعد
از تایپ شماره
تلفن گیرنده
ی پیام، باید
حتما کلید Enter را
بزنید. پس از
آن مودم GSM/GPRS
نماد اعلان "<"
را بر می
گرداند و می
توانید بعد
از این علامت
متن پیامتان
را تایپ کنید "A simple demo of
SMS text messaging.". بعد
از اینکه متن
پیامتان را
نوشتید کلید
های CTRL
+ Z را
بزنید.
- خط 7: "+CMGW:1"
به این معنا
است که اندیس
نسبت داده
شده به این SMS
برابر 1 است.
این عدد نشان
دهنده ی مکان
این SMS
در مخزن پیام
مودم GSM/GPRS
است.
- خط 9:
نتیجه ی
دستور "OK" است
که نشان می
دهد دستور "+CMGW"
با موفقیت
انجام شده
است.
- خط 10: +CMSS دستور AT command ی
است که جهت
ارسال SMS
متنی از
مخزن پیام
مودم "GSM/GPRS"
است ."1" اندیس SMS ی
است که از خط 7
به دست آمده
است.
- خط 11:"+CMSS:20" بیان
می کند: شماره
ی مرجعی که به SMS
نسبت داده
شده است، 20
است.
- خط 13:
نتیجه ی
دستور، "OK"
است .به این
معنا که دستور
با موفقیت
اجرا شده است.
به
منظور ارسا