Список форумов Asterisk Forum Asterisk Forum
The Asterisk Open Source PBX - Russian Community
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ПравилаПравила   ГруппыГруппы   ИзбранноеИзбранное    LinksСсылки   РегистрацияРегистрация 
 RSSRSS   ПрофильПрофиль   Войти и проверить личные сообщения   ВходВход 

Звонок с компьютера

 
Список форумов Asterisk Forum -> Asterisk IP PBX    вывод темы на печать
Предыдущая тема :: Следующая тема  
Автор Сообщение
Cruiser78



Зарегистрирован:
13.06.2011
Сообщения: 147
Откуда: Санкт-Петербург

Статус: Оффлайн 

СообщениеДобавлено: Пт Авг 28, 2015 17:10    Заголовок сообщения: Звонок с компьютера

Привет всем!

Прилаживаю к своим Астерискам дополнительный удобный функционал. А именно - возможность осуществлять исходящие звонки из разных WEB-форм. Есть такой старенький, но вполне работоспособный плагин "Asterisk Click2Dial" для FireFox'а. Поставил его (на линуксовом компьютере), настроил его, завел в астерисковом серверве в файле /etc/asterisk/manager.conf соответствующего пользователя. Проверил, работает... Нравится...

А теперь вопросы:

1. Если у меня Астериск обслуживает несколько IP-телефонов, то сколько пользователей я должен заводить в manager.conf? Достаточно одного аккаунта на всех пользователей, или надо для каждой пары компьютер-телефон заводить своего персонального юзера? Я не смог нагуглить ответ на этот простой вопрос.

2. Аналогичный плагин есть и для Google Crome, как я понимаю. Но... Аппетит то приходит во время еды и вот вопрос - а есть ли для той же винды (начиная с XP) просто отдельная задачка, которая висит в трее и работает аналогично этим плагинам? То есть выделенный кусок текста с цифрами (неважно где) считает телефонным номером и отдает его в * для установления соединения... Здесь мне тривиально не хватает кругозора. Код то примитивный, а задачка - актуальна. Зачем привязываться к конкретным плагинам, когда можно всё сделать простым сервисом в трее? Ну и аналогичный вопрос для Linux'а с GNOME-3...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
virus_net



Зарегистрирован:
05.10.2014
Сообщения: 377
Откуда: Москва

Статус: Оффлайн 

СообщениеДобавлено: Сб Авг 29, 2015 08:31    Заголовок сообщения:

Cruiser78 писал(а):
Проверил, работает... Нравится...

Хакерам тоже понравится, уж поверьте.
Asterisk config manager.conf
Цитата:
Note that activating the manager API opens a TCP port. Make sure you know what you are doing.

Цитата:
Security tips

    No encryption is used, even the password is sent in plaintext. Notes: However you can use md5 challange-and-reply for a slightly safer means to transmit the password; Asterisk 1.4 will come with SSL encryption)
    Don't enable it on a public IP.
    Use http://www.stunnel.org/ or a SSH tunnel
    Watch out with management programs with direct interface to the manager.
    Limit the privileges per user (especially the system!)

Открывая прямой доступ к AMI и пускание туда юзеров = открытие потенциальной дыры для жаждущих позвонить на остров Святой Елены.
НЕ РЕКОМЕНДУЮ ДЕЛАТЬ ЭТОГО

Данный функционал можно реализовать путем собственного API и плагина для браузера. Да это сложнее, но надежно и безопасно.

1. Достаточно одного.
Один аккаунт в manager.conf может использоваться многократно на разных клиентах, т.к. он нужен лишь для прохождения аутентификации.
2. Под Windows: не слышал никогда о такой проге.

_________________
mega-net.ru - IT аутсорсинг
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора Телефон
Cruiser78



Зарегистрирован:
13.06.2011
Сообщения: 147
Откуда: Санкт-Петербург

Статус: Оффлайн 

СообщениеДобавлено: Сб Авг 29, 2015 16:15    Заголовок сообщения:

Ну, хакерам добраться до моего AMI сложновато будет. Так как * стоит в локальной сети и обслуживает только локальных юзерей. Доступа к Астериску из внешнего мира у меня нет. Ну, кроме как через транки на VoIP-провайдеров. Но это несколько иное. Все остальные IP-адреса тривиально рубятся в iptables. Поэтому здесь риск минимален.

