Как подключить аналоговые телефоны к asterisk
Об использовании бесплатной программной телефонной станции «Asterisk» написано множество заметок, статей и книг. Не раз этот вопрос поднимался и на Хабре — и об устройстве, и об установке, и о тонкостях конфигурирования. Я же сегодня хочу посмотреть на Asterisk глазами руководителя IT, который «что-то слышал» и которому предстоит принять решение — внедрять у себя этот продукт, или остановить свой выбор на «классической» аппаратной АТС.
Итак, Asterisk — это программная АТС с открытым кодом. Создателем её является вполне себе коммерческая компания Digium, сделавшая десяток лет назад грамотный маркетинговый ход: в чистом «софтовом» виде Asterisk применим в очень ограниченном количестве ситуаций, а как только возникает задача сопряжения с «классической» телефонией — то здесь уже одним софтом не обойдёшься, нужны вполне материальные железки, за которые придётся выложить вполне материальные деньги. Поэтому Digium начала и спонсировала разработку Asterisk, а сама занялась созданием и продажей аппаратного обеспечения для него.
Честности ради стоит отметить, что разработкой аппаратных решений под Asterisk занимается ещё несколько компаний; их решения более бюджетны, но в то же время специалисты сходятся на том, что железки «от разработчика» — наиболее надёжны. Ну а дальше каждый решает для себя сам — готов он переплатить несколько сотен баксов за плату, которая гарантированно «заведётся», или предпочитает, рискнув, сэкономить.
Как любая УАТС, Asterisk является посредником и коммутатором между внешними линиями связи (это могут быть медные линии от городской АТС, поток E1 от провайдера телефонной связи или каналы IP-телефонии) и набором оконечных абонентских устройств — проще говоря, телефонных аппаратов на столах у пользователей. Сам Asterisk к «железу» не очень требователен, в большинстве случаев хватит и старенького P-4. Кстати, низкопрофильные стоечные сервера здесь могут сыграть злую шутку: большинство плат расширения достаточно габаритны и в корпус 1-2U могут просто не влезть — это надо учитывать.
Внешние линии связи
Ну, с внешними линиями всё более-менее понятно: покупаются соответствующие платы расширения и подключаются. Плата PCI-E на 1 поток E1 с модулем эхоподавления (без эходава брать не рекомендую) встанет приблизительно в $850, также есть варианты на 2 и на 4 потока (последняя обойдётся уже в $2300).
Дешевле обойдётся плата аналоговых линий — плата с тремя модулями FXO для подключения городских линий (каждый модуль — 4 порта, итого 12 линий) встанет приблизительно в $650. На одну хост-плату при этом можно устанавливать как модули для подключения городских линий, так и модули для абонентских устройств. Вообще выбор плат богатый, можно подобрать оптимальное решение для каждого конкретного случая.
Приведённые цены взяты у известного московского поставщика оборудования IP-телефонии (называть не буду, дабы не сочли за рекламу) и более-менее отражают рынок. В любом случае, по сравнению с обычной средней АТС эти цифры выглядят достаточно скромными — во всяком случае, в шок не повергают.
Оконечные устройства
- Обычные аналоговые телефоны
- IP-телефоны
- Гарнитуры, подключаемые к компьютеру
С IP-телефонами такой проблемы не встаёт, но встаёт другая: цена оконечного устройства. Самые дешёвые из предлагаемых на рынке телефонов стоят порядка $80, а это значит, что аппараты для сотни абонентов потянут уже на $8000. Немного подсластить пилюлю можно, вспомнив, что большинство современных IP-телефонов включает в себя встроенный свитч на 2 порта, что позволяет использовать на каждом рабочем месте только один порт локальной сети, подключив компьютер через телефон. Это может пригодиться в тех случаях, когда обычных телефонных портов нет и прокладывать их не планируется — так можно немного сэкономить.
Ну и — гарнитуры, плюс программный SIP-телефон. Самый дешёвый вариант, но и самый неудобный для сотрудников. Эффективно он будет работать, пожалуй, только для колл-центров и им подобных мест.
Сопровождение
Классическую офисную АТС обычно сопровождает сторонняя организация, а системный администратор на месте чаще всего умеет решать только задачи уровня «переключить номер с одного аппарата на другой».
В то же время установить, настроить и сопровождать Asterisk вполне способен unix-администратор среднего уровня. Если предполагается сложная конфигурация — можно один раз воспользоваться услугами аутсорсеров, которые всё насетапят и настроят, покажут «где ковырять» и дальше уж обычный администратор точно справится.
Если такого администратора под рукой нет, а попробовать уж очень хочется — существует некоторое количество уже готовых дистрибутивов на базе Asterisk — достаточно загрузиться с компакт-диска, нажать несколько раз «далее» — и вуаля: мини-АТС готова и даже есть оболочка (обычно — веб-интерфейс) для администрирования. Правда, гибкость таких «коробочных» решений значительно ниже: что в интерфейс администрирования заложили — тем и пользуйся. Для небольшого офиса хватит, а вот выйти за рамки — уже трудновато.
Функционал
Надёжность
Часто встречается мнение: Asterisk ненадёжен. В ответ могу сказать только одно: я имею опыт его более чем трёхлетней эксплуатации в банке, с сотней IP-телефонных внутренних абонентов, двумя потоками E1 от разных провайдеров, десятком аналоговых медных линий и тремя каналами IP-телефонии с подразделениями в других странах. Ни одного сколько-нибудь ощутимого сбоя не было; uptime сервера на данный момент составляет 269 дней.
Резюме
Итак, написано много, подведём итоги.
Asterisk — вполне работающее и достаточно надёжное решение. При этом, как и для любого инструмента, существуют ситуации, как когда его внедрение имеет смысл, так и когда оно невыгодно.
Невыгодно использовать Asterisk в конфигурациях с большим количеством аналоговых линий. Если у Вас небольшой завод с 1000 абонентов и уже проложенной проводкой — Asterisk имеет смысл ставить разве что в связке с обычной аппаратной АТС предприятия, связав их потоком E1 или IP-телефонией.
Выгодно использовать Asterisk в условиях небольшого офиса (до 100 абонентов) с высокими требованиями по уровню телефонных сервисов и при наличии в штате администратора unix. Здесь Asterisk может себя показать в лучшем виде.
Asterisk является бесплатным программным обеспечением для построение масштабируемых мини-АТС и колл центров. Зачастую администраторов офисного Asterisk возникает вопрос, каким образом к АТС подключить аналоговую линию, обычно от оператора связи Белтелеком. Поскольку сам Asterisk умеет работать только с IP линиями про протоколу SIP, соответственно для преобразование стандартов связи нужен какой то посредник, этим посредников выступает FXO шлюз.
FXO (Foreign eXchange Office) шлюз выполняет преобразование аналоговых тональных посылок и речевой информации, в сеть IP. Таким образом аналоговая линия преобразуется в voip линию, с которой без труда может работать Asterisk.
На сегодняшний день наиболее популярные FXO шлюзы, для подключения 8 аналоговых линий:
- Yeastar NeoGate TA810
- Grandstream GXW 4108
- OpenVox iAG808
- Dinstar DAG1000-8O
Yeastar NeoGate TA810 базируется на облегченной версии Asterisk, из плюсов можно заменить наличие OpenVPN, Межсетевого экрана, открытого API для взаимодействия со сторонними системами, возможности детализации вызовов (CDR) и встроенного эхо компенсатора ITU-T G.168 LEC.
Grandstream GXW 4108, данный FXO шлюз базируется на программном обеспечении компании Grandstream, из плюсов можно заменить наличие возможности работы с факсами по протоколу T.38, поддержка шифрования голоса по протоколу SRTP, возможность настроить резервный SIP, в случае отказа первого.
OpenVox iAG808 построен полностью на программном обеспечении Asterisk, поддерживает работу с факсами по протоколам T.38 и T.30, имеет встроенные модули эхо подавления, поддержка горячей замены модулей, потому как на каждом модуле “живет” своя мини система, имеет встроенные возможности IVR, DISA. Также на борту имеется открытый API для разных систем.
Dinstar DAG1000-8O построен на программном обеспечении собственной разработки компании Dianstar, имеет поддержку работы с факсами по T.38, встроенные функции эхо подавления G.168, множество инженерных настроек для более тонкой настройки тонов городских.
Asterisk поддерживает большое количество протоколов для работы. На данный момент, имеет смысл остановится только на двух из них – SIP и IAX2. Какой протокол выбрать для стационарных IP телефонов - решать, разумеется, вам.
В моем случае, для телефонов внутри локальной сети выбран SIP, т.к. это устоявшийся протокол, поддерживается всеми производителями, шустрый и тд. К его недостатком можно отнести его сложность при работе через NAT.
В то же время, для подключения к внешним сетям и «межастерисковой» связи, на мой взгляд, уместнее использовать IAX2. IAX2 расшифровывается как (если не ошибаюсь) Inter Asterisk eXchange, и я не вижу смысла не использовать его для связи с внешними источниками, т.к. он легко проходит NAT, не требует открытия большого количества портов (точнее, требует только один UDP) и как бы специально для этого и предназначен.
Файл sip.conf
В астериск существует два пути подключения пользователей – через файл users.conf, который является общим для всего астериска или через выделенные файлы – sip.conf и iax.conf – соответственно, для протоколов SIP и IAX2.
Лично я выбрал вариант с раздельными файлами, что, как мне кажется, позволит более тонко конфигурировать разные разделы.
Файл sip.conf (как и большинство других конфигурационных файлов asterisk) состоит из секции [general], в которой перечисляются параметры для всех подключенных устройств, и индивидуальных настроек для каждого устройства.
В раздел [general] я решил для начала внести минимум настроек.
[general]
context=internal_phones ; Этот контекст будет использоваться
; для звонков с/на внутренние телефоны
allowoverlap=no ; Насколько я понял, это отключение набора
; по мере поступления номера, т.е.
; система будет ждать полного номера
; и лишь затем начнет набирать.
bindport=5060 ; управляющий SIP порт. Это значение по-
; умолчанию
srvlookup=no ; эта функция позволяет набирать номер
; по доменному имени пользователя
; я ее отключил от греха подальше.
qualify=200 ; если ответ от телефона идет более,
; чем 0.2 секунды - считаем его
; неработающим.
Теперь необходимо прописать сам телефон. Для начала, пропишем его максимально просто и, в дальнейшем, будем наращивать функционал.
Обращаю ваше внимание, что в моем случае сервер не имеет открытого IP, поэтому, я могу на данный момент не накладывать ограничений по IP адресам и тд – они будут отброшены нашим файерволом.
В случае открытой системы обязательно наложите ограничение на пул IP, установите пароли посложнее, пропишите правила на фаерволе!
[1260] ; это мой телефон. звоните :)
type=friend ; пользователь может и принимать
; звонки, и звонить
host=dynamic ; т.к. телефоны получают IP по
; DHCP, то нужно поставить значение dynamic
username=1260 ; мы решили использовать имя пользователя,
; совпадающее с его номером - так немного проще
secret=**** ; пароль для подключения телефона. На данном
; этапе, все пароли будут одинаковыми.
; потом мы это поменяем.
[1261] ; а это - второй телефон
type=friend
host=dynamic
username=1261
secret=****
В дальнейшем, разумеется, этот файл настроек будет изменяться и, как мне видится, начнет генерироваться автоматически на основании информации из домена.
Перезагружаем конфигурацию SIP и смотрим на результат.
asterisk*CLI> sip reloadasterisk*CLI> sip show users
Username Secret Accountcode Def.Context ACL ForcerPort
1260 **** internal_phones No No
1261 **** internal_phones No No
Теоретически, настроенные телефоны должны сразу подключиться к астериск.
На практике, в моем случае это не произошло, т.к. после установки CentOS по-умолчанию закрыты все порты.
Необходимо разрешить входящие TCP и UDP на порт 5060, а так же входящие UDP на интервал 10000-20000. Я, на всякий случай, прописал еще и ограничение по исходному IP.
После этих манипуляций, на телефонах загорелась радостная надпись SIP. Проверим – что на эту тему думает сам астериск:
asterisk*CLI> sip show peersName/username Host Dyn Forcerport ACL Port Status
1260/1260 10.62.20.240 D 5060 OK (5 ms)
1261/1261 10.62.20.238 D 5060 OK (5 ms)
2 sip peers [Monitored: 2 online, 0 offline Unmonitored: 0 online, 0 offline]
Оба телефона, как нетрудно заметить, подключены.
Разумеется, в этот момент крайне хочется на одном из телефонов набрать номер другого, услышать голос коллеги (или свой же) и несколько секунд с идиотской улыбкой на лице «аллекать».
Набираем номер, но не тут-то было – в телефоне короткие гудки. Разумеется, если телефон не подключен, то его реакция объяснима. Но наш-то подключен :)
Проблема кроется в том, что у нас пустой диалплан. Соответственно, звонок уходит в «тупик», и телефон дает отбой.
Это можно увидеть через консоль. Подключаемся, набираем номер и видим:
[2011-04-14 17:50:12] NOTICE[6329]: chan_sip.c:21358 handle_request_invite: Call from '1260' to extension '1261' rejected because extension not found in context 'internal_phones'.Простейший диалплан
Создадим самый простой диалплан, просто чтобы увидеть, что звонок все-таки идет. При этом, можно напрямую задать номер телефона абонента, но мы сразу в тестовых целях сделаем обработку всех четырехзначных номеров. В дальнейших статьях мы, разумеется, его значительно усложним.
Итак, нашу текущую задачу можно описать так: При наборе четырехзначного номера – набрать его через SIP.
Создаем файл extensions.conf и в нем прописываем
[default] ; контекст для звонков без заданного контекста
; обычно это входящие звонки
; Ругнемся в лог
exten => s,1,Verbose(Hey! WTF. $ dialed from default!)
; и повесим трубку
exten => s,n,Hangup()
[internal_phones]
; все следующие правила будут работать при наборе любого номера из четырех цифр
Перезагрузим диалплан и сделаем звонок.
asterisk*CLI> dialplan reloadDialplan reloaded.
== Using SIP RTP CoS mark 5
-- Executing [1261@internal_phones:1] Verbose("SIP/1260-00000007", "Test call 4 digits") in new stack
Test call 4 digits
-- Executing [1261@internal_phones:2] Verbose("SIP/1260-00000007", "Dialed number:1261") in new stack
Dialed number:1261
-- Executing [1261@internal_phones:3] Dial("SIP/1260-00000007", "SIP/1261") in new stack
== Using SIP RTP CoS mark 5
-- Called 1261
-- SIP/1261-00000008 is ringing
-- SIP/1261-00000008 answered SIP/1260-00000007
-- Remotely bridging SIP/1260-00000007 and SIP/1261-00000008
== Spawn extension (internal_phones, 1261, 3) exited non-zero on 'SIP/1260-00000007'
Другой телефон звонит и можно поговорить.
Давным-давно, когда деревья были выше, трава зеленее и солнце ярче, я вёл бложик на сервисе под названием "Я.ру". Это была блогоплатформа имени Яндекса. Потом Яндекс эту самую "Ярушку" прибил как не приносящий прибыли проект. Соответственно, я перебрался в ЖЖ. А старые посты переносить не стал, ибо в них было мало ценного.
Сегодня мне в приват написал некий человек с просьбой восстановить одну из тех старых статей. Говорит, нужна она ему. Собственно на здоровье, читайте ниже. Но предупреждаю.
- С тех пор очень много воды утекло. Исходный текст был написан 6 марта 2009 года. За это время сменилось несколько стабильных дистрибутивов Debian-а, вышли новые версии Asterisk-а, прошивки для Panasonic-а и т.д.
- Не уверен, что конфиги отсюда подойдут под новые обстоятельства. Потому что сейчас эти модули Asterisk-а переименованы. ЕМНИП, zaptel-а уже давно не существует. Всякие там DAHDI надо собирать отдельно и т.д.
- Я давным-давно позабыл про эти Panasonic-овские АТСки как страшный сон. Поэтому вопросы мне по ним сейчас задавать бесполезно. Скорее всего, уже ничего не вспомню.
Жила-была фирма. Географически она располагалась в в нескольких различных зданиях, находящихся не очень далеко друг от друга. Но все-таки в разных. Поэтому для обеспечения связи между сотрудниками были закуплены две АТС Panasonic TDA-200. На одну из этих АТС (назовем ее главной) "приходили" N обычных двужильных аналоговых городских линий (их обслуживала плата LCOT16), M точно таких же аналоговых линий (на несколько плат SLC16) и K линий от системных телефонов (на плату DHLC8). Вторая АТС находилась в другом здании. К ней было подключено P внутриофисных аналоговых телефонов (через платы SLC16). Две АТС были связаны между собой по Qsig (платы PRI30) при помощи оптического линка с медиаконвертерами.
Время шло, фирма росла во всех смыслах этого слова. Штат увеличивался, сотрудникам становилось тесновато. Руководство арендовало еще несколько помещений. Но вот беда: эти помещения находились в достаточно удаленных зданиях. Недолго думая, провели туда оптику. Потом стали размышлять, как же обеспечить их телефонной связью. Еще несколько АТС покупать? Дороговато будет. Да и сотрудников в тех зданиях не так много и располагаются они не так "кучно". Аналоговые линии проводить? Весьма затруднительно. IP-телефония? Да, это выход. Такое решение и было принято. Сперва в тестовом режиме, а там как получится.
Дальше выбор способа стыковки конкретно Asterisk-а с конкретно Panasonic TDA-200. Можно это сделать, например, при помощи H.323. Но во-первых, соответствующая плата TDA0470 относительно дорогая; во-вторых, она обеспечивает всего 16 каналов; в-третьих, народ испытывал какие-то трудности с подключением таким способом. Говорят, в Asterisk-е надо что-то делать с функцией FastRestart. Но мне ходить по этим граблям не хотелось, поэтому я выбрал другой способ - соединить по E1/PRI. Преимущества: 30 линий (против 16 для H.323), менее дорогая плата TDA0290 и достаточно проторенная дорожка в плане беспроблемности подключения и работы.
Встал вопрос, какую плату плату покупать для Asterisk-а. Меня сильно смутил способ их обозначения. Где-то после индекса платы ставят литеру "P", где-то не ставят. Но потом на форуме мне народ разьяснил ситуацию. На деле все оказалось много проще. Топаем на офсайт Digium, в раздел "Products", заходим в раздел "Digital Telephony Devices" и выбираем плату с нужным количеством портом ("span") и с нужной интерфейсной шиной (PCI, PCI-E, PCI-X и т.п.). Всё. На остальное можно не заморачиваться. Лично мне нужна была плата с одним портом для интерфейса PCI Express, поэтому я выбрал Digium TE121. Что касается расширения для аппаратного эхоподавления, то его всегда можно докупить потом отдельно, если вдруг процессор сервера будет слишком сильно загружен (что в случае работы с 30-ю линиями довольно-таки маловероятно).
Далее. Обжать провод для соединения по E1. Хоть там используются джеки RJ45, но это никакой не Ethernet. Используются всего две пары, контакты номер 1,2 и 4,5. Можно обжать как прямой провод, так и кроссовый. Тип провода можно выставить переключателем на Panasonic-овской плате TDA0290. Лично я для единообразия решил обжать кроссовый провод. Вот его разводка:
Итак, провод обжат, платы водружены на свои места, подключены. Теперь необходимо настраивать программную часть. Она заключается в настройке как Asterisk-а, так и панасоника, на "низком" и на "высоком" уровне.
1. Asterisk, "низкий" уровень.
Данная плата полностью бесполезна, пока к ядру не подключен соответствующий модуль. А уже скомпилированный модуль этот обычно в стандартную поставку дистрибутива Debian (с которым я работаю), почему-то не входит. Причем модуль этот может быть либо Zaptel, либо DAHDI (в поздних версиях Asterisk). Заморачиваться с DAHDI мне почему-то не захотелось, поэтому я пошел по проторенной дорожке. Установил пакет "zaptel-source" и все необходимое для его сборки. Запустил module-assistant (module-assistant prepare; m-a -t build zaptel), собрал модули. Дальше лезем в документацию к карте и ищем какой именно модуль нам нужен. Для моей TE121 это "wcte12xp". Но прежде чем загружать его (модуль), необходимо составить для него правильный конфигурационный файл /etc/zaptel.conf . Для работы с Panasonic-ом достаточно указать в этом файле следующее:
В строке "span=" параметры имеют следующий смысл:
- номер порта (спана) - если в плате их несколько, в противном случае кроме как "1" вариантов нет
- кто является мастером а кто слейвом при синхронизации времени. В моем случае мастером я оставил АТСку, а астериск сделал слейвом, поэтому поставил "1"
- Line Buld-Out (LBO). Параметр, который имеет смысл "подкручивать" для стабилизации связи на проблемных линиях. В моем случае длина линии равняется 1 метру, поэтому оставил "0".
- framing и coding. Не знаю что это такое. Знаю, что с "типовыми" параметрами ccs и hdb3 завелось, поэтому особенно вникать в тонкости не стал
- "bchan=", "dchan=" - указываются номера сигнальных (D-Channel) и голосовых (B-Channel) каналов. Это описано где-то в недрах стандарта E1.
- "*zone=" - вроде как описание где мы находимся. Не уверен, что эта настройки реально на что-либо влияют, но раз уж живем в России, то на
всякий случай зададим их.
Файл конфигурации составили, теперь можно подгрузить модуль командой "modprobe имя_модуля". В моем случае это "modprobe wcte12xp". Затем "ztcfg -vv", чтобы сконфигурировать его. Посмотреть результат можно с помощью "dmesg" и "zttool". Если все было сделано правильно, то zttool должна выводить что "все OK", а на соответствующей плате АТСки должны загореться зеленые индикаторы. Но пока не настроена ответная часть канала на АТС, скорее всего, результат будет прямо противоположный. Поэтому переходим к настройке АТС.
2. Настройка АТС, "низкий уровень".
Подключаем к АТС консоль администрирования (KX-TDA Maintenance Console), открываем пункт 1.1 (Slot). Созерцаем на схеме в соответствующем слоте свежеустановленную плату "PRI30". Если она автоматически перешла в режим "INS" ("In Service" - "В работе"), то переводим ее в режим "OUS" ("Out-of-service"), иначе нам не удастся изменить ее настройки. Затем тыкаем в нее мышкой и выбираем "Port Property" ("Свойства порта"). Там выставляем Port Type (тип порта) в "QSIG-Master" (помните, что в zaptel.conf мы установили синхронизацию таймингов в Slave?), CRC4 Mode (Режим CRC4) в "Disable" (в противном случае его надо также включить и в zaptel.conf, а оно нам надо?). После этого переводим плату в режим INS, и. должно заработать. В плане, индикаторы - загореться зеленым, zttool - говорить, что все хорошо. В противном случае двигаться дальше не имеет смысла: надо разбираться почему не работает линк. Если же линк работает, то переходим на более высокий уровень.
3. Настройка АТС, "высокий уровень".
А тут надо много чего "крутить". Лично я довольно долго ходил по граблям, как видимым, так и неочевидным. Но обо всем по порядку.
а) Объединить линии платы PRI30 в отдельную транковую группу. Для этого открываем пункт "10.1" (CO Line Settings). В таблице слева видим номер слота и номер порта. Справа можем задавать номер транковой группы (TRG) от 1 до 64. Выбираем любой незанятый номер и присваиваем его всем 30-ти линиям для соответствующей платы (то есть, фактически, слота).
б) Объявляем эту транковую группу локальной (в том смысле, что не "внешней"/"вражеской") для данной АТС. Для этого идем в пункт "9.1" (TIE Table). Думаем что бы написать в графе "Leading Number". Это такие цифры, при наборе которых АТС будет "отдавать" звонок в транковую группу, то есть нам на астериск. Тут есть ма-а-а-аленькая тонкость. Если хотите, чтобы на астериск проходили бы звонки "с города" (например, через DISA), то надо указать не просто одну цифру, а цифру и два знака "X" после нее. Сам бы ни за что не догадался, благо многоуважаемый НачШтаба подсказал (очень известная личность на форумах околотелефонной тематики). Допустим, что я желаю назначить VoIP-клиентам трехзначные номера, начинающиеся на 7-ку. Тогда в Leading Number я пишу "7XX". В графе "Trunk Group" указываем тот номер, который мы задали на предыдущем шаге, в пункте 10.1 консоли. При этом запоминаем номер строки таблицы, в который мы все это вписали (!).
в) Идем в пункт "2.6.1" консоли (Numbering Plan, Main), там на вкладку "Other PBX Extension". Вписываем первые цифры VoIP-номеров (в моем примере - "7") в ту же самую строчку, номер которой мы запомнили на предыдущем шаге.
г) Если к астериску не подключены городские линии (а в моем случае это именно так), то идем в пункт 3.1.2 (Local Access Priority). Находим в этой таблице тот номер транка, который мы присвоили астериску и вместо него ставим пустоту (первый, верхний пункт в ниспадающем списке выбора). Это нужно для того, чтобы АТС не пыталась бы "выходить в город" через астерисковский линк. Иначе может возникнуть сумятица, куча непоняток, недоразумений или просто отказов в обслуживании исходящих городских вызовов.
Вот так-то. Вроде бы просто добавить несколько новых абонентов. Ан-нет, дык надо прописать это все в четырех (!) разных местах. Если делать это в первый раз (как я, например), без опыта работы с Panasonic-ом, то со всем этим разобираться приходится довольно долго и не очень просто.
Теперь, когда Panasonic "знает" про Asterisk, можно приступить к настройке последнего.
4. Asterisk, "высокий уровень".
Тут простор для размышлений довольно большой. Поэтому я только приведу пример двух своих конфигов и укажи на самые злобные грабли, на которые я наступил.
а) /etc/aterisk/zapata.conf
Ключевые (критичные) моменты:
- switchtype=qsig и signalling=pri_cpe (тип сигнализации, чтобы астериск и АТС понимали бы друг друга)
- overlapdial=yes (иначе Asterisk не будет во всех случаях понимать передаваемые ему АТСкой номера вызываемых абонентов)
- group=1 номер транковой группы, на которую мы потом будем ссылаться при составлении DialPlan-ов в extensions.conf
- channel => 1-15,17-31 номера каналов, которые будут задействованы для передачи голоса
- context=inbound-pri имя контекста, в который следует "заворачивать" звонки с этой транковой группы. Будет использоваться в extensions.conf
б) /etc/asterisk/sip.conf
[users](!) ; Шаблон локальных пользователей SIP.
type=friend
host=dynamic
nat=no
canreinvite=yes
qualify=yes
context=inbound-sip-local
allowsubscribe=no
call-limit=1
Читайте также: