войти зарегистрироваться

IP-телефонияSIP телефония для дома — реализация, опыт, фишки

Всем привет.

В комментариях к различным топикам на Хабре нередко видел вопросы класса «А зачем вам нужна SIP-телефония дома» и «Как все это безобразие работает». Некоторые темы на хабре уже раскрывались, но многое осталось в тени. Посему решил описать используемую мной схему SIP-устройств и сервисов, и набросать некоторые планы на будущее.

Просто повторять аксиому, что SIP – это далеко не только дешевые междугородние звонки через sipnet или других операторов я не буду, и постараюсь в данном топике раскрыть все многообразие возможных вариантов применения SIP в быту.

Персональные блоги Первая телефонная программа

Познакомившись с CG/PL на примере веб-сервиса, возникает резонный вопрос, а как дело обстоит со звонками?

На базе CGP можно делать сложные голосовые меню и, вообще, делать со звонками довольно интересные вещи, но для начала подойдёт какой-нибудь простенький пример.

Игра



Попробуем написать простую игру с угадыванием числа. Общий сценарий такой:
  • Абонент набирает наш номер и слышит приветствие.
  • В этот момент загадываем число от одного до девяти.
  • Затем приглашаем абонента ввести число.
  • Если введённое число меньше загаданного, или больше, то сообщаем об этом абоненту звуковыми сигналами.
  • Если абонент число угадал, то поздравляем его и кладём трубку.
  • Всего даётся три попытки, каждая не больше десяти секунд.

Персональные блоги CGP превращается в контейнер для скриптов

Не только позвонить


Начну издалека. Есть фирма Cisco, и делает она SIP-телефоны. Подключение таких телефонов к CGP занимает не слишком большое время, даже, если делать это в первый раз, конечно, если между телефоном и CGP нет NAT.

Будем считать, что телефон подключен, делает звонки, звенит, когда надо, и слышимость в обе стороны отличная.

В телефонах 794x и 796x есть замечательная возможность просматривать список телефонных номеров, полученный с сервера. Телефон идёт на URL, указанный в конфигурации, обычным HTTP запросом.

Можно поставить на сервер отдельный tomcat или php, чтобы обработать такие запросы. Но это слишком накладно. CGP справится лучше. Во-первых у него уже есть LDAP, во-вторых у него есть CG/PL.

То есть, мы можем рассматривать CGP, как контейнер для скриптов на CG/PL, и с лёгкостью обойтись без сторонних серверов.

Всё что нам нужно это написать скрипт. Назовём его cd.wcgp. Так как мы будем делать запрос с телефона, то исключим авторизацию и механизм сессий. Для этого используем скрипт с секцией SysEntry, а не с Main. Соответственно, хранится на сервере он должен в базовом веб-скине (http://localhost:8010/Master/Domains/WebSkinsCommon.html).

Персональные блоги Центр коммуникаций для дома, для семьи

Если есть желание использовать дома почту, но при этом не зависить от сторонних сервисов, то стоит посмотреть в сторону CommuniGate Pro (CGP). С некоторых пор он бесплатен, если в системе не больше пяти пользователей. Во-вторых он является стабильным решением, а в-третьих в коммуникации входит не только почта.

Что кроме почты?


Создав нового пользователя в CGP, мы получаем не только возможность обмена письмами, но и SIP (Session Initiation Protocol) и XMPP (Extensible Messaging and Presence Protocol).