Обычный же юзер зажат в своем контексте, а там тоже нет никаких маршрутов на "каймановы острова". То есть в моем Астериске вообще нет никаких подобных маршрутов. Куда можно звонить - прописано явно. А не попал в разрешающую маску - обломс...
Равно как и подставить свой "девайс" вместо легального - тоже обломится. У меня все клиенты (шлюзы и софтфоны, если есть) жестко прибиты к их IP-адресам. Так что здесь я, в определенной мере, спокоен.

Собственный API и плагин для броузера? Стар я уже писать собственный код. Стар и ленив велосипеды изобретать. Но те полтора десятка строчек кода на PHP, с помощью которых и осуществляется такой дозвон не дают мне покоя. Ведь сам по себе функционал очень прост. Получить выделенный на экране текст, оставить в нем только цифры и позвонить. Зачем такое привязывать к какому-то определённому браузеру? Гораздо универсальнее иметь обычное приложение, которое будет осуществлять данный функционал. И вот почему его никто не написал... По моему, для корпоративных Астерисков это вполне востребованная задача.

Ведь те же самые 1С-ники такой функционал реализуют, но только в рамках 1С. А если ты вышел из этих рамок? Для Хрома есть аналогичный плагин. Для FireFox'а и Thunderbird'a тоже реализовано. В общем, какой-то зоопарк получается. А если по ряду причин юзеру надо работать с IE и оутлоком? Как там такое реализовать?

Но это всё - вопросы риторические, ответа не требующие. А вот то, что ответа требует:
- То, что может сделать пользователь в открытом ему AMI определяется следующими настройками (у меня пока так):
Код:
read = system,call,log,verbose,command,agent,user,config,originate
write = call,log,originate

Естественно, что чем меньше ему разрешено, тем меньше и нагадит. То есть надо реализовать принцип минимума полномочий. Отсюда - какие именно полномочия для осуществления Call2Dial, набора номера на компьютере в этом перечне избыточны? Что именно следует убрать из этого широкого перечня. Ну, понятно, что "originate" убирать не стоит, на ней всё и построено. А вот остальные - насколько критичны? Или это надо подбирать экспериментальным путем?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
virus_net



Зарегистрирован:
05.10.2014
Сообщения: 377
Откуда: Москва

Статус: Оффлайн 

СообщениеДобавлено: Вс Авг 30, 2015 06:55    Заголовок сообщения:

Вы спойлере выше в Security tips уже сказано про system.
Остальное расписано прямо в manager.conf:
Цитата:
; Authorization for various classes
;
; Read authorization permits you to receive asynchronous events, in general.
; Write authorization permits you to send commands and get back responses. The
; following classes exist:
;
; all - All event classes below (including any we may have missed).
; system - General information about the system and ability to run system
; management commands, such as Shutdown, Restart, and Reload.
; call - Information about channels and ability to set information in a
; running channel.
; log - Logging information. Read-only. (Defined but not yet used.)
; verbose - Verbose information. Read-only. (Defined but not yet used.)
; agent - Information about queues and agents and ability to add queue
; members to a queue.
; user - Permission to send and receive UserEvent.
; config - Ability to read and write configuration files.
; command - Permission to run CLI commands. Write-only.
; dtmf - Receive DTMF events. Read-only.
; reporting - Ability to get information about the system.
; cdr - Output of cdr_manager, if loaded. Read-only.
; dialplan - Receive NewExten and VarSet events. Read-only.
; originate - Permission to originate new calls. Write-only.
; agi - Output AGI commands executed. Input AGI command to execute.
; cc - Call Completion events. Read-only.
; aoc - Permission to send Advice Of Charge messages and receive Advice
; - Of Charge events.
; test - Ability to read TestEvent notifications sent to the Asterisk Test
; Suite. Note that this is only enabled when the TEST_FRAMEWORK
; compiler flag is defined.
;
;read = system,call,log,verbose,agent,user,config,dtmf,reporting,cdr,dialplan
;write = system,call,agent,user,config,command,reporting,originate

