Pull to refresh

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

Development of communication systems *
Всем привет.

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

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

В настоящее время в качестве платформы я использую великолепное решение на базе сервера CommuniGate Pro от компании ITooLabs, частично уже описанное на хабре — habrahabr.ru/blogs/the_future_is_here/65461.

Хочу добавить, что возможности платформы постоянно увеличиваются, например, в настоящее время идет тестовая эксплуатация решения по полной интеграции платформы с мобильной телефонией от одного из московских операторов, т.е. мобильный телефон становится полноценным SIP клиентом с возможностью звонков с него на короткие внутренние номера, отображения полноценного Caller ID при звонках на него по SIP URI или переадресации городских звонков, и т.д.

Не могу не указать, что ранее в тех же целях я весьма успешно использовал собственный сервер CGP, установленный на VPS-хостинге. Причем использовал его в бесплатном варианте (насколько я знаю, полнофункциональная Community Edition на 5 пользователей до сих пор бесплатна). Помимо установки CGP у хостера, его можно поставить на домашний сервер (есть версии под огромное количество Осей), ну или арендовать. Наконец, можно заменить его любым SIP сервером (Asterisk, OpenSER, 3CX и т.д.). Правда, в последнем случае нужно будет много чего прикручивать для достижения того уровня унифицированности и конвергенции коммуникаций (телефонии, почты, войсмейл, IM и т.д.), который в CGP (конечно, за деньги) уже есть из коробки.

Итак, в моем случае первым «сердцем» всей реализации является SIP сервер. Что же он дает:

1) В первую очередь, это моя личная телефонная мини-АТС с невероятными возможностями по управлению голосовыми (и не только) коммуникациями. Частично возможности будут раскрыты ниже.

2) Та самая пресловутая возможность совершать исходящие звонки через систему по самым низким тарифам, комбинируя предложения разных операторов в зависимости от вызываемого направления.

Например:
— Исходящие звонки на городские номера Москвы у меня автоматически совершаются через нижеописанный VoIP шлюз. Стоимость звонка – полностью бесплатно.

— Исходящие звонки на городские номера множества крупных российских городов идут через оператора Еврофон (детище Евросети). Стоимость – 0,49 р. в минуту.

— Исходящие звонки на городские номера других российских городов, номера сотовых операторов и международные вызовы осуществляются через оператора PCTel. Стоимость – 1 р. в минуту.

— Естественно, можно подключать еще сотню операторов, например Мультифон для звонков на номера Мегафона по России, и т.д.

— Файловер для исходящих звонков: если какой-то оператор недоступен, то звонок автоматически будет совершен через следующего по списку оператора. Недавно я с этим столкнулся на практике. Сбилась настройка для звонков через Еврофон, и следующим по приоритету шлюзом стоял PCTel. На протяжении 2-х недель я звонил в другой город, наивно полагая, что используется Еврофон с его 0,49 р. в минуту, и был очень удивлен, когда деньги кончились не на нем, а на счете PCTel.

3) Возможность подключить к системе (использовать в качестве SIP клиентов) огромное количество устройств – это софтфоны, аппаратные SIP телефоны (стационарные, Wi-Fi, DECT), SIP шлюзы с подключенным в FXO телефонным аппаратом, и даже мобильный телефон в случае с решением ITooLabs.

Вот, например, что использую или использовал в качестве клиентов я:

— Софтфоны X-Lite, SJPhone (ноутбук), Fring (Widows Mobile коммуникатор), QIP Infium (десктоп, ноутбук), софтфон Nokia, встроенный в коммуникатор, встроенный в CGP Flash клиент Pronto! или внешний flashphone.ru и многие другие.

— Программу ITooLabs (бизнес- коммуникатор (софтфон, разработанный компанией ITooLabs специально для сервера CGP, с учетом типовых бизнес-потребностей)

— VoIP шлюз Linksys SPA3000, подключенный к МГТС, для приема ВХОДЯЩИХ звонков с города, и перевода их в SIP.

— Тот же самый VoIP шлюз но уже в другой испостаси – для приема звонков по SIP или совершения исходящих звонков — обычных или SIP, в зависимости от набранного на подключенном к нему обычном DECT телефоне номера. Чуть позже расскажу о нем немного подробнее.

А вот что хотелось бы еще подключить к системе:

— Стационарный SIP телефон.
— Комбинированный SIP/DECT аппарат класса Siemens Gigaset C470IP / A580IP.
— SIP видеофон.
— Софтфон с видеокамерой на домашнем HTPC — мультимедиа-компьютере (рассказал о мечте по этому поводу ниже).

4) возможность завести в системе аккаунты для родственников, и раздать им как телефонные номера (ну это стандартно), так и почтовые ящики вместе с другими фичами, предоставив им, в частности, возможность прозрачно пользоваться вышеописанным тарифами для исходящих звонков, не задумываясь «а через какого оператора сюда позвонить дешевле». Подключены родственники могут быть как через софтфоны (самый дешевый вариант), так и через любую железку из вышеописанных – был бы доступным интернет.

