Перейти к публикации
Новостройки Ростова-на-Дону
  • Авторизуйтесь для полного доступа

    Пройдите быструю регистрацию :acute:

ICQ сервер

Оцените эту тему


MURAD
 Поделиться

Рекомендованные сообщения

  • VIP

Всем привет =))

Пришла мне тут идея в голову. Не берусь за то' что я придумал что-то новое )

Скорее всего даже существуют готовые решения ...

Может быть сумбурно получится' но я попытаюсь кратко обрисовать ситуацию и мои намерения ...

Нужно запустить в одной крупной сети (может даже сразу в 3-х локальных сетях)

Как я понимаю для этого нужен и сервер и клиент.

Весь трафик должен проходить через сервер. Для клиентов ася должна быть бесплатной. И работать она должна по локальной сети' без всключенного VPN-соединения.

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

Сам icq-клиент любой пользователь должен будет скачать с сети к себе на винт.

Клиент должен будет быть предустановленным и со всеми настройками. Что бы 2 щелчками мыши ... И вбить пару uin/пароль и связь со всем миром бесплатно ...

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

Т.о. любой пользователь сети получает асю бесплатно.

Да пошёл этот кризис на ......

Ссылка на комментарий
Поделиться на других сайтах

  • VIP

Правда ася будет работать только со скачанного приложения.

Теперь напишу для чего это мне нужно. =))

Пользователь при общении будет заодно смотреть рекламу с баннера' который должен будет облепить окно переписки ....

Рекламодатели по идеи должны будут мне платить симвоическую сумму за показ рекламы в такой аудитории ....

Реклама будет грузиться клиентом с сервера ...

Можно запустить бегущую строку например ...

В общем я хотел поговорить об этом =))

Да пошёл этот кризис на ......

Ссылка на комментарий
Поделиться на других сайтах

  • VIP
...Выбрать сервер будет очень

просто, потому что он один (про другие я не слышал, во

всех форумах говорят только о нем) iserverd. Скачать его

можно на http://iserverd.khstu.ru/download/index_r.html

 

Существует две ветки - stable (стабильные с исправлеными

багами) и current (те что сейчас находятся в

разработке). Я брал IServerd-current.tar.gz работает

достаточно хорошо, пока нареканий не было. Фишка этого

продукта в том, что он работает с postgresql. Это что-то

вроде MySQL только с большими возможностями. Он

поддреживает почти все SQL конструкции, включая

вложенные запросы, транзакции, схемы, пользовательские

типы и функции. С установкой SQL сервера проблем быть не

должно, он присудствует в портах

/usr/ports/databases/postgresql-devel

Да пошёл этот кризис на ......

Ссылка на комментарий
Поделиться на других сайтах

  • VIP

Но установить это 50% успеха, его нужно запустить и по минимуму сконфигурировать.

 

И так начнем.

 

Система. OC FreeBSD 5.1

 

Установка postgresql.

 

#cd /usr/ports/databases/postgresql-devel

#make install

 

 

компьютеру возможно потребуется доступ в интернет, так

как в distfiles пакетов может не оказаться. Я говорю

пакетов потому у него есть зависимости - bisonXXXX. При

наличии выделенной линии стянуть все что требуется не

составит труда.

 

Сам SQL сервер имеет размер приблизительно 8.7МБ, bison - 815KБ.

 

После установки у нас появляется пользователь pgsql от

его имени мы и будем стартовать сервер. И его родная

папка /usr/local/pgsql. Нам надо решить где будет

храниться база. Я просто создал папку data в

/usr/local/pgsql сделал ее владельцем юзера pgsql

 

#cd /usr/local/pgsql

#mkdir data

#chown pgsql:pgsql ./data

 

 

и положил ее туда. Положил на самом деле подразумевает

следующие действия:

 

#su pgsql

$initdb -D /usr/local/pgsql/data

 

 

Папка data теперь наполнена данными и содержит так же

