Обновить
65
Дмитриев Сергей@antirek

Пользователь

53
Подписчики
Отправить сообщение

Как реализовать свою чат-платформу?

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели6.3K

Рано или поздно вы решите написать чат. Да, свой чат. И, возможно, вспомните про эту статью.

Изложу свое понимание, видение на построение системы любого чата, будь то чат между 2 пользователями, групповой чат (открыто и закрытого типа), чат с контактом в другом мессенджере, канал.

Все изложенное субъективно. Искал разные источники, анализировал другие чат-платформы. Надеюсь, будет полезно.

И так.

Что такое чат? Мы каждый день общаемся в чатах, чаты в разных приложениях похожи и не похожи одновременно.

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

- Чат - это хронологическая лента сообщений.

- Сообщение - некая единица контента (текст, файл, картинка, аудио, видео, стикер, оповещение, ...)

- также у сообщения есть дата-время создания сообщения.

- У сообщения всегда есть отправитель.

- В чат сообщения могут добавлять разные отправители (пользователи, боты, система).

- В чате есть участники. По сути - это подписчики, которые подписаны на получение новых сообщений в чате.

Читать далее

Chotto UI — набор компонентов для чатов на Vue3

Уровень сложностиПростой
Время на прочтение2 мин
Охват и читатели4.6K

Пытаясь подражать слогу классика, можно сказать, что "все чаты в целом одинаковы, но каждый реализует что-то свое".

так ли это? посмотрим.

TL, DR: далее рассказываю, что мы делаем свой UI набор компонентов для чата, даю ссылки и приглашаю присоединяться к проекту.

Читать далее

Антиспам бот для телеграм группы на Gigachat2

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели2.8K

11 марта решил сделать антиспам бота в одну из моих групп в телеграм.

что за группа?

1. группа открытая, активность небольшая

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

3. новые "участники" умеют проходить капчу

плюс еще было желание меньше уделять времени админской кухне:

Читать далее

filebump — хостинг файлов по API / свой локальный upload.io

Время на прочтение3 мин
Охват и читатели5.4K

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

И делать в каждом сервисе свой сервер, где можно было бы получить ссылку на файл, передать через очередь, отправить, обработать - может быть не надо?

В одном сервисе - это загрузка аватарок, в другом - это различные пользовательские файлы, по сути в транзите, в третьем - это файлы, загружаемые для конфигурирования сервиса, используются время от времени.

В каждом сервисе надо было делать директорию для файлов, следить чтобы там было достаточно места, выставить права на запись, монтировать или синхронизировать с хранилищем по необходимости.

Поэтому появился filebump - простой http сервер, где мы можем загружать, хранить и скачивать файлы.

Читать далее

Запись разговоров на мобильных

Время на прочтение7 мин
Охват и читатели92K

Тут на МВидео выложили статью про 10 лучших приложений для записи звонков на смартфонах, а на 4pda выложили статью, что Гугл совсем запрещает запись звонков на Андроиде. Тема мне близка, т.к. недавно занимался разработкой приложения для записи звонков и все вышло не так как хотелось. Что и как - далее подробно.

* Цель статьи рассказать свой путь и принять обратную связь и ваши идеи, мысли, размышления.

Кто я? Что я? Я разработчик, занимаюсь разработкой сервиса виртуальной АТС для корпоративных клиентов. И, конечно, есть клиенты, у которых есть не только офисные работники, которым достаточно поставить стационарные SIP-телефоны или раздать в офисе/складе/магазине SIP-DECT-трубки.

В чем проблема?

Есть менеджеры "в полях". Которые весь день на объектах, в разъездах. И постоянно на созвоне. На созвоне с клиентами, партнерами, офисным бекендом. С точки зрения шефа эти менеджеры на мобильниках немного бесконтрольны. И хотелось бы знать с кем они разговаривают, как долго и о чем. Чисто хотя бы чтобы после разруливать конфликты проще было, кто что кому обещал или нет сделать. Обычно запись звонка, прослушанная обеими сторонами совместно, резко проясняет ситуацию. Хотя по разному бывает? )))

В общем, служебную запись звонков менеджеров в разъездах сделать не повредит.

Какие варианты решения? Разные операторы связи и виртуальных АТС предлагают для этих целей и FMC, и SIP-клиент, более продвинутые - ВАТС сразу с симками.

Какой еще есть вариант?

