# Complementary Applications

## serctl command-line tool

serctl is a command-line utility which allows to perform most of management tasks needed to operate ser: adding users, changing their passwords, watching server status, etc. Usage of utility is as follows:

### serctl usage

    usage:
               * subscribers *
     serctl add <username> <password> <email> .. add a new subscriber (*)
     serctl passwd <username> <passwd> ......... change user's password (*)
     serctl rm <username> ...................... delete a user (*)
     serctl mail <username> .................... send an email to a user
     serctl alias show [<alias>] ............... show aliases
     serctl alias rm <alias> ................... remove an alias
     serctl alias add <alias> <uri> ............ add an alias

               * access control lists *
     serctl acl show [<username>] .............. show user membership
     serctl acl grant <username> <group> ....... grant user membership (*)
     serctl acl revoke <username> [<group>] .... grant user membership(s) (*)

               * usrloc *
     serctl ul show [<username>]................ show in-RAM online users
     serctl ul rm <username> ................... delete user's UsrLoc entries
     serctl ul add <username> <uri> ............ introduce a permanent UsrLoc entry
     serctl showdb [<username>] ................ show online users flushed in DB

               * server health *
     serctl monitor ............................ show internal status
     serctl ps ................................. show running processes
     serctl fifo ............................... send raw commands to FIFO

       Commands labeled with (*) will prompt for a MySQL password.
       If the variable PW is set, the password will not be prompted.

Prior to using the utility, you have to first set the environment variable `SIP_DOMAIN` to locally appropriate value (e.g., "foo.com"). It is needed for calculation of user credentials, which depend on SIP digest realm. (see also MSM Authentication Issue)

### Example Output of Server Watching Command `sc monitor`

    [cycle #: 2; if constant make sure server lives and fifo is on]
    Server: Sip EXpress router(0.8.8 (i386/linux))
    Now: Thu Sep 26 23:16:48 2002
    Up Since: Thu Sep 26 12:35:27 2002
    Up time: 38481 [sec]

    Transaction Statistics
    Current: 0 (0 waiting) Total: 606 (0 local)
    Replied locally: 34
    Completion status 6xx: 0, 5xx: 1, 4xx: 86, 3xx: 0,2xx: 519

    Stateless Server Statistics
    200: 6218 202: 0 2xx: 0
    300: 0 301: 0 302: 0 3xx: 0
    400: 0 401: 7412 403: 2 404: 1258 407: 116 408: 0 483: 0 4xx: 25      500: 0 5xx: 0
    6xx: 0
    xxx: 0
    failures: 0

    UsrLoc Stats
    Domain Registered Expired
    'aliases' 9 0
    'location' 29 17

## Web User Provisioning -- serweb

To make provisioning of user accounts convenient, a web front-end to ser, serweb has been developed. serweb, a PHP-written web application, allows users to apply for new ser accounts, and maintain these. Users can manipulate their contacts, keep a phone-book with SIP addresses, change password, send instant SIP messages, and more. Administrators can manipulate any accounts and grant or revoke user privileges.

serweb is freely available from berlios site at http://developer.berlios.de/cvs/?group_id=500. Installation takes unpacking tarball to a safe destination at web server (better not in the HTML tree) and configuring `config.php` accordingly to local conditions.

Running serweb can be seen at iptel.org's SIP site. Just create and use a SIP account at http://www.iptel.org/user/