الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

الرسائل القصيرة Sms لجلب المعلومات

بدأه taha105 في 7 فبراير 2009 · 20 رد · 5,978 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

السلام عليكم ورحمة الله

اخواني لقد انتشرت مؤخرا تقنية ارسال sms من الموبايل الي المصرف مثلا ومن تم يرسل لك رسالة فيها قيمة رصيدك الحالي

اي من الاساتذة الذين لذيهم خبرة بالموضوع يتفضل علينا بشرح الطريقة والتقنيات المستخدمة جزاه الله كل خير

#2

مرحبأ وأهلاً بك أخي الكريم في منتديات الفريق العربي للبرمجة .

لم توضح بشكل دقيق مالذي تحاول معرفته أو مالجهاز المستخدم في عمل ماقمت بورده في الأعلى, لكن إذا كنت تقصد أنك تريد التحكم بجهاز جوال ما, فعليك إستخدام SerialPort من System.IO.Ports ومن ثم يمكنك إستقبال وإرسال ( أيان كان ماتريد ( مكالمة, رسالة, أمر خدمة, الخ... ) ) عن طريق الـ AT Commands .

هنالك مثال عن الـ ComPorts وكيفية التعامل معها عبر تقنية الـ RS232 يمكنك الإطلاع عليه في الـ MSDN ستجده في الملفات ( الأمثلة ) المرفقة .

بالتوفيق .

The important thing is not so much

that every child should be taught,

as that every child should be given the wish to learn.

#3

بسم الله الرحمن الرحيم

اخي جزاك الله كل خير علي ردك الكريم

الحقيقة ياخي اود معرفة كيفية تجهيز هكذا نظام وما الاجهزة الداعمة لذلك لعلني اقترحة علي المؤسسة التي اعمل فيها للفائدة

بارك الله فيك

#4

واجبنا .

أخي الكريم, لم أجرب من قبل إستخدام أي من الأجهزة الموجودة في الأسواق التي تقوم بهذه الأمور, أعلم أن الفكرة ستكون معقدة قليلاً لكن مجرد البدء فيها قد يغيّر نظرتك إليها .

ماكنت لأجربه :

كما ذكرت مسبقأ هو إستخدام الـ AT Commands, هذه الأوامر تساعدك على عمل الكثير من الأمور البرمجية بالنسبة للكثير من الأجهزة الشبيهة .

في AT Commands يوجد Command يساعدك على قراءة قائمة الرسائل الموجودة ( AT+CMGL )

إرسال رسالة ( AT+CMGS )

قراءة رسالة ( AT+CMGR )

الطريقة على ماأعتقد تقوم على أساس قراءة الرسائل الموجودة في الـ Inbox والتي تحوي رقم فئة الإستعلام المراد معرفة أخر أخباره(ا) ومن ثم إعادة إرسال المعلومة الى صاحب تلك الرسالة ( الرسائل ), تعلم أن هذه الأمور يجب عليّك أن تقوم ببرمجتها ( أقصد بالأوامر هو فرز أرقام الإستعلام حسب فئاتها ) .

إليك الأوامر الأكثر شيوعاً :

Call control

Command Description

ATA Answer command

ATD Dial command

ATH Hang up call

ATL Monitor speaker loudness

ATM Monitor speaker mode

ATO Go on-line

ATP Set pulse dial as default

ATT Set tone dial as default

AT+CSTA Select type of address

AT+CRC Cellular result codes

Data card control commands

Command Description

ATI Identification

ATS Select an S-register

ATZ Recall stored profile

AT&F Restore factory settings

AT&V View active configuration

AT&W Store parameters in given profile

AT&Y Select Set as powerup option

AT+CLCK Facility lock command

AT+COLP Connected line identification presentation

AT+GCAP Request complete capabilities list

AT+GMI Request manufacturer identification

AT+GMM Request model identification

AT+GMR Request revision identification

AT+GSN Request product serial number identification

Phone control commands

Command Description

AT+CBC Battery charge

AT+CGMI Request manufacturer identification

