Git
GIT upload
If you attempt to push a large set of changes to a Git repository with HTTP or HTTPS, you may get an error message such as error: RPC failed; result=22, HTTP code = 411. This is caused by a Git configuration default which limits certain HTTP operations to 1 megabyte. To change this limit run within your local repository
git config http.postBuffer *bytes*where bytes is the maximum number of bytes permitted. For exmaple:
git config http.postBuffer 524288000
Self-compiled sniffer from Git sources
If you use a self-compiled sniffer from Git (required for Napatech cards, which are not supported in static binaries provided by voipmonitor.org), configure the sniffer's /etc/voipmonitor.conf with:
upgrade_by_git = yes
git_folder = /usr/src/voipmonitor-git
When you click UPGRADE in the GUI, the sniffer will perform these steps:
git pull configure make clean make service voipmonitor stop make install service voipmonitor start
If you need special parameters for configure (e.g., for Napatech support), add them with the configure_param option:
configure_param = --with-dpdk-include=/opt/napatech3/include --with-dpdk-lib=/opt/napatech3/lib
Troubleshooting Git Upgrade Issues
= Error: "You are not currently on a branch"
If the git upgrade fails with the error fatal: You are not currently on a branch., your Git repository is in a detached HEAD state. This typically happens if a specific commit hash or tag was previously checked out, or if a previous upgrade attempt was interrupted.
The upgrade_by_git mechanism relies on git pull to update the source code, which only works when you are actively tracking a branch (e.g., master or develop).
Solution:
1. Navigate to your Git source directory:
cd $(grep "^git_folder" /etc/voipmonitor.conf | awk '{print $2}')
# Or directly if you know the path:
cd /usr/src/voipmonitor-git
2. Check the current Git status:
git status
Expected output should show: HEAD detached at <commit-hash>
3. Switch to the appropriate branch:
For standard production (stable) installations:
git checkout master
For Napatech cards or development builds:
git checkout develop
4. Update to the latest code:
git pull
5. Verify you are on the correct branch:
git branch
Expected output should show an asterisk (*) next to master or develop.
6. Retry the upgrade process from the GUI or command line.
Note: The Napatech documentation and official instructions refer to the branch as develop (NOT "development"). Use the exact branch name to avoid errors.
ARM64/aarch64 Platform Support
If you are running VoIPmonitor on an ARM64 (aarch64) system, standard automatic upgrades via the GUI are not supported because VoIPmonitor provides pre-compiled static binaries only for x86_64, i686, and ARMv6k (Raspberry Pi).
Attempting to upgrade an ARM64 system with the GUI UPGRADE button will fail with:
Exec format error
This occurs because the upgrade downloaded an x86_64 binary which cannot execute on ARM64 architecture.
Solution: Configure Git-Based Upgrades
To enable automatic upgrades on ARM64, you must compile from source and configure the sniffer to use git for updates:
# 1. Initialize the source directory (if not already compiled from source)
git clone https://github.com/voipmonitor/sniffer.git /usr/src/sniffer
# 2. Compile the sniffer (follow compilation instructions from Sniffer_installation)
cd /usr/src/sniffer
./configure
make
make install
# 3. Edit /etc/voipmonitor.conf and add:
upgrade_by_git = yes
git_folder = /usr/src/sniffer
# 4. Restart the service
systemctl restart voipmonitor
How It Works
When you click UPGRADE in the GUI (or trigger an upgrade via API), the sniffer will perform:
git pull
configure
make clean
make
service voipmonitor stop
make install
service voipmonitor start
This automatically compiles the latest version from the git repository. The first upgrade will take several minutes to complete.
⚠️ Warning: The build process requires all compilation dependencies. See Sniffer_installation for required packages.