Version 1 (modified by kaber, 9 years ago) (diff)


Asterisk DECT channel driver

The Asterisk DECT channel driver implements the IWU of a DECT FP. See Build instructions for build instructions.

Channel driver configuration

The DECT channel driver's configuration is read from /etc/asterisk/dect.conf. An example configuration file is included in the asterisk source and can be installed by running

make samples

Global DECT options

The global configuration options are contained in the section called [general]. These options are

  • cluster = NAME -- cluster name to bind to
  • context = NAME -- dialplan context for incoming calls
  • language = COUNTRY-CODE -- default language for newly registered PPs
  • regcontext = NAME -- dialplan context in which to create an extension for newly registered PPs
  • regexten_base = NUMBER -- base number to use for allocating new extensions
  • pin = NUMBER -- PIN code (up to 8 digits) to use for registering PPs

The context option specifies the dialplan context in which incoming calls will be placed. When registering a PP, an extension is automatically allocated for the PP. The extension used will be the first unused number starting at the number specified as regexten_base. This extension is registered in the dialplan context specified as regcontext and can be used to route outgoing calls to the PP. Additionally a name of the format DECT-PT-<extension> is allocated for each PP.

Jitter buffer options

An asterisk jitter buffer can be configured using the following options:

  • jbenable = yes/no -- enable jitter buffer, defaults to no
  • jbmaxsize = NUMBER -- maximum buffer size in milliseconds
  • jbimpl = fixed/adaptive -- use fixed or adaptive jitter buffer implementation
  • jblog = yes/no -- enable or disable jitter buffer frame logging, defaults to no

When enabled, the jitter buffer will be used when the sending channel can create jitter. Refer to the asterisk documentation for more details about the jitter buffer.

CLI commands

The DECT channel driver supports the following CLI commands:

  • dect set debug on/off -- enable/disable libdect debugging
  • dect access-rights enable/disable -- enable/disable access rights requests
  • dect access-rights terminate NAME -- terminate access rights for the given PP
  • dect show portables -- show a list of all registered PPs
  • dect show portable NAME -- show information about a specific PP

To pair a PP, access rights requests must be enabled. They are disabled again automatically after 120 seconds.


Incoming calls (from PP)

There are two options how to construct the dialplan. The line can be either answered manually using the Answer() command, in which case an asterisk generated dialtone will be played to the phone while waiting for a valid extension, or the dect channel driver can instruct the phone to generate a dialtone itself without answering a line and wait until a valid extension is dialed. For manually picking up the line, use the commands below in your dialplan. For channel controlled pickup, just use a regular dialplan without the Answer() command.

Manually answered:

exten => s,1,Answer                    ; Answer the line
exten => s,n,Set(TIMEOUT(digit)=5)     ; Set Digit Timeout to 5 seconds
exten => s,n,Set(TIMEOUT(response)=10) ; Set Response Timeout to 10 seconds
exten => s,n,WaitExten(,d)             ; Wait for an extension to be dialed.

Outgoing calls (to PP)

Calls to a PP are directed to the DECT channel driver similar as with other channel drivers. Ring patterns can be configured in the dialplan by setting the environment variable RING_PATTERN to a value from 0-7 or silent.

Example setting different ring patterns for the automatically allocated extensions 600 and 601 and using the regcontext dect_register for routing outgoing calls:

exten => 600,1,Set(RING_PATTERN=3)
exten => 601,1,Set(RING_PATTERN=silent)

include => dect_register

Example manually invoking the asterisk stdexten macro for routing outgoing calls:

include => stdexten

exten => 600,1,Gosub(stdexten(600,DECT/DECT-PT-600))
exten => 601,1,Gosub(stdexten(601,DECT/DECT-PT-601))