_________________
mega-net.ru - IT аутсорсинг
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора Телефон
gik



Зарегистрирован:
09.06.2010
Сообщения: 49

Статус: Оффлайн 

СообщениеДобавлено: Пн Авг 31, 2015 08:59    Заголовок сообщения:

 Cruiser78 @ Сб Авг 29, 2015 18:15 писал(а):

Но это всё - вопросы риторические, ответа не требующие.

Вы недооцениваете риск открытия порта AMI. Из-за небезопасности таких плагинов они и не получили и не получат широкого распространения.

_________________
http://www.myipats.ru
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора Skype Name
Cruiser78



Зарегистрирован:
13.06.2011
Сообщения: 147
Откуда: Санкт-Петербург

Статус: Оффлайн 

СообщениеДобавлено: Пн Авг 31, 2015 14:21    Заголовок сообщения:

Может быть и недооцениваю. Но... Какую угрозу несут такие настройки AMI:
Код:

[Dialer]
secret = XXXXXXX
deny=0.0.0.0/0.0.0.0
permit=LOCALNET-IP
read = call,log,verbose,agent,user,reporting
write = call,originate

То есть, юзер может только позвонить (originate) по заданному номеру. Но он и так по этому номеру может позвонить. Юзер может перевести вызов. Но он и так может перевести вызов со своего телефона. Юзер может отклонить вызов. Но он и так это может сделать со своего телефона. А что он еще может сделать в рамках данных полномочий AMI? По моему - ничего, кроме того, что он может сделать со своего телефона.
Единственное, что мне не очень понравилось - это возможность явно, у вызывающего, задать контекст, из которого данный юзер начнет работать. То есть, вроде как возможно осуществить вызов из иного контекста с большими возможностями. Хотя, не знаю... Это надо попроверять, из какого именно контекста будет идти originate-вызов. Из заданного во "внутренних номерах" или навязанного.

Так что большого риска я не вижу. Надо только правильно распоряжаться с предоставляемыми полномочиями. Ведь никто же (кроме альтернативно одаренных) не выставляет в Интернет хост с беспарольным рутом...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
virus_net



Зарегистрирован:
05.10.2014
Сообщения: 377
Откуда: Москва

Статус: Оффлайн 

СообщениеДобавлено: Вт Сен 01, 2015 05:50    Заголовок сообщения:

Cruiser78 писал(а):
Так что большого риска я не вижу.

Как скажете. Грабельки ждут Вас Wink

Cruiser78 писал(а):
Какую угрозу несут...

