
                    Configuration and Reference guide
                                 for the
                  DOS and Windows Internet-ISDN Drivers
                                    
                     Herbert Hanewinkel, April. 1996
                           heha@biochem.mpg.de
                                    
All  drivers  (ISPA,  ISDI, CIPA,  CINDI)  and  programs
(WISPA,  WISDI, WINCI, CANDI) need a configuration  file
in the format described below. The default name for this
configuration file is "program-name".INI, e.g. ISPA.INI.


Structure of the configuration file

 The   configuration  file  consists  of  the  following
 formal parts:
 
 [global options]
 [translation entry for incoming calls from numbers  not
 specified]
 [translation entries for incoming and outgoing calls]
 
 The  first section is optional, but there has to be  at
 least one of the two types of translation entries.
 
 The   global   options   control   thedrivers   overall
 behaviour. Global options can be specified  on  one  or
 more lines. Examples for global option:
      -c0  # controller 0
      -u   # only one active channel
      -w   # active display on DOS screen
 
 See  the  "Global options" section below for a complete
 reference.
 
 The  second  and  third  part  consist  of  translation
 entries  to  map  IP-addresses to ISDN numbers  and  to
 select peer specific parameters for these entries.
 
 The  translation entries in the configuration file have
 two functionalities:
 
 - they  act  as  a translation table for IP routing  on
    outgoing  calls  by  mapping the IP-address  of  the
    peer  to  an  ISDN number. They don't operate  as  a
    routing table.
 
 - they  are used for calling line identification  (CLI)
    on incoming calls.
 
 Incoming  connections will be accepted only  from  ISDN
 numbers   specified  in  the  configuration  file.   To
 disable  CLI and allow incoming calls from any  number,
 the  first translation entry has to contain  a  '*'  in
 the  common  part  of ISDN number field.  For  incoming
 calls  from  ISDN numbers not otherwise specified,  the
 parameters of  this entry will be used.
 
 The  translation entries in the file have to be in  the
 following format:
 
 ip-address   ISDNnumber  [ISDNnumber2]   [options]   [#
 comment]
 
 "ip-address" defines the IP-address of the peer.
 "ISDNnumber" defines the ISDN number of the peer.
 "ISDNnumber2" defines a second ISDN number,  when  used
 with loadsharing.
 "options" define the protocol, time-out, ...  for  this
 link.
 
 If  the  same IP-address appears more than once in  the
 configuration file, the dialler operates  as  a  rotary
 dialler  and  will try all corresponding  ISDN  numbers
 until a connection  is established.
 
 Attention:  If  the  first entry in  the  configuration
 file selects an ethernet bridging protocol, the use  of
 the  configuration  file  as a  translation  table  for
 outgoing calls is disabled. All outgoing calls will  be
 set  up  to  the first entry. Further entries  will  be
 used only for CLI of incoming calls.
 The  driver  can  operate only in routing  or  bridging
 mode.  You  can  not  mix  entries  with  routing   and
 bridging protocols in the configuration file.
 
 The system supports IP-address based routing (as it  is
 implemented  in  PCROUTE) as well  as  interface  based
 routing of IP packets.
 
 For  IP-applications  not supporting  IP-address  based
 routing  or in of simple point-to-point configurations,
 translation   entries  for  outgoing   calls   may   be
 specified  with an IP-address of 0.0.0.0. In this  case
 no  IP-address based selection of the peer is done.  An
 outgoing  call will try all  numbers until a connection
 is  established. All IP packets (unicast and broadcast)
 sent  from the application are forwarded over an active
 connection.
 
 For  translation  entries having a non zero  IP-address
 only unicast IP packets routed via this IP-gateway  are
 forwarded to the corresponding ISDN peer. In  this  the
 IP-address  has to match the (or one of the) IP-gateway
 address(es)   in   your   IP-configuration   of    your
 application software.
 
 Up  to  64 translation entries can be specified in  the
 configuration   file.  Loadsharing   entries   to   two
 different ISDN numbers allocate two entries.
 
 
