|
|
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 со сделанными исправлениями, профилем
по-умолчанию и с самыми нужными плугинами.
|
Инсталляция |
- Остановить оба сервера
- Запустить 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 |
Программа предназначена для отправки сообщений через командную строку
- 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 списка: * Список игнорируемых — от оказавшихся в этом
списке пользователей не приходит никаких уведомлений, им
не показывается никакой статус добавившего, кроме «Не в сети».
|