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

Ansagen zeitgesteuert in ein laufendes Gespräch einspielen

Dieses Thema im Forum "Asterisk Skripte" wurde erstellt von Emaleth, 10 März 2009.

  1. Emaleth

    Emaleth Neuer User

    Registriert seit:
    12 Sep. 2008
    Beiträge:
    37
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo,

    ich habe hier zu dem o.g. Thema zwar schon den ein oder anderen Beitrag gesehen, für den das Dialflag L ein möglicher Lösungsweg zu sein scheint. Was mache ich aber bei ankommenden Anrufen? Ich möchte einem Anrufer bspw. nach 10 min des laufenden Gespräches eine Ansage spielen, dann eine andere Ansage nach 20 min usw. Das Gespräch/die Verbindung soll dabei aber nicht unterbrochen werden. Geht das irgendwie und hat jemand eine Idee wie man das umsetzen kann?

    Danke schon mal.

    LG, Sabine
     
  2. anhalter42

    anhalter42 Guest

    Das gefällt mir: immer mal ein "Ja..", "Hmmm", "OK" oder "Ach was" einstreuen Will ich auf Knopfdruck starten können ;-) Weiß aber auch nicht, wie das geht, dass das (nur?) der externe Anrufer hört. Wäre sowas wie "Mischen zweier Kanäle" - sowas wie eine Pseudokonferenz (Stichwort MeetMe)?
     
  3. Emaleth

    Emaleth Neuer User

    Registriert seit:
    12 Sep. 2008
    Beiträge:
    37
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Haha, witzig. Dabei geht es eigentlich um unterschiedliche Tarifansagen. MeetMe könnte ich mir nur als unsaubere Lösung vorstellen. Das Problem, ist dass ich bei einem auf dem Asterisk laufenden Gespräch nicht nach x-Minuten etwas passieren lassen kann. Mit Dial und dem Parameter L kann man zwar nach nach "y" ms eine Ansage einspielen und diese auch alle "z" ms wiederholen kann. Aber: Ich kann nicht 2 verschiedene Ansagen abspielen und auch nicht in verschiedenen Zeitabständen. Also wenn jemand ernst gemeinte Ideen hat...
     
  4. anhalter42

    anhalter42 Guest

    Ich meinte meine Idee mit MeetMe durchaus ernst, denn MeetMe bietet meines Wissens die Möglichkeit, mehr als zwei Kanäle zusammenzuschalten. Einschränkend muss dann aber der automatische Kanal (der mit den Ansagen dann schon vorher also mit allen Pausen schon vorliegen. Das ist, das gebe ich zu, wirklich nicht besonders schön. Komplizierter wird es, wenn die Ansagen vorliegen und die Klangdatei für den abzuspielenden Kanal vorher dynamisch generiert wird.
     
  5. Emaleth

    Emaleth Neuer User

    Registriert seit:
    12 Sep. 2008
    Beiträge:
    37
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    hm...aber wie stelle ich dann sicher dass z.b. genau nach 10 min der sozusagen ansagenkanal in den meetingraum kommt? ich müsste ja den startzeitpunkt des anrufes z.b. in eine db schreiben und dann via script abfragen, ob der startzeitpunkt 10 min her ist. wenn ja, den anruf starten, der in den meetingraum reinkommt um die ansage 1 zu spielen. dann nach z.b. weiteren 15 min möchte ich ansage 2 spielen. ich kann mir momentan nicht vorstellen, dass das auf die min genau funktionieren kann. wüsste jedenfalls nicht wie. außerdem müsste man ja noch sicherstellen, dass kein anderer in diesen konferenzraum kann. ich müsste also automatisch einen konferenzraum generieren und ggfs noch ein pw vergeben... kompliziert, wenn es überhaupt geht. habe bisher leider noch nichts meetme gemacht :(
     
  6. anhalter42

    anhalter42 Guest

    Auch ich habe MeetMe nicht im alltäglichen Einsatz, stelle mir aber Folgendes vor:

    • Anrufannahme
    • dynamische Generierung eines Konferenzraumes (ohne Passwort, warum auch?) für den Anrufer, den Angerufenen und den Ansagekanal
    • Generierung der Klangdatei für den Ansagekanal über ein Shellscript. In einem Shellscript kannst Du dann die Tarifänderungen leichter realisieren, d.h. ohne in die extensions.conf zu müssen; z.B. nun nicht mehr nach 10 Minuten die Ansage, sondern nach nur 8 o.ä.
    • Dial für den Angerufenen ausführen, oder macht das schon MeetMe?
    • Zusammenschalten der drei Kanäle - das sollte MeetMe dann tun
    • ... Gespräch läuft ..., der dritte Kanal läuft also immer mit, ist aber nur an bestimmten Stellen hörbar
    • bei Gesprächsende Löschen der generierten Klangdatei, falls sie nicht nur temporär erzeugt wurde - es gibt auch Threads im Forum, die einen Radiosender streamen
    • Abbau des Konferenzraumes

    Aber das ist viel (Vor-)Arbeit:
    • Ob und wenn ja wie ist so eine Klangdatei aus div. Bausteinen (=Ansagen) generierbar?
    • Ob und wenn ja wie ist ein Konferenzraum dynamisch generierbar und verwerfbar?
     
  7. PsychoMantis

    PsychoMantis Aktives Mitglied

    Registriert seit:
    18 Dez. 2005
    Beiträge:
    2,486
    Zustimmungen:
    1
    Punkte für Erfolge:
    38
    Beruf:
    Schüler
    Ort:
    Ingolstadt
    ChanSpy mit der w-Option?
     
  8. oggy

    oggy Neuer User

    Registriert seit:
    29 Sep. 2004
    Beiträge:
    105
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    Ja, mit Chan_Spy müsste sowas funktionieren.

    Ich habe mit Chan_Spy eine Anrufbeantwortermithörfunktion realisiert. Die Voicemailbox von Asterisk ist zwar schon toll, aber mir fehlte der Komfort von herkömmlichen Anrufbeantworter, während einer Aufzeichnung mitzuhören und gegebenfalls doch entgegen zu nehmen. Chan_Spy benutze ich in diesem Fall zum Aufschalten des IP-Phones zum Mithören. Das IP-Phone nimmt auf der einen SIP-Nummer das Gespräch automatisch entgegen und schaltet auf den Lautsprecher.

    kleiner Gedankengang zum Thema:
    - während des Rufaufbaus einen Datenbankeintrag generieren mit Passwort und Verbindungsstatus
    - ein "Call"-File erzeugen mit Erzeugungsdatum zB 10min in der Zukunft
    - im Ablaufscript, auf dass das Call-File zeigt, den Status des Gespräches abfragen, Audiodatei abspielen lassen, eventuell neues Call-File erzeugen
     
  9. n8isch

    n8isch Mitglied

    Registriert seit:
    22 März 2005
    Beiträge:
    275
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    Trier
    #9 n8isch, 2 Mai 2009
    Zuletzt bearbeitet: 2 Mai 2009
    kannst Du nicht Die Sprachdatei einfach per script umkopieren? Also einfach eine Datei "touch ansage.gsm" als dummy erstellen und dann nach 10 min "cat ansage10min.gsm > ansage.gsm" und nach 20 min eben "cat ansage10min.gsm > ansage.gsm". oder so etwas in der art oder liest asterisk die datei nur einmal ein und nimmt sie dann aus irgendeinem cache?