Полностью пустая строка удаляется командой:
DELETE FROM tablename WHERE columnname IS NULL;
Archive for the ‘Uncategorized’ Category
PostgreSQL: удаляем пустые строки
Saturday, September 22nd, 2012Asterisk: конвертируем файлы для MOH
Monday, August 20th, 2012Вариантов много, подробности тут http://www.voip-info.org/wiki/view/Convert+WAV+audio+files+for+use+in+Asterisk
Я сначала конвертировал .mp3 в .wav, но Asterisk ругался, поэтому пришлось .wav конвертировать в .sln, он очень хорош для Asterisk’a.
mpg123 -w foo-out.wav foo-in.mp3
sox foo-in.wav -t raw -r 8000 -s -2 -c 1 foo-out.sln
По ссылке выше написано, что можно сразу из .mp3 в .sln, но у меня не получилось.
Asterisk: Provide Music on Hold to the calling party until the called channel answers
Friday, August 17th, 2012В Интернете много пишут про MusicOnHold, т.е. музыка при удержании звонка. Но когда мы хотим слышать музыку, пока на том конце не успели поднять трубку, MusicOnHold – не совсем то, что нам нужно. Следует использовать параметр ‘m‘ для приложения Dial.
exten => _XXXX,1,Dial(SIP/${EXTEN},15,m)
exten => {EXTEN},n,Hangup()
Обратите внимание, что сначала указывается, как долго дозваниваться, прежде чем звонок будет завершен (15 секунд), а только потом параметр музыки (m). Если поменять местами, музыка играть не будет.
Файл musiconhold.conf тоже должен быть отредактирован.
В минимальной конфигурации этого будет вполне достаточно:
[general]
[default]
mode=files
directory=moh
random=yes
Asterisk, codecs, audio files
Wednesday, August 1st, 2012В Asterisk разрешены кодеки alaw и g729. Также включена поддержка русского языка:
часть файла sip.conf:
disallow=all
allow=g729
allow=alaw
...
language=ru
Поэтому скачиваем два файла:
http://downloads.asterisk.org/pub/telephony/sounds/asterisk-core-sounds-ru-g729-current.tar.gz
http://downloads.asterisk.org/pub/telephony/sounds/asterisk-core-sounds-ru-alaw-current.tar.gz
и распаковываем их в соответствующую директорию – /usr/share/asterisk/sounds/ (по крайней мере в Debian так), предварительно создав в ней директорию ru.
Теперь звуки будут проигрываться независимо от того, на какой кодек настроена наша SIP-аппаратура.
Asterisk-1.8 на Debian 6.0.5 Squeeze
Friday, July 27th, 2012- Устанавливаем Debian
- Устанавливаем пакет python-software-properties:
sudo apt-get install python-software-properties
- Импортируем public-key:
sudo apt-key adv --keyserver pgp.mit.edu --recv-keys 175E41DF
Если будут проблемы с импортированием, можно попробовать вот так:wget http://packages.asterisk.org/keys/175E41DF.pub -O - | sudo apt-key add -
- Добавляем в /etc/apt/sources.list репозиторий:
deb http://packages.asterisk.org/deb squeeze main
deb-src http://packages.asterisk.org/deb squeeze main
- Опциональнодобавляем репозиторий ветви Proposed:
deb http://packages.asterisk.org/deb squeeze-proposed main
deb http://packages.asterisk.org/deb squeeze-proposed main
- Устанавливаем:
sudo apt-get update && sudo apt-get install asterisk-1.8
Чуть подробнее и по-английски – на официальном сайте: https://wiki.asterisk.org/wiki/display/AST/Asterisk+Packages
MySQL: смотрим список пользователей
Monday, July 9th, 2012Заходим в mysql под пользователем root , в базу mysql:
mysql -u root -p mysql
И смотрим всю информацию о пользователях (хранится она, как можно понять, в базе под одноименным названием “mysql”, в таблице “user”):
mysql> select * from user;
Этот запрос выведет достаточно много информации, которая некрасиво умещается на экране. Поэтому сначала можно посмотреть список колонок этой таблицы:
mysql> describe user;
… а потом сделать запрос только по интересующим нас колонкам:
mysql> select host,user from user;
+-----------+------------------+
| host | user |
+-----------+------------------+
| 127.0.0.1 | root |
| lexus | root |
| localhost | debian-sys-maint |
| localhost | root |
+-----------+------------------+
4 rows in set (0.00 sec)
Creating user petrov_ak, who will connect from anywhere (%):
mysql> CREATE USER 'petrov_ak'@'%' IDENTIFIED BY 'pAsSwOrD'; Query OK, 0 rows affected (0.00 sec)
Grant privileges. Let him SELECT only from DB ‘asterisk’, table ‘cdr’:
mysql> GRANT SELECT ON asterisk.cdr TO 'petrov_ak'@'%'; Query OK, 0 rows affected (0.00 sec)
gksu
Friday, July 6th, 2012Открыть видеофайл .mts в Linux
Wednesday, July 4th, 2012Цифровые камеры могут сохранять видео в формате .mts. Чтобы открыть его в Линуксе, сначала конвертируем его в .mpg , потом открываем например SMPlayer’ом:
mencoder -oac copy -ovc lavc -of mpeg -mpegopts format=dvd -vf scale=720:576,harddup -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:keyint=15:aspect=16/9:threads=4 input-file.mts -ofps 50 -fps 50 -o output_file.mpg
Также можно использовать скрипт. Условие такое – он должен лежать в домашней папке. И файлы .mts/.MTS тоже должны лежать в ней.
#!/bin/bash
for i in *.{mts,MTS}; do
mencoder -oac copy -ovc lavc -of mpeg -mpegopts format=dvd -vf scale=720:576,harddup -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:keyint=15:aspect=16/9:threads=4 $i -ofps 50 -fps 50 -o `basename $i`.mpg $i
done
Ubuntu: отключить автозапуск сервиса
Wednesday, July 4th, 2012И снова тут всё не в как привычной мне Slackware :)
update-rc.d apache disable
http://askubuntu.com/questions/27134/disable-autostart-for-a-service-without-uninstalling
MySQL: меняем тип столбца, переименовываем таблицу и др.
Wednesday, July 4th, 2012Меняем тип столбца под названием “ip” на VARCHAR(20) (был INT):
mysql> ALTER TABLE ubuntu_users MODIFY ip VARCHAR(20);
Разумеется, предполагается, что мы находимся в конкретной БД (mysql> use dbname;), содержащей таблицу “ubuntu_users”.
Подробнее тут: http://mysqlru.com/reference/data-definition/alter-table.html
О типах данных читать тут http://mysqlru.com/reference/column-types.html
===============================
Переименовываем таблицу из ubuntu_users в ubuntu_victims:
mysql> ALTER TABLE ubuntu_users RENAME ubuntu_victims;
Подробнее тут http://mysqlru.com/reference/data-definition/rename-table.html
===============================
Добавляем столбец с названием “comment” и типом VARCHAR(50) :
mysql> ALTER TABLE ubuntu_users ADD comment VARCHAR(50);
===============================
Удаляем столбец с именем “comment”:
mysql> ALTER TABLE ubuntu_users DROP COLUMN comment;
===============================
Добавить новый числовой столбец AUTO_INCREMENT
с именем "count":
mysql> ALTER TABLE ubuntu_users ADD count INT UNSIGNED NOT NULL AUTO_INCREMENT, ADD INDEX (comment);
Заметьте, что столбец "comment"
индексируется, так как столбцы AUTO_INCREMENT
должны быть индексированы, кроме того, столбец "comment"
объявляется как NOT NULL
, поскольку индексированные столбцы не могут быть NULL
.
При добавлении столбца AUTO_INCREMENT
значения этого столбца автоматически заполняются последовательными номерами (при добавлении записей).
Подробнее о команде SET: http://mysqlru.com/mysql-optimisation/optimising-the-server/set-option.html
==============================
Удаляем БД:
mysql> DROP DATABASE dbname;
http://mysqlru.com/reference/data-definition/drop-database.html
===============================
Получаем информацию о столбцах таблицы “ubuntu_users”:
mysql> DESCRIBE ubuntu_users;
===============================
Устанавливаем значение по умолчанию :
mysql> ALTER TABLE ubuntu_users MODIFY comment varchar Default ‘this is comment’;