ایزابل (Issabel)

اتصال استریسک Asterisk به تلگرام: ارسال پیام و اطلاع‌رسانی خودکار با PHP

برای ارسال پیام به یک کانال تلگرام از طریق PHP، به یک توکن API و شناسه چت (Chat ID) نیاز دارید. این اطلاعات را با ایجاد یک ربات تلگرام به دست می‌آورید.

ایجاد ربات تلگرام

برای ایجاد ربات تلگرام مراحل زیر را دنبال کنید:

  1. گفتگو با BotFather:
    • از طریق جستجوی جهانی، BotFather را پیدا کنید.
    • BotFather، رباتی است که به شما امکان ایجاد ربات‌های جدید و مدیریت ربات‌های موجود را می‌دهد.
  2. ایجاد ربات جدید:
    • فرمان /newbot را وارد کنید.
    • نامی برای ربات خود انتخاب کنید (باید به “bot” ختم شود)، مثلاً: Atom_Bot.
    • پس از ایجاد ربات، یک توکن به شما داده می‌شود.

توکن (Token):

این توکن یک رشته است که برای احراز هویت ربات و ارسال درخواست‌ها به API تلگرام مورد نیاز است، مثل: ۴۳۳۴۵۸۴۹۱۰:AAEPmjlh84N62Lv3jGWEgOftlxxAfMhB1gs.

ایجاد کانال تلگرام

برای ایجاد کانال تلگرام روی دستگاه اندروید خود:

  1. تلگرام را باز کنید.
  2. روی آیکون قلم در پایین صفحه کلیک کرده و New Channel را انتخاب کنید.
  3. یک نام برای کانال وارد کنید. می‌توانید توضیحی هم اضافه کنید.
  4. روی آیکون دوربین کنار نام کانال کلیک کرده و عکسی به‌عنوان تصویر کانال انتخاب کنید.
  5. نوع کانال را انتخاب کنید (عمومی یا خصوصی).
  6. اگر کانال عمومی است، یک لینک دائمی برای آن تنظیم کنید.
  7. روی تیک تأیید کلیک کنید.
  8. تلگرام از شما می‌خواهد اعضای اولیه را اضافه کنید. این گزینه اختیاری است.

اضافه کردن ربات به کانال به‌عنوان مدیر (Admin)

برای اینکه ربات بتواند به کانال پیام ارسال کند، باید آن را به کانال اضافه کرده و به‌عنوان مدیر تنظیم کنید. مراحل زیر را دنبال کنید:

  1. باز کردن لیست اعضا.
  2. روی نام ربات (Atom_Bot) کلیک کنید و گزینه Promote to Admin را انتخاب کنید.

ارسال پیام به کانال تلگرام با PHP

برای ارسال پیام، می‌توانید از کد PHP زیر استفاده کنید:

<?php

$apiToken = "۴۳۳۴۵۸۴۹۱۰:AAEPmjlh84N62Lv3jGWEgOftlxxAfMhB1gs";
$data = [
'chat_id' => '@demo', // شناسه کانال، برای مثال: @کانال_شما
'text' => 'به کانال ما خوش آمدید!'
];
$response = file_get_contents("http://api.telegram.org/bot$apiToken/sendMessage?" . http_build_query($data));
?>

تست و اجرا

  1. قرار دادن اسکریپت: این کد را در یک فایل PHP ذخیره کرده و روی سرور خود قرار دهید.
  2. اجرا: فایل PHP را در مرورگر اجرا کنید یا به صورت برنامه‌ریزی‌شده روی سرور اجرا کنید.
  3. نتیجه: پس از اجرای کد، پیام باید به کانال ارسال شود.

استفاده از ربات در استریسک (Asterisk) برای اطلاع‌رسانی‌ها

با اتصال استریسک به تلگرام، می‌توانید اطلاع‌رسانی‌ها و پیام‌های مختلفی را ارسال کنید. در اینجا چند مثال آورده شده است:

  1. اطلاع‌رسانی‌های امنیتی:

    • اگر تماس مشکوک یا حملات احتمالی به سیستم رخ دهد، می‌توانید از طریق ربات تلگرام به مدیران اطلاع دهید.
  2. پیام‌گیر صوتی:

    • اگر کسی پیغام صوتی بگذارد، اسکریپت می‌تواند آن را به همراه اطلاعات تماس به تلگرام ارسال کند.
  3. اعلان‌های تماس ورودی و خروجی:

    • برای اطلاع از تماس‌های ورودی و خروجی مهم، اطلاعات تماس به تلگرام ارسال شود. این ویژگی برای مدیرانی که همیشه نمی‌توانند به سیستم وصل شوند مفید است.

مثال از استفاده در ایزابل (Issabel)

