Создание конференций из Telegram
Создавать конференции можно различными способами. Для создания конференций можно также использовать функционал телеграм – с помощью телеграм бота. Для создания бота необходимо инициировать диалог с ботом @botfather. После отослать ему команду /newbot. Бот запросит сначала имя (имя может быть неуникальным), и, далее – username (должно быть уникальным). Username должен заканчиваться на “bot” После создания бота […]
Создавать конференции можно различными способами. Для создания конференций можно также использовать функционал телеграм – с помощью телеграм бота.
Для создания бота необходимо инициировать диалог с ботом @botfather. После отослать ему команду /newbot. Бот запросит сначала имя (имя может быть неуникальным), и, далее – username (должно быть уникальным). Username должен заканчиваться на “bot”

После создания бота botfather пришлет token для доступа к HTTP API

На сервере с Asterisk создадим пользователя bot_ami установим минимально необходимые права доступа. Добавляем в general необходимые директивы.
nano /etc/asterisk/manager_custom.conf
[general]
enabled = yes
port = 5038
bindaddr = 0.0.0.0
webenabled = yes
httptimeout = 60
[bot_ami]
secret = asd097264684sdf
deny = 0.0.0.0/0.0.0.0
permit = 127.0.0.1/255.255.255.0
read = cdr,reporting,originate
write = reporting,originate

Для применения необходимо выполнить manager reload
asterisk -rv
asterisk>manager reload
Для проверки авторизации с данными созданной учетной записи на сервере необходимо выполнить
telnet 127.0.0.1 5038
После нажать два раза Enter и ввести
Action: login
Username: bot_ami
Secret: asd097264684sdf
При успешной авторизации должно появиться
Response: Success
Message: Authentication accepted

На сервере в директории /var/www/html создадим скрипт
<?php
ini_set('log_errors', 'On');
ini_set('error_log', 'php_errors.log');
$TOKEN = '111100000:AAFPVUd11111000000_1111111000000000';
$BOT_USERNAME = 'asterisk_test_2020_bot';
$webhook = 'https://server_ip/tg_bot.php';
$url = 'https://api.telegram.org/bot' . $TOKEN . '/';
// Настройки прокси
$proxy='23.23.179.254:3128';
//$auth='login:password'; //пароль, если прокси – с паролем, в формате 'login:password'
echo get($url.'setWebhook?url='.$webhook, $proxy);
if (($json = valid()) == false) { echo "Hi, =)"; exit(); }
$uid = $json['message']['from']['id'];
$first_name = $json['message']['from']['first_name'];
$ANSWER = "Салют, ".$first_name;
$text = $json['message']['text'];
switch($text){
case '/сonf':
$ANSWER = "Создание конференции";
confcall();
break;
case '/help':
$ANSWER = "Для создания конференции введите /conf номер";
break;
case '/start':
$ANSWER = "Выберите команду.
Список комманд для бота:
/start
/conf
/help
";
break;
}
sendMessage($uid,$ANSWER);
function valid() {
$request_from_telegram = false;
if(isset($_POST)) {
$data = file_get_contents("php://input");
if (json_decode($data) != null)
$request_from_telegram = json_decode($data,1);
}
return $request_from_telegram;
}
function sendMessage($chat_id,$text,$markup=null, $proxy, $auth=NULL)
{
return get($GLOBALS['url'].'sendMessage?chat_id='.$chat_id.'&text='.urlencode($text).'&reply_markup='.$markup.'&parse_mode=Markdown', $proxy);
}
function get($url, $proxy, $auth=NULL)
{
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_PROXY, $proxy);
//если proxy с авторизацией
if($auth){
curl_setopt($ch, CURLOPT_PROXYUSERPWD, $auth);
}
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
function confcall ($group, $num_conf) {
$host = "192.168.32.1";
$port = "5038";
$timeout = "10";
$user = "bot_ami";
$pass = "1234";
$sconn = fsockopen ($host, $port, $errno, $errstr, $timeout) or die ("Connection to $host:$port failed!");
//подключение
fputs ($sconn, "Action: Login\r\n");
fputs ($sconn, "Username: $user\r\n");
fputs ($sconn, "Secret: $pass\r\n\r\n");
//вызов и присоединение к конференции
fputs ($sconn,"Action: Originate\r\n");
fputs ($sconn,"Channel: Local/$number@from-internal\r\n");
fputs ($sconn,"Timeout: 15000\r\n");
fputs ($sconn,"Callerid: $invite <$num_conf>\r\n");
fputs ($sconn,"Application: ConfBridge\r\n");
fputs ($sconn,"Data: $num_conf\r\n");
fputs ($sconn,"Async: true\r\n\r\n");
fputs($sconn, "Action: Logoff\r\n\r\n");
sleep(2);
fclose ($sconn);
}
?>
Также про Telegram бота см. статью «Telegram Callback»

