2007-11-24 12:56:49 +00:00
|
|
|
ANT - Ant is Not a Telephone
|
|
|
|
****************************
|
|
|
|
Copyright 2002, 2003, 2004, 2005 Roland Stigge
|
|
|
|
|
|
|
|
|
|
|
|
WHAT IT IS
|
|
|
|
==========
|
|
|
|
|
Version 0.2.0: CAPI 2.0, ALSA, threading, low-latency.
Changes in short:
* Re-work of session handling to use sound and ISDN threads, which
greatly reduces latency and CPU usage
* Complete re-work of ISDN subsystem to use CAPI 2.0
* Complete re-work of sound subsystem to use ALSA
* Re-work of recording subsystem to produce better results
* Re-work of debug and error message handling (centralized)
* Added --sleep and --wakeup remote commands to facilitate release
and re-acquire of CAPI connection
* Code documentation (partial)
Reduced latency:
----------------
We are now using separate threads to handle ISDN input (and send it to audio
output) and audio input (which again sends it to ISDN). This means, we are
not dependent on GTK GUI reaction time. This enables very good sound quality
with low latency and low CPU consumption (normally not measurable).
Tested with 3x parallel "while true; do true; done" and "find /". No sound
problems, even though the threads don't run with real time priority (which
can be implemented now relatively easily, though).
ISDN system:
------------
We now support CAPI 2.0. This means, any card supported by CAPI 2.0 should
work and also ant-phone should be able to coexist with other ISDN
applications.
New CAPI code was tested with Fritz!Card, both with fcpci driver and with
mISDN driver.
There are also remote-CAPI implementations which forward local CAPI requests
to a remote host (e.g., a Fritz!Box router). They should be also usable with
new CAPI subsystem (not tested).
Sound system:
-------------
Since we are now using ALSA, it's much easier to coexist with other sound
applications. However, sound device specification has been changed. You
should now type in ALSA names (normally 'default') instead of raw devices.
Recording:
----------
Recording subsystem now uses ring buffers and the buffers are flushed in GTK
thread on timeout. Although it would be possible to have special thread for
this purpose, it doesn't really make sense, since we buffer about 2 seconds.
In 2 seconds, the application better responds... Anyway, in the worst case,
there will be some samples skipped. Also, recording tries to stitch together
incoming samples on local as well as remote channels as it best fits based on
time code. Certain jitter is compensated for automatically, bigger jitter may
produce some cracks. However, in tests there was no such problem.
Debug and error message handling:
---------------------------------
All debug and error messages should now go through macros dbgprintf() and
errprintf(). This allows for implementing of debug log viewer later.
For new/rewritten code, all debug and error messages start with "COMPONENT: "
prefix. This allows for easier identification in logs.
Additionally, there are further debug levels, up to 4. Debug level 3 and
higher prints very noisy information about each audio packet processed.
Sleep and wakeup commands:
--------------------------
Some ISDN card drivers need to be unloaded before suspending the machine to
disk and loaded again after resume. This is not possible, as long as the
application is holding the CAPI connection. Therefore, two new command-line
commands have been implemented, which allow turning off and on the CAPI
connection (--sleep and --wakeup, respectively). They can be integrated into
suspend and resume scripts to take care of stopping and resuming CAPI.
Code documentation:
-------------------
Documentation for new code and for big rewritten parts has been changed to
Doxygen format. Instead of plain comments, you'll see comments in form
/*! ... */ with tags in form @tag, which allow Doxygen to generate
pretty-printed source code reference documentation. Doxygen script file
has not been actually produced. The rest of the files should be changed
as well to use Doxygen format tags in documentation of functions and
structures.
2007-11-24 17:55:27 +00:00
|
|
|
ANT is a telephone application written for GNU/Linux, CAPI 2.0 (ISDN
|
|
|
|
interface), GTK+ (GIMP Toolkit) and ALSA (sound system).
|
2007-11-24 12:56:49 +00:00
|
|
|
|
|
|
|
|
|
|
|
ABOUT ANT
|
|
|
|
=========
|
|
|
|
|
Version 0.2.0: CAPI 2.0, ALSA, threading, low-latency.
Changes in short:
* Re-work of session handling to use sound and ISDN threads, which
greatly reduces latency and CPU usage
* Complete re-work of ISDN subsystem to use CAPI 2.0
* Complete re-work of sound subsystem to use ALSA
* Re-work of recording subsystem to produce better results
* Re-work of debug and error message handling (centralized)
* Added --sleep and --wakeup remote commands to facilitate release
and re-acquire of CAPI connection
* Code documentation (partial)
Reduced latency:
----------------
We are now using separate threads to handle ISDN input (and send it to audio
output) and audio input (which again sends it to ISDN). This means, we are
not dependent on GTK GUI reaction time. This enables very good sound quality
with low latency and low CPU consumption (normally not measurable).
Tested with 3x parallel "while true; do true; done" and "find /". No sound
problems, even though the threads don't run with real time priority (which
can be implemented now relatively easily, though).
ISDN system:
------------
We now support CAPI 2.0. This means, any card supported by CAPI 2.0 should
work and also ant-phone should be able to coexist with other ISDN
applications.
New CAPI code was tested with Fritz!Card, both with fcpci driver and with
mISDN driver.
There are also remote-CAPI implementations which forward local CAPI requests
to a remote host (e.g., a Fritz!Box router). They should be also usable with
new CAPI subsystem (not tested).
Sound system:
-------------
Since we are now using ALSA, it's much easier to coexist with other sound
applications. However, sound device specification has been changed. You
should now type in ALSA names (normally 'default') instead of raw devices.
Recording:
----------
Recording subsystem now uses ring buffers and the buffers are flushed in GTK
thread on timeout. Although it would be possible to have special thread for
this purpose, it doesn't really make sense, since we buffer about 2 seconds.
In 2 seconds, the application better responds... Anyway, in the worst case,
there will be some samples skipped. Also, recording tries to stitch together
incoming samples on local as well as remote channels as it best fits based on
time code. Certain jitter is compensated for automatically, bigger jitter may
produce some cracks. However, in tests there was no such problem.
Debug and error message handling:
---------------------------------
All debug and error messages should now go through macros dbgprintf() and
errprintf(). This allows for implementing of debug log viewer later.
For new/rewritten code, all debug and error messages start with "COMPONENT: "
prefix. This allows for easier identification in logs.
Additionally, there are further debug levels, up to 4. Debug level 3 and
higher prints very noisy information about each audio packet processed.
Sleep and wakeup commands:
--------------------------
Some ISDN card drivers need to be unloaded before suspending the machine to
disk and loaded again after resume. This is not possible, as long as the
application is holding the CAPI connection. Therefore, two new command-line
commands have been implemented, which allow turning off and on the CAPI
connection (--sleep and --wakeup, respectively). They can be integrated into
suspend and resume scripts to take care of stopping and resuming CAPI.
Code documentation:
-------------------
Documentation for new code and for big rewritten parts has been changed to
Doxygen format. Instead of plain comments, you'll see comments in form
/*! ... */ with tags in form @tag, which allow Doxygen to generate
pretty-printed source code reference documentation. Doxygen script file
has not been actually produced. The rest of the files should be changed
as well to use Doxygen format tags in documentation of functions and
structures.
2007-11-24 17:55:27 +00:00
|
|
|
It directly interfaces ALSA and CAPI devices, so there is no need to install
|
2007-11-24 12:56:49 +00:00
|
|
|
extra software or hardware like PBX (Private Branch Exchange) or telephony
|
Version 0.2.0: CAPI 2.0, ALSA, threading, low-latency.
Changes in short:
* Re-work of session handling to use sound and ISDN threads, which
greatly reduces latency and CPU usage
* Complete re-work of ISDN subsystem to use CAPI 2.0
* Complete re-work of sound subsystem to use ALSA
* Re-work of recording subsystem to produce better results
* Re-work of debug and error message handling (centralized)
* Added --sleep and --wakeup remote commands to facilitate release
and re-acquire of CAPI connection
* Code documentation (partial)
Reduced latency:
----------------
We are now using separate threads to handle ISDN input (and send it to audio
output) and audio input (which again sends it to ISDN). This means, we are
not dependent on GTK GUI reaction time. This enables very good sound quality
with low latency and low CPU consumption (normally not measurable).
Tested with 3x parallel "while true; do true; done" and "find /". No sound
problems, even though the threads don't run with real time priority (which
can be implemented now relatively easily, though).
ISDN system:
------------
We now support CAPI 2.0. This means, any card supported by CAPI 2.0 should
work and also ant-phone should be able to coexist with other ISDN
applications.
New CAPI code was tested with Fritz!Card, both with fcpci driver and with
mISDN driver.
There are also remote-CAPI implementations which forward local CAPI requests
to a remote host (e.g., a Fritz!Box router). They should be also usable with
new CAPI subsystem (not tested).
Sound system:
-------------
Since we are now using ALSA, it's much easier to coexist with other sound
applications. However, sound device specification has been changed. You
should now type in ALSA names (normally 'default') instead of raw devices.
Recording:
----------
Recording subsystem now uses ring buffers and the buffers are flushed in GTK
thread on timeout. Although it would be possible to have special thread for
this purpose, it doesn't really make sense, since we buffer about 2 seconds.
In 2 seconds, the application better responds... Anyway, in the worst case,
there will be some samples skipped. Also, recording tries to stitch together
incoming samples on local as well as remote channels as it best fits based on
time code. Certain jitter is compensated for automatically, bigger jitter may
produce some cracks. However, in tests there was no such problem.
Debug and error message handling:
---------------------------------
All debug and error messages should now go through macros dbgprintf() and
errprintf(). This allows for implementing of debug log viewer later.
For new/rewritten code, all debug and error messages start with "COMPONENT: "
prefix. This allows for easier identification in logs.
Additionally, there are further debug levels, up to 4. Debug level 3 and
higher prints very noisy information about each audio packet processed.
Sleep and wakeup commands:
--------------------------
Some ISDN card drivers need to be unloaded before suspending the machine to
disk and loaded again after resume. This is not possible, as long as the
application is holding the CAPI connection. Therefore, two new command-line
commands have been implemented, which allow turning off and on the CAPI
connection (--sleep and --wakeup, respectively). They can be integrated into
suspend and resume scripts to take care of stopping and resuming CAPI.
Code documentation:
-------------------
Documentation for new code and for big rewritten parts has been changed to
Doxygen format. Instead of plain comments, you'll see comments in form
/*! ... */ with tags in form @tag, which allow Doxygen to generate
pretty-printed source code reference documentation. Doxygen script file
has not been actually produced. The rest of the files should be changed
as well to use Doxygen format tags in documentation of functions and
structures.
2007-11-24 17:55:27 +00:00
|
|
|
cards, if you've got direct access to an audio capable ISDN card and full
|
2007-11-24 12:56:49 +00:00
|
|
|
duplex (or multiple) soundcard.
|
|
|
|
|
|
|
|
For the soundcard interface you can use headphones (or speakers) and a
|
Version 0.2.0: CAPI 2.0, ALSA, threading, low-latency.
Changes in short:
* Re-work of session handling to use sound and ISDN threads, which
greatly reduces latency and CPU usage
* Complete re-work of ISDN subsystem to use CAPI 2.0
* Complete re-work of sound subsystem to use ALSA
* Re-work of recording subsystem to produce better results
* Re-work of debug and error message handling (centralized)
* Added --sleep and --wakeup remote commands to facilitate release
and re-acquire of CAPI connection
* Code documentation (partial)
Reduced latency:
----------------
We are now using separate threads to handle ISDN input (and send it to audio
output) and audio input (which again sends it to ISDN). This means, we are
not dependent on GTK GUI reaction time. This enables very good sound quality
with low latency and low CPU consumption (normally not measurable).
Tested with 3x parallel "while true; do true; done" and "find /". No sound
problems, even though the threads don't run with real time priority (which
can be implemented now relatively easily, though).
ISDN system:
------------
We now support CAPI 2.0. This means, any card supported by CAPI 2.0 should
work and also ant-phone should be able to coexist with other ISDN
applications.
New CAPI code was tested with Fritz!Card, both with fcpci driver and with
mISDN driver.
There are also remote-CAPI implementations which forward local CAPI requests
to a remote host (e.g., a Fritz!Box router). They should be also usable with
new CAPI subsystem (not tested).
Sound system:
-------------
Since we are now using ALSA, it's much easier to coexist with other sound
applications. However, sound device specification has been changed. You
should now type in ALSA names (normally 'default') instead of raw devices.
Recording:
----------
Recording subsystem now uses ring buffers and the buffers are flushed in GTK
thread on timeout. Although it would be possible to have special thread for
this purpose, it doesn't really make sense, since we buffer about 2 seconds.
In 2 seconds, the application better responds... Anyway, in the worst case,
there will be some samples skipped. Also, recording tries to stitch together
incoming samples on local as well as remote channels as it best fits based on
time code. Certain jitter is compensated for automatically, bigger jitter may
produce some cracks. However, in tests there was no such problem.
Debug and error message handling:
---------------------------------
All debug and error messages should now go through macros dbgprintf() and
errprintf(). This allows for implementing of debug log viewer later.
For new/rewritten code, all debug and error messages start with "COMPONENT: "
prefix. This allows for easier identification in logs.
Additionally, there are further debug levels, up to 4. Debug level 3 and
higher prints very noisy information about each audio packet processed.
Sleep and wakeup commands:
--------------------------
Some ISDN card drivers need to be unloaded before suspending the machine to
disk and loaded again after resume. This is not possible, as long as the
application is holding the CAPI connection. Therefore, two new command-line
commands have been implemented, which allow turning off and on the CAPI
connection (--sleep and --wakeup, respectively). They can be integrated into
suspend and resume scripts to take care of stopping and resuming CAPI.
Code documentation:
-------------------
Documentation for new code and for big rewritten parts has been changed to
Doxygen format. Instead of plain comments, you'll see comments in form
/*! ... */ with tags in form @tag, which allow Doxygen to generate
pretty-printed source code reference documentation. Doxygen script file
has not been actually produced. The rest of the files should be changed
as well to use Doxygen format tags in documentation of functions and
structures.
2007-11-24 17:55:27 +00:00
|
|
|
microphone, or a headset.
|
2007-11-24 12:56:49 +00:00
|
|
|
|
|
|
|
Currently, there is no direct mixer integration planned for ANT for several
|
|
|
|
reasons. For GNU/Linux, there are quite a lot of good mixer programs available
|
|
|
|
such as aumix, kmix, smix or tkmixer. The other reason is to make the program
|
|
|
|
more general. Not all sound devices have mixer support integrated and many
|
|
|
|
don't provide an obvious interface.
|
|
|
|
|
|
|
|
NOTE: Currently, this is a work in progress (beta version) and may contain
|
|
|
|
bugs.
|
|
|
|
|
|
|
|
|
|
|
|
WHAT YOU WILL NEED
|
|
|
|
==================
|
|
|
|
to run:
|
|
|
|
|
|
|
|
* a computer
|
Version 0.2.0: CAPI 2.0, ALSA, threading, low-latency.
Changes in short:
* Re-work of session handling to use sound and ISDN threads, which
greatly reduces latency and CPU usage
* Complete re-work of ISDN subsystem to use CAPI 2.0
* Complete re-work of sound subsystem to use ALSA
* Re-work of recording subsystem to produce better results
* Re-work of debug and error message handling (centralized)
* Added --sleep and --wakeup remote commands to facilitate release
and re-acquire of CAPI connection
* Code documentation (partial)
Reduced latency:
----------------
We are now using separate threads to handle ISDN input (and send it to audio
output) and audio input (which again sends it to ISDN). This means, we are
not dependent on GTK GUI reaction time. This enables very good sound quality
with low latency and low CPU consumption (normally not measurable).
Tested with 3x parallel "while true; do true; done" and "find /". No sound
problems, even though the threads don't run with real time priority (which
can be implemented now relatively easily, though).
ISDN system:
------------
We now support CAPI 2.0. This means, any card supported by CAPI 2.0 should
work and also ant-phone should be able to coexist with other ISDN
applications.
New CAPI code was tested with Fritz!Card, both with fcpci driver and with
mISDN driver.
There are also remote-CAPI implementations which forward local CAPI requests
to a remote host (e.g., a Fritz!Box router). They should be also usable with
new CAPI subsystem (not tested).
Sound system:
-------------
Since we are now using ALSA, it's much easier to coexist with other sound
applications. However, sound device specification has been changed. You
should now type in ALSA names (normally 'default') instead of raw devices.
Recording:
----------
Recording subsystem now uses ring buffers and the buffers are flushed in GTK
thread on timeout. Although it would be possible to have special thread for
this purpose, it doesn't really make sense, since we buffer about 2 seconds.
In 2 seconds, the application better responds... Anyway, in the worst case,
there will be some samples skipped. Also, recording tries to stitch together
incoming samples on local as well as remote channels as it best fits based on
time code. Certain jitter is compensated for automatically, bigger jitter may
produce some cracks. However, in tests there was no such problem.
Debug and error message handling:
---------------------------------
All debug and error messages should now go through macros dbgprintf() and
errprintf(). This allows for implementing of debug log viewer later.
For new/rewritten code, all debug and error messages start with "COMPONENT: "
prefix. This allows for easier identification in logs.
Additionally, there are further debug levels, up to 4. Debug level 3 and
higher prints very noisy information about each audio packet processed.
Sleep and wakeup commands:
--------------------------
Some ISDN card drivers need to be unloaded before suspending the machine to
disk and loaded again after resume. This is not possible, as long as the
application is holding the CAPI connection. Therefore, two new command-line
commands have been implemented, which allow turning off and on the CAPI
connection (--sleep and --wakeup, respectively). They can be integrated into
suspend and resume scripts to take care of stopping and resuming CAPI.
Code documentation:
-------------------
Documentation for new code and for big rewritten parts has been changed to
Doxygen format. Instead of plain comments, you'll see comments in form
/*! ... */ with tags in form @tag, which allow Doxygen to generate
pretty-printed source code reference documentation. Doxygen script file
has not been actually produced. The rest of the files should be changed
as well to use Doxygen format tags in documentation of functions and
structures.
2007-11-24 17:55:27 +00:00
|
|
|
* an ISDN card with CAPI 2.0 telephony support for Linux
|
2007-11-24 12:56:49 +00:00
|
|
|
* GNU/Linux (as far as nobody has tried it on another platform yet)
|
|
|
|
* a full duplex sound card or two sound devices
|
|
|
|
(one for input, another for output)
|
|
|
|
* a microphone (or your sound source of choice)
|
|
|
|
* speakers, or better: headphones
|
|
|
|
* instead of the last two points, you could also use a headset
|
|
|
|
* GTK+ 2.x
|
Version 0.2.0: CAPI 2.0, ALSA, threading, low-latency.
Changes in short:
* Re-work of session handling to use sound and ISDN threads, which
greatly reduces latency and CPU usage
* Complete re-work of ISDN subsystem to use CAPI 2.0
* Complete re-work of sound subsystem to use ALSA
* Re-work of recording subsystem to produce better results
* Re-work of debug and error message handling (centralized)
* Added --sleep and --wakeup remote commands to facilitate release
and re-acquire of CAPI connection
* Code documentation (partial)
Reduced latency:
----------------
We are now using separate threads to handle ISDN input (and send it to audio
output) and audio input (which again sends it to ISDN). This means, we are
not dependent on GTK GUI reaction time. This enables very good sound quality
with low latency and low CPU consumption (normally not measurable).
Tested with 3x parallel "while true; do true; done" and "find /". No sound
problems, even though the threads don't run with real time priority (which
can be implemented now relatively easily, though).
ISDN system:
------------
We now support CAPI 2.0. This means, any card supported by CAPI 2.0 should
work and also ant-phone should be able to coexist with other ISDN
applications.
New CAPI code was tested with Fritz!Card, both with fcpci driver and with
mISDN driver.
There are also remote-CAPI implementations which forward local CAPI requests
to a remote host (e.g., a Fritz!Box router). They should be also usable with
new CAPI subsystem (not tested).
Sound system:
-------------
Since we are now using ALSA, it's much easier to coexist with other sound
applications. However, sound device specification has been changed. You
should now type in ALSA names (normally 'default') instead of raw devices.
Recording:
----------
Recording subsystem now uses ring buffers and the buffers are flushed in GTK
thread on timeout. Although it would be possible to have special thread for
this purpose, it doesn't really make sense, since we buffer about 2 seconds.
In 2 seconds, the application better responds... Anyway, in the worst case,
there will be some samples skipped. Also, recording tries to stitch together
incoming samples on local as well as remote channels as it best fits based on
time code. Certain jitter is compensated for automatically, bigger jitter may
produce some cracks. However, in tests there was no such problem.
Debug and error message handling:
---------------------------------
All debug and error messages should now go through macros dbgprintf() and
errprintf(). This allows for implementing of debug log viewer later.
For new/rewritten code, all debug and error messages start with "COMPONENT: "
prefix. This allows for easier identification in logs.
Additionally, there are further debug levels, up to 4. Debug level 3 and
higher prints very noisy information about each audio packet processed.
Sleep and wakeup commands:
--------------------------
Some ISDN card drivers need to be unloaded before suspending the machine to
disk and loaded again after resume. This is not possible, as long as the
application is holding the CAPI connection. Therefore, two new command-line
commands have been implemented, which allow turning off and on the CAPI
connection (--sleep and --wakeup, respectively). They can be integrated into
suspend and resume scripts to take care of stopping and resuming CAPI.
Code documentation:
-------------------
Documentation for new code and for big rewritten parts has been changed to
Doxygen format. Instead of plain comments, you'll see comments in form
/*! ... */ with tags in form @tag, which allow Doxygen to generate
pretty-printed source code reference documentation. Doxygen script file
has not been actually produced. The rest of the files should be changed
as well to use Doxygen format tags in documentation of functions and
structures.
2007-11-24 17:55:27 +00:00
|
|
|
* libcapi20 (CAPI 2.0 support)
|
|
|
|
* libasound (ALSA support)
|
2007-11-24 12:56:49 +00:00
|
|
|
* libsndfile
|
|
|
|
|
|
|
|
to compile:
|
|
|
|
|
|
|
|
* GNU make
|
|
|
|
* GCC
|
|
|
|
* GTK+ 2.x development files
|
Version 0.2.0: CAPI 2.0, ALSA, threading, low-latency.
Changes in short:
* Re-work of session handling to use sound and ISDN threads, which
greatly reduces latency and CPU usage
* Complete re-work of ISDN subsystem to use CAPI 2.0
* Complete re-work of sound subsystem to use ALSA
* Re-work of recording subsystem to produce better results
* Re-work of debug and error message handling (centralized)
* Added --sleep and --wakeup remote commands to facilitate release
and re-acquire of CAPI connection
* Code documentation (partial)
Reduced latency:
----------------
We are now using separate threads to handle ISDN input (and send it to audio
output) and audio input (which again sends it to ISDN). This means, we are
not dependent on GTK GUI reaction time. This enables very good sound quality
with low latency and low CPU consumption (normally not measurable).
Tested with 3x parallel "while true; do true; done" and "find /". No sound
problems, even though the threads don't run with real time priority (which
can be implemented now relatively easily, though).
ISDN system:
------------
We now support CAPI 2.0. This means, any card supported by CAPI 2.0 should
work and also ant-phone should be able to coexist with other ISDN
applications.
New CAPI code was tested with Fritz!Card, both with fcpci driver and with
mISDN driver.
There are also remote-CAPI implementations which forward local CAPI requests
to a remote host (e.g., a Fritz!Box router). They should be also usable with
new CAPI subsystem (not tested).
Sound system:
-------------
Since we are now using ALSA, it's much easier to coexist with other sound
applications. However, sound device specification has been changed. You
should now type in ALSA names (normally 'default') instead of raw devices.
Recording:
----------
Recording subsystem now uses ring buffers and the buffers are flushed in GTK
thread on timeout. Although it would be possible to have special thread for
this purpose, it doesn't really make sense, since we buffer about 2 seconds.
In 2 seconds, the application better responds... Anyway, in the worst case,
there will be some samples skipped. Also, recording tries to stitch together
incoming samples on local as well as remote channels as it best fits based on
time code. Certain jitter is compensated for automatically, bigger jitter may
produce some cracks. However, in tests there was no such problem.
Debug and error message handling:
---------------------------------
All debug and error messages should now go through macros dbgprintf() and
errprintf(). This allows for implementing of debug log viewer later.
For new/rewritten code, all debug and error messages start with "COMPONENT: "
prefix. This allows for easier identification in logs.
Additionally, there are further debug levels, up to 4. Debug level 3 and
higher prints very noisy information about each audio packet processed.
Sleep and wakeup commands:
--------------------------
Some ISDN card drivers need to be unloaded before suspending the machine to
disk and loaded again after resume. This is not possible, as long as the
application is holding the CAPI connection. Therefore, two new command-line
commands have been implemented, which allow turning off and on the CAPI
connection (--sleep and --wakeup, respectively). They can be integrated into
suspend and resume scripts to take care of stopping and resuming CAPI.
Code documentation:
-------------------
Documentation for new code and for big rewritten parts has been changed to
Doxygen format. Instead of plain comments, you'll see comments in form
/*! ... */ with tags in form @tag, which allow Doxygen to generate
pretty-printed source code reference documentation. Doxygen script file
has not been actually produced. The rest of the files should be changed
as well to use Doxygen format tags in documentation of functions and
structures.
2007-11-24 17:55:27 +00:00
|
|
|
* libcapi20 development files (CAPI 2.0 support)
|
|
|
|
* libasound development files (ALSA support)
|
|
|
|
* libsndfile development files (for recording)
|
2007-11-24 12:56:49 +00:00
|
|
|
|
|
|
|
|
|
|
|
WHAT YOU MIGHT NEED
|
|
|
|
===================
|
|
|
|
* possibly a mixer application of your choice (e.g. aumix or smix) to set up
|
|
|
|
your audio devices (check your recording and playback levels to make sure
|
|
|
|
to hear your calling/called party and to be heard by them
|
|
|
|
|
|
|
|
|
|
|
|
FEATURES
|
|
|
|
========
|
|
|
|
* Of course, dialing out and receiving calls
|
|
|
|
* Caller id monitor
|
|
|
|
* Vanity number dialing support
|
|
|
|
* Big / little endian support for processor architecture and sound card
|
|
|
|
* Different 8 and 16 bit audio formats supported
|
|
|
|
* Different sampling speeds supported (if sound device(s) don't support
|
|
|
|
native ISDN sampling speed)
|
|
|
|
* Setting outgoing (identifying) MSN (Multiple Subscriber Number) and
|
|
|
|
MSNs to listen on
|
|
|
|
* Line Level Checker
|
Version 0.2.0: CAPI 2.0, ALSA, threading, low-latency.
Changes in short:
* Re-work of session handling to use sound and ISDN threads, which
greatly reduces latency and CPU usage
* Complete re-work of ISDN subsystem to use CAPI 2.0
* Complete re-work of sound subsystem to use ALSA
* Re-work of recording subsystem to produce better results
* Re-work of debug and error message handling (centralized)
* Added --sleep and --wakeup remote commands to facilitate release
and re-acquire of CAPI connection
* Code documentation (partial)
Reduced latency:
----------------
We are now using separate threads to handle ISDN input (and send it to audio
output) and audio input (which again sends it to ISDN). This means, we are
not dependent on GTK GUI reaction time. This enables very good sound quality
with low latency and low CPU consumption (normally not measurable).
Tested with 3x parallel "while true; do true; done" and "find /". No sound
problems, even though the threads don't run with real time priority (which
can be implemented now relatively easily, though).
ISDN system:
------------
We now support CAPI 2.0. This means, any card supported by CAPI 2.0 should
work and also ant-phone should be able to coexist with other ISDN
applications.
New CAPI code was tested with Fritz!Card, both with fcpci driver and with
mISDN driver.
There are also remote-CAPI implementations which forward local CAPI requests
to a remote host (e.g., a Fritz!Box router). They should be also usable with
new CAPI subsystem (not tested).
Sound system:
-------------
Since we are now using ALSA, it's much easier to coexist with other sound
applications. However, sound device specification has been changed. You
should now type in ALSA names (normally 'default') instead of raw devices.
Recording:
----------
Recording subsystem now uses ring buffers and the buffers are flushed in GTK
thread on timeout. Although it would be possible to have special thread for
this purpose, it doesn't really make sense, since we buffer about 2 seconds.
In 2 seconds, the application better responds... Anyway, in the worst case,
there will be some samples skipped. Also, recording tries to stitch together
incoming samples on local as well as remote channels as it best fits based on
time code. Certain jitter is compensated for automatically, bigger jitter may
produce some cracks. However, in tests there was no such problem.
Debug and error message handling:
---------------------------------
All debug and error messages should now go through macros dbgprintf() and
errprintf(). This allows for implementing of debug log viewer later.
For new/rewritten code, all debug and error messages start with "COMPONENT: "
prefix. This allows for easier identification in logs.
Additionally, there are further debug levels, up to 4. Debug level 3 and
higher prints very noisy information about each audio packet processed.
Sleep and wakeup commands:
--------------------------
Some ISDN card drivers need to be unloaded before suspending the machine to
disk and loaded again after resume. This is not possible, as long as the
application is holding the CAPI connection. Therefore, two new command-line
commands have been implemented, which allow turning off and on the CAPI
connection (--sleep and --wakeup, respectively). They can be integrated into
suspend and resume scripts to take care of stopping and resuming CAPI.
Code documentation:
-------------------
Documentation for new code and for big rewritten parts has been changed to
Doxygen format. Instead of plain comments, you'll see comments in form
/*! ... */ with tags in form @tag, which allow Doxygen to generate
pretty-printed source code reference documentation. Doxygen script file
has not been actually produced. The rest of the files should be changed
as well to use Doxygen format tags in documentation of functions and
structures.
2007-11-24 17:55:27 +00:00
|
|
|
* Works with ALSA
|
2007-11-24 12:56:49 +00:00
|
|
|
* Saved config file
|
|
|
|
* Saved Caller ID history
|
|
|
|
* Option to run an external command on incoming call (useful for external
|
|
|
|
pager programs), add %s in template for calling party number, %n for
|
|
|
|
own number
|
|
|
|
* Command line option to make a running instance of ANT make a call to a
|
|
|
|
specific number (useful for external address book applications)
|
|
|
|
* Live recording to files
|
|
|
|
* Popup on incoming call
|
|
|
|
* Configurable preset buttons
|
|
|
|
* Isdnlog data import
|
|
|
|
* Tracking of unanswered calls
|
|
|
|
* Internationalization, native language support (NLS) for Dutch, German, French
|
|
|
|
|
|
|
|
|
|
|
|
HOW TO COMPILE ANT INSTALL
|
|
|
|
==========================
|
|
|
|
|
|
|
|
see INSTALL
|
|
|
|
|
|
|
|
|
|
|
|
HOW TO START
|
|
|
|
============
|
|
|
|
|
|
|
|
run:
|
|
|
|
|
|
|
|
ant-phone
|
|
|
|
|
|
|
|
|
|
|
|
FREQUENTLY ASKED QUESTIONS (FAQ)
|
|
|
|
================================
|
|
|
|
|
|
|
|
For actuality reasons, please look at the FAQ section at http://www.antcom.de/
|
|
|
|
|
|
|
|
|
|
|
|
RELEASE CONDITIONS
|
|
|
|
==================
|
|
|
|
|
|
|
|
ANT is released under the GPL (GNU General Public License). Please read
|
|
|
|
the file named COPYING.
|
|
|
|
|
|
|
|
|
|
|
|
CONTACT
|
|
|
|
=======
|
|
|
|
|
|
|
|
Any suggestions, comments and bug reports (which are highly appreciated) go to
|
|
|
|
the ant-phone mailing list ant-phone-devel@nongnu.org. For discussion and
|
|
|
|
announcements, you can subscribe to the list at
|
|
|
|
http://mail.nongnu.org/mailman/listinfo/ant-phone-devel. You can also browse
|
|
|
|
the Mailing List Archives at http://mail.gnu.org/archive/html/ant-phone-devel/.
|
|
|
|
If this fails or for non-public discussion, contact the maintainer directly:
|
|
|
|
Roland Stigge <stigge@antcom.de>. Thanks in advance!
|
|
|
|
|