И, конечно, можно использовать приложение для записи. Для корпоративных клиентов есть облачные сервисы. Вы ставите на смартфон приложение, которое записывает звонок и передает его в облако. Затем вы смотрите в веб-интерфейсе отчеты по звонкам и слушаете записанные звонки со всех смартфонов подключенных к сервису. Удобно? Вполне.

Читать далее

Запись разговоров на астериск и их распознавание на Yandex.Speech

Время на прочтение3 мин
Охват и читатели18K

Небольшой проект. Простая реализация. Заметка по диалплану астериск, командам консоли и АПИ распознавания Яндекса. Вы прочитаете и не наступите на мои грабли, я прочитаю через полгода-год и вспомню, что делал.

Задача: получать текстовое представление разговоров, записанных на астериске.

Читать далее

Network diagram as code / Схема сети как код

Время на прочтение6 мин
Охват и читатели19K
В последние пару лет стал больше заниматься документацией. Написать поясняющий текст о том, как работает та или иная система — в целом, это достаточно просто. Нарисовать схему, на которой будут отображены все ключевые объекты, связи между этими объектами, тоже вполне легко.

Но самый проблемный момент — это поддерживать эту документацию в актуальном состоянии. И ладно бы текст, но схемы… Т.к. вся документация онлайн, т.е. в формате html, то к тексту прилагаются картинки gif/jpeg/png, на которых собственно изображены схемы. А схемы рисуются в различных программах типа Visio или онлайн-сервисах а-ля draw.io. Затем экспортируешь схему в графический формат и прилагаешь к html. Все просто.

В чем проблема?
Читать дальше →

Замена Action URL & URI в SIP-телефонах или управление via websockets?

Время на прочтение4 мин
Охват и читатели7.2K
SIP-телефоны. Компьютеры с трубкой. По идее с ними очень многое можно что делать, а их используют только для звонков :-)

Недавно был на конференции АстерКонф, и там вендоры рассказывали о своих телефонах, не будем никого выделять, все хороши, где-то лучше, где-то дешевле, по сути исполняют одно и то же.

Кто-то из вендоров улучшает качество звука, кто-то прикручивает планшет с андроидом, кто-то пробует добавлять какие-то приложения. И все для того, чтобы мы устанавливали эти телефоны на рабочие столы.

И может быть телефоны хорошие кандидаты на роль пульта в рамках мира IoT: нажал на кнопку — получил результат. И, на мой скромный взгляд, не хватает простого способа подключать телефоны к своему «Управлятору». В рамках этой статьи я хочу показать как это могло бы выглядеть по-простому на схеме и видео-демонстрации.

А вы в комментариях поделитесь, пожалуйста, что может быть где-то уже подобное реализовано или дополните своими предложениями и мыслями.

Sonata — SIP provisioning server

Время на прочтение5 мин
Охват и читатели6.9K

Не знаю с чем сравнить provisioning. Может быть с котом? Вроде можно и без него, но с ним немного лучше. Особенно, если он работает ))


Постановка проблемы:


  1. Хочу настраивать SIP-телефоны быстро, просто, безопасно. При установке телефона и уж тем более при его переконфигурировании.
  2. Многие вендоры имеют свои форматы конфигов, свои утилиты для генерации конфигов, свои способы защиты конфигов. А разбираться с каждым не очень хочется.
  3. Многие решения по provisioning, а) ориентированы на одного вендора или одну телефонную систему, б) достаточно громоздко реализуются, куча скриптов, параметров, бр-р...

По пункту 3 сделаю комментарий, что есть отличные системы провижна для FreePBX, для FusionPBX, для Kazoo, где в открытом доступе есть шаблоны для телефонов различных вендоров. Есть коммерческие решения, где также можно настроить в модуле провижна работу телефонов разных производителей, например, АТС Yeastar.


На Хабре также полно рецептов как настроить аппараты различных вендоров: раз, два. Но как говорится, у всех систем есть фатальный недостаток. Поэтому сделаем свой велосипед.

Читать дальше →

Обзор SIP-телефонов Digium A20 и A25

Время на прочтение9 мин
Охват и читатели3.4K

Digium A20, Digium A25


В феврале 2018 компания Digium, разработчик open-source проекта Asterisk, представила телефоны А серии, предназначенные для работы именно с Asterisk. Даже странно, что столько лет Digium воздерживался от производства под своим брендом обычных SIP-телефонов. А уже в августе 2018 компания Digium объявила о слиянии с Sangoma, ведущим производителем оборудования для Asterisk. Совпадение? Вряд ли, конечно.


