Повідомлення про дзвінок по telegram

imageimage
Досить часто компанії, що використовують Asterisk, стикаються з необхідністю автоматичного переведення дзвінка на мобільний телефон співробітника. Звичайно, ідеальним рішенням було б встановлення на телефони якогось софтфона, але далеко не скрізь якість мобільного інтернету задовольняє потреби передачі голосу, так що дзвінок перекладається саме на номер мобільного телефону. У відповідності з законодавством і внутрішніми правилами, оператори зв'язку найчастіше не дозволяють підстановку довільного номери в якості Caller ID, тому працівники, яким перекладається виклик, не бачать номер абонента клієнта, а номер офісу. В деяких випадках це навіть зручно, але буває і так, що передзвонити клієнтові потрібно негайно. Звичайно, працівник може зайти в інтерфейс статистики(якщо, звичайно, він є) і знайти там номер абонента, але це не завжди можливо і завжди абсолютно незручно.

Для вирішення завдання з передачі номера абонента співробітникові на мобільний телефон використовували різноманітні методи: відправка смс (коштує додаткових грошей, потрібно обладнання або договір з сервісом зразок sms.ru), озвучування номери по дзвінку в офіс і донабору якогось додаткового номера (довго, коштує грошей, так і запам'ятати нальоту 11 цифр складно), і нарешті, jabber (яким сьогодні мало хто користується).
Зіткнувшись з подібною задачею, ми захотіли використовувати telegram. На офіційному сайті, в розділі Apps є неофіційний консольний клієнт для Linux — telegram-cli, що нам і потрібно! Проте, в силу своєї неофіційності, похвалитися установкою в один клік цей додаток не може, так що доведеться збирати його з вихідного коду. У мережі можна знайти одну і ту ж інструкцію, яка кочує з сайту на сайт, проте слідуючи їй, ми зазнали невдачі, і не один раз.

Отже, послідовність вірних дій така:
Як зазвичай, оновлюємо систему
apt-get update або yum update.

Для коректної роботи telegram-cli потрібно версії python 2.7 і вище. Перевірити, яка саме версія встановлена у вас (якщо, звичайно, вона взагалі встановлена) можна так:
python -V

Ще будуть потрібні наступні пакети
для ubuntu server 14.04
libreadline-dev libconfig-dev libssl-dev lua5.2 liblua5.2-dev libevent-dev libjansson-dev libpython-dev make

для centos 6.X
lua-devel openssl-devel libconfig-devel readline-devel libevent-devel libjansson-devel ruby-devel

а також git
Як тільки необхідні пакети встановлені, можна приступати до установки самого telegram-cli
Виберемо каталог, де він знаходитиметься.
cd /usr/src

І отримаємо самі исходники
git clone --recursive https://github.com/vysheng/tg.git

тепер можна перейти в каталог та приступити до складання
cd ./tg
./configure

а ось перед make ми рекомендуємо відкрити файл ./tgl/mtproto-utils.c і закоментувати або видалити там рядка 101 і 115:
assert (0); // As long as nobody ever uses this code, assume it is broken.

В іншому випадку великий ризик отримати помилку ось такого виду
tgl/mtproto-utils.c:101: BN2ull: Assertion 0' failed. Received SIGNAL 

при першій же спробі запуску telegram-cli.
Ну і нарешті можна виконати make і випити чашечку кави, поки додаток буде збиратися.
Коли збірка буде завершена, потрібно запустити програму і ввести свій номер телефону, а також код підтвердження, який прийде на нього або в інший запущений клієнт telegram:
/usr/src/tg/bin/telegram-cli -k /usr/src/tg/tg-server.pub -W 

а потім вийти командою
quit
З цього моменту ви можете використовувати консольний telegram! Крім команди quit уваги заслуговує команда help, яка покаже всі інші команди. Нас в першу чергу цікавить відправлення повідомлень. Робиться це так:
msg Имя_Фамилия Деякий повідомлення

Зверніть увагу на те, що між ім'ям і прізвищем стоїть _ а не пробіл, а також на те, що ім'я завжди стоїть перед прізвищем.
А ось так буде виглядати виклик telegram-cli для відправки одного повідомлення і завершення
/usr/src/tg/bin/telegram-cli -k /usr/src/tg/tg-server.pub -U root -W -e "msg Иван_Иванов Привіт, Іване!"

Для зручності напишемо простенький скрипт
telegram.sh
#!/bin/bash
name=$1 #Имя_Фамилия
text=$2 #Повідомлення
path=/usr/src/tg
${path}/bin/telegram-cli -k ${path}/tg-server.pub -U root -W -e "msg $name $text" 
exit 0

обов'язково дамо йому права на виконання
chmod +x telegram.sh

і спробуємо запустити його з консолі. Зверніть увагу на те, що повідомлення швидше за все буде містити пробіли, тому його потрібно взяти в лапки:
./telegram.sh Иван_Иванов "Повідомлення з консолі"

Звичайно, до того як підключати аккаунт до консольному telegram, всі контакти користувачів бажано додати з мобільного або десктопного програми.
Справа залишається за малим: викликати наш скрипт з диалплана. Робиться це нескладно:
розширеннями => 333,n,Set(name=Иван_Иванов)
розширеннями => 333,n,System(/home/asterisk/telegram.sh ${name} "Вхідний дзвінок від ${CALLERID(num)}")

Приблизно ось так це буде виглядати на телефоні
image
Викликати скрипт має сенс ще до того, як формувати Dial: мобільник може бути зайнятий, вимкнений, а людина може просто не почути дзвінка, а інформація про нього тут же прийде в telegram.
Безумовно, якщо списки мобільних телефонів для переадресації вже зберігаються в базі даних, імена контактів telegram має сенс теж там зберігати.
Отже, менше ніж за годину ми отримуємо можливість відправки прямо з диалплана Asterisk номера абонента на мобільний телефон співробітника, і звичайно ж, ми можемо передавати будь-яку додаткову інформацію через цей шифрований канал зв'язку.
Автор тексту: спеціаліст по Asterisk компанії centos-admin.ru Олексій Дмитрієв
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.