Asterisk Faxempfang über ISDN funktioniert nicht

denny_

Neuer User
Mitglied seit
14 Dez 2009
Beiträge
108
Punkte für Reaktionen
0
Punkte
0
Hi liebe Asterisk-Gurus :)

Ich stehe schon wieder einmal vor einem seltsamen Phänomen und weiß mir leider nicht mehr weiterzuhelfen.

Ich habe hier einen Asterisk stehen, der für ISDN konzipiert wurde und soweit auch schön vor sich hin schnurrt.
Momentan sitzt hinter dem Asterisk noch ein Fax-Server auf den ich einfach die MSN durchleite. Dieser soll aber nun ausgemustert werden.

So kam ich auf den Gedanken, den Faxserver sozusagen direkt in den Asterisk zu integrieren mit dem Debian Paket: asterisk-app-fax.

Soweit so gut. Nun hab ich mal die ganze Konfig durchgemacht und auch schon versucht Faxe über ISDN zu empfangen und hier beginnen meine Probleme!

Um mein Problem aufzuzeigen hier mal die confs und logs:

/var/log/asterisk/messages:
Code:
[May 21 10:19:55] ERROR[7248] utils.c: write() returned error: Broken pipe
[May 21 10:19:55] WARNING[7248] res_agi.c: Running DeadAGI on a live channel will cause problems, please use AGI
Diese Fehlermeldung bringt er mir 20-30x am laufenden Band zur selben Zeit.

/var/log/asterisk/misdn.log:
Code:
Fri May 21 10:19:55 2010: P[ 1]  I IND :NEW_CHANNEL oad:[EXTERN] dad:[INTERN] pid:8 state:none
Fri May 21 10:19:55 2010: P[ 1]   --> channel:1 mode:TE cause:16 ocause:16 rad: cad:
Fri May 21 10:19:55 2010: P[ 1]   --> info_dad: onumplan:2 dnumplan:4 rnumplan:  cpnnumplan:0
Fri May 21 10:19:55 2010: P[ 1]  Chan not existing at the moment bc->l3id:20045 bc:0x81b43bc event:NEW_CHANNEL port:1 channel:1
Fri May 21 10:19:55 2010: P[ 1]  NO USERUESRINFO
Fri May 21 10:19:55 2010: P[ 1]   --> TRANSPARENT Mode
Fri May 21 10:19:55 2010: P[ 1]  I IND :SETUP oad:[EXTERN] dad:[INTERN] pid:8 state:none
Fri May 21 10:19:55 2010: P[ 1]   --> channel:1 mode:TE cause:16 ocause:16 rad: cad:
Fri May 21 10:19:55 2010: P[ 1]   --> info_dad: onumplan:2 dnumplan:4 rnumplan:  cpnnumplan:0
Fri May 21 10:19:55 2010: P[ 1]   --> Bearer: 3.1KHz Audio
Fri May 21 10:19:55 2010: P[ 1]   --> Codec: Alaw
Fri May 21 10:19:55 2010: P[ 0]   --> * NEW CHANNEL dad:[INTERN] oad:[EXTERN]
Fri May 21 10:19:55 2010: P[ 1]  read_config: Getting Config
Fri May 21 10:19:55 2010: P[ 1]   --> CTON: Unknown
Fri May 21 10:19:55 2010: P[ 1]   --> PRES: Allowed (0)
Fri May 21 10:19:55 2010: P[ 1]   --> SCREEN: Unscreened (0)
Fri May 21 10:19:55 2010: P[ 1]  I SEND:PROCEEDING oad:[EXTERN] dad:[INTERN] pid:8
Fri May 21 10:19:55 2010: P[ 1]   --> channel:1 mode:TE cause:16 ocause:16 rad: cad:
Fri May 21 10:19:55 2010: P[ 1]   --> info_dad: onumplan:2 dnumplan:4 rnumplan:  cpnnumplan:0
Fri May 21 10:19:55 2010: P[ 1]  * ANSWER:
Fri May 21 10:19:55 2010: P[ 1]   --> empty cad using dad
Fri May 21 10:19:55 2010: P[ 1]  I SEND:CONNECT oad:[EXTERN] dad:[INTERN] pid:8
Fri May 21 10:19:55 2010: P[ 1]   --> channel:1 mode:TE cause:16 ocause:16 rad: cad:[INTERN]
Fri May 21 10:19:55 2010: P[ 1]   --> info_dad: onumplan:2 dnumplan:4 rnumplan:  cpnnumplan:0
Fri May 21 10:19:55 2010: P[ 1]   --> * IND :   -1! (stop indication) pid:8
Fri May 21 10:19:55 2010: P[ 1]  * IND : HANGUP pid:8 ctx:isdn-extern dad:[INTERN] oad:0[EXTERN] State:CONNECTED
Fri May 21 10:19:55 2010: P[ 1]   --> out_cause:16
Fri May 21 10:19:55 2010: P[ 1]  I SEND:DISCONNECT oad:[EXTERN] dad:[INTERN] pid:8
Fri May 21 10:19:55 2010: P[ 1]   --> channel:1 mode:TE cause:16 ocause:16 rad: cad:[INTERN]
Fri May 21 10:19:55 2010: P[ 1]   --> info_dad: onumplan:2 dnumplan:4 rnumplan:  cpnnumplan:0
Fri May 21 10:19:56 2010: P[ 1]  I IND :RELEASE oad:[EXTERN] dad:[INTERN] pid:8 state:CLEANING
Fri May 21 10:19:56 2010: P[ 1]   --> channel:1 mode:TE cause:16 ocause:16 rad: cad:[INTERN]
Fri May 21 10:19:56 2010: P[ 1]   --> info_dad: onumplan:2 dnumplan:4 rnumplan:  cpnnumplan:0
Fri May 21 10:19:56 2010: P[ 1]   --> No need to queue hangup
Fri May 21 10:19:56 2010: P[ 1]  Cannot hangup chan, no ast
Fri May 21 10:19:56 2010: P[ 1]  $$$ Cleaning up bc with stid :10010100 pid:8
Fri May 21 10:19:56 2010: P[ 0]  handle_bchan: BC not found for prim:f2481 with addr:55010180 dinfo:0
[EXTERN] = Ankommende Faxnummer
[INTERN] = interne Faxnummer

/usr/share/asterisk/agi-bin/receive_fax:
Code:
#!/usr/bin/perl
#
#    asterisk-faxreceive - handles reception of faxes using app_rxfax and
#                          dispatches the received faxes via email
#
#    Copyright (C) 2005  Florian Zumbiehl <[email protected]>
#
#    This program is free software; you can redistribute it and/or modify
#    it under the terms of the GNU General Public License as published by
#    the Free Software Foundation; either version 2 of the License, or
#    (at your option) any later version.
#
#    This program is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU General Public License for more details.
#
#    You should have received a copy of the GNU General Public License
#    along with this program; if not, write to the Free Software
#    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
#
# $Id: receive_fax 77 2005-09-05 19:16:10Z florz $
#

