Hallo,
ich beabsichtige das Anrufbeantwortersystem VOCP mit Hilfe von vgetty und
einer Fritz ISDN PCI 2.0 zu betreiben.
Habe SuSE 10.1 mit i4l / capi4linux 2006.4.25-4 und capisuite 0.4.5-19 sowie
die Capi Treiber von http://opensuse.fltronic.de/ für den Kernel 2.6.16-21.
Fogendes Problem: Nach Annahme des Anrufs und eingehender DTMF-Töne reagiert
VOCP nicht. Habe hier mal den vgetty-log:
08/17 20:27:00 yI7 Linux ISDN: OK
08/17 20:27:00 yI7 voice command: 'AT+FCLASS=8' -> 'OK'
08/17 20:27:00 yI7 vgetty: AT+FCLASS=8
08/17 20:27:00 yI7 Linux ISDN: OK
08/17 20:27:00 yI7 voice command: 'AT' -> 'OK'
08/17 20:27:00 yI7 vgetty: AT
08/17 20:27:00 yI7 Linux ISDN: OK
08/17 20:27:00 yI7 vgetty: queued event RESET_WATCHDOG at position 0001
08/17 20:27:00 yI7 voice command: 'ATS20?' -> '0|1|2|3|4'
08/17 20:27:01 yI7 vgetty: ATS20?
08/17 20:27:01 yI7 vgetty: unqueued event RESET_WATCHDOG at position 0001
08/17 20:27:01 yI7 vgetty: voice_handle_event got event RESET_WATCHDOG with
data <_>
08/17 20:27:01 yI7 Linux ISDN: 1
08/17 20:27:01 yI7 voice command: 'ATA' -> 'VCON'
08/17 20:27:01 yI7 vgetty: ATA
08/17 20:27:01 yI7 Linux ISDN: OK
08/17 20:27:01 yI7 Linux ISDN: VCON
08/17 20:27:01 yI7 vgetty: queued event RESET_WATCHDOG at position 0002
08/17 20:27:01 yI7 voice command: 'AT+VLS=2' -> 'VCON|OK|NO CARRIER'
08/17 20:27:01 yI7 vgetty: AT+VLS=2
08/17 20:27:01 yI7 vgetty: unqueued event RESET_WATCHDOG at position 0002
08/17 20:27:01 yI7 vgetty: voice_handle_event got event RESET_WATCHDOG with
data <_>
08/17 20:27:01 yI7 Linux ISDN: OK
08/17 20:27:01 yI7 vgetty: Executing shell script /usr/local/vocp/bin/vocp.pl
with shell /usr/bin/perl
08/17 20:27:01 yI7 vgetty: opening pipes
08/17 20:27:01 yI7 vgetty: forking shell
08/17 20:27:01 yI7 vgetty(0): HELLO SHELL
08/17 20:27:01 yI7 vgetty: Got pipe signal
08/17 20:27:01 yI7 vgetty: queued event SIGNAL_SIGPIPE at position 0003
08/17 20:27:01 yI7 vgetty: unqueued event SIGNAL_SIGPIPE at position 0003
08/17 20:27:01 yI7 vgetty: voice_handle_event got event SIGNAL_SIGPIPE with
data <_>
08/17 20:27:01 yI7 shell(1): HELLO VOICE PROGRAM
08/17 20:27:01 yI7 vgetty(1): READY
08/17 20:27:01 yI7 vgetty: initialized communication
08/17 20:27:01 yI7 vgetty: Got pipe signal
08/17 20:27:01 yI7 vgetty: queued event SIGNAL_SIGPIPE at position 0004
08/17 20:27:01 yI7 vgetty: unqueued event SIGNAL_SIGPIPE at position 0004
08/17 20:27:01 yI7 vgetty: voice_handle_event got event SIGNAL_SIGPIPE with
data <_>
08/17 20:27:01 yI7 shell(1): DEVICE DIALUP_LINE
08/17 20:27:01 yI7 vgetty: queued event RESET_WATCHDOG at position 0005
08/17 20:27:01 yI7 voice command: 'AT+VLS=2' -> 'VCON|OK|NO CARRIER'
08/17 20:27:01 yI7 vgetty: AT+VLS=2
08/17 20:27:01 yI7 vgetty: unqueued event RESET_WATCHDOG at position 0005
08/17 20:27:01 yI7 vgetty: voice_handle_event got event RESET_WATCHDOG with
data <x>
08/17 20:27:01 yI7 Linux ISDN: OK
08/17 20:27:01 yI7 vgetty(1): READY
08/17 20:27:01 yI7 vgetty: Got pipe signal
08/17 20:27:01 yI7 vgetty: queued event SIGNAL_SIGPIPE at position 0006
08/17 20:27:01 yI7 vgetty: unqueued event SIGNAL_SIGPIPE at position 0006
08/17 20:27:01 yI7 vgetty: voice_handle_event got event SIGNAL_SIGPIPE with
data <_>
08/17 20:27:01 yI7 shell(1): AUTOSTOP ON
08/17 20:27:01 yI7 vgetty(1): READY
08/17 20:27:02 yI7 vgetty: Got pipe signal
08/17 20:27:02 yI7 vgetty: queued event SIGNAL_SIGPIPE at position 0007
08/17 20:27:02 yI7 vgetty: unqueued event SIGNAL_SIGPIPE at position 0007
08/17 20:27:02 yI7 vgetty: voice_handle_event got event SIGNAL_SIGPIPE with
data <_>
08/17 20:27:02 yI7 shell(1): ENABLE EVENTS
08/17 20:27:02 yI7 vgetty(1): READY
08/17 20:27:02 yI7 vgetty: Got pipe signal
08/17 20:27:02 yI7 vgetty: queued event SIGNAL_SIGPIPE at position 0008
08/17 20:27:02 yI7 vgetty: unqueued event SIGNAL_SIGPIPE at position 0008
08/17 20:27:02 yI7 vgetty: voice_handle_event got event SIGNAL_SIGPIPE with
data <_>
08/17 20:27:02 yI7 shell(1): PLAY /var/spool/voice/messages/root.rmd
08/17 20:27:02 yI7 vgetty(1): PLAYING
08/17 20:27:02 yI7 playing voice file /var/spool/voice/messages/root.rmd
08/17 20:27:02 yI7 vgetty: raw modem data header found
08/17 20:27:02 yI7 vgetty: modem type ISDN4Linux found
08/17 20:27:02 yI7 vgetty: compression method 0x0006, speed 8000, bits 8
08/17 20:27:02 yI7 vgetty: queued event RESET_WATCHDOG at position 0009
08/17 20:27:02 yI7 voice command: 'AT+VSM=6' -> 'OK'
08/17 20:27:02 yI7 vgetty: AT+VSM=6
08/17 20:27:02 yI7 vgetty: unqueued event RESET_WATCHDOG at position 0009
08/17 20:27:02 yI7 vgetty: voice_handle_event got event RESET_WATCHDOG with
data <x>
08/17 20:27:02 yI7 Linux ISDN: OK
08/17 20:27:02 yI7 vgetty: queued event RESET_WATCHDOG at position 0010
08/17 20:27:02 yI7 vgetty: unqueued event RESET_WATCHDOG at position 0010
08/17 20:27:02 yI7 vgetty: voice_handle_event got event RESET_WATCHDOG with
data <x>
08/17 20:27:02 yI7 voice command: 'AT' -> 'OK'
08/17 20:27:02 yI7 vgetty: AT
08/17 20:27:02 yI7 Linux ISDN: OK
08/17 20:27:02 yI7 tio_set_flow_control( HARD XON_OUT )
08/17 20:27:02 yI7 voice command: 'AT+VTX' -> 'CONNECT|NO ANSWER'
08/17 20:27:02 yI7 vgetty: AT+VTX
08/17 20:27:02 yI7 Linux ISDN: CONNECT
08/17 20:27:03 yI7 Linux ISDN: <DLE> <_>
08/17 20:27:03 yI7 vgetty: Unknown code <DLE> <_>
08/17 20:27:04 yI7 Linux ISDN: <DLE> <_>
08/17 20:27:04 yI7 vgetty: Unknown code <DLE> <_>
08/17 20:27:05 yI7 vgetty:
On Thu, Aug 17, 2006 at 10:23:12PM +0200, Klaus Nitsche wrote:
Hallo,
ich beabsichtige das Anrufbeantwortersystem VOCP mit Hilfe von vgetty und einer Fritz ISDN PCI 2.0 zu betreiben. Habe SuSE 10.1 mit i4l / capi4linux 2006.4.25-4 und capisuite 0.4.5-19 sowie die Capi Treiber von http://opensuse.fltronic.de/ für den Kernel 2.6.16-21.
Fogendes Problem: Nach Annahme des Anrufs und eingehender DTMF-Töne reagiert VOCP nicht. Habe hier mal den vgetty-log:
08/17 20:27:00 yI7 Linux ISDN: OK ... 08/17 20:27:09 yI7 vgetty: AT 08/17 20:27:09 yI7 Linux ISDN: OK 08/17 20:27:09 yI7 tio_set_flow_control( HARD XON_OUT ) 08/17 20:27:09 yI7 voice command: 'AT+VTX' -> 'CONNECT|NO ANSWER' 08/17 20:27:09 yI7 vgetty: AT+VTX 08/17 20:27:09 yI7 Linux ISDN: CONNECT 08/17 20:27:09 yI7 Linux ISDN: <DLE> <_> 08/17 20:27:09 yI7 vgetty: Unknown code <DLE> <_> 08/17 20:27:09 yI7 Linux ISDN: <DLE> <_> 08/17 20:27:09 yI7 vgetty: Unknown code <DLE> <_> 08/17 20:27:09 yI7 vgetty:
Die Zeilen "Linux ISDN: <DLE> <_>" sind das eigentliche Problem, da müssten eigentlich die Ziffern der gedrückten Tasten auftauchen. Da vgetty also nur "Unkonw code <DLE> <_>" bekommt, kann VOCP natürlich auch auf nichts reagieren. Allerdings zeigt "tail -f /var/log/messages | grep dtmf" folgendes:
Aug 17 20:27:03 r2d2 kernel: dtmf: tt='1' Aug 17 20:27:04 r2d2 kernel: dtmf: tt='2' Aug 17 20:27:09 r2d2 kernel: dtmf: tt='3' Aug 17 20:27:09 r2d2 kernel: dtmf: tt='4'
Bekanntes Problem, Fehler im ttyI code.
Ist im kernel 2.6.18 gefixt, hier die 2 Patches:
From: Karsten Keil
Am Donnerstag, 17. August 2006 23:14 schrieb Karsten Keil:
On Thu, Aug 17, 2006 at 10:23:12PM +0200, Klaus Nitsche wrote:
Hallo,
ich beabsichtige das Anrufbeantwortersystem VOCP mit Hilfe von vgetty und einer Fritz ISDN PCI 2.0 zu betreiben. Habe SuSE 10.1 mit i4l / capi4linux 2006.4.25-4 und capisuite 0.4.5-19 sowie die Capi Treiber von http://opensuse.fltronic.de/ für den Kernel 2.6.16-21.
Fogendes Problem: Nach Annahme des Anrufs und eingehender DTMF-Töne reagiert VOCP nicht. Habe hier mal den vgetty-log:
08/17 20:27:00 yI7 Linux ISDN: OK
...
08/17 20:27:09 yI7 vgetty: AT 08/17 20:27:09 yI7 Linux ISDN: OK 08/17 20:27:09 yI7 tio_set_flow_control( HARD XON_OUT ) 08/17 20:27:09 yI7 voice command: 'AT+VTX' -> 'CONNECT|NO ANSWER' 08/17 20:27:09 yI7 vgetty: AT+VTX 08/17 20:27:09 yI7 Linux ISDN: CONNECT 08/17 20:27:09 yI7 Linux ISDN: <DLE> <_> 08/17 20:27:09 yI7 vgetty: Unknown code <DLE> <_> 08/17 20:27:09 yI7 Linux ISDN: <DLE> <_> 08/17 20:27:09 yI7 vgetty: Unknown code <DLE> <_> 08/17 20:27:09 yI7 vgetty:
Die Zeilen "Linux ISDN: <DLE> <_>" sind das eigentliche Problem, da müssten eigentlich die Ziffern der gedrückten Tasten auftauchen. Da vgetty also nur "Unkonw code <DLE> <_>" bekommt, kann VOCP natürlich auch auf nichts reagieren. Allerdings zeigt "tail -f /var/log/messages | grep dtmf" folgendes:
Aug 17 20:27:03 r2d2 kernel: dtmf: tt='1' Aug 17 20:27:04 r2d2 kernel: dtmf: tt='2' Aug 17 20:27:09 r2d2 kernel: dtmf: tt='3' Aug 17 20:27:09 r2d2 kernel: dtmf: tt='4'
Bekanntes Problem, Fehler im ttyI code.
Ist im kernel 2.6.18 gefixt, hier die 2 Patches:
From: Karsten Keil
Date: Mon Jun 26 20:14:14 2006 +0200 Subject: [PATCH] fix processing of the last byte in isdn_readbchan_tty() The changes in the tty handling contain a bug while accessing the last byte in the skb. Since special sequence for control of DTMF and FAX via ttyI* devices handled via this path, these services do not work anymore.
Signed-off-by: Karsten Keil
---
drivers/isdn/i4l/isdn_common.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
1bfb4ea878e3e73e64a5507d1a305517c1f2bbdd diff --git a/drivers/isdn/i4l/isdn_common.c b/drivers/isdn/i4l/isdn_common.c index 81accdf..b26e509 100644 --- a/drivers/isdn/i4l/isdn_common.c +++ b/drivers/isdn/i4l/isdn_common.c @@ -933,7 +933,7 @@ isdn_readbchan_tty(int di, int channel, count_put = count_pull; if(count_put > 1) tty_insert_flip_string(tty, skb->data, count_put - 1); - last = skb->data[count_put] - 1; + last = skb->data[count_put - 1]; len -= count_put; #ifdef CONFIG_ISDN_AUDIO }
From: Karsten Keil
Date: Tue Jun 27 12:42:39 2006 +0200 Subject: [PATCH] i4l fix DLE masking in isdn_tty_try_read DLE masking was none functional since the new tty handling. Found by Peter Evertz
Signed-off-by: Karsten Keil
---
drivers/isdn/i4l/isdn_tty.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
d895418ed29eb92a72c5c2ef68a6dafeaa53b717 diff --git a/drivers/isdn/i4l/isdn_tty.c b/drivers/isdn/i4l/isdn_tty.c index 2ac9024..433389d 100644 --- a/drivers/isdn/i4l/isdn_tty.c +++ b/drivers/isdn/i4l/isdn_tty.c @@ -82,7 +82,7 @@ isdn_tty_try_read(modem_info * info, str int l = skb->len; unsigned char *dp = skb->data; while (--l) { - if (*skb->data == DLE) + if (*dp == DLE) tty_insert_flip_char(tty, DLE, 0); tty_insert_flip_char(tty, *dp++, 0); }
-- Karsten Keil SuSE Labs ISDN development
habe die beiden Patches eingebaut, es funktioniert. Danke für die schnelle Hilfe. Klaus Nitsche
participants (2)
-
Karsten Keil
-
Klaus Nitsche