cleanup
parent
aea64662a7
commit
806cfe6c9c
29
INSTALL
29
INSTALL
|
@ -1,28 +1,33 @@
|
|||
Modify the Makefile to fit your system, especially the path to the Asterisk include files.
|
||||
INSTALL
|
||||
=======
|
||||
|
||||
Currently there are some buildtime configuration parameters. You can enable early B3 connects
|
||||
if you want the capi channels to come up very soon and hear the indications from your
|
||||
local exchange (native capi indications).
|
||||
You can also force software dtmf detection/generation to be used.
|
||||
Modify the Makefile to fit your system, especially the path to the Asterisk
|
||||
include files.
|
||||
|
||||
To build the driver you will need an installed capi system, including header files.
|
||||
Currently there are some buildtime configuration parameters:
|
||||
- You can switch to Ulaw.
|
||||
|
||||
to build the channel driver type:
|
||||
To build the driver you will need an installed capi system, including header
|
||||
files.
|
||||
|
||||
To build the channel driver type:
|
||||
---------------------------------
|
||||
make
|
||||
|
||||
to install:
|
||||
To install type:
|
||||
----------------
|
||||
make install
|
||||
|
||||
to install a sample configuration:
|
||||
To install a sample configuration:
|
||||
----------------------------------
|
||||
make config
|
||||
|
||||
|
||||
in /etc/asterisk/modules.conf insert the line:
|
||||
In /etc/asterisk/modules.conf insert the line:
|
||||
load => chan_capi.so
|
||||
|
||||
and in the [global] section:
|
||||
chan_capi.so=yes
|
||||
|
||||
|
||||
HEY, dont forget a trailing newline at the end of modules.conf!!!
|
||||
HEY, don't forget a trailing newline at the end of modules.conf!!!
|
||||
|
||||
|
|
181
README
181
README
|
@ -25,116 +25,131 @@ Frank Sautter, levigo group
|
|||
This chan_capi version includes:
|
||||
================================
|
||||
|
||||
- multiple controller support
|
||||
- Multiple controller support
|
||||
- CID,DNID (callling party, called party)
|
||||
- CLIR/CLIP
|
||||
- supplementary services, CD,HOLD,RETRIEVE,ECT
|
||||
- Supplementary services, CD,HOLD,RETRIEVE,ECT
|
||||
- DTMF (dependend on card) + software DTMF support
|
||||
- early B3 connects (always,success,never)
|
||||
- digital audio (what did you think?)
|
||||
- incoming/outgoing calls
|
||||
- overlap sending (dialtone)
|
||||
- E(xplicit) C(all) T(ransfer) (...although it's done implicit .. but dont tell!)
|
||||
- tuneable latency ;) you can configure the size of B3 blocks at compile time
|
||||
- Early B3 connects (always,success,never)
|
||||
- Digital audio (what did you think?)
|
||||
- Incoming/outgoing calls
|
||||
- Overlap sending (dialtone)
|
||||
- E(xplicit) C(all) T(ransfer) (...although it's done implicit-but don't tell!)
|
||||
- Tuneable latency: you can configure the size of B3 blocks at compile time
|
||||
(in chan_capi_pvt.h, AST_CAPI_MAX_B3_BLOCK_SIZE)
|
||||
the default is 160 samples, for non-VoIP use you can tune it down to 130
|
||||
- use asterisk's internal dsp functions for dtmf
|
||||
- alaw support
|
||||
- ulaw support!
|
||||
The default is 160 samples, for non-VoIP use you can tune it down to 130
|
||||
- Use asterisks internal DSP functions for DTMF
|
||||
- Alaw support
|
||||
- Ulaw support!
|
||||
- Eicon CAPI echo cancelation (echocancel=1)
|
||||
- reject call waiting (ACO)
|
||||
- Reject call waiting (ACO)
|
||||
- DID for Point to Point mode (a.k.a overlap receiving)
|
||||
- experimental echo squelching (echosquelch=1)
|
||||
- call progress, no need to add ||r to your dialstring anymore
|
||||
- rx/tx gains (rxgain=1.0)
|
||||
- call deflection on circuitbusy (makefile option) (deflect=12345678)
|
||||
- (inter)national dialing prefix (for callerid) configurable in capi.conf
|
||||
- CLI command "capi info" shows B channel status
|
||||
- capiECT will announce the callerID since it gets lost on most isdn pbxes
|
||||
the called party can press # to drop the call
|
||||
- audio syncing (timing outgoing dataB3 on incoming dataB3), supposed to fix
|
||||
- Call progress, no need to add ||r to your dialstring anymore
|
||||
- Rx/Tx gains (rxgain=1.0)
|
||||
- Call deflection on circuit busy (deflect=12345678)
|
||||
- (Inter)national dialing prefix (for callerid) configurable in capi.conf
|
||||
- CLI command "capi info" shows B channel status of chan_capi
|
||||
- CapiECT will announce the callerID since it gets lost on most isdn pbxes
|
||||
The called party can press # to drop the call
|
||||
- Audio syncing (timing outgoing dataB3 on incoming dataB3), supposed to fix
|
||||
the DATA_B3_REQ (error = 0x1103) problem
|
||||
- catch all MSN (incomingmsn=*)
|
||||
- some configuration enhancements (msn=123,124,125 and controller=1,2,3,4)
|
||||
- accountcode= added.
|
||||
- finally the echo squelching works!
|
||||
- callgroup support
|
||||
- fixed pipe leak
|
||||
- updated to support the new frame->delivery field
|
||||
- compiles with latest cvs with a makefile option (LOOK AT THE MAKEFILE)
|
||||
- fixed channel name bug in p2p mode
|
||||
- added app_capiNoES for disabling the primitive echo suppressor, use this before
|
||||
you start recording voicemail or your files may get choppy
|
||||
- fixed for latest cvs (AST_MUTEX_DEFINE_STATIC)
|
||||
- fixed for latest cvs (asterisk/parking.h -> asterisk/features.h)
|
||||
- fixed for latest cvs ast_pthread_create
|
||||
- Catch all MSN (incomingmsn=*)
|
||||
- Some configuration enhancements (msn=123,124,125 and controller=1,2,3,4)
|
||||
- Added accountcode=
|
||||
- Echo squelching (echosquelch=1)
|
||||
- Callgroup support
|
||||
- Fixed pipe leak
|
||||
- Updated to support the new frame->delivery field
|
||||
- Compiles with different Asterisk versions (automatic build configuration)
|
||||
- Fixed channel name bug in PtP mode
|
||||
- Added app_capiNoES for disabling the primitive echo suppressor, use this
|
||||
before you start recording voicemail or your files may get choppy
|
||||
- Added app_capiFax to receive faxes over CAPI (see below)
|
||||
|
||||
- ATTENTION! the dialstring syntax now uses the zaptel dialstring syntax
|
||||
it used to be: Dial(CAPI/[@]<outgoingMSN>:[b|B]<destination>)
|
||||
|
||||
It used to be: Dial(CAPI/[@]<outgoingMSN>:[b|B]<destination>)
|
||||
|
||||
now it is: Dial(CAPI/g<group>/[b|B]<destination>)
|
||||
or: Dial(CAPI/contr<controller>/[b|B]<destination>)
|
||||
Now it is: Dial(CAPI/g<group>/[b|B]<destination>)
|
||||
Or: Dial(CAPI/contr<controller>/[b|B]<destination>)
|
||||
|
||||
CLIP/CLIR is now uses the calling presentation of the calling channel, this can
|
||||
CLIP/CLIR now uses the calling presentation of the calling channel, which can
|
||||
be modified using the CallingPres() application. Use CallinPres(32) for CLIR.
|
||||
That is why the msn= param in capi.conf is now obsolete. The callerID is also
|
||||
taken from the calling channel.
|
||||
|
||||
- fixes for BSD (Jan Stocker)
|
||||
- Fixes for BSD (Jan Stocker)
|
||||
|
||||
Helper applications
|
||||
===================
|
||||
kapejod says: "No No No, dont use those yet....!" (except maybe HOLD,ECT...)
|
||||
Kapejod says: "No No No, don't use those yet....!" (except maybe HOLD,ECT...)
|
||||
|
||||
app_capiCD.c forwards an unanswered call to another phone (does not rely on sservice CD)
|
||||
example:
|
||||
exten => s,1,Wait,1
|
||||
exten => s,2,capiCD,12345678
|
||||
app_capiCD.c
|
||||
Forwards an unanswered call to another phone (does not rely on sservice CD)
|
||||
Example:
|
||||
exten => s,1,Wait,1
|
||||
exten => s,2,capiCD,12345678
|
||||
|
||||
app_capiHOLD.c puts an answered call on hold, this has nothing to do with asterisk's onhold thingie (music et al)
|
||||
after putting a call onhold, never use the Wait application!
|
||||
app_capiHOLD.c
|
||||
Puts an answered call on hold, this has nothing to do with asterisk's onhold
|
||||
thingie (music et al)
|
||||
After putting a call onhold, never use the Wait application!
|
||||
|
||||
app_capiRETRIEVE.c gets the holded call back
|
||||
app_capiRETRIEVE.c
|
||||
Gets the holded call back
|
||||
|
||||
app_capiECT.c explicit call transfer of the holded call (must put call on hold first!)
|
||||
example:
|
||||
exten => s,1,Answer
|
||||
exten => s,2,capiHOLD
|
||||
exten => s,3,capiECT,55:50
|
||||
will ECT the call to 50 using 55 as the callerid/outgoing msn
|
||||
app_capiECT.c
|
||||
Explicit call transfer of the call on hold (must put call on hold first!)
|
||||
Example:
|
||||
exten => s,1,Answer
|
||||
exten => s,2,capiHOLD
|
||||
exten => s,3,capiECT,55:50
|
||||
Will ECT the call to 50 using 55 as the callerid/outgoing MSN
|
||||
|
||||
|
||||
Using CLIR
|
||||
==========
|
||||
Use the CallingPres() application before you dial:
|
||||
exten => _X.,1,CallingPres(32)
|
||||
exten => _X.,2,Dial(CAPI/contr1/${EXTEN})
|
||||
exten => _X.,1,CallingPres(32)
|
||||
exten => _X.,2,Dial(CAPI/contr1/${EXTEN})
|
||||
|
||||
Enjoying early B3 connects (inband call progress, tones and announcements)
|
||||
==========================================================================
|
||||
early B3 is now configurable in the dialstring :)
|
||||
if you prefix the destination number with a 'b' early B3 will always be used, also if the call fails
|
||||
because the number is unprovisioned, etc ...
|
||||
if you prefix it with a 'B' early B3 will only be used on successful calls, giving you ring indication,etc...
|
||||
Early B3 is now configurable in the dialstring.
|
||||
If you prefix the destination number with a 'b' early B3 will always be used,
|
||||
also if the call fails, because the number is unprovisioned, etc ...
|
||||
If you prefix it with a 'B' early B3 will only be used on successful calls,
|
||||
giving you ring indication,etc...
|
||||
|
||||
dont use indications in the Dial command, your local exchange will do that for you:
|
||||
exten => _X.,1,Dial(CAPI/contr1/B${EXTEN},30) (early B3 on success)
|
||||
exten => _X.,1,Dial(CAPI/contr1/b${EXTEN},30) (always early B3)
|
||||
exten => _X.,1,Dial(CAPI/contr1/${EXTEN},30,r) (no early B3, fake ring indication)
|
||||
Don't use indications in the Dial command, your local exchange will do that for
|
||||
you:
|
||||
exten => _X.,1,Dial(CAPI/contr1/B${EXTEN},30)
|
||||
(early B3 on success)
|
||||
|
||||
exten => _X.,1,Dial(CAPI/contr1/b${EXTEN},30)
|
||||
(always early B3)
|
||||
|
||||
exten => _X.,1,Dial(CAPI/contr1/${EXTEN},30,r)
|
||||
(no early B3, fake ring indication)
|
||||
|
||||
exten => _X.,1,Dial(CAPI/contr1/b${EXTEN},30,r) (always early B3, fake indicatons if the exchange
|
||||
does not give us indications)
|
||||
exten => _X.,1,Dial(CAPI/contr1/B${EXTEN},30,r) (early B3 on success, fake indicatons if the exchange
|
||||
does not give us indications)
|
||||
exten => _X.,1,Dial(CAPI/contr1/b${EXTEN},30,r)
|
||||
(always early B3, fake indicatons if the exchange does not give us
|
||||
indications)
|
||||
|
||||
exten => _X.,1,Dial(CAPI/contr1/B${EXTEN},30,r)
|
||||
(early B3 on success, fake indicatons if the exchange does not give us
|
||||
indications)
|
||||
|
||||
For normal PBX usage you would use the "b" option, always early B3.
|
||||
|
||||
Overlap sending (a.k.a. real dialtone)
|
||||
======================================
|
||||
when you dial an empty number, and have early B3 enabled, with:
|
||||
When you dial an empty number, and have early B3 enabled, with:
|
||||
Dial(CAPI/g1/b)
|
||||
the channel will come up at once and give you the dialtone it gets from the local exchange.
|
||||
at this point the channel is like a legacy phone, now you can send dtmf digits to dial.
|
||||
The channel will come up at once and give you the dialtone it gets from the
|
||||
local exchange.
|
||||
At this point the channel is like a legacy phone, now you can send DTMF digits
|
||||
to dial.
|
||||
|
||||
Example context for incoming calls on MSN 12345678:
|
||||
===================================================
|
||||
|
@ -143,13 +158,14 @@ Example context for incoming calls on MSN 12345678:
|
|||
exten => 12345678,1,Dial(SIP/phone1)
|
||||
exten => 12345678,2,Hangup
|
||||
|
||||
|
||||
short HOWTO of 'capiAnswerFax':
|
||||
Short HOWTO of 'capiAnswerFax':
|
||||
===============================
|
||||
For those of you who have a CAPI card with an on-board DSP (like some Eicon+Diva Server), this patch allows you to receive faxes.
|
||||
If you want to answer a channel in fax mode, use capiAnswerFax() instead of+Answer()
|
||||
If you use Answer(), you will be in voice mode. If the hardware DSP detects+a fax tone, you can switch from voice to fax mode by calling
|
||||
capiAnswerFax().
|
||||
For those of you who have a CAPI card with an on-board DSP (like some Eicon and
|
||||
DIVA Server), this patch allows you to receive faxes.
|
||||
If you want to answer a channel in fax mode, use capiAnswerFax() instead of
|
||||
Answer()
|
||||
If you use Answer(), you will be in voice mode. If the hardware DSP detects
|
||||
fax tone, you can switch from voice to fax mode by calling capiAnswerFax().
|
||||
|
||||
Example of use :
|
||||
line number 123, play something, if a fax tone is detected, handle it
|
||||
|
@ -167,12 +183,15 @@ exten => s,2,Hangup()
|
|||
exten => h,1,deadagi,fax.php // Run sfftobmp and mail it.
|
||||
|
||||
The output of capiAnswerFax is a SFF file. Use sfftobmp to convert it.
|
||||
With a Diva Server, theses features are allowed : fax up to 33600, high
|
||||
resolution. Color Fax /JPEG Compression is disabled (I can't test it).
|
||||
With a DIVA Server, following features are provided:
|
||||
- fax up to 33600
|
||||
- high resolution
|
||||
- Color Fax
|
||||
- JPEG Compression is disabled (I can't test it)
|
||||
|
||||
------
|
||||
|
||||
More information/documentation and commercial support can be found at:
|
||||
More information/documentation and commercial support can be found at:
|
||||
http://www.junghanns.net/asterisk/
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue