wau |
|
Темы:
172
Сообщения:
1271
Участник с: 11 октября 2013
|
Подняв свой почтовый сервер, файловый, календаря и адресных книг, теперь хочу и свой сип-сервер. Я хочу простой, просто простейший sip сервер буквально масштаба междусобойчика, в пределах пары десятков клиентов. Мне не надо (не хочется) для регистрации и учета клиентов своей телефонной сети использовать базы данных. Несмотря на то, что хотелось чего по-проще, типа opensips или Kamailio, пришлось все же ставить asterisk, который оказался и простым, и гибким. Без всяких ГУИ. Ставим вариант самого сервера и кодеков к нему. Следует отметить, что кодек g729 т.н. "коммерческий", он есть не во всех клиентских программах (которыми и будем звонить), да и сам Астериск его будет использовать ограниченно - без транскодинга (т.е. только звонок с 729 на 279 кодек). Это существенно. Сам сервер будет реализовывать несколько задач - связь между своими клиентами (хозяевами и их приятелями), и звонки во внешний мир. Звонки во внешний мир будут реализованы через посредников (шлюзы) типа sipnet.tu и мегафоноф мультифон. Разумеется, для удобства будут запущены сервисы маршрутизации - типа набираешь 7-мизначный номер, сервер сам понимает, что звоним внутри Города и дописывая нужные циферки для понимаемого шлюзом размера направляет звонок в нужное место. Сама установка -
Можете получить аборт с установкой g729, это не беда, на самом деле (см. абзац ниже, о транскодинге, а также http://archlinux.org.ru/forum/topic/15534/?page=1#post-160755), он не очень и нужен. Это внешние гады пригибают к использованию g729 - путем предоставления выбора "или на полосе 32кб\с g729 или фиговая связь, требующая полосы 100кб\с с поддерживаемым кодеком", но благодаря своему серверу все будет хорошо. Редактируем несколько конфигов. Главный, запрет на загрузку некоторых модулей и "план звонков". Вопреки конкурирующим хаутушкам я не иду "в самый конец файла" что-то дописывать. Главный (в наших целях) конфиг включает в себя описание как самих клиентов сервера, так и выходы на Город (т.н. транки). Поскольку и клиенты, и транки множественны и имеют повторяющиеся описания, для сокращения текста в конфиге применяются шаблоны-описания. Следует вновь и вновь отметить, что Астериск использует ту же логику, что и (видимо) большинство программ - по умолчанию считываются ВСЕ конфиги, лежащие в директории. В данном случае это /etc/asterisk, куда и надо попасть командой - cd /etc/asterisk Как и (видимо) везде, текст в конфигах ПЕРЕОПРЕДЕЛЯЕТ установки параметров по умолчанию. Как следствие - вряд ли следует использовать положенный в директорий тестовый диалплан, следует посмотреть и другие конфиги, возможно, часть из них вообще куда-нибудь вынеся. Я вынес (в другой директорий) следующие конфиги -
Перед конфигурацией двух главных файлов Астериска надо продумать идеологию, терминологическую целостность, это важно. Вам надо продумать следующие вопросы - будут ли ваши клиенты пользоваться индивидуальными каналами на внешнюю связь (типа Мультифон), возможно кто-то (несколько клиентов) будет пользоваться общим для всех, кто-то своим личным (соотв. и определяться у получателей звонков они будут согласно этому выбору). От этого зависит указание меток (произвольные наборы букв, называемые Контекст). Открыв на редактирование все пишу вверху файла -
Пожалуйста обратите внимание на осмысленный выбор кодеков. Поскольку сети у нас по-прежнему не Ах, то я сознательно выбрал на дистанции "сервер-телефон" кодек gsm. Я, конечно, могу пользоваться программой CSipSimle со включенным g729, но эта программа, как и большиство других, подъедает батарейку в режиме ожидания. Я пользуюсь Акробитсом, поскольку в нем есть пуш. Так вот, Астерикс транскодинг с применением g729 делать не будет, отказывается по религиозным соображениям (или я не познал как). А по требованию к сети дела обстоят так - g729 требует ок. 30кб\с, gsm ок. 32 (но качество звука хуже), а другие кодеки, совместимые с моим sipnet.ru, хотят 100 кб\с и более. Заведомо известно, что эти 100 я не везде могу получить. Заведомо известно, что от сервера до сипнета или мегафона у меня честные 100мбит. Т.е. от сервера до телефона я применю gsm, а от сервера до шлюза (транка и т.д.) - что шлюзу угодно. И от телефона до телефона (через сервер) тоже будет только кодек gsm без транскодинга (перекодирования в другие кодеки). Также пожалуйста будьте готовы к чудесам в распределении звонков. Если, скажем, Астериск еще относительно подробно документирован, то тот же Мегафон со своим мультифоном - нет. При одновременном использовании зарегистрированного для Входящих подключения к мультифону и реальной симки в реальном телефоне могут быть чудеса. Мануалы операторов типа Мультифона могут давать свои инструкции по поднастройке, например, Мультифон дает такую http://multifon.ru/media/devices/instruction/Asterisk_set1_1.pdf. Но это полдела и эту инструкцию читать не надо. Надо на телефоне набрать *137# и указать самому Мультифону правила поведения. С sip.conf закончили. Теперь диалплан, в котором , открыв на редактирование, нажимая ctl+k удаляем все лишнее (это особенно важно во вазимосвязи с последним абз.). На самом деле в моем случае лишним оказалось все. Это потому, что предпочтительно терминологическое единообразие - как мы яхту назвали в первом конфиге, так и в диалплане следует именовать, а не разбираться с наследием и вкусами других авторов. Что совсем нехорошо, так это то, что реальные форматы описания настроек в текущей версии (13.6) ощутимо отличаются от загаженной поисковой выдачи (это вечное "погугли", "поиск рулит" на тематических форумах...). Например во всех увиденных мануалах вместо правильного include => noday,*,*,9,may (разделитель параметров запятая)настойчиво пишут include => noday|*|*|9|may Лично я начинал с простого диалплана, но хотелось-то продвинутого. На личный рост от простого до продвинутого ушло около недели. В ходе этого роста пришло понимание, что имеет смысл сперва описать универсальные для всех правила звонков и затем из вставлять в индивидуальные. Какие ставились цели и задачи - а) как ни наберешь Москву городские (+749... или 849... или 49...) звонок пойдет через Сипнет, поскольку тот на городские в небольших кол-вах бесплатен б) как ни наберешь СПБ городские (+749... или 849... или 49... или просто семизначный) звонок пойдет через Сипнет поскольку тот на городские в небольших кол-вах бесплатен в) как ни наберешь Российские сотовые, они пойдут через личные мегафоновы мультифоны, поскольку это что-то ок. 1,5 за минуту вводим (напомню, открыть, полностью зачистить - это проще, чем сперва убить файл, потом создать и не забыть потом изменить права на файл) - г) как ни наберешь номер (имя) своего, внутреннего абонента, так он и пойдет без посредников в виде ОПСОСов д) можно даже установить правила перехвата - набираешь Кремль, а попадаешь в Палату №6. Причем индивидуально для каждого звонящего и в разное время суток У смежных правил набора есть (вроде) система приоритетов - если описания правил одного уровня, то исполняется то, которое более подробно. Например, 78ХХХХХХХХХ и 789234ХХХХХ - исполнится второе. Инклуды считаются более низким уровнем. Т.е. если второй пример будет вставлен оператором include, то вопреки ожиданиям он пойдет вторым. Именно этим объясняются неразъясненные примеры экстеншенов с казалось бы лишними операторами include (т.е. когда один из include вставляет блок, используемый только в одном месте - так делается для уравнивания приоритетов).
Этого для начала достаточно. Далее можно углубляться в настройки маршрутизации звонков, принимать входящие и раздавать их лично или группам, конференц-связь, и пр. Отмечу, что музыка для проигрывания сперва должан быть сконвертирована в формат gsm и затем засунута куда надо, т.е. /var/lib/asterisk/sounds/en/puchkom.gsm Стартуем службу и меняем права на нужный директорий для логов (и музЫк при необходимости)-
При изменении конфигов НЕ надо перезапускать службу. При тестировании и настройках под рутом надо войти в консоль Астериска (при запущенной службе)- asterisk -r Здесь будут и логи (по мере возможности, меру подробности регулируем добавлением v, т.е. asterisk -rvvvvvv), и здесь можно после изменения конфигов давать команды - sip reload - это после изменения sip.conf dialplan reload - это после изменения диалплана sip show peers - а покажи мне всех известных системе клиентов и их состояние sip show registry - а покажи мне все поднятые входящие линии core show translation - а покажи нам таблицу кодеков, возможности перекодировки В консоли вы увидите, как на ваш сервер почти сразу начнут ломиться враги, массово и непрерывно - схема_1 - используется лицами для организации за чужой счет звонков по нужным им направлениям, многие ай-пи из атакующих - неожиданно из Палестины, просто пытаются совершить транзитный звонок на нужные им номера без регистрации и будут отбиты, если в терминах инструкции событие incoming у вас в диалплане не предусматривает такого транзита - и это уже после того, как сколько-то тысяч айпишников мы забанили в iptables, который за 18 часов работы заблокировал 125 тысяч попыток (36мб).схема_2 - будут ломиться с попытками регистрации клиентов с логинами-паролями из стандартных хаутушек, типа логин 100, пароль 100 т.п. - будет отбита при использовании нормальных паролей - Это нормально. Поэтому НЕЛЬЗЯ применять глупые малозначные (типа 101) пароли даже для отладки. Наверняка ваш сервер стои ЗА роутером, потому не забудьте включить проброс портов в роутере на сервер (5060). Помните, что роутеры бывают разные и у их изготовителей могут быть своеобразные представления о роутинге (помню, вроде это был ДЛинк, имеющий внешний ip и из локалки никак не позволял обращаться к своему же внешнему ip).Загрузки процессора как-то не особо и видно, никак не больше чем почтовый сервер. Сейчас, на время обкатки, адаптации и тестирования, я ломящимся жуликам вместо аборта организовал поднятие трубки и проигрывание патриотической песни. Что позволило посмотреть загрузку процессора - в пределах 1-2%. |
palpalych |
|
![]()
Темы:
89
Сообщения:
1127
Участник с: 09 августа 2011
|
это все? а дальше? как это использовать?
Арчи ~]$ ...as always want ready-made solutions that would make even tastier
|
wau |
|
Темы:
172
Сообщения:
1271
Участник с: 11 октября 2013
|
Пока все. Я второй день развлекаюсь. Звонить себе и своей контактной группе, несколько меньше переживая о прослушке, о выносе своих данных на сторону, ну плюс вследствие единообразия технологии путем ее навязывания "младшим" (в технологическом смысле) членам семьи привыкание к воипу и снижени расходов при расширении географии общения (как минимум бесплатные звонки на городские МСК и СПБ). Ну а как конкретно использовать - это решит сам тот, кто вдруг озадачился вопросом своего сервера, ведь ему это зачем-то надо. |
palpalych |
|
![]()
Темы:
89
Сообщения:
1127
Участник с: 09 августа 2011
|
wauты не понял, я не в теме, как можно пользоваться этим сип? через комп что-ли?
Арчи ~]$ ...as always want ready-made solutions that would make even tastier
|
wau |
|
Темы:
172
Сообщения:
1271
Участник с: 11 октября 2013
|
через комп, конечно, тоже. Но я его делал для использования в повседневной жизни, в телефоне. В Андроиде, например, в штатной звонилке есть встроенный сип-клиент (особенно хорошо реализован в Андроиде 6), кроме этого есть CSipSimple, Акробитс и масса других аналогичных программ, вкусы у всех разные. В моем телефоне всегда есть выбор, как именно звонить, от этого выбора зависит цена и защищенность разговора, независимо от роуминга и пр. Это позволяет в обычном односимочном аппарате реализовать функционал мультисимочного телефона. |
cucullus |
|
![]()
Темы:
269
Сообщения:
3574
Участник с: 06 июня 2007
|
А зачем свой сервер для такого применения? Настроить на тот же sipnet и всё.
такие дела.
|
palpalych |
|
![]()
Темы:
89
Сообщения:
1127
Участник с: 09 августа 2011
|
cucullusблин что это? как настроить? хочется чего-то настроить, потому что ну сколько можно платить по 10 т.р. в месяц за связь...
Арчи ~]$ ...as always want ready-made solutions that would make even tastier
|
indeviral |
|
Темы:
39
Сообщения:
3206
Участник с: 10 августа 2013
|
palpalych настроить то не проблема... вот только денег это не с экономит((
Ошибки в тексте-неповторимый стиль автора©
|
wau |
|
Темы:
172
Сообщения:
1271
Участник с: 11 октября 2013
|
sipnet.ru - бесплатно на городские МСК и СПБ, и междугородка всяко дешевле, чем через сотовую (городских у меня не осталось). Есть и куча других провайдеров. которые дают хорошие тарифы на нужные пользователю направления. Сейчас в топик допишу про разумность выбранной схемы транскоднга. |
wau |
|
Темы:
172
Сообщения:
1271
Участник с: 11 октября 2013
|
cucullus Я не убеждаю и не настаиваю, у каждого свои тараканы, и у меня они есть. Я вот хочу по возможности иметь все свое, не завязанное на внешних поставщиков (в возможной мере), а для связи в рамках своего междусобойчика это возможно. Вопросы кодеков (сипнет жестко сам решает, какие применят и ему начхать на качество вашей сети), выноса своих разговоров внешним провайдерам, вопросы маршрутизации - Астериксом в диалплане я могу нарисовать что угодно и не задумываясь набирать номер и получать разные маршруты (+7921 пойдет через мультифон, +7812 через сипнет, семизначный номер автодополнится +7812 и пойдет сипнетом и пр.) |