Получите бесплатную консультацию
Мы очень любим общаться и не жалеем на это времени.
Напишите нам - задайте интересующий Вас вопрос, поделитесь идеей.
Мы постараемся ответить Вам как можно быстрее.
Каждое сообщение директор читает лично.
Telegram очень популярен в мире и позволяет не только общаться, но и участвовать в дискуссиях. Сегодня я решил интегрировать Telegram с Asterisk. Сейчас я использую Gtalk для получения уведомлений о том, что кто-то звонил мне и получаю доступ к записи автоответчика на своем сервере по URL. Выглядит это примерно вот так:
Теперь я хочу проделать то же самое с Telegram.
Итак установим пакет telegram-cli на CENTOS 6 для доступа к моему аккаунту telegram через linux CLI .
Telegram-cli использует Python 2.7 или выше, а CENTOS 6.X по-умолчанию использует версию Python 2.6 поэтому первым шагом обновим версию Python до 2.7. Проверить текущую версию python установленного у вас на сервере можно командой:
version by Python -V command
Установка Python 2.7:
yum groupinstall "Development tools"
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel
cd /usr/local/src/
wget --no-check-certificate https://www.python.org/ftp/python/2.7.6/Python-2.7.6.tar.xz
tar xf Python-2.7.6.tar.xz
cd Python-2.7.6
./configure --prefix=/usr/localmake && make alt install
(может понадобится установить symlink на новую версию Python )
Установка Jansson:
cd /usr/local/src/ && wget http://www.digip.org/jansson/releases/jansson-2.5.tar.gz
tar -zxf jansson-2.5.tar.gz
cd jansson*
./configure --prefix=/usr/ && make clean && make && make install && ldconfig
Установим другие необходимые для telegram-cli пакеты:
yum install lua-devel openssl-devel libconfig-devel readline-devel libevent-devel expect git
Скачаем и установим пакет telegram-cli:
git clone --recursive https://github.com/vysheng/tg.git && cd tg
./configuremake
/usr/local/src/tg/bin/telegram-cli -k /usr/local/src/tg/tg-server.pub -W
Теперь можно отправлять сообщения в Telegram с помощью команды msg. Например:
msg test message
Круто, но нам нужно отправлять сообщения через консоль Linux и поэтому мы будем использовать Bash:
Скрипт отправки сообщений в Telegram ( sendmsg.sh ):
#!/bin/bash
to=$1
msg=$2
tgpath=/usr/local/src/tg
cd ${tgpath}(echo "safe_quit") | ${tgpath}/bin/telegram-cli -k ${topath}/tg-server.pub -U root -W -e "msg $to $msg"
Скрипт отправки файлов в Telegram ( sendfile.sh)
#!/usr/bin/expect
set timeout 2
set msg [lindex $argv 1]
set dest [lindex $argv 0]
spawn /usr/local/src/tg/bin/telegram-cli -k /usr/local/src/tg/tg-server.pub -W
expect "> "
sleep 10
send "\rsend_file $dest $msg\r"
expect "> "expect eof
Установим права доступа для скриптов
chmod +x sendmsg.sh
chmod +x sendfile.sh
3.4 - Проверим
./sendmsg [аккаунт telegram] "Hello my telephony Telegram "
./sendfile [аккаунт telegram] record.wav
Мы можем просто использовать системные приложения в дайлплане asterisk для запуска наших скриптов. Этот способ самый подходящий, т.к. отправка сообщений занимает время, а файл генерируется по окончании разговора.
exten => h,1,System(/usr/local/src/sendmsg.sh "аккаунт telegram" "'${CALLERID(num)}is calling Miniatel on ${STRFTIME(${EPOCH},,%Y/%m/%d)}-${STRFTIME(${EPOCH},,%H:%M:%S)}'" )
И вот результат. Но если честно, то я продолжаю использовать Gtalk, т.к. его поддержка встроена в Asterisk и работает более стабильно.
Дополнительная информация:
https://www.digitalocean.com/community/tutorials/how-to-set-up-python-2-7-6-and-3-3-3-on-centos-6-4
http://caporro.it/script-shell-send-telegram-msg-with-expect/