IP телефония в Emacs |
| Автор: | © Игорь Поретский |
| Дата публикации: | 2009 |
Предлагаемый здесь материал ориентирован прежде всего на незрячих пользователей Linux, чьей рабочей средой служит Emacs, оснащенный речевой поддержкой. Для тех, кто часто пользуется междугородней и международной телефонной связью, он может представлять также и экономический интерес, так как тарифы в online-телефонии часто бывают значительно ниже, чем при использовании обыкновенной телефонной связи.
Провайдеров подобных услуг на сегодняшний день существует немало. Пожалуй, наиболее широко известным является Skype. К сожалению, невизуальная доступность предлагаемого этим провайдером клиентского приложения под Linux, пока оставляет желать много лучшего, а закрытость протокола отнюдь не способствует появлению и развитию альтернатив.
Однако, наряду с этим, существует множество провайдеров услуг связи по протоколу SIP, широко используемому в IP-телефонии. Это открытый протокол и, соответственно, он поддерживается целым рядом различных клиентских приложений.
Для конкретизации дальнейшего изложения мы остановим свой выбор на службе Sipnet и покажем как можно воспользоваться ее возможностями в привычной и хорошо озвученной среде Emacs.
Ознакомиться с условиями регистрации, как и со спектром предлагаемых услуг, можно на странице Sipnet. Чтобы открыть новую учетную запись, найдите там пункт Регистрация и аккуратно заполните предложенную форму. Если ваша регистрация прошла успешно, т.е., если вы всё заполнили правильно и выбрали имя и пароль, которых ещё нет в базе провайдера, для вас будет открыт кабинет, в который можно зайти по адресу http://customer.sipnet.ru.
Введите свои логин и пароль и вы попадете на свою страницу. Прежде всего найдите строку SIP ID и запомните свой семизначный идентификационный номер, который будет написан на этой строке. Во-первых, он нам понадобится в дальнейшем, а во-вторых, это ваш новый телефонный номер, по которому вам можно будет звонить.
В качестве клиентского приложения будем использовать программу Linphone, причем тот ее вариант, который допускает управление посредством командной строки, что позволит нам в дальнейшем организовать естественный интерфейс в среде Emacs.
Прежде всего вызовем подчиненную оболочку и установим программу командой
sudo aptitude install linphone-nox
Теперь нужно настроить программу на нашу учетную запись, для чего опять же в подчиненной оболочке наберем команду
linphonec
Вывод этой команды может быть следующим:
Ready Warning: video is disabled in linphonec. Run with -V option to enable it. linphonec>
На предупреждение обращать внимания не надо, поскольку по умолчанию видео запрещено. Просто задаём следующую команду
proxy add
Получив ответ
Adding new proxy setup. Hit ^D to abort. Enter proxy sip address:
вводим запрашиваемый sip-адрес:
sip:sipnet.ru
Получаем следующий запрос:
Your identity for this proxy:
Вот здесь мы вспоминаем запомненное ранее семизначное число, наш SIP
ID. Для определённости пусть это будет число 2233445. Тогда на
полученный запрос мы должны ответить
sip:2233445@sipnet.ru
Далее отвечаем yes на вопрос, хотим ли мы зарегистрироваться на этом
прокси-сервере
Do you want to register on this proxy (yes/no): yes
На следующие два запроса просто нажимаем ENTER, если вы согласны с предложениями по умолчанию.
Specify register expiration time in seconds (default is 600): Expiration: 600 seconds Specify route if needed: No route specified. -------------------------------------------- sip address: sip:sipnet.ru route: identity: sip:2233445@sipnet.ru register: yes expires: 600 -------------------------------------------- Accept the above proxy configuration (yes/no) ?:
Если вы считаете, что все ответы вас удовлетворяют, то на последний
запрос ответьте yes. В ответ вы получите следующее сообщение:
Proxy added. linphonec>
Если в системе используется firewall, то следует позаботиться о том, чтобы порты 5060, 7078 и 9078 были открыты или настроить соединение через так называемый stun-сервер, выдав команду
stun
На появившийся запрос
Stun server:
надо ответить
stun.sipnet.ru:3478
В ответ вы можете получить сообщение
(disabled- use 'firewall stun' to enable) linphonec>
На этот запрос нужно ответить
firewall stun
Если никакой firewall нашу жизнь не осложняет, то на приглашение
linphonec>
следует ответить
firewall none
и в ответ получите строку
No firewall
На этом процесс настройки можно считать законченным. Завершим программу командой
quit
и удостоверимся в том, что все прошло успешно. Для этого снова вызовем ее командой
linphonec
В дополнение к уже знакомому приглашению мы должны увидеть сообщение
Registration on sip:sipnet.ru successful.
Свои настройки Linphone сохраняет в конфигурационном файле
~/.linphonerc. Этот файл создается автоматически в результате только
что описанного процесса, но потом, если необходимо, его можно и
подправить руками.
Осталось скачать файл linphone.el и положить его в какой-нибудь
каталог, упомянутый в переменной load-path, например, в
/usr/share/emacs/site-lisp. При желании этот файл можно скомпилировать
и использовать получившийся в результате файл linphone.elc.
В ~/.emacs впишем строку:
(require 'linphone nil t)
и перезагрузим Emacs.
Теперь обратиться к программе можно через главное меню или командой
M-x linphone. В результате открывается главное окно программы,
содержащее кнопки Call, Standby, Quit и Customize, которые можно
выбирать при помощи табуляции, или просто наводя на них
курсор. Названия кнопок говорят сами за себя и вряд ли нуждаются в
пространных комментариях. Если нажать Standby, окно пропадает, но
программа остается в ждущем режиме и способна принимать входящие
звонки. При поступлении входящего вызова звучит звонок и открывается
окошко с кнопками, позволяющими либо принять, либо отклонить вызов. Во
время разговора в окне программы имеются кнопки для отключения
микрофона и завершения разговора.
Вот и все, собственно. Подробную же информацию о звонках как таковых и условиях их осуществления, о правилах набора номера и управлении учетной записью можно найти на страницах провайдера и в своем личном кабинете.
| Проект осуществлен при поддержке компании RU-CENTER | ||||
| Распространение материалов сайта означает, что распространитель принимает условия лицензионного соглашения. Идея и реализация: © Владимир Довыденков и Анатолий Камынин, 2004-2012 |
| |||