TRY THIS Asterisk 13.12.2 Upgrade

Cory Eakins

New Member
Joined
Mar 23, 2015
Messages
5
Reaction score
3
Today I ran the upgrade-asterisk13-to-current-rhel script on a new Incredible PBX 13-12.3 VM, everything appeared to work as usual, but when it tried to start asterisk afterwards, it crashes on startup.

This is a clone of a full patched CentOS 7 x64 virtual machine, running fine with Asterisk 13.11.2

Logs were inconclusive, so I ran the asterisk process in debug mode, and this is the output:

asterisk -U asterisk -G asterisk -d 99 -vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvc


Parsing /etc/asterisk/asterisk.conf
Seeding global EID '00:50:56:a9:48:69' from 'eth0' using 'siocgifhwaddr'
Asterisk 13.12.2, Copyright (C) 1999 - 2014, Digium, Inc. and others.
Created by Mark Spencer <[email protected]>
Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
This is free software, with components licensed under the GNU General Public
License version 2 and other licenses; you are welcome to redistribute it under
certain conditions. Type 'core show license' for details.
=========================================================================
Running as user 'asterisk'
Running under group 'asterisk'
[ Initializing Custom Configuration Options ]
Parsing /etc/asterisk/extconfig.conf
== Parsing '/etc/asterisk/extconfig.conf': Found
Parsing /etc/asterisk/asterisk.conf
== Parsing '/etc/asterisk/asterisk.conf': Found
== Manager registered action DBGet
== Manager registered action DBPut
== Manager registered action DBDel
== Manager registered action DBDelTree
UUID system initiated
Unable to find key 'UUID' in family 'pbx'
PBX UUID: 9c1a605b-f118-4fee-b4d6-462dd8f2dfa4
Resetting translation matrix
== Registered 'audio' codec 'g723' at sample rate '8000' with id '1'
== Created cached format with name 'g723'
== Registered 'audio' codec 'ulaw' at sample rate '8000' with id '2'
== Created cached format with name 'ulaw'
== Registered 'audio' codec 'alaw' at sample rate '8000' with id '3'
== Created cached format with name 'alaw'
== Registered 'audio' codec 'gsm' at sample rate '8000' with id '4'
== Created cached format with name 'gsm'
== Registered 'audio' codec 'g726' at sample rate '8000' with id '5'
== Created cached format with name 'g726'
== Registered 'audio' codec 'g726aal2' at sample rate '8000' with id '6'
== Created cached format with name 'g726aal2'
== Registered 'audio' codec 'adpcm' at sample rate '8000' with id '7'
== Created cached format with name 'adpcm'
== Registered 'audio' codec 'slin' at sample rate '8000' with id '8'
== Created cached format with name 'slin'
== Registered 'audio' codec 'slin' at sample rate '12000' with id '9'
== Created cached format with name 'slin12'
== Registered 'audio' codec 'slin' at sample rate '16000' with id '10'
== Created cached format with name 'slin16'
== Registered 'audio' codec 'slin' at sample rate '24000' with id '11'
== Created cached format with name 'slin24'
== Registered 'audio' codec 'slin' at sample rate '32000' with id '12'
== Created cached format with name 'slin32'
== Registered 'audio' codec 'slin' at sample rate '44100' with id '13'
== Created cached format with name 'slin44'
== Registered 'audio' codec 'slin' at sample rate '48000' with id '14'
== Created cached format with name 'slin48'
== Registered 'audio' codec 'slin' at sample rate '96000' with id '15'
== Created cached format with name 'slin96'
== Registered 'audio' codec 'slin' at sample rate '192000' with id '16'
== Created cached format with name 'slin192'
== Registered 'audio' codec 'lpc10' at sample rate '8000' with id '17'
== Created cached format with name 'lpc10'
== Registered 'audio' codec 'g729' at sample rate '8000' with id '18'
== Created cached format with name 'g729'
== Registered 'audio' codec 'speex' at sample rate '8000' with id '19'
== Created cached format with name 'speex'
== Registered 'audio' codec 'speex' at sample rate '16000' with id '20'
== Created cached format with name 'speex16'
== Registered 'audio' codec 'speex' at sample rate '32000' with id '21'
== Created cached format with name 'speex32'
== Registered 'audio' codec 'ilbc' at sample rate '8000' with id '22'
== Created cached format with name 'ilbc'
== Registered 'audio' codec 'g722' at sample rate '16000' with id '23'
== Created cached format with name 'g722'
== Registered 'audio' codec 'siren7' at sample rate '16000' with id '24'
== Created cached format with name 'siren7'
== Registered 'audio' codec 'siren14' at sample rate '32000' with id '25'
== Created cached format with name 'siren14'
== Registered 'audio' codec 'testlaw' at sample rate '8000' with id '26'
== Created cached format with name 'testlaw'
== Registered 'audio' codec 'g719' at sample rate '48000' with id '27'
== Created cached format with name 'g719'
== Registered 'audio' codec 'opus' at sample rate '48000' with id '28'
== Created cached format with name 'opus'
== Registered 'image' codec 'jpeg' at sample rate '0' with id '29'
== Created cached format with name 'jpeg'
== Registered 'image' codec 'png' at sample rate '0' with id '30'
== Created cached format with name 'png'
== Registered 'video' codec 'h261' at sample rate '1000' with id '31'
== Created cached format with name 'h261'
== Registered 'video' codec 'h263' at sample rate '1000' with id '32'
== Created cached format with name 'h263'
== Registered 'video' codec 'h263p' at sample rate '1000' with id '33'
== Created cached format with name 'h263p'
== Registered 'video' codec 'h264' at sample rate '1000' with id '34'
== Created cached format with name 'h264'
== Registered 'video' codec 'mpeg4' at sample rate '1000' with id '35'
== Created cached format with name 'mpeg4'
== Registered 'video' codec 'vp8' at sample rate '1000' with id '36'
== Created cached format with name 'vp8'
== Registered 'text' codec 'red' at sample rate '0' with id '37'
== Created cached format with name 'red'
== Registered 'text' codec 't140' at sample rate '0' with id '38'
== Created cached format with name 't140'
== Registered 'audio' codec 'none' at sample rate '8000' with id '39'
== Created cached format with name 'none'
== Registered 'audio' codec 'silk' at sample rate '8000' with id '40'
== Created cached format with name 'silk8'
== Registered 'audio' codec 'silk' at sample rate '12000' with id '41'
== Created cached format with name 'silk12'
== Registered 'audio' codec 'silk' at sample rate '16000' with id '42'
== Created cached format with name 'silk16'
== Registered 'audio' codec 'silk' at sample rate '24000' with id '43'
== Created cached format with name 'silk24'
== Sorcery registered wizard 'bucket'
== Sorcery registered wizard 'bucket_file'
Parsing /etc/asterisk/sorcery.conf
== Parsing '/etc/asterisk/sorcery.conf': Found
Parsing /etc/asterisk/stasis.conf
== Parsing '/etc/asterisk/stasis.conf': Found
Parsing /etc/asterisk/logger.conf
Parsing /etc/asterisk/logger_general_additional.conf
Parsing /etc/asterisk/logger_general_custom.conf
== Parsing '/etc/asterisk/logger.conf': Found
Parsing /etc/asterisk/logger_logfiles_additional.conf
== Parsing '/etc/asterisk/logger_general_additional.conf': Found
== Parsing '/etc/asterisk/logger_general_custom.conf': Found
== Parsing '/etc/asterisk/logger_logfiles_additional.conf': Found
Parsing /etc/asterisk/logger_logfiles_custom.conf
== Parsing '/etc/asterisk/logger_logfiles_custom.conf': Found
== Message handler 'dialplan' registered.
== Registered custom function 'MESSAGE'
== Registered custom function 'MESSAGE_DATA'
== Registered application 'MessageSend'
== Manager registered action MessageSend
== Manager registered action DataGet
[2016-11-15 13:57:33] DEBUG[66228]: channel.c:583 ast_channel_register: Registered handler for 'Surrogate' (Surrogate channel used to pull channel from an application)
== Registered channel type 'Surrogate' (Surrogate channel used to pull channel from an application)
[2016-11-15 13:57:33] DEBUG[66228]: config.c:2193 config_text_file_load: Parsing /etc/asterisk/codecs.conf
== Parsing '/etc/asterisk/codecs.conf': Found
/usr/bin/addr2line: Warning: could not locate '/proc/66228/exe'. reason: Permission denied
ThreadSanitizer: can't read from symbolizer (12, 0)
 