use strict;
use Fcntl ':flock';
use File::Sync 'fsync';
use File::Temp qw(tempdir);
use File::Path;
use MIME::Lite;
use Config::Tiny;
use Storable qw(nstore retrieve);
use POSIX qw(setlocale);
use Locale::gettext;

my $fax_counter_dir='/var/lib/asterisk/faxreceive/counters';
my $config_file='/etc/asterisk/faxreceive.conf';

$|=1;

textdomain('asterisk-faxreceive')||die();

my $config=Config::Tiny->read($config_file)||die(Config::Tiny::errstr());

my $email_from;
my $email_to;
my $deadx;
my $deady;
my $dmw;
my $dmh;
my $email_locale;

while(1){
        defined($_=<stdin>)||die();
        chomp();
        length($_)||last;
};

#"Uses LOCALSTATIONID to identify itself to the remote end\n"
#"Sets REMOTESTATIONID to the sender CSID\n"
#"     FAXPAGES to the number of pages received\n"
#"     FAXBITRATE to the transmition rate\n"
#"     FAXRESOLUTION to the resolution\n"

if($ARGV[0] eq 'receive'){
        my $recipient=agi_get_var('FAXRECIPIENT');
        $recipient eq 'new'&&die();
        $recipient eq 'lock'&&die();

        my $temp_dir;
        my $config_defaults={
                'paper_name'=>'',
                'margin_vertical'=>0.25,
                'margin_horizontal'=>0.25
        };
        defined(my $recipient_config=$config->{"recipient $recipient"})||die();
        for my $c($config_defaults,$config->{_},$recipient_config){
                config_get($email_from,'email_from',$c);
                config_get($email_to,'email_to',$c);
                ($dmw,$dmh)=resolve_papername($c->{paper_name})if(defined($c->{paper_name}));
                config_get($dmw,'paper_width',$c);
                config_get($dmh,'paper_height',$c);
                config_get($deadx,'margin_vertical',$c);
                config_get($deady,'margin_horizontal',$c);
                config_get($temp_dir,'temp_dir',$c);
                config_get($email_locale,'locale',$c);
        }

        my($recv_counter,$fax_counter)=inc_fetch_counters($recipient,'recv');

        my $recv_dirname=tempdir("asterisk_faxreceive.$recipient.".sprintf('%05d.%05d',$recv_counter,$fax_counter+1).'.XXXXXX',
                $temp_dir ne ''?(DIR=>$temp_dir):(TMPDIR=>1))||die();

        {
                no strict 'refs';
                nstore({
                        'version'=>1,
                        map({$_=>eval("\$$_")} (
                                'recipient',
                                'email_from',
                                'email_to',
                                'dmw',
                                'dmh',
                                'deadx',
                                'deady',
                                'email_locale'
                        ))
                },"$recv_dirname/info")||die();
        }

        agi_cmd("SET VARIABLE FAXRECVFILE \"$recv_dirname/fax.tiff\"",1);
        agi_cmd("EXEC RxFAX \"$recv_dirname/fax.tiff\"",0);
        agi_cmd("HANGUP",1);
}elsif($ARGV[0] eq 'deliver'){
        my $remotecallerid=agi_get_var('MY_CALLERIDNUM');
        my $recv_filename=agi_get_var('FAXRECVFILE');
        my $remotestationid=agi_get_var('REMOTESTATIONID');
        my $faxpages=agi_get_var('FAXPAGES');

        $recv_filename=~s/\.tiff$//||die();
        my $recv_dirname=$recv_filename;
        $recv_dirname=~m,.*/,||die();
        $recv_dirname=$&;

        my $recipient;
        (my %info_data=%{retrieve("$recv_dirname/info")})||die();
        $info_data{version}==1||die();
        {
                no strict 'refs';
                for(
                        'recipient',
                        'email_from',
                        'email_to',
                        'dmw',
                        'dmh',
                        'deadx',
                        'deady',
                        'email_locale'
                ){
                        my $x=$info_data{$_};
                        eval("\$$_=\$x");
                }
        }

        system("tiff2ps -2az $recv_filename.tiff > $recv_filename.ps")&&die();
        $dmw-=2*$deadx;
        $dmh-=2*$deady;
        open(my $ps_file,'<',"$recv_filename.ps")||die();
        my $count;
        while(defined($_=<$ps_file>)){
                m/^(\d+\.\d+) (\d+\.\d+) scale$/||next;
                my $sw=$1/72*2.54;
                my $sh=$2/72*2.54;
                my $scale;
                if($dmw/$dmh>$sw/$sh){
                        $scale=$dmh/$sh;
                }else{
                        $scale=$dmw/$sw;
                }
                my $dw=$sw*$scale;
                my $dh=$sh*$scale;
                my $xoff=($dmw-$dw)/2+$deadx;
                my $yoff=$dmh-$dh+$deady;
                $count++;
                system("psselect -p$count $recv_filename.ps | pstops -w${sw}cm -h${sh}cm '0\@$scale(${xoff}cm,${yoff}cm)' >> $recv_filename.resized.ps")&&die();
        }
        close($ps_file)||die();

        system("ps2pdf $recv_filename.resized.ps $recv_filename.pdf 1>&2")&&die();

        my($fax_counter)=(inc_fetch_counters($recipient,'fax'))[1];

        $email_to||die();

        if($email_locale ne ''){
                defined(setlocale(LC_MESSAGES,$email_locale))||die();
                defined(setlocale(LC_CTYPE,$email_locale))||die();
        }
        my $mail=new MIME::Lite(
                From => $email_from,
                To => $email_to,
                Type => 'text/plain; charset=iso-8859-1',
                Subject => sprintf(gettext('Fax from %s (%s)'),$remotestationid,$faxpages==1?gettext('one page'):sprintf(gettext('%d pages'),$faxpages)),
                Data => sprintf(gettext(<<EOD),$remotestationid,$remotecallerid eq 'CID withheld'?gettext('CID withheld'):$remotecallerid,$faxpages)
Fax station ID of the sender..: %s
Caller-ID of the sender.......: %s
Number of pages...............: %d
EOD
        );
        $mail->attach(
                Type => 'application/pdf',
                Filename => sprintf(sprintf(gettext('fax%s.pdf'),'%05d'),$fax_counter),
                Path => "$recv_filename.pdf"
        );
        defined(setlocale(LC_MESSAGES,'C'))||die();
        defined(setlocale(LC_CTYPE,'C'))||die();
        $mail->send()||die();

        rmtree($recv_dirname,0,1);
}else{
        die();
}

