الرسائل القصيرة في جافا

Posted: 15/02/2011 in مصادر مفتوحة, برمجة
الوسوم:, , , , , , , , ,

smsينتقد كثير من المشككين جافا من ناحية التعامل مع العتاد بشكل عام، ويدعون أنها غير مصممة لذلك، هذا ليس صحيحاً عندما نتكلم عن التحكم بإرسال واستقبال الرسائل عن طريق الجوال عن طريق مكتبة SMSLib.

فيما يلي مدخل لاستخدام مكتبة SMSLib وترجمة لبعض صفحات الموقع الرسمي.

المحتويات:



حول SMSLib

هي مكتبة جافا لاستقبال/إرسال الرسائل النصية القصيرة SMS عبر مودم GSM متوافق أو جوال GSM. تم تحويل المكتبة إلى مكتبة .NET عن طريق أدوات IKVM. المكتبة مرخصة برخصة أباتشي بإصدارها الثاني. تقوم المكتبة بتقديم خدمات إرسال واستقبال الرسائل النصية القصيرة وإدارتها بطريقة أنيقة وذلك عن طريق تغليف وكبسلة المستويات المنخفضة من أوامر AT التي يتم إرسالها للتحكم بالجوال كمودم GMS حيث تعتمد في ذلك على مكاتب أخرى كمكاتب Comm API أو RxTx. وذلك بعد وصله عبر منفذ تسلسي COM حقيقي أو افتراضي عن طريق برنامج تعريف الجوال على الكمبيوتر. المكتبة خاصة بجافا ويوجد نسخة تجريبية للـ .NET منها، وفي هذه التدوينة نتناول المكتبة الخاصة بجافا. النسخة الحالية من المكتبة تدعم مايلي:

  • تدعم جوالات ومودمات GSM الموصولة بواجهة منفذ تسلسلي أو واجهة IP.
  • تعمل مع بروتوكولات PDU/TEXT.
  • تدعم الرسائل النصية القصيرة الصادرة والواردة.
  • تعمل مع ترميز الرسائل 7 بت و 8 بت و UCS2 (يونيكود)
  • تدعم الرسائل النصية الكبيرة (متعددة الأجزاء) الصادرة والواردة.
  • رسائل فلاش.
  • الرسائل الصادرة مع معلومات العنوان
  • الرسائل الصادرة مع معلومات المنفذ / العنوان.
  • رسائل WAP PUSH SI الصادرة.
  • تقارير وصول الرسالة (الحالة).
  • معلومات GSM الأساسية المتوافرة: المودم، المصنّع، نسخة العتاد والبرامج، مستوى الإشارة … إلخ.
  • تدعم بعض مزودي خدمات الرسائل الجماعية (bulk operators) باستخدام بروتوكولات http و https.
  • تدعم بروتوكول SMPP.

والمزايا الجديدة التالية تم إضافتها منذ النسخة الثالثة:

البوابات المتعددة

أتى مفهوم البوابات إلى النسخة منذ النسخة الثالثة، وهي بمثابة واجهة لجهاز أو خدمة تستخدم لإرسال و/أو استقبال الرسائل النصية القصيرة SMS. يمكن أن تكون البوابة مودم GSM أو مزود خدمة إرسال رسائل جماعية مدعوم (bulk sms provider). يمكن للمكتبة معالجة عدة بوابات في نفس الوقت.

أولويات الإرسال

تدعم المكتبة ضبط أولويات عدد غير محدود من الرسائل كل رسالة على حدة، يتم إرسال الأولويات مباشرة إلى البوابـ(ـات) إن كانت تدعم ذلك، وإلا فيتم محاكاتها.

الاستقبال المتزامن / غير المتزامن.

تعطيك المكتبة خيارين لاستقبال الرسائل:

  • متزامن: حيث تكون المسؤولية على عاتقك في استدعاء الطرائق read() بشكل دوري.
  • غير متزامن: تنتظر المكتبة لترد عليك عند استلام رسالة.
الارسال المتزامن / غير المتزامن.

تعطيك المكتبة خيارين لإرسال الرسائل:

  • متزامن: عند طلبك إرسال رسالة، يتوقف خيط التنفيذ (thread blocks) إلى أن يتم إرسال الرسالة أو يفشل.
  • غير متزامن: عند طلبك إرسال رسالة، لا يتوقف خيط التنفيذ (thread does not block) وتعيد المكتبة مباشرة. وتضع رسائلك في رتل وترسلهم في الخلفية. يمكنك تحديد فيما إذا كنت ترغب بإعلامك بمصير رسائلك.
الاستدعاءات

تعطيك المكتبة الخيار لتعريف استداعئات راجعة عند حدوث أحداث معينة.

  • الاتصالات الصوتية القادمة: يمكن للمكتبة أن تستدعي طريقة ما عند استلامك مكالمة صوتية. لاحظ أنه سيتم قطع الاتصال الصوتي آلياً ومن دون شرط وسيتم إعلامك برقم الجهة المتصلة.
  • الرسائل القادمة: يمكنك ضبط المكتبة بحيث تستدعي طريقة محددة في كل مرة تصلك فيها رسالة.
  • الرسائل الصادرة: يمكنك ضبط المكتبة بحيث تستدعي طريقة محددة عندما ترسل الرسائل بشكل غير متزامن على تلك الرسالة (مع حالتها … إلخ).
  • تغير حالة البوابة: يمكن للمكتبة أن تعلمك في كلما تتغير فيها حالة البوابة.
  • عملية إرسال رتل: يمكن للمكتبة أن تعلمك في كلما تصبح جاهزة لإرسال رسالة في الأرتال الخلفية.