конфигурационые файлы. Но для запуска серера нам

потребуется еще поправить postgresql.conf, а именно

разкомментировать port = 5432. Сохраняем и запускаем.

 

Это можно сделать из командной строки

 

#su pgsql -c 'pg_ctl start -d /usr/local/pgsql/data'

 

 

Но тогда нам прийдется это делать при каждой

перезагрузке сервера. Поэтому лучше создать файл в

 

/usr/local/etc/rc.d такого содержания:

 

#!/bin/sh

# $FreeBSD: ports/databases/postgresql-devel/files/pgsql.sh.tmpl,v1.13 2002/04/11 04:58:11 ijliao Exp $

#

# For postmaster startup options, edit

$PGDATA/postgresql.conf

PREFIX=/usr/local

PGBIN=${PREFIX}/bin

case $1 in

start)

[ -d ${PREFIX}/lib ] && /sbin/ldconfig -m ${PREFIX}/lib

touch /var/log/pgsql

chmod 600 /var/log/pgsql

chown pgsql:pgsql /var/log/pgsql

[ -x ${PGBIN}/pg_ctl ] && {

su -l pgsql -c \

'[ -d ${PGDATA} ] && exec /usr/local/bin/pg_ctl start -s \

-w -l /var/log/pgsql'

echo -n ' pgsql'

}

;;

stop)

[ -x ${PGBIN}/pg_ctl ] && {

su -l pgsql -c 'exec /usr/local/bin/pg_ctl stop -s -m fast'

echo -n ' pgsql'

}

;;

status)

[ -x ${PGBIN}/pg_ctl ] && {

exec su -l pgsql -c 'exec /usr/local/bin/pg_ctl status'

}

;;

*)

echo "usage: `basename $0` {start|stop|status}" >&2

exit 64

;;

esac

 

 

Может быть такое, что это файл уже там будет, остется

только дать ему права на исполнение. Переходим к

следующему этапу - установке iserverd

 

Установка iserverd.

 

Скачиваем архив

http://iserverd.khstu.ru/download/IServerd-current.tar.gz, раскручиваем, далее

 

#./configure --with-russian

#make

#make install

 

 

ПРИМЕЧАНИЕ. Мне пришлось поправить одну строчку в

исходных текстах программы что бы компиляция прошла без

ошибок. Файл /config/action/y.tab.cpp строка 2040 //

--attribute-- ((--unused--)). Сохраняем, компилим.

 

Теперь создаем таблицы и их владельцев

 

#su pgsql

 

 

$db_manage.sh create users_db

оно попросит указать имя владельца и пароль (эти данные

мы потом должны будем передать iserverd)

 

DATABSE CREATED

USER CREATED

$

 

 

После, идем в /etc/iserverd

 

#cd /etc/iserverd

 

 

Там находятся примеры настроечных файлом, смело их делам

рабочими, но с небольшими поправками.

 

iserv.conf

 

database user = юзер_которого_мы_создали_при_db_manage.sh create users_db

database password = пароль_который_мы_указали_при_db_manage.sh create users_db

 

 

v7_proto.conf

 

вообщем-то нам достаточно иметь поддержку v7, кроме

этого есть возможность использования протокола v3 и v5.

 

V7 BOS address = IP:5190 #тут наш сервер будет слушать порт

V7 registration enabled = Yes #что бы юзера могли сами регистрироваться

 

 

ПРИМЕЧАНИЕ. Регистрацию юзеров можно проводить и на

сервере:

 

# su pgsql

$cd /etc/iserverd/db

$icquser add UIN

 

 

попросят ввести данные пользователя, что мы и должны

будем сделать.

 

Сохраняем. Стартуем. Как всегда у нас есть 2 варианта

запуска:

 

1) командная строка # iserverd -o

 

2) скрипт (будет стартовать при каждой загрузке сервера

/usr/local/etc/rc.d)

 

#!/bin/sh

ISERVERD="/usr/sbin/iserverd"