AT+CGMM Request model identification

AT+CGMR Request revision identification

AT+CGSN Request product serial number identification

AT+CMEE Report mobile equipment error

AT+CPAS Phone activity status

AT+CPBF Find phone book entries

AT+CPBR Read phone book entry

AT+CPBS Select phone book memory storage

AT+CPBW Write phone book entry

AT+CSCS Select TE character set

AT+CSQ Signal quality

Computer data card interface commands

Command Description

ATE Command Echo

ATQ Result code suppression

ATV Define response format

ATX Response range selection

AT&C Define DCD usage

AT&D Define DTR usage

AT&K Select flow control

AT&Q Define communications mode option

AT&S Define DSR option

AT+ICF DTE-DCE character framing

AT+IFC DTE-DCE Local flow control

AT+IPR Fixed DTE rate

Service

Command Description

AT+CLIP Calling line identification presentation

AT+CR Service reporting control

AT+DR Data compression reporting

AT+ILRR DTE-DCE local rate reporting

Network communication parameter commands

Command Description

ATB Communications standard option

AT+CBST Select bearer service type

AT+CEER Extended error report

AT+CRLP Radio link protocol

AT+DS Data compression

Miscellaneous commands

Command Description

A/ Re-execute command line

AT? Command help

AT*C Start SMS interpreter

AT*T Enter SMS block mode protocol

AT*V Activate V.25bis mode

AT+CESP Enter SMS block mode protocol

SMS commands

SMS text mode

Command Description

AT+CSMS Select message service

AT+CPMS Preferred message storage

AT+CMGF Message format

AT+CSCA Service centre address

AT+CSMP Set text mode parameters

AT+CSDH Show text mode parameters

AT+CSCB Select cell broadcast message types

AT+CSAS Save settings

AT+CRES Restore settings

AT+CNMI New message indications to TE

AT+CMGL List messages

AT+CMGR Read message

AT+CMGS Send message

AT+CMSS Send message from storage

AT+CMGW Write message to memory

AT+CMGD Delete message

SMS PDU ode

Command Description

AT+CMGL List Messages

AT+CMGR Read message

AT+CMGS Send message

AT+CMGW Write message to memory

سأقوم بالبحث عن كتاب يشرح إستخدام كل منها أو سأقوم بذلك إن توفر لي بعض الوقت, أعتذر منك لك عليّ إنهاء بعض البرامج :P .

بالتوفيق .

تم تعديل هذه المشاركة بواسطة Bashar Rabat في 7 فبراير 2009 في 02:42

The important thing is not so much

that every child should be taught,

as that every child should be given the wish to learn.

#5

بسم الله الرحمن الرحيم

سيدي الفاضل

بارك الله فيك

#6

الله يخليك :) .

Here 2 Start

بالتوفيق .

The important thing is not so much

that every child should be taught,

as that every child should be given the wish to learn.

#7

السلام عليكم ورحمة الله وبركاته

تكملةً لكلام الأخ Bashar Rabat والذي فتح لك باب البحث في الموضوع جزاه الله خيراً، أنا عندي تجارب كثيرة في هذا المجال وقد قمت بتصميم أكثر من برنامج يتعامل مع الرسائل القصيرة وسأعطيك بعض المفاهيم العامة دون الخوض في التفاصيل لكي لا تتلخبط وساوافيك بالتفاصيل الدقيقة عند وصولك إليها.

المفهوم العام لأنظمة الخدمات التي تعتمد على الرسائل القصيرة هو أن المستخدم أو الزبون يقوم بإرسال رسالة قصيرة يستفسر عن خدمة ومن هذا المفهوم يجب عليك التفكير أولاً في الآتي:

1- تحديد صيغة محددة لمحتوى الرسالة والمقصود بهذا الكلام على سبيل المثال خدمات الرصيد في البنك يقوم عندها الزبون بارسال رقم حسابه هنا تكون الصيغة مكونة من شق واحد وهو رقم الحساب ولكن إذا أراد الزبون الإستفسار عن الرصيد في عام محدد هنا يجب أن يقوم بإرسال رقم حسابه مع العام وهنا يجب أن تفكر في كيفية فصل رقم الحساب عن العام باعلام الزبون أن يقوم بكتابة # على سبيل المثال بين رقم الحساب والعام المحدد.

