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

[Gelöst] Verhindern / Erlauben von Externen Gespraechen

Dieses Thema im Forum "Asterisk Allgemein" wurde erstellt von pbillx, 13 Sep. 2008.

  1. pbillx

    pbillx Neuer User

    Registriert seit:
    13 Sep. 2008
    Beiträge:
    21
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo,
    ich hab ein sehr spezielles Anliegen. Fuer eine von mir entwickelte Hotelsoftware brauche ich Infos, wie ich eine Extension fuer externe Calls abschalten kann, d.h. ich kann weiterhin die anderen die anderen Extensions innerhalb der Asterisk Umgebung anrufen, nur eben keine Calls zu ausserhalb liegenden Rufnummern. Hintergrund: Wenn ein Kunde im Hotel auscheckt, soll das Phone in diesem Raum gesperrt werden fuer ausgehende Gespraeche, ist ein neue Kunde eingecheckt, soll es wieder freigeschaltet werden. Da mein System eine Windows Software ist, kann ich nur ueber ssh oder mysql auf den linux server zugreifen. Also muss ich irgendwo eine Loesung finden, den dialplan zu aendern fuer diese Extension und /oder einen Befehl uber ssh an die Asterisk uebergeben. Hat jemand eine Idee, wie man das machen kann?

    Waere schon ausreichend, wenn ich ueberhaupt weiss, wie man eine extension fuer ausgehende Gespraeche sperren kann.

    LG

    Fred Montero
     
  2. pbillx

    pbillx Neuer User

    Registriert seit:
    13 Sep. 2008
    Beiträge:
    21
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hat sich erledigt, hab es hinbekommen.

    :p
     
  3. cheGGo

    cheGGo Neuer User

    Registriert seit:
    11 Juli 2007
    Beiträge:
    44
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    schoen waere es dennoch, die anderen an deiner loesung teilhaben zu lassen...
     
  4. pbillx

    pbillx Neuer User

    Registriert seit:
    13 Sep. 2008
    Beiträge:
    21
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    how to

    ok, kein problem:
    eintragen in der extension.conf

    exten => _X.,1,GotoIf($[${DB(blacklist/${CALLERID(num)})} = 1]?dial-out,${EXTEN},1)
    exten => _X.,n,Hangup()

    [dial-out]
    exten => _X.,1,Answer()
    exten => _X.,n,Dial(SIP/27${EXTEN:1}@test)
    exten => _X.,n,Wait(2)
    exten => _X.,n,Hangup()


    ueber ssh in der asterisk cli:

    database put blacklist <hier extension nr.> 0 oder
    database put blacklist <hier extension nr.> 1

    die Extension an oder ausschalten fuer externe calls.
     
  5. kombjuder

    kombjuder IPPF-Promi

    Registriert seit:
    2 Nov. 2004
    Beiträge:
    3,086
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    Weil am Rhein
    Das kannst du so nicht machen!

    Da fehlt eine klicki bunti Bedienoberfläche.
     
  6. pbillx

    pbillx Neuer User

    Registriert seit:
    13 Sep. 2008
    Beiträge:
    21
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    ????

    :)

    Wieso?
    Funktioniert prima. Das laeuft bei mir in VB im Hintergrund ueber SSH. Das ist nix mit bunt und schoen :) ; Das ist halt nur funktionell.

    Fuer alle, die gerne wissen moechten, was ich da mache:

    www.pbillx.org
     
  7. kombjuder

    kombjuder IPPF-Promi

    Registriert seit:
    2 Nov. 2004
    Beiträge:
    3,086
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    Weil am Rhein
    Das ist ja das schlimme.
     
  8. pbillx

    pbillx Neuer User

    Registriert seit:
    13 Sep. 2008
    Beiträge:
    21
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Sowas neumodisches wie php kann ich nicht.
    Dafuer bin ich zu :alt: und zu :doof:

    Schoenes WE

    ;)
     
  9. Burmann

    Burmann Mitglied

    Registriert seit:
    16 Feb. 2005
    Beiträge:
    372
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Kein Problem: Einfach für jede Nebenstelle zwei putty-Sessions abspeichern (eine für's Einschalten und eine für's Ausschalten) mit dem Ein-/Ausschaltbefehl unter 'Connection->SSH->Remote command' eingetragen und das Login über SSH-Key. Dann je einen Link anlegen der putty mit '-load "Name-Der-Putty-Session"' aufruft. Dann noch schöne Icon's aussuchen - fertig :dance:
     
  10. pbillx

    pbillx Neuer User

    Registriert seit:
    13 Sep. 2008
    Beiträge:
    21
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Schoene Loesung, aber nicht praktikabel fuer mich. Ich hab das ueber VB geloest mit einer integrierten SSH toolbox. Dort schreib ich dann die Befehle direkt uber Macros in die CLI

    :)
     
  11. Burmann

    Burmann Mitglied

    Registriert seit:
    16 Feb. 2005
    Beiträge:
    372
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ich glaube weder kombjuder noch ich meinten das wirklich ernst. :D
     
  12. pbillx

    pbillx Neuer User

    Registriert seit:
    13 Sep. 2008
    Beiträge:
    21
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ich auch nicht wirklich ...

    Aber jetzt hab ich wirklich mal ne Knobelaufgabe fuer euch.

    Also:
    Meine Software, die ich da entwickelt habe, ist ein postpaid system. D.h. ich logge einen Kunden ein, und wenn er ausgeloggt wird, erzeuge ich aus der Call cdr eine Rechnung fuer die gefuehrten Gespraeche.
    Nun hab ich ein klitzekleines Problemchen:
    Ich hab hier ein Projekt, da will der boese Kunde ein Prepaid System haben. Und nu wirds schwierig. Das heisst, ich muss die gewaehlte Nummer vor der Ausfuehrung in der Asterisk irgendwie abfangen, und dann der Asterisk die maximale Gespraechsdauer mitteilen oder das Gespraech ablehnen, falls das Guthaben nicht mehr ausreicht. Im Prinzip muss ich also so etwas wie ein Callcontrol bauen. Im Prinzip ist das nicht schwierig in VB, sowas kann man mit Timern kontrollieren, mir fehlt nur leider der Asterisk Part.

    Hat jemand eine Idee, wie ich sowas realisieren kann? Oder was fuer Module ich fuer sowas brauche und wo ich Infos dazu finde? Allgemeine Infos reichen mir schon, damit ich ueberhaupt auf die richtige Faehrte komme.

    Gruesse

    Fred
     
  13. Burmann

    Burmann Mitglied

    Registriert seit:
    16 Feb. 2005
    Beiträge:
    372
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
  14. pbillx

    pbillx Neuer User

    Registriert seit:
    13 Sep. 2008
    Beiträge:
    21
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    :groesste:

    Fast gut, aber wie krieg ich die gewaehlte nummer raus?
    Also: Kunde waehlt, ->dann brauch ich die rufnummer, die er gewaehlt hat, ermittel den Preis pro Minute ->und dann geb ich den dial befehl raus mit limitierter Zeit raus.
    :)
     
  15. Burmann

    Burmann Mitglied

    Registriert seit:
    16 Feb. 2005
    Beiträge:
    372
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Genau, fast gut denn es gibt ja auch shared-cost Verbindungen die nur einamlige Gebühr kostet und nicht pro Minute.
    Eine Möglichkeit wäre im Dialplan alle Preise zu hinterlegen. Man könnte in einer Variablen den Namen der Zone, den Preis pro Takt in 1/10 Cent (daurch vermeidet man Kommarechnungen), und die Taktlänge in Sekunden mit "!"getrennt setzen (s.u.). Für die Berechnung kann man mit "${CUT(Area|!|1)}" / "${CUT(Area|!|2)}" / "${CUT(Area|!|3)}" die Variable aufteilen. Somit hat man nur eine Zeile je zone. Natürlich ist das verdammt viel tipparbeit wenn man Weltweit alle Zonen aufschreibt...

    Code:
    ;Setzt Variable Area=Name!Preis in 0.1 Cent!Taktung
    exten => _001.,1,Set(Area=USA!40!1)
    exten => _001242XXX.,1,Set(Area=BS!80!1)      ; Bahamas
    exten => _001246XXX.,1,Set(Area=BDS!196!1)   ; Barbados
    exten => _001250XXX.,1,Set(Area=CDN!17!1)    ; Canada
    ...
    exten => _00212.,1,Set(Area=MA_stationary!161!1)
    exten => _00212[67].,1,Set(Area=MA_cellular!422!30)
    ...
    exten => _0049176.,1,Set(Area=D_O2!120!1)
    exten => _0049157.,1,Set(Area=D_E-Plus!120!1)
    exten => _00491801.,1,Set(Area=D_shared_cost!58!60)
    exten => _00491802.,1,Set(Area=D_shared_cost!60!0)
    ...
    exten => _0049800.,1,Set(Area=D_Freecall!0!1)
     
  16. pbillx

    pbillx Neuer User

    Registriert seit:
    13 Sep. 2008
    Beiträge:
    21
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Oha, da muss ich mir noch was anderes einfallen lassen, weil die Preistabellen eigentlich in meiner Soft drin habe. Dazu bin ich einfach zu faul:rolleyes:
    Wenn ich mir was ausgedacht habe, lass ich Dich wissen. Auf jeden Fall muss ich das bis naechsten Montag fertig haben. Wird ein bischen stressig, weil ich noch nicht mal damit angefangen hab. Aber gut, ich mach ja nix anderes ...

    Vielen Dank erstmal

    Gruesse

    Fred
    :done:
     
  17. pbillx

    pbillx Neuer User

    Registriert seit:
    13 Sep. 2008
    Beiträge:
    21
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    ... obwohl...

    Eigentlich gar nicht mal so schlimm. Hab ja die ganzen Preise schon in der mdb. Daraus koennte ich ja eine include .conf generieren lassen als txt datei (wofuer bin ich programmierer).
    Wie mein Papa schon immer sagte, man kann besser mit nem faulen als mit nem doofen arbeiten :kasper:
    Und die kopier ich dann einfach auf linux buechse und mach nen entry fuer das including der Datei in der extension.conf. Dann nen reload und done. Und schon simma da, wo wir hinwollen.

    Also, Idee war erstmal gut. Muss dann morgen mal nach den Haken suchen ...
    :groesste:

    :cool:
    Fred