103 lines
4.1 KiB
Raw Normal View History

(CAPI*) chan_capi a Common ISDN API 2.0 implementation for Asterisk
2007-02-11 16:01:32 +00:00
QSIG Extension for chan_capi
Copyright (C) 2005-2007 Cytronics & Melware
Armin Schindler <>
Copyright (C) 2006-2007 Mario Goegel
Mario Goegel <>
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.
2007-02-11 16:01:32 +00:00
Future Targets:
- check code for buffer overflows
- Call Transfer
2007-02-11 16:01:32 +00:00
- Path Replacement
- ...
How to use:
simply enable Q.SIG with following line in your capi.conf interface:
********** deprecated **********************************************************
#### qsig=on
2007-02-11 16:01:32 +00:00
#### 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.
2007-02-11 16:01:32 +00:00
#### 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
2007-02-11 16:01:32 +00:00
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