---
name: "vicq"
section: "1"
platform: "linux"
package: "vicq"
version: "0.4.1-1"
release: "Debian 3.0 (Woody)"
platforms: ["linux"]
url: "https://new.carta.tech/vicq"
---

# vicq(1)

vicq - console ICQ2000 client

```
  vicq [-u UIN] [-rbo] [-c config] [-t delay]
```

**vicq** is console icq2000 client, simmilar to micq When invoked with **-u** option, vicq expects to read single message from **stdin** and sends it to the specified *UIN* Use alternative config instead of ~/.vicq/config Do not send contact list and visible/invisible list (use in a non-interactive mode) Do not request offline messages (use in a non-interactive mode) Delay between commands in non-interactive mode Register new UIN on startup\
 **Non-interactive mode** You can use vicq in non-interactive mode by writing script and  sending  it on stdin of programm, for example:

```
 echo "msg gonzo/hi" ⎪ vicq -b -o
```

```
 or
```

```
 $cat > xx
 msg gonzo/hi
 msg gonzo
 multi
 line
 message
 .
 ^D
 $cat xx ⎪ vicq -b -o -t 5
```

On slow connections you must set delay between commands using **-t** option because some message disappears ( i dont sure that source of this problem  slow connections, may be ICQ server drops flood messages) Config file (~/.vicq/config) consists of several sections described below.  Each section starts with header line like this: '\[section\_name\]'. Lines  starting with '#' are comments.  You can split entire config in several  files using 'include' directive. BUT! You should place whole section in  one file, the section header should be placed in the same file.  Example  of using include you can find  at http://www.gonzo.kiev.ua/projects/vicq/eg/\
 **\[options\]** The **\[options\]** section contains configuration variables. Each variable is in "name=value" format (case-sensitive). Configuration variables: User's UIN User's password If you dont want to save config on exit set this variable to 1:  **keep\_config=1** Valid values 'koi','win' and 'translit', depending on your terminal If not zero, vICQ will request info on every UIN which is not in ContactList automaticaly if not zero ICQ will not show your IP Main vICQ prompt template. The following variables will be parsed and may  be used in prompt string:\
  `%S` - by short description of your status\
  `%U` - by your uin\
  `%h` - current hour\
  `%m` - current minute\
  `%s` - current second\
  %% - '%'

Example:

```
 prompt=vICQ(%S)/%U[%h:%m:%s]E<gt>
```

Path to external file with sms phones in **\[phones\]** section format. Section tag ('\[phones\]') is must for this file. Length of separator line if not equal to **0** disables separator without text Number of messages which displays in  user history, if its negative - displays all history Valid values **normal** or **silent**. In **silent** mode status\_change events does not appear on screen. Initial status. Valid values are:

```
 Online
 Free_For_Chat
 Away
 Not_Avalible
 Occupied
 Do_Not_Disturb
 Invisible
```

If this is not **0**, vicq will use colors. If this is not **0**, vICQ use colors for history output(You can set  you PAGER environment variable to **less -R** for using color) Color of the separator line Color for the title separator Color for highlighting nicknames Color for highlighting uins Color for highlighting status Color for highlighting time Message color Color for incoming events in history Color for outgoing events in history

Valid colors are:

```
 NORMAL
 YELLOW
 MAGENTA
 WHITE
 BLACK
 RED
 GREEN
 BROWN
 BLUE
 CYAN
 LIGHT_CYAN
 LIGHT_RED
 LIGHT_GREEN
 LIGHT_BLUE
```

And three text attributes for monochrome terminals:

```
 BOLD
 UNDERSCORE
 REVERSE
```

Command for playing sounds (see **\[sounds\]** section) '%f' in player path will be replaced with filename  chosen according to the **\[sounds\]** section

Example:

```
 player=/path/to/player -f %f -o /dev/dsp
```

Command for browsing received URLs: '%u' in browser command will be replaced with last recieved url

Example:

```
 browser=/path/to/browser -navigator %u
```