PIDFILE="/var/run/iserverd/iserverd.pid"

# See how we were called.

case "$1" in

start)

# Start daemons.

echo -n "Starting iserverd: "

$ISERVERD -o

sleep 1

if [ -f $PIDFILE ]; then

echo " [ OK ]"

else

echo " [ FAILED ]"

fi

;;

stop)

# Stop daemons.

echo -n "Shutting down iserverd: "

if [ -f $PIDFILE ]; then

kill `cat $PIDFILE`

echo " [ OK ]"

else

echo " [ FAILED ]"

fi

rm -f $PIDFILE

;;

status)

if [ -f $PIDFILE ]; then

echo -n "Iserverd is running, pid: "

echo `cat $PIDFILE`

else

echo "Iserverd is stopped"

fi

;;

restart)

$0 stop

$0 start

;;

*)

echo "Usage: iserverd {start|stop|restart|status}"

exit 1

esac

exit 0

 

 

Это была финальная часть настройки.

 

ВАЖНО!!!

Даже если все описаное проделано правильно, icq сервер

может не запуститься (скорее всего так и будет). Это

связано с параметрами с которыми собрано ядро. В первую

очередь shared memory и семафоры. Увеличиваем эти

параметры

 

options SHMALL=8192

options SHMMAX=(SHMMAXPGS*PAGE_SIZE+1)

options SEMMNI=40

options SEMMNS=240

options SEMUME=40

options SEMMNU=120

options SEMOPM=301

options SEMMSL=200

options SEMMAP=200

 

 

и пересобераем ядро. Как это делается, подробно описано

в /usr/share/doc/handbook/kernelconfig.html

Привожу полные конфигурационные файлы для работы всех

систем.

 

postgresql.conf

 

 

# -----------------------------

# PostgreSQL configuration file

# -----------------------------

#

# This file consists of lines of the form:

#

# name = value

#

# (The '=' is optional.) White space may be used. Comments are introduced

# with '#' anywhere on a line. The complete list of option names and

# allowed values can be found in the PostgreSQL documentation. The

# commented-out settings shown in this file represent the default values.

#

# Any option can also be given as a command line switch to the

# postmaster, e.g. 'postmaster -c log_connections=on'. Some options

# can be changed at run-time with the 'SET' SQL command.

#

# This file is read on postmaster startup and when the postmaster

# receives a SIGHUP. If you edit the file on a running system, you have

# to SIGHUP the postmaster for the changes to take effect, or use

# "pg_ctl reload".

#-------------------------------------------------------

# CONNECTIONS AND AUTHENTICATION

#-------------------------------------------------------

# - Connection Settings -

#tcpip_socket = false

max_connections = 100

# note: increasing max_connections costs about 500 bytes of shared

# memory per connection slot, in addition to costs from shared_buffers

# and max_locks_per_transaction.

#superuser_reserved_connections = 2

port = 5432

#unix_socket_directory = ''

#unix_socket_group = ''

#unix_socket_permissions = 0777 # octal

#virtual_host = '' # what interface to listen on; defaults to any

#rendezvous_name = '' # defaults to the computer name

# - Security & Authentication -

#authentication_timeout = 60 # 1-600, in seconds

#ssl = false

#password_encryption = true

#krb_server_keyfile = ''

#db_user_namespace = false

#-------------------------------------------------------

# RESOURCE USAGE (except WAL)

#-------------------------------------------------------

# - Memory -

shared_buffers = 1000 # min 16, at least

max_connections*2, 8KB each

#sort_mem = 1024 # min 64, size in KB

#vacuum_mem = 8192 # min 1024, size in KB

#debug_shared_buffers = 0 # 0-600 seconds

# - Background writer -

#bgwriter_delay = 200 # 10-5000 milliseconds

#bgwriter_percent = 1 # 0-100% of dirty buffers

#bgwriter_maxpages = 100 # 1-1000 buffers max at once

