Page Index Toggle Pages: 1 Send TopicPrint
Normal Topic Dokumentation & Diskussion: AddOns für Phoner (Read 6469 times)
Suppenkasper
God Member
*****
Offline


Phoner-Support

Posts: 1536
Location: Aachen
Joined: 29. Mar 2005
Gender: Male
Dokumentation & Diskussion: AddOns für Phoner
02. May 2007 at 11:28
Print Post  

Phoner verfügt über eine COM-Schnitstelle, die nicht nur eine Fernsteuerung des Programms ermöglicht, sondern auch Methoden bereitstellt, die durch andere Programme im Workflow benutzt werden können. 

Solche Programme sind, relativ zu Phoner, als AddOns zu bezeichnen, die weitergehende Funktionen bieten, jedoch auf den Methoden der COM-Schnittstelle Phoners aufbauen.

Beispiele hierfür können auf der Download-Seite eingesehen werden. 

Ein äusserst nützliches AddOn für Phoner ist JB's Telefonbuchreverssuche, dass über die COM eng mit Phoner zusammenarbeitet, und auch die Programmeinstellungen Phoners (phoner.ini) berücksichtigt.

Phoner selber verfügt über die Funktionen eines eigenständig zu handhabenden Softphones für die Modi TAPI, CAPI und SIP, inklusive der Funktionen, die notwendig sind, um Phoner hinter einer Soft- oder Hardware-Telefonanlage, einem SIP-Registrator, einer Firewall und im VPN-Tunnel zu betreiben.

Nun ist es denkbar, dass die eine oder andere Funktion nicht durch Phoner unterstützt wird.

Hierbei sollte IMHO grundsätzlich gelten, dass Phoner auch nur diejenigen Funktionen unterstützen sollte, die ein Stand-Alone-Telefon zur Verfügung stellen würde.

Berücksichtigt man nur einmal die bereits zahlreich vorhandenen Einstellungsmöglichkeiten für den Anrufbeantworter (AB konfigurierbar für den gesamten Teilnehmeranschluss, für jede MSN konigurierbar sowie jeweils für jede eingehende übertragene Rufnummer konfigurierbar), so ist der Funktionsumfang eines "herkömmlichen" Telefons bereits jetzt weit übertroffen.

Es handelt sich jedoch um diejenigen Funktionen, die ein Telefon als Endgerät unter normalen Voraussetzungen unterstützen könnte.

Besonderheiten wie das COM-Interface oder Kommandozeilen-Optionen, sowie die Protokollierungs-, Steuerungs und Verwaltungsfunktionen für Gespächsverbindungen fallen zwar im direkten Vergleich nicht unter die Funkionen eines Endgerätes an einem Teilnehmeranschluss. Jedoch ist Phoner in Bezug auf diese letztgenannten besonderen Funktionen bereits ausgereift, so dass der überwiegende Teil der Benutzer bereits keine Funktion mehr vermissen dürfte.

Gleichzeitig sollte IMHO beachtet werden, dass Phoner keine Telefonanlage ist, und zum Beispiel keine Verwaltungsaufgaben einer Software-Telefonanlage wie z. B. Asterisk für Windows beherrschen muss. In dieser Hinsicht ist Phoner bereits mit denjenigen Funtkionen ausgestattet, und verfügt über diejenigen Standards, um hinter einer solchen Telefonanlage zuverlässig betrieben zu werden.

Ich möchte diesen Thread nutzen,

- um zum einen, ähnlich einer Wiki, im folgenden Beitrag nach und nach die COM-Schnittstelle Phoners zu dokumentieren,

- und zum anderen in Laufe der Diskussion Sinn und Unsinn, Vor- und Nachteile von Phoner-Erweiterungen oder Phoner AddOn's herauszuarbeiten.

Die COM-Dokumentation wird - einmal fertig gestellt - in die Phoner-Hilfe und in die FAQ übernommen.

Viele Grüße vom Kai
  
Back to top
IP Logged
 
Suppenkasper
God Member
*****
Offline


Phoner-Support

Posts: 1536
Location: Aachen
Joined: 29. Mar 2005
Gender: Male
Dokumentation der COM-Schnittstelle Phoners
Reply #1 - 02. May 2007 at 11:32
Print Post  
(Dieser Beitrag ist in Vorbereitung. Die Dokumentation der Methoden der COM ist fertig, wenn dieser Satz nicht mehr hier steht Wink ).
  
