PostgreSQL
Сообщений: 91
|
Re: PostgreSQL
В том то и дело, что ODBC не нужен (со всей его замороченностью и глючностью) . А напрямую с postgres-ом никак...
|
Сообщений: 1530
|
Re: PostgreSQL
А переписать? ;)
|
Откуда: Москва
Сообщений: 3421
|
Re: PostgreSQL
Мы используем res_config - это тупой перенос конфигов в базу (можно напрямую в PostgreSQL)
А еще есть Asterisk Realtime. На voip-info.org изучайте.
А еще лучше совместить res_config + real time.
|
Сообщений: 91
|
Re: PostgreSQL
Asterisk Realtime уже лучше. С MySQL работает. По идее. Ну а пока
ERROR[3297]: res_config_mysql.c:596 mysql_reconnect: MySQL RealTime: Failed to connect database server asterisk on localhost. Check debug for more info.
;)
|
Сообщений: 91
|
Re: PostgreSQL
У кого работает эта схема управления * через хоть какую-нибудь БД. Пожалуйста, дайте конфиги.
|
Сообщений: 196
|
Re: PostgreSQL
У меня Ast Realtime с MySQL работает нормально.
По http://www.voip-info.org/tiki-index.php?page=Asterisk+RealTime+Extensions вчера делал.
1) Ставим CVS с addons'ами.
2) В extconfig.conf дописываем строчку (всё остальное закоментированно)
realtime_ext => mysql,asterisk_conf,extensions_table
3) В res_mysql.conf пишем
[general]
dbhost = 127.0.0.1
dbname = asterisk_conf
dbuser = ast_res_user
dbpass = <pass>
dbport = 3306
dbsock = /var/lib/mysql/mysql.sock
(dbport можно закомментировать)
4) В extensions.conf где-нибудь в меню пишем
exten => 7,Goto(Menu_FromDB,s,1)
exten => _7.,Goto(Menu_FromDB,${EXTEN:1},1)
[Menu_FromDB]
switch => Realtime/test_context@realtime_ext
5) В мускуле создаём
CREATE DATABASE asterisk_conf;
USE asterisk_conf;
CREATE TABLE `extensions_table` (
`id` int(11) NOT NULL auto_increment,
`context` varchar(20) NOT NULL default '',
`exten` varchar(20) NOT NULL default '',
`priority` tinyint(4) NOT NULL default '0',
`app` varchar(20) NOT NULL default '',
`appdata` varchar(128) NOT NULL default '',
KEY `id` (`id`)
) TYPE=MyISAM;
Создаём пользователя и задём права:
GRANT USAGE ON * . * TO 'ast_res_user'@'localhost' IDENTIFIED BY '***';
GRANT SELECT ON `asterisk_conf`.`extensions_table`
TO 'ast_res_user'@ 'localhost';
6) В коммандной строке asterisk -vvvr набираем reload
7) Не закрывая коммандную строку asteriska, звоним на то меню 7123 и видим
-- Executing Goto("H323/ip$192.168.0.1:20007/30201", "Menu_FromDB|123|1") in new stack
-- Goto (Menu_FromDB,123,1)
Aug 30 11:46:26 WARNING[27051]: pbx.c:2278 __ast_pbx_run: Channel 'H323/ip$192.168.0.1:20007/30201' sent into invalid extension '123' in context 'Menu_FromDB', but no invalid handler
mandrake10*CLI>
Ура! Заработало! (БД то пустая)
Можно еще в коммандной строке asteriska набрать
realtime mysql status
8) Добавляем в нашу таблицу:
INSERT INTO `extensions_table` ( `id` , `context` , `exten` , `priority` , `app` , `appdata` )
VALUES ('', 'test_context', '1', '1', 'NoOp', 'CallerID=${CALLERID}');
9) Опять звоним на 71 и видим:
-- Executing Goto("H323/ip$192.168.0.1:20009/30203", "Menu_FromDB|1|1") in new stack
-- Goto (Menu_FromDB,1,1)
-- Executing NoOp("H323/ip$192.168.0.1:20009/30203", "CallerID="Mike" <1002> Context=Menu_FromDB Exten=1")
Ура! Заработало окончательно! Наполняем таблицу.
Вообще для работы с мускулем лучше использовать phpMyAdmin.
|
Сообщений: 196
|
Re: PostgreSQL
Кстати заметили что
`priority` tinyint(4)
Кто-нибудь знает как пропачтить pbx/pbx_realtime.c чтоб можно было хотябы метки использовать как в extensions.conf, а то если надо вставить строку то даже если использовать
UPDATE `extensions_table` SET `priority` = `priority`+1 WHERE `context` = $контекст AND `exten` = $exten AND `priority` > $после_чего_ставить;
то в Goto и GotoIF номер шага так просто не поменяешь.
|
Сообщений: 91
|
Re: PostgreSQL
Огромное спасибо.
А SIP-записи?
Вот что я сделал (по инструкции с voip-info.org)
1. Поставил cvs-head
2. Поставил addons
3. Отконфигурил res_mysql.conf
[general]
dbhost = localhost
dbname = asterisk
dbuser = ast_user
dbpass = XXXX
dbport = 3306
dbsock = /var/lib/mysql/mysql.sock
4. Отконфигурил extconfig.conf
sipusers => mysql,asterisk,sip_buddies
5. Собственно создал таблицу в базе asterisk
CREATE TABLE `sip_buddies` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(80) NOT NULL default '',
`accountcode` varchar(20) default NULL,
`amaflags` varchar(7) default NULL,
`callgroup` varchar(10) default NULL,
`callerid` varchar(80) default NULL,
`canreinvite` char(3) default 'yes',
`context` varchar(80) default NULL,
`defaultip` varchar(15) default NULL,
`dtmfmode` varchar(7) default NULL,
`fromuser` varchar(80) default NULL,
`fromdomain` varchar(80) default NULL,
`host` varchar(31) NOT NULL default '',
`insecure` varchar(4) default NULL,
`language` char(2) default NULL,
`mailbox` varchar(50) default NULL,
`md5secret` varchar(80) default NULL,
`nat` varchar(5) NOT NULL default 'no',
`deny` varchar(95) default NULL,
`permit` varchar(95) default NULL,
`mask` varchar(95) default NULL,
`pickupgroup` varchar(10) default NULL,
`port` varchar(5) NOT NULL default '',
`qualify` char(3) default NULL,
`restrictcid` char(1) default NULL,
`rtptimeout` char(3) default NULL,
`rtpholdtimeout` char(3) default NULL,
`secret` varchar(80) default NULL,
`type` varchar(6) NOT NULL default 'friend',
`username` varchar(80) NOT NULL default '',
`disallow` varchar(100) default 'all',
`allow` varchar(100) default 'g729;ilbc;gsm;ulaw;alaw',
`musiconhold` varchar(100) default NULL,
`regseconds` int(11) NOT NULL default '0',
`ipaddr` varchar(15) NOT NULL default '',
`regexten` varchar(80) NOT NULL default '',
`cancallforward` char(3) default 'yes',
PRIMARY KEY (`id`),
UNIQUE KEY `name` (`name`),
KEY `name_2` (`name`)
) TYPE=MyISAM ROW_FORMAT=DYNAMIC
6. Запустил *. CLI realtime mysql status отрапортовал, что соединение прошло успешно.
НО! Не работает (читает информацию о sip-клиентах только из sip.conf)
И еще при запуске (в debug-e) выдает
DEBUG[26359]: db.c:182 ast_db_get: Unable to find key '3330001' in family 'SIP/Registry'
DEBUG[26359]: db.c:182 ast_db_get: Unable to find key '3330002' in family 'SIP/Registry'
DEBUG[26359]: db.c:182 ast_db_get: Unable to find key '218' in family 'SIP/Registry'
В sip.conf есть только три пользователя: 3330001,3330002,218
|
Сообщений: 92
|
Re: PostgreSQL
theocНО! Не работает (читает информацию о sip-клиентах только из sip.conf)
...
В sip.conf есть только три пользователя: 3330001,3330002,218
Уберите их из sip.conf и добавьте в базу.
|
Сообщений: 91
|
Re: PostgreSQL
2navigator
По хорошему неплохо было бы научиться переносить из sip.conf в базу, так как это на тестовом сервере всего 3 записи, на рабочем же их куда больше. Но это только пол беды (потихоньку переехал бы, никуда бы не делся). Но добавленная запись в базу не работает.
Может какая нибудь команда в CLI берет из базы peer-ы? И каждый раз при добавлении новой записи в базу нужно ее запускать? В чем же тогда realtime?
|
|