معرف مرسل مخصص

تدعم المكتبة معرف مرسل مخصص. هذا الخيار غير مدعوم من مودمات GSM – يجب أن تستخدم أحد مزودي خدمات الرسائل الجماعية.

الرسائل المشفرة

يمكن للمكتبة إرسال/إستقبال رسائل مشفرة. محرك التشفير الحالي يستخدم مفتاح AES قوي مؤلف من (128 بت) والمضمن في حزمة تطوير جافا (JDK). يتم إرسال الرسائل المشفرة كرسائل ثنائية. تزودك المكتبة بطريقة مؤتمتة لتعيين مفاتيح تشفير لأرقام محددة، لذا إجرائية الإرسال/الإستقبال مؤتمتة بالكامل تقريباً.


التنصيب:

لاستخدام SMSLib عليك تنصيب المكونات التالية (لتحميلها راجع التحميل):

1- أدوات تطوير جافا JDK 1.6 أو أحدث.

2- مكتبة اتصالات جافا Java Communications Library:

  • على أنظمة ويندوز: يجب أن تستخدم SUN Java Comm v2.
  • على باقي الأنظمة: (مثل لينكس، يونكس، بي إس دي … إلخ) عليك تنصيب إما Java Comm v3 أو RxTx. قد تسبب Java Comm v3 بعض المشاكل مع بعض توزيعات لينكس، عندها عليك استخدام RxTx.

تنصيب مكتبة اتصالات جافا: سواءً الإصدار 2 أو 3، قم بفك ضغط الملف واتبع الخطوات:

  • انسخ الملف comm.jar إلى المسار:

JDKDIR/jre/lib/ext/

  • انسخ الملف javax.comm.properties  إلى المسار:

JDKDIR/jre/lib/

  • انسخ ملفات المكتبة (win32com.dll في ويندوز وملفات .so في لينكس) إلى المسار التالي:

JDKDIR/jre/bin/

(إن كان لديك أكثر من JDK أو JRE فقم بنسخ الملفات إلى كل واحدة منها).

تنصيب مكتبة RxTx:

  • انسخ الملف RXTXcomm.jar إلى المسار:

JDKDIR/jre/lib/ext/

  • انسخ ملفات المكتبة (مثلاً الملف librxtxSerial.so في لينكس 32 بت) إلى المسار التالي:

JDKDIR/jre/bin/

(إن كان لديك أكثر من JDK أو JRE فقم بنسخ الملفات إلى كل واحدة منها).

3- أباتشي ANT لبناء الملفات المصدرية: وهي مضمنة بشكل افتراضي في معظم بيئات التطوير المتكاملة IDEs.

4- أباتشي log4j: لتنصيبها قم بتضمين الملف log4j-x.x.xx.jar (حيث x.x.xx رقم الإصدار) إلى المتغير CLASSPATH أو إضافتها لمشروعك.

انسخ الأسطر التالية إلى ملف نصي، واحفظه باسم log4j.properties:

log4j.logger.smslib=DEBUG, smslib
log4j.appender.smslib=org.apache.log4j.ConsoleAppender
log4j.appender.smslib.layout=org.apache.log4j.PatternLayout
log4j.appender.smslib.layout.ConversionPattern=%-6r %d [%t] %-5p %C %x - %m%n

واستخدم هذا الملف في مشروعك.

5- مكتبة JSMPP: لتنصيبه قم بتضمين الملف jsmpp-x.x.x.jar (حيث x.x.x رقم الإصدار) إلى المتغير CLASSPATH أو إضافتها لمشروعك.

التوافقية:

يمكنك مراجعة صفحة التوافقية هذه. بشكل عام لا تعمل جميع هواتف نوكيا مع نظام سامبيان مع المكتبة أو تعمل مع بشكل جزئي.

التحميل:

يمكنك تحميل مكتبة SMSLib وكافة المتطلبات/الاعتماديات السابقة من صفحة التحميل.

تجربة الأمثلة:

بعد تنصيب المكتبة، قم بوصل الهاتف بالكمبيوتر ونصب التعاريف اللازمة.

جرب مثال إرسال رسالة (الموجود ضمن المطتبة في المسار smslib-v3.5.0\src\java\examples\modem\SendMessage.java).

لا تنسى تغيير رقم المنفذ الموجود عليه الجوال، ورقم PIN، ورقم مركز الرسائل، ورقم الهاتف.

 

 

Advertisements

اترك رد

إملأ الحقول أدناه بالمعلومات المناسبة أو إضغط على إحدى الأيقونات لتسجيل الدخول:

شعار وردبرس.كوم

أنت تعلق بإستخدام حساب WordPress.com. تسجيل خروج   /  تغيير )

Google+ photo

أنت تعلق بإستخدام حساب Google+. تسجيل خروج   /  تغيير )

صورة تويتر

أنت تعلق بإستخدام حساب Twitter. تسجيل خروج   /  تغيير )

Facebook photo

أنت تعلق بإستخدام حساب Facebook. تسجيل خروج   /  تغيير )

w

Connecting to %s