# - Free Space Map -

#max_fsm_pages = 20000 # min max_fsm_relations*16, 6 bytes each

#max_fsm_relations = 1000 # min 100, ~50 bytes each

# - Kernel Resource Usage -

#max_files_per_process = 1000 # min 25

#preload_libraries = ''

#-------------------------------------------------------

# WRITE AHEAD LOG

#-------------------------------------------------------

# - Settings -

#fsync = true # turns forced synchronization on or off

#wal_sync_method = fsync # the default varies across platforms:

# fsync, fdatasync, open_sync, or open_datasync

#wal_buffers = 8 # min 4, 8KB each

# - Checkpoints -

#checkpoint_segments = 3 # in logfile segments, min 1, 16MB each

#checkpoint_timeout = 300 # range 30-3600, in seconds

#checkpoint_warning = 30 # 0 is off, in seconds

#commit_delay = 0 # range 0-100000, in microseconds

#commit_siblings = 5 # range 1-1000

#-------------------------------------------------------

# QUERY TUNING

#-------------------------------------------------------

# - Planner Method Configuration -

#enable_hashagg = true

#enable_hashjoin = true

#enable_indexscan = true

#enable_mergejoin = true

#enable_nestloop = true

#enable_seqscan = true

#enable_sort = true

#enable_tidscan = true

# - Planner Cost Constants -

#effective_cache_size = 1000 # typically 8KB each

#random_page_cost = 4 # units are one sequential page fetch cost

#cpu_tuple_cost = 0.01 # (same)

#cpu_index_tuple_cost = 0.001 # (same)

#cpu_operator_cost = 0.0025 # (same)

# - Genetic Query Optimizer -

#geqo = true

#geqo_threshold = 11

#geqo_effort = 1

#geqo_generations = 0

#geqo_pool_size = 0 # default based on tables in statement,

# range 128-1024

#geqo_selection_bias = 2.0 # range 1.5-2.0

# - Other Planner Options -

#default_statistics_target = 10 # range 1-1000

#from_collapse_limit = 8

#join_collapse_limit = 8 # 1 disables collapsing of explicit JOINs

#-------------------------------------------------------

# ERROR REPORTING AND LOGGING

#-------------------------------------------------------

# - Syslog -

#syslog = 0 # range 0-2; 0=stdout; 1=both; 2=syslog

#syslog_facility = 'LOCAL0'

#syslog_ident = 'postgres'

# - When to Log -

#client_min_messages = notice # Values, in order of decreasing detail:

# debug5, debug4, debug3, debug2, debug1,

# log, info, notice, warning, error

#log_min_messages = notice # Values, in order of decreasing detail:

# debug5, debug4, debug3, debug2, debug1,

# info, notice, warning, error, log, fatal,

# panic

#log_error_verbosity = default # terse, default, or verbose messages

#log_min_error_statement = panic # Values in order of increasing severity:

# debug5, debug4, debug3, debug2, debug1,

# info, notice, warning, error, panic(off)

#log_min_duration_statement = -1 # Log all statements whose

# execution time exceeds the value, in

# milliseconds. Zero prints all queries.

# Minus-one disables.

#silent_mode = false # DO NOT USE without Syslog!

# - What to Log -

#debug_print_parse = false

#debug_print_rewritten = false

#debug_print_plan = false

#debug_pretty_print = false

#log_connections = false

#log_duration = false

#log_pid = false

#log_statement = false

#log_timestamp = false

#log_hostname = false

#log_source_port = false

#-------------------------------------------------------

# RUNTIME STATISTICS

#-------------------------------------------------------

# - Statistics Monitoring -

#log_parser_stats = false

#log_planner_stats = false

#log_executor_stats = false

#log_statement_stats = false

# - Query/Index Statistics Collector -

#stats_start_collector = true

#stats_command_string = false

#stats_block_level = false

#stats_row_level = false

#stats_reset_on_server_start = true

#-------------------------------------------------------