exit(0);

sub config_get{
        my($x,$name,$config)=@_;
        $_[0]=$config->{$name}if(defined($config->{$name}));
}

sub resolve_papername{
        my $name=shift();
        open(my $paperconf,'-|',"paperconf -csz $name")||die();
        defined(my $paperdims=<$paperconf>)||die();
        close($paperconf)||die();
        ($paperdims=~/^\s*(\d+(?:\.\d+)?|\.\d+)\s*cm\s*(\d+(?:\.\d+)?|\.\d+)\s*cm\s*$/)||die();
        my $width=$1;
        my $height=$2;
        return($width,$height);
}

sub agi_get_var{
        my $var=shift();
        print("GET VARIABLE $var\n")||die();
        defined(my $r=<stdin>)||die();
        $r=~/^200 result=1 \((.*)\)$/||die();
        return($1);
}

sub agi_cmd{
        my($cmd,$correct_result)=@_;
        print("$cmd\n")||die();
        defined(my $r=<stdin>)||die();
        $r=~/^200 result=$correct_result$/||die();
}

sub inc_fetch_counters{
        my($recipient,$which)=@_;
        open(my $fax_cnt_lock,'>',"$fax_counter_dir/lock")||die();
        flock($fax_cnt_lock,LOCK_EX)||die();
        unlink("$fax_counter_dir/$recipient.new"); # just in case an old version of this script left one of those lying around ...
        if(stat("$fax_counter_dir/$recipient.new2")){
                commit_counters($recipient);
        }elsif(!$!{ENOENT}){
                die();
        }
        my $recv_counter=0;
        my $fax_counter=0;
        if(open(my $fax_cnt,'<',"$fax_counter_dir/$recipient.cnt")){
                defined(my $cnt_file_version=<$fax_cnt>)||die();
                $cnt_file_version==1||die();
                defined($recv_counter=<$fax_cnt>)||die();
                defined($fax_counter=<$fax_cnt>)||die();
                $recv_counter+=0;
                $fax_counter+=0;
                close($fax_cnt)||die();
        }elsif(!$!{ENOENT}){
                die();
        }
        if($which eq 'recv'){
                ++$recv_counter;
        }elsif($which eq 'fax'){
                ++$fax_counter;
        }else{
                die();
        }
        open(my $fax_cnt,'>',"$fax_counter_dir/$recipient.new1")||die();
        print($fax_cnt "1\n")||die();
        print($fax_cnt "$recv_counter\n")||die();
        print($fax_cnt "$fax_counter\n")||die();
        close($fax_cnt)||die();
        open($fax_cnt,'<',"$fax_counter_dir/$recipient.new1")||die();
        fsync($fax_cnt)||die();
        close($fax_cnt)||die();
        rename("$fax_counter_dir/$recipient.new1","$fax_counter_dir/$recipient.new2")||die();
        commit_counters($recipient);
        flock($fax_cnt_lock,LOCK_UN)||die();
        close($fax_cnt_lock)||die();
        return($recv_counter,$fax_counter);
}

sub commit_counters{
        my($recipient)=@_;
        open(my $fax_cnt_dir,'<',$fax_counter_dir)||die();
        fsync($fax_cnt_dir)||die();
        unlink("$fax_counter_dir/$recipient.cnt")||$!{ENOENT}||die();
        link("$fax_counter_dir/$recipient.new2","$fax_counter_dir/$recipient.cnt")||die();
        fsync($fax_cnt_dir)||die();
        unlink("$fax_counter_dir/$recipient.new2")||die();
        close($fax_cnt_dir)||die();
}

/etc/asterisk/extensions.ael: (relevanter Teil)
Code:
******* =>      {
                NoOp(Ankommendes Fax);
                Set(MAILEMPF=*@a-bit-more.de);
                Set(FAXFILE=/var/spool/asterisk/fax/${UNIQUEID});
                Answer();
                AGI(receive_fax,receive);
                DeadAGI(receive_fax,deliver);
                Hangup();
                System(/var/lib/asterisk/scripts/fax2mail.sh "${FAXFILE}" "${FAXID}" "${FAXPAGES}" "${FAXRATE}" "${MAILEMPF}");
//              Hangup();
                }

/var/lib/asterisk/scripts/fax2mail.sh:
Code:
#!/bin/bash
#
# *******************************************************************
# $1 FAXFILE
# $2 FAXID
# $3 FAXPAGES
# $4 FAXRATE
# $5 MAILADRESSE
# *******************************************************************

# *************************************
# Format date and time
# *************************************
heute=$(date +"%d.%m.%Y %H:%M:%S")

# *************************************
# An entry in the log-file
# *************************************
echo $heute $1 von $2 mit $3 Seiten fuer $5 empfangen >> /var/log/asterisk/fax2mail.log

# *************************************
# Switch from sff to Multipage-TIFF
# *************************************
sfftobmp -tx $1 $1

# *************************************
# PDF is possible, too
# *************************************
# sff2misc -p $1 $1.ps
# ps2pdf -sPAPERSIZE=a4 $1.ps $1.pdf

# *************************************
# Create filename for Mailbody
# *************************************
MAILBODY=$1.txt

# *************************************
# Create Mailbody
# *************************************
echo >> $MAILBODY
echo "Empfangen: ........ " $heute >> $MAILBODY
echo "Absender: ......... " $2 >> $MAILBODY
echo "Anzahl Seiten: .... " $3 >> $MAILBODY
echo "Geschwindigkeit: .. " $4 >> $MAILBODY
echo >> $MAILBODY
echo "Das Faxdokument finden Sie im Dateianhang als TIFF-Datei." >> $MAILBODY
echo "Alle Seiten befinden sich innerhalb dieser einer Datei..." >> $MAILBODY
echo >> $MAILBODY
echo "Ihr Asterisk" >> $MAILBODY

# *************************************
# send mail with file-attachment
# *************************************
cat $MAILBODY | nail -r "asterisk" -s "Fax von $2" -a "$1.tif" $5 

# *************************************
# Delete files
# *************************************
# rm $1.pdf
# rm $1.ps

rm $MAILBODY
rm $1.tif
rm $1

# *************************************
# Another entry in the logfile
# *************************************
echo $heute $1.pdf an $5 verschickt >> /var/log/asterisk/fax2mail.log

Fehlt sonst noch was? :)

Wär euch SEHR verbunden, wenn Ihr mir in dieser Problematik eventuell weiter helfen könntet :D

