بعد اختبار وحدة SIP العميل Linphonec ، رأيت فيها إمكانية وجود طريقة بسيطة وسريعة لتنفيذ التنبيهات الصوتية على الهاتف المحمول ، لنظام التشغيل الآلي للمنزل.
أعتقد أن هذه الطريقة مناسبة للعديد من أنظمة التشغيل الآلي للمنزل DIY ، سأقدم روايتي.
لديّ نظام أتمتة المنزل الذكي MajorDoMo المثبت على كمبيوتر Raspberry Pi أحادي اللوحة (يعمل على Raspbian (Debian 9).
سننشئ إمكانية التبليغ من MajorDoMo إلى هاتف ذكي دون استخدام معدات إضافية وخادم VoIP الخاص بنا.
مبدأ موجز للتنبيه: في حالة وقوع حادث حرج (يمكن للجميع تحديد قائمة الحوادث الخاصة بهم) ، يدير نظام الأتمتة عميل وحدة التحكم VoIP ويستدعي المالك عبر بروتوكول SIP ، بعد الاستجابة فإنه يقوم بتشغيل ملف الصوت المسجل مسبقًا مع رسالة الحادث.
بادئ ذي بدء ، نحتاج إلى حسابين من مزود SIP مزود بالداخل / الوارد المجاني داخل الشبكة. على سبيل المثال ، خذ خدمة سحابة Zadarma.com.
الخطوة الأولى: نقوم بالتسجيل لدى المزود ، أثناء الوصول إلى حسابك الشخصي وحساب SIP الخاص بك. يمكننا التسجيل في العديد من صناديق البريد ، ولكن يمكننا تجديد الحساب والحصول على أرقام إضافية. على أي حال ، يجب أن يكون لدينا رقمان (حسابات) وكلمة مرور لها.
على الهاتف الذكي (يعمل من أجلي في ظل نظام Androd OS) نقوم بتثبيت تطبيق جوال من السوق ، أي عميل SIP سيفعله. لتوفير الراحة والتقليل من الإعدادات الأولية ، يمكننا استخدام تطبيق الملكية لمكالمات Zadarma ، ولكن يمكننا استخدام أكثر وظيفية.
بعد التثبيت ، نقوم بالتسجيل من خلال الإشارة إلى رقمك وكلمة المرور الخاصة بك ، وبذلك يكمل إعداد الهاتف الذكي. لذلك استخدمنا رقم واحد.
على Raspberry Home Automation Server ، نحتاج إلى عميل طرفي Linphonec SIP. عند التثبيت من مستودع Raspbian ، يتم تثبيت إصدار قديم إلى حد ما 3.6.1 ، والذي لا يعمل بشكل صحيح مع نظام الصوت ALSA ، ولكن نظرًا لعدم وجود حاجة لاستخدام الصوت مباشرةً ، دعنا نسير على هذا الطريق السهل.
قمت بتثبيت الإصدار الحالي من حزمة Linphone (3.12.0) بدون واجهة رسومية لـ Debian 9 ، وقد وصفت في مقالة سابقة: زر الاتصال ديي. Raspberry Pi، MajorDoMo، Freeswitch and Linphonec . يمكنك العثور على معلومات حول تثبيت بطاقة صوت USB وإعدادات الصوت لـ Raspberry Pi.في الجهاز ، قم بتنفيذ الأمر التالي:
sudo apt-get install linphone-nogtk
يتم تنفيذ تثبيت الأداة المساعدة عميل وحدة التحكم linphonec و linphonecsh - برنامج وحدة تحكم لإدارة تشغيل linphonec في الخلفية في الدليل / usr / bin.
لنجعل أول تشغيل عن طريق الكتابة:
linphonec
نطلقه ، يقسم عميل SIP في ALSA ، ونحن لا ننتبه إليه.
نقوم بتنفيذ أمر تسجيل العميل (Linphonec) على خادم zadarma ، حدد الرقم الثاني وكلمة المرور:
register sip:xxxxxx@sip.zadarma.com sip.zadarma.com PASSWORD
إذا كانت المدخلات صحيحة ، فسنرى إجابة التسجيل الناجح:

ننهي العميل (Ctrl + c ، بينما يحفظ العميل الإعدادات في ملف .linphonerc الخاص بالمستخدم الحالي ، في حالتي ، الدليل / home / pi. في المرة التالية التي يبدأ فيها SIP ، يتم تسجيل العميل تلقائيًا على خادم الموفر.
نسجل رسالة صوتية (على سبيل المثال: "تم إعادة تشغيل انتباه النظام ، الحالة قيد التشغيل الآن":
arecord -D plughw:1,0 -f cd /home/pi/alarm_restart.wav
لتشغيل Linphonec والتحكم فيه في وضع الخفي ، يتم استخدام الأداة المساعدة Linphonecsh. في البداية ، عند بدء التشغيل ، يلزم تهيئة عميل linphonecsh. عند تنفيذ هذا الأمر ، يبدأ عميل وحدة التحكم دون تحميل ملف التكوين.
بحيث تتم قراءة التكوين عند بدء التشغيل ، قم بتشغيله مع العلم باستخدام:
linphonecsh init -c /home/pi/.linphonerc
الآن يمكننا إدارة وحدة التحكم العميل من المحطة.
قائمة قيادة Linphonecsh Usage: linphonecsh <action> [arguments] where action is one of init : spawn a linphonec daemon (first step to make other actions) followed by the arguments sent to linphonec generic : sends a generic command to the running linphonec daemon followed by the generic command surrounded by quotes, for example "call sip:joe@example.net" register : register; arguments are --host <host> --username <username> --password <password> unregister : unregister dial : dial <sip uri or number> status : can be 'status register', 'status autoanswer' or 'status hook' soundcard : can be 'soundcard capture', 'soundcard playback', 'soundcard ring', followed by an optional number representing the index of the soundcard, in which case the soundcard is set instead of just read. exit : make the linphonec daemon to exit.
لنجرب الأوامر التالية:
linphonecsh generic 'soundcard use files'
linphonecsh generic 'play alarm.wav'
linphonecsh dial sip:@sip.zadarma.com
حيث عامة هي فرق برنامج Linphonec نفسه. XXXXXX هو رقم SIP الخاص بنا المثبت على الهاتف الذكي.
في هذه الحالة ، تحدث مكالمة ، عند الرد - يمكنك سماع تشغيل ملف مسجل مسبقًا مع وقوع حادث.
يدويا انها عملت. للتكامل مع نظام التشغيل الآلي للمنزل المستند إلى MajorDoMo ، على سبيل المثال ، خذ حالة الطوارئ عند إعادة تشغيل الخادم.
نكتب السطر التالي في crontab (عند تحميل الكمبيوتر ، يتم تحميل عميل وحدة التحكم:
crontab -e
@reboot sudo -u pi linphonecsh init -c /home/pi/.linphonerc
بعد ذلك ، انتقل إلى صفحة الويب الخاصة بنظام DD ، وانتقل إلى
لوحة التحكم - البرامج النصية - الأحداث - بدء التشغيل. .

يتم تنفيذ البرامج النصية في لغة البرمجة PHP. يوجد بالفعل سطر واحد في الكود ، عند بدء تشغيل النظام ، يُعلن عبارة باستخدام عنوان IP الخاص بالخادم.
أضف المزيد
exec ("sudo -u pi linphonecsh generic 'soundcard use files'");
exec ("sudo -u pi linphonecsh generic 'play alarm.wav'");
exec ("sudo -u pi linphonecsh dial sip:576935@sip.zadarma.com ");
نقوم بالتثبيت
للتنفيذ بعد الحفظ ، ونوفر ، وفي الوقت نفسه توجد مكالمة على الهاتف المحمول.
نقوم بإعادة تشغيل نظام MajorDoMo ، من خلال
الخدمة - إعادة تشغيل / إيقاف التشغيل .
بعد إعادة التشغيل ، يصل إشعار صوتي على الهاتف. نفس خوارزمية الإجراءات يمكن القيام بها لحادث آخر حرج بالنسبة لك.
بعد تغيير تسلسل الإجراءات قليلاً ، يمكنك تثبيت خادم الاتصال الهاتفي عبر بروتوكول الإنترنت (Asterisk ، Freeswitch ، وما إلى ذلك) في نظام التشغيل الآلي للمنزل ، وتوصيل بوابة VoIP به والوصول مباشرةً إلى مشغل الهاتف المحمول أو PSTN. هذا الخيار أكثر وظيفية ، ويحتوي على المزيد من الميزات ، ولكنه يتطلب أيضًا تكاليف قليلة قليلة ، سواء المادية أو لإعداد النظام.