If not **0**, vICQ with work through HTTPS-capable proxy If not **0**, vICQ with work through SOCKS-capable proxy(v5 only available for this moment) HTTPS/SOCKS proxy host HTTPS/SOCKS proxy port Login for HTTPS/SOCKS proxy authorization (if ommited - don't use aythorization for SOCKS proxy) Password for HTTPS/SOCKS proxy authorization if **1**, always connect to login.icq.com on port **443**, regardless  of what specified in the reconnection messages

Example of HTTPS proxy configuration:

```
 https_proxy=1
 proxy_port=3128
 proxy_host=10.25.0.99
 proxy_force_https_port=1
```

Example of SOCKS proxy configuration(without authorization):

```
 socks_proxy=1
 proxy_port=1080
 proxy_host=10.25.0.99
```

Directory, which contains history files.

Example:

```
 log_path=~/.vicq.log
```

Specifies method which logs saves. Its a string if its empty -  don't log, else calls methods correspondingly chars which appears  in strings. Valid chars:

```
 a - log to <log_path>/vicq.log
 u - log to <log_path>/<uin>.log
 s - log status changes
 n - make newlines between log records
 l - make symlinks <nick>.log to <uin>.log
```

Default: log\_type=u.

Example:

```
 log_type=usln
```

If not **0** mICQ style completion is using: cicles through UINs used in previous **msg** commands If not **0** messages longer than 450 chars will be splitted  into several  parts, otherwise - message will be truncated to 450 chars\
 **\[aliases\]** The **\[aliases\]** section contains run-time options. Its format is 'alias=command'. Example:

```
 m=msg
```

**\[phones\]** The **\[phones\]** section contains phonebook for SMS messages in 'nick phone' format.  You can use these aliases in 'sms' command Example:

```
 squid +380xxxxx
 ReY +380xxxxxx
```

**\[events\]** The **\[events\]** section contains events hooks. Its format is\
  **event\[/nick\]\[⎪my\_status\] command** or\
  **\[!\]\[⎪\]event\[/nick\]\[⎪my\_status\] "command1","command2"**  where **event** is the type of event, **nick\_or\_uin** sender's nick or uin, **my\_status** your status (all parameters could be glob-style wildcard), if optional parameters  **nick\_or\_uin** or  **my\_status** is ommited then they acts as **\***(any). **command** is an command name to be executed when event occurs and event type, sender's info and your status  matches specified parameters.**!** in the beggining means that hook is inactive. **⎪** in the beginning means that event does not break checking after match. The following variables will be parsed and may be used in 'command' string:\
  **%e** - by type of event\
  **%u** - by sender's uin\
  **%n** - by sender's nick\
  **%t** - by message text (or status value if type of event is 'status\_change') Y ou can use uppercase modifiers to make them colored e.g.\
  **%E** - colored type of event\
  If you want run external command - use **!** in command definition. Examples:

```
 * ! echo 'Event %e from %n(%u) : %t' ⎪ mail mymail@myhost.com
```

(send email to mymail@myhost.com with the full description of the recieved event)

```
 text_message msg %u/i will read this message later
```

(simple autoresponder)

```
 text_message⎪online msg %u/hi\nI am  online
 text_message/GonZo⎪away msg %u/hi GonZo\nI am away
```

(extended autoresponder) List of events types:\
  sms\_delivery\_receipt\
  status\_change\
  URL\
  sms\_message\
  contacts\_request\
  email\_message\
  text\_message\
  offline\_text\_message\
  contacts\
  add\_message\
  auth\_request\
  sms\_response\
  sms\_message\
  user\_short\_info\
  user\_info\_not\_found\
  ack\_offline\
  set\_permissions\_ack\
  user\_info\_unknown\
  user\_info\_about\
  user\_info\_main\
  user\_info\_extra\_emails\
  set\_main\_info\_ack\
  wp\_final\_result\_info\
  wp\_empty\
  user\_info\_homepage\
  wp\_result\_info\
  user\_info\_past\_background\
  user\_info\_personal\_interests\
 **\[sounds\]** Section **\[sounds\]** is similar to **\[events\]** section, allowing you to specify audio files played upon various incoming events. Playback will be done through the "player" application defined in the **\[option\]** section, with **%f** token substituted with the proper filename.\
 **\[contacts\]** **\[contacts\]** section lists UINs, format is the same as in .micqrc:

```
 UIN Nickname
```

To add user to visible list add asterisk (**\***) before UIN (see vicqrc.example). If you want be invisible to user add tilde (**~**) before UIN. If you want create alias for UIN/Nick just add aliases in the line below UIN (see vicqrc.example)\
 **Completion & nick handling** You can use TAB to complete command or nick, if your nicks contains spaces: use double quotes to handle this nicks  eg: \
  vICQ\>msg "anri \<TAB\>\
 **Messages handling** send an instant ICQ message send SMS to specified person replie to last received message send a message to the last person you sent a message send an authorization to specified UIN send an URL to specified person\
 **Status managment** change status to 'Online' change status to 'Invisible' change status to 'Away' change status to 'Not availabe' change status to 'Occupied' change status to 'Do Not Disturb' change status to 'Free for chat' change status to 'Offline/Disconnect'\
 **Contact list managment** add *UIN* as *nick* to contact list display the current status of every person in your contact list display the current status of every online person in your contact list add/remove user to/from visible list add/remove user to/from invisible list display last *count* entries of the user's history. If *count* is negative shoes all entries display user's UIN, nick, current status, IP(and resolved host if  available), dirrect connection info, and client version\
 **Miscellaneous commands** display help on command execute external command save config send user info request searche for ICQ user toggle to silent mode - change status events does not displays toggle to normal mode - change status events displays open last recieved URL with *browser* command shows/sets config variables values set basic White Pages info  clear screen

```
 show/change command aliases, ex:
 alias q=quit
```

```
 Show last message from UIN or nickname
```

```
 Sends to the output I<sting>. Use mainly in hooks
```

```
 Set 'web aware/need authorization' on/off, ex:
 permissions +auth -web
```

```
 Display current version of vICQ
```

```
 activate/deactivate event  or add new event
```

```
 register new UIN with specified password
```

**Message editing** Input **.** in the empty line to end message or **#** to cancel message Alexander Timoshenko \<gonzo@ukrweb.net\>