یک سناریوی کاربردی این است که در Issabel، زمانی که تماسی به بخش خاصی هدایت می‌شود یا تماس ورودی مهمی دریافت می‌شود، یک پیام حاوی اطلاعات تماس و شماره تماس‌گیرنده به تلگرام ارسال شود.

برای این کار، می‌توانید یک AGI Script ایجاد کرده و آن را در Dialplan قرار دهید تا هر زمان که تماس وارد شود، اطلاعات تماس به کانال تلگرام ارسال شود.


استفاده از PHP برای ارسال پیام از Issabel به تلگرام

اتصال Issabel به تلگرام می‌تواند به شما این امکان را بدهد که رویدادهای مختلف سیستم تلفنی خود را به‌صورت خودکار به تلگرام ارسال کنید. در اینجا چند مثال ساده آورده شده است که چگونگی استفاده از یک فایل PHP را برای ارسال پیام از Issabel به تلگرام نشان می‌دهد. هر مثال به‌صورت گام به گام توضیح داده شده تا اجرای آن برای شما راحت باشد.


مثال ۱: ارسال پیام اطلاع‌رسانی تماس ورودی به تلگرام

در این مثال، هرگاه تماسی به سیستم شما وارد شود، یک پیام اطلاع‌رسانی شامل شماره تماس‌گیرنده به کانال تلگرام ارسال می‌شود.