# CLIENT CONNECTION DEFAULTS

#-------------------------------------------------------

# - Statement Behavior -

#search_path = '$user,public' # schema names

#check_function_bodies = true

#default_transaction_isolation = 'read committed'

#default_transaction_read_only = false

#statement_timeout = 0 # 0 is disabled, in milliseconds

# - Locale and Formatting -

#datestyle = 'iso, mdy'

#timezone = unknown # actually, defaults to TZ environment setting

#australian_timezones = false

#extra_float_digits = 0 # min -15, max 2

#client_encoding = sql_ascii # actually, defaults to database encoding<

# These settings are initialized by initdb -- they may be changed

lc_messages = 'ru_RU.KOI8-R' # locale for system error message strings

lc_monetary = 'ru_RU.KOI8-R' # locale for monetary formatting

lc_numeric = 'ru_RU.KOI8-R' # locale for number formatting

lc_time = 'ru_RU.KOI8-R' # locale for time formatting

# - Other Defaults -

#explain_pretty_print = true

#dynamic_library_path = '$libdir'

#max_expr_depth = 10000 # min 10

#-------------------------------------------------------

# LOCK MANAGEMENT

#-------------------------------------------------------

#deadlock_timeout = 1000 # in milliseconds

#max_locks_per_transaction = 64 # min 10, ~260*max_connections bytes each

#-------------------------------------------------------

# VERSION/PLATFORM COMPATIBILITY

#-------------------------------------------------------

# - Previous Postgres Versions -

#add_missing_from = true

#regex_flavor = advanced # advanced, extended, or basic

#sql_inheritance = true

#default_with_oids = true

# - Other Platforms & Clients -

#transform_null_equals = false

#transform_null_equals = false

 

iserv.conf

 

 

 

# This is the main IServerd config file. Don't forget to

# change database and info passwords. Probably you'll need

# to change admin email (it is used in broadcast and

# error messages).

[Globals]

# ------server parameters ----------------------

Bind on all interfaces = No

Bind interface = 0.0.0.0/32

Listen port = 4000

Pid file path = /var/run/iserverd/iserverd.pid

Translate path = /etc/iserverd/translate

Translate table = RUSSIAN_WIN

Var dir path = /var/run/iserverd

Server mode = daemon

Min childs = 4

Max childs = 100

Shared memory size = 512000

Default ping time = 120

Depart list version = 1

Externals number = 0

Admin email = root@localhost

Info Password = DEFAULT

Enable actions = False

Enable watchdog = True

Start without RDBMS = True

Watchdog timeout = 10

WWP socket filename = /tmp/wwp_sock

Actions config file = /etc/iserverd/actions.conf

Realtime online db = False

# -----parameters for database system ----------

database user = полльзователь

database password = пароль

# Leave it blank if you have local PostgreSQL

database addr =

database port = 5432

users db name = users_db

vacuumdb timeout = 1800

Defrag db check period = 43200

Online db check period = 3600

# -----parameters for log/debug system----------

Maxlog size = 500

Log umask = 022

Log level = 10

Debug level = 10

Timestamp logs = True

Append logs = False

Log process pid = False

# -----Config files for Vxx proto modules--------

Include = /etc/iserverd/v3_proto.conf

Include = /etc/iserverd/v5_proto.conf

Include = /etc/iserverd/v7_proto.conf

 

 

 

v7_proto.conf

 

 

 

# ---Parameters for AIM/V7 proto module----

# This configuration is default.

# There is also one config file for AIM protocol module,

# that declares protocol rate-limits, snac groups and etc

Enable AIM port = 5190

V7 proto enabled = Yes

V7 connection timeout = 20

V7 cookie timeout = 240

V7 accept concurent = True

V7 max search = 100

V7 max contact size = 600

V7 max watchers size = 750

V7 max visible size = 200

V7 max invisible size = 200

# Direct connection to v3 is disabled by default

# because v3 client crashes on contact_list and

