Supported Hardware

The Q.SIG protocoll is currently only supported with Eicon/Dialogic Server cards.


Following features are now implemented (HEAD version):

    • Support for ECMA and ISO protocoll

    • Name presentation

    • External call signalling on external switch

    • Single step call transfer

    • Call transfer

    • Path replacement propose

Configure Q.SIG

The Q.SIG support is disabled by default. If you enable it on interfaces, which do not support it, it will be possible, your neighbor switch (or public network) will reject outgoing calls and releases unexpectly incoming calls. Currently chan-capi supports only Q.SIG ECMA and ISO protocoll. The last one may be called as PSS1 in some switches. You can configure chan_capi interfaces with different protocoll variants, if you have more than one Q.SIG connection on your Asterisk. It is untested, but chan_capi should cooperate with both interfaces.

To enable Q.SIG you simply have to add an line like following, to the affected interface:

qsig = <qsig-protocol>

where <qsig-protocol> tells chan_capi, which Q.SIG variant it has to use.

For the old ECMA variant (which is used at Alcatel/Lucent Enterprise (OXE) as default) you need a '''1''' here. The ISO variant is numbered as''' 2'''.


qsig = 1

This example defines an ECMA enabled interface.

It is possible to add manufacturer specific protocolls to chan_capi, as long they are build on Q.SIG. Alcatels ABC-F Protocol i.e. would be theoritcally possible (there are 2 variants: a trunk and a link - only the trunk would be possible).

Overview about supported Q.SIG variants

Q.SIG variant



configuration number



Enable Path Replacement

Path Replacement allows to bridge calls internally or externally - the B-Channels will be kept free.

To enable the Path Replacement feature you have to add the value qsig_prnum with an number to your interfaces. This must be an unique number, compatible with the numbering plan, on the Q.SIG network side. But you may use the same number on different interfaces.


qsig_prnum = 1234

How to use the features

Disabling Q.SIG temporary/for one extension

You may want to disable the use of Q.SIG funtions for some exceptions or extensions. You can simply do that by adding an "q" to the chan_capi options in your DIAL command.


exten => s,1,Dial(CAPI/contr1/123/q,,)

Name presentation

There's nothing to do for you. chan_capi would take the name from Asterisk's CALLERID function and send it to the switch included in the outgoing SETUP message.

External signalling

If you want to route external calls (i.e. incoming VoIP calls) to your Q.SIG switch, your calls will be signalled normaly as internal calls on the phones (ringing tone), because the Q.SIG trunk is mostly configured as an internal trunk. The Q.SIG standard defines for this an little information element. You can tell chan_capi about an incoming external call with an Asterisk variable. It's name is QSIG_SETUP. It is used for different features and will keep the DIAL command clearly.


exten => s,1,Set(_QSIG_SETUP=X)

You'll see the underline character before QSIG_SETUP - it is '''important''' that Asterisk will keep this variable up in the DIAL command If you forget this character, your call will be signalled normally, because chan_capi wouldn't see this variable.

Call Transfer

The Call Transfer is an automatic feature. When an call will be bridged by Asterisk, chan_capi sends an Call Transfer to the switch. The display on the switch's sets will be updated with the new peer name and number. If the switch responds with an Path Replacement, on this event, it will be answered and the B-Channels to chan_capi released.

On inbound call transfer there's currently no display update. But if Path Replacement is enabled, chan_capi tries to be bridge the call back to Asterisk.