Grüße denny
 
Zuletzt bearbeitet:
:confused: was willst du mir damit bitte nu sagen?

Ich hab das ganze schon über hylafax probiert, aber um ehrlich zu sein, kam ich dort mit den ganzen Einstellungen etc überhaupt nicht zurecht, weil die ganzen HowTO's alle auf SIP gingen, aber ich hab hier nur ISDN. :(

Grüße denny
 
Hallo,

ich arbeite seit langem mit iaxmodem/Hylafax und ISDN. Das laeuft ziemlich unproblematisch.

Hylafax ist ziemlich einfach einzurichten und zu konfigurieren. Dort musst Du nur mit faxaddmodem die IAX-modems installieren, statt einem normalen Modem.

Und bei Asterisk in der iax.conf und in der /etc/iaxmodem fuer jedes Modem eine Modem-Datei anlegen.

Wo genau bist Du denn da haengen geblieben?

Vagabundo
 
Guten Morgen Vagabundo,

ich bin an dem Zweig hängen geblieben, als ich Hylafax und iaxmodem installiert hatte, dass ich um ehrlich zu sein mit der Konfiguration nicht wirklich zurecht kam. Hab alles nach Anleitung installiert und konfiguriert, aber es hat nicht wirklich funktioniert.

Wenn das ganze bei dir über ISDN so wunderbar funktioniert, könntest du mir dann vielleicht deine Konfig-Dateien mal zur Verfügung stellen?
Vielleicht hab ich ja einfach irgendwo was vergessen oder falsch konfiguriert.
Wär dir dafür sehr verbunden. =)

Grüße denny
 
Hallo,

ich arbeite seit langem mit iaxmodem/Hylafax und ISDN. Das laeuft ziemlich unproblematisch.

Hylafax ist ziemlich einfach einzurichten und zu konfigurieren. Dort musst Du nur mit faxaddmodem die IAX-modems installieren, statt einem normalen Modem.

Und bei Asterisk in der iax.conf und in der /etc/iaxmodem fuer jedes Modem eine Modem-Datei anlegen.

Wo genau bist Du denn da haengen geblieben?

Vagabundo
Ich habe auch ein Problem mit Hylafax. Ich habe es nach Anleitung "das Asterisk-Buch 1.2" installiert. Leider habe ich Suse. Die Anleitung war für Debian. Da ich noch Anfänger bin, habe ich übersehen, dass das ganze für SIP geschrieben ist. Ich wollte nochmals installieren, aber das iaxmodem und die Datei ttyIAX0 sind bereits vorhanden und bei dem Befehl "modem setup" wird nicht nachgefragt, ob man ein capi modem installieren möchte. Ich habe von AVM capi4hylafax installiert und es gibt auch einen Eintrag in der inittab. Aber wie ich Hylafax dazu bringe, über ISDN Faxe zumindest zu empfangen, weiß ich nicht. Der Faxversand mit SIP geht noch nicht, da sämtliche Files wie txt, tif usw. nicht gelesen werden können, obwohl ich ein Ghostscriptpaket heruntergeladen habe und die Links laut Anleitung erneuert habe.
 
Hallo,

da geht wohl einiges etwas drucheinander.

Erst einmal: fuer ISDN und Hylafax benoetigst Du kein Asterisk, da reicht auch capi4hylafax und Hylafax.

Wenn ich mich recht erinnere, dann laeuft aber asterisk nicht mit capi4hylafax sondern Du musst chan_capi verwenden.
capi4hylafax wuerde ja den ISDN Eingang auf dem Capi Modem direkt an Hylafax weitergeben und nicht an Asterisk.

Wenn Du wirklich Asterisk willst, dann also mit chan_capi.
Dann musst Du iaxmodem installieren und konfigurieren.
Dann erstmals sehen ob das funktioniert > im dev muss das Modem vorhanden sein.

Dann Hylafax oder besser noch Hylafax+ installieren.

Dort wird das Modem mit faxaddmodem eingerichtet.

In der inittab muessen zwei Eintrage drin sein:
1. fuer die Aktivierung des iaxmodems
2. fuer die Aktivierung des Hylafax-Modems

So viel mal grundsaetzlich zu dem Ganzen.

Wenn Du bei irgendeinem Schritt haengen bleibst dann brauchen wir aber die entsprechenden Eintraege in den conf-Dateien. Ohne die kan man dir kaum helfen.

Vagabundo
 
Asterisk Hylafax

Danke für Deine Antwort.
Ich habe Linux 10.0.0.1 mit allen Updates, Asterisk 1.6 installiert und 3 Sip (x-Tel) phones. Man kann in beide Richtungen damit telefonieren. Eine Fritzcard pci habe ich ebenfalls. Chan capi läuft und ich kann über das örtliche Telefonnetz Anrufe empfangen.
Ich weiß aber nicht, da bei Asterisk nur die extension "s" anwählbar ist, wie ich ein Fax empfangen kann. Mittlerweile ist mir auch egal ob über SIP oder ISDN, hauptsache es geht. Ich dachte, wenn ich Asterisk habe, dann kann man auch Faxe über diesen Server laufen lassen, aber wenn es andere Möglichkeiten gibt, mit denen man von 2 PCs Faxe verschicken und empfangen kann, wäre ich froh. Im online Asterisk-Buch 1.2 - 1.4 steht eine Anleitung, die ich befolgt habe (Hylafax, iaxmodem, etc.), im neueren Asterisk-Buch habe ich nichts darüber gefunden. Die ttyIAX0 in dev existiert und auch in der inittab habe ich 2 Einträge laut der Anleitung händisch eingetragen. Ich habe port 4570 eingegeben, wenn ich iax2 show peers eingebe, kommt jedoch eine 5-stellige Portnummer und ständig wiederholt sich von alleine der Fehler (übersetzt auf deutsch) die Registrierung wurde mit timeout (60 sec) zurückgewiesen. Welche *.conf soll ich schicken und wie sendet man ein attachment?
 
Zuletzt bearbeitet:
... da bei Asterisk nur die extension "s" anwählbar ist, ...

Hast Du vielleicht immediate=yes in der capi.conf?

Wie Vagabundo schon sagt, mit capi4hylafax brauchst Du Asterisk nicht dazu. Oder als Notlösung CAPIoverTCP (Remote CAPI).

Svenja
 
Guten Morgen zusammen.

Mal als erste Frage: MUSS hylafax und iaxmodem über CAPI laufen?
Ich hab bei mir mISDN installiert und laut Aussage mehrerer Community-Mitglieder hier, müsste der chan_capi da mit drin sein. Wenn ich aber in meinem Asterisk "show channeltypes" eingeb, steht da kein Chan_Capi!

