View Source

!skypemate.jpg|align=right!
Не помню уже что искал, но набрел на страничку [ Yeaphone|http://www.devbase.at/voip/yeaphone.php]. Вот\! Этого мне всегда не хватало - полноценно работающего с Linux USB телефона. Нет, я конечно же подключал самые разные USB телефоны… Но они выглядели как внешняя звуковая карта, так как кнопки на них не работали, а LCD выглядел неживым. Хоте нет\! Какой-то девайс мне удалось запустить через usbhid, и я ловил нажатия его кнопок… Например, в консоли… Но как перенаправить их в отдельное устройство, я не докачал.

И вот, Yaphone:The goal of the Yeaphone project is to provide a user interface on a Yealink USB handset (USB-P1K / P1KH / P4K) for the VoIP software Linphone thus making a PC keyboard and monitor unneccessary.
Итак, есть двое неизвестных:
* Какой-то Yalink USB телефон
* ПО LinPhone, которое к тому же и обладает консольной версией. С него и начнем.




h2. *Установка LinPhone*
{code}jaguar ~ # emerge -av linphone

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild N ] net-libs/libosip-3.1.0 641 kB
[ebuild N ] net-libs/ortp-0.15.0_p1 USE="ssl -debug -doc -examples -ipv6 -minimal -srtp" 486 kB
[ebuild N ] net-libs/libeXosip-3.1.0 479 kB
[ebuild N ] media-libs/speex-1.2_beta3_p2 USE="ogg sse" 1,024 kB
[ebuild N ] media-libs/mediastreamer-2.2.3_p1-r1 USE="X alsa gsm speex theora x264 -arts -debug -doc -examples -ilbc -ipv6 -jack -oss -portaudio -video" 634 kB
[ebuild N ] net-voip/linphone-3.1.1 USE="gtk ncurses nls -doc -ipv6 -video" LINGUAS="ru -cs -de -es -fr -hu -it -ja -nl -pl -pt_BR -sv" 7,627 kB

Total: 6 packages (6 new), Size of downloads: 10,888 kB

Would you like to merge these packages? [Yes/No]
{code}
No\! Я не против SRTP, и iLBC и video тоже хочу\!
{code}jaguar ~ # euse -E srtp ilbc video video aesicm syslog
/etc/make.conf was modified, a backup copy has been placed at /etc/make.conf.euse_backup
jaguar ~ # emerge -av linphone

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild N ] net-libs/libosip-3.1.0 641 kB
[ebuild N ] net-libs/libsrtp-1.4.4-r1 USE="aesicm syslog -console -debug -doc" 492 kB
[ebuild N ] net-libs/ortp-0.15.0_p1 USE="srtp ssl -debug -doc -examples -ipv6 -minimal" 486 kB
[ebuild N ] net-libs/libeXosip-3.1.0 479 kB
[ebuild N ] media-libs/libsdl-1.2.13-r1 USE="X alsa audio dga directfb joystick video xinerama xv -aalib -arts -custom-cflags -esd -fbcon -ggi -libcaca -nas -opengl -oss -pulseaudio -svga" 3,295 kB
[ebuild N ] media-libs/speex-1.2_beta3_p2 USE="ogg sse" 1,024 kB
[ebuild N ] dev-libs/ilbc-rfc3951-0-r1 323 kB
[ebuild N ] media-libs/mediastreamer-2.2.3_p1-r1 USE="X alsa gsm ilbc speex theora video x264 -arts -debug -doc -examples -ipv6 -jack -oss -portaudio" 634 kB
[ebuild N ] media-plugins/mediastreamer-x264-1.1.7 321 kB
[ebuild N ] media-plugins/mediastreamer-ilbc-2.0.0 USE="-debug" 629 kB
[ebuild N ] net-voip/linphone-3.1.1 USE="gtk ncurses nls video -doc -ipv6" LINGUAS="ru -cs -de -es -fr -hu -it -ja -nl -pl -pt_BR -sv" 7,627 kB

Total: 11 packages (11 new), Size of downloads: 15,946 kB

Would you like to merge these packages? [Yes/No] Yes
{code}
Пошел "курить"… Вот так это делается в Gentoo.

h2. *Запуск LinPhone*



