Для рабочих целей есть потребность учитывать совершённые за наличные расходы. Раньше это делалось вручную - вписывался что куплено и по какой цене в телеграмм-чатик, потом вручную переносилось в табличку. Потом перенос в табличку автоматизировался с помощью google-api, но т.к. товаров в чеке могло быть много, поэтому список из 10 (например) позиций сокращался до какой-то общей типа "инструменты" (например), что не особо годилось для возможной дальнейшей аналитики. Как следующий этап развития, возникла идея получать данные о товарах с помощью qr-кода и API ИФНС.
![](http://webcf.waybackmachine.org/web/20230928143753im_/https://habrastorage.org/getpro/habr/hub/e67/236/b03/e67236b03b0196043893d0b6dbc27de8.png)
Asterisk *
Свободное решение компьютерной телефонии
Новости
Как подружить Asterisk с потоковым распознаванием от Яндекс SpeechKit через EAGI и Python
Опять Telegram и IPATC (записи разговоров контакт центра)
![](https://webcf.waybackmachine.org/web/20230928143753im_/https://habrastorage.org/r/w780/getpro/habr/upload_files/7af/2fe/719/7af2fe71930c98b55a79b8af3eec5b7a.jpg)
Передача записей звонков в Telegram или использование мессенджера вместо CRM для оперативного контроля за операторами колл-центра на базе IPАТС Asterisk
Прыжок сквозь время или Как обновиться с Asterisk 11 до 18
![](https://webcf.waybackmachine.org/web/20230928143753im_/https://habrastorage.org/r/w1560/getpro/habr/upload_files/7dd/277/bf8/7dd277bf84478a2575e0bee0c2307518.png)
Однажды мы решили обновить Asterisk с 11 версии до 18. История получилась интересной и поучительной. Расскажем о полученном преимуществе, возникших трудностях и способах их решения.
Истории
Простой детектор FAS для Asterisk
FAS (False Answer Supervisor) это техника используемая различными провайдерами VoIP для увеличения длительности и соответственно стоимости звонка.
FAS бывает следующих видов:
Ответ на звонок и трансляция в линию звонящего тишины или гудков
Добавление тишины или записи разговора после того как тот кому звонили повесил трубку.
Округление значения длинны звонка в биллинге оператора
Несмотря на то что вариант 1 является самым простым для детектирования он используется очень часто.
Проводим GPON от МГТС в свой сервер на Linux + своя мини-атс на asterisk
![](https://webcf.waybackmachine.org/web/20230928143753im_/https://habrastorage.org/r/w1560/getpro/habr/upload_files/0cd/ebc/330/0cdebc330e410640484254d6b5df6a43.png)
На Хабре и на профильных форумах (типа 4pda) уже достаточно статей на тему того, как отказаться от GPON-роутера от МГТС и вывести интернет напрямую в свой роутер.
Большинство статей описывают опыт подключения к роутерам Mikrotik, прошивок SFP-GPON терминалов, странных хаков по выдёргиванию настроек и прочего. Мне же это всё не подошло и я пошёл иным путём. Требования я составил следующие:
Делаем отказоустойчивый Asterisk realtime
![](https://webcf.waybackmachine.org/web/20230928143753im_/https://habrastorage.org/r/w780/getpro/habr/upload_files/221/fdd/c64/221fddc642bc3f159077722b0f2bf437.jpg)
Если вы спросите у прожжённых системных администраторов, используют ли они realtime‑конфигурацию в Asterisk, с вероятностью 90% ответ будет отрицательный. В качестве обоснования, скорее всего, услышите «При недоступности источников данных телефония станет неработоспособной». Если интересно узнать, как мы обошли это ограничение, читайте дальше.
Модернизация FreePBX на Raspberry PI
Продолжение экспериментов над установленной и рабочей системы из статьи: "Raspberry Pi + FreeBPX(asterisk) + Mikrotik = АТС мини с переходом на PJSIP (sipnet, zadarma, multifon)", подключение telegram бота.
FusionPBX ядро телефонии. Подключение IssabelPBX и FreePBX
![](https://webcf.waybackmachine.org/web/20230928143753im_/https://habrastorage.org/r/w1560/getpro/habr/upload_files/511/1ca/8d5/5111ca8d5df4c237b13e9fc909106933.png)
Начало опубликовали, может и дальше зайдет. Сегодня значит подключим потенциальных "клиентов". По легенде это 2 клиента которые берут по одному городскому номеру и подключают к ним АТС в офисе.
Для этого созданы 2 внутренних номера: 3115515 и 3115510
FusionPBX в качестве станции провайдера
![](https://webcf.waybackmachine.org/web/20230928143753im_/https://habrastorage.org/r/w1560/getpro/habr/upload_files/d68/550/c36/d68550c361420895e11aeb0ca7cd8e5a.png)
Данный текст больше как документирование процесса как памятки для себя, хотя может кому и пригодится, а может кто то скажет что я делаю все не правильно и расскажет как нужно.
Что желательно получить на выходе
В общем имеем идею сделать из FusionPBX телефонную станцию провайдера, хотя бы частично. Задача возможно и тривиальная, но делаю я это первый раз, руки кривые поэтому забывать и пропускать некоторые моменты не хочется.
Asterisk и VoLTE
![](https://webcf.waybackmachine.org/web/20230928143753im_/https://habrastorage.org/r/w1560/getpro/habr/upload_files/21a/cd9/5d3/21acd95d3798a526fd49d00db44c4eb4.png)
В этой части я расскажу как скрестить Asterisk с новым поколением модемов диапазона LTE. В чем там особенность и что нужно учитывать.
Предыдущие статьи по теме:
Asterisk. Доставка SIP Message после возврата абонента из off-line'а
Установка Asterisk 18 на Debian 11
Asterisk должен быть собран с поддержкой mysql (модули cdr_mysql,res_config_mysql).
Asterisk. Доставка SIP Message после возврата абонента из off-line'а
![](https://webcf.waybackmachine.org/web/20230928143753im_/https://habrastorage.org/r/w1560/getpro/habr/upload_files/916/03c/a46/91603ca46e2537b2b221472af59f7aa8.png)
В предыдущих статьях я описал как настроил и собрал GSM <> SIP систему на базе Asterisk. В этой статье расскажу как быть с входящими SMS, если получатель не в сети.
Ближайшие события
![](https://webcf.waybackmachine.org/web/20230928143753im_/https://hsto.org/webt/q4/bl/tl/q4bltl5nykwetj_aaaauhdaow6u.png)
![](https://webcf.waybackmachine.org/web/20230928143753im_/https://habrastorage.org/webt/dp/rg/0o/dprg0oqjoduu6x0s0skjszojzsy.png)
![](https://webcf.waybackmachine.org/web/20230928143753im_/https://hsto.org/webt/si/u_/80/siu_80howp0giy-wsvmnrb1qrnw.jpeg)
![](https://webcf.waybackmachine.org/web/20230928143753im_/https://hsto.org/webt/x5/i3/to/x5i3tot8iivh5vpg-ia9e6qmmlu.jpeg)
![](https://webcf.waybackmachine.org/web/20230928143753im_/https://hsto.org/webt/el/ii/ax/eliiaxns5wtik00rgysxt5qeb-i.jpeg)
![](https://webcf.waybackmachine.org/web/20230928143753im_/https://habrastorage.org/webt/yi/h2/mk/yih2mkst3jow_svnkemhq27h0o4.png)
![](https://webcf.waybackmachine.org/web/20230928143753im_/https://hsto.org/webt/uq/rt/rd/uqrtrd0fibci9i7phuuybk8drog.jpeg)
![](https://webcf.waybackmachine.org/web/20230928143753im_/https://hsto.org/webt/ts/0o/oj/ts0oojrjposx193k5kf9y4vh5qu.png)
![](https://webcf.waybackmachine.org/web/20230928143753im_/https://hsto.org/webt/hx/rq/0p/hxrq0p8rx3kfzj1ybuhqcbdqyic.jpeg)
![](https://webcf.waybackmachine.org/web/20230928143753im_/https://hsto.org/webt/cc/h9/2p/cch92p_kfj0mbxeokbdgp-uopbw.png)
![](https://webcf.waybackmachine.org/web/20230928143753im_/https://hsto.org/webt/t_/af/cx/t_afcxlpq7bfbhcuziffrlpoddw.png)
![](https://webcf.waybackmachine.org/web/20230928143753im_/https://habrastorage.org/webt/xz/ld/4_/xzld4_xafntu0fwkzn66itfxrl8.jpeg)
![](https://webcf.waybackmachine.org/web/20230928143753im_/https://hsto.org/webt/xo/vw/d6/xovwd6picvqcupuizlayrlxiqcq.jpeg)
![](https://webcf.waybackmachine.org/web/20230928143753im_/https://hsto.org/webt/90/gm/mn/90gmmni0i-cteiqeexjhahz7ifo.png)
![](https://webcf.waybackmachine.org/web/20230928143753im_/https://hsto.org/webt/sk/em/iu/skemiuqjpev6azkn-imzs2lxasi.png)
![](https://webcf.waybackmachine.org/web/20230928143753im_/https://hsto.org/webt/jw/iy/j2/jwiyj2kplvp4rn8uiog74md1xes.jpeg)
![](https://webcf.waybackmachine.org/web/20230928143753im_/https://hsto.org/webt/f0/fk/7g/f0fk7gsmss4dhnx_v3mdios0o1a.png)
![](https://webcf.waybackmachine.org/web/20230928143753im_/https://hsto.org/webt/ax/ek/ha/axekhakoitd28x3e-yf5xg96nlc.jpeg)
![](https://webcf.waybackmachine.org/web/20230928143753im_/https://hsto.org/webt/9n/cx/0q/9ncx0qfe5ovxbbdywoet7scq5za.png)
![](https://webcf.waybackmachine.org/web/20230928143753im_/https://hsto.org/webt/hz/tg/9k/hztg9k1w_eanhcx-7f184wdouri.jpeg)
![](https://webcf.waybackmachine.org/web/20230928143753im_/https://hsto.org/webt/q1/ts/cv/q1tscv1wzys8-zdrvnumhwz0ely.png)
![](https://webcf.waybackmachine.org/web/20230928143753im_/https://hsto.org/webt/xo/6u/w1/xo6uw1o3hf9y9tsxzq4pvya719y.jpeg)
![](https://webcf.waybackmachine.org/web/20230928143753im_/https://hsto.org/webt/sc/ie/fp/sciefp-fox1b1kyqn9bwa5ll2um.png)
Выставление приоритетов в очереди для «важных» клиентов
![](https://webcf.waybackmachine.org/web/20230928143753im_/https://habrastorage.org/r/w780/getpro/habr/upload_files/963/35a/5e7/96335a5e7e50d8ffad128b946973dd0b.jpeg)
Данную статью я писал в 2016 году, но тогда ее вернули на дооформление, которое мне было делать лень. Да и ничего революционного я тут не описывал. Тем не менее нашел неопубликованную статью у себя в профиле сегодня и решил все же доделать, вдруг кому еще пригодится.
Массовый прием обыкновенных SMS в Telegram (или Viber)
![](https://webcf.waybackmachine.org/web/20230928143753im_/https://habrastorage.org/r/w780/getpro/habr/upload_files/484/75c/e1b/48475ce1b2b673c1e467b07df0a1a4b0.jpg)
Без SMSсервера, без PHP(Python) Скриптов, без промежуточных Email...
В habr статье от 08.2019 был рассмотрен рабочий способ для приема SMS.
При всей его громоздкости и костыльности - он пользуется популярностью у бизнеса арбитражников и прочих SMS товарищей. Сам GOIP-SMS-Сервер абсолютно неудобен, а Шлюзы GoIP умеют отправлять СМСки по SIP протоколу. Т.е. с помощью обычного asterisk (или FreePBX)
Рассмотрим настройки SMS на примере GOIP-8 (8 канального GSM шлюза):
1) Configurations-SMS тут мы видим меню, заполняем поле SMS to VoIP, пишем что угодно, например goip8, на каждом из каналов как на скрине ниже
Telegram inlineKeyboard. Оценка качества обслуживания после звонка
![](https://webcf.waybackmachine.org/web/20230928143753im_/https://habrastorage.org/r/w1560/getpro/habr/upload_files/d7d/566/be3/d7d566be34db26625de12cf0fd23ee8c.png)
Я занимаюсь разработкой АТС с открытым исходным кодом MikoPBX.
Недавно познакомился с проектом tg2sip. Шлюз позволяет подключить Telegram аккаунт к офисной АТС, принимать и совершать звонки.
После настройки шлюза, решили, что было бы неплохо после завершения телефонного разговора отправить клиенту клавиатуру для оценки качества обслуживания.
При попытке реализовать функцию столкнулись со сложностями:
- Пользователь не может отправлять / пересылать клавиатуру другому пользователю
- Бот не может писать пользователю, если тот на него не подписан
Как же быть? Решение опишу под катом
Написание и запуск сценариев SIPP. Часть 2.UAS сценарии
![](https://webcf.waybackmachine.org/web/20230928143753im_/https://habrastorage.org/r/w1560/getpro/habr/upload_files/d7c/6cb/0d0/d7c6cb0d02c9a157846bd7943aa98426.png)
В прошлой статье я рассмотрел базовый сценарий UAC клиента, но зачастую в процессе обучение или тестирование необходимо смоделировать ситуацию в которой sipp будет выступать в качестве вызываемого абонента.
Передо мной стояла задача - узнать что будет слышать вызывающий абонент при отстуствии сообщения 180 ringing.
Как и в прошлой статье я буду целиком и полностью ссылаться на официальную документацию.
Написание и запуск сценариев SIPP
![](https://webcf.waybackmachine.org/web/20230928143753im_/https://habrastorage.org/r/w1560/getpro/habr/upload_files/1dd/647/928/1dd64792856e3bd099e01ec6b7758e6d.png)
Решил собрать небольшой гайд по использованию SIPP c предустановленными или собственными сценариями.
Полная информация о SIPP находится в документации, она же и является единственным источником всех знаний.
Здесь же будут описаны первые шаги при работе с sipp.
После прочтения документации, на данном этапе будет достаточно раздела "Create your own XML scenarios" опишу краткий этап создания собственного сценария. Все сценарии имеют расширение .xml и описанную в документации структуру и во многом напоминает структуру html. Довольно полезным источником станет данный репозиторий.
Завершение установки и финальная проверка микросотовых DECT-систем перед использованием
![](https://webcf.waybackmachine.org/web/20230928143753im_/https://habrastorage.org/r/w1560/getpro/habr/upload_files/286/bcd/99d/286bcd99d435682e0f751e8a80f58757.jpg)
"7 раз отмерь,1 раз отрежь" - гласит известная поговорка.
Если вы следовали нашим советам в предыдущих статьях, вы уже наверняка подготовили наши микросотовые системы к установке, установили и даже произвели настройку. Дело за малым – провести последние проверки с помощью рабочих телефонных трубок и запустить микросоту в полноценное использование.
Возможности обработки списков телефонов в реальном времени в современном ПО для Call-центров
![](https://webcf.waybackmachine.org/web/20230928143753im_/https://habrastorage.org/r/w780/getpro/habr/upload_files/359/0ba/9b7/3590ba9b7d4e7c6377a6b1167e2afe5a.jpg)
Я работаю инженером в Call-центре. В круг моих обязанностей входит повышение эффективности прозвона call-листов. В этой статье речь идет о некоторых функциональных возможностях специального программного обеспечения (встроенный SQL), позволяющих существенно поднять эффективность проработки списков телефонов.