Линейка телефонов серии А получилась, на мой взгляд, вполне конкурентной, со своими фишечками. Серия на текущий момента включает в себя четыре модели — A20, A22, A25, A30. Давайте посмотрим подробнее на телефон A20 — обычную лошадку начального уровня и А25 — телефон среднего уровня.


Читать дальше →

Телеграм: отправка сообщений на номер мобильного в чат с ботом

Время на прочтение2 мин
Охват и читатели77K

Как и многие использую астериск для организации телефонной связи. У абонентов кроме их внутреннего номера есть также номер мобильного, куда совершаются переадресации, а также рассылаются смс в случае пропущенного вызова.


Традиционно уведомления о пропущенных звонках отправлялись или на емейл, или на мобильный в виде смс. С появлением Телеграм стало возможным отправлять сообщения в мессенджер. Одна незадача: мы не можем отправить сообщение именно на номер мобильного.


А нам это удобнее, т.к. номера мобильных у нас уже есть (у нас есть сотни абонентов, желающих получать уведомления :), а chat id еще найти надо, да еще и для каждого свой.


Решение: небольшой чат-бот.

Просто ярлычок на сайте

Время на прочтение1 мин
Охват и читатели2.5K
Знаете ведь, что есть такое маленькое дело, которое и делать-то недолго и просто, но вот почему-то оно висит недоделанное долго. И в определенный день решаешь, все, сегодня сделаю. И делаешь. И живешь спокойно дальше.


Так у меня было с ярлычком для сайта. Коллега предложил добавить на сайт небольшой яркий ярлычок, чтобы по нему кликали и переходили на страницу «Оставить заявку в техническую поддержку». Пользователи и раньше могли оставить заявку в техническую поддержку через эту страницу. И телефон указан. Но хотелось, чтобы был такой ярлычок всегда сбоку. И всегда под рукой.
Читать дальше →

Ryo CDR: еще один asterisk CDR viewer

Время на прочтение3 мин
Охват и читатели19K
Для астериска, наверное, только ленивый не писал cdr viewer. Таких решений полно: asterisk cdr viewer, agcdr,  asterisk cdr viewer mod (статья на Хабре), cdr-stats и еще много других, которых я не знаю.

Но не требовалась функциональность крутых фильтров, сортировок-группировок, а нужен просто просмотр данных по звонкам за день, возможность прослушивать запись разговора и защита паролем. Чтобы бизнес-тетушка, сидя на заднем кресле автомобиля, пока ее муж, объезжая вечерние пробки, везет ее домой, могла взять планшет и посмотреть данные по звонкам своих сотрудников и быстро прослушать записи разговоров.

Недолго поискав по гитхабу, я наткнулся на webcdr. Немного обработал его напильником: убрал лишнее, добавил http basic авторизацию и получил необходимый вариант cdr viewer'а. C привычным тетушке веб-интерфейсом в стиле Twitter Bootstrap. Тетушка довольна.

image

Далее немного деталей.

Читать дальше →

Asterisk: ngrep, sipgrep, sngrep, protocol diagram

Время на прочтение2 мин
Охват и читатели29K
Это небольшая заметка о паре утилит, которые использую время от времени для работы с астериском (для отладки телефонии и просмотра SIP пакетов). Многие коллеги не знают о более простых утилитах, которые могли бы сэкономить минутку-другую рабочего времени.

Далее речь пойдет о ngrep, sipgrep, sngrep, js-sequence-diagrams
Читать дальше →

Asterisk: каждый звонок как прыгающий мячик

Время на прочтение2 мин
Охват и читатели13K
В эти предпраздничные дни, когда отчасти должен проводить время на работе, но изменения в рабочие системы уже не вносятся, ибо «скоро праздники, кому нужны твои свежие баги?», можно заняться вырезанием звездочек и снежинок из бумаги и маленькими экспериментами.

В общем, мы с вами не раз слышали такое выражение: «мой звонок пинали как мячик от оператора к оператору, и в итоге отфутболили», а может даже сами когда-то такое сказали в сердцах. И подумалось, а ведь если представить звонок как скачуший мячик от стенке к стенке, а так как у нас несколько десятков звонков бывает на астериске одномоментно, то это должно выглядеть как минимум забавно.

Что получилось? Далее детали и небольшое видео.

image
Читать дальше →

Asterisk + LUA: быстрый старт

