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

Automatisches Auftragssystem

Dieses Thema im Forum "Asterisk Allgemein" wurde erstellt von bananajack, 20 März 2012.

  1. bananajack

    bananajack Neuer User

    Registriert seit:
    20 März 2012
    Beiträge:
    8
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Liebes Forum,

    ich komme mit der Bitte um eure Unterstützung bei der Umsetzung eines kleinen Customerservice Projekts um Aufträge automatisch zu vergeben, die Idee ist folgende:

    Mein Computersystem gibt an Asterisk eine Reihenfolge von 10 Telefonnummern sowie 2 dazugehörige automatisierte sprachnachrichten (die allerdings theoretisch auch in Asterisk selber hinterlegt werden können) weiter. Der Telefonserver soll nun den 1. Teilnehmer in der Liste anwählen und Sprachnachricht 1 Abspielen. Dieser Teilnehmer soll nun die Möglichkeit haben, durch Druck einer Taste den Auftrag anzunehmen und zur 2. Sprachnachricht zu gelangen. Diese Aktion sollte an das Computersystem zurückgegeben werden, damit eine bestätigungs Email verschickt werden kann. Es ist keine weitere Interaktion durch den Teilnehmer erforderlich.

    Sollte Teilnehmer 1 den Auftrag nicht annehmen wollen und dieses durch Auflegen oder den Druck einer anderen Taste mitteilen, soll Asterisk automatisch den 2. Teilnehmer der 10 Telefonnummern anrufen und den oben genannten Vorgang wiederholen. Dies geschieht so lange, bis ein Teilnehmer den Auftrag angenommen hat oder alle 10 Nummern abtelefoniert worden sind. Sollte dies geschehen, soll diese Information ebenfalls an das Computersystem weitergegeben werden, um eine Mail zu versenden, dass der Auftrag nicht vergeben werden konnte.

    Nun meine Frage: Ist so etwas technisch Umsetzbar? Was kostet schätzungsweise die Einrichtung eines solchen Dienstes durch einen Serviceprovider/IT Dienstleister und was sind die Hardware Requirements? Falls nicht mit Asterisk, gibt es dafür andere Lösungen??

    Leider ist unser Unternehmen zu klein, als dass sich ein eigenes IT Department lohnen würde, ich bitte daher meine laienhafte Ausdrucksweise zu entschuldigen ;)

    Besten Dank für Euren Rat,

    Jack
     
  2. foschi

    foschi Guest

    Welche Anbindung ans Telefonnetz möchtest Du denn für diese Lösung bereitstellen?
     
  3. bananajack

    bananajack Neuer User

    Registriert seit:
    20 März 2012
    Beiträge:
    8
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Das Ganze soll nach Moeglichkeit nicht bei uns sondern auf einer Cloud liegen, damit man es beliebig skalieren kann. Desweiteren sollen externe Telefone/Handys angewaehlt werden koennen. Im prinzip folgendermassen: Computerprogramm sendet anfrage -> Telefonserver/Dienst/? fuehrt Aktion aus -> Ergebnis zurueck and Computerprogramm

    Ich brauch dann vermutlich einen VoIP Anbieter (so aehnlich wie Sipgate)?
     
  4. ichego1

    ichego1 Mitglied

    Registriert seit:
    19 Dez. 2005
    Beiträge:
    707
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ja das ist ja kein Problem

    ich habe dir mal eine PM geschickt

    Beste Grüße
     
  5. foschi

    foschi Guest

    Technisch ist die Umsetzung von der Funktionalität her kein Problem. Wenn Du das ganze 'cloud-basierend' haben möchtest ist lediglich zu prüfen, ob Dein Dienst in der Cloud ausreichend Bandbreite zum SIP-Provider bereitstellt (für die max. Anzahl gleichzeitiger Verbindungen für die abgehenden Anrufe).

    Wie sollen denn die Rufnummern die angerufen werden sollen verwaltet werden?
     
  6. bananajack

    bananajack Neuer User

    Registriert seit:
    20 März 2012
    Beiträge:
    8
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Alle Daten sind in einer mySQL Datenbank hinterlegt. Ich habe gelesen, dass sich Asterisk nicht ueber PHP ansteuern laesst oder ist es mittlerweile um diese Funktion erweitert worden?

    Erstmal muss ich schauen was ich brauche, aber danke
     
  7. rentier-s

    rentier-s Guest

    Es gibt verschiedene Möglichkeiten, Asterisk "ferzusteuern". Eine Möglichkeit um zB. Anrufe zu verwalten ist das Manager Interface, kurz AMI.

    Die einfachste Variante einen Anruf zu initiieren ist das Call-File (vorausgesetzt es besteht Zugriff auf das Dateisystem).

    Für die Ausführung von (PHP) Skripten innerhalb des Dialplan gibt es AGI.
     
  8. HobbyStern

    HobbyStern Aktives Mitglied

    Registriert seit:
    5 Dez. 2005
    Beiträge:
    1,837
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Beruf:
    vorhanden
    Ort:
    Ruhrgebiet
    OffTopic -> Da liest man Auftragssystem und wird schon ganz heiß und dann "nur" eine einfache Aufgabe :)

    OnTopic
    @bananajack, wenn es um ein Auftragssystem
    (jemand gibt Dir den Auftrag ein System zu erstellen das "x" kann - und nicht wie ich dachte "asterisk soll aufträge verwalten/erstellen/etc")
    geht und das ganze wasserdicht sein soll, vergiss bitte nicht das es sich in fremden Armen manchmal besser schläft ;-)

    Grüsse! Stefan
     
  9. bananajack

    bananajack Neuer User

    Registriert seit:
    20 März 2012
    Beiträge:
    8
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo Stefan,

    da hast Du in der Tat Recht! Das Problem ist, dass sich ein Hosted Outbound IVR (mehr ist es ja nicht, wie ich mir mittlerweile angelesen habe) zwar prima von einem Serviceprovider betreiben laesst, das Ganze dann aber auch per Minute abgerechnet wird. Wenn die angewaehlten Teilnehmer 1-4, den Auftrag nicht annehmen (was sich ja innerhalb der ersten 5-10 Sekunden entscheidet) und der fuenfte den Auftrag annimmt, kostet mich das jedesmal 5 cent. Wenn ich mir jedoch das Asterisk selber bastel (oder basteln lasse), kann ich mir einen SIP Trunk suchen, der im Sekundentakt abrechnet. Ergo: Der selbe Vorgang kostet mich dann nur 1-2 Cent. Soweit jedenfalls meine Kalkulation. Gibt es Serviceprovider, die mir ein Hosted Outbound IVR im Sekundentakt anbieten?

    Gruesse, Jack
     
  10. HobbyStern

    HobbyStern Aktives Mitglied

    Registriert seit:
    5 Dez. 2005
    Beiträge:
    1,837
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Beruf:
    vorhanden
    Ort:
    Ruhrgebiet
    Das was mich da aus dem Rennen sendet ist das "hosted".

    Ich verstehe den Wunsch nach Skalierbarkeit und der Idee der Sicherheit - jedoch sind die mir bekannten Asteriske noch irgendwo beheimatet (zentral) oder aus Regionalitätsgründen (Standortnetz) dezentralisiert.

    Die Aufgabenstellung die Du oben beschreibst ist recht simpel zu lösen - da braucht es nicht viel und eigentlich wird sich Asterisk da sehr langweilen, darf man salopp Fragen welchen Grund die Anrufe haben sollen?

    Grüsse, Stefan
     
  11. bananajack

    bananajack Neuer User

    Registriert seit:
    20 März 2012
    Beiträge:
    8
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Gibt es einen Grund, warum man den Server bei sich stehen haben sollte, anstatt das ganze zu hosten? Da das IVR ja von der "richtigen" Telefonie getrennt ist und keine extrem zeit kritische Anwendung ist, waere doch ein angemieteter Server die guenstigste Loesung?!

    Der Grund ist eine Art lokales Hotel Buchungssystem. Es gibt also etwa 100 Hotels (mit Telefonnummern), die in einer Database stehen und ueber eine Webinterface gebucht werden koennen. Das ganze soll kurzfristig verlaufen, so dass der User 5 moegliche Hotels und einen Zeitraum anwaehlt. Der Computer soll automatisch die Hotels abtelefonieren, bis eines per MFV Eingabe die Buchung annimmt. Dies soll wieder an das System zurueckgegeben werden, damit die Buchung registriert und der User benachrichtigt wird.
     
  12. HobbyStern

    HobbyStern Aktives Mitglied

    Registriert seit:
    5 Dez. 2005
    Beiträge:
    1,837
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Beruf:
    vorhanden
    Ort:
    Ruhrgebiet
    Da fallen mir viele ein - aber auch viele dagegen.
    Es ist eine FallzuFallFrage.

    Dies ist auch eine FallzuFallSache. Du schreibst ja das es eine beauftragte Arbeit ist - daher schreibe ich mal nichts davon ob und wie es denn Alternative Möglichkeiten der Buchung geben könnte - jedoch ist ja auch jedes Projekt eine nette Herausforderung.

    Die Frage bleibt - muss der Service/Dienst für unwissende in Erscheinung treten, also verlässlich sein oder darf er auch "mal nicht so" funktionieren wie er sollte..?

    Grüsse! Stefan
     
  13. bananajack

    bananajack Neuer User

    Registriert seit:
    20 März 2012
    Beiträge:
    8
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Wenn es eine alternative, ausserhalb von Asterisk gibt, mit der sich die Fragestellung besser loesen laesst dann immer her damit, ich bin wie gesagt kein Telefontechniker und daher fuer jeden Ratschlag dankbar!

    Ich verstehe allerdings nicht, warum der Dienst "mal nicht so" funktionieren sollte. Ist das nicht ein Frage der Programmierung? Entweder er funktioniert oder nicht?! Was genau meinst Du mit "fuer unwissende in Erscheinung treten"? Meinst du damit, dass ein eigener Server auch mal ausfallen kann, bzw. dass fuer die Wartung dann erst ein Spezialist angefordert werden muss und so eine laengere Downtime entsteht?

    Gruesse
     
  14. ichego1

    ichego1 Mitglied

    Registriert seit:
    19 Dez. 2005
    Beiträge:
    707
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Natürlich ist sowas möglich . Aber solche Lösungen kosten Geld . Frage doch mal bei siemens oder avaya alcatel nach .

    Wenn du unter 10000 euro bist ,sage bitte bescheid bei welchen Anbieter .


    Beste Grüße

    Ichego1
     
  15. HobbyStern

    HobbyStern Aktives Mitglied

    Registriert seit:
    5 Dez. 2005
    Beiträge:
    1,837
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Beruf:
    vorhanden
    Ort:
    Ruhrgebiet
    Ich meine gelesen zu haben das die meisten Hotelketten oder auch private Haushalte mittlerweile mit ondemand Buchungssystemen ausgestattet sind, ich würde die ANfrage selber so stellen, was man dann mit Asterisk anfängt ist ja was anderes.

    Ich denke das die meisten Hotel-Empfangstheken mit einem Anruf eines Systems nichts machen werden - schließlich sind die Damen am Schalter (so hatte ich es verstanden) ja für die Buchung verantwortlich - aber auch zuständig. Aber wie gesagt, wenn das der Auftrag ist, dann ist er es.

    Ich denke das ein "Prototyp" für eine Auftragsarbeit eine heikle Sache ist - vorallem wenn sich der Erfüllende IMHO auf Neuland bewegt.
    Wenn man einen funktionierenden Asterisken hat, kann man ihn mit Zusatzarbeit gerne versorgen - es ist eine Frage der Programmierung, klar.

    Ich verstehe es hier so - ein Kunde muss solange auf Interaktion warten bis eine Buchung generiert wurde (also mit "x" angenommen wurde) , was passiert wenn Asterisk sich auf eine erdenkbare Softwareweise aufhängt, resettet oder irgendwas. Wenn ich es richtig verstanden habe wird dann ein Endkunde (3rd Party) auf etwas warten und im besten Falle wird einfach nichts passieren.

    Gut - machen wir es anders - hier ist der ungeprüfte (!) Code Schnipsel für das was Du willst :

    Erstelle das Verzeichnis (/var/spool/asterisk/entwurf/)
    Erstelle ein Shellskript Deiner Wahl (vorzugsweise in /var/lib/asterisk/agi-bin/anruf-skript.sh)
    Code:
    #!/bin/sh
    # Ich rufe x y z an...
    
    # Syntax : anruf-skript.sh <RUFNUMMER> 
    
    EMAIL=verantwortlicher@domain.tld
    
    LOGFILE="/var/log/asterisk/anruf.log"
    
                            ZEILE1="Channel: SIP/$1"        # 1 enthält die SIP Rufnummer
                            ZEILE6="Extension: anruf"
    
                            ZEILE2="MaxRetries: 10"                  # Wie oft anrufen
                            ZEILE3="RetryTime: 120"                  # Wartezeit zwischen..
                            ZEILE4="WaitTime: 20"                   # Wartezeit bis zur Abnahme des Apparates
                            ZEILE5="Context: anruf"          # SPrungpunkt
                            ZEILE7="Priority: 1"                    # Prioritaet
                            ZEILE8="CallerID: Jemand <0>"          # Wer ruft an
    
                            echo $ZEILE1 >>/var/spool/asterisk/entwurf/nachricht.1
                            echo $ZEILE2 >>/var/spool/asterisk/entwurf/nachricht.1
                            echo $ZEILE3 >>/var/spool/asterisk/entwurf/nachricht.1
                            echo $ZEILE4 >>/var/spool/asterisk/entwurf/nachricht.1
                            echo $ZEILE5 >>/var/spool/asterisk/entwurf/nachricht.1
                            echo $ZEILE6 >>/var/spool/asterisk/entwurf/nachricht.1
                            echo $ZEILE7 >>/var/spool/asterisk/entwurf/nachricht.1
                            echo $ZEILE8 >>/var/spool/asterisk/entwurf/nachricht.1
                            mv /var/spool/asterisk/entwurf/nachricht.1 /var/spool/asterisk/outgoing/nachricht.1
    
    exit 0
    
    Tipp - Beachte das es möglich ist das mehrere Anrufe gleichzeitig ausrollen sollen, am besten den Timestamp als Variable und Dateinamen nutzen

    Füge der extensions.conf folgendes ein und gehe Zeile für Zeile durch :

    - AMD verbaut
    - Versuche bei erreichen des t imeout und i nvalid die bei überschreiten zum hangup führen (schleifenschutz)

    Zu Prüfen - Groblösung!

    Code:
    [anruf]
    
    exten => anruf,1,AMD      
    exten => anruf,n,GotoIf($[${AMDSTATUS}=HUMAN]?humn:mach)
    
    exten => anruf,n(humn),Set(NUMINVALID=0)
    exten => anruf,n(humn),Set(NUMTIMEOUTS=0)
    exten => anruf,n(humn),Background(/pfad/zur/datei-ohne-endung/welche/uns/fragt/was/auch/immer)
    exten => anruf,n(humn),Set(TIMEOUT(digit)=5)
    exten => anruf,n(humn),Set(TIMEOUT(response)=10)
    exten => anruf,n(humn),WaitExten(4)
    
    exten => t,1,Set(NUMTIMEOUTS=$[${NUMTIMEOUTS}+1]})
    exten => t,2,Gotoif($["${NUMTIMEOUTS}" < "3"]?humn,3)
    exten => t,3,Background(vm-goodbye)
    exten => t,4,Hangup()
    
    exten => i,1,Set(NUMINVALID=$[${NUMINVALID}+1]})
    exten => i,2,Gotoif($["${NUMINVALID}" < "4"]?:10)
    exten => i,3,Background(invalid)
    exten => i,4,Goto(humn,3)
    exten => i,10,Playback(vm-goodbye)
    exten => i,11,Hangup()
    
    exten _X!,1,NoOp(Aktion die beim drücken 0-9 eintritt)
    exten _X!,2,Hangup()
    
    ; Wir haben einen AB erreicht
    exten => anruf,n(mach),Hangup()
    
    

    Bitte sehr!
    Wir haben 23:46 und das da ist eine zusammengeschnipselte Schnelllösung!
    Bei Aufruf des Shellskripts mit der folgenden Nummer hast Du das was Du wolltest...

    Ich habe nur das Gefühl das "das" nicht genutzt werden kann, da sicherlich auch der Rest des KnowHow fehlt...

    Lg Stefan
     
  16. rentier-s

    rentier-s Guest

    Das sehe ich etwas anders. Automatisch generierte Anrufe sicher und sauber zu verwalten ist bei Asterisk eine Sache für sich, es geht hier immerhin um zahlende Kunden. Als erstes gilt es schon mal, die Kollision von Anrufen zu vermeiden, also zB. das nächste Call-File erst erzeugen wenn das erste sicher abgearbeitet ist. Dann muss man unterscheiden, was mit dem Call genau passiert ist, AMD ist da nur ein Schritt, ...

    Jack, Du erwartest hier hoffentlich keine kostenlose Fertiglösung, die Du nachher teuer weiterverkaufst, sondern beschäftigst Dich bereits intensiv mit den Grundlagen von Asterisk und brauchst hier nur den ein oder anderen konkreten Ratschlag, oder? ;-)
     
  17. HobbyStern

    HobbyStern Aktives Mitglied

    Registriert seit:
    5 Dez. 2005
    Beiträge:
    1,837
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Beruf:
    vorhanden
    Ort:
    Ruhrgebiet
    Ich gebe Dir Recht und kann meine Bedenken aus den vorherigen Posts nur unterstreichen - es handelt sich hier um eine Auftragsarbeit - wie "erreichbar" muss sie funktionieren?

    Danke Svenja, Du hast mein Bauchweh sehr kooperativ formuliert...!

    Grüsse, Stefan
     
  18. bananajack

    bananajack Neuer User

    Registriert seit:
    20 März 2012
    Beiträge:
    8
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo,

    ersteinmal vielen Dank, dass Ihr euch mit dem Problem sehr kritisch auseinandersetzt. Es ging mir in diesem ersten Thread erstmal darum auszuloten, ob das Ganze mit Asterisk ueberhaupt loesbar ist und es auch Sinn macht oder ob eine Bezahlloesung bzw. ein anderes Open Source System (z.B Yate oder Gemeinschaft) fuer die Sache besser geeignet sind. Asterisk ist ja nicht grade dafuer bekannt resourcenschonend zu sein, wie viele Outbound Anrufe kann ein einzellner Asterisk Server den Parallel taetigen?

    Das Projekt betreibe ich quasi "on-the-side" und es gibt keine zahlenden Customer sondern es ist bisher reine Spielerei. Sollte es einmal soweit kommen, werde ich das noetige Kapital einwerben muessen und dann ein fehlerfreies System bauen lassen. Es steht also ausser meiner Freizeit bisher nichts auf dem Spiel.

    Gruesse
     
  19. HobbyStern

    HobbyStern Aktives Mitglied

    Registriert seit:
    5 Dez. 2005
    Beiträge:
    1,837
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Beruf:
    vorhanden
    Ort:
    Ruhrgebiet
    Hallo Jack,

    so hatte ich es auch im Gefühl...
    Ein Tipp vorweg - mach Dich bitte ein wenig mit den Grundlagen von Asterisk (dem *) vertraut, dann fällt es hier auch leichter darüber zu diskutieren - (D)eine Signatur hilft da gewaltig um einzuschätzen was Du bisher so machst oder wovon man ausgehen kann.

    Fangen wir noch mal von ganz unten an ;-)

    Kann ich nicht bestätigen. Ich meine vor Jahren mal von einem Pentium 4 gelesen zu haben der 200 parallele Anrufe im Rahmen eines Stresstests gemacht hat, aktueller sind Stresstests usw usf. Aber für 10 Anrufe gleichzeitig oder einen Neuen Boom beim "HotelAnrufen" reicht Asterisk sicher aus.

    Meine letzte Ausführung
    war auch ganz klar auf die Frage ausgerichtet --> was auch immer der Auftrag oder das Hobby da vor hat, ist es nicht ohne Telefonsoftwaregedönse besser dran? Oder ganz einfach - wäre es nicht praktischer eine Schnittstelle für ein HotelBuchungssystem zu nutzen anstatt die armen Damen am Empfang zu nerven?

    Siehe hier

    Wenn das Telefon klingelt, Sie abheben und Ihnen wieder jemand dieses oder jenes Produkt schmackhaft zu machen versucht, dann könnte es durchaus sein, dass Sie das als störend empfinden. Sie haben dann natürlich die Möglichkeit, dem Anrufer klipp und klar zu sagen, dass Sie keine weiteren Anrufe wünschen, und das Gespräch zu beenden. Bei Automatenstimmen, die Ihnen hervorragende Produkte verkünden, können Sie die Regeln der Höflichkeit auch außer Acht lassen und direkt auflegen. Falls das nicht hilft und bald darauf der nächste Anruf folgt, sollten Sie weitergehende Schritte einleiten.
    Mehr zum Thema unter http://www.gruenderlexikon.de
     
  20. bananajack

    bananajack Neuer User

    Registriert seit:
    20 März 2012
    Beiträge:
    8
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Das sollte fuer das Erste in der Tat reichen!

    Zum zweiten Teil: Es wird KEIN Telefonmarketing oder aehnliches. Es gibt in Deutschland gar nicht so wenige sehr kleine inhabergefuehrte Pensionen, die zum grossen Teil noch nicht mal ueber einen Computer verfuegen, geschweige denn an irgendeine Art von Buchungssystem angeschlossen sind. Da herrscht eher die Telefon, Stift und Papier Mentalitaet. Die Idee ist es, den Telefonbuchungsprozess zu automatisieren und damit die Luecke zwischen Bedarf im Internet und unzureichender Technisierung zu schliessen. Die Aufnahme der Pension erfolgt nur mit Zustimmung des Inhabers.
    Funktioniert natuerlich nur im kleinen Stil und auf lokaler Ebene, desshalb darf es ja auch nicht so viel kosten, sonst wird es ein Zuschussgeschaeft :)