.titleBar { margin-bottom: 5px!important; }

Voicemail mit Skript-Integration realisieren?!

Dieses Thema im Forum "Asterisk Allgemein" wurde erstellt von schuelsche, 13 Jan. 2005.

  1. schuelsche

    schuelsche Neuer User

    Registriert seit:
    22 Dez. 2004
    Beiträge:
    46
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Nachdem wir nun endlich den Asterisk so zum Laufen gebracht haben, dass wir rein- und raustelefonieren können, möchten wir nun einen Anrufbeantworter einrichten.

    Der Anrufbeantworter funktioniert auch soweit mit dieser Konfiguration:

    sip.conf
    =======
    Code:
    [general]
    port=5060
    binaddr=0.0.0.0
    ;externip=X.X.X.X ; (oder Adresse, bspw. user.dynalias.org)
    srvlookup=yes
    nat=yes
    localnet=0.0.0.0
    context=default
    disallow=all
    allow=gsm
    allow=alaw
    allow=ulaw
    tos=0x18
    dtmfmode=info
    insecure=very
    register=>USER1:PASSWORT1@sip.web.de/45 ; Zugang user1
    register=>USER2:PASSWORT2@sip.web.de/47 ; Zugang user2
    
    [webde-user1]
    type=friend
    secret=PASSWORT1
    username=USER1
    host=sip.web.de
    fromuser=USER1
    fromdomain=sip.web.de
    nat=no
    ;context=default ; kann auskommentiert werden, da schon in der [general] context=default steht
    canreinvite=no
    insecure=very
    
    [webde-user2]
    type=friend
    secret=PASSWORT2
    username=USER2
    host=sip.web.de
    fromuser=USER2
    fromdomain=sip.web.de
    nat=no
    canreinvite=no
    ;context=default ; kann auskommentiert werden, da schon in der [general] context=default steht
    insecure=very
    
    [45]
    type=friend
    username=45
    secret=PASSWORT ; nur Clientzugang für Softphone am *
    host=dynamic
    qualify=yes
    context=webde-user1
    nat=yes
    
    [47]
    type=friend
    username=47
    secret=PASSWORT ; nur Clientzugang für Softphone am *
    host=dynamic
    qualify=yes
    context=webde-user2
    nat=yes 
    

    extensions.conf
    ==========
    Code:
    [general]
    static=yes
    writeprotect=no
    
    [default]
    include=>45
    include=>47
    include=>webde-user1
    include=>webde-user2
    
    [45]
    exten=>45,1,Dial(SIP/${EXTEN},10) ; auf AB, wenn nach 10sec nicht abgehoben wird.
    exten=>45,2,Voicemail(u45)
    exten=>45,102,Voicemail(b45)
    
    [47]
    exten=>47,1,Dial(SIP/${EXTEN},10) ; auf AB, wenn nach 10sec nicht abgehoben wird.
    exten=>47,2,Voicemail(u47)
    exten=>47,102,Voicemail(b47)
    
    [webde-user1]
    exten=>_0.,1,Dial(SIP/${EXTEN:1}@webde-user1,60)
    exten=>_0.,2,Congestion
    exten=>_0.,102,Busy
    
    [webde-user2]
    exten=>_8.,1,Dial(SIP/${EXTEN:1}@webde-user2,60)
    exten=>_8.,2,Congestion
    exten=>_8.,102,Busy 
    
    Die voicemail.conf sieht standardmässig so aus:

    Code:
    ;
    ; Voicemail Configuration
    ;
    [general]
    format=wav|gsm
    serveremail=asterisk
    append=yes
    maxgreet=30
    maxmessage=90
    
    [default]
    45 => 4242,Example Mailbox,root@localhost
    47 => 1212,Example Mailbox,root@localhost
    

    Ich habe mir das Tutorial von www.kircherernet.de/ASTERISK runtergeladen, weil dort die Möglichkeit angeboten wird, die eingegangen Voicenachrichten über ein Webinterface einzurichten.

    Dazu habe ich wie dort beschrieben für einen Voicemailbenutzer einen Account angelegt und ein Verzeichnis /home/user2/public_html/vm/msg erstellt und dort die Datei vm.php reinkopiert (gibts bei Kirchner zum Download). Der Aufruf funktioniert auch soweit.

    Nur habe ich Probleme mit dem Skript vcopy.
    Unter SuSE Linux 9.2 kann ich keinen Telefonbenutzer anlegen, der nur aus Zahlen besteht (also keinen User 45 oder 47). Daher habe ich einen Account angelegt namens user2.

    Die Voicemail.conf wird nun so editiert (ich habe das ganze nur mal konfiguriert für den User [47] (=user2):
    Code:
    ;
    ; Voicemail Configuration
    ;
    [general]
    format=wav|gsm
    serveremail=asterisk
    append=yes
    maxgreet=30
    maxmessage=90
    
    ;### Skript, das neue Mails automatisch in das Heimverzeichnis des Users kopiert
    externnotify=/usr/sbin/vcopy
    
    
    [default]
    45 => 4242,Example Mailbox,root@localhost
    47 => 1212,user2,root@localhost
    
    Die Datei "vcopy" habe ich in das Verzeichnis /usr/sbin/ kopiert und mit chmod 777 für alle ausführbar gemacht.

    Ausserdem habe ich die Datei vcopy folgendermassen editiert:

    Code:
    #!/bin/sh
    ################################################################
    #   Voice Mail kopierer von Martin Kirchner
    #   Etwas "brutal" programmiert
    #   Mach es richtig/besser (config file und Abfrage)und Mail es mir zu :)
    #            [email]martin@kirchnernet.de[/email]
    #################################################################
    #
    #Name fuer neuen dateiname bestimmen
    dzeit=$(date +%H_%M_%S)
    
    #einige DEBUGausgaben
    echo $dzeit
    echo "kopiere"
    
    #Für jede ASTERISK Voicebox muss ein Block entsprechend dem folgenden angelegt werden
    #Kopiere die neuen msgs in das Verzeichniss, aendere die Dateirechte und
    #loesche die alten Dateien
    #Mailbox 47 ###########
     #Mailboxname mit angehängtem Unterstrich bestimmen
    m="47_"
     #Kopiere <Datenquelle> <Datenziel>   der TEXTDATEIEN
    cp /var/spool/asterisk/voicemail/default/47/INBOX/msg0000.txt /home/user2/public_html/vm/msg/$m$dzeit.txt
     #Kopiere <Datenquelle> <Datenziel>   der Sprachdatei
    cp /var/spool/asterisk/voicemail/default/47/INBOX/msg0000.wav /home/user2/public_html/vm/msg/$m$dzeit.wav
     #setze die zugriffsrechte auf 777 (xrwxrwxrw)
    chmod 777 /home/user2/public_html/vm/msg/*
     #l&ouml;sche die Textdatei und die Sprachdatei aud dem ASTERISK VOICEMAILVERZEICHNIS
    rm -f /var/spool/asterisk/voicemail/default/47/INBOX/*
    
    Problem ist nun, dass die Datei vcopy gar nicht aufgerufen wird.
    Die Voicemailbox von Asterisk nimmt nach 10sec den Anruf entgegen, der Anrufer spricht was, die Nachricht wird aufgezeichnet und dann kommt die Fehlermeldung:

    -- Called 47
    -- SIP/47-7abc is ringing
    -- Nobody picked up in 10000 ms
    -- Executing VoiceMail("SIP/chiligruen-5cf9", "u47") in new stack
    -- Playing 'vm-theperson' (language 'en')
    -- Playing 'digits/4' (language 'en')
    -- Playing 'digits/7' (language 'en')
    -- Playing 'vm-isunavail' (language 'en')
    -- Playing 'vm-intro' (language 'en')
    -- Playing 'beep' (language 'en')
    -- Recording the message
    -- x=0, open writing: /var/spool/asterisk/voicemail/default/47/INBOX/msg0005 format: wav, 0x8132e80
    -- x=1, open writing: /var/spool/asterisk/voicemail/default/47/INBOX/msg0005 format: gsm, 0x8133450
    -- User hung up
    /bin/sh: /usr/bin/vcopy: No such file or directory

    Woran liegt das? Stimmt was mit dem Aufruf in der voicemail.conf nicht? Es wird mir ja nicht mal das "echo $dzeit" und "echo kopiere" angezegit, wo die das Auskommentierungszeichen rausgenommen habe.

    Was aufgefallen ist bei der Editierung der Datei vcopy, dass mir die 47 in der gleichen Farbe angezeigt wird wie die 777 bei chmod, also wohl irgendwie nicht richtig angenommen wird. Kann das Skript nicht mit Zahlen umgehen? Bzw. wie bringe ich ihm bei, dass er die 47 als Text nimmt, wie wenn ich user2 benutzen würde? Aber wie gesagt, die Datei wird ja gar nicht aufgerufen, weil ja ansonsten der Echoteil im Asterisk erscheinen müsste, oder?
    Wie kann ich bspw. überprüfen, ob es den Befehl "externnotify" auf der SuSE 9.2-Konfiguration mit Asterisk überhaupt gibt?

    Würde mich über Hilfe sehr freuen,
    Grüsse
    schuelsche
     
  2. chamaeleo

    chamaeleo Neuer User

    Registriert seit:
    3 Feb. 2005
    Beiträge:
    24
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    in deiner voicemai.conf sollte stehen:

    externnotify=/usr/sbin/vcopy

    in der Fehlermaeldung steht aber:
    /bin/sh: /usr/bin/vcopy: No such file or directory

    Fehlt da vielleicht das "s" bei ../sbin/.. ?

    chamaeleo
     
  3. dfs712

    dfs712 Neuer User

    Registriert seit:
    19 Feb. 2005
    Beiträge:
    9
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo schuelsche,
    hast du das Tutorial von www.kircherernet.de/ASTERISK noch bei dir? Ich interesiere mich auch dafür nur ist die Webseite nicht erreichbar.
    Es wäre schön wenn du mir es zukommen lassen köntest.


    THX

    dfs712
     
  4. rajo

    rajo Admin-Team

    Registriert seit:
    31 März 2004
    Beiträge:
    1,958
    Zustimmungen:
    0
    Punkte für Erfolge:
    36