Output "show channeltypes"
Code:
Type        Description                              Devicestate  Indications  Transfer
----------  -----------                              -----------  -----------  --------
IAX2        Inter Asterisk eXchange Driver (Ver 2)   yes          yes          yes
Console     OSS Console Channel Driver               no           yes          no
SIP         Session Initiation Protocol (SIP)        yes          yes          yes
Agent       Call Agent Proxy Channel                 yes          yes          no
mISDN       Channel driver for mISDN Support (Bri/Pr no           yes          no
Local       Local Proxy Channel Driver               yes          yes          no
Phone       Standard Linux Telephony API Driver      no           yes          no
Feature     Feature Proxy Channel Driver             no           yes          no
Skinny      Skinny Client Control Protocol (Skinny)  no           yes          no
MGCP        Media Gateway Control Protocol (MGCP)    yes          yes          no
Gtalk       Gtalk Channel Driver                     no           yes          no
----------
11 channel drivers registered.

Mein IAXmodem wird erfolgreich am Asterisk registriert, aber wie auch schon clauci102 erwähnt hat, habe ich nun das IAXmodem 2x drin.
Code:
    -- Registered IAX2 'iaxmodem' (AUTHENTICATED) at 127.0.0.1:32973
    -- Registered IAX2 'iaxmodem' (AUTHENTICATED) at 127.0.0.1:4570

Welche Configs benötigt ihr denn noch? (die meisten sind in meinem ersten Beitrag bereits aufgeführt)

Und nun hätte ich noch eine kleine Frage um mein Verständnis zu diesem Thema aufzufrischen:

Ich weiß, dass ich Faxe mit Hylafax und IAXmodem empfangen kann, aber wie und mit welcher Option sende ich diese dann an einen externen Mailempfänger weiter? (Hab ja auf dem Server nur Asterisk am laufen und kein MS Exchange!)

Schöne Grüße und einen erfolgreichen Wochenenanfang

denny
 
Hast Du vielleicht immediate=yes in der capi.conf?

Wie Vagabundo schon sagt, mit capi4hylafax brauchst Du Asterisk nicht dazu. Oder als Notlösung CAPIoverTCP (Remote CAPI).

Svenja
Ich habe das timeout auf 120 verlängert. Ich kann Faxe über hylafax empfangen. Aber beim Senden gibt es die Meldung "Capi not installed or not active" obwohl bei capiinfo und capi info im cli alles in Ordnung ist.
 
Nachricht wird versendet aber hylafax sendet Timeout

Hi zusammen.

Ich habe mein Hylafax und iaxmodem momentan schon einmal soweit, dass ich Faxe versenden kann.

Allerdings besteht das Problem, dass die Faxe zwar beim Empfänger ankommen, aber teils abgebrochen werden und mein Hylafax sagt "Error" und sendet weiterhin.

Ausgabe CLI:
Code:
 == Refreshing DNS lookups.
    -- Accepting AUTHENTICATED call from 127.0.0.1:
       > requested format = alaw,
       > requested prefs = (),
       > actual format = alaw,
       > host prefs = (alaw),
       > priority = mine
    -- Executing [*******@fax-out:1] Dial("IAX2/iaxmodem-867", "mISDN/1/*******||r") in new stack
P[ 0]  --> * NEW CHANNEL dad:******* oad:(null)
P[ 1] read_config: Getting Config
P[ 1]  --> TON: Unknown
P[ 1]  --> LTON: Unknown
P[ 1]  --> CTON: Unknown
P[ 1] * CALL: 1/*******
P[ 1]  --> * dad:******* tech:mISDN/0-u249 ctx:isdn-extern
P[ 1]  --> pres: -1 screen: -1
P[ 1]  --> pres: 0
P[ 1]  --> PRES: Allowed (0)
P[ 1]  --> SCREEN: Unscreened (0)
P[ 1] NO OPTS GIVEN
P[ 1] I SEND:SETUP oad: dad:******* pid:91
P[ 1]  --> channel:0 mode:TE cause:16 ocause:-1 rad: cad:
P[ 1]  --> info_dad: onumplan:0 dnumplan:0 rnumplan:0 cpnnumplan:0
P[ 1]  --> * SEND: State Dialing pid:91
    -- Called 1/*******
P[ 1] I IND :NEW_CHANNEL oad: dad:******* pid:91 state:CALLING
P[ 1]  --> channel:1 mode:TE cause:16 ocause:-1 rad: cad:
P[ 1]  --> info_dad: onumplan:0 dnumplan:0 rnumplan:0 cpnnumplan:0
P[ 1]  --> TRANSPARENT Mode
P[ 1] I IND :PROCEEDING oad: dad:******* pid:91 state:CALLING
P[ 1]  --> channel:1 mode:TE cause:16 ocause:-1 rad: cad:
P[ 1]  --> info_dad: onumplan:0 dnumplan:0 rnumplan:0 cpnnumplan:0
    -- mISDN/1-u251 is proceeding passing it to IAX2/iaxmodem-867
P[ 1] channel with stid:10010100 in use!
P[ 1] I IND :NEW_CHANNEL oad:8331926051 dad:******* pid:92 state:none
P[ 1]  --> channel:2 mode:TE cause:16 ocause:-1 rad: cad:
P[ 1]  --> info_dad: onumplan:2 dnumplan:4 rnumplan:  cpnnumplan:0
P[ 1] Chan not existing at the moment bc->l3id:20015 bc:0x81b47bc event:NEW_CHANNEL port:1 channel:2
P[ 1] NO USERUESRINFO
P[ 1]  --> TRANSPARENT Mode
P[ 1] I IND :SETUP oad:8331926051 dad:******* pid:92 state:none
P[ 1]  --> channel:2 mode:TE cause:16 ocause:-1 rad: cad:
P[ 1]  --> info_dad: onumplan:2 dnumplan:4 rnumplan:  cpnnumplan:0
P[ 1]  --> Bearer: Speech
P[ 1]  --> Codec: Alaw
P[ 0]  --> * NEW CHANNEL dad:******* oad:8331926051
P[ 1] read_config: Getting Config
P[ 1]  --> CTON: Unknown
P[ 1]  --> PRES: Allowed (0)
P[ 1]  --> SCREEN: Unscreened (0)
P[ 1] I SEND:PROCEEDING oad:08331926051 dad:******* pid:92
P[ 1]  --> channel:2 mode:TE cause:16 ocause:-1 rad: cad:
P[ 1]  --> info_dad: onumplan:2 dnumplan:4 rnumplan:  cpnnumplan:0
    -- Executing [*******@isdn-extern:1] NoOp("mISDN/2-u252", "Ankommendes Fax") in new stack
    -- Executing [*******@isdn-extern:2] Answer("mISDN/2-u252", "") in new stack
P[ 1] * ANSWER:
P[ 1]  --> empty cad using dad
P[ 1] I SEND:CONNECT oad:08331926051 dad:******* pid:92
P[ 1]  --> channel:2 mode:TE cause:16 ocause:-1 rad: cad:*******
P[ 1]  --> info_dad: onumplan:2 dnumplan:4 rnumplan:  cpnnumplan:0
P[ 1]  --> * IND :      -1! (stop indication) pid:92
    -- Executing [*******@isdn-extern:3] Dial("mISDN/2-u252", "mISDN/2/*******||r") in new stack
P[ 0]  --> * NEW CHANNEL dad:******* oad:(null)
P[ 2] read_config: Getting Config
P[ 2]  --> TON: Unknown
P[ 2]  --> LTON: Unknown
P[ 2]  --> CTON: Unknown
P[ 2] * CALL: 2/*******
P[ 2]  --> * dad:******* tech:mISDN/2-u253 ctx:isdn-intern
P[ 2]  --> pres: -1 screen: -1
P[ 2]  --> pres: 0
P[ 2]  --> PRES: Allowed (0)
P[ 2]  --> SCREEN: Unscreened (0)
P[ 2] NO OPTS GIVEN
P[ 2] Disabling EC on both Sides
P[ 2] I SEND:SETUP oad:08331926051 dad:******* pid:93
P[ 2]  --> channel:0 mode:NT cause:16 ocause:16 rad: cad:
P[ 2]  --> info_dad: onumplan:0 dnumplan:0 rnumplan:0 cpnnumplan:0
P[ 2]  --> * SEND: State Dialing pid:93
    -- Called 2/*******
P[ 1] * IND :   ringing pid:92
P[ 1]  --> * IND :      ringing pid:92 but Connected, so just send TONE_ALERTING without state changes
P[ 2] I IND :CC_SETUP|CONFIRM: old l3id:ff00 new l3id:8015ff00
P[ 2] I IND :NEW_L3ID oad:08331926051 dad:******* pid:93 state:CALLING
P[ 2]  --> channel:1 mode:NT cause:16 ocause:16 rad: cad:
P[ 2]  --> info_dad: onumplan:0 dnumplan:0 rnumplan:0 cpnnumplan:0
P[ 1] Jitterbuffer Underrun. Got 65 of expected 128
P[ 2] I IND :CONNECT oad:08331926051 dad:******* pid:93 state:CALLING
P[ 2]  --> channel:1 mode:NT cause:16 ocause:16 rad: cad:*******
P[ 2]  --> info_dad: onumplan:0 dnumplan:0 rnumplan:0 cpnnumplan:0
P[ 2] I SEND:CONNECT_ACKNOWLEDGE  oad:08331926051 dad:******* pid:93
P[ 2]  --> channel:1 mode:NT cause:16 ocause:16 rad: cad:*******
P[ 2]  --> info_dad: onumplan:0 dnumplan:0 rnumplan:0 cpnnumplan:0
P[ 2]  --> TRANSPARENT Mode
P[ 2] I IND :NEW_L3ID oad:08331926051 dad:******* pid:93 state:CALLING
P[ 2]  --> channel:1 mode:NT cause:16 ocause:16 rad: cad:*******
P[ 2]  --> info_dad: onumplan:0 dnumplan:0 rnumplan:0 cpnnumplan:0
    -- mISDN/2-u253 answered mISDN/2-u252
P[ 1]  --> * IND :      -1! (stop indication) pid:92
P[ 1]  --> * IND :      -1! (stop indication) pid:92
P[ 1]  --> * Unknown Indication:20 pid:92
P[ 2]  --> * Unknown Indication:20 pid:93
[Jun 10 13:32:27] NOTICE[5091]: chan_misdn.c:3005 misdn_bridge: Falling back to Asterisk bridging
    -- Native bridging mISDN/2-u252 and mISDN/2-u253 ended
P[ 1] I IND :CONNECT_ACKNOWLEDGE  oad:08331926051 dad:******* pid:92 state:CONNECTED
P[ 1]  --> channel:2 mode:TE cause:16 ocause:-1 rad: cad:*******
P[ 1]  --> info_dad: onumplan:2 dnumplan:4 rnumplan:  cpnnumplan:0
P[ 1] I IND :CONNECT oad: dad:******* pid:91 state:PROCEEDING
P[ 1]  --> channel:1 mode:TE cause:16 ocause:-1 rad: cad:8331*******
P[ 1]  --> info_dad: onumplan:0 dnumplan:0 rnumplan:0 cpnnumplan:2
P[ 1] I SEND:CONNECT_ACKNOWLEDGE  oad: dad:******* pid:91
P[ 1]  --> channel:1 mode:TE cause:16 ocause:-1 rad: cad:8331*******
P[ 1]  --> info_dad: onumplan:0 dnumplan:0 rnumplan:0 cpnnumplan:2
P[ 1] Taps should be power of 2
    -- mISDN/1-u251 answered IAX2/iaxmodem-867
P[ 1]  --> * Unknown Indication:20 pid:91
P[ 1] Jitterbuffer Underrun. Got 32 of expected 128
P[ 1] Jitterbuffer Underrun. Got 65 of expected 128
P[ 1]  --> * Unknown Indication:20 pid:91
P[ 1] * IND : HANGUP    pid:91 ctx:isdn-extern dad: oad:******* State:CONNECTED
P[ 1]  --> out_cause:16
P[ 1] I SEND:DISCONNECT oad: dad:******* pid:91
P[ 1]  --> channel:1 mode:TE cause:16 ocause:16 rad: cad:8331*******
P[ 1]  --> info_dad: onumplan:0 dnumplan:0 rnumplan:0 cpnnumplan:2
  == Spawn extension (fax-out, *******, 1) exited non-zero on 'IAX2/iaxmodem-867'
    -- Hungup 'IAX2/iaxmodem-867'
P[ 1] I IND :RELEASE oad: dad:******* pid:91 state:CLEANING
P[ 1]  --> channel:1 mode:TE cause:16 ocause:16 rad: cad:8331*******
P[ 1]  --> info_dad: onumplan:0 dnumplan:0 rnumplan:0 cpnnumplan:2
P[ 1]  --> No need to queue hangup
P[ 1] Cannot hangup chan, no ast
P[ 1] $$$ Cleaning up bc with stid :10010100 pid:91
P[ 0] handle_bchan: BC not found for prim:f2481 with addr:55010180 dinfo:0
P[ 1] I IND :DISCONNECT oad:08331926051 dad:******* pid:92 state:CONNECTED
P[ 1]  --> channel:2 mode:TE cause:16 ocause:-1 rad: cad:*******
P[ 1]  --> info_dad: onumplan:2 dnumplan:4 rnumplan:  cpnnumplan:0
P[ 1]  --> queue_hangup
P[ 1] I SEND:RELEASE oad:08331926051 dad:******* pid:92
P[ 1]  --> channel:2 mode:TE cause:16 ocause:-1 rad: cad:*******
P[ 1]  --> info_dad: onumplan:2 dnumplan:4 rnumplan:  cpnnumplan:0
P[ 2]  --> * Unknown Indication:20 pid:93
P[ 2] * IND : HANGUP    pid:93 ctx:isdn-intern dad: oad:******* State:CONNECTED
P[ 2]  --> out_cause:16
P[ 2] I SEND:DISCONNECT oad:08331926051 dad:******* pid:93
P[ 2]  --> channel:1 mode:NT cause:16 ocause:16 rad: cad:*******
P[ 2]  --> info_dad: onumplan:0 dnumplan:0 rnumplan:0 cpnnumplan:0
  == Spawn extension (isdn-extern, *******, 3) exited non-zero on 'mISDN/2-u252'
P[ 1] * IND : HANGUP    pid:92 ctx:isdn-extern dad:******* oad:08331926051 State:CONNECTED
P[ 1]  --> out_cause:16
P[ 2] $$$ Cleaning up bc with stid :10010200 pid:93
P[ 2] I IND :RELEASE oad: dad: pid:93 state:CLEANING
P[ 2]  --> channel:0 mode:NT cause:16 ocause:16 rad: cad:
P[ 2]  --> info_dad: onumplan:0 dnumplan:0 rnumplan:0 cpnnumplan:0
P[ 2]  --> No need to queue hangup
P[ 2] Cannot hangup chan, no ast
P[ 0] handle_bchan: BC not found for prim:f2481 with addr:55010280 dinfo:0
P[ 1] I IND :RELEASE_COMPLETE oad:08331926051 dad:******* pid:92 state:CLEANING
P[ 1]  --> channel:2 mode:TE cause:16 ocause:16 rad: cad:*******
P[ 1]  --> info_dad: onumplan:2 dnumplan:4 rnumplan:  cpnnumplan:0
P[ 1]  --> No need to queue hangup
P[ 1] Cannot hangup chan, no ast
P[ 1] $$$ Cleaning up bc with stid :10020100 pid:92
P[ 0] handle_bchan: BC not found for prim:f2481 with addr:55020180 dinfo:0

Ausgabe CMD:
Code:
Asterisk:~# sendfax -n -d ******* /tmp/text.ps
request id is 8 (group id 8) for host localhost (1 file)

Asterisk:~# faxstat -s
HylaFAX scheduler on Asterisk: Running
Modem ttyIAX0 (+498331*******): Initializing server

JID  Pri S  Owner Number       Pages Dials     TTS Status
8    127 R   root *******       0:2   0:12

Ausgabe misdn.log:
Code:
[Jun 10 13:32:27] NOTICE[5091] chan_misdn.c: Falling back to Asterisk bridging

Weiß zufällig jemand, woran das liegen könnte?

Grüße denny

EDIT:

misdn.conf:
Code:
[general]
debug=2

[default]
echocancel=164          
language=de
hold_allowed=yes
bridging=no             
senddtmf=yes            
astdtmf=yes
immediate=no
overlapdial=3

[isdn1]
ports=1
context=isdn-extern
msns=*

[isdn2]
ports=2
context=isdn-intern
msns=*

extensions.ael: (relevanter Teil)
Code:
context isdn-extern     {

9258859 =>      {
                NoOp(Ankommendes Fax);
                Answer();
                Dial(mISDN/2/9258859,,r);
                Hangup();
                }

        _X. =>  {
                NoOp(Ankommender Anruf);
                Dial(SIP/15&SIP/14&mISDN/2/10,30,Ttr);
                }
}

context fax-out {

        _X. =>  {
                Dial(mISDN/1/${EXTEN},,r);
                }
}
 
Hallo,
schaue doch bitte mal in die Hylafax Logdateien und Zeige uns die ggf. mal:

hylafax/etc/xferfaxlog

z.B. was dort fuer ein Fehler angezeigt wird

und die zu dem Fax gehoerende log Datel:
hylafax/log/

Vagabundo
 
Ich bin mir nicht sicher, ob das so correct ist:

Dial(mISDN/1/${EXTEN},,r);

Ich wuerde in jedem Fall einen Timeout setzen und die Option r macht auch keinen rechten Sinn am Ende.

Ich habe da z.B.

Dial(CAPI/ISDN1/${EXTEN},60)

Vagabundo
 
Also:

* mISDN v1 ist ziemlicher Mist und macht jede Menge Kopfschmerzen. Daher meine Devise: Vermeiden wo möglich! (mISDN v2 ist eine ganz andere Geschichte, aber das willst Du erstmal nicht.)

* wenn Du die HFC-S Karte durch eine AVM Fritz PCI ersetzt, dann kannst Du auf mISDN verzichten und stattdessen chan_capi und ggf. auch capi4hylafax einsetzen

* über mISDN weiss ich zu wenig was CAPI anbetrifft, aber die Qualität von mISDN wird ganz sicher nicht besser dadurch, dass Du es per CAPI ansprichst

* für HylaFax brauchst Du eigentlich nur eine Anbindung = ein logisches Modem), also entweder a) IAXmodem (an Asterisk), oder b) capi4hylafax direkt über eine ISDN Karte (AVM oder HFC). Du kannst natürlich auch mit beidem spielen.

* HylaFax und Asterisk können sich problemlos über CAPI eine AVM Fritz card teilen, das läuft also parallel. Der winzige Haken ist, dass Asterisk nicht vorhersagen kann ob gerade ein ISDN Kanal frei ist, denn dieser könnte ja gerade von capi4hylafax belegt sein. Du musst im Kernel das CAPI Subsystem angewählt haben, und dann "fcpci" als Treiber für die kleine passive AVM Karte haben. Schliesslich gehört dann noch das separat erhältiche chan_capi für Asterisk dazu.
 
Keine LOG-Files vorhanden, bzw. xferfaxlog ist leer. :confused:
 
Quatsch mit Souce

Deine Frage:

Mal als erste Frage: MUSS hylafax und iaxmodem über CAPI laufen?
Nein!

IAX = Technologie (UDP/IP)
capi = ISDN Layer

Was ist deine Eigentliche Frage:
Was passiert im CAPI oder mISDN v1 Layer, dass das Faxen beeinträchtigt?

Antwort:
Du sendest einerseit über mISDN v1 die Voice Data Packets über einen Software Echo Canceler. Den brauchst auch mISDN um darüber out-of-band DTMF signale zu erkennen und weiterzusenden(z.B. Asterisk). Die Audio signale werden dann nochmal vom über den Echo Canceler interpretiert. Und wenn dieser meint das du ein echo auf der Leitung hast, dann regeneriert er das Signal. Beim Faxen kann das Tödlich sein.

Lösung mISDN + iaxmodem:
In deinem Dialplan solltest du folgendes Einbauen:
;Eingehende anrufe
; ausschalten des Echo Canceler
exten => s,1,misdn_set_opt(e0:vt0)
; setzen des ISDN Falg dass das ein Fax über ISDN ist
exten => s,2,Set(CHANNEL(transfercapability(3K1AUDIO))
; durchwahl an dein IAXmodem.
exten => s,2,Dial(IAX2/iaxmodem)


;Ausgehende Anrufe
exten => s,2,Set(CHANNEL(transfercapability(3K1AUDIO))
exten => s,1,Dial(misdn/g:isdn-out/tel-number/e0:vt0)

die Konfigurationsdatei /etc/asterisk/misdn.conf sollte so aussehen:
[general]
misdn_init=/etc/misdn-init.conf
debug=0
ntdebugflags=0
ntdebugfile=/var/log/misdn-nt.log
ntkeepcalls=no
bridging=no
stop_tone_after_first_digit=yes
append_digits2exten=yes
dynamic_crypt=no
[default]
context=isdn-intern
language=de
musicclass=default
senddtmf=yes
far_alerting=no
allowed_bearers=all
nationalprefix=0
internationalprefix=00
rxgain=0
txgain=0
te_choose_channel=no
pmp_l1_check=no
reject_cause=16
need_more_infos=no
nttimeout=no
method=round_robin
overlapdial=yes
early_bconnect=yes
incoming_early_audio=no
nodialtone=no
presentation=-1
screen=-1
echocancel=128
jitterbuffer=0
hdlc=no
max_incoming=-1
max_outgoing=-1
astdtmf=yes

[isdn1]
ports=1
context=isdn-extern
msns=*
language=de

[isdn2]
ports=1
context=isdn-intern
msns=*
language=de

Lösung Hardware:
vielleicht hast du auf deiner Maschine ein Interrupt probelm. Ein Bauteil im Computer braucht zu lange um zu antworten an die CPU, dann ist die CPU für diesen Zeitraum geblockt.
du kannst mal
hdparm -t /dev/Festplatte machen
z.B.
hdparm -t /dev/sda
der Wert sollte über 40 MB sein. sonst blockiert dier der Festplatten Controller den Interrupt.
Das weitere was du noch machen kannst ist das programm irqbalencer installieren. Dieser verteilt dir den interrupt auf deine CPU Kerne. Dann könntest du wieder freie Zeit auf der CPU haben für das Faxen.
Das weitere ist, du könnstest im BIOS den High Precision Event Timer einschalten.
Die meisten Linux systeme stellen dann von deiner Normalen CPU Clock auf den HPET um. Es gibt einige im Internet die daruaf schwören.

Lösung dahdi:
Du kannst analog dazu Dahdi mal ausprobieren.
Hier kannst du den Software Echcanceler OSLEC oder MG2 Einschalten.
Wichtig ist hierbei, dass der Dial folgende Extensions im bekommt oder setzt.
exten => s,2,Set(CHANNEL(transfercapability(3K1AUDIO))
manchmal passiert dies automatisch über Asterisk oder Dahdi manchmal aber gerade bei hereinkommden Anrufen nicht.
Der Software Echo Canceler oder Hardware Echocanceler wird dadurch ausgeschalten und faxen geht.


TiPP:
du solltest nicht mit zwei Dialplan technologien Arbeiten, dann kommst du und Asterisk in schleudern.
 
Hi Pemer.

Ich arbeite eigentlich überhaupt nur mit der extensions.ael, weil sich die einfacher und übersichtlicher schreiben lässt, als die extensions.conf

Ich danke dir vielmals für deine Tipps und werde die gleich mal in die Tat umsetzen. Wenn irgendwas fehler aufbringen sollte, werd ich dich um deinen Rat bitten. ;)

Grüße denny

Edit:
Also die Idee mit dem Balancer is ja gar nicht übel.;)

Hab grad versucht deinen Tipp mit dem hdparm durchzuführen, aber der kennt den Befehl gar nicht unter Debian.
Kannst du mir eventuell sagen, in welchem Package das enthalten ist?
 
Zuletzt bearbeitet:
hdparm unter debian etch:

http://packages.debian.org/etch/hdparm
oder
apt-get install hdparm

@_Denny
mich würde interessieren was du für eine Hardware hast.
ISDN Karte?
Mainboard Typ und Hersteller
CPU
RAM
etc.

* mISDN v1 ist ziemlicher Mist und macht jede Menge Kopfschmerzen. Daher meine Devise: Vermeiden wo möglich! (mISDN v2 ist eine ganz andere Geschichte, aber das willst Du erstmal nicht.)
Das ist meines erachtens ein Mist. mISDN läuft ziehmlich stabil, wenn man die Kernel module für den Kernel entsprechend anpasst.
Habe schon ein Paar Installation mit mISDN hinter mir, und komm zum Fazit:
Wenn man nur mISDN oder S0 Leitungen hat. Funkt das Teil in alle Richtungen mit jedem Scheiß und sogar mit HDLC ISDN Frames.

Über mISDN v 1 hat auch einen CAPI Layer, somit kann man jede Karte die mit mISDN v 1 läuft auch parallel mit CAPI betreiben.
 
Um erstmal deine Fragen zu beantworten:

ISDN-Karte:
Code:
Network controller: Cologne Chip Designs GmbH ISDN network controller [HFC-PCI] (rev 02)

Die Architektur ist ne normale x86 mit nem AMD-Processor. Die Architektur des Mainboards kann ich dir leider auf die schnelle auch nicht sagen, werd aber morgen mal nachschauen, sobald ich wieder im Geschäft bin.

Ich muss zugeben, dass ich bisher mit mISDN sehr zufrieden bin, aber manche Sachen schon teils kompliziert sind.

Was das CAPI unter mISDN angeht, hab ich noch keine Erfahrung, weil ich bisher nur über ISDN direkt kommuniziere und kein CAPI benötigt habe.

Grüße denny

EDIT:

hdparm -t /dev/sda/
Code:
/dev/sda:
 Timing buffered disk reads:  258 MB in  3.01 seconds =  85.79 MB/sec
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.