Время на прочтение6 мин
Охват и читатели31K
За последний год на Хабре появилось несколько статей про использование диалплана lua в asterisk (раз, два, три, четыре). Это достаточно интересный способ написания гибких и мощных диалпланов. Но чтобы попробовать такой способ написания диалпланов надо потратить некоторое количество времени: установить нужные библиотеки, пересобрать с необходимыми опциям астериск.

Вдобавок у многих пользователей asterisk'а разный уровень подготовки: кто-то ближе к системному администрированию или даже к традиционной телефонии, чем к программированию. Плюс специфика телефонии — лучше лишний раз незнакомыми экспериментами не нагружать работающие системы, а проводить тесты и эксперименты на своем ноутбуке — приходится захламлять систему. В общем, есть немало причин «отложить на потом».

В данной статье я хочу показать всем желающим и работающим с астериском, как, используя docker, можно быстро ощутить вкус гибких сценариев lua. А уж затем решить стоит этим пользоваться дальше на практике или нет. (Кому неинтересно читать, а интересно смотреть и слушать — в конце текста 6-минутное видео с основными моментами и результатом.)


Читать дальше →

Быстрые помощники для вашего Asterisk'а

Время на прочтение5 мин
Охват и читатели18K
Эта статья подводит промежуточный итог в разработке моих приложений для asterisk'а. Все началось в новогодние праздники, когда мне захотелось сделать быстрый голосовой набор на asterisk'е. Затем был реализован поиск направления по номеру звонящего (полезная штука для входящих на номера 8-800). Затем была пара заказных проектов. А недавно еще и LCR для asterisk. Все эти приложения разработаны с использованием библиотеки ding-dong, которая позволяет работать с AGI (Asterisk Gateway Interface) в node.js приложении.

Далее я хотел бы показать, что используя node.js и ding-dong, можно быстро разрабатывать полезные приложения для астериска.
Читать дальше →

Маршрутизация по наименьшей стоимости (LCR) в Asterisk

Время на прочтение2 мин
Охват и читатели12K
Тема актуальная. Для меня как для корпоративного телефониста лет пять-десять назад всегда была задача настроить функцию ARS на Panasonic TDA100/200/600 или LCR на LG LDK100/300. В общем, сделать так чтобы подешевле звонить было. Но времена меняются, и сейчас у многих компаний используется Asterisk, а я уже не настраиваю УПАТС Panasonic, LG и прочие.

В Астериске, всем известно, вся маршрутизация делается в диалплане. Но если у оператора много направлений и цена на каждое из них различна, то в диалплане получаются портянки на несколько страниц. Решения разные: кто-то разбивает по разным файлам диалплана, использует макросы, кто-то подключает к работе БД, кто-то выносит на отдельный сервис.

Я хочу поделиться своим решением: вынести поиск оператора с наименьшей стоимостью заданного направления в стороннее приложение на node.js, с которым Астериск взаимодействует посредством AGI.


Читать дальше →

Разработка архитектуры системы через сервисно-ресурсную модель

Время на прочтение5 мин
Охват и читатели17K
Хочу предложить немного обсудить тему сервисно-ресурсной модели и спросить о необходимости разработки инструмента для использования сервисно-ресурсной модели в проектировании, разработке и дальнейшей эксплуатации систем.

Исходная позиция: разрабатываю и эксплуатирую с коллегами онлайн-систему, которая обслуживает сотни клиентов. Наша система работает на нескольких серверах, использует несколько БД, использует очереди сообщений, внешние сервисы для отправки смс и почты. Типичная ситуация? Вполне.

Что хочу получить?

Хочу получить более прозрачную систему для охвата всей картины подшефного хозяйства, чтобы видеть узкие места, видеть зависимости одних частей системы от других, знать, что ssh на одном сервере крайне важен для «вон того маленького обработчика», который работает по ночам на другом сервере.
Читать дальше →

Отправка смс через шлюз Openvox VoxStack

Время на прочтение2 мин
Охват и читатели18K
Статья, вероятно, будет интересна только обладателям GSM шлюзов OpenVox линейки VoxStack, настоящим и потенциальным. Известно, что внутри этих шлюзов находится полноценный Asterisk. Который имеет дополнительные команды в AMI и CLI для отправки смсок.



[Фото из топика с хорошим описанием функционала этих GSM шлюзов]

Далее хочу представить вам две небольшие наработки на node.js, которые позволили мне сделать отправку смс через VoxStack более удобной.

Читать дальше →
1

Информация

В рейтинге
Не участвует
Откуда
Красноярск, Красноярский край, Россия
Дата рождения
Зарегистрирован
Активность