Asterisk Remote Manager für KDE (proof of concept)

Phloogzoyk

Neuer User
Mitglied seit
13 Okt 2005
Beiträge
123
Punkte für Reaktionen
0
Punkte
0
Hi!


Ich hab mich mal daran gemacht, eine GUI für die *-Fernsteuerung zu schreiben. Und zwar nicht für die GUI-gestützte Konfiguration (davon gibts ja schon so'n paar :) ) sondern für das Manager Interface.

Was geht bereits?

- Am * anmelden, sofern die Manager-API aktiviert wurde (manager.conf)
- Events werden geloggt (bis dato einfach in das Programm-Hauptfenster) - sehr praktisch zum Debuggen vom Dialplan usw
- Kommt ein Anruf rein, popt ein Infofenster auf, das die CallerID und Nr. des Anrufers zeigt
- Nimmt man den Anruf an, wechselt dieses Popup in eine Ansicht, die die laufende Gesprächszeit anzeigt.
- Per Menu kann man ein "Dial..." Fenster öffnen, in das man eine Nummer eingibt, die das IP-Phone dann wählt (Hierzu wird in der Konfig des Tools die SIP-ID des eigenen Phones eingegeben)
- Um globales Click-2-dial bereitzustellen, gibt es ein Tastenkürzel, das solange die App läuft, jederzeit funktioniert - auch wenn die App keinen Fokus hat. Wird diese Tastenkombi gedrückt, wird der aktuell markierte Text automatisch in das "Dial..." Fenster gepastet (ohne dass man noch Copy machen muss). Tastenkombi + Enter wählt also die Nr direkt, oder Tastenkombi + Nummer korrigieren geht auch.

Was ist noch geplant?

- Es werden noch längst nicht alle Asterisk Manager API Events verarbeitet, die allermeisten werden nur stumpf geloggt.
- Im Popup-Fenster bei einem Anruf ist ein bis jetzt noch nicht funktionierender "Deny"-Button zum Abweisen des Anrufs, bzw. während des Gesprächs ein "Hang up"-Button; beides funktioniert noch nicht.
- Eine "Show SIP peers" Funktion ist geplant, die alle am * angemeldeten Teilnehmer aufführt mit Statusanzeige (frei, im Gespräch, ...) und per Klick anrufbar macht. Dies klappt noch nicht so ganz, da das entsprechende Asterisk Manager API Event nur mit chan_sip2 funzt, ich aber nur chan_sip habe - evtl. zu alte * Version? (1.0.7...)
- Und und und ;)

Hier gibt es ein paar Screenshots: http://www.privatepanic.de/karma

Comments und Anregungen erwünscht! Auch, ob so ein Tool überhaupt gewünscht / genutzt würde! :)


Gruß
 
Gute Idee :D

Anregung: Anruferidentifizierung durch Datenbankabfrage (vorzugsweise LDAP oder MySQL)
 
Hatten wir auch mal für Windows als "Blubberblase" implementiert. Leider ist das ganze Projekt an der Masse gescheitert. 20 gleichzeitig gestartete Programme liefen noch ganz gut, da drüber hat es die Manager Schnittstelle trotz vorgeschaltetem Proxy zerlegt. Ist die Manager Schnittstelle bei Asterisk 1.2 eigentlich etwas stabiler geworden?

Interessant wäre noch eine Anrufübernahme von anderen Teilnehmern...
 
In irgendeiner der grundlegenden Asterisk-Dokumentationen wird explizit darauf hingewiesen, daß die Manager-Schnittstelle nur für EINE Verbindung vorgesehen ist. Mein Asterisk ist auch schonmal bei 3 gleichzeitigen Connections über das Manager-Interface einfach kommentarlos abgestürzt.
 
Wäre es möglich diese pre-alpha mal zu bekommen?
 
betateilchen schrieb:
In irgendeiner der grundlegenden Asterisk-Dokumentationen wird explizit darauf hingewiesen, daß die Manager-Schnittstelle nur für EINE Verbindung vorgesehen ist

Ja, das ist mir schon klar. Dafür gibt es ja spezielle Proxys. Und die haben auch nur eine Verbindung zur Manager Schnittstelle und können mehrere Verbindungen zu den Usern haben. Ich hatte auch schon teilweise 30 und mehr User am laufen, dann stürzt die Schnittstelle aber nach 1-3 Tagen ab, scheinbar läuft da irgendein Speicher voll...
 
Kannst Du mir zu der Proxy-Geschichte mal näheres schreiben ? Da meine *-Server alle 24 Stunden neu gebootet werden, sollte das Problem dann ja nicht auftreten.
 
Danke - schau ich mir mal in Ruhe an.
 
betateilchen schrieb:
Gute Idee :D

Anregung: Anruferidentifizierung durch Datenbankabfrage (vorzugsweise LDAP oder MySQL)

Die Möglichkeit, Einträge aus der AstDB zu nutzn ware auch nicht schlecht. Genau so wie das bearbeiten von AstDB-Einträgen (neu/suchen/bearbeiten/löschen), oder das Importieren von Daten in diese.
 
ogir schrieb:
Wäre es möglich diese pre-alpha mal zu bekommen?

Ich lad die sourcen heute Abend mal hoch. Ist allerdings noch recht dreckig (Hardcodete IP vom Server usw usf) ;)


