Fehler beim chan_capi_cm (v. 0.6.3) compilieren :-(

Snowie

Neuer User
Mitglied seit
10 Jan 2006
Beiträge
8
Punkte für Reaktionen
0
Punkte
0
Hallo!

Dann starte ich mal meinen ersten Post, habe schon ein paar Tage im Internet gesucht aber nichts gefunden was mich weiter gebracht hat. Ich bin nicht mehr sooo der Neuling was Linux angeht, aber mit CAPI kenne ich mich nun wirklich nicht aus.

Systemkonfiguration:

Asterisk 1.2.0
RedHad Enterprise Server mit dem 2.4er Kernel
ISDN: Diva Server BRI-2M PCI

Ich möchte die neuste chan_capi_cm Version (0.6.3) installieren. Leider kommt direkt beim "make"-Befehl eine riesen lange Fehlermeldung. Und da habe ich keinen Plan was es bedeutet.

Code:
gcc -pipe -fPIC -Wall -Wmissing-prototypes -Wmissing-declarations -g  -I/usr/include -D_REENTRANT -D_GNU_SOURCE  -O6 -march=i686  -DASTERISKVERSION=\"\" -Wno-missing-prototypes -Wno-missing-declarations -DCRYPTO   -c -o chan_capi.o chan_capi.c
In file included from chan_capi.c:51:
chan_capi20.h:7:20: capi20.h: Datei oder Verzeichnis nicht gefunden
chan_capi20.h:29:23: capiutils.h: Datei oder Verzeichnis nicht gefunden
In file included from chan_capi.c:51:
chan_capi20.h: In function `CAPI_COMMAND_PACK':
chan_capi20.h:105: `CAPI_REQ' undeclared (first use in this function)
chan_capi20.h:105: (Each undeclared identifier is reported only once
chan_capi20.h:105: for each function it appears in.)
chan_capi20.h:106: `CAPI_CONF' undeclared (first use in this function)
chan_capi20.h:107: `CAPI_IND' undeclared (first use in this function)
chan_capi20.h:108: `CAPI_RESP' undeclared (first use in this function)
In file included from chan_capi.c:52:
chan_capi.h: At top level:
chan_capi.h:218: syntax error before "_cword"
chan_capi.h:218: warning: no semicolon at end of struct or union
chan_capi.h:332: syntax error before '}' token
chan_capi.c:62: syntax error before "capi_MessageNumber"
chan_capi.c:62: warning: type defaults to `int' in declaration of `capi_MessageNumber'
chan_capi.c:62: warning: data definition has no type or storage class
chan_capi.c:66: conflicting types for `channeltype'
chan_capi.h:294: previous declaration of `channeltype'
chan_capi.c:159: syntax error before "info"
chan_capi.c: In function `show_capi_info':
chan_capi.c:163: `info' undeclared (first use in this function)
chan_capi.c: At top level:
chan_capi.c:181: syntax error before "get_capi_MessageNumber"
chan_capi.c:182: warning: return type defaults to `int'
chan_capi.c: In function `get_capi_MessageNumber':
chan_capi.c:183: `_cword' undeclared (first use in this function)
chan_capi.c:183: syntax error before "mn"
chan_capi.c:186: `mn' undeclared (first use in this function)
chan_capi.c: At top level:
chan_capi.c:196: syntax error before "_capi_put_cmsg"
chan_capi.c:196: syntax error before '*' token
chan_capi.c:197: warning: return type defaults to `int'
chan_capi.c: In function `_capi_put_cmsg':
chan_capi.c:198: `MESSAGE_EXCHANGE_ERROR' undeclared (first use in this function)
chan_capi.c:198: syntax error before "error"
chan_capi.c:205: `error' undeclared (first use in this function)
chan_capi.c:205: warning: implicit declaration of function `capi20_put_cmsg'
chan_capi.c:205: `CMSG' undeclared (first use in this function)
chan_capi.c:214: warning: implicit declaration of function `capi_cmsg2str'
chan_capi.c:214: warning: format argument is not a pointer (arg 6)
chan_capi.c:219: warning: format argument is not a pointer (arg 2)
chan_capi.c:221: warning: format argument is not a pointer (arg 2)
chan_capi.c: At top level:
chan_capi.c:231: syntax error before "check_wait_get_cmsg"
chan_capi.c:231: syntax error before '*' token
chan_capi.c:232: warning: return type defaults to `int'
chan_capi.c: In function `check_wait_get_cmsg':
chan_capi.c:233: `MESSAGE_EXCHANGE_ERROR' undeclared (first use in this function)
chan_capi.c:233: syntax error before "Info"
chan_capi.c:239: `Info' undeclared (first use in this function)
chan_capi.c:239: warning: implicit declaration of function `capi20_waitformessage'
chan_capi.c:248: warning: implicit declaration of function `capi_get_cmsg'
chan_capi.c:248: `CMSG' undeclared (first use in this function)
chan_capi.c: In function `ListenOnController':
chan_capi.c:267: `MESSAGE_EXCHANGE_ERROR' undeclared (first use in this function)
chan_capi.c:267: syntax error before "error"
chan_capi.c:268: `_cmsg' undeclared (first use in this function)
chan_capi.c:270: warning: implicit declaration of function `LISTEN_REQ_HEADER'
chan_capi.c:270: `CMSG' undeclared (first use in this function)
chan_capi.c:272: warning: implicit declaration of function `LISTEN_REQ_INFOMASK'
chan_capi.c:272: invalid lvalue in assignment
chan_capi.c:275: warning: implicit declaration of function `LISTEN_REQ_CIPMASK'
chan_capi.c:275: invalid lvalue in assignment
chan_capi.c:276: `error' undeclared (first use in this function)
chan_capi.c:279: warning: implicit declaration of function `IS_LISTEN_CONF'
chan_capi.c:279: `CMSG2' undeclared (first use in this function)
chan_capi.c: In function `capi_echo_canceller':
chan_capi.c:395: `_cmsg' undeclared (first use in this function)
chan_capi.c:395: syntax error before "CMSG"
chan_capi.c:398: dereferencing pointer to incomplete type
chan_capi.c:403: dereferencing pointer to incomplete type
chan_capi.c:403: dereferencing pointer to incomplete type
chan_capi.c:410: dereferencing pointer to incomplete type
chan_capi.c:410: dereferencing pointer to incomplete type
chan_capi.c:410: dereferencing pointer to incomplete type
chan_capi.c:410: dereferencing pointer to incomplete type
chan_capi.c:412: warning: implicit declaration of function `FACILITY_REQ_HEADER'
chan_capi.c:412: `CMSG' undeclared (first use in this function)
chan_capi.c:413: warning: implicit declaration of function `FACILITY_REQ_PLCI'
chan_capi.c:413: dereferencing pointer to incomplete type
chan_capi.c:414: warning: implicit declaration of function `FACILITY_REQ_FACILITYSELECTOR'
chan_capi.c:414: dereferencing pointer to incomplete type
chan_capi.c:421: dereferencing pointer to incomplete type
chan_capi.c:422: dereferencing pointer to incomplete type
chan_capi.c:426: warning: implicit declaration of function `FACILITY_REQ_FACILITYREQUESTPARAMETER'
chan_capi.c:426: `_cstruct' undeclared (first use in this function)
chan_capi.c:426: syntax error before "buf"
chan_capi.c: In function `capi_detect_dtmf':
chan_capi.c:441: `MESSAGE_EXCHANGE_ERROR' undeclared (first use in this function)
chan_capi.c:441: syntax error before "error"
chan_capi.c:442: `_cmsg' undeclared (first use in this function)
chan_capi.c:445: dereferencing pointer to incomplete type
chan_capi.c:454: dereferencing pointer to incomplete type
chan_capi.c:454: dereferencing pointer to incomplete type
chan_capi.c:457: dereferencing pointer to incomplete type
chan_capi.c:457: dereferencing pointer to incomplete type
chan_capi.c:458: `CMSG' undeclared (first use in this function)
chan_capi.c:459: dereferencing pointer to incomplete type
chan_capi.c:460: invalid lvalue in assignment
chan_capi.c:469: `_cstruct' undeclared (first use in this function)
chan_capi.c:469: syntax error before "buf"
chan_capi.c:471: `error' undeclared (first use in this function)
chan_capi.c:477: dereferencing pointer to incomplete type
chan_capi.c:478: dereferencing pointer to incomplete type
chan_capi.c: In function `update_channel_name':
chan_capi.c:492: dereferencing pointer to incomplete type
chan_capi.c:492: dereferencing pointer to incomplete type
chan_capi.c:493: dereferencing pointer to incomplete type
chan_capi.c:495: dereferencing pointer to incomplete type
.
. # hier geht's noch ne ganze Ecke so weiter ....
.
.
chan_capi.c: In function `cc_init_capi':
chan_capi.c:4495: warning: implicit declaration of function `capi20_isinstalled'
chan_capi.c:4500: warning: implicit declaration of function `capi20_register'
chan_capi.c:4512: warning: implicit declaration of function `capi20_get_profile'
chan_capi.c: In function `unload_module':
chan_capi.c:4983: warning: implicit declaration of function `capi20_release'
chan_capi.c:4996: dereferencing pointer to incomplete type
chan_capi.c:4999: dereferencing pointer to incomplete type
make: *** [chan_capi.o] Fehler 1

Klar, er kann die Sourcen nicht finden. Die Datei "capi20.h" und die "capiutils.h" gibt es auf meinem System überhaupt nicht :confused:, wo sollen die denn herkommen?

Vom lesen der anderen Posts hier im Forum glaube ich das die System-Infos hier evtl. hilfreich sein könnten:

Code:
# lspci -v
00:0f.0 Network controller: Eicon Networks Corporation Diva Server BRI-2M PCI (rev 01)
        Subsystem: Eicon Networks Corporation Diva Server BRI-2M PCI
        Flags: medium devsel, IRQ 3
        Memory at e0009000 (32-bit, non-prefetchable) [size=128]
        I/O ports at 1080 [size=128]
        I/O ports at 1040 [size=32]

Code:
# cat /proc/capi/controller
1 divacapi   running  MTPX101          4018

Code:
# mount
/dev/hda2 on / type ext3 (rw)
none on /proc type proc (rw)
none on /dev/pts type devpts (rw,gid=5,mode=620)
usbdevfs on /proc/bus/usb type usbdevfs (rw)
/dev/hda1 on /boot type ext3 (rw)
none on /dev/shm type tmpfs (rw)

Code:
capiinfo
Controller 1:
Manufacturer: Eicon Networks
CAPI Version: 2.0
Manufacturer Version: 1.0
Serial Number: 4018
BChannels: 2
Global Options: 0x000003f9
   internal controller supported
   DTMF supported
   Supplementary Services supported
   channel allocation supported (leased lines)
B1 protocols support: 0x000003df
   64 kbit/s with HDLC framing
   64 kbit/s bit-transparent operation
   V.110 asynconous operation with start/stop byte framing
   V.110 synconous operation with HDLC framing
   T.30 modem for fax group 3
   56 kbit/s bit-transparent operation
   Modem with all negotiations
   Modem asyncronous operation with start/stop byte framing
   Modem syncronous operation with HDLC framing
B2 protocols support: 0x00001fdb
   ISO 7776 (X.75 SLP)
   Transparent
   LAPD with Q.921 for D channel X.25 (SAPI 16)
   T.30 fro fax group 3
   Tranparent (ignoring framing errors of B1 protocol)
   Modem error correction and compression (V.42bis or MNP5)
   ISO 7776 (X.75 SLP) with V.42bis compression
   V.120 asyncronous mode
   V.120 asyncronous mode with V.42bis compression
   V.120 bit-transparent mode
   LAPD with Q.921 including free SAPI selection
B3 protocols support: 0x000000b7
   Transparent
   T.90NL, T.70NL, T.90
   ISO 8208 (X.25 DTE-DTE)
   X.25 DCE
   T.30 for fax group 3
   reserved

  0000
  0200
  f9030000
  df030000
  db1f0000
  b7000000
  00000000 00000000 00000000 00000000 00000000 00000000
  f9030000 00000000 00000000 00000000 00000000

Bei "capiinfo" hört er da auf, ich kann nur mit "STRG-C" abbrechen.

Mit dem Diva-Testtool kann ich mit der ISDN-Karte rauswählen und bekomme auch reinkommende Anrufe angezeigt.

Irgendwie denke ich mal, nach allem was ich so gelesen habe könnte es an der Kernelunterstützung liegen. Aber die Karte funktioniert ja mit dem Testtool ....

Asterisk an sich selbst funktioniert auch recht gut wenn man damit übers LAN telefoniert.

Hat irgend jemand von euch eine Idee woran es liegen könnte? Bin für alle Denkanstöße dankbar :)

Vielen Dank!

MfG Snowie
 
Dir fehlt die libcapi20, bzw. das dev Paket zu libcapi20.

Armin
 
Klar, er kann die Sourcen nicht finden. Die Datei "capi20.h" und die "capiutils.h" gibt es auf meinem System überhaupt nicht , wo sollen die denn herkommen?
isdn4k-utils-devel. Dazu installier bitte auch noch isdn4k-utils.
 
Hey Supi,

morgen suche ich erstmal das Paket und installiere es. Wenn ich es getestet habe werde ich mal berichten :)

Kann mir noch jemand den Sinn/Zweck/Vorteil vom NT-Modus erläutern. Es wird hier im Forum immer mal wieder erwähnt. Aber so genau wird es nicht erklärt. Okay, mit meiner rev 01 läuft es sowieso nicht (stand hier gerade irgendwo in einem Thread). Aber nur damit ich es mal gewusst habe *G*.

Danke schön!

MfG Snowie
 
Eine ISDN Verbindung hat immer zwei Endpunkte (auch wenn an einer Seite mehrere Telefone haengen koennen). Die Seite der Vermittlungsstelle ist NT und die Seite des Telefons/PBX ist TE. Eine ISDN Karte ist meist wie ein Telefon als TE am Anschluss. Will man aber ein Telefon oder eine Anlage an die Karte anschliessen, muss die Karte NT sein.
Die ISDN Karte ist dann also wie der Anschluss der Vermittlungsstelle.

Armin
 
Supi :)

Hat funktioniert, hat tatsächlich daran gelegen. Nun tut sich ein weiteres Problem auf.

Wenn ich mit dem SIP Phone (X-Lite) nach draussen telefoniere bekomme ich nicht die richtige Rufnummer mit übermittelt. Ich hänge an einer HiPath 4000 und habe eine eigene QVL. Der Anlagentechniker meinte, die Software würde die Rufnummer die angezeigt werden soll nicht übermitteln.

So sieht meine TelNr. im Beispiel aus:

Vorwahl | TelNr | QVL | SIP Phone
12345 1234 399 1122

Wenn ich nun rauswähle bekomme ich einfach die 123450 angezeigt. Meine extensions.conf sieht so aus:

Code:
[default]
exten => _0.,1,Macro(anrufextern,CAPI,${EXTEN})

[macro-anrufextern]
exten => s,1,Set(CALLERID(number)=3991122)
exten => s,2,Dial(${ARG1}/g1/${ARG2}/b)

und die capi.conf
Code:
[DIVA]          ;this example interface gets name 'ISDN1' and may be any
                 ;name not starting with 'g' or 'contr'.
;ntmode=yes      ;if isdn card operates in nt mode, set this to yes
isdnmode=msn     ;'MSN' (point-to-multipoint) or 'DID' (direct inward dial)
                 ;when using NT-mode, 'DID' should be set in any case
incomingmsn=*    ;allow incoming calls to this list of MSNs/DIDs, * = any
;defaultcid=123  ;set a default caller id to that interface for dial-out,
                 ;this caller id will be used when dial option 'd' is set.
;controller=0    ;ISDN4BSD default
;controller=7    ;ISDN4BSD USB default
controller=1     ;capi controller number to use
group=1          ;dialout group
;prefix=0        ;set a prefix to calling number on incoming calls
softdtmf=on      ;enable/disable software dtmf detection, recommended for AVM cards
relaxdtmf=on     ;in addition to softdtmf, you can use relaxed dtmf detection
accountcode=     ;Asterisk accountcode to use in CDRs
context=anrufvonextern  ;context for incoming calls
;holdtype=hold   ;when Asterisk puts the call on hold, ISDN HOLD will be used. If
                 ;set to 'local' (default value), no hold is done and Asterisk may
                 ;play MOH.
;immediate=yes   ;DID: immediate start of pbx with extension 's' if no digits were
                 ;     received on incoming call (no destination number yet)
                 ;MSN: start pbx on CONNECT_IND and don't wait for SETUP/SENDING-COMPLETE.
                 ;     info like REDIRECTINGNUMBER may be lost, but this is necessary for
                 ;     drivers/pbx/telco which does not send SETUP or SENDING-COMPLETE.
;echosquelch=1   ;_VERY_PRIMITIVE_ echo suppression
;echocancel=yes  ;EICON DIVA SERVER (CAPI) echo cancelation
                 ;(possible values: 'no', 'yes', 'force', 'g164', 'g165')
echocancelold=yes;use facility selector 6 instead of correct 8 (necessary for older eicon drivers)
;echotail=64     ;echo cancel tail setting
;bridge=yes      ;native bridging (CAPI line interconnect) if available
;callgroup=1     ;Asterisk call group
;language=de     ;set language for this device (overwrites default language)
devices=2        ;number of concurrent calls on this controller
                 ;(2 makes sense for single BRI, 30 for PRI)

Ich bekomme von Asterisk keine Fehlermeldung, aber funktionieren tut es nicht wirklich. Okay,

exten => s,1,Set(CALLERID(number)=3991122)

ist noch ein wenig statisch, aber da wollte ich es so machen das dort dann die anrufende SIP-Phone Rufnummer mit übermittelt wird. Zum testen sollte das doch allerdings schon funktionieren, oder?

Ein weiteres Problem, wie kann ich Asterisk sagen das er automatisch bei einer beginnenden 0 in der gewählten Rufnummer eine 0 fürs Amt vorwählen soll?

Wenn ich die 01234 46765 anrufen möchte, muss ich immer eine 001234 46765 im SIP Phone wählen.

Letzteres Problem werde ich bestimmt mit ein wenig Tüfftelarbeit selber herausfinden, allerdings habe ich da so beim ersten meine Bedenken ...

Vielen Dank!

LG Snowie
 
Okay,

das mit der Amtsholung habe ich gerade selbt gelöst *G*.

MfG Snowie
 
Schau dir mal das log an, wenn du 'set verbose 5' und 'capi debug' aktiviert hast.
Beim Dial() findest Du eine CAPI message CONNECT_REQ, darunter steht die Nummer, die du anwaehlst und die Nummer, die Du als eigene Nummer uebermittelst. Diese Nummern sollten (bis auf Byte 1 und ggf. Byte zwei) Deine Nummern sein. Stehen die Nummern da korrekt drin, dann sind sie eventuell fuer die Anlage doch falsch. Stehen sie aber nicht richtig drin, dann ist deine extensions.conf (z.B. Set(CALLERID(name))) nicht korrekt.

Armin
 
armincm schrieb:
Schau dir mal das log an, wenn du 'set verbose 5' und 'capi debug' aktiviert hast.
Beim Dial() findest Du eine CAPI message CONNECT_REQ, darunter steht die Nummer, die du anwaehlst und die Nummer, die Du als eigene Nummer uebermittelst. Diese Nummern sollten (bis auf Byte 1 und ggf. Byte zwei) Deine Nummern sein. Stehen die Nummern da korrekt drin, dann sind sie eventuell fuer die Anlage doch falsch. Stehen sie aber nicht richtig drin, dann ist deine extensions.conf (z.B. Set(CALLERID(name))) nicht korrekt.

Armin

Code:
       > parsed dialstring: 'g1' 'NULL' 'rufnummer' 'b'
       > capi request group = 2
       > parsed dialstring: 'g1' 'NULL' 'rufnummer' 'b'
  == DIVA: Call CAPI/DIVA/rufnummer-0 with B3  (pres=0x00, ton=0x00)
CONNECT_REQ ID=001 #0x0003 LEN=0061
  Controller/PLCI/NCCI            = 0x1
  CIPValue                        = 0x1
  CalledPartyNumber               = <80>rufnummer
  CallingPartyNumber              = <00 80>3991234
  CalledPartySubaddress           = default
  CallingPartySubaddress          = default
  BProtocol
   B1protocol                     = 0x1
   B2protocol                     = 0x1
   B3protocol                     = 0x0
   B1configuration                = default
   B2configuration                = default
   B3configuration                = default
  BC                              = default
  LLC                             = default
  HLC                             = default
  AdditionalInfo
   BChannelinformation            = <00 00>
   Keypadfacility                 = default
   Useruserdata                   = default
   Facilitydataarray              = default

    -- Called g1/rufnummer/b
       > CAPI devicestate requested for DIVA/rufnummer
       > CAPI devicestate requested for DIVA/rufnummer
CONNECT_CONF ID=001 #0x0003 LEN=0014

Meine extensions.conf im Auszug:

Code:
exten => _0.,1,Set(CALLERID(number)=3991234)
exten => _0.,2,NoOp(${CALLERID(number)})
exten => _0.,3,Dial(CAPI/g1/0${EXTEN}/b)

Also das steht dort drin, müsste dann eigentlich richtig sein. Oder? Komisch ist nur das es der Anlage eigentlich völlig egal ist was ich Ihr als Rufnummer übermittel. Sie hängt es ja einfach nur an die normale Rufnummer dran...

Danke dir schonmal für deine Antwort :)

MfG Snowie
 
CallingPartyNumber = <00 80>3991234

Die Nummer scheint ja nach Deinen Angaben korrekt zu sein (das ist die Nummer, die der Anlage uebermittelt wird.
Die beiden ersten Bytes sagen, welchem Numberingplan die Nummer angehoert und ob die Nummer gezeigt werden darf (Presentation).
Eventuell akzeptiert die Anlage nur eine bestimmte Einstellung und nicht default.

Armin
 
Hmm,

okay. Danke schonmal für deine Bemühungen (auch die per PM ;) ). Welche Einstellung wäre denn dann deiner Meinung nach die Richtige? Habe jetzt alle (alle nur mal um zu sehen ob es funktioniert) der hier ausprobiert:

Code:
allowed_not_screened    : Presentation Allowed, Not Screened 
allowed_passed_screen   : Presentation Allowed, Passed Screen 
allowed_failed_screen   : Presentation Allowed, Failed Screen 
allowed                 : Presentation Allowed, Network Number 
prohib_not_screened     : Presentation Prohibited, Not Screened 
prohib_passed_screen    : Presentation Prohibited, Passed Screen 
prohib_failed_screen    : Presentation Prohibited, Failed Screen 
prohib                  : Presentation Prohibited, Network Number 
unavailable             : Number Unavailable

Bei keinem gibt es eine Veränderung im Trace-Tool der HiPath. Seltsam ist nur das die Anlage behauptet ich würde eine ganz andere Rufnummer übermitteln. Und hängt dann an die letzten Stelle dieser komischen Rufnummer das erste Zeichen meiner übermittelten Rufnummer an.

Mit einem Test-Tool, über welches man eine CallingNumber einstellen kann wird alles richtig übermittelt. Allerdings läuft dieses Test-Tool nicht auf einem Linux Rechner, so kann ich es nicht an dem Server ausprobieren.

Es deutet aber alles irgendwie auf einen Protokoll Fehler hin....

Hab echt keinen Plan mehr... kennt jemand von euch so ein Test-Tool für eine Linux Umgebung?

MfG Snowie
 
Ich kann nicht sagen, welche Einstellung die richtige sein koennte. Das war auch nur eine Idee, die vieleicht fuer die Anlage notwendig ist. Ausser dem Presentation waere auch noch der Numberingplan eine Moeglichkeit. Dieser Wert wird durch die Variabler CALLERTON gesetzt.

Ein D-Kanal Trace von dem Testtool waere sehr hilfreich.

Armin
 
Hmm,

so. Da bin ich wieder. Hatte leider keine Zeit mehr mich weiter darum zu kümmern. Habe es aber heute nochmals auf einer Windows Maschine mit entsprechenden Tools ausprobiert und es kam auf der gleichen Leitung immer zum selben Ergebnis.

Daher liegt wohl an der TK Anlage und dem Protokoll wie sie mit einer weiteren davorgeschalteten Anlage vernetzt ist.

Wenn es etwas neues gibt melde ich mich wieder.

Danke dir nochmal Armin!

MfG Snowie
 

Zurzeit aktive Besucher

Statistik des Forums

Themen
244,868
Beiträge
2,219,771
Mitglieder
371,585
Neuestes Mitglied
PauSchmitz
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.