Настраивая голосовой шлюз SPA8800 для своего FreePBX Distro столкнулся с тем что информации по настройке этого девайса в интернете в целом нет, есть разные куски на разных сайтах, при чём находятся в поиске только после того как доходишь до определённого пункта, что не очень удобно и довольно трудоёмко, так родилась эта инструкция, и что бы самому не забыть и другим в настройке помочь. Здесь будет описана настройка Cisco SPA8800, хотя для Linksys SPA8800 настройки аналогичные (это по сути одна модель) с начала и до конца, но только для портов FXO, для портов FXS можно воспользоваться инструкцией по SPA8000 — настройки аналогичные.
Начальный этап — сетевые настройки.
Настройка SIP.
Настройка взаимодействия с городской линией ТФОП (PSTN).
Я буду настраивать на FreePBX но эти настройки с таким же успехом можно применять и на TrixBox, Elastix и на других решениях построенных на Asterisk.
Начальный этап — сетевые настройки
При подключении к сети шлюз сам получает IP адрес по DHCP, поэтому если у вас поднят DCHP в сети просто посмотрите какой адрес получил ваш SPA. Далее через обычный браузер (желательно IE) заходите по адресу http://ip_адрес_вашего_spa/admin/advanced у вас откроется окно настроек, по умолчанию пароли не установлены и шлюз их спрашивать не будет. Если у вас в сети нет DHCP то адрес по умолчанию для шлюза — 192.168.0.1 что бы подключиться к нему нужно будет соответствующим образом настроить свою сетевую карту, и убедиться что у вас в сети нет устройств с таким адресом (а ещё лучше на прямую к ПК подключить, а не в сеть).
Переходим на вкладку Wan Status и меняем настройки если нужно, в моём случае остаётся DHCP, если хотите настроить IP адреса вручную выбирайте Static IP.
Если вносили изменения не забываем нажать кнопку Submit All Changes.
Далее идём в Voice — System и устанавливаем пароль, пароль желательно ставить и для user и для admin, логины соответственно такие же user и admin.
Нажимаем кнопку Submit All Changes.
прошивка
После того как эти настройки выполнены рекомендую поставить свежую прошивку, для этого идём на сайт производителяи скачиваем нужный нам Voice Gateway Firmware. Это будет архив, распаковываем его и запускаем upg-spa8800-*-*-*-GW.exe
Вводим IP адрес шлюза, выбираем сетевую карту (если их несколько) с нужными настройками жмём Ок. Дальше будет окошко с запросом пароля для Admin вводим пароль снова Ок, в появившемся окошке останется нажать Upgrade и в течении буквально 5 минут новая прошивка будет залита, весь процесс довольно прост.
В завершении процесса устройство перезагрузится, что бы убедиться что мы всё нормально прошили заходим в Voice — Info и смотрим строку Software Version.
На этом пожалуй начальный этап завершён.
Настройка SIP SPA8800
Переходим к настройке шлюза для астериска, выбираем Voice — Line1.
В поле Proxy вводим адрес нашего Asterisk, Make Call Without Reg и Ans Call Without Reg выставляем в Yes.
Запоминаем SIP Port. Нажимаем кнопку Submit All Changes.
Небольшое пояснение по настройкам:
Proxy — адрес для регистрации линии FXO и осуществления исходящих и приёма входящих звонков на сервере PBX;
Outbound Proxy — необязательный параметр, адрес сервера для исходящих звонков, используется помимо основного Proxy для резервирования;
Register — для регистрации на сервере PBX;
Make Call Without Reg — для возможности исходящих звонков без регистрации на PBX;
Ans Call Without Reg — для возможности ответа на входящие звонки без регистрации на PBX;
Переходим к блоку Subscriber Information, заполняем поля Display Name, User ID, Password так как мы их потом будем заполнять в астериске, User ID — имя пользователя, Password — соответственно пароль, эта информация нужна чтобы шлюз мог зарегистрироваться на астериске. В моём случае логин — spa8k8line1, пароль Sw0rdfish. Display Name — я заполнил как номер входящей линии, так проще будет отслеживать звонки в отчётах.
Нажимаем кнопку Submit All Changes.
астериск
Приступаем к настройке Asterisk, выбираем раздел Trunks (Транки). Добавляем транк Add Trunk.
Trunk Name — имя транка, то как вы его хотите видеть, не на что в общем-то особо не влияет .
Outbound CallerID — номер телефона который вы будете видеть в отчёте при исходящих звонках.
Dialed Number Manipulation Rules — сопоставление набранных номеров с шаблоном, можно не заполнять. Подробнее о правилах и шаблонах набора номера можно здесь прочитать.
Trunk Name — Несмотря на то что поле называется имя транка, здесь необходим внести Имя пользователя, иначе SPA не сможет зарегистрироваться на астериске, а значит ничего работать не будет.
PEER Details — самая интересная часть, здесь прописываются основные настройки.
1 2 3 4 5 6 7 8 9 10 11 |
username=spa8k8line1 ;Имя пользователя для порта, то что мы указывали в User ID на шлюзе type=friend ;Позволяет и принимать и отправлять вызовы secret=Sw0rdfish ;Пароль qualify=yes ;Разрешает серверу определять доступность VoIP шлюза port=5061 ;SIP порт VoIP шлюза, параметр который указан шлюзе, на разных Line портах разные порты, будьте внимательны! nat=never ;Обязательный параметр, Cisco с другими параметрами может не работать! host=dynamic ;Для работы VoIP шлюз должен зарегистрироваться dtmfmode=info ;Режим который мы выставили на SPA context=from-pstn ;Контекст указывает обработчик входящих вызовов canreinvite=no ;Запрещает передачу медиатрафика минуя астериск |
Сохраняем настройки кнопкой Submit Changes и применяем их кнопкой Apply.
исходящие настройки астериск
Переходим в раздел исходящей маршрутизации (Outbound Routes) и добавим направление через наш шлюз Add Route. Тут всё просто, достаточно указать имя маршрута и заполнить шаблоны, шаблоны заполняются аналогично транку, те же prepend и prefix значение которых я уже объяснил выше, только если в транке их можно не заполнять, тут их надо заполнять обязательно, по этим шаблонам Астериск ищет через какой же транк ему пустить вызов. В моём случае шаблоны заполнены так что бы номер уходил на транк в формате 79181234567 делаю я это для унификации, большинство VoIP провайдеров принимают номер именно в таком формате, мне проще на определённом транке потом вывернуть из 7918 в 8918 или не делать этого в зависимости от поставщика услуг.
С астериском почти всё, осталось добавить маршрут для входящих звонков.
настройки входящих звонков астериск
идём в раздел Входящая маршрутизация (Inbound Routes) и добавляем маршрут, в самом просто случае достаточно указать DID (это идентификатор который нужен для того что бы астериск знал куда направить входящий вызов). Такой же DID мы позже укажем в настройках шлюза, у меня это будет 1234567, а так же указать назначение маршрута т.е. куда звонок уйдёт, можно выбирать почти всё, приветствия, внутренние номера, очереди, голосовую почту, IVR итп, указывается в поле Установить направление (Set Destination) в моём случае это будет внутренний номер 161, который я конечно заранее создал. Жмём Submit — Apply, с астериском закончили.
Далее будем настраивать Dial Plan, DTMF и настройки входящих — исходящих вызовов на шлюзе.
Итак пор порядку сверху вниз у нас идёт Audio Configuration, тут мы настраиваем используемый шлюзом кодеки и DTMF сигналы, кодеки я не изменял меня устраивают настройки по умолчанию, а вот DTMF сигналы надо будет выставить в INFO т.к. мы подобную настройку использовали в транке на Астериске.
Dial Plan
здесь мы пропишем какие номер шлюз будет выпускать наружу, т.е. исходящий диал план и входящий, исходящий для удобства я разместил в первой строке, входящий в 8, вы можете использовать любую удобную вам, ниже можно будет выбрать какую строку для чего использовать.
Мой шаблон для исходящих выглядит так (2xxxxxxS0|89xxxxxxxxxS0|8xxxxxxxxxxS0|9xxxxxxS0|0[1-4]S0) т.е. шлюз пропустит в городе номера типа 2123456, 89123456789, 81234567891, 9123456, ну и номера экстренных служб 01,02,03,04. Теперь более подробно о том как самому составить диал план.
- * — любой символ;
- . — любое количество символов;
- x — цифры от 0 до 9;
- S0 — задержка 0 секунд;
- x-y — диапазон цифр от x до x, в моём примере 1-4 это цифры от 1 до 4.
Например *9S0 — означает, что при наборе любого символа и девятки набор происходит мгновенно без задержек. P6<:7777> — по истечении 6 секунд, если ничего не было набрано, происходит автоматический набор номера 7777. Перед посылкой цифр на сервер PBX или в PSTN, голосовой шлюз сверяет набранные на аппарате цифры с диалпланом и делает соответствующие корректировки с задержками или заменой цифр и т.д перед посылкой.
Шаблон для входящих звонков (<: 1234567@192.168.254.22>S0) в данном случае 1234567 это DID который мы указали на астериске, 192.168.254.22 — адрес астериска.
Нажимаем кнопку Submit All Changes. Подключаем нашу городскую линию к порту Line1 шлюза.
Где-то здесь надо добавить, что у шлюза есть интересная особенность. Когда на шлюз не поступает питание он соединяет напрямую порт Phone1 с портом Line1 и т.п. порты 2,3,4. Имейте это ввиду когда будете кроссировать внутренние телефоны! На SPA8800 лучше вешать тех сотрудников кто в основном и принимает входящие звонки.
После сохранения настроек на вкладке Voice — Info мы должны увидеть примерно следующую картинку.
Обращаем внимание на строку Registration State — должно быть Registered. Запоминаем Line Voltage.
Настройка взаимодействия с городской линией ТФОП (PSTN).
Идём дальше, и настраиваем поведение шлюза при входящих и исходящих вызовах.
VoIP-To-PSTN Gateway Setup здесь мы настраиваем какой Dial Plan (DP) мы будем использовать при звонках с астериска в телефонную сеть, у меня это первая строка поэтому я выбрал 1 в параметре VoIP Caller Default DP.
PSTN-To-VoIP Gateway Setup тут наоборот указываем какой диал план мы используем при входящих звонках из города, в моём случае это 8 в параметре PSTN Caller Default DP. PSTN CID For VoIP CID — передавать или нет CID из города на астериск, оставляем по умолчанию. PSTN CID Name Prefix и STN CID Number Prefix — добавить префикс к имени или к номеру CID полученного из города.
FXO Timer Values (sec) раздел посвящённый временным интервалам, все параметры задаются в секундах.
PSTN Answer Delay — задержка перед ответом на входящий звонок из города. Если вы используете Caller ID от оператора ставьте 3-4 может больше может меньше, подбирайте экспериментально. Можно поставить больше значение и уменьшать его до тех пор пока номер будет определятся, если же Caller ID на вашей линии не подключён ставьте 0.
VoIP-To-PSTN Call Max Dur — максимальная продолжительность разговора из Астериска в город, 0 — без ограничения.
PSTN Ring Timeout — сколько будет «звонить» город пока шлюз не положит трубку, если у вас с астериском всё в порядке то этот параметр нас не интересует.
PSTN Dial Digit Len — длина тонового сигнала в секундах — .1 это соответственно 100мс, если номер не набирается можно попробовать увеличить этот параметр.
PSTN-To-VoIP Call Max Dur — максимальная продолжительность разговора из города на Астериск, 0 — без ограничения.
PSTN Dialing Delay — задержка перед набором номера. Если ставить меньше одного то городская атс может протупить и вы будете слышать постоянно занято.
PSTN Disconnect Detection
раздел который задаёт настройки определения шлюзом завершения разговора.
Detect CPC — (Calling Party Control) сигнал посылаемый современными ГАТС в линию (PSTN) для уведомления абонента об «отбое». Проще говоря, данный параметр используется для детектирования сигналов отбоя приходящих в линию PSTN. Данный тип сигнала «отбоя» принципиально отличается от DTMF-сигналов и работает по принципу установления нулевого напряжения в линии продолжительностью 250 — 500 миллисекунд, т.е. с частотой 2 — 4 Герц.(Если интерфейс FXO (PSTN) подключен к устаревшей городской линии, возможно следует отключить данный параметр).
Detect PSTN Long Silence — разрыв связи при тишине в линии больше времени заданного в PSTN Long Silence Duration. По умолчанию выключено, оставил без изменений.
Detect VoIP Long Silence — аналогичный выше описанному параметр, только тут тишина по VoIP каналу определяется, также не включал.
Detect Disconnect Tone — определять или нет короткие гудки, конечно yes.
Disconnect Tone — шаблон коротких гудков, то что настроено по умолчанию вам скорее всего не подойдёт. Нужно записать короткие гудки Астериском и проанализровать их для того что бы правильно написать шаблон, дело в общем не сложное. Для анализа я использовал Audacity (бесплатный ауидоредактор).
Открываем записанный файл, выделяем нужный нам отрезок короткого гудка и выбираем Анализ — Построить график спектра
Наводим курсор на пик и видим что у нас написано Пик: 426 гц, -26,6дб. В данном случае сигнал одночастотный (а бывают и двухчастотные, для них будет два пика).
Дальше смотрим длительность между гудками и длительность самих гудков.
в моём случае это 256 мс, округлим до 250. Итак исходные данные мы собрали, теперь пишем шаблон:
Формула выглядит так:
X@-30,X@-30;Y(A/B/1+2)
где:
- X — частота (у меня 426 Герца);
- Y — количество гудков, которые будет слушать Linksys и оператор перед тем как положить трубку (я задал 3);
- A — период сигнала гудка (0.250 с);
- B — период тишины (0.250 с)
получаем 426@-30,426@-30;3(.25/.25/1+2).
International Control
здесь нам нужно изменить пару параметров.
FXO Port Impedance — входное сопротивление по умолчанию 600ом, для России цифра такая же, оставляем без изменений.
SPA To PSTN Gain — уровень громкости от шлюза в город. Т.е. если нас плохо слышат мы можем увеличить громкость если наоборот какая-то линия слишком чувствительна громкость можно уменьшить, допустимый диапазон от -15 до 12. Не забываем что чем больше мы ставим значение тем больше риск появления эха.
PSTN To SPA Gain — аналогичный параметр только от города к шлюзу. Т.е. если мы плохо слышим увеличиваем громкость или уменьшаем, чем больше мы ставим значение тем больше риск появления эха.
Line-In-Use Voltage — минимальный уровень напряжения в линии, мы смотрели напряжение в нашей линии на странице Voice — Info, лучше поставить меньше, т.е. у меня 21 показывает, я выставил 20, если не получается совершить исходящий звонок, а шлюз зарегистрирован и диалплан указан верно, попробуйте уменьшить значение.
Нажимаем кнопку Submit All Changes. Аналогично настраиваем оставшиеся порты, собственно всё.
Шлюз довольно качественный, качество звука на высоте. Настроек тоже достаточно, даже слишком их много, что несколько затрудняет настройку, но цена в соответствии с полученным результатом не может не радовать. По ценнику SPA на рынке продаются D-link с похожими характеристиками, но он уступает практически по всем параметрам. Несколько огорчает отсутствие импульсного набора, но в наше время довольно сложно встретить АТС которая не поддерживает тоновый набор.