Свой icq сервер windows
Были сообщения об успешной работе с Триллианом, но сам я не тестировал и точно скзать не могу
Ведуться работы по адаптации к библиотеке ICQClient
Для отправки оффлайн сообщений длиной больше 450 символов, надо очень немного плугин ICQ.dll. Если вам это не критично, то можно оставить icq.dll из дистрибутива Миранды. Это ограничение стандарта, а не сервера SIQ, который фактически поддерживает длину до 60 КБ.
В полной версии дистрибутива лежит клиент Миранда 0.3.3.1 со сделанными исправлениями, профилем по-умолчанию и с самыми нужными плугинами.
- Остановить оба сервера
- Запустить siq-full.exe
- Выбрать параметры инсталляции и инсталлировать
- После инсталляции настроить в реестре [HKEY_LOCAL_MACHINE\SOFTWARE\OVR\SIQ]
- path — каталог с программой. («C:\Program Files\SIQ\») должен обязтельно заканчиваться слэшем
- настроить параметры серверовв файле siq.ini
- Auth_Port порт сервера авторизации (5190)
- BOS_Port порт сервера основных служб (5191)
- BOS_IP IP-адрес сервера основных служб (Обязательно сменить на реальный)
- LogLevel Уровень серьезности лога от 0 до 11 (9)
- настроить списки рассылки в файле siq.ini
- Стартовать службы SIQAuth и SIQBOS. При необходимости сменить параметры автозапуска а так же пользователя, под которым запускаются сервисы.
- Запустить клиента из каталога SIQ\Miranda\miranda32.exe
- Сменить в настройках адрес сервера
- Для установки клиента Миранда — нужно скопировать mfc70.dll, msvcp70.dll, msvcr70.dll в каталог Миранды или c:\winnt\systm32\ на компьютеры клиента. Дистрибутив выкладывает эти файлы в каталог c:\winnt\systm32\ на сервере.
Все, должно работать. Если не так, то пишите сюда
Примечания Для ручной настройки необходимо знать
- SIQBOS.exe /? — справка о командной строке
- SIQBOS.exe setup — регистрация сервиса основных служб
- SIQBOS.exe delete — удаление сервиса основных служб
- SIQAuth.exe /? — справка о командной строке
- SIQAuth.exe setup — регистрация сервиса авторизации
- SIQAuth.exe delete — удаление сервиса авторизации
- %SystemRoot%\System32\regsvr32.exe SIQAX.dll — регистрация ActiveX
- %SystemRoot%\System32\regsvr32.exe SIQAX.dll /u — удаление ActiveX
- При установке сервиса в режим паузы, происходит сборс логов на диск, вывод статистики, и делается невозможным подключение новых пользователей. Ранее подключенные пользователи продолжают работать.
- Важно использовать плугин ICQ.dll из дистрибутива. Иначе будут ошибки отображения статуса и поиска.
- Можно задать градацию серьезности логов
- 0 16-е дампы
- 3 все пакеты и все сообщения
- 6 все пакеты, кроме сообщения о смене статуса
- 7 сообщения о неподдерживаемых пакетов
- 9 только описания событий
- 11 только ошибки и важные сообщения
Пропущенные значения оставлены для резерва. Учитываются как меньшие по-важности. Для старых версий надо сменить в реестре isDebug на LogLevel
Для вновь создаваемых профилей необходимо убрать галку: Настройки/Сеть/ICQ контакты/Использовать список на сервере Иначе статус может отображаться некорректно. Эта эта галка доступна только при отключенном состоянии. Т.е. запускам миранду, переводим ее в offline, вызываем настройки, убираем галку, подключаемся к серверу, радуемся 🙂
- SIQAuth.exe — сервер авторизации
- SIQBOS.exe — сервер основных служб
- SIQCmd.exe — посылка сообщений через командную строку по TCP-IP
- SIQAx.dll — COM-объект для управлнеия сервером и посылкой сообщений.
- siq.ini — списки рассылок
- test.htm — прмер использования SIQAx
- \db — профили пользователей
- \olm — off line message — сообщения, присланные во время отключения от сервера
- \Cookie — хранит файлы, используемые при авторизации. Каталог использует SIQAuth SIQBOS
- \Miranda — Миранда 3 со сделанными исправлениями и с самыми нужными плугинами,
Редактируем файл siq.ini
.
[Lists]
;все активные — разослать сообщение всем, кто онлайн
SendOnLine=99
;ниже идут произвольные UIN, при отправке сообщений на который, они будут рассылаться всем, прописанным в списке. Например:
;двойные заявик
1=97
;конец siq.ini
смотрю файл \db\97.ini
в нем добавлен раздел, в котором перечислены люди, к которым надо пересылать сообщение. Это UIN 123, 144, 132, 135
[List]
; диспетчеры, зав складом и зам склада
0=123
1=114
2=132
3=155
UIN — рассылки должны быть всегда offline. Иначе, в режиме отправки с подтверждением, работа будет некорректной.
При смене данных в списках рассылки необходимо перезапустить сервис SIQBOS или перевести его в режим Пауза, а потом продолжить опять. В последнем случае, пользователи не будут отключаться.
- SIQCmd.exe ip_адрес порт MSG от_кого кому текст_сообщения отправка сообщения
- SIQCmd.exe ip_адрес порт MSGF от_кого кому текст_сообщения отправка сообщения из файла
- SIQCmd.exe 127.0.0.1 5191 MSG 100 99 «тест 1 2 3» отправка сообщения «тест 1 2 3 » от 100 к 99 через сервер 127.0.0.1 и порт 5191
- SIQCmd.exe ICQ 5191 MSGF 100 99 msg.txt отправка сообщения из файла msg.txt от 100 к 99 через сервер ICQ и порт 5191 Файл должен быть в кодировке Windows-1251
Он поддерживает следующие свойства для чтения и записи
- SIQAX.Message = «:-)» // текст сообщения
- SIQAX.MessageFile = «C:\src\vc\SIQ\SIQAX\stdafx.cpp» // файл, где храниться сообщние
- SIQAX.ICQServer = «127.0.0.1» // адрес сервера. Можно в виде www.xxx.ru
- SIQAX.ICQPort = 5191 // порт
- SIQAX.UINto = 100 // получатель
- SIQAX.UINfrom = 99 // отправитель
- SIQAX.GetUinInfo(uin) // запрос информацци по uin с сервера
- SIQAX.UinInfo(tp) // вызывать после GetUinInfo
Пример использования приведен в test.htm
свойство только для чтения — SIQAX.Status
- 0; // all OK
- -1; // host not found
- -2; // Error open file
- -3; // Error — file to lage
- -4; // Error allocate memory
- -5; // Error read file-msg
- -6; // error send
- -7; // socket call failed
- -8; // connect failed
- -9; // указана неправильная команда
- -10; // ошибка WSAStartup
- -11; // Error getting status info;
Методы
- SIQAX.SendMsg() // послать сообщение. Нет параметров. Используются ранее установленные
свойства, такие как SIQAX.Message, сервер, порт. - SIQAX.SendFile() // послать сообщение из файла. Нет параметров. Используются ранее установленные
свойства, такие как SIQAX.MessageFile, сервер, порт.
Также стоит отметить, что в ICQ 6 статусы Do not disturb и Occupied, установленные у другого пользователя, воспринимаются одинаково, то есть как Occupied.
Помимо этого, для учётной записи пользователь может устанавливать особый режим — «режим невидимости» (invisible). В этом режиме другие пользователи будут получать для учётной записи статус присутствия «не в сети», а знать об активном режиме невидимости и получать актуальный статус присутствия смогут только пользователи, чьи учётные записи были внесены в список видимости пользователя.
Дополнительный информационный статус
Начиная со времени появления ICQ 5, в протокол ICQ были внесены небольшие дополнения, которые позволили пользователям иметь сразу два статуса — основной и дополнительный. Однако, до определённого момента (а именно до выхода в свет ICQ 6, в которой, правда, были проведены небольшие изменения в этом аспекте протокола) это являлось не более чем особенностью протокола ICQ, которую используют многие альтернативные клиенты ICQ. ICQ 5 и ICQ 5.1 предлагали пользователю только возможность поставить либо один из основных статусов, либо любой из дополнительных. Однако, стоит отметить, что, если в настройках клиента установлен режим автопереключения в статус Away и/или N/A по прошествии определённого времени, то он мог незаметно ставиться поверх установленного пользователем дополнительного статуса. Ценой же полной реализации этого механизма в ICQ 6 явилось невозможностью просматривать дополнительный статус и его содержание в старых версиях ICQ (5.0x и 5.1). Однако появился и плюс — возможность вставлять в статус форматированный RTF-текст.
После успешной авторизации клиент ICQ загружает с сервера список контактов пользователя. Контакты в списке могут быть разделены на группы, имена и количество которых изменяются пользователем.
При добавлении контакта может потребоваться авторизация — разрешение видеть его статус присутствия и отправлять ему файлы. Для таких контактов формируется запрос на авторизацию, который доходит до пользователя добавляемой учётной записи в виде системного уведомления, на которое он может ответить либо согласием, либо отказом, по желанию снабдив решение текстовым комментарием.
Максимально можно иметь 1000 контактов .
Для обеспечения необходимого уровня конфиденциальности в ICQ существует несколько списков, выполняющих определённую функцию, в которые каждый пользователь может заносить любые контакты без уведомления последних.
Существует 3 списка:
* Список игнорируемых — от оказавшихся в этом списке пользователей не приходит никаких уведомлений, им не показывается никакой статус добавившего, кроме «Не в сети».
Установка ICQ-Server
Посетителей: 16802 | Просмотров: 22242 (сегодня 0)
Ну начну пожалуй с того, что для этого я выбрал SIQ — ICQ server for Win32.. Давольно простенький сервер, и имеет все необходимое:
— Поддержка протокола v7/8
— работа в виде сервисов
-UIN от 1 до 4 294 967 294
-отправка сообщений с подтверждением и без него
-отправка онлайн- и оффлайн- сообщений
-отправка сообщений через командную строку
-отправка сообщений через ActiveX
-Поддержка списков рассылки
-виртуальный UIN — разослать всем онлайн-пользователям
-виртуальный UIN — разослать всем (и включенным и выключенным)формируется автоматически из всех клиентов в .DB*.ini за вычетом списков рассылок
-поддержка авторизации
-введена градация серьезности логов
И т.п. В общем все что необходимо для нормального ICQ — общения! Ну приступим к установке! Для начала скачайте себе сервер SIQ — ICQ server for Win32 .. Это полная версия! Внутри у нас следующее:
-SIQAuth.exe — сервер авторизации
-SIQBOS.exe — сервер основных служб
-SIQCmd.exe — посылка сообщений через командную строку по TCP/IP
-SIQAx.dll — COM-объект для управления сервером и посылкой сообщений.
-siq.ini — списки рассылок
-msg.htm — пример использования SIQAx
db — профили пользователей
olm — off line message — сообщения, присланные во время отключения от сервера
Cookie — хранит файлы, используемые при авторизации. Каталог использует SIQAuth SIQBOS
Miranda — Миранда 3 со сделанными исправлениями и с самыми нужными плагинами
Сервер тестировался на клиентах Miranda 1/2/3. http://www.miranda-im.org/ и &RQ http://www.rejetto.com/&RQ .. В Mirande-3 номер ICQ должен быть больше 10000 и длина пароля более 1 буквы. В клиенте из дистрибутива это исправлено. В полной версии дистрибутива лежит клиент Миранда 3.1 со сделанными исправлениями, профилем по-умолчанию и с самыми нужными плагинами.
1. Запустить siq-full.exe
2. Выбрать параметры инсталляции и инсталлировать
3. После инсталляции настроить в реестре[HKEY_LOCAL_MACHINE\SOFTWARE\OVRSIQ] path — каталог с программой. («C:\Program Files\SIQ») должен обязательно заканчиваться слэшем
4. настроить параметры серверов файле siq.ini
— Auth_Port порт сервера авторизации (5190)
— BOS_Port порт сервера основных служб (5191)
— BOS_IP IP-адрес сервера основных служб (Обязательно сменить на реальный)
— LogLevel Уровень серьезности лога от 0 до 11 (9)
5. настроить списки рассылки в файле siq.ini
6. Стартовать службы SIQAuth и SIQBOS. При необходимости сменить параметры автозапуска а так же пользователя, под которым запускаются сервисы.
7. Запустить клиента из каталога «\SIQ\Miranda\miranda32.exe»
8. Сменить в настройках адрес сервера
9. Плагином Database Editor задать переменные Миранда/Текущий пользователь/ICQ/WWWPass и WWWReg — указать адреса www-страниц для напоминания пароля и регистрации нового пользователя. По умолчанию http://icq/password/ и http://icq/register/ Это для тех, у кого свой сервер с CGI
Для установки клиента Миранда — нужно скопировать mfc70.dll, msvcp70.dll, msvcr70.dll в каталог Миранды или «c:\winnt\systеm32\» на компьютеры клиента. Дистрибутив выкладывает эти файлы в каталог «c:\winnt\systеm32\» на сервере.
Для ручной настройки необходимо знать:
SIQBOS.exe /? — справка о командной строке
SIQBOS.exe setup — регистрация сервиса основных служб
SIQBOS.exe delete — удаление сервиса основных служб
SIQAuth.exe /? — справка о командной строке
SIQAuth.exe setup — регистрация сервиса авторизации
SIQAuth.exe delete — удаление сервиса авторизации
%SystemRoot%System32regsvr32.exe SIQAX.dll — регистрация ActiveX
%SystemRoot%System32regsvr32.exe SIQAX.dll /u — удаление ActiveX
При установке сервиса в режим паузы, происходит сброс логов на диск, вывод статистики, и делается невозможным подключение новых пользователей. Ранее подключенные пользователи продолжают работать. Для вновь создаваемых профилей необходимо убрать галку: Настройки/Сеть/ICQ контакты/Использовать список на сервере Иначе статус может отображаться некорректно. Эта галка доступна только при отключенном состоянии. Т.е. запускаем Миранду, переводим ее в offline, вызываем настройки, убираем галку, подключаемся к серверу, радуемся =)
Пример настроек списков рассылок:
Редактируем файл siq.ini . [Lists]
;все активные — разослать сообщение всем, кто онлайн
SendOnLine=99
;ниже идут произвольные UIN, при отправке сообщений на который, они будут рассылаться всем, прописанным в списке. Например:
;двойные заявки
1=97
;конец siq.ini
смотрю файл db97.ini
в нем добавлен раздел, в котором перечислены люди, к которым надо пересылать сообщение. Это UIN 123, 144, 132, 135
[List]
; диспетчеры, зав складом и зам склада
0=123
1=114
2=132
3=155
UIN — рассылки должны быть всегда offline. Иначе, в режиме отправки с подтверждением, работа будет некорректной.
При смене данных в списках рассылки необходимо перезапустить сервис SIQBOS или перевести его в режим Пауза, а потом продолжить опять. В последнем случае, пользователи не будут отключаться.
Ну, я думаю, этого вполне достаточно! Я не буду описывать посылку сообщений через командную и т.п. Так что если у вас есть локальная сеть — и нужен ICQ Local Serv — то этого вполне достаточно!