wardmundy

Nerd Uno
Joined
Oct 12, 2007
Messages
19,168
Reaction score
5,199
It's a "feature" :patriot:

Try this. First, run: yum -y install xmlstarlet

Then try recompiling Asterisk (type x to exit from menuselect once it opens):

Code:
cd /usr/src/asterisk-13*
make clean
./configure
 make menuselect.makeopts
 menuselect/menuselect --enable-category MENUSELECT_ADDONS menuselect.makeopts
 menuselect/menuselect --enable-category MENUSELECT_CODECS menuselect.makeopts
 menuselect/menuselect --enable CORE-SOUNDS-EN-GSM --enable MOH-OPSOUND-WAV --enable EXTRA-SOUNDS-EN-GSM --enable cdr_mysql menuselect.makeopts
 menuselect/menuselect --disable app_mysql --disable app_setcallerid --disable func_audiohookinherit --disable res_fax_spandsp --disable test_named_lock --disable test_res_pjsip_$
 sed -i 's|march=native|mtune=native|' Makefile.rules
make menuselect
make
make install
amportal restart
 

Cory Eakins

New Member
Joined
Mar 23, 2015
Messages
5
Reaction score
3
That worked. running the upgrade script still makes it fail, I haven't dug into it to figure out what the difference is.
 

