- Joined
- Aug 6, 2021
- Messages
- 4
- Reaction score
- 0
Hi all,
New to 3CX/networking and new to the forums. Would really appreciate any guidance and support on identifying quality issues I'm having with conference calling within 3CX. Apologies in advance if I've posted this in the wrong category and for the very long post! Happy to repost where appropriate.
Context
New to 3CX/networking and new to the forums. Would really appreciate any guidance and support on identifying quality issues I'm having with conference calling within 3CX. Apologies in advance if I've posted this in the wrong category and for the very long post! Happy to repost where appropriate.
Context
- Decided to jump on the 3CX bandwagon when a free version was announced for the Raspberry Pi. After months of research, I have successfully managed to setup 3CX and forward ports so I can setup extensions outside of my network. I currently have over 20 extensions (majority outside my network) that have been successfully provisioned and only 1 IP phone (1-2 more to be added in the new future, for additional remote extensions). I intend to use this system as a pure internet calling facility with no calling/dialing to external numbers - will look at adding external SIP functionality in the future
- Since my 3CX instance has only been configured for internet-to-internet calling, when I reference 1-to-1, I'm referring to pure internet calls, no calling/dialing to external numbers
- 3CX is installed on a Raspberry Pi 4 8GB model with a 500gb SATA SSD (connected via USB 3). It's also overclocked to 2.14ghz just to squeeze out a bit more performance
- I have a Unifi USG-3P firewall that is configured with all the necessary ports required by 3CX + also have IPS enabled for added security - this is installed on a residential premises
- 3CX is on its own VLAN isolated from my LAN network for additional security - appropriate firewall rules have been created and tested to ensure isolation from all other VLANs on my network
- I have recently learned about QOS and have not enabled any such feature within my Unifi firewall to prioritize VOIP traffic (I do understand this could be an issue but will try to articulate in my testing methodology below)
- I have a 100mpbs download/40 mbps upload internet connection
- Over 90% of my extensions are using Android softphone/app (almost all with on the latest Android version) with the remaining being 2-3 iPhone users, Windows softphones and an IP phone
- On an extension level, each extension has been configured with the following codec priority - OPUS > G722 > G729 > G711 U > G711 A > GSM FR
- From the Settings > General section, aforementioned codec priority has been set as the same for Local/Internet calls and have left External call codec priority as default - as I have not configured any external calling functionality yet
- As I am new to 3CX and PBX installs in general, 1-to-1 call quality using OPUS between 3CX smartphone apps has been an unbelievable experience, the quality is just so sharp, it's difficult going back to using anything else for internet-to-internet calls! Absolutely superb quality!
- However, what I'm not able to figure out is why the quality tends to drop for certain extensions when I setup a conference call
- As mentioned above, when I initiate a call from my Pixel 4XL to say another android smartphone/remote extension (e.g. another Pixel 4XL), the call quality is absolutely fantastic, crystal clear and crisp. When I initiate a conference call from the Android app itself to add 1 additional participant, the newly entered participant more often than not has reduced voice quality followed by crackling/popping sounds every time they speak - when they are silent, there is no audio disturbance, only when they speak
- Also, it's worth mentioning that some conference calls don't have any disturbance/crackling/popping - however, this is a rare occurrence - hence why I'm beginning to believe this might be more of a client issue (with certain Android smartphones) than a server issue, more details below in the Troubleshooting steps section
- As mentioned above, when I initiate a call from my Pixel 4XL to say another android smartphone/remote extension (e.g. another Pixel 4XL), the call quality is absolutely fantastic, crystal clear and crisp. When I initiate a conference call from the Android app itself to add 1 additional participant, the newly entered participant more often than not has reduced voice quality followed by crackling/popping sounds every time they speak - when they are silent, there is no audio disturbance, only when they speak
- I have done a fair bit of troubleshooting sadly to no avail - here is what I've done till date
- Overclocked Raspberry Pi processor - I observed the Pi's Memory, CPU usage and CPU clock speed whilst on a conference call, it doesn't break a sweat. CPU usage fluctuates between 5-10 percent, and only for short bursts so I'm confident it's not the Pi's CPU/memory - however, happy to be corrected
- Attempted to initiate a conference from my IP Phone, Web client and windows smartphone with similar experiences for newly joined participants on the conference call - some participants have more crackling/popping than others
- I read someone else's post to confirm if this is a client or server side issue where I setup a mock conference call and dialed in and listened to the quality of the hold music for 4-5 mins - they suggested that if you hear crackling/popping with the hold music then there's an issue with the Server, however, the hold music quality was fine, no quality issues whatsoever, so I'm leaning towards ruling out any Server side issues with the Raspberry Pi
- I tried removing OPUS entirely from the codec priority and made G722 as the top priority codec for a select few extensions and tried the test again with similar experiences - I must admit I may not have changed settings within the Settings > General area so I don't know if that test was comprehensive
- I've also noticed that the crackling/popping would arise with loud sounds (someone speaking loudly or noisy background noise), so I tried to alter the client app settings for almost all Android phones where I enabled Echo cancellation, reduced Microphone gain to 100% and changed the Audio Subsystem API to Automatic - I noticed an improvement with some android clients but 2 android clients that come from the same remote network seem to have the most issue with voice quality on conference calls and 1-to-1 calls
- I'm beginning to think if OPUS is the problem with conference calls - is there a way to keep OPUS as the priority codec for 1-to-1 calls and G722 for conference calls only?
- I've recently learned about QOS and VOIP priority - I have not enabled this on my firewall (as it's not straight forward on Unifi firewalls) and have tested a variety of scenarios (induce heavy network traffic, video streaming etc.) and the 1-to-1 call quality hasn't waivered, still clear and crisp
- As mentioned above, 2 android clients from the same remote network seem to have the most issue (they have been having internet issues lately) so I'm going to guess that OPUS isn't working well for them hence audio issues on 1-to-1 calls and conference calls, however, conference call quality just isn't consistent across the board and I can't for the life of me figure out why! Very few conference calls work quite well while most of them at least 50% of the participants (e.g. 2/4 people on the call) have mild/heavy crackling/popping when they speak
- Can these issues be due to my codec priority? Particularly as OPUS is top priority codec for all compatible extensions?
- 1-to-1 calls with OPUS as the top priority has been an incredible experience, honestly, I didn't know internet calls could be so clear, so how can Conference calls be so far off the mark?
- I've read previous posts suggesting OPUS can be temperamental with conference calls, is this still the case? If so, as asked above, can we force 1-to-1 calls to use OPUS and conference calls use another more suitable codec?