|
|
This page contains a variety of common questions/problems and hopefully solutions.
When I make or receive a Skype call, I don't hear anything (no audio/sound), one way audio or I get RTP Timeout Error.
Versions 20090502 and higher have additional NAT enhancement settings - UPGRADE.
If you upgraded by overlaying with the new version, check the settings: publicIP, stunServer, enableNatTranslate and enableNatTranslateVia in your siptosis.cfg against the version in the samples folders.
Confirm setting enableSendRTPtoReceivedAddress=yes in siptosis.cfg.
Make sure the RTP ports are not being blocked by any type of firewall or nat device.
SipToSis default incoming UDP ports to open are 5070 and 63200-63202. For multiple channels
you will need to include the ports for all channels. The startup display shows the port allocations.
Make sure that the correct IP address is being used in the SipToSis configuration file(s).
Make sure your contact_url displayed on the SipToSis console is your SipToSis machine's IP address.
If your ATA or PBX is giving out your public IP address to a SipToSis setup on your local network
then it will not work properly. You will have to correct the problem in the ATA or PBX setup.
Note: Version 20100912+ attempts to work around the public IP issue.
Some additional help for various scenarios follow below.
Note: If you have setup SipToSis with a contact_url to use a public IP instead of a local network you will not be able to make
calls through the gateway from any SIP source using a local network IP.
SipToSis with outside server/provider:
Enable stunServer or set publicIP in siptosis.cfg - but not both.
enableNatTranslate=yes
If some nasty cases, set enableNatTranslateVia=yes also.
Make sure required ports are open/forwarded from internet.
Warning: If you open the SIP port (5070) to internet, make sure SipToSkypeAuth.props
and/or the SipToSis outbound proxy is setup properly to avoid unauthorized use.
Systems with multiple network interfaces:
You will need to edit siptosis.cfg to force SipToSis to use the correct interface as follows:
via_addr=ActualInterfaceIPAddressOfSipToSis
host_ifaddr=ActualInterfaceIPAddressOfSipToSis
ATA direct to SipToSis:
Disable silence suppression on your SIP device.
Disable STUN on your ATA. On Linksys ATA's like the SPA-3102 make sure
the External IP is blank on the Info screen - if it's not blank, it must be corrected by turning off
STUN and make sure EXT IP is blank. These settings are at the bottom of the SIP tab.
Note: Version 20100912+ attempts to work around the need to turn off STUN.
I have screen shots for this ATA on the ATA setup page.
Asterisk specific:
Check your externip, bindaddr, localnet and nat settings.
Don't use loopback addresses (127.0.0.1) in SkypeToSipAuth.props.
No Skype audio being received when calling toll free numbers and/or certain types of answering systems.
The symptom of this condition: You see on console "skypeCallStatus[?????] - EARLYMEDIA" and never see "skypeCallStatus[?????] - INPROGRESS"
Use the following settings to work around it.
sendSkypeEarlyMediaOverSipSessionProgress=no
handleEarlyMedia=yes
Diagnostic procedure if none of the above resolved the problem:
Stop SipToSis.
Delete the contents of the log folder.
Edit siptosis.cfg and set logConfigFile=log_debug.properties.
Start SipToSis and create the problem.
Stop SipToSis again.
Analyze the INVITE messages contained in log/message.log or log/siptosis.log for proper IP addresses.
If you don't know what to look for, post the SipToSis startup section and the INVITE message on the forum.
One the problem has been corrected, edit siptosis.cfg and set logConfigFile=log.properties for normal operation.
What does "Unrecognized identity" or "Unrecognised identity" mean?
The general meaning is that the Skype User being called is not valid.
If you are attempting a SkypeOut call then check the following:
- Improper dial plan setup
- Improper configuration of SkypeOutDialingRules.props, you can create mappings and transforms in this file.
- Improper setup in the PBX dialing extensions (See next question)
When dialing out with my PBX's dial plan, the dialing prefix is being sent to the Skype Gateway. How can I fix this?
Normal Asterisk PBX's can strip the dialing prefix in the extensions.conf file like this:
exten => _7X.,1,Dial(SIP/siptosisuser/${EXTEN:1})
or exten => _901.,n,Dial(SIP/stsTrunk_01/${EXTEN:3})
If your PBX can't be configured this way or you don't want to, then you can work around this in SkypeOutDialingRules.props.
For example, if your PBX dialing prefix is 7 you could add the following line:
^7([1-9][0-9]{10})$:+$1
The $1 will only capture what's in the parenthesis. In the example above, the 7 prefix will be left out when
making the SkypeOut call with 11 digit dialing.
If 713051234567 was sent to the gateway, SipToSis would transform it to +13051234567 as needed by Skype.
For other dialing prefixes, change the 7 to the new prefix.
You can also do this for Skype User mapping with as many lines as you need.
Note: make sure no other rules make the same match.
Read up on regular expressions if you need to get more complicated.
Why do incoming Skype callers hear a message "invalid destination" played back to them?
You did not complete the installation and setup a destination SIP address in SkypeToSipAuth.props.
This procedure is covered on the ATA setup page and also the SipToSis' readme.txt file.
I'm calling the gateway via SIP and I get UnAuthorized Caller or rejected call (no auth/destination)
By default SIP calls only from a local network will be authorized to make Skype calls.
If you are using non-standard local network address ranges or are using a public IP you
will need to add the IP addresses to SipToSkypeAuth.props.
For example for want to use the gateway from 24.54.64.75
Edit SipToSkypeAuth.props
Add a line:
*,*,24.54.64.75,calleeid
How do I call a Skype User when I can only dial numbers on my phone?
You can add mappings to SkypeOutDialingRules.props or if using a PBX, you can map them there.
If your Skype client has speed dial, you can map numbers to users there also.
To use the built in mapping features add patterns to SkypeOutDialingRules.props like this:
^([1-9][0-9]{6})$:+1561$1
^([1-9][0-9]{9})$:+1$1
^([0-9]{7,})$:+$1
^50$:skypeusertocall1
^51$:skypeusertocall2
^52$:skypeusertocall3
^53$:skypeusertocall4
The first 3 lines handle SkypeOut calls using standard U.S. style 7, 10 and 11 digit and International dialing. Change the 1st line's area code as needed.
The rest of the lines perform number to Skype User translations.
I'm getting an error when calling: FAILED (Reason: Sound I/O error.)
This is caused by an improperly configured Skype sound device.
A Skype Compatible sound device is required for all operating systems.
Linux specific issues:
When using a sound hardware: You may not have setup to share the sound device correctly (usually the microphone is the issue but not always). See Sharing sound device with Alsa for an example of how to do this.
When using snd-dummy: It can indicate running out of streams. Either enable more snd-dummy cards (modprobe snd-dummy enable=1,1,1,1 and 8 clients per dummy card)
or modify the Alsa driver's dummy.c to allow more streams as shown on this page.
I'm getting an error "Incorrect libskype.so version"
You did not follow the upgrade instructions in the siptosis readme.txt file. Delete libskype.so from the siptosis root folder.
The new version will be copied in from the samples folder on the next startup.
If you have problems with the new version loading on your system such as unsatisfied link:
Check you have the needed shared libraries. ldd libskype.so - install any missing pieces.
If needed, compile the Skype4Java native connector from source.
Compiling instructions are near the end of the siptosis readme.txt file.
I'm hearing the caller from the speakers when on a call
Skype has changed the behavior of the API or created a bug with the new Skype clients. Clients 3.8 and 2.0.0.72 do not have this problem.
For Windows Skype clients 4.x simply turn the speaker volume down to the minimum setting on the Skype sound settings screen.
For linux Skype clients the client does not have volume controls - you will have to either mute the sound with alsamixer (Note: I do not recommend using pulse audio with the gateway)
This will mute the entire system. If you only want to mute skype, see Skype Alsa setup
The other option is to setup snd-dummy.
I'm trying to make a skype call and sometimes I get some strange SIP response messages?
Here's the default possible call failure response codes. Your PBX/Asterisk Server will need to handle these statuses.
- 603 Skype User refused the call
- 404 Skype invalid user or Number
- 408 Skype Call Failed (possibly no skype credit)
- 600 Skype user is busy
- 480 Over Usage Limit (as of version 20090526)
- 403 Anything else (possibly no skype credit)
Note: Some Skype clients behave differently so the response may vary - especially for no credit errors.
These status codes can be changed as of SipToSis version 20080926.
The current default failure status code settings in SipToSis.cfg are:
baseFailureResponse=403
skypeRefusedResponse=603
skypeFailedResponse=408
skypeInvalidDestinationResponse=404
skypeBusyResponse=600
OverUsageLimitSipResponse=480 (as of version 20090526)
SkypeUserOfflineFailureResponse=410 (as of version 20110607)
You can set these values to whatever your needs are.
The stsdialresult macro included with SipToSis should handle these. If you are not
using an Asterisk PBX, you may have to custom handle them yourself or change the response codes to fit your
PBX server. Note: The stsdialresult macro is obsolete. You should use stsProxy for multi channels.
I see a message like this: 401 realm mismatch. realm from external server is: asterisk
The realm setting in siptosis.cfg is incorrect.
For this example set realm=asterisk.
I'm trying to use the register feature and I get "Registration failure: 401 Unauthorized"
Incorrect realm is the most likely cause.
On an Asterisk type server, look for realm=???? in sip.conf, if the realm entry is not set, it should be 'asterisk'.
If you still don't know what the realm should be. Do the following procedure to find out:
Delete log files in the siptosis/log folder.
In siptosis.cfg set logConfigFile=log_debug.properties
Run siptosis to get the error message again
Look at the siptosis/log/message.log file and look for the "SIP/2.0 401 Unauthorized" message:
192.168.0.4:5060/udp (511 bytes): received
SIP/2.0 401 Unauthorized
Via: SIP/2.0/UDP 192.168.0.4:5070;branch=z9hG4bK173300;received=192.168.0.4;rport=5070
From: "skypetestuser" <sip:skypetestuser@192.168.0.4:5060>;tag=z9hG4bK88627584
To: "skypetestuser" <sip:skypetestuser@192.168.0.4:5060>;tag=as1ce8cbcf
Call-ID: 680092275580@192.168.0.4
CSeq: 1 REGISTER
User-Agent: Asterisk PBX
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY
WWW-Authenticate: Digest algorithm=MD5, realm="asterisk", nonce="2eef842d"
Content-Length: 0
It's telling you the correct realm to use (^^look up^^)
The Audio chops/chopping/choppy, what can I do to reduce or eliminate it?
If you are using other programs, expect to get some chopping.
Startup of applications and anything that performs disk access will cause the most problems.
You may also be experiencing some internet latency or packet loss issues. Make sure
that Skype has no issues if you use it manually.
The skype echo test is not a good test for this.
There are a few basic things to try:
- Raise the Network Jitter Level in the ATA
- Turn off software firewall - if this resolves the issue, you can try another
software firewall or get a hardware firewall
- Disable QOS in tha ATA
- If using bandwidth throttling, make sure you are allowing sufficient bandwidth
- Test your network and internet connection for packet loss and fix if possible
- Make sure your internet connection has sufficient bandwidth
- Use of linux snd-dummy driver as the Skype output device is known to cause this problem in some cases.
If you have a sound card, try Sample Linux Sound Setup or Alternative to snd-dummy.
- Make sure your CPU is not at maximum
- Make sure the system is not swapping - indicating insufficient memory
There are also a few settings in siptosis.cfg you can try:
- jitterLevel=2
- For PCMU/PCMA codecs, set audio_frame_size to 160 - some phones require 160
The sound/audio is delayed more than using Skype directly
Some additional delay is unavoidable due to the nature of the
additional transcoding, network/cpu latency and the
additional transfer of the audio packets to/from the SIP device (which also has inherent delays).
Realistically, expect at least 125ms minimum additional delay.
If you are using Asterisk, it is best to use canreinvite=yes on both SIP legs (if possible) to
avoid another hop and additional Asterisk loading.
That said, on Linux the default network socket buffers may be very large by default
- on my default Centos 5.2 install it's around 55,000.
While this is great for high data throughput, it's not very good for real time applications.
The following settings in siptosis.cfg may help:
jitterLevel=-1
TcpRxBufferSize=8192
TcpTxBufferSize=8192
RtpRxBufferSize=8192
RtpTxBufferSize=8192
Other possibilities:
- You are using a softphone - every softphone I have tested adds delay - get an ATA.
- Your internet connection has insufficient bandwidth
- Your CPU is overloaded
- snd-dummy can also cause delay problems on some linux systems - see next section
While on a call the sound delay increases as time passes (time shifting)
snd-dummy can cause this (even if only set as the input device).
Click Alternative to snd-dummy for a solution if you have a hardware sound device.
If you have no sound hardware then make sure Alsa driver version is at least 1.0.20
How do I get the very best audio quality it can provide?
Use an ATA not a softphone. ATA's are specifically designed to output 8K audio without transcoding.
Use the RW codecs to disable the interpolating downsampling and setup the FIR or RC filter.
Note: The filters affect the audio being sent to the SIP device only.
In siptosis.cfg it could look like this:
audio_codec=PCMURW,PCMARW,ILBCRW
audio_frame_size=240,240,240
audio_avp=-1,-1,98
FIR Filter:
FilterParams=FIR,100,HANNING,LP,0,3200
RC filter:
FilterParams=RC,50,40
Note: Both filters will use more CPU. The FIR filter uses the most.
The volume levels can be adjusted per codec.
To change the volume sip->skype:
skype_audiooutgain=1,1,1
To change the volume skype->sip:
skype_audioingain=1.2,1.2,1.2
Increase the numbers to increase the volume. (1=no adjustment)
I have no sound hardware, what are my options?
Skype requires a compatible sound device - no exceptions.
Windows, try : Virtual Audio Cables.
Linux, try snd-dummy.
MAC OSX, try SoundFlower
I'm getting "error creating rtp socket" when starting the program
Another program is using the audio port. Edit siptosis.cfg and change the port:
audio_port=63200
to
audio_port=63210
On Linux and Windows you can check for used ports with the command netstat -a
How do I enable the GSM codec?
The GSM codec is not included in the siptosis package.
There are two GSM codecs that are supported - Tritonis and Sun's JMF - Both work well.
Do not enable both GSM codecs at the same time.
Note: The codec order placement controls the codec preference.
GSM using GPL Tritonus Libraries
Download the tritonus libraries.
Get tritonus_gsm-0.3.6.jar and tritonus_share-0.3.6.jar and put them in the SipToSis folder.
Change the codec settings in siptosis.cfg.
For example, if the codec parameters look like this:
audio_codec=PCMU,PCMA,ILBC
audio_frame_size=240,240,240
audio_avp=-1,-1,98
Simply insert the GSMTRI codec parameters.
After the change it would look like this:
audio_codec=PCMU,PCMA,GSMTRI,ILBC
audio_frame_size=240,240,160,240
audio_avp=-1,-1,-1,-1,98
GSM using Sun's Java Media Framework
Download and install Sun's Java Media Framework from Sun's website. Locate jmf.jar file and copy it to the SipToSis root folder.
Change the codec setting in siptosis.cfg.
For example, if the codec parameters look like this:
audio_codec=PCMU,PCMA,ILBC
audio_frame_size=240,240,240
audio_avp=-1,-1,98
Simply insert the GSM codec parameters.
After the change it would look like this:
audio_codec=PCMU,PCMA,GSM,ILBC
audio_frame_size=240,240,160,240
audio_avp=-1,-1,-1,98
I'm seeing messages like Codec: GSMTRI not loaded or Codec won't instantiate.
Note: This message is harmless and will not stop operation of the other codecs. It is just a warning that a configured codec is not operational.
If you want to use it, download the tritonus libraries
tritonus_gsm-0.3.6.jar and tritonus_share-0.3.6.jar and put them in the SipToSis folder.
If you did that correctly already, then you may not be using the current SipToSis startup file.
Update your startup script's classpath to contain references to the jar files above.
If you don't want to use GSM with the tritonus libraries or don't want the message,
edit siptosis.cfg and remove GSMTRI from the codec list.
For example, if the codec parameters look like this:
audio_codec=PCMU,PCMA,GSMTRI,ILBC,SPEEX
audio_frame_size=240,240,160,240,160
audio_avp=-1,-1,-1,98,97
Since GSMTRI is the third codec, simply remove the third entry from each line.
After removal it would look like this:
audio_codec=PCMU,PCMA,ILBC,SPEEX
audio_frame_size=240,240,240,160
audio_avp=-1,-1,98,97
The same procedure is used to remove other unwanted codecs or add additional supported codecs.
How do I record the audio streams?
These are the settings - all recordings are placed in the recordings folder.
Note: RTP audio can be recorded only when using PCMA or PCMU codecs.
- recordSkypeIn - set to yes to record incoming Skype Audio
- recordSkypeOut - set to yes to record outgoing Skype Audio
- recordSIPIn - set to yes to record incoming RTP Audio
- recordSIPOut - set to yes to record outgoing RTP Audio
I'm getting "command not found" when trying to run ./SipToSis_linux or other linux script
One or more of the scripts may not be in unix file format due to me forgetting to set it or possibly the method used
to transfer the files to your box. Editing on windows and then transferring the file to a linux box is a good way to cause this.
To fix, perform the following on the linux box:
vi SipToSis_linux (or other linux script)
If this is the problem you will see [dos] at the bottom of the vi screen.
:q
set ff=unix
:w
It should now work. Also check that java is installed and in your PATH.
You can test that by typing 'which java' in a console window.
It should return the location of your java install. If not, you need to fix that.
If this only occurs with the trunk builder scripts, make sure Xvfb is installed and in your PATH.
Xvfb install: yum install xorg-x11-server-Xvfb
I'm getting a message "Opening the diplay failed" or "Opening the display failed" when I run ./SipToSis_linux
Both Skype and Skype4java on linux require an X server/session.
If using Xvfb, make sure it is installed.
Launch the application from within an X window manager.
This can also be caused by X authentication issues.
How do I install Skype or Java on linux
Click Linux Instructions for some help.
How do I configure DTMF?
The following settings are in the siptosis.cfg configuration file.
You should not combine multiple SIP DTMF methods as they may conflict - there is no auto setting.
SIP DTMF via RFC2833 (enabled by default):
dtmf2833payloadtype=101 (some servers use 96 or other payload type)
enableSIPInbandDtmfDetector=no
Comment out any dtmfinfotype setting.
SIP DTMF via SIP INFO messages (disabled by default):
enableSIPInbandDtmfDetector=no
dtmf2833payloadtype=-1 (disables the RFC2833 detector)
dtmfinfotype=application/dtmf-relay
or alternatively (the above is most common method)
dtmfinfotype=application/dtmf
SIP DTMF via analog/inband (disabled by default):
dtmf2833payloadtype=-1 (disables the RFC2833 detector)
Comment out any dtmfinfotype setting.
enableSIPInbandDtmfDetector=yes
SIPInbandDtmfDetectorGain=1 (version 20091206+) adjust incoming signal level - too high may cause excessive falsing - too low will cause poor decoding.
autoDisableSipInbandDtmfDetectorSeconds=80 (Version 20100720+) turns off detector after time has elasped.
SipDtmfDetectorHitThreshold=30 - This is the minimum pulse time needed to trigger a DTMF decode.
SipDtmfDetectorSilenceThreshold=40 - This is the minimum silence period required between digits.
SipDtmfDetectorTwistAdjust=1 - (version 20110309+) - use between .1 and .063 for low quality connections.
For the above 3 parameters, lower values will increase falsing and too high will cause unreliable or no decoding.
If you need analog/inband DTMF decoded even after the connection is active, you need this also.
inbandFullTimeDtmfDetection=yes
For any of the above methods and you want received SIP DTMF sent on to the remote skype user (enabled by default):
sendSipDtmfToSkype=yes
Skype DTMF detection (This may be disabled or enabled by default depending on version):
Turn on the skype analog detector.
enableSkypeDtmfDetector=yes
SkypeDtmfGain=1 - (version 20091206+) adjust incoming signal level - too high may cause excessive falsing - too low will cause poor decoding.
autoDisableSkypeDtmfDetectorSeconds=80 - (version 20100720+) turns off detector after time has elasped.
SkypeDtmfDetectorHitThreshold=30 - This is the minimum pulse time needed to trigger a DTMF decode.
SkypeDtmfDetectorSilenceThreshold=40 - This is the minimum silence period required between digits.
SkypeDtmfDetectorTwistAdjust=1 - (version 20110309+) - use between .1 and .063 for low quality connections.
For the above 3 parameters, lower values will increase falsing and too high will cause unreliable or no decoding.
If you need the Skype received DTMF forwarded on to the SIP connection then you also need the following settings.
sendSkypeDtmfToSip=yes
inbandFullTimeDtmfDetection=yes
The SIP DTMF parameters will also need to be set properly as described previously.
I'm hearing DTMF tones during a conversation
Turn off the DTMF detectors if you don't need them.
If you need DTMF decoding, upgrade to version 20100720+ to fix some decoder bugs and reduce false decodes.
Be sure to adjust the detector settings as described in the previous section.
How do I configure the SipToSis Skype Gateway when I have multiple network interfaces?
You can force the desired interface by specifying the computer's IP address. For example, if your pc's IP is 192.168.0.8 you would set in siptosis.cfg as follows:
via_addr=192.168.0.8
host_ifaddr=192.168.0.8
How do I configure the registrar server? Look for the following lines in siptosis.cfg:
#*** register server settings below *** not required if registration is not needed for phone
#set to yes to turn on server registrar
is_registrar=no
#set to yes to allow register of users not already in registar database (users.db)
register_new_users=yes
#set to domains of server - see mjsip doc
domain_names=192.168.0.4
Make the following changes:
is_registrar=yes
domain_names=yourdomain.com
Change yourdomain.com to your required domain. It can be an ip address. It can also have multiple names (separated by a space between names).
I'm getting a message about users.db - how do I get rid of it?
This is a message from the built in registrar server. It's not an error. If you register a device with SipToSis, the message will go away.
If you never want to register a SIP device with SipToSis, you can turn off the registrar server (recommended for PBX users).
In siptosis.cfg make the following change:
is_registrar=no
I can't make it work, how do I get help?
Setup can be simple or complicated depending on your capabilities and
what you are trying to accomplish. There are many comments in the configuration files to help with settings.
I have created some setup guides to help with basic setup:
To try and diagnose an issue, you can try setting logConfigFile=log_debug.properties in the relevant SipToSis config file.
Then reproduce the error and view the log file.
If you still can't figure it out, you can post a comment on the SipToSis Skype Gateway Forum
and hope that someone will answer. You will increase your chances of a response by providing information about the problem and your setup.
This means, posting relevant configuration information and console messages.
Saying "it doesn't work" won't get you anywhere. Please do not email me, thank you.
|
|