wardmundy

Nerd Uno
Joined
Oct 12, 2007
Messages
19,168
Reaction score
5,199
The upgrade script has not been upgraded to address the new quirks introduced in 13.12. The code above shows how to fix it.
 

Cory Eakins

New Member
Joined
Mar 23, 2015
Messages
5
Reaction score
3
Here are the modifications I made to the script to get it working

--- upgrade-asterisk13-to-current-rhel 2016-11-15 16:29:24.474574847 -0400
+++ upgrade-asterisk13-to-current-rhel.new 2016-11-15 16:32:20.804914105 -0400
@@ -106,16 +106,14 @@
tar zxvf menuselect-incredible*
rm -f menuselect-incredible*

-if $arch64; then
- ./configure --libdir=/usr/lib64
-else
- ./configure --libdir=/usr/lib
-fi
+
+./configure

make menuselect.makeopts
-menuselect/menuselect --enable-category MENUSELECT_ADDONS menuselect.makeopts
+menuselect/menuselect --enable-category MENUSELECT_ADDONS menuselect.makeopts
+menuselect/menuselect --enable-category MENUSELECT_CODECS menuselect.makeopts
menuselect/menuselect --enable CORE-SOUNDS-EN-GSM --enable MOH-OPSOUND-WAV --enable EXTRA-SOUNDS-EN-GSM --enable cdr_mysql menuselect.makeopts
-menuselect/menuselect --disable app_mysql --disable app_setcallerid --disable func_audiohookinherit --disable res_fax_spandsp menuselect.makeopts
+menuselect/menuselect --disable app_mysql --disable app_setcallerid --disable func_audiohookinherit --disable res_fax_spandsp --disable test_named_lock --disable test_res_pjsip_$

sed -i 's|march=native|mtune=native|' Makefile.rules
 

Cory Eakins

New Member
Joined
Mar 23, 2015
Messages
5
Reaction score
3
I removed the -libdir bit, because it caused the script to fail, I'm assuming that is one of the quirks. I don't have a 32bit system to test on, but I would imagine that configure is smart enough to figure out the details...
 

wardmundy

Nerd Uno
Joined
Oct 12, 2007
Messages
19,168
Reaction score
5,199
I removed the -libdir bit, because it caused the script to fail, I'm assuming that is one of the quirks. I don't have a 32bit system to test on, but I would imagine that configure is smart enough to figure out the details...

Thanks, @Cory Eakins. I've updated the scripts and incorporated your changes. Appreciate your help!!
 

jackal

