General Questions
- Q: What versions of Asterisk are recommended by Khomp?
- A: The Khomp continuously performs tests using diverse versions of Asterisk, since the stable versions of the 1.2 series until the latest versions of the series 1.6.x. However, some special versions are recommended because of stability issues, or not supported, as known issues. As a quick reference guide, the versions that we recommend:
- 1.4 series: version 1.4.19.2;
- Series 1.6.x: 1.6.2.7 or higher.
Several releases of the series 1.4 are not recommended because problems that affect its operation directly, according to the listing below:
- 1.4.11: memory leak in the accounting of calls (CDR)
- 1.4.20 to 1.4.24: many problems associated with audio hooks, used for recording and monitoring calls, resulting in missing samples on recorded files
- 1.4.25: attended transfer not working
- 1.4.26 to 1.4.28: application Background overwriting the current extension incorrectly on return;
- 1.4.29: attended transfer broken, works only if transformed into a blind transfer (by hanging the transferer)
- 1.4.30 to 1.4.34: During a supervised transfer, if the transferer and transfered hangup, the softpbx keeps calling the destination, resulting in missing audio or busy tone if the phone is answered.
- Q: My Linux distribution is not in the list of distributions approved by KHOMP. This means that the card will not work?
- Q: Will my GNU/Linux work with KHOMP boards?
- Q: If my distribution was not tested by KHOMP, this means that the boards would not work in this distribution, regardless of my kernel?
- A: The list for GNU/Linux compatibility on the channel package shows where the channel driver was compiled and tested. However, as there are hundreds of distributions, with multiple software versions and variations, it becomes impractical to test all systems.
This does not mean that if a particular system is not listed as approved, will not work. The drivers and the installer are designed to operate independently of the distribution, which facilitates its installation in various GNU/Linux systems without major difficulties.
However, some points should be checked, such as requirements for proper functioning of the drivers:
- kernel version - all versions of 2.6 are supported, but we recommend version 2.6.22 or newer;
- gcc compiler version - GCC 3.4 or higher is supported, but we recommend GCC 4.1 or higher;
- glibc version - supported since GLIBC 2.3.6;
- Asterisk version - the series 1.2.x, 1.4.x and 1.6.1.x are supported, check above for recommended versions.
Troubleshooting
- Q: The channel is showing error messages about the command "CM_DISCONNECT. What does this mean?
- A: These messages can appear in the channel versions 2.3 or earlier. If these messages are sporadic, there are no problems going on: it is possible that the channel has sent the disconnect command to hangup some call, but it was already disconnected - which caused an error. This does not affect other connections, or the call that received the command.
- Q: The channel is showing error messages the command "CM_ADD_STREAM_BUFFER. What does this mean?
- A: These messages usually appear in versions 2.2 or earlier of the channel when the Asterisk and/or a SIP client is sending packets in a wrong rate, or sending them in large bursts. If messages are sporadic, occurring at a rate of about one message per second per channel, this may be not problem. However, if the message appears multiple (over 50) times per second, per channel affected, this is an audio problem and needs to be investigated.
- Q: The Playback/MusicOnHold appears jittered or slow when there is some load on Asterisk®. However, with few calls, there are no problems.
- A: Asterisk by default used to install audio files only in the GSM and MP3 format. This means that each new connection that executes a playback or a music on hold will start a new process for transcoding audio, from MP3/GSM for A-law. In the case of an IVR application, in particular, this problem is even worse, due to the constant playback of messages, and the processor usage increases dramatically.
In these cases, it is recommended to create A-Law versions for the sound files, the native encoding for the Khomp boards. This can be done through the sox utility, with the following command line (consider "/var/lib/asterisk/sounds" the current directory):
for file in *.gsm */*.gsm; do echo $file; sox $file -twav -A -r8000 \
"$(dirname $file)/$(basename $file .gsm).alaw"; done
- Q: Asterisk is between the legacy PBX and the central office, but even doing pass-thru on Khomp links of the same board, I'm having trouble using FAX machines. What is happening?
- A: You must verify that the native bridge mode is active in this situation, which is the only situation where there is guarantee for FAX correct operation. If not, when Asterisk is on a larger load, the audio may be delayed too big for the echo cancellers of FAX machines able to work.
Also, maximum delay for audio delivery will no longer be guaranteed, since the audio is converted from TDM to packets, and then back to TDM. This can result in a failure of a few milliseconds between packets, which is imperceptible to the human ear, but can cause problems in FAX machines and modems. However, using the non-native bridge mode is possible too: Asterisk must be executed with realtime priority, and every audio flow which uses packet (IP) communication should have low rate of packet loss and a good level of predictable delay, or FAX specific protocol (T-37 or T-38).
Q: When I run the Asterisk, the following error message are shown while loading the chan_khomp.so: "cannot restore segment prot after reloc: Permission denied". What may be happening? A: The latest Linux distributions (like Red Hat Enterprise) and its derivatives (Fedora Core, CentOS) have enabled the security policies of the SELinux project by default. These policies allow finer control over system security. However, SELinux also changes some behaviors of the original system - as the load of dynamic libraries - which can be problematic to third party programs. To correct the problem, you can:
Change the default security context of the channel Khomp, running the following commands:
chcon --reference=/usr/lib/asterisk/modules/app_dial.so
/usr/lib/asterisk/modules/chan_khomp.so
chcon --reference=/usr/lib/asterisk/modules/app_dial.so
/usr/sbin/asterisk
Disablie SELinux altogether by setting the line:
SELINUX=disabled
in the file /etc/sysconfig/selinux
ou/etc/selinux/config
</ul>
- Q: The Khomp drivers and KServer services are being loaded automatically on my system, but KServer cannot boot. What may be happening?
- A: KServer must always be initialized after mounting the filesystem a read/write have been completed. Check how you are booting your system, and preferably start the KServer only after final mount of the file system.
- Q: I tryed to start Asterisk, but the Khomp channel is returning me the following error:
chan_khomp: ERROR: loading K3L API failed: Could not connect to server.
However, the service is running, and the kernel module is loaded.
- A: Due to recent changes in KServer, it now restricts the source IP for connection and access to the boards. Check your routing and NAT rules - in particular, make sure your system is not performing masking routes for any IP address. This can even make a local connection (the interface lo) to be routed via NAT, and the source IP for local connections to show as your LAN IP, causing the KServer to reject the connections.
One way to solve the problem is to change the following configuration of the firewall to:
# iptables -t nat -A POSTROUTING -j MASQUERADE
Para:# iptables -t nat -A POSTROUTING \! --destination 127.0.0.1 -j MASQUERADE