# SPDX-License-Identifier: GPL-2.0-only
config ISDN_CAPI
	def_bool ISDN && BT
	help
	  This provides CAPI (the Common ISDN Application Programming
	  Interface) Version 2.0, a standard making it easy for programs to
	  access ISDN hardware in a device independent way. (For details see
	  <https://www.capi.org/>.)  CAPI supports making and accepting voice
	  and data connections, controlling call options and protocols,
	  as well as ISDN supplementary services like call forwarding or
	  three-party conferences (if supported by the specific hardware
	  driver).

	  This subsystem requires a hardware specific driver.
	  See CONFIG_BT_CMTP for the last remaining regular driver
	  in the kernel that uses the CAPI subsystem.

config CAPI_TRACE
	def_bool BT_CMTP
	help
	  If you say Y here, the kernelcapi driver can make verbose traces
	  of CAPI messages. This feature can be enabled/disabled via IOCTL for
	  every controller (default disabled).

config ISDN_CAPI_MIDDLEWARE
	def_bool BT_CMTP && TTY
	help
	  This option will enhance the capabilities of the /dev/capi20
	  interface.  It will provide a means of moving a data connection,
	  established via the usual /dev/capi20 interface to a special tty
	  device.  If you want to use pppd with pppdcapiplugin to dial up to
	  your ISP, say Y here.
