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

e-mail Benachrichtigung über Anrufe?

Dieses Thema im Forum "Asterisk Allgemein" wurde erstellt von alvoip, 17 Sep. 2006.

  1. alvoip

    alvoip Mitglied

    Registriert seit:
    31 Okt. 2004
    Beiträge:
    490
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    Ort:
    Wien
    Ich habe vor kurzem meinen Mobilfunkprovider gewechselt. Der alte hatte ein Feature "Benachrichtigung über entgangene Anrufe", wo man ein SMS bekam, wenn jemand einen nicht erreichen konnte. Mailbox habe ich abgedreht. Der neue Betreiber hat dieses Feature nicht, aber möglicherweise könnte mir mein Asterisk hier helfen.

    Der Asterisk sollte Folgendes tun: Bei Anruf an eine bestimmte Extension soll er den Ruf ablehnen, und zwar so, dass kein Completed Call signalisiert wird. Meine Experimente ergaben, dass ein "BUSY" oder "CONGESTION" das bewirkt. (Gibt es da was besseres, das bei Umleitung von einem Mobiltelefon den Mobilfunkbetreiber dazu bringt sein "Teilnehmer derzeit nicht erreichbar"-Sprüchlein aufzusagen?)

    Dann soll er ein e-mail schicken, das die Nummer des Anrufers mitteilt. Ich bekomme e-mails als SMS weitergeleitet, und damit hätte ich die alte Funktion wieder.

    Ich bräuchte dann nur mehr mein Mobiltelefon für "nicht erreichbar" auf den Asterisk umleiten. Wenn der keinen Completed Call signalisiert, sollten meines Erachtens nach weder bei mir noch beim Anrufer auf die Mobilnummer Kosten entstehen.

    Nur mit dem e-mail bräuchte ich Eure Hilfe, da habe ich keinen blassen Schimmer habe, ob das überhaupt geht, und wenn ja wie. Aber prinzipiell e-mailen kann Asterisk ja, da er es für die Mailboxnachrichten tut.
     
  2. Snuff

    Snuff Aktives Mitglied

    Registriert seit:
    23 Juni 2006
    Beiträge:
    1,149
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Beruf:
    Softwareentwickler/Ausbilder
    Ort:
    65529 Waldems (Taunus)
    Ich habe den Mailversand wie folgt realisiert:

    exten => s,6,system(echo "MAILBODY" | mail empfaenger@mail.tld -s "Anruf von ${CALLERIDNUM}" -a "From: Anrufliste <noreply@mail.tld>" &)

    Gruß Snuff
     
  3. alvoip

    alvoip Mitglied

    Registriert seit:
    31 Okt. 2004
    Beiträge:
    490
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    Ort:
    Wien
    Danke für den Hinweis. Jetzt stehe ich als Linux-Rookie an. Ich habe verstanden, dass "system" das Argument an das Betriebssystem weitergibt. Also habe ich den Klammerinhalt gleich einmal probeweise an der Linux-Command Line (Debian Sarge) eingetippt. Da bekomme ich aber de Fehlermeldung: "-bash: mail: command not found". Offenbar fehlt mir ein Programm. Was muss ich installieren? Einen SMTP hat mein Server, und zwar exim. Das ganze ist ein Virtual Server nach der Anleitung von Betateilchen.
     
  4. Snuff

    Snuff Aktives Mitglied

    Registriert seit:
    23 Juni 2006
    Beiträge:
    1,149
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Beruf:
    Softwareentwickler/Ausbilder
    Ort:
    65529 Waldems (Taunus)
    Weiss jetzt auch nicht genau in welchem Paket mail drin steckt. Ist aber normalerweise in ner Standardinstallation drin. Habe hier selbst Postfix als SMTP laufen
     
  5. alvoip

    alvoip Mitglied

    Registriert seit:
    31 Okt. 2004
    Beiträge:
    490
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    Ort:
    Wien
    So, jetzt geht es bei mir. Ich muuste das Paket "mailx" installieren.

    Das mit der Nichterreichbarkeitsansage habe ich nach einigem Herumspielen so gelöst:

    Code:
    exten => s,1,progress()
    exten => s,2,wait,1
    exten => s,3,system(echo "MAILBODY" | mail empfaenger@mail.tld -s "Anruf von ${CALLERIDNUM}" -a "From: Anrufliste <noreply@mail.tld>" &)
    exten => s,4,hangup
    
    Das bringt zumindest meinen Mobilbetreiber one dazu, die Nichterreichbarkeitsmeldung ohne Kosten für den Anrufer zu spielen.
     
  6. divB

    divB Mitglied

    Registriert seit:
    14 Juli 2006
    Beiträge:
    324
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo!

    Find ich cool, das wollte ich auch schon immer haben ;-)

    Aber was tut Progress() genau und wieso wartest du eine Sekunde?

    Wenn ich mich selbst anrufe, klingelt es einfach weiter obwohl in der Asterisk-Konsole schon ein Hangup erschienen ist.

    Glaubst du nicht, dass es mit
    Code:
    # Infos auf [1]
    exten => s,1,Set(PRI_CAUSE=18)
    exten => s,2,Hangup()
    
    besser gehn würde?

    Was ich auch nicht ganz verstehe, wenn der Anruf auf mich zu Hause weitergeleitet wird, müsste CALLERID(number) (ist eh das gleiche wie ${CALLERIDNUM} oder?) doch meiner Handy Nummer entsprechen oder?

    Frage: Wie machst du das? Leitest du auf eine spezielle MSN um?
    Weil ich hab nämlich keine freie MSN mehr und würde gerne, wenn der Anruf von meinem Handy kommt (=Anruf weitergeleitet) die Aktion ausführen. Aber wie komme ich dann an die Nummer des tatsächlichen Anrufs?

    Mein Makro dazu sieht z.Z. so aus:

    Code:
    [macro-rufumleitung-notification]
    exten => s,1,GotoIf($[ "${CALLERID(number)}" = "069981948365" ] ? 2 : 6)
    exten => s,2,Progress()
    exten => s,3,Wait(1)
    exten => s,4,System(echo "MAILBODY" | mail ich@my.net -s "[intern] Anruf von ${CALLERIDNUM}" -a "From: Anrufliste <asterisk@my.net>" &)
    exten => s,5,Hangup()
    exten => s,6,NoOP()
    

    Ich kann leider nicht experimentieren, da ich am Handy eine Fehlermeldung bekomme wenn ich die Rufnummerweiterleitung einschalten will (Änderungen können zur Zeit nicht im Netzwerk gespeichert werden....)
    Ich habe yesss (also auch ONE Netz). Weisst du, ob vielleicht mit yesss gar keine Rufnummerweiterleitung möglich ist?

    Für jede Hilfe dankbar,
    divB

    [1] http://www.voip-info.org/wiki/index.php?page=Asterisk cmd Hangup
     
  7. Snuff

    Snuff Aktives Mitglied

    Registriert seit:
    23 Juni 2006
    Beiträge:
    1,149
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Beruf:
    Softwareentwickler/Ausbilder
    Ort:
    65529 Waldems (Taunus)
    Normalerweise wird bei einer Anrufweiterleitung auf Netzebene die Rufnummer des Anrufenden und nicht die des weiterleitenden Anschluss übermittelt.

    Gruß Snuff
     
  8. alvoip

    alvoip Mitglied

    Registriert seit:
    31 Okt. 2004
    Beiträge:
    490
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    Ort:
    Wien
    #8 alvoip, 19 Sep. 2006
    Zuletzt bearbeitet: 19 Sep. 2006
    Progress() leitet Befehle für "early audio" ein. Man kann danach z.B.
    Playback(Systemansagetext,noanswer)
    machen. Dann wird die Datei "Systemansagetext" abgespielt, ohne dass ein Completed Call signalisiert wird, sprich ohne Kosten für den Anrufer. So machen etwa die Mobilbetreiber die Ansage, dass ein Handy nicht erreichbar ist, oder die 0900-Betreiber die vorgeschriebene kostenlose Preisansage.

    Allerdings unterstützen die meisten VoIP-Gateways "early audio" nicht, da es ja auch ein gewisses Missbrauchspotential hat: Man könnte etwa einen weltweit gratis erreichbaren Tonbanddienst machen. Und Du gehst ja offenbar gar nicht per VoIP, sondern per ISDN in Deinen Asterisk, da geht das erst recht nicht. In diesen Fällen wird dem Anrufer einfach der normale Ringback eingespielt.

    Ich gehe per VoIP über eine 0780-Nummer in den Asterisk. Bei 0780 kann der Netzbetreiber des Anrufers irgendein Gateway verwenden. Das von one verwendete macht bei Progress() / wait,1 / Hangup eben genau das was ich will. Frag mich nicht warum, es tut es und ich bin zufrieden. ;-)

    Nein, bei netzseitiger Anrufweiterleitung wird die ID des ursprünglichen Anrufers durchgereicht. Edit: Das hat für Dich wiederum den Nachteil, dass Du gar nicht merkst, dass der Anruf über das Handy kam. Du bräuchtest also doch eine eigene MSN. Allerdings kannst Du auch über SIP reinkommen und Dir z.B. bei Sipgate.at oder Sipcall.at eine Gratisnummer dafür holen.

    Yesss ist, wie sie auch in der Werbung sagen, Telefonieren ohne Schnickschnack. Anrufumleitung ist Schnickschnack, da hast Du also Pech.

    [Exkurs für unsere deutschen Freunde: Yesss hat einen Tarif ohne Grundgebühr und ohne Mindestumsatz mit 6,9 Cent pro Minute in alle Netze. So, jetzt könnt Ihr die Kinnlade wieder hinaufhieven. :grin:]
     
  9. divB

    divB Mitglied

    Registriert seit:
    14 Juli 2006
    Beiträge:
    324
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ok, danke für deine Antwort!

    Habe mich informiert und festgestellt, dass Yesss das tatsächlich nicht kann.
    Hätte mir gedacht, dass die Basics unterstützt werden (Mailbox gibts ja auch, obwohl die keiner braucht ;)


    PS: In Deutschland gibts nix so billiges? :)
     
  10. Thomas007

    Thomas007 Aktives Mitglied

    Registriert seit:
    18 Sep. 2005
    Beiträge:
    1,455
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    In Deutschland hat man dafür eine tolle Deregulierung durch die Postbehörde mit verschiedenen Mobilfunk-Providern und Wucherpreisen.

    Nett ist auch das man an der Mobilfunknummer nicht mehr erkennen kann in welches Mobilnetz man anruft. Da sind echte Profis am Werk.