2- البدء في دراسة جميع الإستثناءات والعوامل الخارجية المؤثرة على سير النظام الخاص بك، مثلاً إختيار شبكة الموبايل الأكثر إستقراراً ، الإعتماد على إستخدام تقرير الإستلام Delivery Report في جميع المعاملات للتأكد من أن الزبون قام بإستقبال الرد من المخدم وهكذا.

3- التصميم الجيد والمحكم في الجزئية التي تتعامل مع جهاز المودم الذي يقوم بإستقبال الطلبات عن طريق الرسائل القصيرة وتخديمها

بالنسبة لجهاز المودم ، يمكنك إستخدام جهاز تلفون عادي وأنا شخصياً بالتجربة وجدت أن أفضل الأجهزة وأسرعها في التعامل مع مثل هذه الأنظمة هي أجهزة السوني إريكسون ، بالتأكيد إذا إستخدمت جهاز GSM Modem سيكون أفضل بكثير من إستخدام الموبايل.

بالنسبة للصعوبات الفنية التي يمكن أن تواجهك هي تنفيذ الكود عند وصول الرسالة Receive Event

الموضوع ليس بالتعقيد الذي يتصورة البعض

والله الموفق

والله الموفق

#8

Hi Ammar :P, Nice & Good Explanation :D

The important thing is not so much

that every child should be taught,

as that every child should be given the wish to learn.

#9

مشكورين ايها الاخوه ع الايضاح

لكن اذا امكن اعطاء دوال او مكاتب تدعم ارسال رساله

من جهاز حاسب الى هاتف بلغة الفيجوال بيسك دوت نت

ولكم جزيل الشكر

#10
incomplete كتب:
مشكورين ايها الاخوه ع الايضاح

لكن اذا امكن اعطاء دوال او مكاتب تدعم ارسال رساله

من جهاز حاسب الى هاتف بلغة الفيجوال بيسك دوت نت

ولكم جزيل الشكر

السلام عليكم

أنا أستخدم المكتبة mCore رابط الموقع الخاص بالمكتبة هو http://www.logixmobile.com

وهي من المكتبات الأكثر إستقراراً من ناحية الأداء ولكن يجب عليك ملاحظة أنها تدعم أجهزة معينة (ستجدها مكتوبة في الموقع)

والله الموفق

#11

مرحبا بالجميع

كان لدي بحث طويل في الشبكة لمعرفة امكانية تحقيق ارسال الرسائل والاستقبال ولكن دون جدوى كل المحاولات لا تنجح

ولدي بعض الاستفسارات وارجوا الاسهاب في الشرح من الاخوة الافاضل

ماهي Gate Way ؟ وهل يمكن ان استخدم مودم الهاتف وما هي افضل الانواع؟

هل هناك اي تكاليف مالية ؟؟ ام انها تصرف من بطاقة الاتصال المرفقة بالمودم ؟؟

مع محبتي :wub:

انا افكر اذا انا مبدع .... I think therfore I am Creative

#12

مرحباً أخواني الكريم .

في المرفقات كتاب شامل يتحدث عن الـ ATCommands وكيفية إستخدام كل منها بالنسبة لأجهزة الـ SonyEricsson

AT commands

for Sony Ericsson phones

dg_at_2006__09_r9a.rar

The important thing is not so much

that every child should be taught,

as that every child should be given the wish to learn.

#13

جميل يا أخوان لأن هذا الموضوع مراجعه قليله وتصور الناس في استخدامه انه صعب وانا من الناس الي واجهت صعوبه ولكن توصلت لحل في كيفية ارسال المسج ولكن انا في مشكلة الأستقبال المسج وكيفية التعامل مع تفاصيل المسج.؟؟؟

