Запись о том как легко и просто подружить звездочку и фрюшечку:)
Для начала нам понадобится:
1. FreeBSD 8.2 (Жду 9ку)
2. IP PBX Asterisk 1.8.7.1 (жду 10ку)
3. Руки, ноги, голова(если нет, тогда нужен бубен)
0. Начало
1. Фря уже стоит, порты обновили? Да мы будем собирать астер из портов:)
Кто не в курсе, самый простой способ обновить порты:
portsnap fetch extract (запускать один раз, при первом обновлении)
portsnap fetch update Все последующие обновления портов
Ждем пока фря скачает 65метров, распакует…
По желанию можно Настоятельно рекомендую собрать mc
2. Теперь собираем звездочку
cd /usr/local/net/asterisk/ make config
Из списка выбрать нужные опции,обязательно выбрать dahdi, даже если у вас нет самой карты!
Включать PostgreSQL, sqlite или ODBC это личное дело каждого, я не включал
H.323 подключать по желанию, не видел, чтобы новые системы его использовали
FreeTDS для мелкософтовских sybase и MSSQL
GSM кодек, если есть необходимость включайте(качество не торт!!)
SpanDSP Поддержка факсов(в 21веке юзать факсы, какое кощунство)
Exchange связка с календарем от этого сервера(под фрей пока не реализована связка с google календарем)
Lua ну если кто пишет на ней то пожалуйста:))
Jabber обязательно его включаем, годная вещь
Когда выбрали все опции жмем ок
make install
Ждем….
3. Настройка dahdi карты
Я надеюсь Вы ее давно установили и все это время ждали как же ее запустить
FXS порт – куда подключать обычный телефон!
FXO порт – подключаем приходящую линию от провайдера!
Если в карте есть модуль FXS то нужно не забыть подать на него питание!!
pciconf -lv Проверить есть ли у нас карточка(пока не подгрузили модуль карточка будет обзываться как none@pci)
!!!!!!АХТУНГ!!!!!!
Подключение FXS-порта (зеленый модуль) к PSTN может привести к выходу из строя модуля и платы из-за подачи напряжения в систему, которая предназначена для его производства, а не потребления!
Поддерживаемое оборудование:
Цифровые карты
- wct4xxp:
- Digium TE205P/TE207P/TE210P/TE212P: PCI 2 порта T1/E1/J1
- Digium TE405P/TE407P/TE410P/TE412P: PCI 4 порта T1/E1/J1
- Digium TE220: PCI-Express 2 порта T1/E1/J1
- Digium TE420: PCI-Express 4 порта T1/E1/J1
- wcte12xp:
- Digium TE120P: PCI один порт T1/E1/J1
- Digium TE121: PCI-Express один порт T1/E1/J1
- Digium TE122: PCI один порт T1/E1/J1
- wcte11xp:
- Digium TE110P: PCI один порт T1/E1/J1
- wct1xxp:
- Digium T100P: PCI один порт T1
- Digium E100P: PCI один порт E1
- tor2: Tormenta 4 портовая T1/E1 карта от “Zapata Telephony project”
Аналоговые карты
- wctdm24xxp:
- Digium TDM2400P/AEX2400: до 24 аналоговых портов
- Digium TDM800P/AEX800: до 8 аналоговых портов
- Digium TDM410P/AEX410: до 4 аналоговых портов
- wctdm:
- Digium TDM400P: до 4 аналоговых портов
- xpp: Xorcom Astribank: USB устройство, до 32 портов (включая цифровые BRI и E1/T1 модули)
- wcfxo: X100P, оригинал и его клоны. Простая однопортовая FXO карта.
Другие драйвера
- pciradio: Zapata Telephony PCI Quad Radio Interface
- wctc4xxp: Аппаратный транскодер кодеков от Digium (необходим модуль dahdi_transcode).
- dahdi_dynamic_eth: Драйвер TDM через Ethernet (TDMoE). Ему необходим модуль dahdi_dynamic.
- dahdi_dynamic_loc: Mirror a local span. (необходим модуль dahdi_dynamic).
- dahdi_dummy: Устройство, не предоставляющее каналов, используется только как источник DAHDI сигналов таймера.(если нет карты подгружать его). Начиная с версии 2.3.0 функционал тайминга этого устройства интегрирован в главный модуль,поэтому для тайминга подгружать больше нет смысла.
Теперь нужно подключить модуль для Вашей карты
Правим rc.conf
dahdi_enable=”YES” dahdi_modules=”wctdm24xxp” asterisk_enable=”YES” mysql_enable=”YES”
Теперь настраиваем каналы карты /usr/local/etc/dahdi/system.conf
fxsks=1-3 fxoks=4 echocanceller=mg2,1-4 loadzone = us defaultzone = us
Поскольку у меня карточка TDM410P(взял у китайцев за 90 баксов) с 3 FXO портами и 1 FXS без модуля аппаратной эхо компенсации, на деле хватило и программной!
в первой и второй строчке указывается какой модуль подключен, но нужно указывать противоположный тип модуляции!
Кроме того для канала задается один из следующих протоколов:
• Loop start (ls) старый, не умеет определять положили трубку или нет
• Ground start (gs) странный, не используется
• Kewlstart (ks) лучше всего, определяет положили с той стороны трубку или нет
Параметр загрузки зоны loadzone задает набор сигналов (которые указаны в файле zonedata.c, Занято гудок итд), используемых для канала.
4. Перезагружаемся
5. pciconf -lv – Проверяем завелся ли модуль(должны узреть чтото типа)
wctdm24xxp0@pci0:1:9:0: class=0x020000 card=0x8005d161 chip=0x8005d161 rev=0x11 hdr=0x00 vendor = 'Digium, Inc' class = network subclass = ethernet
5. Запускаем dahdi_cfg -vv
Channel map: Channel 01: FXO Kewlstart (Default) (Echo Canceler: mg2) (Slaves: 01) Channel 02: FXO Kewlstart (Default) (Echo Canceler: mg2) (Slaves: 02) Channel 03: FXO Kewlstart (Default) (Echo Canceler: mg2) (Slaves: 03) Channel 04: FXS Kewlstart (Default) (Echo Canceler: mg2) (Slaves: 04)
Каналы завелись.
6. Теперь нужно подружить сам Астериск с карточкой
[channels] busydetect=yes busycount=3 callerid=asreceived language=ru usecallerid=yes hidecallerid=no callwaiting=yes ;во время разговора будет сообщать о второй линии cidsignalling=v23 cidstart=polarity usecallingpres=yes callwaitingcallerid=yes threewaycalling=yes ;одновременно несколько разговоров transfer=yes ;разрешить передавать линию другому человеку canpark=yes cancallforward=yes callreturn=yes echocancel=yes echotraining=yes hanguponpolarityswitch=yes ; сразу ложить трубку без ожидания таймера group = 1 context=incominggg ; должен должен присутствовать в extension.conf!!!! channel => 1,2,3 [phone](!) ; Создаем шаблон для аналоговых телефонов usecallerid = yes hidecallerid = no callwaiting = yes threewaycalling = yes transfer = yes echocancel = yes echotraining = yes immediate = no context = work_context ; должен присутствовать в extension.conf!!!! signalling = fxo_ks ; Uses FXO signaling for an FXS channel [phone171](phone) callerid = "Office" dahdichan = 4
7. Неприятные моменты:
Как я не пытался, заставить работать СallerID под FreeBSD он так и не завелся, если кто смог подскажите!!!
Если вдруг астериск не смог позвонить с карты pw groupmod dahdi -m asterisk
Настоятельно советую почитать:
Читай меня полностью
Кому сложно читать на инглише, читайте меня:)