Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Notifies you about incoming/outgoing calls of a Auerswald COMpact 3000
PHP Shell
branch: master
Failed to load latest commit information.
data examples of how to configure notify-send and dreambox loggers
docs Q 931 ISDN spec
scripts more debugging for sendxmpp logger
src/callnotifier more debugging for sendxmpp logger
tests fix space between last date and number
.gitignore
LICENSE license and installation/dependency information
README.rst talk about loggers
callnotifier.php dumping network data is possible now

README.rst

Auerswald Callnotifier for COMpact 3000

Connects to the debug port of your Auerswald Compact 3000 telephony switchboard and listens for incoming calls. It will notify you whenever a call comes in.

It also listens for outgoing calls if you want that, and you can log incoming and/or outgoing calls into a file or a database.

Callnotifier is able to resolve the names of calls via LDAP and the caller location city names via OpenGeoDb.

Installation

  1. Clone the git repository
  2. Install dependencies
  3. Configure the tool
  4. Run ./callnotifier.php

Dependencies

  • PEAR's Console_CommandLine package
  • PEAR's Net_LDAP2 package for LDAP name resolution
  • curl for the dreambox notifier

Configuration

Copy data/callnotifier.config.php.dist to data/callnotifier.config.php (same name, just no .dist), open it in a text editor and adjust it to your needs.

It contains examples for every plugin. Adjust them as you need and remove the ones you do not need.

Call types

Logging plugins allow you to specify when calls shall be logged:

  • startingCall - when the call is coming in, and the telephone rings
  • finishedCall - when the call has ended

Furthermore you may decide which calls to log:

  • i - Log incoming calls only
  • o - Log outgoing calls only
  • io - Log both incoming and outgoing calls

Plugins

There are two types of plugins: Detailler and Logger. Detaillers load additional details to a call - e.g. a name - and loggers can do anything, e.g. write a log file or send a XMPP message.

Detailler

Plugins that fetch additional details to calls are named "detailler".

CallMonitor_Detailler_LDAP

The plugin determines the name for a telephone number by looking up a LDAP directory.

It retrieves the name of the caller for incoming calls, and the name of the telephonee for outgoing calls.

It searches the following LDAP attributes:

  • companyPhone
  • homePhone
  • mobile
  • otherPhone
  • telephoneNumber

Example configuration:

$callMonitor->addDetailler(
    new CallMonitor_Detailler_LDAP(
        array(
            'host' => 'ldap.home.cweiske.de',
            'basedn' => 'ou=adressbuch,dc=cweiske,dc=de',
            'binddn' => 'cn=readonly,ou=users,dc=cweiske,dc=de',
            'bindpw' => 'readonly'
        )
    )
);

CallMonitor_Detailler_OpenGeoDb

The plugin determines the location (city) for a telephone number by checking the area code (prefix number) against a OpenGeoDB SQL database.

If several locations share the same area code, the one with the most inhabitants is used.

If you use this plugin, you need to run docs/opengeodb-create-my_orte.sql on the OpenGeoDB database to create an indexed table with all relevant information needed by the plugin.

Example configuration:

$callMonitor->addDetailler(
    new CallMonitor_Detailler_OpenGeoDb(
        'mysql:host=dojo;dbname=opengeodb',
        'opengeodb-read',
        'opengeodb'
    )
);

Logger

Logger handle react on events like incoming or outgoing calls, if they start or finish, or on any data received from the ISDN bus.

Available logger:

CallDb
Log calls in a SQL database
CallDreambox
Send messages on incoming calls to the DreamBox satellite receiver
CallEcho
Log to the command line. Helpful for debugging.
CallFile
Log finished calls into a text file
CallFileTop
Log finished calls into a text file, newest on top
CallNotifySend
Use the unix notify-send command on starting and finished calls
CallSendXmpp
Send an XMPP headline message for incoming calls to one or multiple users.

Known issues

Ctrl+C does not send the disconnect command. This is a problem with PHP since pcntl_signal handling and blocking sockets do not work together. The signal will not be handled.

License

Auerswald callnotifier is licensed under the terms of the GPLv3 or later.

Source

Original git website: http://git.cweiske.de/?p=auerswald-callnotifier.git

Mirror: https://github.com/cweiske/auerswald-callnotifier

Something went wrong with that request. Please try again.