Möglichkeiten der Voice-Mailbox

lo4dro

Mitglied
Mitglied seit
14 Okt 2004
Beiträge
656
Punkte für Reaktionen
0
Punkte
0
Guten Morgen.

Ich hab ein paar Fragen zum VBox System von Asterisk.

1) kann man neue Nachrichten im
a) Display des ISDN Telefons signalisieren
b) den PC-Lautsprecher bipsen lassen
c) Beim Abnehmen des Hörers (ISDN) eine Mitteilung abspielen bevor das freizeichen kommt.

2) Abhängig von der übermittelten Rufnummer eine persönliche Nachricht abspielen (vielleicht über CC möglcih)
 
1a) Das kommt auf dein Telefon an. Wier soll denn die Signalisierung aussehen? Wenn Du ein ISDN-Telefon mit SMS-Funktion hast, dann könntest Du ne SMS an das Telefon schicken. Es wäre aber auch möglich, dass die VoicemailBox ne eigenen Telefonnummer bekommt, die in deinem Telefonbuch des ISDN-Telefons unter z.b. "VoiceMail" abgelegt wurde. Wenn dann eine Nachricht auf deiner VBox ist, dann könnte über diese Nummer "kurz" an deinem ISDN-Telefon angeklingelt werden, und du siehst dann auf dem Display eionen "verpssten" Anruf der VBox.
1b) Sollte kein Problem sein, wenn du dafür n skript schreiben kannst. Das kann man dann ja einfach aus Asterisk starten, wenn ne VMail in deiner VBox ist.
c) Da wird es schwierig. Denke mal das es darauf ankommt, wie Du dein ISDN-Telefon an den Asterisk anschließt. Direkt an HFC könnte man vielleicht mit der s-Extension ein AGI-Skript starten. An einer TK-Anlage mit CAPI könnte es gehen, wenn die tk-Anlage ne Autodial-Funktion hat (oder das Telefon), sodass Du direkt auf dem Asterisk landest.

2) Das geht bestimm: Entweder direkt über die Extension für jede Rufnummer, oder über ein AGI-Skript und ne Datenbank (wohl angenehmer zu verwalten).
 
Ich hab noch was vergessen *g*

1d) Mailbox soll Uhrzeitabhängig reagieren. z.b. zwischen 8-12 Uhr nach 5sec, restlichezeit 30sec Klingeln
 
@Hupe
Da ich noch ein sehr grosser Anfänger bin, würde ich mich an ein zwei Beispiele freuen.

1a) würde das kurze Klingeln in Frage kommen.
1b) wie schreibt man so ein script

2) vielleicht ein kleines Beispiel wie man so ne extension abfrägt. Mir fällt nur so was ein:

exten => 300/0785154321,1,Playback(Hallo-Meier.mp3)
exten => 300,2,Voicemail(u${EXTEN})
 
1d) Über ein AGI-Skript dann auch kein Problem. Da kann man dann ja die "timeout"-Zeit des Dial-Befehles als uhrzeitabhängige Variable setzen.
Asterisk hat aber auch direkt über den Dialplan ne Möglichkeit einer Tag/Nacht-Schaltung zu nutzen.
 
lo4dro schrieb:
@Hupe
Da ich noch ein sehr grosser Anfänger bin, würde ich mich an ein zwei Beispiele freuen.

1a) würde das kurze Klingeln in Frage kommen.
1b) wie schreibt man so ein script

2) vielleicht ein kleines Beispiel wie man so ne extension abfrägt. Mir fällt nur so was ein:

exten => 300/0785154321,1,Playback(Hallo-Meier.mp3)
exten => 300,2,Voicemail(u${EXTEN})

1a) Naja, für den Fall, dass Du CAPI nutzt kann ich dir das wohl sagen:

Richte in Deiner capi.conf ne MSN für die VBox ein. Dann einfach den Befehl (77 MSN der VBox, 15 des Telefons):

exten s,1, DIAL(CAPI/15:77,1)
1 ist der Timeout in Sekunden. Es klingelt also nur eine Sekunde. Die extension muss man natürlich den Bedürfnissen anpassen.
Von HFC habe ich nicht soviel Ahnung, und verkneife mir dann mal ein (vermutlich falsches) Beispiel.

1b)
AGI-Skripte kann man in so einigen Programmiersprachen schreiben: Perl, ein Shellskript, PHP, Java ...
weitere infos findest Du hier.
Normale Skripte und Programme, kannman mittels des Befehles System ausführen.

2)
exten => 300/0785154321,1,Playback(Hallo-Meier)
(Playback spielt keine mp3s ab, dazu "MP3Player" nutzen)
exten => 300,2,Voicemail(u${EXTEN})
Das ist ne Möglichkeit für die Dialplan-Version. Bei vielen verschiedenen "Anrufern" natürlich ein wenig "aufwendig". Da könnte man dann besser über ein AGI-Skript die CallerID über eine SQL-Datenbank auswerten, und dann ein entsprechendes Soundfile abspielen. Hab ich noch nie gemacht, ich bin mir aber sicher, dass sowas geht.
 