5) естественно, устраивать конференции между разными внутренними и внешними номерами, например собрать в конференцию себя (на софтфоне), домашний номер (через шлюз и DECT аппарат, к нему подключенный), родственников (на софтфоне, SIP телефоне или стационарном городском телефону), добавить городские и междугородние номера к разговору, и платить при этом по сути только за звонок на городские номера, идущие через внешних операторов.

6) Настраивать правила обработки звонков в единой системе. Например:

— все звонки вечером и в выходные идут как на мой мобильный, так и на домашний VoIP шлюз и софтфон (где ближе, там и возьму),
— звонки от номеров, включенных в определенную группу, могут сразу уходить на автоответчик, не беспокоя меня.
— звонки от абонентов, включенных в другие группы, могут идти сразу на все устройства и софтфоны.

7) Возможность переводить звонки внутри платформы, и не только. Например, приняв звонок на софтфон, я могу перекинуть его на домашний номер или на мобильный.

8) Ну и так далее. Нужно просто включать фантазию, ибо вариантов возникает масса. Могу тут еще раз отправить к обзору решения ITooLabs на хабре, там многие плюшки тоже описаны.

Помимо первого «сердца», у моей реализации есть и второе — мой любимый VoIP шлюз Linksys SPA3000.

Шлюз этот, Linksys SPA3000, ранее, до покупки компании Сипура Линксисом, назывался Sipura SPA3000. Потом он был снят с производства, но до сих пор продается на EBay за смешные деньги. Свой я купил там примерно за 40 баксов. В настоящее время продается более новая версия, Linksys SPA3102. Она идентична по телефонной части со SPA3000, но кроме LAN порта имеет встроенный WAN порт и может выступать роутером. Однако обсуждения на форуме показывают, что мощность именно роутерной части шлюза невелика, и при большой нагрузке он начинает перезагружаться. Именно поэтому шлюз лучше подключать в другой роутер в качестве клиента, и тогда все работает замечательно.

SPA3000 (а за ним и 3102) недаром называют «швейцарским ножом» — он имеет неимоверное количество настроек, и является по сути профессиональным аппаратом, часто используемом и в бизнес-целях. Однако, с этим связана и некоторая сложность в его настройке, которая новичкам не всегда под силу. Различные настройки, комбинированные в сотнях вариантов, могут быть неочевидными даже после чтения документации, и часто приходится прибегать к помощи форумов (которых по сабжу, к слову, тоже очень много).

Какие возможности дает шлюз лично мне:

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

— выступая в качестве маленького SIP оператора, предоставить этот шлюз в качестве бесплатного для звонков по Москве моей семье и друзьям, в т.ч. из других городов (а может, в перспективе и стран).

— принимать входящие звонки на прямой московский городской номер, физически находясь при этом где угодно, и не платя за это никакой абонентской платы SIP провайдеру (ну, кроме обычной ежемесячной дани МГТС).

— присвоить этот прямой номер любому SIP устройству в своей сети или группе абонентов.

— позвонить на свой городской номер, ввести PIN и войти в систему голосовой почты, послушать сообщения на автоответчике.

— позвонить на свой городской номер, ввести PIN и совершить исходящий звонок по межгороду по тарифам IP-телефонии, либо напрямую по SIP (на внутренние номера моей АТС, либо на любой SIP адрес формата ivanov@sipnet.ru) – последнее, естественно, полностью бесплатно.

— получить правильно определенный номер вызывающего абонента (Caller ID, если поддерживается городской АТС), который затем в том же виде может быть передан на SIP сервер, ну и далее практически любым SIP клиентам. То есть номер звонящего отображается корректно.

Пока такой шлюз стоит у меня только дома в Москве. Сейчас он просто переводит все звонки на мой домашний номер в систему, и я могу взять трубку хоть на мобильном, хоть на софтоне, хоть на домашнем DECT аппарате. Номер звонящего, напомню, определяется и передается, в т.ч. может быть обработан вышеописанными правилами (отправить в голосвую почту, перевести на конкретный внутренний номер и т.д.)

Если немного поменять схему, то звонящему на городской телефон может быть предложено выбрать несколько вариантов: «Добрый день. Для вызова Дмитрия нажмите 1, для звонка Екатерине нажмите 2. Если у Вас есть PIN код для входа в систему, наберите его, пожалуйста. Чтобы оставить сообщение, просто оставайтес на линии). Т.е. можно реализовать простейшую (и не только) IVR.

Если же взять еще один такой же шлюз (не раскупите, только все, пожалуйста!), и поставить в другом городе или стране, то совершенно аналогичным образом можно получить бесплатные исходящие в эти города и страны. Если завести их номера в систему (как у меня заведен мой московский номер), то любой человек, позвонивший на него, тоже может прослушать сообщение IVR, ввести PIN для звонка по моим тарифам телефонии – и не платя за междугородний звонок своей ГТС.