Вероятность появления какой либо заразы, на компе пользователя, которая воспользуется данным функционалом, выше чем зараза для телефонного аппарата.
Вероятность того, что когда нить Asterisk`у дадут реальник или пробросят порты (случайно/умышленно), но абсолюно позабудут по открытый AMI.
Вероятность опечатки при правки конфига.
Вероятность .... и т.п.

Дело ваше, решение ваше. Наше дело предупредить, мы предупредили.
Каждый сам для себя оценивает риски. Когда я подходил к данному вопросу, я изучил доку, затем печальный опыт в Инете и затем оценил риски для себя. Посему пошел сложным путем и AMI доступен только на 127.0.0.1 и никак иначе, и никакой пользователь никак и никогда не будет иметь прямого подключения к AMI.

_________________
mega-net.ru - IT аутсорсинг
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора Телефон
gik



Зарегистрирован:
09.06.2010
Сообщения: 49

Статус: Оффлайн 

СообщениеДобавлено: Вт Сен 01, 2015 09:17    Заголовок сообщения:

read = call,log,verbose,agent,user,reporting
Позволяет читать через порт все что происходит в астере и анализировать содержимое, мне кажется этого достаточно.

_________________
http://www.myipats.ru
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора Skype Name
Cruiser78



Зарегистрирован:
13.06.2011
Сообщения: 147
Откуда: Санкт-Петербург

Статус: Оффлайн 

СообщениеДобавлено: Вт Сен 01, 2015 19:17    Заголовок сообщения:

Цитата:
ead = call,log,verbose,agent,user,reporting
Позволяет читать через порт все что происходит в астере и анализировать содержимое, мне кажется этого достаточно.

Вот мне и интересно, что здесь явно лишнее. Для того же Click2Dial.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
virus_net



Зарегистрирован:
05.10.2014
Сообщения: 377
Откуда: Москва

Статус: Оффлайн 

СообщениеДобавлено: Ср Сен 02, 2015 05:40    Заголовок сообщения:

Вот мы и ждем пока вы сами это выясните и тут напишите.
В чем проблема выяснить это самостоятельно ?

_________________
mega-net.ru - IT аутсорсинг
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора Телефон
B0r1s



Зарегистрирован:
27.11.2008
Сообщения: 103

Статус: Оффлайн 

СообщениеДобавлено: Вс Окт 04, 2015 11:08    Заголовок сообщения:

- посмотрел через какой транк уходят звонки в мир
- сделал оригинейт на этот канал
- при ответе зарулил на MusicOnHold.
- ???
- профит Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
whoim



Зарегистрирован:
29.05.2014
Сообщения: 49

Статус: Оффлайн 

СообщениеДобавлено: Пн Ноя 30, 2015 13:03    Заголовок сообщения:

Что мешает на php одной строчкой проверять \ аунтифицировать, другой чекий номер, третьей создавать call-файл?
Или подобным образом воспользоваться ajam => originate?

Только свое простейшее апи. А пользоваться им напрямую с веб-странички. Безо всяких плагинов и обращений к ами.
Или написать простейший клиент на лазарус, который будет просто дергать апи.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора Skype Name
Cruiser78



Зарегистрирован:
13.06.2011
Сообщения: 147
Откуда: Санкт-Петербург

Статус: Оффлайн 

СообщениеДобавлено: Вт Окт 11, 2016 09:07    Заголовок сообщения:

извините за долгий ответ.

> Только свое простейшее апи. А пользоваться им напрямую с веб-странички. Безо всяких плагинов и обращений к ами.

С чьей именно веб-странички??? Каким именно образом я могу вставить свой код в чужую страницу, где телефоны опубликованы? Или проанализировать содержимое пришедшего письма на предмет телефонного номера? Я не собственный же сайт (с ним всё просто) делаю, а рабочее место пользователя. С которого он может позвонить по найденному в интернете телефонному номеру. Мои сайты, при этом, вообще никак не задействованы. Это же очевидно...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
virus_net



Зарегистрирован:
05.10.2014
Сообщения: 377
Откуда: Москва

Статус: Оффлайн 

СообщениеДобавлено: Ср Окт 12, 2016 06:14    Заголовок сообщения:

Cruiser78 писал(а):
Каким именно образом я могу вставить свой код в чужую страницу, где телефоны опубликованы?

Элементарно Ватсон ! Smile
С помощью плагина в браузер можно вставить что угодно на любую страницу.
Примеры подобных плагинов:
chrome click2dial plugin
firefox click2dial plugin
Вот и сделайте свой плагин, который по клику на телефон будет обращаться к вашему API и ваши "сайты" сразу станут быть задействованными - это же очевидно.

_________________
mega-net.ru - IT аутсорсинг
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора Телефон
Cruiser78



Зарегистрирован:
13.06.2011
Сообщения: 147
Откуда: Санкт-Петербург

Статус: Оффлайн 

СообщениеДобавлено: Ср Окт 12, 2016 13:00    Заголовок сообщения:

ключевое слово - без плагинов...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
virus_net



Зарегистрирован:
05.10.2014
Сообщения: 377
Откуда: Москва

Статус: Оффлайн 

СообщениеДобавлено: Чт Окт 13, 2016 05:59    Заголовок сообщения:

Ключевой ответ:
без каких либо плагинов, к чему либо, задачу не реализовать, т.к.:
Cruiser78 писал(а):
С которого он может позвонить по найденному в интернете телефонному номеру.

Если речь идет просто о клике по номеру на любой странице, т.к. какой то код все равно должен быть, который ищет номера и вставляет соответствующую ссылку.

_________________
mega-net.ru - IT аутсорсинг
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора Телефон
Список форумов Asterisk Forum -> Asterisk IP PBX Ответить на тему
Страница 1 из 1

Добавить в Избранное

 
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
You cannot attach files in this forum
You cannot download files in this forum