Improper config generation, resulting in trunk registration failure

Hello, I believe I found a pretty important bug. I want to describe the steps I had taken to discover and produce the bug I found. This resulted in various trunks I had across multiple tenants getting improper pjsip.conf configurations resulting in sip trunk connectivity loss.

I would change a setting with a device profile or create a new device profile to be applied to a new trunk I was creating. After saving and applying config multiple trunks lost their connectivity. But not every trunk for every tenant.

After hours of debugging I discovered that when saving the device profile it seemed to be generating improper configuration in the trunk pjsip.conf settings. Here is what I found specifically:

The brackets [] around the config fatal_retry_interval is incorrect and was being put into the pjsip.conf for different trunks but not for others. Even though they were all defaulted to a null setting. The ones with the correct format were fine. The ones without could not register to sip provider due to it causing a gap in configuration. Anything below that config line was invalid causing an incomplete trunk configuration. This seems highly likely a bug with how vitalpbx generates the configuration from the webgui.

for trunk 1
grep -Rni -A25 -B2 --include='*.conf' '^\[obfuscated\]' /etc/asterisk | grep -viE 'password|secret'
/etc/asterisk/vitalpbx/pjsip__50-5-trunks.conf-58-[fatal_retry_interval]     <------ incorrect

/etc/asterisk/vitalpbx/pjsip__50-3-trunks.conf-57-fatal_retry_interval=0     <------ correct
OR
/etc/asterisk/vitalpbx/pjsip__50-3-trunks.conf-57-fatal_retry_interval=60    <------ also correct

trunk 2
grep -Rni -A25 -B2 --include='*.conf' '^\[obfuscated\]' /etc/asterisk | grep -viE 'password|secret'
/etc/asterisk/vitalpbx/pjsip__50-2-trunks.conf-57-[fatal_retry_interval]   <----incorrect

trunk 3
grep -Rni -A25 -B2 --include='*.conf' '^\[obfuscated\]' /etc/asterisk | grep -viE 'password|secret'
/etc/asterisk/vitalpbx/pjsip__50-3-trunks.conf-57-fatal_retry_interval=60 <---correct

trunk 4
grep -Rni -A25 -B2 --include='*.conf' '^\[obfuscated\]' /etc/asterisk | grep -viE 'passwo
rd|secret'
/etc/asterisk/vitalpbx/pjsip__50-11-trunks.conf-58-fatal_retry_interval=60

trunk 5
grep -Rni -A25 -B2 --include='*.conf' '^\[obfuscated\]' /etc/asterisk | grep -viE 'password|secret'
/etc/asterisk/vitalpbx/pjsip__50-18-trunks.conf-58-[fatal_retry_interval]  <----incorrect

I will reach out to support for this but I am hoping I can get a response here for the community and maybe a planned update to fix this. It caused me quite the outage yesterday.

This was addressed on the latest VitalPBX update.

1 Like

Awee man here I was thinking I was all cool finding a bug and trying to help out :face_savoring_food:.
Thank you Miguel!