Back to top
IP Logged
 
Phoner Admin
YaBB Administrator
*****
Offline



Posts: 11389
Location: Germany
Joined: 12. Oct 2003
Gender: Male
Re: Dokumentation & Diskussion: AddOns für Phoner
Reply #2 - 03. May 2007 at 22:17
Print Post  
Als Grundlage könnte folgende Interface-Beschreibung schon mal dienen. Leider ist die nicht direkt als Dokumentation geeignet, aber man sieht alle Funktionen und Parameter:
Code
Select All
[
  uuid(98898140-96E2-11D3-A1D0-444553540000),
  version(1.0),
  helpstring("Phoner Bibliothek")

]
library Phoner
{

  importlib("stdole2.tlb");

  [
    uuid(98898143-96E2-11D3-A1D0-444553540000),
    version(1.0),
    helpstring("Ereignis-Schnittstelle für CPhoner-Objekt")
  ]
   dispinterface ICPhonerEvents
  {
    properties:
    methods:
    [
    id(0x00000005),
    helpstring("Statusänderung")
    ]
    HRESULT OnChangeState([in] long CallID );
    [
    id(0x000000C9),
    helpstring("Wave-Datei fertig abgespielt")
    ]
    HRESULT OnFilePlayed( void );
    [
    id(0x000000CA),
    helpstring("DTMF erkannt")
    ]
    HRESULT OnDTMF([in] long CallID, [in] unsigned char Digit );
  };

  [
    uuid(98898145-96E2-11D3-A1D0-444553540000),
    version(1.0),
    helpstring("CPhoner Objekt")
  ]
  coclass CPhoner
  {
    [default] interface ICPhoner;
    [default, source] dispinterface ICPhonerEvents;
  };

  [
    uuid(15645760-D2FE-11D3-A1D0-444553540000),
    version(1.0)
  ]
  typedef enum tagTCallState
  {
    Idle = 0,
    [
    helpstring("eingehender Ruf")
    ]
    Offering = 1,
    [
    helpstring("abgehender Ruf")
    ]
    Connecting = 2,
    [
    helpstring("verbunden")    ]
    Connected = 3,
    [
    helpstring("trennen")    ]
    Disconnecting = 4,
    [
    helpstring("getrennt")    ]
    Disconnected = 5,
    [
    helpstring("geparkt")    ]
    Parked = 6,
    [
    helpstring("gehalten")    ]
    Hold = 7,
    [
    helpstring("halten")    ]
    Holding = 8,
    [
    helpstring("enthalten")    ]
    Unholding = 9,
    [
    helpstring("in Konferenz")
    ]
    Conferenced = 10,
    [
    helpstring("es klingelt")    ]
    Alerting = 11
  } TCallState;

  [
    uuid(F58F8E4F-B93A-41FA-ABD4-968E2DA6C683),
    version(1.0)
  ]
  typedef enum tagTDirection
  {
    Incoming = 0,
    Outgoing = 1
  } TDirection;

  [
    uuid(98898141-96E2-11D3-A1D0-444553540000),
    version(1.0),
    helpstring("Dispatch-Schnittstelle für CPhoner-Objekt"),
    dual,
    oleautomation
  ]
   interface ICPhoner: IDispatch
  {
    [
    id(0x00000001),
    helpstring("Übergabe einer Rufnummer an Phoner")
    ]
    HRESULT _stdcall MakeCall([in] BSTR Number );
    [
    propget,
    id(0x00000002),
    helpstring("Anzahl der aktuellen Verbindungen")
    ]
    HRESULT _stdcall NumberOfCalls([out, retval] long * Value );
    [
    id(0x00000003),
    helpstring("Informationen zur Verbindung")
    ]
    HRESULT _stdcall GetCallInfo([in] long CallID, [out] TCallState * Status /*Warnung: Strukturname kann nicht überprüft werden: */, [out] TDirection * Direction /*Warnung: Strukturname kann nicht überprüft werden: */, [out] BSTR * CallerID, [out] BSTR * CalledID, [out, retval] long * Value );
    [
    id(0x00000004),
    helpstring("Beenden/Abweisen eines Rufes")
    ]
    HRESULT _stdcall DisconnectCall([in] long CallID );
    [
    id(0x00000005),
    helpstring("Senden einer SMS")
    ]
    HRESULT _stdcall SendSMS([in] BSTR Number, [in] BSTR Msg );
    [
    id(0x00000006),
    helpstring("Rufannahme eines eingehenden Rufes")
    ]
    HRESULT _stdcall AnswerCall([in] long CallID );
    [
    propget,
    id(0x00000008),
    helpstring("Anzeige des Fensters bei eingehenden Rufen")
    ]
    HRESULT _stdcall WindowEnabled([out, retval] VARIANT_BOOL * Value );
    [
    propput,
    id(0x00000008),
    helpstring("Anzeige des Fensters bei eingehenden Rufen")
    ]
    HRESULT _stdcall WindowEnabled([in] VARIANT_BOOL Value );
    [
    id(0x00000007),
    helpstring("Senden eines DTMFs")
    ]
    HRESULT _stdcall SendDTMF([in] long CallID, [in] BSTR DTMF );
    [
    propget,
    id(0x0000000A),
    helpstring("Grund, wieso der Ruf beendet wurde")
    ]
    HRESULT _stdcall DisconnectReason([in] long CallID, [out, retval] BSTR * Value );
    [
    id(0x0000000B),
    helpstring("Übergabe einer Rufnummer an Phoner unter Verwendung einer bestimmten MSN")
    ]
    HRESULT _stdcall MakeCallOver([in] BSTR Number, [in] BSTR MSN );
    [
    id(0x000000C9),
    helpstring("Senden einer Wave-Datei über eine bestehende Verbindung")
    ]
    HRESULT _stdcall SendWAVE([in] long CallID, [in] BSTR FileName );
    [
    id(0x000000CA)    ]
    HRESULT _stdcall GetState([in] long CallID, [out] VARIANT * StateString );
    [
    id(0x000000CB)    ]
    HRESULT _stdcall GetDirection([in] long CallID, [out] VARIANT * DirectionString );
    [
    id(0x000000CC)    ]
    HRESULT _stdcall GetCallerID([in] long CallID, [out] VARIANT * CallerID );
    [
    id(0x000000CD)    ]
    HRESULT _stdcall GetCalledID([in] long CallID, [out] VARIANT * CalledID );
    [
    id(0x000000CE),
    helpstring("Abfrage einer evtl. vorhandenen Aufzeichnung")
    ]
    HRESULT _stdcall GetRecordedWAVE([in] long CallID, [out] VARIANT * FileName );
    [
    id(0x000000CF),
    helpstring("Initiieren und Beenden einer Konferenz")
    ]
    HRESULT _stdcall Conference( void );
    [
    propget,     id(0x000000D0)
    ]
    HRESULT _stdcall AnsweringMachineEnabled([out, retval] VARIANT_BOOL * Value );
    [
    propput,     id(0x000000D0)
    ]
    HRESULT _stdcall AnsweringMachineEnabled([in] VARIANT_BOOL Value );
    [
    id(0x000000D1),
    helpstring("Senden einer SMS")
    ]
    HRESULT _stdcall SendSMSService([in] BSTR Number, [in] BSTR Msg, [in] long Service );
    [
    id(0x000000D2),
    helpstring("Senden eines TTS-Textes")
    ]
    HRESULT _stdcall SendTTS([in] long CallID, [in] BSTR Msg );
  };

}; 

  
Back to top
WWW  
IP Logged
 
AndreasO
YaBB Newbies
*
Offline


Phoner is great!

Posts: 9
Joined: 25. Apr 2020
Re: Dokumentation & Diskussion: AddOns für Phoner
Reply #3 - 28. Apr 2020 at 10:44
Print Post  
Hallo,
gibt es zur Dokumentation einen Zwischenstand?
Die Bibliothek lässt sich sogar in Access einbinden. Aber ohne das Wissen, wie man die Schnittstelle mit VBA ansprechen kann, ist alles weitere wertlos.
Grüße
Andreas
  
Back to top
 
IP Logged
 
Phoner Admin
YaBB Administrator
*****
Offline



Posts: 11389
Location: Germany
Joined: 12. Oct 2003
Gender: Male
Re: Dokumentation & Diskussion: AddOns für Phoner
Reply #4 - 28. Apr 2020 at 13:38
Print Post  
Es gibt keine Dokumentation. Es gibt lediglich Sample-Anwendungen dazu. Sorry.
  
Back to top
WWW  
IP Logged
 
Page Index Toggle Pages: 1
Send TopicPrint