[Gelöst] Verhindern / Erlauben von Externen Gespraechen

pbillx

Neuer User
Mitglied seit
13 Sep 2008
Beiträge
21
Punkte für Reaktionen
0
Punkte
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
 
Hat sich erledigt, hab es hinbekommen.

:p
 
schoen waere es dennoch, die anderen an deiner loesung teilhaben zu lassen...
 
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.
 
????

:)

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
 
Sowas neumodisches wie php kann ich nicht.
Dafuer bin ich zu :alt: und zu :doof:

Schoenes WE

;)
 
Da fehlt eine klicki bunti Bedienoberfläche.
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:
 
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

:)
 
Ich glaube weder kombjuder noch ich meinten das wirklich ernst. :D
 
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
 
: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.
:)
 
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)
 
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:
 
... 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
 
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.