1a) wie der dial Befehl aussieht ist mir klar, nur wo wird der in die extension.conf eingefügt? kommt der nach zwischen Voicemail & Hangup
(exten => 300,3,dial....)

exten => 300,2,Dial(${S0INT}/${EXTEN},20)
exten => 300,3,Voicemail(u${EXTEN})
exten => 300,3,Dial.....
exten => 300,4,Hangup
exten => 300,102,Voicemail(b${EXTEN})
exten => 300,103,Hangup
 
Also irgendwie geht das net.
Kann es sein, das eine Voicemail aufrurf die priorität erhöht?.
Das sobald die Voicemail angesprochen wird eine 101 dazugezählt wird?
Ich glaube ich hab sowas im wiki gelesen.

Dann müsste ich der Eintrag so aussehen?

;;;; ISDN-User DN:300
exten => 300,1,SendText(Ich bin das Telefon ${EXTEN})
exten => 300,2,Dial(${S0INT}/${EXTEN},10)
exten => 300,3,Voicemail(u${EXTEN})
exten => 300,4,Hangup
exten => 300,102,Voicemail(b${EXTEN})
exten => 300,103,Dial(${S0AMT}12:9999,5
exten => 300,104,Hangup
 
lo4dro schrieb:
Also irgendwie geht das net.
Kann es sein, das eine Voicemail aufrurf die priorität erhöht?.
Das sobald die Voicemail angesprochen wird eine 101 dazugezählt wird?
Ich glaube ich hab sowas im wiki gelesen.

Dann müsste ich der Eintrag so aussehen?

;;;; ISDN-User DN:300
exten => 300,1,SendText(Ich bin das Telefon ${EXTEN})
exten => 300,2,Dial(${S0INT}/${EXTEN},10)
exten => 300,3,Voicemail(u${EXTEN})
exten => 300,4,Hangup
exten => 300,102,Voicemail(b${EXTEN})
exten => 300,103,Dial(${S0AMT}12:9999,5
exten => 300,104,Hangup

Code:
Return codes
If all the called channels are busy, Dial will exit with a return code of 0 and will continue in the current context at priority n+101, if it exists, where n is the priority of the Dial command. This allows you to set up different behavior for a busy response as opposed to a no-answer response.

If Dial was unable to place the call for some other reason, such as timing out before any channel answered successfully, then Dial will exit with a return code of 0 and execute the next higher priority (n+1) command.

If the g option is specified, and the called party hangs up before the calling party, then Dial exits with a return code of 0 to continue execution at priority n+1.

Dial returns -1 if the originating channel hangs up, or if the call is bridged and either of the parties in the bridge terminate the call.


If you are using kapejod's bristuff, you will have a n + 201 priority as well. Dial goes to this priority if no one is logged in on the called extension. I.e. giving an unavailable message instead of a busy message when no phone is connected to the extension.

Example:
exten => 4000,1,Dial(SIP/${EXTEN},15)
exten => 4000,2,Voicemail(u${EXTEN})
exten => 4000,102,Voicemail(b${EXTEN})
exten => 4000,202,Voicemail(u${EXTEN})
Quelle
 
So ich hab ml folgendes versuch:

;;;; ISDN-User DN:300
exten => 300,1,Dial(${S0INT}/${EXTEN},10)
exten => 300,2,Voicemail(u${EXTEN})
exten => 300,3,Dial(${S0AMT}/12,5)
exten => 300,4,Hangup
exten => 300,102,Voicemail(b${EXTEN})
exten => 300,103,Dial(${S0AMT}/12,5)
exten => 300,104,Hangup

Leider wird nach der Mailbox kein Dialbefehl abgesetz.

Das zeigt mir asterisk an:
pbx*CLI>
Nov 8 17:09:35 NOTICE[1112755120]: channel.c:284 ast_alloc_uniqueid: uid = asterisk-2144-1099930175.26
-- Executing Dial("SIP/200-7e5e", "Zap/g1/300|10") in new stack
Nov 8 17:09:35 NOTICE[1119189936]: channel.c:284 ast_alloc_uniqueid: uid = asterisk-2144-1099930175.27
-- Called g1/300
-- Zap/1-1 is ringing
-- Nobody picked up in 10000 ms
-- Hungup 'Zap/1-1'
-- Executing VoiceMail("SIP/200-7e5e", "u300") in new stack
-- Playing 'voicemail/default/300/greet' (language 'de')
-- Playing 'vm-isunavail' (language 'de')
-- Playing 'vm-intro' (language 'de')
-- Playing 'beep' (language 'de')
-- Recording the message
-- x=0, open writing: /var/spool/asterisk/voicemail/default/300/INBOX/msg0000 format: wav, 0x811cca8
-- User hung up
== Spawn extension (sipgate, 300, 2) exited non-zero on 'SIP/200-7e5e'

Vielleicht hat ja noch jemad einen Tipp?
 
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.