# file_abort messages, enable this only if you

# know what are you doing

V7 direct V3 connect = False

# This is just temp solution to allow iserverd

# administrator to setup bos server address

# returned to client after authorization

# IT SHOULD BE REAL ADDRESS OF YOUR SERVER OR V7 WILL NOT WORK

V7 BOS address = 192.168.2.10:5190

V7 proto config = /etc/iserverd/aim_proto.conf

# WARN: V7 clients doesn't provide enough information

# for manual registration, so there is only autoregistration

# And it is disabled by default

V7 registration enabled = Yes

# Default icbm subsystem parameters for V7 proto

# Client can change this params via SNAC(04,02)

V7 default max channel = 2

V7 default max msgsize = 512

V7 default max sevil = 999

V7 default max revil = 999

V7 default mm interval = 0

# Maximum groups in ServerStoredInformation

V7 max ssi groups = 61

# Maximum ingnore records in ServerStoredInformation

V7 max ssi ignore = 128

# Maximum non-icq contacts in ServerStoredInformation

V7 max ssi non-icq = 200

 

 

 

 

сайт разработчика http://iserverd.khstu.ru/russian

Последняя стабильная версия

http://iserverd.khstu.ru/download/IServerd-stable.tar.gz

Последняя current версия

http://iserverd.khstu.ru/download/IServerd-current.tar.gz

Да пошёл этот кризис на ......

Ссылка на комментарий
Поделиться на других сайтах

  • VIP
Ссылка на комментарий
Поделиться на других сайтах

  • VIP
MURAD бросай курить всякую гадость по утрам))))

ыы)) он вообщето дельные мысли говорит =))))))))

многобукаф, часть осилил =)

Ссылка на комментарий
Поделиться на других сайтах

  • VIP

Мне хватило названия ОС))) я только про нее читала дальше ноль

Ссылка на комментарий
Поделиться на других сайтах

  • Почтенные пользователи =)

Эльза учи =)

 

Мурад,давай дальше!

Ссылка на комментарий
Поделиться на других сайтах

  • 3 недели спустя...
  • VIP
ыы)) он вообщето дельные мысли говорит =))))))))

многобукаф, часть осилил =)

гыыы))) ты чо постгресовский конфиг осиливал?))

не будите во мне зверя - это бесполезно)

и кстати, земляне, я пришел с миром)

Ссылка на комментарий
Поделиться на других сайтах

  • VIP
гыыы))) ты чо постгресовский конфиг осиливал?))

вот до сюда дочитал...

Пришла мне тут идея в голову.

=)))))))

Ссылка на комментарий
Поделиться на других сайтах

  • 6 лет спустя...

Всем привет =))

Пришла мне тут идея в голову. Не берусь за то' что я придумал что-то новое )

Скорее всего даже существуют готовые решения ...

Может быть сумбурно получится' но я попытаюсь кратко обрисовать ситуацию и мои намерения ...

Нужно запустить в одной крупной сети (может даже сразу в 3-х локальных сетях)

Как я понимаю для этого нужен и сервер и клиент.

Весь трафик должен проходить через сервер. Для клиентов ася должна быть бесплатной. И работать она должна по локальной сети' без всключенного VPN-соединения.

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

Сам icq-клиент любой пользователь должен будет скачать с сети к себе на винт.

Клиент должен будет быть предустановленным и со всеми настройками. Что бы 2 щелчками мыши ... И вбить пару uin/пароль и связь со всем миром бесплатно ...

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

Т.о. любой пользователь сети получает асю бесплатно.

 

Пытался написать ЛС, но они почему то мне запрещены, тема хоть и очень старая, хотел бы узнать, реально ли сделать с помощью iseverd не локальный icq сервер, а публичный? доступный через интернет?

Ссылка на комментарий
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в теме...

×   Вставлено в виде отформатированного текста.   Восстановить форматирование

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Загрузка...
 Поделиться

  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу.