SIP-Telefon
-
- Beiträge: 1187
- Registriert: Mi 13. Dez 2006, 10:58
- OS, Lazarus, FPC: Winux (L 1.2.xy FPC 2.6.z)
- CPU-Target: AMD A4-6400 APU
- Wohnort: Hamburg
SIP-Telefon
Hey Leutz, hat hier schon mal jemand ein SIP-Telefon unter Lazarus/Freepascal programmiert? Ich such sowas für ne Anwendung. Kann natürlich auch einfach die Steuerung einer vorhandenen SIP-Anwendung sein(login, Anrufer-Nummer auslesen,...)
Humor ist der Knopf, der verhindert, daß uns der Kragen platzt.
(Ringelnatz)
(Ringelnatz)
- af0815
- Lazarusforum e. V.
- Beiträge: 6774
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: SIP-Telefon
PJSIP schon mal angesehen, ist u.a. GPL.
Andreas
Andreas
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 3444
- Registriert: Mo 11. Sep 2006, 10:24
- OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
- CPU-Target: X32 / X64 / ARMv5
- Wohnort: Krefeld
Re: SIP-Telefon
Ein Kollege von mit hat das (in Delphi) sehr erfolgreich mit PJSIP gemacht.
Er hat in Pascal eine DLL geschrieben, die die not wendigen Funktionen in PJZSIP aufrufft. Das (riesige) Haupt-Programm verwendet dann die DLL.
Ein Problem war, dass de PJZP-Programmierer idiotioscherweise in C "if (x ==TRUE) {... " geschrieben haben. In Pascal ist TRUE aber $FFFFFFFF und in C ist TRUE $00000001.
-Michael
Er hat in Pascal eine DLL geschrieben, die die not wendigen Funktionen in PJZSIP aufrufft. Das (riesige) Haupt-Programm verwendet dann die DLL.
Ein Problem war, dass de PJZP-Programmierer idiotioscherweise in C "if (x ==TRUE) {... " geschrieben haben. In Pascal ist TRUE aber $FFFFFFFF und in C ist TRUE $00000001.
-Michael
-
- Beiträge: 1187
- Registriert: Mi 13. Dez 2006, 10:58
- OS, Lazarus, FPC: Winux (L 1.2.xy FPC 2.6.z)
- CPU-Target: AMD A4-6400 APU
- Wohnort: Hamburg
Re: SIP-Telefon
Hallo @af0815 und danke für den Tipp, scheint Genau das richtige zu sein.
Gibt's dafür auch ne Pascal external-Liste zum einbinden der Lib's? Dann bräuchte ich das nicht zu Fuß machen, ist ja doch ne etwas nervige Arbeit. 


Humor ist der Knopf, der verhindert, daß uns der Kragen platzt.
(Ringelnatz)
(Ringelnatz)
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Re: SIP-Telefon
In Pascal ist True 1In Pascal ist TRUE aber $FFFFFFFF und in C ist TRUE $00000001.
jedenfalls sagt Byte(True) das
In C ist False==0 und True !=False damit ist das eigentlich schon kompatibel
Code: Alles auswählen
var
a: Boolean;
b: Byte;
begin
a := Boolean(10);
b := byte(a);
if a then begin
Showmessage('1');
end
else begin
Showmessage('2');
end;
end;
schaut für mich erstmal 100%ig kompatibel aus
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
-
- Beiträge: 1187
- Registriert: Mi 13. Dez 2006, 10:58
- OS, Lazarus, FPC: Winux (L 1.2.xy FPC 2.6.z)
- CPU-Target: AMD A4-6400 APU
- Wohnort: Hamburg
Re: SIP-Telefon
Hey Michael. Den altbekannten PASCAL-Trick kennst du einfach dafür eine Konstante zu bauen, z.B. mit Namen cTrue = $0000...
Damit kann man solche Probs umgehen, man könnte auch TRUE und FALSE für das Programm einfach umwidmen. Das könnte aber bei anderen Aufrufen Schwierigkeiten machen.
Der Hinweis ist jedenfalls schonmal wichtig, sonst hätt ich lange suchen müssen.
Das ganze soll eine lazarus-Anwendung mit grafischer Oberfläche werden. Die solle an eine externe Datenbank angebunden werden und lokal gleichzeitig als SIP-Telefon arbeiten um Bestellungen direkt in der Datenbank zu verarbeiten. Eventuell soll sie auch gleich eine Anrufer-Erkennung durchführen und so die Menge der Eingaben begrenzen. Deswegen muss die Anrufer-TN abgefragt werden können. Wenn's nicht zuviel Aufwand und Kosten verursacht wäre auch noch eine Abfrage einer Telefonnummern-DB bei einem Auskunftsdienst oder in einer lokalen TN-DB schön, das muß ich mir aber noch überlegen. Das als Client-Anwenung vom Web-Server zu starten dürfte den zu stark belasten, deswegen hab ich mir diese Konstellation überlegt.
Damit kann dann der Kunde entweder über eine Web-Clientanwendung direkt im Browser eine Bestellung aufgeben oder er kann die althergebrachte Methode per Telefon benutzen. Dabei kann die Bestellannahme dann im Zweifel auch in Timbuktu stattfinden.
Also das letzte war ein Scherz, im Idealfall wird der Anrufer an eine Telefonistin am Bestellort umgeleitet. Aber eben an einen Online-Arbeitsplatz. Gibt in Deutschland ja genug Menschen die auch ein paar Taler jeden Monat gebrauchen können.
Eine "eierlegende Wollmilchsau" also.
Damit kann man solche Probs umgehen, man könnte auch TRUE und FALSE für das Programm einfach umwidmen. Das könnte aber bei anderen Aufrufen Schwierigkeiten machen.
Der Hinweis ist jedenfalls schonmal wichtig, sonst hätt ich lange suchen müssen.
Das ganze soll eine lazarus-Anwendung mit grafischer Oberfläche werden. Die solle an eine externe Datenbank angebunden werden und lokal gleichzeitig als SIP-Telefon arbeiten um Bestellungen direkt in der Datenbank zu verarbeiten. Eventuell soll sie auch gleich eine Anrufer-Erkennung durchführen und so die Menge der Eingaben begrenzen. Deswegen muss die Anrufer-TN abgefragt werden können. Wenn's nicht zuviel Aufwand und Kosten verursacht wäre auch noch eine Abfrage einer Telefonnummern-DB bei einem Auskunftsdienst oder in einer lokalen TN-DB schön, das muß ich mir aber noch überlegen. Das als Client-Anwenung vom Web-Server zu starten dürfte den zu stark belasten, deswegen hab ich mir diese Konstellation überlegt.
Damit kann dann der Kunde entweder über eine Web-Clientanwendung direkt im Browser eine Bestellung aufgeben oder er kann die althergebrachte Methode per Telefon benutzen. Dabei kann die Bestellannahme dann im Zweifel auch in Timbuktu stattfinden.


Eine "eierlegende Wollmilchsau" also.
Humor ist der Knopf, der verhindert, daß uns der Kragen platzt.
(Ringelnatz)
(Ringelnatz)