103 lines
4.1 KiB
Plaintext
103 lines
4.1 KiB
Plaintext
(CAPI*) chan_capi a Common ISDN API 2.0 implementation for Asterisk
|
|
|
|
QSIG Extension for chan_capi
|
|
|
|
Copyright (C) 2005-2007 Cytronics & Melware
|
|
Armin Schindler <armin@melware.de>
|
|
|
|
Copyright (C) 2006-2007 Mario Goegel
|
|
Mario Goegel <m.goegel@gmx.de>
|
|
|
|
This program is free software and may be modified and distributed under
|
|
the terms of the GNU Public License. There is _NO_ warranty for this!
|
|
|
|
Thanks go to the debuggers, bugfixers and contributors :)
|
|
===========================================================================
|
|
None yet - you will be welcome here :-)
|
|
|
|
(...and all the others that have been forgotten...) :-)
|
|
|
|
No support for Asterisk 1.0.x any more, you need at least
|
|
Asterisk 1.2.x
|
|
|
|
What is Q.SIG
|
|
=============
|
|
|
|
Q.SIG is an protocoll extension for ISDN.
|
|
It is mainly used on connecting PBXs of different PBX vendors, which allows
|
|
better interoperability.
|
|
As example there can be a name of an extension transferred between different
|
|
PBXs, which is with standard ISDN not possible.
|
|
|
|
These extensions will be transmitted as encoded facility information elements.
|
|
To use Q.SIG with asterisk, you'll need a card like Eicon DIVA Server
|
|
(BRI like PRI), which supports QSIG. Maybe others do also work, let me now.
|
|
|
|
The QSIG support includes:
|
|
==========================
|
|
- Name presentation on Call SETUP incoming like outgoing
|
|
- ISDN LEG INFO2 field - a message which delivers informations about call diversions on incoming call to asterisk
|
|
Data is stored in Asterisk variables:
|
|
QSIG_LI2_DIVREASON Reason of divertion: 0 - unknown, 1 - unconditional, 2 - user busy, 3 - user no reply
|
|
QSIG_LI2_ODIVREASON Reason of original divertion (like above)
|
|
QSIG_LI2_DIVCOUNT divertion counter - how many divertions
|
|
QSIG_LI2_DIVNUM diverting number
|
|
QSIG_LI2_ODIVNUM original diverting number
|
|
QSIG_LI2_DIVNAME diverting name
|
|
QSIG_LI2_ODIVNAME original diverting name
|
|
|
|
at the moment only incoming handling is supported
|
|
- Possibility to inform QSIG switch about call from public network
|
|
If you set variable QSIG_SETUP=X then the QSIG switch on the other side will know,
|
|
this call source is public network - you will get different ring tone, etc.
|
|
In dialplan use: Set(__QSIG_SETUP=X) command.
|
|
The leading "__" tells asterisk, to export this variable to the outgoing channel and
|
|
its subchannels
|
|
- Simple Call Transfer
|
|
With capicommand(qsig_ct|src-id|dst-id) you can transfer an inbound call back to the qsig switch.
|
|
The B-Channel of this call will be relased, so that the line is free for a next call.
|
|
Unfortunately the call will be completely released by the switch, if the target is busy.
|
|
I have to read the ECMA-300 standard, if there's a chance, to refuse the transfer in such a case.
|
|
|
|
Future Targets:
|
|
===============
|
|
- check code for buffer overflows
|
|
- Call Transfer
|
|
- Path Replacement
|
|
- CCBS
|
|
- AOC
|
|
- ...
|
|
|
|
How to use:
|
|
===========
|
|
|
|
simply enable Q.SIG with following line in your capi.conf interface:
|
|
|
|
================================================================================
|
|
********** deprecated **********************************************************
|
|
#### qsig=on
|
|
|
|
#### Take care that you enable this only for interfaces, where the other end
|
|
#### understands the Q.SIG protocoll. If not, then these switches may reject the
|
|
#### entire call, because of wrong facility contents.
|
|
|
|
#### Later this will change to qsig=off or qsig=1..x where we can support some
|
|
#### pbx manufacturer specific operations.
|
|
================================================================================
|
|
|
|
Here we go with new configuration
|
|
|
|
Set qsig to one of the following values, which corresponds to your configuration.
|
|
|
|
0 QSIG turned off
|
|
1 Alcatel (4400 & Enterprise - Maybe OXO/4200) ECMA (wrongly named ECMA - it is ETSI) variant
|
|
2 Siemens HiPath 4000 ECMAV2 & Alcatel 4400/Enterprise in ISO mode
|
|
|
|
|
|
ToDo List:
|
|
==========
|
|
|
|
- Invoke Identifier handling - currently i use invoke id #1, will be corrected by capi (outgoing)
|
|
- Handle later facilities - i don't know what to do with most informations now, maybe they are useless in asterisk
|
|
- Outgoing calls support only qsig type 1 (Alcatel) - add support for others on outgoing
|