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

Klingeln und Ansage gleichzeitig [gelöst]

Dieses Thema im Forum "Asterisk Rufnummernplan" wurde erstellt von voipchicken, 19 März 2009.

  1. voipchicken

    voipchicken Neuer User

    Registriert seit:
    26 Mai 2006
    Beiträge:
    5
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    #1 voipchicken, 19 März 2009
    Zuletzt bearbeitet: 4 Mai 2009
    Hallo zusammen,

    wahrscheinlich ist es total einfach, aber ich habe bisher keine Lösung gefunden:

    Ich möchte folgendes realisieren:
    1. Anruf kommt rein
    2. internes Telefon soll klingeln und gleichzeitig soll für den Anrufer eine Willkommens-Ansage ablaufen
    3. Nach dem Ende der Ansage soll MOH laufen, Telefon soll gleichzeitig weiter klingeln
    4. Nach ca. 20 Sekunden soll dann eine weitere Ansage laufen (zu Werbezwecken), Telefon soll gleichzeitig weiter klingeln
    5. Nochmal so ca 20 Sekunden Musik für den Anrufer bei gleichzeitigem Klingeln des Telefons.
    6. Ansage für VoiceBox, Klingeln kann nun aufhören.

    Das mit der VoiceBox habe ich seit langem erledigt. Nur mit den Ansagen habe ich immer noch Probleme. Wenn ich mit Dial arbeite, brauche ich einen Timeout, damit ich anschließend per Playback oder Background eine Ansage abspielen kann. Allerding klingelt bei Playback oder Background dann das Telefon natürlich nicht mehr.

    Die Ansagen per Dial(....,m), also mit dem m-Parameter abzuspielen, ist nicht so einfach, da sie von Zeit zu Zeit geändert werden und sich dadurch die Abspieldauer verändern kann. Hier kann ich also nicht mit einem festen Timeout-Parameter im Dial-Cmd arbeiten. Bei der Wartemusik ist das ja kein Problem.

    Ich habe nun den ganzen Tag nach einer Lösung hierfür gesucht, und gebe jetzt erstmal auf. Eigentlich kann das ja nicht so schwer sein. Vielleicht kann mir jemand mal einen Tipp geben.

    Vielen Dank im Voraus

    Ruediger
     
  2. laureen

    laureen Mitglied

    Registriert seit:
    17 Okt. 2004
    Beiträge:
    369
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hast Du Dir schon mal den "Background" Dialplan-Command angesehen? Das sollte sich damit realisieren lassen: http://www.voip-info.org/wiki/view/Asterisk+cmd+BackGround

    Wenn die Soundfiles sich ändern, kannst Du den Befehl aus einem AGI-Script heraus ausführen, der z.B. aus einem Text-File oder einer Datenbank das/die abzuspielende File(s) raussucht und dann den String mit den Soundfiles dementsprechend zusammenbaut.

    Grüße,
    Laureen
     
  3. voipchicken

    voipchicken Neuer User

    Registriert seit:
    26 Mai 2006
    Beiträge:
    5
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo Laureen,

    vielen Dank für diesen guten Hinweis. Jedoch habe ich mir natuerlich den Befehl schon mal angesehen und ihn verworfen. Das Problem bei Background wäre, dass ich ja nicht ein ganzes Musikstück abspielen will. Ich müsste es dann wohl auf 20 Sekunden kürzen. Noch komplizierter würde das mit einem Stream wie beispielsweise von Shoutcast werden.

    Ich brauche also etwas, das mit die Möglichkeit gibt, während des Klingelns im Wechsel
    1. Willkommen Ansage
    2. 20 Sekunden Musik - egal woher, wie z.B. ein Stream.
    3. Weiter Ansage, wie z.B. Werbung
    4. nochmal 20 Sekunden Musik, am liebsten Fortsetzung von 2.
    abspielt.

    Ruediger
     
  4. Heldenhaft

    Heldenhaft Neuer User

    Registriert seit:
    24 Nov. 2004
    Beiträge:
    104
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Soweit ich weiß kann Asterisk das Konzeptionell nicht. Du kannst mit der Dial-App einen Anruf auslösen, kannst aber auf der anderen Seite nicht irgendwelche Kommandos (z.B. Ansage) absetzen und später den Call (beim Abheben) wieder bridgen.
     
  5. voipchicken

    voipchicken Neuer User

    Registriert seit:
    26 Mai 2006
    Beiträge:
    5
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hmm, das verstehe ich jetzt nicht.

    Also, was geht, ist z.B. folgendes:

    s,1,Answer()
    s,2,Dial(SIP/phoneId,5,m(welcome)tT)
    s,3,Dial(SIP/phoneId,10,mtT)
    s,4,Hangup()

    In 2 wird eine Willkommensmeldung abgespielt, in 3 der default MusicOnHold. Auch wenn ich bei obigem Beispiel erst nach 5 Sekunden, also insgesamt innerhalb von 15 Sekunden abhebe, dann kriege ich noch das Gespräch.

    Ich versuche also zur Zeit, MusicOnHold dazu zu verwenden, die Ansagen zu machen. Nun müsste ich nur noch die Zeit herausfinden, die eine Ansage hat, damit ich nicht manuell z.B. 5 Sekunden für die Ansage festlegen muss, da diese sich ja, wie bereits vorher beschrieben, auch mal ändern kann und daduch länger oder kürzer werden kann.

    Hierfür suche ich einen besseren Weg, ich mache das wahrscheinlich noch total falsch. Gerade mit Asterisk muss das doch irgendwie gehen!?!

    Ruediger
     
  6. Heldenhaft

    Heldenhaft Neuer User

    Registriert seit:
    24 Nov. 2004
    Beiträge:
    104
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Na ja,
    damit hat man nicht soviel gewonnen. Du hättest für jeden Call schon mal ein verpasstes Gespräch und natürlich würde es eine kurze "klingel Unterbrechung" geben.
     
  7. PsychoMantis

    PsychoMantis Aktives Mitglied

    Registriert seit:
    18 Dez. 2005
    Beiträge:
    2,494
    Zustimmungen:
    1
    Punkte für Erfolge:
    38
    Beruf:
    geht niemanden was an
    Ort:
    Ingolstadt
    Wie ist das im zweiten Post hier gemeint mit Background? Würde auch gerne während das Telefon läutet eine kurze Ansage abspielen, aber wie?
    Code:
    s,1,Dial(SIP/30,90,m(welcome))
    würde ja gehen, aber wie genau definiere ich die Ansage (meine Soundfiles liegen da, wo alle andere liegen)? Und ist es nicht so, dass die Ansage mehrere male hintereinander abgespielt wird, bis der Angerufene rangeht?
     
  8. voipchicken

    voipchicken Neuer User

    Registriert seit:
    26 Mai 2006
    Beiträge:
    5
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Stimmt! Du hast ja vollkommen Recht! Daran hatte ich gar nicht gedacht. Naja, habs auch nur für mich auf einer Testnummer laufen.
    Also, davon merke ich nichts. Aber Dein erstes Argument macht meinen Ansatz ohnehin komplett zunichte. Ich werde dann mal versuchen, den Vorschlag von laureen umzusetzen, wenn sonst keiner eine Idee hat.

    Ruediger
     
  9. PsychoMantis

    PsychoMantis Aktives Mitglied

    Registriert seit:
    18 Dez. 2005
    Beiträge:
    2,494
    Zustimmungen:
    1
    Punkte für Erfolge:
    38
    Beruf:
    geht niemanden was an
    Ort:
    Ingolstadt
    Irgendwie klappt das mit dem Vorschlag von laureen nicht. Das mit dem Background ist doch was ganz anderes.
    Habs mal versucht mit MOH umzusetzen. Nachteil: Der angerufene hört MOH auch dann, wenn mein Handy aus ist. Die Ansage "Der Gewünschte Gesprächspartner ist vorübergehend nicht zu erreichen" ertönt nicht mehr und stattdessen spielt MOH. Wie man das umgeht - ich glaube, das ist unmöglich. Zumindest fällt mir nichts ein.
     
  10. Numsi

    Numsi Mitglied

    Registriert seit:
    24 Jan. 2005
    Beiträge:
    215
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Das alles geht via Queue.
    Anruf kommt rein, ringing, answer, ansage abspielen, ab in die queue mit MOH.
    Wenn der Anrufer in der queue ist, klingeln die agenten.
    Waehrenddessen hoert der anrufer moh und zyklisch diverse ansagen.
    Nach Timeout geht der anrufer in die MB
    Schau dir die queue.conf an, reichlich zum einstellen.
    Die Ansagen das er nun der erste in der queue ist, kannst du umbiegen auf deine Werbung.
    Viel Spass
     
  11. voipchicken

    voipchicken Neuer User

    Registriert seit:
    26 Mai 2006
    Beiträge:
    5
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo Numsi,

    habe erst jetzt Deine Antwort gelesen. Vielen Dank, so funktioniert es.

    Hätte mich auch gewundert, wenn es wirklich ein
    gäbe. Ich hatte nämlich bisher angenommen, mit Asterisk könne man (fast) alles machen :)

    Also nochmals vielen Dank, Du hast mir sehr weitergeholfen.

    Ruediger
     
  12. Heldenhaft

    Heldenhaft Neuer User

    Registriert seit:
    24 Nov. 2004
    Beiträge:
    104
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Naja,
    wirklich gehen tut es nicht. Da während der ersten Ansage die Teilnehmer nicht klingeln und ich auch nicht die Möglichkeit habe nach Zeit eine weitere Ansage zu bringen ohne das der Call unterbrochen wird - bzw. ich wieder ein verpasstest Gespräch im Telefon habe.
    Zudem rotiert die Wartemusik immer...

    Gruß,
    Held
     
  13. mts

    mts Neuer User

    Registriert seit:
    18 März 2007
    Beiträge:
    100
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ich würde gerne diesen Thread wieder aufwärmen, da er meiner Meinung nach nicht gelöst ist und ich genau das Problem von Heldenhaft habe.

    Beim Anrufer läuft alles korrekt ab, jedoch klingeln die Telefone nicht durchgehend! Bei jeder Ansage hören die Telefone auf zu klingeln und bekommen einen missed-call.

    Außerdem würde ich gerne nur einmal dem Anrufer mitteilen (nach ca. 20sek klingeln), dass er durch Drücken der Taste 1 eine Nachricht hinterlassen kann.
    Danach soll weiter Musik kommen.