Данный текст больше как документирование процесса как памятки для себя, хотя может кому и пригодится, а может кто то скажет что я делаю все не правильно и расскажет как нужно.
В общем имеем идею сделать из FusionPBX телефонную станцию провайдера, хотя бы частично. Задача возможно и тривиальная, но делаю я это первый раз, руки кривые поэтому забывать и пропускать некоторые моменты не хочется.
Что желательно получить на выходе:
Телефонная станция способная обслуживать около 10к телефонных аппаратов (GPON авторизуются через ONT, аналоги через IADы, SIP телефоны).
SIP номера для АТС клиентов.
Маршрутизация вызовов по более выгодным направлениям.
Гибкая и удобная система как для нас так и для клиентов.
По ходу дело тут будут дополнения.
Что имеем и на чем будем тренироваться:
Серверная сторона: FusionPBX на виртуальной машине, транк наш со станции на 30 каналов и 4 внешними номерами.
Тестовые клиенты: IssabelPBX(16 Asterisk), FreePBX(18 Asterisk), 2шт Yealink t21,4шт Atcom A10, 3cx Phone на 2 ПК.
Задача разобраться с FusionPBX и понять справится ли она с нашими задачами и есть ли все нужные функции. Вопросы появляются по ходу дела и тащут за собой другие вопросы.
В общем, вперед, начнем
Установку расписывать смысла нет. Сразу к настройкам.
Так как все в локальной сети, то я завел сразу записи на внутреннем DNS sip001.domain.my sip002, sip003, sip004 по аналогии. После создал соответвующие домены на FusionPBX.
В основном работа будет в домене sip001 значит переходим в него, остальные до некоторой поры не трогаем.
Теперь настраиваем транк (Gateway), у нас он в отдельном VLANe, на второй сетевой карте, поэтому есть свои нюансы.
Переходим Accounts- Gateways и нажимаем add
Поля жирным шрифтом обязательны для заполнения, но в нашем случае не все.
По пунктам и подробнее:
Gateway - жирный, просто имя шлюза.
Username - вообще по задумке тут вроде как должен быть номер, если оставить пустым то в поле from будет подставляться Freeswitch@proxy в качестве исходящего номера. Сначала я вставлял туда внешний номер и вроде как работало, но только с 1 номером. Не подходит поэтому в итоге оказалось что Caller ID In From True решает данные вопрос и в данном поле можно писать что угодно.
Password- у нас шлюз без регистрации, поэтому данное поле мы оставляем пустым.
From User | From Domain- так же пустые, нам не нужны.
Proxy- важный пункт. Тут указывается адрес сип сервера провайдера.
Register- в нашем случае регистрация не требуется, при значении false поля Username и Password станут не обязательными, но жизными останутся.
Отальное не трогаем до поля Caller ID In From
Caller ID In From- подставляет в поле From внешний номер, вот это то что нам просто необходимо.
Все остальные поля остаются по умолчанию, на данный момент.
Неясно с полем Channels, как оно работает на данный момент не понятно. Звонки спокойно проходят в обе стороны независимо от числа указанного в это поле (сейчас не важно, в дальнейшем хотелось бы что бы работало).
Переходим в внутренним номерам (Extensions)
В последствии внутренний номер будет соответствовать внешнему номеру, то есть внутренний 7значный городской номер вида 2XXXXXX или 3XXXXXX. Поэтому заводить будем такие же. Так как номера подаются пачками заведением проблем не будет.
Важных пунтов в настройках Exstension особо нет, всё создается автоматически. Дописывать только поле Toll Allow которое в будущем пригодится для разрешения вызовов на определённые направления.
Из не понятного Limit Max который не работает или работает но не так.
Теперь можно подключить SIP аппараты для проверки внутренних вызовов и дальнейшей работы.
Sip Profiles
Важный пункт без которого внешние звонки у нас работать не будут это Advanced- Sip Profiles
Первое что просто необходимо сделать это бэкап этих самых профилей.
Заходим в профиль, нажимаем Copy, пишем имя и отключаем его что бы не мешал. Важно потому что после каких то манипуляций у меня профиль internal куда то потерял все настройки что было неожиданно и очень неприятно.
Профиль для внутренних вызовов Internal остается без изменений, изменения вносим в external.
Нас интересуют поля:
ext-rtp-ip наш IP адрес второй сетевой карты
ext-sip-ip наш IP адрес второй сетевой карты
rtp-ip наш IP адрес второй сетевой карты
sip-ip наш IP адрес второй сетевой карты
sip-port 5060, по умолчанию 5080, но нам через него подать не могут.
Теперь важный момент ACL, переходим в Advanced- Access Controls
Разрешаем ip нашего провайдера и сохраняем.
Теперь можно перейти в Status-SIP Status и посмотреть поднялся ли транк и запустились ли профили.
Если всё хорошо то можно переходить непосредственно к маршрутизации вызовов.
Inbound Routes / входящие маршруты
Входящий маршрут у нас не так прост как на обычных АТС, мы точно не знаем какой на какой номер на прилетит звонок.
Поэтому будем делать так: переходим в Dialplan - Inbound Routes и жмём Add
Дальше нас интересует кнопка Advanced, жмём её
и заходим в созданный маршрут видим что тут получилось
Объясняю, к нам из транка потенциально прилетают DID семизначные цифры, то есть вида 2XXXXXX и 3XXXXXX, если такой номер есть то мы его принимаем и отправляем на соответвующий Exstension. Возможно это криво и не правильно, пока другого варианта максимально безкостыльно и не сложно сделать это я не нашел.
На данном этапе настройки можно проверить входящие вызовы которые должны работать.
Outbound Routes / Исходящие маршруты
Для исходящих переходим в Dialplan- Outbound Routes
Добавляем маршрут
В принципе данный маршрут правильный, но не в нашем случае. Нам что бы вызов прошел необходимо подствить внешний номер с префиксом кода города к внутреннему номеру.
И для удобства я добавлю ещё и вариант когда человек звонит с кодом города или с 727 впереди (для примера звонок на телефон приходит с кодом города 727XXXXXXX если нажать кнопку перезвонить то 727 тоже улетят в транк и вызов не пройдёт, может это у нас только так, хз).
В общем финально должно получиться так:
аналогично делается для мобильных, междугородних и международных
звонки на городские Алматы ^(?:8727|727|)(\d{7})$
звонки межгород ^(?:8|7)(7[12]0-8)(\d{7}))$
мобильные ^(?:8|7)(704567)(\d{8}))$
международные ^(810\d+)$
На этом моменте должны работать вызовы в обе стороны и продолжение будет в следующей серии.
Напоминаю, что это больше инструкция для себя, критика и советы приветствуются.
Комментарии (11)
enamchuk
29.11.2022 09:41+1Спасибо автору за статью. Большинство людей знают или хотя бы слышали об Asterisk (и сборках на её основе FreePBX, Issabel), но мало кто знает о Freeswitch (и Fusion).
scruff
Всем привет. Подскажите по девайсу - даже не знаю пока как его назвать. В общем - имеется старая
ламповаяОфисная миниАТС, у которой все порты аналоговые, что на городских линиях, что на экстеншнах. Никакой многоканальности и конференц-звонков вам. В перспективе хочу заменить данного динозавра чем-нибудь более современным из мира VoIP - Asterisk, FreePBX и тд. Но есть проблема - аналоговые городские линии в количестве 10+ не принадлежат клиенту, а являются собственностью Арендодателя здания. Арендодатель абсолютно не собирается "чесаться" о том чтобы перевести аналог в цифру. Поэтому единственный путь - найти девайс, в который на вход можно было бы воткнуть эти аналоговые городские "медные" линии, а на выходе получить готовый SIP-транк и отдать его будущему Asterisk-y, так чтобы через данный девайс этот Asterisk мог как звонить во вне, так и принимать входящие звонки извне с городских линий. Спасибо.mapnik
Это называется FXO.
Что-то примерно такое.
Задача поддержки аналоговых стыков такова, что задача "заставить арендодателя чесаться о переводе аналога в цифру" вам в дальнейшем будет казаться плёвым делом. Подумайте ещё раз, прежде чем лезть в эту тему: может, всё-таки попробовать убедить арендодателя сначала одну линию перевести в ISDN BRI, принять его астериском, соединив его со старой АТС через FXS шлюз, обкатать технологию etc.?
enamchuk
ISDN BRI - это тоже сложности с настройкой и поиском оборудования. В России эта технология не прижилась, хотя в нашем регионе было несколько станций, предлагавших эту услугу. Лучше уж все номера перевести на ISDN PRI (Е1), в отличие от BRI там и голосовых каналов больше (тридцать вместо двух) и большой выбор оборудования, но ещё лучше - попросить эти номера по SIP, тогда не нужно будет покупать дополнительное оборудование, резервировать его.
mapnik
С BRI тесты дешевле, чем с PRI (при доступности обоих), вот о чём я.
А сип — фигня по сравнению с православным E1, потому что задержки на порядок больше, а доступность обычно ниже.
Оборудование E1 на ебее сто́ит от сорока долларов на порт (PCI/PCIe) с эходавом.
enamchuk
Вы, наверное, из Чехии :-)
BRI можно найти в Европе, но в России он никогда не был популярной услугой.
Оборудование под BRI также днём с огнём искать.
Не знаю, в какой стране проживает человек, задавший вопрос, но в России на Авито можно за копейки найти Cisco 2811 или аналогичную с модулями E1 PRI.
И на счёт SIP не соглашусь, т.к. многие операторы своим абонентам уже не тянут настоящий Е1, а ставят подобную Cisco возле абонента, а до Cisco идёт всё тот же SIP.
scruff
Убедить арендодателя к сожалению никак. А какие риски вы видите в FXO? У многих партнеров именно так и работает. Никто не жаловался что что-то глючит или сложно настраивалось.
enamchuk
Из основных проблем, первое - "зависание" линии (абонент положил трубку, но аналоговая АТС выдаёт "гудки", которые шлюз не распознаёт и не освобождает линию. Может помочь переполюсовка, если оператор это сделает, или придётся ставить "отбойник" - он анализирует гудки и самостоятельно разрывает линию).
Вторая проблема - возможное эхо в голосовых каналах. В хороших шлюзах есть программные и аппаратные подавители эха, но качество работы у всех разное. И этот эходав влияет на качество звука.
Третья проблема - вызов поступает на АТС (обычно) не сразу, а после второго вызова, т.к. шлюзу нужно между вызовами получить номер вызываемого абонента и передать его далее на вашу АТС.
vanechek233
Вам нужен sip шлюз с FXO портами
CrazyTux
Железка обзывается FXO-шлюз, их полно, я предпочитал модульные AddPac, но по факту производелей туева куча.... Сейчас к счастью мне это не требуется. Что до настройки связки с Астером - мануалов по шлюзам горы. Из опыта работы с этим барахлом, а FXO-шлюзы, даже от Циси, априори барахло, могут потребоваться еще отбойники, это отдельная тема, но тож в продаже есть у многих. Чего точно не советую связаться с чисто китайским барахлом типа AllVoip и прочими фанвилами, а вот Yalink брать можно.
otkydadengi Автор
А зачем плясать под провайдера? Очень ценный номер?
Есть же множество вариантов получить как готовую АТС в облаке или транка sip через интернет.