Global options:


  -m my-ip-address
   defines  a  static local IP-address for  use  in  PPP
    negotiation and/or use with BOOTP, RARP and NAT
    default: no address defined
  
  -a
   disables  the  auto-dialler.  If  not  selected   the
    driver will dial-on-demand.
   default: auto-dialler enabled
  
  -b
   disables  responding  to BOOTP  requests.  Th  driver
    will  respond  to BOOTP requests, if  an  IP-address
    was  configured  through the -m Option  or  received
    via  PPP.  Disable  BOOTP  responses,  if  your  IP-
    provider   supports  BOOTP  for  dynamic  IP-address
    assignment through ISDN.
   default: BOOTP response enabled
  
  -k setup[,sleep[,callbackwait]]
    specifies  the  set-up time in seconds.  The  system
    will  wait "setup" seconds for a connection to  come
    up.  If  the  connection does not reach  the  active
    state  during this time, the channel is  reset.  The
    "sleep"  parameter allows you to  modify  the  delay
    between a disconnect and the next dial request.  The
    "callbacklwait" parameter allows you to specify  the
    delay before a callback will be made. In case  of  a
    callback  request  the request  is  cancelled  after
    "callbackwait" seconds.
         defaults: 10,5,2 seconds
    
  -l interval[c]
    if "interval" is non zero and a connection is up,  a
    statistic   message   will   be   displayed    every
    "interval"-seconds. "interval" should be a  multiple
    of  8, otherwise it is internally rounded up to  the
    next multiple of 8.
    Appending  a  "c"  to interval will force  immediate
    log  (on the screen or syslog host) of every  charge
    message received from the CAPI software.
    
  -r log-ip,my-ip
    remote logging on a UNIX host with a syslogd.  Using
    ISPA  with  IP-Router software this  option  can  be
    used  to  log all connection related messages  on  a
    UNIX  host with a Berkeley syslogd. The command  can
    also  used  under  windows  in  combination  with  a
    WINSOCK syslogd to log all connections to file.
    "log-ip" defines the IP address of the UNIX host.
    "my-ip"  defines  the source IP  address  of  syslog
    messages  sent  by the programs (a  packet  or  NDIS
    driver   can   not   automatically   retrieve    the
    information from the application layer).
    Syslog-messages  are  sent with the  characteristics
    "local0.info".
    
  -s max-size
    defines  the  maximum packet size  for  asynchronous
    protocols  (async  PPP and SLIP). Data  packets  are
    split into more than one packet if they exceed  this
    value.
    default: 512 Bytes/packet
    
  -u
    Limits  the programs to one active connection  at  a
    time.  This  will reduce the memory  requirement  of
    the  DOS versions by 20kB. Selecting loadsharing  (-
    m) overrides this option.
    
  -j low[,high]
    defines   an   ethernet  type  range  for   ethernet
    bridging. Ethernet packets with type values  outside
    the   selected  range  are  discarded.  This  filter
    applies to all bridging protocols.
    "low" defines the lower boundary. default: 0
    "high" defines the upper boundary. default: 0xffff
  
  
  for CAPI 1.1 only:
  -c n
    selects the ISDN controller (card), n specifies  the
    controller number.
    default: 0
  
  -e EAZ | index[,mask]
    German  ISDN  (1TR6)  allows  to  specify  1   digit
    subaddress(EAZ). This option defines  the  EAZ  used
    by   ISPA  for  outgoing  calls.  The  EAZ  will  be
    appended  to  the  basic local address  on  outgoing
    calls. EAZ's range from 1 to 9.
    
          For  EuroISDN this option defines an index  in
    the  range  0  to 9. If your EuroISDN  BRI  supports
    MSN's  (multiple  subscriber  numbers)  this  option
    defines  an  index into a table of  local  addresses
    defined  during  installation of your  ISDN-API  1.1
    software.  The address defined for this  index  will
    be used as the local address on outgoing calls.
    
    mask  defines  the EAZ's or indices  to  listen  for
    incoming  calls  in form of a bit  mask.  The  least
    significant bit corresponds to EAZ or index  0.  The
    default  for the mask selects the same EAZ or  index
    as  used  for outgoing calls. (e.g. EAZ 2 sets  mask
    to 4).
    
    In 1TR6 listening to EAZ 0 means accept all EAZ's.
    
    default: 2,4
    
  
  for CAPI 2.0 only:
  -c n[,56]
    selects the ISDN controller (card), n specifies  the
    controller  number  in the range 1..N..  Specify  56
    for 56kBit ISDN lines.
    default: 1, 64kBit
    
  -e OutgoingNumber[,ListenNumber]
    the  "OutgoingNumber" is used as the calling  number
    for  outgoing calls. The number may be  screened  by
    the network.
    the  "ListenNumber" specifies the number  CIPA  will
    listen  on  incoming  calls. If  this  number  isn't
    defined CIPA will listen for any call.
    
  
  for Packet Drivers only:
  
  -d
   enables  automatic  disconnect  on  release  of   all
    Packet Driver applications.
   default: don't disconnect on release
  
  -p vector
    specifies  the  software interrupt for communication
    with the Packet Driver application software.
    default: 0x60
    
    
  for DOS versions only:
  -i vector
    specifies  the  software interrupt for communication
    with the Common ISDN-API software.
    default: 0xf1
    
  -o
    the  drivers use direct screen output to avoid  BIOS
    output delays.
    if  the  automatic selection of the video-RAM fails,
    this  option can be used to force screen  output  to
    the monochrome video-RAM at B000:0.
    
  -q
    suppresses any message output on the screen.
  
  -v
    the  drivers tries to allocate buffers for the  CAPI
    in  upper  memory (UMB). This option  disables  this
    feature   and  the  program  will  use  conventional
    memory  at  the top of the DOS memory for  the  CAPI
    buffers.  Don't use this option, if you are  running
    Windows.
  
  -w
    Display  activity, state and charge  information  in
    the  upper  right corner of the screen. The  display
    has the following layout:
              /0_\0_APnnn
    
    The symobls mark from left to right:
    
    -outgoing data, the symbol rotates for every
      transmitted packet
    -outgoing data rate on channel 1 in kBytes/sec,
      averaged over 8 seconds
    -outgoing data rate on channel 2 in kBytes/sec,
      averaged over 8 seconds
    -incoming data, rotates for every received packet
    -incoming data rate on channel 1 in kB/sec,
      averaged over 8 seconds
    -incoming data rate on channel 2 in kB/sec,
      averaged over 8 seconds
    -Status of channel 1
    -Status of channel 2
    -accumulated charge units for open connections
    
    
    Status:
          _ = free,
          D = D-channel up,
          C = B-channel requested,
          B = B-channel up,
          A = connection set up,
          additional information for PPP:
          L = LCP configuration up,
            I   =   PAP/CHAP  configuration   up,   IPCP
      configuration started,
          P = PPP connection up
  
  -z days[e]
    forces  an automatic restart of the PC after "days"-
    days,  as  soon as the system becomes  idle.  "days"
    should be in the range from 1 to 2761. Appending  an
    "e"  to the number of days enables automatic restart
    of  the PC if the driver receives an error from  the
    ISDN  CAPI  software. Specifying "0e"  enables  only
    reboot on errors.
         default: disabled




