FAQ

If your question is not in the list, then have a look at the mailing list

Build problems

  1. Package qt-mt was not found in the pkg-config search path.
  2. Twinkle crashes at startup
  3. Configure error: cannot compute sizeof (int).
  4. Problems with the boost package.
  5. How do I build Twinkle on a 64-bit architecture?

General

  1. I try to use ALSA, but I get no sound.
  2. Why does Twinkle use “username.domain@local_ip” address in the contact header since version 0.5?
  3. Why does Twinkle respond with "404 Not Found" on incoming calls?
  4. I cannot make calls with Vonage.
  5. How do I make a direct IP-to-IP call between 2 PC's?
  6. Why do all STUN and SIP requests time out?
  7. How can I program the button on my bluetooth headset to answer/hangup a call?

Package qt-mt was not found in the pkg-config search path

The configure script checks the pkginfo file qt-mt.pc to find out if you have the correct version of Qt installed. This pkginfo file is not installed with all distro's. If you do not have this file, but you have the correct version of Qt, then you can skip the version check with the following command:

  ./configure --disable-qt-check

Twinkle crashes at startup

This happens when Twinkle is built with a version of GCC different from the version the commoncpp2 and ccrtp library packages are built with. You can check with ldd to see which version of libstdc++ is linked for the libraries and twinkle.

Uninstall Twinkle and the libraries and build all of them again in this order:

  1. commoncpp2
  2. ccrtp
  3. twinkle

Configure error: cannot compute sizeof (int).

This error occurs when the configure script fails to link some library. Search for the following string in config.log:

checking size of int

A few lines below this you will find an error complaining about a library that cannot be linked. Install this library.

Often this error is given when you build commoncpp2 and ccrtp yourself, but did not execute the ldconfig command afterwards.

Problems with the boost package.

The include directory and library names seem for boost seems to vary on different platforms. Because of this you may run into problems when you try to build Twinkle. Errors reported by users are.

Twinkle looks for regex.h in /usr/include/boost. On some systems the include directory for boost is /usr/include/boost_1_33_1/boost. Either add /usr/include/boost_1_33_1 to your include path, or make a symbolic link from your boost directory to /usr/include/boost.

Twinkle links to the libary libboost_regex.so On some systems the library is called libboost_regex-gcc.so To solve this problem you can make a symbolic link from libboost_regex-gcc.so to libboost_regex.so

How do I build Twinkle on a 64-bit architecture.

On 64-bit architecture, shared libraries often reside in a directory named "lib64" instead of "lib". To configure for this, call the configure script as follows:

./configure --enable-libsuffix=64

I try to use ALSA, but I get no sound.

There can be many reasons why you do not get sound. With ALSA, a common problem is the lack of a proper /etc/asound.conf file. Here is a copy of my asound.conf.

Why does Twinkle use “username.domain@local_ip” address in the contact header since version 0.5?

Like most SIP user agents Twinkle used “username@local_ip” as address in the contact header in REGISTER and INVITE request/responses till version 0.5.

In version 0.5 the address in the contact header has been changed to “username.domain@local_ip” to implement the multilpe profile feature. One could have the following SIP accounts:

If username@local_ip was used as contact address, then both of these accounts would have the same contact address and hence an incoming request could not be mapped to the proper user profile.

To guarantee a unique contact address, Twinkle concatenates the username, a dot and the domain. This results in a valid user part for a contact header as dots are allowed in the user part. There is no requirement that the user part in the contact header should equal the SIP username.

Note: Since version 0.6 the dots in the contact header value are replaced by underscores. Several SIP proxies got confused by a user name that looks like their own IP address or domain. With the underscores those proxies don't complain any more.

Note: Since version 0.7 this option is disabled by default. You can enable it when you want to activate multiple profiles that have the same SIP user name.

Why does Twinkle respond with "404 Not Found" on incoming calls?

"404 Not Found" means that the request-URI of the incoming INVITE does not match any of your active user profiles.

I have seen that this sometimes happens with some SIP proxies that cannot handle the contact name composed of the user name and domain (see above)

To make Twinkle work with such broken proxies, you could disable the following in the SIP protocol settings in the user profile.

Use domain name to create a unique contact header value

I cannot make calls with Vonage.

Vonage cannot handle the contact name composed of the user name and domain (see above)

To make Twinkle work with Vonage, disable the following in the SIP protocol settings in the user profile.

Use domain name to create a unique contact header value

How do I make a direct IP-to-IP call between 2 PC's?

Assume you have have 2 PC's with the following IP addresses:

On both PC's you have Twinkle running. On the first PC the SIP user name is alice and on the second PC the SIP user name is bob.

How can Alice call Bob directly without using a SIP proxy?

From Alice's Twinkle dial "bob@10.0.0.2".

That's all!

Note: Make sure you have disabled the option "Use outbound proxy" in the SIP server settings of the user profile.

Why do all STUN and SIP requests time out?

There may be many reasons for this problem. One of those reasons may be the settings of your ADSL modem.

For Speedtouch modems you have to unbind the NAT settings for SIP to make it properly work with SIP:

nat unbind application=SIP port=5060
config save
system reboot

For the COMTREND wireless ADSL2+ router (CT536+) switch off "SIP enabled" in the "Advanced Setup > NAT > ALG" menu.

How can I program the button on my bluetooth headset to answer/hangup a call?

Put the following lines in your .btscorc file:

AT\+CKPD=200
system /usr/bin/twinkle --cmd answerbye