Имеется: Ubuntu 10.04 x64 Desktop, Skype v.2..., SUN Java, SipToSis (тыц).
Что нужно: заставить корректно работать SipToSis со Skype.
Проблемы:
1) SipToSis требует, чтобы в Ubuntu была установлена только SUN-Java (а не какой-то другой JRE) и Skype был настроен исключительно на Dummy-драйвер (модифицированный). Пересобрать Dummy получилось, корректно и модуль загружался. С Java разобрался так:
add-apt-repository ppa:sun-java-community-team/sun-java6
apt-get update
apt-get install sun-java6-jre sun-java6-plugin sun-java6-fonts
update-java-alternatives -v -s java-6-sun
2) Появилась звуковая карта и поднял голову PulseAudioServer... Думал, это не должно повлиять на систему, но нет - Skype вгрызся в PulseAudio и отказывался видеть Dummy. Запуск Skype`а от пользователя root позволяет выбрать в списке УСТРОЙСТВА (о PulseAudio там вообще ни слова - только устройства звуковой карты и Dummy). Попробовал сделать для Skype`а юзера, но ему был виден только PulseAudioServer. Плюнул, вернулся к root`у и выставл драйвер Dummy для Skype`а. Решил запустить SipToSis и вуа-ля! Java начала заваливать меня из консоли адским и невменяемым спамом, при этом укладывая процессор в 120-130%. Выглядит это так:
Launching SipToSis
2012-08-30 11:09:48,141 STUN: Error - Unknown Host: stun.xten.net
2012-08-30 11:09:48,141 Starting SipToSis v20111012
2012-08-30 11:09:48,156 Skype4Java Version 1.3.0.1
2012-08-30 11:09:48,157 os=Linux ver=3.0.0-25-generic arch=amd64 (4 core)
2012-08-30 11:09:48,157 javaVer=1.6.0_21 - Sun Microsystems Inc. (64 bit)
2012-08-30 11:09:48,161 error:
java.net.BindException: Cannot assign requested address
at java.net.PlainDatagramSocketImpl.bind0(Native Method)
at java.net.PlainDatagramSocketImpl.bind(PlainDatagramSocketImpl.java:82)
at java.net.DatagramSocket.bind(DatagramSocket.java:372)
at java.net.DatagramSocket.<init>(DatagramSocket.java:211)
at org.zoolu.sip.provider.StunClient.getPubIp(StunClient.java:138)
at org.zoolu.sip.provider.StunClient.run(StunClient.java:86)
2012-08-30 11:09:48,162 error:
java.net.BindException: Cannot assign requested address
at java.net.PlainDatagramSocketImpl.bind0(Native Method)
at java.net.PlainDatagramSocketImpl.bind(PlainDatagramSocketImpl.java:82)
at java.net.DatagramSocket.bind(DatagramSocket.java:372)
at java.net.DatagramSocket.<init>(DatagramSocket.java:211)
at org.zoolu.sip.provider.StunClient.getPubIp(StunClient.java:138)
at org.zoolu.sip.provider.StunClient.run(StunClient.java:86)
2012-08-30 11:09:48,162 error:
...
2012-08-30 11:09:48,163 error:
...
2012-08-30 11:09:48,163 error:
...
2012-08-30 11:09:48,164 error:
...
2012-08-30 11:09:48,164 error:
...
2012-08-30 11:09:48,165 error:
...
По факту надо: запустить Skype, указать ему в качестве звукового устройства Dummy. Сам Dummy нужно предварительно пропатчить в исходнике (это легко сделать и уже готово). После всего этого - поднять систему Java-приложений SipToSis (почему-то ОЧЕНЬ упётую в SUN`овскую машину), которая будет взаимодействовать со Skype`ом по его API с одной стороны и по sip-протоколу с АТС с другой.