[ http://linphone.org/|http://linphone.org/] \- Linphone is an internet phone or Voice Over IP phone (VoIP).



!linphone.png|align=right!



h2.

{panel}
Все интуитивно понятно. Что понравилось:
* Это второй SIP софтфон под Linux с поддержкой Video\! И если инициация и завершение вызова в Ekiga были похожи на разворот бульдозера, то linphone справляется с этим очень быстро.
* При закрытии окна (клик на крестик) в режиме ожидания linphone свернулся в лоток. При закрытии окна в режиме разговора софтон свернулся в лоток, и _завершил вызов_. Пахнет продуманным юзабилити.
* Включение / Отключение поддержки видео под рукой. Снова запах юзабилити. Что не нравилось в Ekiga, так это "утопленность" активации / деактивации поддержки видео. Мелочь.. Но нет ничего важнее мелочей\!

Это первое, на что обратил внимание. Наверняка есть и косяки, но они всплывут позже 
{panel}

h2. *Использование linphonec*

LinPhone console version - наконец-то\! Я помню свой восторг, когда перешел на использование Music Player Daemon (MPD) и конольного клиента MPC. Управлять с консоли проигрыванием музыки сперва было восхитительно, а потом вошло в привычку, такую же, как использование screen. И вот новый lifehack - консольный SIP клиент\!
{code}max@explorer ~ $ linphonec
Warning: UDP port 5060 seems already in use ! Cannot initialize.
Ready
Warning: video is disabled in linphonec, use -V or -C or -D to enable.
linphonec> {code}
Уууу\! Они не связали GUI и консольного клиента  В Music Player Daemon можно было запускать одновременно много клиентов, консольного, GUI, WEB, да какой угодно, а тут, похоже, два разных SIP клиента. Ладно, переварим. Кстати говоря, GUI linphone занимает 8.2M оперативной памяти, а linephonec - 1.5\! Т.е., там где оперативка в дефиците, например, на 256M лэптопах, это будет решением.
{code}max@explorer ~ $ linphonec
Ready
Warning: video is disabled in linphonec, use -V or -C or -D to enable.
linphonec> Registration on sip:sip.pbxware.ru successful.{code}
Уф\! Ну хоть базу эккаунтов и настройки они делят между собой.
{code}linphonec> help
Commands are:
---------------------------
help Print commands help
call Call a SIP uri
terminate Terminate the current call
answer Answer a call
autoanswer Show/set auto-answer mode
proxy Manage proxies
soundcard Manage soundcards
ipv6 Use IPV6
refer Refer the current call to the specified destination.
nat Set nat address
stun Set stun server address
firewall Set firewall policy
call-logs Calls history
friend Manage friends
play play from a wav file
record record to a wav file
quit Exit linphonec
register Register in one line to a proxy
unregister Unregister from default proxy
duration Print duration in seconds of the last call.
status Print various status information
---------------------------
Type 'help <command>' for more details.{code}
Не Asterisk show commands конечно, но поглядим….
{code}linphonec> proxy
Syntax error.
'proxy list' : list all proxy setups.
'proxy add' : add a new proxy setup.
'proxy remove <index>' : remove proxy setup with number index.
'proxy use <index>' : use proxy with number index as default proxy.
'proxy unuse' : don't use a default proxy.
'proxy show <index>' : show configuration and status of the proxy numbered by index.
'proxy show default' : show configuration and status of the default proxy.

linphonec> proxy list
****** Proxy 0 - this is the default one - *******
sip address: sip:sip.pbxware.ru
route:
identity: sip:700@sip.pbxware.ru
register: yes
expires: 600
registered: yes
linphonec>
{code}
Управление проксями из CLI. Good.
{code}linphonec> call 710
Contacting sip:710@sip.pbxware.ru
linphonec> linphonec> {code}
Пошел вызов\!
{code}linphonec> linphonec> terminate
Call ended
linphonec> linphonec> Request Cancelled.
linphonec> {code}
Вызов завершен&nbsp;
{code}linphonec> call-logs
Outgoing call at Sat Jul 25 14:38:29 2009
From: <sip:700@sip.pbxware.ru>
To: <sip:710@sip.pbxware.ru>
Status: aborted
Duration: 0 mn 31 sec

linphonec> {code}
Истрия звонков&nbsp;

Так, а как насчет отладки?
{code}max@explorer ~ $ linphonec --help
ERROR: bad arguments

usage: linphonec [-c file] [-s sipaddr] [-a] [-V] [-d level ] [-l logfile]
linphonec -v

-c file specify path of configuration file.
-d level be verbose. 0 is no output. 6 is all output
-l logfile specify the log file for your SIP phone
-s sipaddress specify the sip call to do at startup
-a enable auto answering for incoming calls
-V enable video features globally (disabled by default)
-C enable video capture only (disabled by default)
-D enable video display only (disabled by default)
-S show general state messages (disabled by default)
-v or --version display version and exits.
max@explorer ~ $
{code}
Понятно… Проверим….
{code}
max@explorer ~ $ linphonec -d 6 -S
{code}
Ой. Да, хватает отладочной информации….

На этом перввя серия обзора с софтфоном Linphone завершается. Впереди как минимум две серии:
* Игры с linphonecsh - LinPhone Console Shell. Чую, еще та штучка. Вот что пишут разработчики на&nbsp;[ своем сайте|http://linphone.org/index.php/eng/control_a_linphonec_daemon_from_scripts]:
{code}What could be the applications of this tool ? For example:
* run VoIP calls from scripts
* from web cgi pages
* from javascript in a browser window...{code}
* Дайте подумать… Это же callback для WEB сайта без размещения там Asterisk. не нужны call файлы или взаимодействие через AMI. Просто зарегистрировать клиента, и выдавать ему номер для контакта… Чудесно.
* Надо купить телефон Yalink… Поглядим, что там у них&nbsp;[ на сайте|http://www.yealink.com/en/products.asp]… Где-то я видел все эти телефоны… Ба\! да это же товарищи из SkypeMate, мы с ними на Cвязь-Экспоком'е 2009 познакомились\! Ну-ка… Точно\! Вот он -[ http://skypemate.ru/catalogue/?wid=4|http://skypemate.ru/catalogue/?wid=4]. Ну что же, значит, продолжение будет учень скоро\!