انا مشكلتي ان المسج لم بستقبل بيجيني بترميز الهيكسا دسمل.. ومش عارف كيف اخذ عنوان المسج والذي موجود فيه رقم المرسل وتاريخ الأرسال ووقت الأرسال..؟؟؟؟؟؟؟

وعندي استفسار بسيط انا عمل البرنامج بلغة #C ولكن لا اعرف هل اسرد اومر AT-command تحت بعضها البعض .؟؟ لأن البعض يقول لزم تنتضر رد الأمر(Receive Event)

وهذا ما حيرني واتمنى من من لديه هذا العلم الجميل انه يساعني..

وهذا هوا الكود تيع البرنامج الأرسال والأستقبال...


using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports;

namespace WindowsApplication5
{
public partial class Form1 : Form
{
SerialPort prt = new SerialPort("COM8");
bool STATE = false;
public Form1()
{
InitializeComponent();
prt.DataReceived += new SerialDataReceivedEventHandler(f1);
prt.Open();
Form.CheckForIllegalCrossThreadCalls=false;
}

private void button1_Click(object sender, EventArgs e)
{
STATE = false;
prt.Write("atz\r\n");
prt.Write("at+cmgf=1\r\n");
prt.Write("at+cmgs=\"" + textBox3.Text + "\"\r\n");
prt.Write(textBox2.Text + "\x1A");

}
private void f1(object x, SerialDataReceivedEventArgs e)
{
if (STATE == false)
{
byte[] buffer = new byte[1024];
prt.Read(buffer, 0, 1024);
ASCIIEncoding enc = new ASCIIEncoding();
textBox1.Text = enc.GetString(buffer);
}
if (STATE ==true)
{
byte[] buffer = new byte[1024];
prt.Read(buffer, 0, 1024);
ASCIIEncoding enc = new ASCIIEncoding();
textBox4.Text = enc.GetString(buffer);
}

}
protected override void OnClosed(EventArgs e)
{
prt.Close();
}

private void textBox2_TextChanged(object sender, EventArgs e)
{

}

private void button2_Click(object sender, EventArgs e)
{
STATE = true;
prt.Write("atz\r\n");
prt.Write("AT+CNMI=1,1\r\n");
prt.Write("AT+CMGL\r\n");
prt.Write("AT+CMGF\r\n");
prt.Write("AT+CSDH=1\r\n");
prt.Write("AT+CMGR=1\r\n");



}
}
}
using System;

وسوف اضيف برنامجي في المرفق لأنه يحتاج لكثير من التعديل.

WindowsApplication5.rar

تم تعديل هذه المشاركة بواسطة الصبياني في 7 مايو 2009 في 13:00

#14
خيال وحب كتب:
مرحبا بالجميع

كان لدي بحث طويل في الشبكة لمعرفة امكانية تحقيق ارسال الرسائل والاستقبال ولكن دون جدوى كل المحاولات لا تنجح

ولدي بعض الاستفسارات وارجوا الاسهاب في الشرح من الاخوة الافاضل

ماهي Gate Way ؟ وهل يمكن ان استخدم مودم الهاتف وما هي افضل الانواع؟

هل هناك اي تكاليف مالية ؟؟ ام انها تصرف من بطاقة الاتصال المرفقة بالمودم ؟؟

مع محبتي :wub:

الـ Gateway هي من يقدم خدمة Web-based SMS عن طريق SMSC لإرسال الرسائل واستقبالها حيث يكون الارسال عن طريق حساب لك عند مقدم الخدمه يتم الخصم منه أما استقبال الرسائل فهو مكلف جدا لأنه يتطلب GSM Modem Host, لكن مودم الهاتف لا علاقه له بموضوع الـ SMS نهائيا لا تقنيا ولا ماديا.

بالنسبه لخدمة إرسال الرسائل فأنا أوفر هذه الخدمه من خلال موقعي ويمكنك زيارة الموقع للتعرف على الأسعار www.h3sms.com وسأوفر لك HTTP-API وأمثله بالدوت نت على الارسال, فان كنت مهتما راسلني على الخاص.

#15

