У цьому прикладі покажемо, як налаштувати FreePBX так, щоб він автоматично надсилав повідомлення у Telegram при здійсненні вихідних дзвінків через ваші транки.
## 1. Що нам потрібно
- **FreePBX / Asterisk** з доступом до консолі та можливістю редагування макросів.
- **Telegram Bot**, створений через [@BotFather](https://t.me/BotFather) з отриманим `TOKEN`.
- **Chat ID** або кілька Chat ID користувачів/груп, куди будемо надсилати повідомлення.
## 2. Логіка роботи
Ми використаємо макрос `macro-dialout-trunk-predial-hook`, який виконується **перед дзвінком через транк**. У ньому за допомогою `curl` будемо викликати API Telegram і передавати інформацію про номер клієнта та номер, на який здійснюється виклик.
## 3. Приклад конфігурації
> ⚠️ **УВАГА!** Замість `YOUR_BOT_TOKEN` та `CHAT_ID` потрібно підставити ваші реальні дані.
```
[macro-dialout-trunk-predial-hook]
exten => s,1,NoOp(=== Вихідний виклик: TG нотифікація ===)
; Встановлюємо два Chat ID
same => n,Set(TG_CHAT_ID=CHAT_ID_1)
same => n,Set(TG_CHAT_ID2=CHAT_ID_2)
; Токен Telegram бота
same => n,Set(TG_TOKEN=YOUR_BOT_TOKEN)
; Логування в консоль Asterisk
same => n,Verbose(0, "Відправка нотифікації у Telegram: ${REALCALLERIDNUM} -> ${OUTNUM}")
; Відправка повідомлень у два чати
same => n,System(/usr/bin/curl -s -X POST https://api.telegram.org/bot${TG_TOKEN}/sendMessage \
-d chat_id=${TG_CHAT_ID} \
-d text="📞 Виклик від ${REALCALLERIDNUM} на ${OUTNUM}" &)
same => n,System(/usr/bin/curl -s -X POST https://api.telegram.org/bot${TG_TOKEN}/sendMessage \
-d chat_id=${TG_CHAT_ID2} \
-d text="📞 Виклик від ${REALCALLERIDNUM} на ${OUTNUM}" &)
same => n,Return()
```