New Member
Joined
Sep 17, 2015
Messages
25
Reaction score
2
Thanks, @Cory Eakins. I've updated the scripts and incorporated your changes. Appreciate your help!!
Assuming you updated the script at http://incrediblepbx.com/upgrade-asterisk13-to-current.tar.gz, it still seems to be failing.

I just tried that script on a brand-new image from RentPBX (the "PBX in a Flash Incredible PBX 13-12 with Incredible GUI (Centos 6.6)" image), which appears to have Asterisk 13.5 installed. After crashing a functional-but-not-production install based on that same image from a year ago with the upgrade script, I had them reimage the server today and downloaded and ran the upgrade script immediately after logging in and completing the default Asterisk installation script. It did the same thing--Asterisk now crashes upon startup.

I made sure xmlstarlet was installed and up-to-date (yum reported it was) and recompiled Asterisk as suggested upthread (no errors during compile, AFAICT) to no avail--Asterisk is still down.

Looks like the script downloaded Asterisk 13.13; you mention 13.12 above, though your post is just a few days old...did 13.13 just come out and introduce some new wrinkles? (Looks like it may have just come out on 11/23?)
 
Last edited:

wardmundy

Nerd Uno
Joined
Oct 12, 2007
Messages
19,168
Reaction score
5,199
@jackal Cloud-based servers are very platform specific. I'd recommend you touch base with the folks @rentpbx and let them get the upgrade tested and squared away before you attempt it. We had no luck bundling pjproject as part of the Asterisk install in the latest versions. Instead we had to:
Code:
cd /usr/src
wget http://www.pjsip.org/release/2.5.5/pjproject-2.5.5.tar.bz2
tar jxvf pjproject-2.5.5.tar.bz2
cd /usr/src/pjproject*
if $arch64; then
 CFLAGS='-DPJ_HAS_IPV6=1' ./configure --prefix=/usr --enable-shared --disable-sound --disable-resample --disable-video --disable-opencor$
else
 CFLAGS='-DPJ_HAS_IPV6=1' ./configure --prefix=/usr --enable-shared --disable-sound --disable-resample --disable-video --disable-opencor$
fi
make dep
make && make install
 

jackal

New Member
Joined
Sep 17, 2015
Messages
25
Reaction score
2
Got a reply back, and here's what the results of that were, in case it helps anyone:

...
It could be that the script does not pick up the old asterisk make config.

I run make menuconfig on your asterisk tree.

There is a section on Compiler Flag. There is an option called Build_Native. It should be disabled. I do not want to make changes on your PBX. If you like, I can try to disable them and rebuild.
...
...
I have rebuild your PBX. It should be running now.

The detail of what need to be build is beyond my knowledge. However, I did remove the BUILD_NATIVE flag. It seems that your PBX run just fine now.
...

Seems to be running without crashing with 13.13.0 on a quick check, but I'll be testing and configuring it more in the next few days.
 

wa4zlw

Member
Joined
Feb 14, 2008
Messages
845
Reaction score
22
i just tried to upgrade my D.O. image to latest and it fails as well. I pulled down the latest tar.

Code:
root@pbx:~ $ status
Unable to connect to remote asterisk (does /var/run/asterisk/asterisk.ctl exist?)
Unable to connect to remote asterisk (does /var/run/asterisk/asterisk.ctl exist?)

                                                                             Asterisk: UP      Apache: UP    MySQL: UP
                                                                             SendMail: UP    IPtables: UP      SSH: UP
                                                                             LAN port: UP    Fail2Ban: UP   Webmin: UP
                                                                             GV OAUTH: DN   PortKnock: UP   NR VPN: UP
                                                                             FaxGetty: DN   IAX Modem: DN  HylaFax: DN
                                                                             RAM:103MB CentOS release 6.7  Disk:16GB
                                                                             Asterisk such    Incredible GUI 12.0.30
                                                                              Private IP: 45.x.y.z 10.d.e.f
                                                                             Public Info: 45.x.y.z
                                                                             System Time: Sat Dec  3 16:30:15 EST 2016
                                                                                             <  OK  >

asterisk disconnects by itself....

