Page Index Toggle Pages: 1 Send TopicPrint
Normal Topic C# COM Interface (Read 5449 times)
Jeremy
YaBB Newbies
*
Offline


Phoner is great!

Posts: 6
Joined: 23. Feb 2017
Gender: Male
C# COM Interface
23. Feb 2017 at 08:17
Print Post  
Hallo Herr Sommerfeldt,

zunächst mal vielen Dank für den hervorragenden Phoner Client und die viele Zeit, die Sie hiefür investieren.
Ich würde gerne aus C# auf den Phoner und wenn möglich auch PhonerLite über das COM Interface zugreifen.
Ich habe unter Downloads den C# Dialer gefunden, dieser lässt sich allerdings unter Windows 10 mit Visual Studio 2015 mit der Interop.Phoner.dll nicht mehr kompilieren. Bricht immer mit Fehlermeldungen ab.
Gibt es eine Dokumentation hierzu oder sonstige Tipps für mich?

Vielen Dank schon mal.
Jeremy
  
Back to top
 
IP Logged
 
Phoner Admin
YaBB Administrator
*****
Offline



Posts: 11406
Location: Germany
Joined: 12. Oct 2003
Gender: Male
Re: C# COM Interface
Reply #1 - 23. Feb 2017 at 09:37
Print Post  
Hast du denn die Typblibliothek von Phoner überhaupt registriert? Das kannst du jederzeit tun, wenn du
Code
Select All
Phoner.exe -i 

auf der Kommandozeile mit Admin-Rechten ausführst.

Für PhonerLite gibt es ebenfalls einen COM-Server, aber dazu gibt es keine Samples.
Ich selbst nutze kein C#. Man kann aber in den üblichen Entwicklungsumgebungen Typbibliotheken importieren und so Wrapper-Code generieren lassen.
  
Back to top
WWW  
IP Logged
 
Jeremy
YaBB Newbies
*
Offline


Phoner is great!

Posts: 6
Joined: 23. Feb 2017
Gender: Male
Re: C# COM Interface
Reply #2 - 24. Feb 2017 at 07:45
Print Post  
Vielen Dank, jetzt läuft das C# Beispiel Programm.
Das man die Typbibliothek erst noch registrieren muss wusste ich nicht.
Na dann werde ich mich mal ran machen und versuchen das in meinem Programm umzusetzen.
In welcher Sprache ist Phoner denn geschrieben, C++?
  
Back to top
 
IP Logged
 
Phoner Admin
YaBB Administrator
*****
Offline



Posts: 11406
Location: Germany
Joined: 12. Oct 2003
Gender: Male
Re: C# COM Interface
Reply #3 - 24. Feb 2017 at 08:10
Print Post  
Freut mich zu hören, dass es nun funktioniert.
Die GUI von PhonerLite und die ganze Soundkarten-Ansteuerung ist in Delphi geschrieben. Die VoIP-Codecs und SIP selbst sind in der "sipper.dll" implementiert. Diese DLL ist mit C/C++ geschrieben.
  
Back to top
WWW  
IP Logged
 
Jeremy
YaBB Newbies
*
Offline


Phoner is great!

Posts: 6
Joined: 23. Feb 2017
Gender: Male
Re: C# COM Interface
Reply #4 - 27. Feb 2017 at 12:04
Print Post  
Ich habe nun die PhonerLite COM Schnittstelle aus C# zum laufen bekommen. Leider funktioniert noch nicht alles wie ich mir das vorstelle.

Über SetDestinationNumber() Konnte ich eine Telefonnummer ins Zielrufnummer Textfeld schreiben. Um den Anruf zu starten habe ich der HookOff Methode die Zahl 0 übergeben, da ich noch keine CallID habe. Das funktioniert soweit auch.
Scheinbar bezeichnet die ID 0 z.B. bei HookOn den gerade aktiven Call. Ist das richtig?

Das OnRegisterState Event wird ausgelöst sobald sich PhonerLite irgendwo anmeldet.
Das OnCallState Event wurde bei mir jedoch bisher noch nicht ausgelöst. Wenn ich das richtig verstehe brauche ich dies ja aber um an die CallID ran zu  kommen. Wann genau sollte das OnCallState Event denn ausgelöst werden? Einen normalen Anruf durchführen hat bei mir nicht gereicht.
  
Back to top
 
IP Logged
 
Jeremy
YaBB Newbies
*
Offline


Phoner is great!

Posts: 6
Joined: 23. Feb 2017
Gender: Male
Re: C# COM Interface
Reply #5 - 27. Feb 2017 at 13:24
Print Post  
Ich habe gerade festgestellt, dass das OnCallState Event funktioniert, wenn ich nicht im nachhinein noch das OnRegisterEvent registriere.
Es funktioniert also immer nur das zuletzt registrierte Event, aber nicht beide gleichzeitig.
Warum verstehe ich zwar nicht, aber ich kann im Moment gut damit leben.

Dann wäre hauptsächlich noch offen, ob die ID 0 immer den zurzeit aktiven Call bezeichnet.

Vielen Dank für die Unterstützung.  Smiley
  
Back to top
 
IP Logged
 
Phoner Admin
YaBB Administrator
*****
Offline



Posts: 11406
Location: Germany
Joined: 12. Oct 2003
Gender: Male
Re: C# COM Interface
Reply #6 - 27. Feb 2017 at 14:19
Print Post  
Die ID 0 gibt es so nicht. Für das Auflegen funktioniert das zufällig, aber nicht für die anderen Get-Funktionen.
Für zukünftige Versionen könnte ich das aber durchaus so umsetzen.
  
Back to top
WWW  
IP Logged
 
Jeremy
YaBB Newbies
*
Offline


Phoner is great!

Posts: 6
Joined: 23. Feb 2017
Gender: Male
Re: C# COM Interface
Reply #7 - 29. Mar 2017 at 07:52
Print Post  
Es wäre bestimmt hilfreich, wenn die ID 0 immer den gerade aktiven Call bezeichnet.

Aktuell verwende ich allerdings sowieso nur die HookOn / HookOff Befehle.
Ich habe ein kleines Programm geschrieben, welches die Hook Funktion der Plathosys USB Handsets (www.horst-platz.de/plathosys/) mit dem PhonerLite Client verbindet. Somit kann die Rufannahme mit abheben des Hörers getätigt werden.

Es funktioniert soweit alles und das COM Interface wird wenn nötig auch automatisch aktiviert, jedoch nur wenn das Programm im Standard Dateipfad installiert wurde. Wenn nicht funktioniert das COM Interface nicht. Ich habe leider keine Möglichkeit gefunden das PhonerLite COM Interface mit beliebigen Pfad zur PhonerLite.exe zu verwenden. Es funktioniert immer nur der Pfad, welcher beim Kompilieren der Anwendung gerade gesetzt war.

Sollte jemand Interesse an dem C# Code als Beispiel für andere Projekte haben kann er mich gerne anschreiben.
  
Back to top
 
IP Logged
 
Page Index Toggle Pages: 1
Send TopicPrint