Und es ist noch viel Fleißarbeit zu erledigen (Alle möglichen Events noch in Klassen kapseln, da hab ich bisher nur die wichtigsten, oder die Anwendung schonmal auf Deutsch übersetzen...).

Aber zum Angucken reichts evtl schon. Daher: Heute Abend! (Sitz im Mom. grade im Hörsaal *g*)


betateilchen schrieb:
Gute Idee :D

Anregung: Anruferidentifizierung durch Datenbankabfrage (vorzugsweise LDAP oder MySQL)

Ist notiert!


Hupe schrieb:
Die Möglichkeit, Einträge aus der AstDB zu nutzn ware auch nicht schlecht. Genau so wie das bearbeiten von AstDB-Einträgen (neu/suchen/bearbeiten/löschen), oder das Importieren von Daten in diese.

Auch ne gute Idee, ist auch notiert. :)
 
Ok hier wie versprochen der aktuelle Stand mit den o.g. Einschränkungen!

Das Ganze sollte mit dem bekannten Trias

Code:
./configure --prefix=/home/meinusername/karma
make
make install

installierbar sein. Ansonsten bitte kurzes Feedback!

Achtung: Aufgrund der dreckigen Programmierung bitte vor dem ersten Start das File ~/.kde/share/config/karmarc anlegen und folgendes reintippern:

Code:
[General]
UserName=(dein Name)
UserPhone=(die extension des Phones, zB. SIP/1234)

[Server]
Host=(die IP des * halt)
Username=(der Username für den *-Manager-Zugang

Wenn die Manager-API des * noch nicht aktiviert ist, weiß ich nicht genau was passiert - sagt's mir! ;) Ist wie gesagt alles noch sehr sehr alpha, ich gebe keinerlei Garantie darauf dass es funzt und nix kaputtmacht etc. etc. :)


Wenn jemand sich übrigens berufen fühlt, an dem Teil mitzuhelfen, dann möge er sich melden ;)
 

Anhänge

  • karma-0.1.tar.gz
    669.4 KB · Aufrufe: 16
Warum kann ich das Teil nicht downloaden?! :(

wenn ichs versuch kommt immer:

Du bist nicht angemeldet oder du hast keine Rechte diese Seite zu betreten. Dies könnte einer der Gründe sein:
Du bist nicht angemeldet. Bitte fülle die Felder unten auf der Seite aus und versuche es erneut.
Du hast keine ausreichenden Rechte, um auf diese Seite zuzugreifen. Dies kann der Fall sein, wenn du Beiträge eines anderen Benutzers ändern möchtest oder administrative bzw. andere nicht erlaubte Funktionen aufrufst.
Du versuchst einen Beitrag zu verfassen und hast keine Schreibrechte oder wartest noch auf die Aktivierung deiner Registrierung.


Könntest du es mir an [email protected] schicken?
 
ich hab keinerlei Probleme mit dem Download ... :gruebel:
 
Kleine Korrektur:

Beim Config-Eintrag "UserPhone" respektive Eingabefeld "Your phone's extension" muss nicht die extension des Phones, sondern die SIP-ID (das, was in der sip.conf in den eckigen Klammern steht) eingetragen werden.

Beispiel:

UserPhone=SIP/myphone
 
Moin moin!

Also ich hab mir heute Nacht das Ding mal angeschaut... zunächst mal Danke für die Mail :)

Folgendes: Ich versuch damit nicht mein SIP überwachen zu lassen, sondern mein ZAP. Geht das?

Ansonsten echt nice für ne pre-pre-Alpha
 
Ausprobieren kann ich das selber nicht, hab nur nen SIP Phone - aber theoretisch müsste das gehen. Probier's halt mal mit ZAP/myphone

Sonst wenn das nicht geht guck Dir bitte mal an, welche Events erzeugt werden, wenn Dein Phone klingelt!
 
Ok, hab den Fehler meinerseits gefunden es geht natürlich nur über zap/group/myphone

Dabei kommt das nächste Problem: kann ich irgendwo variablen setzen die den Kontext festlegen über den das kommt? noch besser wäre natürlich wenn ich auch ne Bestimmte Nummer setzen könnte von der der anruf für den Dialplan ausgeht.

Besispiel: mein Dialplan sieht so aus:
Code:
[outgoing]
include => 11
include => 12
.
.
.
[11]
exten => _X./11,1,Setcidnum(12345)
exten => _X./11,2,Dial(Zap/g1/11)
[12]
exten => _X./12,1,Setcidnum(67890)
exten => _X./12,2,Dial(Zap/g1/12)
.
.
.
usw.

Karma sucht jetzt natürlich nach context [default]. den gibts bei mir natürlich nicht. Daher wäre es praktisch den einstellen zu können.
Wenn ich jetzt den inhalt von context [11] kopiere, und in default verschiebe, dann bringt mich das jedoch auch nicht weiter, da Karma keine rufnummer mitsendet (in diesem Fall 11) und die Bedingung nicht erfüllt wird.
 
Sowohl den Context als auch die CallerID kann man cASTMWrapper::dial() mitgeben, das ist nur noch nicht in die GUI geflossen (steht halt noch hardcodet drin). Ich kümmer mich demnächst drum (Hab derzeit noch für paar Klausuren zu lernen ;) )
 
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.