ZyXEL ISDN analog / digital

Marc SCHAEFER (schaefer@alphanet.ch)
14 Apr 1999 1916:16:02 +0200


Thorbjoern List <list@list.dk> wrote:
> But if I dial in using DIGITAL (atdixxxx) it answers the phone and
> tries to send voice commands, which the ISDN part of the modem does
> not understand - and then hangs up due to an erroneous response from
> the modem.

This is fixed in mgetty-1.1.20 + the global patch available
at http://www-internal.alphanet.ch/~schaefer/vgetty/global_patches/10021999/

> I am subscribing to multiple numbers and am using version 1.1.20 from
> January 99. This version states that support for MSN will be built in
> as distinctive ring types, but this does not help me now...

There is help in mvm for how to do this. You can only do this the mvm's
way with the global patches above.

NB: for multiple number support you also need the ZyXEL multi-MSN
firmware.

Excerpt from mvm's documentation:


5.2 Enhanced modes

5.2.1 Multi-MSN discrimination and multiple mvm instances

mvm can be configured to recognize the called (not caller) ID and
launch a different instance. Basically, we set the mvm root directory.
This can be used to implement different independant voice mails, or
special functions such as an automatic answerer. This was only tested
with ISDN, however, and with the ZyXEL 2864I. Please refer to
the ZyXEL 2864I documentation for how to enable multi-MSN mode.

For this to work, as of current versions, you need mgetty-1.1.20
(released in january 1999), plus the vgetty specific patches
you will found at
   http://www-internal.alphanet.ch/~schaefer/vgetty/global_patches/10021999/

Please look first at http://www-internal.alphanet.ch/~schaefer/vgetty.html
for the latest vgetty news.

With this patch installed, you will be able to use, for example, the
following cnd_program (use cnd-program /usr/lib/mgetty/filter_msn.sh
and msn-list 8414081 8414037 8414013 8414014, assuming those are
the numbers that calle_d_ it returns).

---- cut
#! /bin/sh
# very simple MSN filtering (BOOLEAN)
# NOTES
#    - Arguments
#      <program> <tty> <CallerID> <Name> <dist-ring-nr.> <Called Nr.>

CND_SCRIPT_ACCEPT_CALL=0
CND_SCRIPT_IGNORE_CALL=257
CND_SCRIPT_REJECT_CALL=258
CND_SCRIPT_MORE_RINGS_NEEDED=259
CND_SCRIPT_LET_IT_RING=260

if [ $# != 5 ]; then
   exit $CND_SCRIPT_REJECT_CALL
fi

case $4 in
   1) exit $CND_SCRIPT_ACCEPT_CALL;;
      # 8414081, accept fax/modem (and also X.75)
   2) exit $CND_SCRIPT_ACCEPT_CALL;;
      # 8414037, accept X.75 (and also fax/modem).
   3) exit $CND_SCRIPT_ACCEPT_CALL;;
      # 8414013
#   4) if [ $RING_COUNT -lt 5 ]; then
#          exit $CND_SCRIPT_MORE_RINGS_NEEDED
#       else
#          exit $CND_SCRIPT_ACCEPT_CALL
#       fi;;
#      # 8414014
esac

exit $CND_SCRIPT_IGNORE_CALL

---- cut

Now, when the calls happens, vgetty will run and will launch the
voice script (call_program /usr/lib/mgetty/mvm_discriminate.sh)
which is were we do the mvm instanciation (and also go modem/fax
or voice).

---- cut
#! /bin/sh

case $CALLED_ID in
   8414013) exec /usr/lib/mgetty/mvm_vgetty_script.sh;;
   8414037) export MVM_INSTANCE=8414037
            export SELECTED_LANGUAGE=NO_ASK
            exec /usr/lib/mgetty/mvm_vgetty_script.sh;;
esac

exit 3
---- cut

This will launch modem/fax on any other number than 8414013 and
8414037. 8414013 will launch a standard mvm, and 8414037 will launch
a special version of mvm with no language asking. Moreover,
the files will be in /usr/spool/voice/instances/8414037/ instead
of being in /usr/spool/voice. To implement a simple
answering machine, create a /usr/spool/voice/instances/8414037/
hierarchy with:

total 4
drwxr-xr-x   4 root     root         1024 Dec 29 11:59 .
drwxr-xr-x   3 root     root         1024 Dec 29 11:56 ..
lrwxrwxrwx   1 root     root           11 Dec 29 11:56 areas -> ../../areas
lrwxrwxrwx   1 root     root           14 Dec 29 11:57 incoming -> ../../incoming
lrwxrwxrwx   1 root     root           15 Dec 29 11:56 mailboxes -> ../../mailboxes
drwxr-xr-x   2 root     root         1024 Dec 29 11:58 main
lrwxrwxrwx   1 root     root           22 Dec 29 11:56 menu_items_types -> ../../menu_items_types
drwxr-xr-x   2 root     root         1024 Dec 29 12:05 messages
lrwxrwxrwx   1 root     root           13 Dec 29 11:56 scripts -> ../../scripts

So, basically, just messages and main are NOT common. 

vulcan:/usr/spool/voice/instances/8414037 # ls -la messages
total 22
drwxr-xr-x   2 root     root         1024 Dec 29 12:05 .
drwxr-xr-x   4 root     root         1024 Dec 29 11:59 ..
lrwxrwxrwx   1 root     root           33 Dec 29 12:04 leave_message -> ../../../messages/leave_message.1
lrwxrwxrwx   1 root     root           33 Dec 29 11:59 leave_message.1 -> ../../../messages/leave_message.1
-rw-r--r--   1 root     root        19163 Dec 29 12:05 welcome_here

Basically we have an introduction file (welcome_here), and the standard
``leave a message after the beep'' message.

vulcan:/usr/spool/voice/instances/8414037 # ls -la main
total 3
drwxr-xr-x   2 root     root         1024 Dec 29 11:58 .
drwxr-xr-x   4 root     root         1024 Dec 29 11:59 ..
-rw-r--r--   1 root     root           20 Dec 29 11:36 direct_command_exec

The content of this file is:

message_to_operator

which is the menu_item_type for leaving a message.

NB: this assumes mvm's spool was set to /usr/spool/voice, and
it also assumes that you configured mgetty in /usr/lib/mgetty.