e-mail Benachrichtigung über Anrufe?

alvoip

Mitglied
Mitglied seit
31 Okt 2004
Beiträge
490
Punkte für Reaktionen
0
Punkte
16
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.
 
Ich habe den Mailversand wie folgt realisiert:

exten => s,6,system(echo "MAILBODY" | mail [email protected] -s "Anruf von ${CALLERIDNUM}" -a "From: Anrufliste <[email protected]>" &)

Gruß Snuff
 
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.
 
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
 
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 [email protected] -s "Anruf von ${CALLERIDNUM}" -a "From: Anrufliste <[email protected]>" &)
exten => s,4,hangup

Das bringt zumindest meinen Mobilbetreiber one dazu, die Nichterreichbarkeitsmeldung ohne Kosten für den Anrufer zu spielen.
 
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 [email protected] -s "[intern] Anruf von ${CALLERIDNUM}" -a "From: Anrufliste <[email protected]>" &)
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
 
Normalerweise wird bei einer Anrufweiterleitung auf Netzebene die Rufnummer des Anrufenden und nicht die des weiterleitenden Anschluss übermittelt.

Gruß Snuff
 
divB schrieb:
Aber was tut Progress() genau und wieso wartest du eine Sekunde?
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. ;-)

divB schrieb:
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?
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.

divB schrieb:
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?
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:]
 
Zuletzt bearbeitet:
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? :)
 
divB schrieb:
PS: In Deutschland gibts nix so billiges? :)

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.
 
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.