السلام عليكــم ورحمـة الله وبركاتــه ،،

احس ردك يا اخ hazzoom فيه بعض من الأحباط او انه تسويق لليلعه وشكراً اذا عندك شي تبغا تساعد فيه الشباب قوله وغير كذا اتمنى انك ماتزرع الأحباط في الأعضاء وشكراً

#16
اقتباس
السلام عليكم

أنا أستخدم المكتبة mCore رابط الموقع الخاص بالمكتبة هو http://www.logixmobile.com

وهي من المكتبات الأكثر إستقراراً من ناحية الأداء ولكن يجب عليك ملاحظة أنها تدعم أجهزة معينة (ستجدها مكتوبة في الموقع)

والله الموفق

هل هذي المكتبات ممكن تشتغل على الــ #C

#17

لماذا الكلام الجارح أخي الصبياني؟ لا حول ولا قوة الا بالله, أين الاحباط في ردي؟! من يريد عمل شئ فليقم بعمله أنا لم أحبط أحداً!! من يريد برمجة الموضوع من الصفر فهنيئاً له ومن يريد الاستفاده من خدمة موقعي فأهلاً وسهلاً.

تم تعديل هذه المشاركة بواسطة hazzoom في 7 مايو 2009 في 14:33

#18

انا اسف اذا كان في ردي تجريح بس ما بقصد وممكن مع الأحباط قلت هذا الكلام... واتمنى انك تسامحني اذا غلط عليك بكلمه او شي ما..

ولكن انا اسف وأكرر اسفي ..

وانا ابغا اعرف طريقة موقعك واحب ان اشترك في الخدمات التي توفر ولكن هل هيا ارسال واستقبل ام ارسال فقط؟؟

.. وحاب اتعرف على الخدمات وهل ممكن اذا اشتركت توفري كود بلغة #C أو PHP اذا امكن وشكراً

تم تعديل هذه المشاركة بواسطة الصبياني في 7 مايو 2009 في 14:55

#19

لا عليك أخي الكريم فنحن أخوه أولاً وأخيراً :)

أنا أوفر خدمة الارسال فقط ويمكنني توفير مثال لك بـ #C أو PHP ان شاء الله.

#20

الله يجزاك خير انا برضوا سويت برنامج ارسال عن طريق GSM مودم بلغة الــ#C مستخدماً اوامر AT-command وانا بحط الكود عشان الكل يستفيد

هذا كود الأرسال...


using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports;

namespace WindowsApplication5
{
public partial class Form1 : Form
{
SerialPort prt = new SerialPort("COM8");
bool STATE = false;
public Form1()
{
InitializeComponent();
prt.DataReceived += new SerialDataReceivedEventHandler(f1);
prt.Open();
Form.CheckForIllegalCrossThreadCalls=false;
}

private void button1_Click(object sender, EventArgs e)
{
STATE = false;
prt.Write("atz\r\n");
prt.Write("at+cmgf=1\r\n");
prt.Write("at+cmgs=\"" + textBox3.Text + "\"\r\n");
prt.Write(textBox2.Text + "\x1A");

}
private void f1(object x, SerialDataReceivedEventArgs e)
{
if (STATE == false)
{
byte[] buffer = new byte[1024];
prt.Read(buffer, 0, 1024);
ASCIIEncoding enc = new ASCIIEncoding();
textBox1.Text = enc.GetString(buffer);
}
using System;

#21

السلام عليكم 

الخوة الكرام المبرمجين :

أحسن الله عملكم و سير خطاكم حاليا أن بصدد القيام بمشروع  الرسائل القصيرة Sms لجلب المعلومات حيث انني استخدم 

GSM "type SIM900 GSM &GPRS shiled"

arduino uno 

كل ما اريد منكم ما هي الطريق التي يمكن بها تلقى العديد من الرسائل من ارقام مختلفة و كيفية الرد على نفس الرقم المرسل للرسالة برسالة تحدد له رصيده المصرف او نتيجة طالب او اي شي مرغوب العمل عليه

مواضيع مشابهة