Translation entry format
 
 IP-Address
 
 IP  addresses  should  be  specified  in  standard  dot
 format. e.g.: 141.61.1.23
 
 
 ISDN numbers and related features
 
 PBX's   sometimes  require  a  special   key-code   for
 dialling  out.  If  this prefix  is  not  displayed  on
 incoming  calls, Dial back and CLI will normally  fail.
 To   solve   this  problem  an  outgoing  call   prefix
 supported, which is not checked on incoming calls.  The
 prefix  can  be specified in front of each ISDN  number
 separated by a comma.
 
 Digits,  which should not be used in an outgoing  call,
 but  have  to  be present for CLI can be  marked  by  a
 decimal point from the common part of the number.
 
 Examples:
 089.345678  will  dial 345678 and will  match  incoming
 calls from 089345678.
 
 0,30.123456  will dial 0123456 and will match  incoming
 calls from 30123456.
 
 00,123456789  will  dial  00123456789  and  will  match
 incoming calls from 123456789.
 
 Subaddresses (available only in EuroISDN,  E-DSS1)  can
 be  appended to a number by separating them with  a  /.
 Only digits are supported in a subaddress.
 
 The  total length of number + subaddress is limited  to
 26 characters.
 
 A  SPV connection (available only in German ISDN, 1TR6)
 is  set up by appending an "s" to the end of the  ISDN-
 number.  An  incoming SPV request is accepted  only  if
 the "s" is specified.
 
 The  CAPI standard doesn't define a standard set-up for
 PVC's.   Teles,   Berlin   supports   PVC's   (Digitale
 Festverbindungen  D64s)  using  a  pseudo  ISDN  number
 "tap"  and  selecting  one  of  the  B-channels.   ISPA
 supports  this feature of the Teles CAPI implementation
 and   allows   the  selection  of  a   PVC   with   the
 specification  "1tap"  or  "2tap",  depending  on   the
 desired channel, for the ISDN number.
 
 Translation entry options:
 
  Supported encapsulation protocols:
   (only  one  encapsulation protocol  can  be  selected
    per peer)
  
  -f dlci[i]
    Frame-Relay  protocol.  "dlci"  specifies  the  data
    link connection identifier. Appending an "i" to  the
    dlci  switches encapsulation from "early"  style  to
    IETF  format  as described in RFC 1294 (but  without
    fragmentation  support,  a  data  size  of  1500  is
    assumed).
    
  -h type
    simple HDLC based encapsulations
    type = 0  IP-Data in HDLC frames, no header
    type  =  1  IP-Data with X.75 unnumbered information
    frame (UI) header
    type   =   2    IP-Data   with  Cisco   style   HDLC
    encapsulation
    type  =  3   Ethernet bridging, transfers the  whole
    ethernet packet in a HDLC frame
  
  -l type
          LAPB  (X.75) based encapsulations (caller=DCE,
    window=7, mod 8)
    type = 0       IP-Data in X.75 packets, no header,
    type = 1           multi-X.75      (called      LAPB
              encapsulation  on  ACC-Routers  or  multi-
              LAPB encapsulation on Cisco routers)
    type = 2[,file]      Asynchronous  PPP  (with  Byte-
              Stuffing), for PPP options see  below  (-p
              Option)
    type  =  3        Ethernet bridging,  transfers  the
    whole ethernet packet in a X.75 packet
    type = 4       (not used, undefined)
    type = 5[,file]     SLIP
    type  =  6[,file]     Ethernet bridging  using  SLIP
    encapsulation (SLX)
    
          The  "file" parameter specifies on  optionally
    with a login-script. See below for writing an login-
    script.
    
  -e type
          X.75/T.70NL  based encapsulations (caller=DCE,
    window=7, mod 8)
    type  =  0       IP-Data in X.75/T.70NL packets,  no
    header,
    type = 1      multi-X.75/T.70NL
    type = 2[,file]      Asynchronous  PPP  (with  Byte-
              Stuffing), for PPP options see  below  (-p
              Option)
    type = 3        Ethernet  bridging,  transfers   the
              whole  ethernet  packet in  a  X.75/T.70NL
              packet
    type = 4       (not used, undefined)
    type = 5[,file]     SLIP
    type  =  6[,file]     Ethernet bridging  using  SLIP
    encapsulation (SLX)
    
          The  "file" parameter specifies on  optionally
    with a login-script. See below for writing an login-
    script.
    
  -p
    Point-to-Point   protocol   using    default    PPP-
    parameters.  Of the possible upper layer  protocols,
    only IP is supported at this time.
    From  the PPP configuration options PPP PAP and CHAP
    are  supported  in  both  directions.  With  the  -n
    option  an  id/password combination can be specified
    for  each  remote site. With the -g option  a  local
    id/password can be defined for each peer.
    The  following  PPP  options are accepted  from  the
    remote site:
    -LCP  MRU  requests with values greater or equal  to
      1500.
    -     LCP protocol field compression
    -     LCP address and control field compression.
    -IPCP IP-ADDRESS requests.
    
          Additional  options for use  with  PPP.  These
    options  have  to  be specified after  the  protocol
    selection option.
    
    -n    userid,password
      Userid/password  combination for  the  remote  PPP
      site.  The authentication string is send only,  if
      the  remote  site requests Password authentication
      during PPP option negotiation.
    
    -g    userid,password
      Defines   a   local  userid/password  combination.
      Incoming PPP connections are accepted only if  the
      remote    site    sends    this    userid/password
      combination.
      
      For  CHAP  authentication with Cisco  Routers  the
      "userid"  argument  can have the  form  user@host.
      The  user part is sent to the Cisco routers in the
      CHAP-CHALLENGE  name field to  select  the  proper
      password  in  the  router  database.  The  routers
      return  their  hostname in the CHAP-RESPONSE  name
      field.
      
    -i
      Operate  as  an IP-address provider for  PPP.  (If
      the  IP-address of this entry isn't zero, tell the
      peer which IP-address it has to use.)


    for Plus versions only:
    -c
      The   default  authentication  protocol  is   PAP.
      Authentication via CHAP can be selected with  this
      option.
    
    
    
  -b baudrate[,file]
    asynchronous  point-to-point-protocol   (PPP)   with
    V.110  bit-stuffing. "baudrate" defines the  desired
    transfer rate.
    baudrate = 9,  9600 baud,  async, 8 bit, no  parity,
    1 stop bit
    baudrate = 19, 19200 baud, async, 8 bit, no  parity,
    1 stop bit
    baudrate = 38, 38400 baud, async, 8 bit, no  parity,
    1 stop bit
    
          The  "file" parameter specifies on  optionally
    with a login-script. See below for writing an login-
    script.
    
    
  -s baudrate[,file]
    SLIP  protocol  with V.110 bit-stuffing.  "baudrate"
    defines the desired transfer rate.
    baudrate = 9,  9600 baud,  async, 8 bit, no  parity,
    1 stop bit
    baudrate = 19, 19200 baud, async, 8 bit, no  parity,
    1 stop bit
    baudrate = 38, 38400 baud, async, 8 bit, no  parity,
    1 stop bit
    
          The  "file" parameter specifies on  optionally
    with a login-script. See below for writing an login-
    script.
    
    
  -y baudrate[,file]
    SLX  (Ethernet  bridging using  SLIP  encapsulation)
    protocol  with V.110 bitrate adjustment.  "baudrate"
    defines the desired transfer rate.
    baudrate = 9,  9600 baud,  async, 8 bit, no  parity,
    1 stop bit
    baudrate = 19, 19200 baud, async, 8 bit, no  parity,
    1 stop bit
    baudrate = 38, 38400 baud, async, 8 bit, no  parity,
    1 stop bit
    
          The  "file" parameter specifies on  optionally
    with a login-script. See below for writing an login-
    script.
    
  default protocol: -h0
 
 
 Writing a login-script:
 
    A  login-script  consists of a sequence  of  strings
    sent  to the peer and/or exepected from the peer.  A
    login-script  is  required by many terminal  servers
    for  transparent  login, before switching  to  async
    PPP or SLIP operation.
    
    A string to send has the format:   string>
    A  string  expected  from the  peer  has  the  form:
    string<
    If  the string is not matched within 60 seconds  the
    connection is released.
    A local IP-address assigned is cwcaptured with a ?
    
    Control-characters  can  be  inserted  by  preceding
    them with a $ and adding 64 to the ASCII
    code, e.g.  $M sends a <CR>, $[ sends an <ESC>.
    The  special  characters must be  escaped  by  a  $,
    therfore: $$ inserts a $, $> a > and $< a <.
    
    e.g.
    ogin:<                        expect    ogin:
    heha$M>                  send heha<CR>
    word:<                        expect     word:
    hhh123$M>                send hhh123<CR>
    ocal$><                       expect    ocal>
    show  internet char$M>              send        show
    internet char<CR>
    address<                      expect    address
    ?                         match  the next ip address
    found
    connect ppp$M>                send connect ppp<CR>
    
    The   programs  show  all  characters  received   in
    transparent  mode and will switch  to  SLIP  or  PPP
    operation after the last string-sequence. The  total
    length  of  the  string sequence is limited  to  128
    characters.
  
  
 Other translation entry options:
 
  The  following options can be specified for each  ISDN
  number entry in the configuration file:
  
  -d mode
    Specifies the mode of operation
    mode = 0, outgoing calls are disabled.
    mode = 1, incoming and outgoing calls are allowed.
    mode =  2, an outgoing call is dropped after sending
         the connect request and the system waits for  a
         call back.
    mode =  3,  incoming calls are rejected but  trigger
         an outgoing call to the received ISDN number.
    mode = 4, incoming calls are disabled.
    
    default: 1, incoming and outgoing calls enabled
    
  -t max-idle[,min-idle[s]]
    an  idle connection will be disconnected after "max-
    idle"-seconds. Setting "max-idle" to  zero  disables
    shutdown  of  idle connections. Specifying  a  "min-
    idle"  value  lower  than  "max-idle",  an  outgoing
    (charged)  connection will be hold  at  least  "min-
    idle"  seconds,  it  will  be  closed  down  shortly
    before  the next charge unit is exceeded or max-idle
    expires.  The time of one charge unit is  calculated
    from  the first two units received. max-idle may  be
    used  to  specify  the length of the  first  charge-
    unit.
    
    To  use adaptive timeout without advice-of-charge an
    "s"  can be appended to the min-idle value. In  this
    advice-of-charge  messages  are  simulated  by   the
    program  itself.  The max-idle value  specifies  the
    length of a charge unit.
    
    default: max-idle: 300 seconds, min-idle: disabled
  
  -m high[,low]
    static   or  dynamic  loadsharing  over   both   s0-
    channels.
    "high"  =  0,  static loadsharing, the  caller  will
    always try to activate both channels.
    "high"  <>  0, dynamic loadsharing, if the  load  is
    higher  than 6000 Bytes/sec for "high"-seconds,  the
    system  will  activate  the  second  channel.  After
    "down"-seconds  of a load lower than 6000  Bytes/sec
    the  second channel will be closed down.  If  "down"
    is  not  specified, the "max-idle" Time-out will  be
    used (see option -t).
    A  -m  option has to be specified at both ends of  a
    link.  However, only the caller of the first channel
    will activate the second channel.
    The  values for "high" and "low" should be multiples
    of  8,  otherwise they will be rounded  up  to  next
    multiple of 8.
    
    To  set  up  loadsharing  to different  target  ISDN
    numbers,  a second ISDN number can be specified  for
    each translation entry.

  -k
    Don't  reset  disconnect timer on sending  broadcast
    packets.
    Don't open a connection by broadcast packets.
    Enable  this  option  if  your  IP  software  should
    announce  routing information when the link  is  up.
    Setting this option will allow the link to time  out
    even if broadcast packets are sent.
    
  -r
    Don't reset disconnect timer on received packets.
    Some  peers  send  packets  on  regular  basis  (e.g
    Cisco's  keepalive packets, RIP routing  information
    packets).  These packets will normally keep  a  line
    up.  The  option allows a link to time out  even  if
    packets are received.
  
  -u
    Declares  a  link  as  a broadcast  link.  Broadcast
    packets are sent over this link.
    
    
  for Plus Versions only:
  -o
    Enables  NAT (Network Address Translation) for  this
    link.
    With  NAT enabled, a received dynamic IP-address  is
    replaced  by a local defined IP-address in  incoming
    packets.  The locally defined IP-address is replaced
    by   the   dynamic  IP-address  in  all  transmitted
    packets.  If a local IP-address is defined with  the
    -m  option,  only this IP-address is translated.  If
    no  static  IP-address  is  defined  the  local  IP-
    address  is  captured from the  source-IP  field  of
    outgoing packets.
    
  for CAPI 1.1 only:
  -a service
    (specific  to German ISDN, however the API  software
    should  map  the  values  to corresponding  EuroISDN
    codes)
    Additional  service indicator and service  indicator
    selection.  The high byte of the argument  "service"
    redefines   the  service  indicator   the   low-byte
    defines the additional service indicator. Some  ISDN
    equipment   (e.g.  Elink  TA)  use  the   additional
    service  indicator  field to selected  a  predefined
    mode/protocol  of  operation. However  there  is  no
    standard for this field.
      "service"  is defined as 0x700 with the  following
    exceptions:
    
    service = 0x7c5:    -s 9,     -y 9
    service = 0x7c7:    -s 19,    -y 19
    service = 0x740:    -s 38,    -y 38
    
    The  option  allows  to override the  default  value
    with  your  own  value.  (To override  the  protocol
    specific  default, the value has  to  be  positioned
    after the protocol option on the line.)
    
    To  use  the ISDN service "X.21 Services" in  German
    national   1TR6  ISDN  use  a  "service"  value   of
    "0x30c".
  
  for 8 B-Channel Versions only:

  -i
    Operate  as an IP-address provider for any protocol.
    For  PPP protocol the IP address is provided through
    IPCP   ip-address   negotiation,   for   all   other
    protocols the program responds to BOOTP requests.
    
  
  -j
    Operate  as a dynamic IP-address provider.  The  IP-
    address  assigned depends on the number of currently
    open connections.
    
    e.g.
    
       192.1.2.1 *      -p -d0 -i -j
       192.1.2.1 12345  -p -d0 -i -j
       192.1.2.10 6789  -p -i
    
       incoming connections (unspecified or from  12345)
    receive the following IP-addresses
    
       1. connection:   192.1.2.1
       2. connection:   192.1.2.2
       3. connection:   192.1.2.3
       4. connection:   192.1.2.4
       ...
    
        incoming  calls from 6789 receive the fixed  IP-
    address 192.1.2.10
    
    


Additional features

 1.    Dynamic IP address assignment:
   All  versions  support dynamic IP address  assignment
   by  a  remote  system  through  PPP  IPCP  IP-ADDRESS
   negotiation.  Higher level software can retrieve  the
   IP-address via BOOTP or RARP:
 
   -(Make sure that your peer supports the PPP IPCP  IP-
     ADDRESS option.)
   -Configure  your  IP software for use with  BOOTP  or
     RARP. If possible use BOOTP.
   -Manually set up a connection.
   -(for  Windows: Check the received IP address, it  is
     displayed on the Status page
   -for  DOS:  Check  the received IP address  with  the
     control program option -i.)
   -Start your IP software.
    
 2.      Some   Routers  use  the  PPP  IPCP  IP-ADDRESS
   negotiation  for  remote system identification.  They
   don't  support  asking  for an IP-address  using  PPP
   IPCP IP-ADDRESS negotiation(as described above).  For
   such  routers  you  has to provide  the  correct  IP-
   address  to the peer. To accomplish this you can  set
   the  local  IP-address with the -m global  option  in
   the  configuration file. Under DOS you can modify the
   IP-address to any desired value using the  -i  option
   of   the   control  programs,  e.g.   ISPACF-i   0x60
   192.1.2.3  sets  the  local IP-address  of  the  ISPA
   packet driver at 0x60 to 192.1.2.3.
 
 3.     All  versions  can  operate  as  an  IP  address
   provider  for  PPP connections. This feature  can  be
   enabled  on  a peer basis using the -i entry  option.
   The  8B-channel version con operate as an IP  address
   provider for any protocol.
 
 4.     The  Plus versions contain an implementation  of
   NAT (Network Address Translation) to support
  - dynamic address assignment without restart and
  -  multi homing (simultanous access to differerent  IP
   providers).
  -  connecting  a small LAN to the Internet  with  only
   ONE offical and dynamic assigned IP-address.
 
  To  use  NAT  for  a  link add the  -o  option  to  an
   connection  entry. Enable NAT for all  links  to  IP-
   providers  with  dynamic IP-address assignment.  With
   NAT  enabled  a  static  local  IP-address  will   be
   automatically  translated  to  a  dynamic  IP-address
   receieved via PPP in all packets sent and received.
 
Examples
 
 
  1.     A  point-to-point  configuration  for  ISPA  to
    connect  a  standalone PC to  an  IP  provider.  The
    connections  uses PPP protocol and  the  PC  has  to
    identify  itself using the id "guest"  and  password
    "gast".   Because  the  IP  address  in   the   ISPA
    configuration  file  is  specified  as  0.0.0.0  ALL
    packets  will  be send to the peer 0815712345.  This
    way  NO  gateway IP address is required  in  the  IP
    configuration.
 
    ISPA.INI:
    -u             # only only one active channel
    -w             # activity display under DOS
    0.0.0.0   089987654  -p  -nguest,gast  -t60  #   PPP
    protocol with PAP, timeout 60 sec
    # end of configuration file
    
    
    And  an example of an IP configuration for a  PC  in
    format of wattcp.cfg
    Local IP address 141.61.224.5.
    The  IP  Provider  has  a  nameserver  with  address
    141.61.1.32.
    Because interface-routing (0.0.0.0) is used  in  the
    configuration  file above, a gateway  entry  is  not
    necessary   and  you  should  set  the  netmask   to
    0.0.0.0.
    
    my_ip=141.61.224.5
    netmask=0.0.0.0               # netmask
    nameserver=141.61.1.32        # nameserver
    nameserver=141.61.1.23             #       alternate
    nameserver
    domainslist="biochem.mpg.de"
 
 2.Set  up of a ISPA multipoint configuration as a dial-
    in   server   with  no  outgoing  connections.   All
    connections  are  logged  with  the  remote  logging
    feature in the syslog file of host 141.61.1.32.  The
    syslog   messages  will  appear   as   coming   from
    141.61.224.1. The protocol for incoming  calls  from
    unknown  numbers is PPP with identification  "guest"
    and password "gast". The net 141.61 is connected  to
    the  Internet via 141.61.1.1. The ISPA  and  PCROUTE
    configuration  will allow the PC of  example  1.  to
    dial  in as an unknown ISDN peer and connect to  the
    Internet.
    ISPA is configured for listening on EAZ 4.
    ISPA  can  handle two active connections,  but  only
    one unknown peer at a time.
    
    
    ISPA.INI:
    -r141.61.1.32,141.61.224.1    #  remote  logging  on
    141.61.1.32
    -e4                 # use EAZ 4
    #
    141.61.224.5 * -p -gguest, gast -t30     #  no  CLI,
    protocol PPP
    141.61.224.2 0815712345 -d0 -t60         #  incoming
    from 0815712345
    141.61.224.3  08912345 -h1 -d0 -t60 # incoming  from
    08912345
    141.61.224.4  08923456 -l1 -d0 -t60 # incoming  from
    08923456
    # end of configuration file
    
    
    and the corresponding pcroute configuration:
    Interface      1      (Ethernet):       141.61.1.200
    255.255.255.0
    Interface     2     (ISDN)       :      141.61.224.1
    255.255.255.0
    Routes:                Net:     0.0.0.0     Gateway:
    141.61.1.1
    
    
 3.A  point-to-point configuration for  WISPA.  A  local
    IP-address  is  defined  as  141.61.224.1.   Trumpet
    Winsock  can  therefore simply  configured  for  use
    with  "bootp".  The  -d  options  enables  WISPA  to
    aumatically close an open connection on  release  of
    all  packet  types, e.g.unload of Trumpet Winsock's.
    The  connection uses Cisco-style HDLC  framing,  the
    timeout of idle connections is set to 90 seconds.
    
    WSPA.INI:
    -m 141.61.224.1               # local IP address
    -d                    #   automatic  disconnect   on
    release
    0.0.0.0 0815712345 -h2 -t90
    
    
 4.ISPA  in  point-to-point configuration  with  dynamic
    Loadsharing.  The  second link will  be  established
    after  16  seconds  of  a  load  higher  than   6000
    Bytes/sec and will be closed after 24 seconds  of  a
    load  lower  than  6000 Bytes/sec.  The  connections
    uses  Cisco-style HDLC framing, the timeout of  idle
    connections is set to 90 seconds.
    
    ISPA.INI:
    -w                  # DOS activity display
    0.0.0.0 0815712345 -h2 -m16,24 -t90
    
    
 5.ISPA   in   multipoint  configuration.  For  incoming
    calls from unknown numbers the -h1 protocol will  be
    used.
 
    
    ISPA.INI:
    -e4 -w                   # global options
    2.0.0.6  *  -h1  -t60             #  other  incoming
    calls
    2.0.0.1  089.89512300  -f100i  -t200,30      #  ietf
    frame-relay
    2.0.0.2  089.89512301  -h2 -t20,5  -m8,30  #  cisco-
    hdlc, dynnamic loadsharing
    2.0.0.3  0033,815711111 -d0 -t40            #  hdlc,
    only incoming
    2.0.0.5  0,4518789123 -p -t60,10             #  PPP,
    no PAP
 
 
  6.      WISDI   in  point-to-point  configuration   to
    connect  a standalone PC to an IP provider (in  this
    example  COMPUSERV) using async  PPP  protocol  with
    transparent   login.  For  login  WISDI   uses   the
    contents  of  the  script file  COMPUSRV.SCR.  After
    this  WISDI automatically switches to PPP  protocol.
    Because  a  dynamic IP-address is received  via  PPP
    negotiation, a static IP-address is defined and  NAT
    enabled for the link.
    
    WISDI.INI:
    -u             # only one active channel
    -m   200.199.199.201   #  IP-address  configured  in
    local IP-stack
    0.0.0.0 089987654 -b38,compusrv.scr -t60 -o
    
    COMPUSRV.SCR:
    $M>                 send <return>
    Ho<                 expect "Host"
    +$M>                send "+<return>"
    Name:<                   expect "Name:"
    rechner,userid$M>                               send
    "rechner,userid<return>"
    word<                    expect "word"
    passwort$M>              send "passwort"

Restrictions in current versions
 
 1.     Option  parsing is far away from being  perfect.
   It  is possible to specify conflicting options. Don't
   specify  more than one encapsulation protocol  option
   per line (translation entry).
 
 2.     On  a PPP link with bidirectional authentication
   configured, the same authentication protocol (PAP  or
   CHAP) has to be used in both directions.

 3.     Setting the pseudo Ethernet address in the  NDIS
   versions is not supported in the current release.


CAPI 1.1 Error codes
 
 2001 incorrect controller
 2002 incorrect PLCI
 2003 incorrect NCCI
 2004      incorrect type
 
 3101 B-channel incorrectly coded
 3102 Info-mask incorrectly coded
 3103 Serviced EAZ-mask incorrectly coded
 3104 Serviced SI mask incorrectly coded
 3105 B-channel protocol, level 2 incorrect
 3106 DLPD incorrect
 3107 B-channel protocol, level 3 incorrect
 3108 NCPD incorrect
 3109 NCPI incorrect
 310A    Flags incorrectly coded
 
 3201 Controller error
 3202 Conflict between registrations, check SI mask  and
 EAZ
 3203 Function not supported
 3204 PLCI not active
 3205 NCCI not active
 3206 B-channel protocol, level 2 not supported
 3207  Changeover of B-channel protocol, level 2 in this
 state not possible
 3208 B-channel protocol, level 3 not supported
 3209  Changeover of B-channel protocol, level 3 in this
 state not possible
 320A Unsupported parameters in DLPD
 320B Unsupported parameters in NCPD
 320C Unsupported parameters in NCPI
 320D Data length not supported
 
 3301 Error on setup of D-channel, level 1
 3302 Error on setup of D-channel, level 2
 3303 Error on setup of B-channel, level 1
 3304 Error on setup of B-channel, level 2
 3305 Abort D-channel, level 1
 3306 Abort D-channel, level 2
 3307 Abort D-channel, level 3
 3308 Abort B-channel, level 1
 3309 Abort B-channel, level 2
 330A Abort B-channel, level 3
 330B B-channel connection, level 2 re-established
 330C B-channel connection, level 3 re-established
     
 34xx     Abort by network, low order 8 Bit contain  the
     cause  value  according 1TR6, the MSB  is  used  to
     signal  an  error, but is not set by  all  ISDN-API
     1.1 implementations:
 
 3400  Normal termination (0 = local, 3400  =  from  the
 network)
 3481 Invalid call reference value
 3483 Bearer service not implemented
 3487 Unknown caller identity
 3488 Caller identity already suspended
 348A No B-channel available
 348F Disconnect
 3490 Facility code unknown in this network
 3491 Requested service rejected
 34A0 Outgoing calls barred
 34A1 User access busy
 34A2 Closed-user-group refused connection
 34A3 Nonexistent closed-user-group
 34A5 SPV not enabled for this number
 34A9 Temporarily not available
 34B5 Destination not obtainable
 34B8 Number of called station has changed
 34B9 Remote station not ready
 34BA No user responding
 34BB Called station busy
 34BD Incoming calls barred
 34BE Call was rejected by called station
 34D9 Network congestion
 
 34DA  Connection was terminated or rejected  by  called
 station
 34E0 Call id incomplete
 34F0 Local procedure error
 
 34F1 Disconneted due to an error at the remote station
 34F2 Remote user suspended call
 34FF Local reject of user-to-user info

CAPI 2.0 Error codes

 2001 Message not supported in current state
 2002 Illegal Controller / PLCI / NCCI
 2003 Out of PLCI
 2004 Out of NCCI
 2005 Out of LISTEN
 2007 llegal message parameter coding
 
 3001 B1 protocol not supported
 3002 B2 protocol not supported
 3003 B3 protocol not supported
 3004 B1 protocol parameter not supported
 3005 B2 protocol parameter not supported
 3006 B3 protocol parameter not supported
 3007 B protocol combination not supported
 3008 NCPI not supported
 3009 CIP Value unknown
 300A Flags not supported (reserved bits)
 300B Facility not supported
 300C Data length not supported by current protocol
 300D Reset procedure not supported by current protocol
 
 3301 Protocol error layer 1 (broken line or B-channel
 removed by signalling protocol)
 3302 Protocol error layer 2
 3303 Protocol error layer 3
 3304 Another application got that call
 
 3480 Normal termination
 3481 Unallocated (unassigned) number
 3482 No route to specified transit network
 3483 No route to destination
 3486 Channel unacceptable
 3487 Call awarded and being delivered in an
 established channel
 3490 Normal call clearing
 3491 User busy
 3492 No user responding
 3493 No answer from user (user alerted)
 3495 Call rejected
 3496 Number changed
 349A Non-selected user clearing
 349B Destination out of order
 349C Invalid number format
 349D Facility rejected
 349E Response to STATUS ENQUIRY
 349F Normal, unspecified
 34A2 No circuit / channel available
 34A6 Network out of order
 34A9 Temporary failure
 34AA Switching equipment congestion
 34AB Access information discarded
 34AC Requested circuit / channel not available
 34AF Resources unavailable, unspecified
 34B1 Quality of service unavailable
 34B2 Requested facility not subscribed
 34B9 Bearer capability not authorized
 34BA Bearer capability not presently available
 34BF Service or option not available, unspecified
 34C1 Bearer capability not implemented
 34C2 Channel type not implemented
 34C5 Requested facility not implemented
 34C6 Only restricted digital information bearer
 capability is available
 34CF Service or option not implemented, unspecified
 34D1 Invalid call reference value
 34D2 Identified channel does not exist
 34D3 A suspended call exists, but this call identity
 does not
 34D4 Call identity in use
 34D5 No call suspended
 34D6 Call having the requested call identity has been
 cleared
 34D8 Incompatible destination
 34DB Invalid transit network selection
 34DF Invalid message, unspecified
 34E0 Mandatory information element is missing
 34E1 Message type non-existent or not implemented
 34E2 Message not compatible with call state or message
 type non-existent or not implemented
 34E3 Information element non-existent or not
 implemented
 34E4 Invalid information element contents
 34E5 Message not compatible with call state
 34E6 Recovery on timer expiry
 34EF Protocol error, unspecified
 34FF Interworking, unspecified