Code:
root@pbx:/ $ asterisk -vrrrr
Asterisk 13.13.0, Copyright (C) 1999 - 2014, Digium, Inc. and others.
Created by Mark Spencer <[email protected]>
Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
This is free software, with components licensed under the GNU General Public
License version 2 and other licenses; you are welcome to redistribute it under
certain conditions. Type 'core show license' for details.
=========================================================================
Running as user 'asterisk'
Running under group 'asterisk'
Connected to Asterisk 13.13.0 currently running on pbx (pid = 3449)
 Loading res_pjsip_sips_contact.so.
 Loading format_siren14.so.
 Loading res_pjsip_header_funcs.so.
 Loading res_pjsip_notify.so.
[2016-12-03 16:31:52] NOTICE[3499]: chan_sip.c:24445 handle_response_peerpoke: Peer 'vitel-outbound' is now Reachable. (48ms / 2000ms)
 Loading res_pjsip_path.so.
 Loading format_wav_gsm.so.
 Loading format_siren7.so.
 Loading res_pjsip_registrar_expire.so.
 Loading res_pjsip_dlg_options.so.
 Loading res_pjsip_one_touch_record_info.so.
 Loading res_pjsip_phoneprov_provider.so.
 Loading format_g723.so.
 Loading res_pjsip_transport_websocket.so.
 Loading format_g719.so.
 Loading format_sln.so.
 Loading res_pjsip_refer.so.
 Loading res_pjsip_dtmf_info.so.
 Loading res_pjsip_multihomed.so.
pbx*CLI>
Disconnected from Asterisk server
Asterisk cleanly ending (0).
Executing last minute cleanups
WARNING: Always run Incredible PBX behind a secure hardware-based firewall.
root@pbx:/ $

from overview page:

SysInfo updated 1 seconds ago

Critical Errors found
Please check for errors in the notification section

retrieve_conf failed, config not applied

so what next?

Thanks leon
 

wa4zlw

Member
Joined
Feb 14, 2008
Messages
845
Reaction score
22
I caught this whizzing by while trying to rebuild

Please wait...