Остались вопросы?
Я - Компаниец Никита, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.
категории
- DECT
- Linux
- Вспомогательный софт при работе с Asterisk
- Интеграция с CRM и другими системами
- Интеграция с другими АТС
- Использование Elastix
- Использование FreePBX
- Книга
- Мониторинг и траблшутинг
- Настройка Asterisk
- Настройка IP-телефонов
- Настройка VoIP-оборудования
- Новости и Статьи
- Подключение операторов связи
- Разработка под Asterisk
- Установка Asterisk
VoIP оборудование
ближайшие курсы
Новые статьи
10 доводов в пользу Asterisk
Распространяется бесплатно.
Asterisk – программное обеспечение с открытым исходным кодом, распространяется по лицензии GPL. Следовательно, установив один раз Asterisk вам не придется дополнительно платить за новых абонентов, подключение новых транков, расширение функционала и прочие лицензии. Это приближает стоимость владения станцией к нулю.
Безопасен в использовании.
Любое программное обеспечение может стать объектом интереса злоумышленников, в том числе телефонная станция. Однако, сам Asterisk, а также операционная система, на которой он работает, дают множество инструментов защиты от любых атак. При грамотной настройке безопасности у злоумышленников нет никаких шансов попасть на станцию.
Надежен в эксплуатации.
Время работы серверов некоторых наших клиентов исчисляется годами. Это значит, что Asterisk работает несколько лет, ему не требуются никакие перезагрузки или принудительные отключения. А еще это говорит о том, что в районе отличная ситуация с электроэнергией, но это уже не заслуга Asterisk.
Гибкий в настройке.
Зачастую возможности Asterisk ограничивает только фантазия пользователя. Ни один конструктор шаблонов не сравнится с Asterisk по гибкости настройки. Это позволяет решать с помощью Asterisk любые бизнес задачи, даже те, в которых выбор в его пользу не кажется изначально очевидным.
Имеет огромный функционал.
Во многом именно Asterisk показал какой должна быть современная телефонная станция. За многие годы развития функциональность Asterisk расширилась, а все основные возможности по-прежнему доступны бесплатно сразу после установки.
Интегрируется с любыми системами.
То, что Asterisk не умеет сам, он позволяет реализовать за счет интеграции. Это могут быть интеграции с коммерческими телефонными станциями, CRM, ERP системами, биллингом, сервисами колл-трекинга, колл-бэка и модулями статистики и аналитики.
Позволяет телефонизировать офис за считанные часы.
В нашей практике были проекты, реализованные за один рабочий день. Это значит, что утром к нам обращался клиент, а уже через несколько часов он пользовался новой IP-АТС. Безусловно, такая скорость редкость, ведь АТС – инструмент зарабатывания денег для многих компаний и спешка во внедрении не уместна. Но в случае острой необходимости Asterisk готов к быстрому старту.
Отличная масштабируемость.
Очень утомительно постоянно возвращаться к одному и тому же вопросу. Такое часто бывает в случае некачественного исполнения работ или выбора заведомо неподходящего бизнес-решения. С Asterisk точно не будет такой проблемы! Телефонная станция, построенная на Asterisk может быть масштабируема до немыслимых размеров. Главное – правильно подобрать оборудование.
Повышает управляемость бизнеса.
Asterisk дает не просто набор полезных функций, он повышает управляемость организации, качества и комфортности управления, а также увеличивает прозрачность бизнеса для руководства. Достичь этого можно, например, за счет автоматизации отчетов, подключения бота в Telegram, санкционированного доступа к станции из любой точки мира.
Снижает расходы на связь.
Связь между внутренними абонентами IP-АТС бесплатна всегда, независимо от их географического расположения. Также к Asterisk можно подключить любых операторов телефонии, в том числе GSM сим-карты и настроить маршрутизацию вызовов по наиболее выгодному тарифу. Всё это позволяет экономить с первых минут пользования станцией.