Если бы у меня в офисе использовался не цифровой, а аналоговый телефонный аппарат, я бы обязательно подключил такой шлюз к нему, получив возможность принимать звонки на свой рабочий внутренний номер на платформу (а следовательно, дома, на мобильный, в голосовую почту), подвергнув их жесткой фильтрации по правилам. Звонок начальника сразу в войсмейл (тут должен быть смайлик). В этом случае удобно и почти бесплатно принимать рабочие звонки в любом роуминге, где есть Wi-Fi или другой интернет. Также в этом случае можно было бы позвонить с любого своего SIP клиента на внутренние номера компании, звонить в офисы в других городах и странах за счет работодателя… Где мои семнадцать лет…

Еще одним важным элементом реализации являются внешние номера (DID):

— Как вы уже догадались, один из таких номеров у меня бесплатный московский прямой номер от МГТС, на котором стоит VoIP шлюз.

— Звонки из Америки я могу принимать на свой прямой +1 575 322xxxx номер в Google Voice. Схема такая: Google Voice -> Gizmo5 -> мой SIP адрес. Американцы, набравшие его (обычно по ошибке), попадают в систему и могут быть перенаправлены на любой из внутренних номеров (пока это мой мобильный, но возможны и IVR варианты).

— Можно также подключить входящие номера в других странах (UK и т.д.), как платные, так и бесплатные (последние обычно с донабором). Пока неактуально.

— Если я не хочу давать никому свой прямой домашний номер, использую номер от COMTUBE с донабором (в нем хорошо, что номер вызывающего тоже в систему корректно передается).

Тут в каком-то топике спрашивали, а как SIP интегрировать со Skype. С одной стороны, протоколы совершенно разные, но уже есть реализации Skype for SIP, в т.ч. enterprise уровня. Я использую очень простое решение – использую Skype+SIP шлюз от SIPNET. В частности, любой пользователь Skype может позвонить мне, просто вызвав контакт skype.sipnet.ru и введя мой личный 7-значный номер в SIPNET донабором. Этот звонок автоматически уйдет на мой мобильный (ну или куда еще я его захочу направить).

Аналогично любой абонент SIP сети может вызвать любого Skype пользователя в формате skypename@skype.sipnet.ru как обычный SIP URI, и позвонит мне на Skype. Я таким же образом могу позвонить с любого SIP клиента кому-нибудь на Skype.

Если в систему добавить что-нибудь типа Asterisk с его огромными возможностями по кастомизации, можно интегрировать телефонную систему с сервисом управления «умным домом». Вот первое, что приходит в голову:

— домофон на двери приходит звонком на нужные SIP-клиенты, в т.ч. с видеокартинкой от камеры,

— открываем дверь набором PIN кода и т.д.

— звоним на определенный внутренний номер для прослушивания звука в другой комнате,

— звоним на номер для просмотра картинки с IP видеокамеры и т.д.

Да, обещал же рассказать про софтфон на мультимедиа-компьютере с видеокамерой… Я имею в виду вот что:

— Сижу я, предположим, на диване, и смотрю фильм на плазме.

— В этот момент кому-то приспичило мне позвонить.

— Звонок отображается на экране плазмы, и фильм приостаналивается.

— На плазме видно номер вызываюещего, его имя из единой телефонной книги и фото, если таковые прописаны.

— Далее с пультам выбираю, отклонить вызов (тогда он уйдет в голосовую почту), принять звук или принять с видео.

— Если принимаем звук, то спокойно разговариваем через микрофон и динамики аудиосистемы.

— Если принимаем звук с видео, то помимо разговора мы с собеседником еще и видим друг друга.

Скажете, фантастика? Видел подобные аддоны для связки Asterisk с Windows Media Player. Думаю, и под Linux уже есть подобные решения. Будем искать.

Еще одна приятная фишка: мне очень нравится набрать заданный короткий номер на любом SIP-устройстве, и послушать новости от Эхо Москвы или РСН. Это тоже SIP сервисы, открытые всем (не только их пользователям) от SIPNET. Жалко только, что мало ресурсов пока доступно таким образом.

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

SIP недаром положен в основу одной из концепций сетей связи будущего поколения — за ним и будущее, и настоящее.

Я сознательно опускаю описание возможностей платформы от ITooLabs (ну или CGP в меньшей степени) в части унифицированных коммуникаций – поскольку изначально был создан как очень мощный почтовый сервер, потом получивший не менее функциональную телефонную и IM часть. Такие фишки, как сообщение по SIP/SIMPLE или XMPP/Jabber о новом письме или сообщении голосовой почты (которое тоже является обычным по сути письмом), прием и осуществление звонков из Flash-клиента, единые списки контактов для почты, IM и телефонии с едиными правилами обработки, и многое другое, очень помогают жить. Но это тема для отдельного топика.

Прошу прощения, если материал не структурирован и не оформлен в нужной степени – лежу дома с температурой. По той же причине нет картинок.

Буду рад ответить на вопросы.
Tags:
Hubs:
Total votes 107: ↑100 and ↓7 +93
Views 196K
Comments 122
Comments Comments 122

Posts