Error(s) have occured, the following is the retrieve_conf output:
exit: 1
found language dir fr for directory, not installed on system, skipping
[FATAL] retreive_conf failed to get engine information and cannot configure up a softwitch with out it. Error: ERROR-UNABLE-TO-PARSE
cp: cannot create regular file `/var/www/html/admin/modules/framework/amp_conf/htdocs/admin/images/.': No such file or directory

Please wait...


KILLING AMP PROCESSES

this is not xivo/wazo but incredible/freepbx
 

wa4zlw

Member
Joined
Feb 14, 2008
Messages
845
Reaction score
22
running the base script as if it was a clean install and get through and then it stops:

Code:
Package perl-JSON-2.15-5.el6.noarch already installed and latest version
Nothing to do
Loaded plugins: fastestmirror, presto, refresh-packagekit, security
Setting up Install Process
Loading mirror speeds from cached hostfile
 * base: linux.cc.lehigh.edu
 * extras: mirror.vcu.edu
 * rpmforge: repoforge.mirror.constant.com
 * updates: mirror.vcu.edu
Package sox-14.2.0-6.el6.x86_64 already installed and latest version
Nothing to do
Loaded plugins: fastestmirror, presto, refresh-packagekit, security
Setting up Install Process
Loading mirror speeds from cached hostfile
 * base: linux.cc.lehigh.edu
 * extras: mirror.symnds.com
 * rpmforge: repoforge.mirror.constant.com
 * updates: mirror.vcu.edu
No package perl-LWP-Protocol-https available.
Error: Nothing to do
--2016-12-03 19:58:37--  http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
Resolving pkgs.repoforge.org... 78.46.17.228
Connecting to pkgs.repoforge.org|78.46.17.228|:80... failed: Connection timed out.
Retrying.

--2016-12-03 19:59:41--  (try: 2)  http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
Connecting to pkgs.repoforge.org|78.46.17.228|:80... failed: Connection timed out.
Retrying.

--2016-12-03 20:00:46--  (try: 3)  http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
Connecting to pkgs.repoforge.org|78.46.17.228|:80... failed: Connection timed out.
Retrying.

from another ssh instance to D.O.:


root@pbx:~ $ ping pkgs.repoforge.com
ping: unknown host pkgs.repoforge.com
WARNING: Always run Incredible PBX behind a secure hardware-based firewall.
root@pbx:~ $ nslookup
> google.com
Server:         8.8.4.4
Address:        8.8.4.4#53

Non-authoritative answer:
Name:   google.com
Address: 172.217.4.78
> pkgs.repoforge.com
Server:         8.8.4.4
Address:        8.8.4.4#53

** server can't find pkgs.repoforge.com: NXDOMAIN
>

now I can ping pkgs.repoforge.org from my local LAN so looks like DNS may be screwed up for this?

edit---now cant get to repoforge from home:

C:\>ping pkgs.repoforge.org

Pinging pkgs.repoforge.org [78.46.17.228] with 32 bytes of data:
Request timed out.
Request timed out.
Request timed out.
Request timed out.

Ping statistics for 78.46.17.228:
Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),

C:\>
 

wa4zlw

Member
Joined
Feb 14, 2008
Messages
845
Reaction score
22
@wardmundy: any thoughts please?

as of this time 9pm EST, pkgs.repoforge.org still times out

thanks leon
 
Last edited:

centrex

Member
Joined
Aug 7, 2016
Messages
34
Reaction score
5
Asterisk 13.13.1 is now asterisk-latest. It doesn't seem to work with any version of the RHEL upgrade script on CentOS 7, 64 bit.
 

Cory Eakins

New Member
Joined
Mar 23, 2015
Messages
5
Reaction score
3
Asterisk 13.13.1 is now asterisk-latest. It doesn't seem to work with any version of the RHEL upgrade script on CentOS 7, 64 bit.

What did you get for an error?
I upgraded a 13.11.2 system to 13.13.1 on Monday, without issues using the fixed upgrade scripts for RHEL/CentOS.
 

centrex

Member
Joined
Aug 7, 2016
Messages
34
Reaction score
5
Asterisk keeps exiting and /tmp is filling with coredumps.

In /var/log/asterisk/full I see it making reference to looking up IPV6 info, then crashing. It could be something new in PJSIP 2.5.5 that enabled IPv6 support that is not agreeing. This server is dual stack IPv4 and IPv6. I will disable IPv6, reboot and re-run the script to see if that makes a difference.

[2017-01-12 01:32:36] DEBUG[23197]: config.c:2193 config_text_file_load: Parsing /etc/asterisk/pjsip_wizard.conf
== Parsing '/etc/asterisk/pjsip_wizard.conf': Found
== res_pjsip_outbound_registration.so => (PJSIP Outbound Registration Support)
Loading res_pjsip_multihomed.so.
== Performing DNS resolution of local hostname 'voip.centrex.me' to get local IPv4 and IPv6 address
asterisk: ../src/pjsip/sip_endpoint.c:175: pjsip_endpt_register_module: Assertion `pj_list_search(&endpt->module_list, &mod->name, &cmp_mod_name)==((void *)0)' failed.
Aborted
 

centrex

Member
Joined
Aug 7, 2016
Messages
34
Reaction score
5
Added to /etc/sysctl.conf:

net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.all.disable_ipv6 = 1


Rebooted. Confirmed absence of IPv6. Re-ran.

upgrade-asterisk13-to-current-rhel

It failed now saying that it is only for Asterisk 13. But asterisk -V shows 13.3.1

I ended up commenting out the following lines for the version check at the top of
upgrade-asterisk13-to-current-rhel

#version=`asterisk -rx "core show version" | grep -m 2 ^ | tail -1 | cut -f 2 -d " " | cut -f 1 -d "."`

#if [[ "$version" != "13" ]]; then
# echo "Sorry. This upgrade utility only works with Asterisk 13."
# exit 1
#fi

It is downloading and compiling asterisk 13.3.1 and PJSIP 2.3 now. I will report back with findings in an hour or so.
 

Members online

No members online now.

Forum statistics

Threads
25,782
Messages
167,509
Members
19,202
Latest member
pbxnewguy
Get 3CX - Absolutely Free!

Link up your team and customers Phone System Live Chat Video Conferencing

Hosted or Self-managed. Up to 10 users free forever. No credit card. Try risk free.

3CX
A 3CX Account with that email already exists. You will be redirected to the Customer Portal to sign in or reset your password if you've forgotten it.
Top