SIQ - ICQ server for Win32
Full version v1.2.7.4
Upgrade

 

English

SIQ - ICQ server for Win32

Назначение
Данная программа представляет собой ICQ Server, в основном, для локальной сети предприятия. Сеанс связи через интернет прошел успешно, но далее не тестировалось.
Возможности
  • UIN от 1 до 4 294 967 294
  • отправка сообщений с подтверждением и без него
  • отправка онлайн- и оффлайн- сообщений
  • отправка сообщений, и получение статуса подьзователей через командную строку и ActiveX
  • Поддержка списков рассылки
  • виртуальный UIN - разослать всем онлайн-пользователям
  • виртуальный UIN - разослать всем (и включенным и выключенным) формируется автоматически из всех клиентов в .\DB\*.ini за вычетом списков рассылок
  • Добавлен параметр isSendChat Если он установлен в 1, то при отправке через список рассылки, приходит от
  • Добавлен параметр TemplateMsg Если isSendChat=1, то при отправке через список рассылки, этот текст вставляется в начало сообщения.
  • Добавлена возможность рассылать SMS и email
  • Выложены простенькие ASP-скрипты для регистрации нового юсера и напоминания пароля. Запускается по IIS.
  • Выложены PHP-скрипты для регистрации нового юсера и напоминания пароля. Автор Никонов Максим
  • 28/10/04 Выложена версия 1.2.4.7. В ней доделана поддержка Миранды 0.3.3.1.
  • 28/10/04 Работает плугин TypingNotify. Он рассылает всплывающие подсказки при начале и окончании набора сообщений. В основомиз-за него и пришлось писать новую версию сервера :-)
Часто задаваемые вопросы (FAQ)
Клиент
Тестировалась на клиентах Miranda 1/2/3. http://www.miranda-im.org/ и &RQ http://www.rejetto.com/&RQ
На других ICQ-клиентах не проверялось, и в планах не значится (зачем что-то еще, когда есть Miranda :-)

Были сообщения об успешной работе с Триллианом, но сам я не тестировал и точно скзать не могу

Ведуться работы по адаптации к библиотеке ICQClient {v. 1.18f} http://sourceforge.net/projects/ticqlib

Для отправки оффлайн сообщений длиной больше 450 символов, надо очень немного плугин ICQ.dll. Если вам это не критично, то можно оставить icq.dll из дистрибутива Миранды. Это ограничение стандарта, а не сервера SIQ, который фактически поддерживает длину до 60 КБ.

В полной версии дистрибутива лежит клиент Миранда 0.3.3.1 со сделанными исправлениями, профилем по-умолчанию и с самыми нужными плугинами.

Инсталляция
  1. Остановить оба сервера
  2. Запустить siq-full.exe
  3. Выбрать параметры инсталляции и инсталлировать
  4. После инсталляции настроить в реестре [HKEY_LOCAL_MACHINE\SOFTWARE\OVR\SIQ]
  5. path - каталог с программой. ("C:\Program Files\SIQ\") должен обязтельно заканчиваться слэшем
  6. настроить параметры серверовв файле siq.ini
    • Auth_Port порт сервера авторизации (5190)
    • BOS_Port порт сервера основных служб (5191)
    • BOS_IP IP-адрес сервера основных служб (Обязательно сменить на реальный)
    • LogLevel Уровень серьезности лога от 0 до 11 (9)
  7. настроить списки рассылки в файле siq.ini
  8. Стартовать службы SIQAuth и SIQBOS. При необходимости сменить параметры автозапуска а так же пользователя, под которым запускаются сервисы.
  9. Запустить клиента из каталога SIQ\Miranda\miranda32.exe
  10. Сменить в настройках адрес сервера
  11. Для установки клиента Миранда - нужно скопировать 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
Программа предназначена для отправки сообщений через командную строку
  • 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
Этот ActiveX объект предназначен для передачей сообщенией.
Он поддерживает следующие свойства для чтения и записи
  • 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, сервер, порт...
Контактные данные
Телефоны (4212) 79-42-55 - рабочий
e-mail ingenero@mail.ru
icq 96659587
www www.kht.ru/homepage/apt
Дата: 28.10.2004 Если нужны новые фичи, или нашли старые баги, то напишите по адресу ingenero@mail.ru и возможно, наше сотрудничество окажется плодотворным!

Также стоит отметить, что в 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 списка:

* Список игнорируемых — от оказавшихся в этом списке пользователей не приходит никаких уведомлений, им не показывается никакой статус добавившего, кроме «Не в сети».