مراحل راه‌اندازی:

  1. ایجاد فایل PHP برای ارسال پیام:
    • ابتدا یک فایل PHP برای ارسال پیام به تلگرام ایجاد کنید. این فایل را در مسیر /var/lib/asterisk/agi-bin/ ذخیره کنید.
    • نام فایل را send_telegram_message.php بگذارید.
  2. کد PHP برای ارسال پیام:
    <?php
    $apiToken = "توکن_ربات_شما"; // جایگزین کردن با توکن ربات تلگرام
    $chatId = "@شناسه_کانال_شما"; // شناسه کانال تلگرام، برای مثال: @کانال_شما
    // دریافت شماره تماس‌گیرنده از متغیرهای Asterisk
    $callerId = isset($argv[۱]) ? $argv[۱] : ‘Unknown Caller’;$data = [
    ‘chat_id’ => $chatId,
    ‘text’ => “تماس ورودی جدید از شماره: “ . $callerId
    ];$response = file_get_contents(“https://api.telegram.org/bot$apiToken/sendMessage?” . http_build_query($data));
    ?>
  3. تنظیمات Dialplan در Asterisk:
    • فایل extensions_custom.conf را باز کنید (موجود در مسیر /etc/asterisk/).
    • یک Context جدید به‌صورت زیر ایجاد کنید که فایل PHP را هنگام دریافت تماس اجرا کند:
    plaintext
    [telegram-notify]
    exten => s,1,NoOp(ارسال پیام اطلاع‌رسانی تماس ورودی به تلگرام)
    exten => s,n,AGI(send_telegram_message.php, ${CALLERID(num)})

    exten => s,n,Hangup()

  4. استفاده از Context:
    • این Context را برای داخلی‌ها یا خطوط ورودی خاص تنظیم کنید تا پیام اطلاع‌رسانی ارسال شود. می‌توانید این تنظیم را از طریق رابط کاربری Issabel در بخش تنظیمات خطوط ورودی انجام دهید.
  5. بارگذاری مجدد تنظیمات Asterisk:
    • با اجرای فرمان زیر تنظیمات جدید را بارگذاری کنید:
      asterisk -rx "dialplan reload"

مثال ۲: ارسال پیام پیام‌گیر (Voicemail) به تلگرام

در این مثال، هنگامی که یک پیغام صوتی جدید در سیستم ذخیره می‌شود، پیامی به تلگرام ارسال می‌شود که اطلاع دهد پیغام صوتی جدیدی دریافت شده است.

مراحل راه‌اندازی:

  1. ایجاد فایل PHP برای پیام‌گیر:
    • یک فایل جدید به نام voicemail_telegram_notify.php در مسیر /var/lib/asterisk/agi-bin/ ایجاد کنید.
  2. کد PHP برای ارسال پیام پیام‌گیر:

    <?php
    $apiToken = "توکن_ربات_شما";
    $chatId = "@شناسه_کانال_شما";

    // دریافت اطلاعات پیام‌گیر از متغیرهای Asterisk
    $callerId = isset($argv[1]) ? $argv[1] : 'Unknown Caller';

    $data = [
    'chat_id' => $chatId,
    'text' => "پیام صوتی جدید از شماره: " . $callerId
    ];

    $response = file_get_contents("https://api.telegram.org/bot$apiToken/sendMessage?" . http_build_query($data));
    ?>

  3. تنظیمات Voicemail در Asterisk:
    • در فایل voicemail.conf تنظیمات مربوط به Voicemail را باز کرده و Context جدیدی برای اطلاع‌رسانی به تلگرام ایجاد کنید:
    [telegram-voicemail]
    ;VOIPIRAN SAMPLE
    exten => s,1,NoOp(ارسال پیام پیام‌گیر به تلگرام)
    exten => s,n,AGI(voicemail_telegram_notify.php, ${CALLERID(num)})
    exten => s,n,Hangup()
  4. تنظیمات Voicemail:
    • در تنظیمات Voicemail از رابط کاربری Issabel، Context را برای داخلی‌ها یا شماره‌های خاص تنظیم کنید تا پیام پیام‌گیر به تلگرام ارسال شود.
  5. بارگذاری مجدد تنظیمات Asterisk:
    • با فرمان زیر تنظیمات را مجدداً بارگذاری کنید:
      asterisk -rx "dialplan reload"

تست و اجرای اسکریپت

برای اطمینان از عملکرد صحیح:

  • یک تماس تستی با سیستم برقرار کنید و بررسی کنید که پیام به تلگرام ارسال شده است.
  • یا یک پیام صوتی بگذارید و ببینید آیا پیام اطلاع‌رسانی در کانال تلگرام شما ظاهر می‌شود.

نکات پایانی

  • اطمینان حاصل کنید که ربات تلگرام به‌عنوان مدیر کانال تنظیم شده باشد.
  • صدور مجوزهای فایل PHP: فایل‌های PHP در مسیر AGI باید دارای مجوزهای لازم برای اجرا باشند. از فرمان زیر استفاده کنید:
    chmod +x /var/lib/asterisk/agi-bin/send_telegram_message.php

با این روش‌ها، می‌توانید به‌سادگی اطلاع‌رسانی‌های سیستمی را به تلگرام ارسال کرده و مدیریت تماس‌ها را بهبود دهید. این اتصال می‌تواند به شما کمک کند تا به‌صورت خودکار از وضعیت سیستم و تماس‌ها آگاه شوید.

جمع‌بندی

اتصال استریسک و تلگرام به شما امکان مدیریت بهتر تماس‌ها، اطلاع‌رسانی‌های سریع و امنیت بیشتر را می‌دهد. این راهکار برای مدیران سیستم و مسئولین امنیتی ارزش بالایی دارد و می‌تواند به‌طور گسترده در محیط‌های VoIP استفاده شود.

حامد کوه فلاح

متخصص، برنامه نویس و مدرس Asterisk و راهکارهای نوین ارتباطی آشنایی و کار با استریسک و راهکار های مشابه از سال 1382، پایه گذاری VOIPIRAN ارائه راهکار های کدباز VOIP همچون VAAK و VOIZ و CONNEXO همکار برنامه نویسی و آموزش با پروژه های Elastix و Issabel با بیش از 3000 دانشجو از سال 1387

Share
Published by
حامد کوه فلاح

Recent Posts

SaaS چیست؟ بررسی جامع، مزایا

SaaS چیست؟ بررسی جامع نرم‌افزار به‌عنوان سرویس و مزایای آن در دنیای فناوری اطلاعات، مدل‌های…

2 روز ago

Softswitch چیست؟ ستون اصلی شبکه‌های VoIP و نحوه طبقه‌بندی آن‌ها

در دنیای ارتباطات راه دور و شبکه‌های VoIP، اصطلاح Softswitch یکی از مفاهیم کلیدی است. Softswitch یک سیستم نرم‌افزاری…

4 روز ago

مدیریت Asterisk از طریق کنسول مثل یک حرفه ای: ابزارها و نکات

Asterisk به‌عنوان یکی از محبوب‌ترین پلتفرم‌های تلفن تحت شبکه (VoIP)، ابزارهای قدرتمند و متنوعی را…

1 هفته ago

آشنایی با مفاهیم FXS و FXO در سیستم‌های VoIP

در سیستم‌های تلفنی سنتی و مدرن، مفاهیمی مانند FXS و FXO نقشی کلیدی در ارتباطات آنالوگ و دیجیتال ایفا…

1 هفته ago

Devv.ai: موتور جستجوی هوشمند برای توسعه‌دهندگان و متخصصان IT

در دنیای پیچیده فناوری اطلاعات و برنامه‌نویسی، یافتن سریع اطلاعات دقیق و ابزارهای موردنیاز از…

2 هفته ago

راهنمای کامل MagnusBilling: ویژگی‌ها، مزایا و نصب روی ایزابل ۵

MagnusBilling چیست؟ MagnusBilling یک سیستم بیلینگ VoIP با ویژگی‌های قدرتمند و انعطاف‌پذیر است که امکان…

2 هفته ago