recursively-chmod-all-directories-except-files

To recursively give directories read&execute privileges:

find /path/to/base/dir -type d -exec chmod 755 {} +

To recursively give files read privileges:

find /path/to/base/dir -type f -exec chmod 644 {} +

Or, if there are many objects to process:

chmod 755 $(find /path/to/base/dir -type d)
chmod 644 $(find /path/to/base/dir -type f)

Or, to reduce chmod spawning:

find /path/to/base/dir -type d -print0 | xargs -0 chmod 755 
find /path/to/base/dir -type f -print0 | xargs -0 chmod 644
2023/08/28

TDLib send message by phone number

How to send message in Telegram API by phone number.

TDLib calls:

  • importContacts
  • createPrivateChat
  • sendMerssage

Make a request like this:

{
  "api_key": "YOUR_API_KEY",
  "@type": "importContacts",
  "contacts": [{
      "first_name": "Jane",
      "last_name": "Doe",
      "phone_number": "+1555012345",
      "user_id": 0
  }]
}

You will receive response similar to this:

{
  "@type": "importedContacts",
  "user_ids": [
    1234567
  ],
  "importer_count": [
    8
  ],
  "@extra": "f402e93d-0cc3-4765-ad54-2f5f5c593a9b"
}
Take the user_id from previous response and use it in next request:

{
    "api_key": "YOUR_API_KEY",
    "@type": "createPrivateChat",
    "user_id": 1234567
  }

Send message using user_id as chat_id like this:

{
    "api_key": "YOUR_API_KEY",
    "@type": "sendMessage",
    "chat_id": "1234567",
    "disable_notification": true,
    "input_message_content": {
      "@type": "inputMessageText",
      "disable_web_page_preview": false,
      "text": {
        "@type": "formattedText",
        "text": "Hello world"
      }
    }
  }
  

Baresip

Baresip - портативный и модульный SIP агент с поддержкой аудио и видео.

в Arch

pacman -S baresip

Конфигурационные файлы расположены в ~/.baresip

Путь к ним можно изменить аргументом -f

baresip -f path_to_your_config

Для начала использования достаточно добавить пользователя в ~/.baresip/accounts

Может быть добавлено несколько пользователей, 1 строчка - 1 пользователь.

<sip:user1@192.0.2.4;transport=udp>;auth_pass=secret
<sip:user2@192.0.2.4;transport=udp>;auth_pass=secret

Запуск в консоли:

baresip

Основные команды в консоли baresip:

Переключение между пользователями /uafind

/uafind sip:user1@192.0.2.4

Совершить вызов /dial или d

/dial 123456789

Принять входящий вызов /accept или a

/accept

Завершить вызов - ESC

Выбор пользователя и звонок напрямую из CLI

baresip -e '/uafind sip:user2@192.0.2.4' -e '/dial user1@192.0.2.4'
2023/08/04 · Смирнов Егор

autovacuum

Settings for a specific table

 SELECT relname, reloptions FROM pg_class WHERE relname='table_name';
ALTER TABLE table_name SET (autovacuum_enabled = on);
ALTER TABLE table_name SET (autovacuum_vacuum_scale_factor = 0, autovacuum_vacuum_threshold = 50);

reset

ALTER TABLE table_name reset (autovacuum_enabled,autovacuum_vacuum_scale_factor,autovacuum_vacuum_threshold);
select relname, n_live_tup, n_dead_tup,n_tup_ins,n_tup_upd,last_autovacuum,last_autoanalyze from pg_stat_all_tables where relname like 'call_project_%';
2023/06/15 · Zvezdo4kin · 0 комментариев (-я)

switch_core_db.c:92 SQLite is BUSY

Каждый раз при записи в файл, файл базы данных блокируется. FreeSWITCH пытается выполнить запись в файл, если он уже записывается, тогда файл блокируется, и FreeSWITCH сообщает об этом в логе как «SQLite is BUSY».
Именно так работает SQLite, если он заблокирован, он ждет некоторое время, а затем пытается снова. Многих это заставляет волноваться и думать, что что-то не так, но все в порядке … его нормальная работа. Единственное, о чем вам нужно беспокоиться, это то, если он все время выдает сообщение и не получает возможности своевременно записывать в файл базы данных, когда это необходимо.

2021/11/22 · Zvezdo4kin

Предыдущие записи >>

page
start
Asterisk Call Center Stats Compare Answered Unanswered Calls Example
AJAX PHP MySQL CSV
apache_httpd_reverse_proxy
Asterisk AMI AJAM Parser php
Asterisk round-robin memory trunk group
asterisk mp3 convert to wav 16b 8000hz
autovacuum
Baresip
Ротация bash_history
bash manipulating string
blind
Checking the speed of writing to a disc
Create boot usb stick
CURL GOIP SMS
Debian 9 officially FS
Debian 9 php5.6 Install
debian 9 VPN pptp
Debian9 Stretch Configure Locale en_US.UTF-8
Asterisk Advanced Message Queue Protocol
Динамические массивы в C
Dynamic Memory Allocation in C using malloc(), calloc(), free() and realloc()
freeswitch a1-hash and password generating
FreeSwitch Directory MySql storage with Lua Dbh
Debian 9 Stretch Install Goip Sms Server
Handlebars Helper LastCall Queue Agent
Pandoc: html_to_dokuwiki
Intraservice API + Asterisk + cURL
Lua as a Configuration And Data Exchange Language For "C"
How non-root users manage systemd
openresty
postgres alter sequence
postgresql pg_dump
Reboot IP LDK over telnet from bash script
recursively-chmod-all-directories-except-files
Redis+Lua - routing calls by mobile operator DEF code
Bash: Поиск и операции с файлами по выборке имен из БД
Minimum configuration requirements for using stun server (Coturn)
Slack Incoming Webhook with Php Curl
sngrep
switch_core_db.c:92 SQLite is BUSY
StrongSwan install from source
Sublime Regex
TCPdump: программа для перехвата и анализа SIP-сообщений.
TDLib send message by phone number
ubuntu_remap_super_key
Обновить/Вставить значение в jsonb поле по ключу ( Postgresql )
Vim Commands Cheat Sheet
  • blog.txt
  • Последние изменения: 2019/03/27