SIP Accound dynamisch disabeln?

yves030

Neuer User
Mitglied seit
18 Mrz 2007
Beiträge
8
Punkte für Reaktionen
0
Punkte
1
Hallo Profis,

in einer meiner Anwendungen melden sich Telefonisten über ein Webportal an und geben Ihre Extension an. Eingehende Anrufe werden dann an Sie weitergeleitet. Das ist bis auf das Pünktchen "nur wenn angemeldet" kein Problem... aber die Anmeldung erfolgt halt nur an meinem Portal, während sich das Telefon selber an der Asterisk (1.4) registriert und anmeldet, also unabhängig vom Telefonisten. Aus dem Portal heraus habe ich Zugriff via CLI auf den Asteriskserver.
Wie kann ich nun (ohne "Programmierung" im Dialplan über Variablen o.ä.) ein SIP-Account disabeln und wieder enablen, um zu verhindern, das Anrufe an einer bestimmten Extension ankommen bzw. dass von dort nach Abmeldung keine Anrufe mehr getätigt werden können? Gibt es dafür z.B. einen Befehl in der CLI, der sowas bewerkstelligen könnte, sowas wie "SIP Enable Peer 123" z.B.?

danke für jeden Hinweis,
Y030


p.s.
da sich das Telefon ja periodisch immer wieder am Asteriskserver anmeldet, muss das natürlich quasi "übergeordnet" funktionieren... wenn ich direkt in die RegistrierungsDB schreibe, würde das wohl nur bis zum nächsten reRegister funktionieren...
 
Zuletzt bearbeitet:
Was spricht dagegen das im Dialplan zu lösen? Ich würde ein kleines AGI Script schreiben, das den Status aus der Datenbank deines Portals liest. Sollte nicht so kompliziert sein.
Wenn du dabei Hilfe brauchst, kann man dir hier sicher helfen.
 
hi,

danke für deine antwort, ich fürchte ja fast, dass es nicht anders zu realisieren ist...
dagegen spricht im prinzip nur das ich ein teil der applikationslogik in die asterisk verlagere. das machts u.u. unübersichtlich, mit all den häßlichen folgeerscheinungen.. außerdem muß die asterisk auf meine db zugreifen etc...

grüße,
y030
 
Deine Sorgen erschliessen sich mir nicht so ganz: Irgendwer muss irgendwie auf irgendwen zugreifen, es sei denn Du möchtest tatsächlich immer for der CLI sitzen und die notwendigen Einstellungen jedesmal manuell eintippen.

Wenn Du nicht möchtest dass Asterisk auf das Portal zugreift, dann lass' doch das Portal auf den Asterisk bzw. dessen Db (oder API) zugreifen.
 
hi,

ja genau dieser weg (applikation greift auf asterisk zu, nicht umgekehrt) ist ja erwünscht und eine solche möglichkeit gesucht...
kennst du ein cli-kommando oder sonst eine asterisk spezifische möglichkeit, eine extension zu sperren, ohne über den dialplan zu gehen?
nur damit du mich nicht falsch verstehst, cli-kommandos müssen ja nicht von einer person via konsole eingetippt werden... das macht natürlich die applikation!

grüße
y030
 
Das CLI ist eigentlich nur für manuelle Eingaben gedacht; es ist keine wirklich gute Idee dies für Zwecke der Automatisierung heranzuziehen, auch wenn es grundsätzlich geht. Stattdessen bietet sich das Asterisk Management Interface (AMI) inkl. seiner neuern Varianten (http, ajam) an, welches im Prinzip eine Telnetverbindung zur Verfügung stellt.

Per Dialplan mit einer klitzekleinen Variable inkl. Abfrage und der eingebauten AstDB (Berkley db1) läßt sich die Sache wirklich einfachst regeln. Was den Dialplan angeht so benötigt dies gerade einmal zwei Zeilen.

Zu Deiner Frage: Nein, es gibt da keinen anderen Weg der für Dich praktikabel wäre.
 
Kostenlos!

Neueste Beiträge

Statistik des Forums

Themen
248,887
Beiträge
2,303,984
Mitglieder
378,566
Neuestes Mitglied
draco777