Поимел я дело как-то с карточкой TDM410P, в итоге остались не самые гладкие впечатленя от неё т.к думал все будет гораздо проще, Сначала пробовал все завести на любимой оси FreeBSD, но не тут то было, дров не оказалось, хотя на сайте производителя четко сказано:Хорошо дружит с правильной осью, но увы пришлось ставить это дело на: Linux asterisk 2.6.32-21-generic #32-Ubuntu SMP Fri Apr 16 08:10:02 UTC 2010 i686 GNU/Linux Вот краткое меню моего рассказа: 1. Проверяем определилось ли железо 2. Конфигурим dahdi для связки с карточкой 3. Конфигурим asterisk для связки с dahdi 4. Настройка голосового меню 5. Небольшие баги или порядок запуска демонов 1. Проверяем определилось ли железо, вот как определилась карта: root@asterisk:/#lspci -v 03:01.0 Ethernet controller: Digium, Inc. Wildcard TDM410 4-port analog card (rev 11) Subsystem: Digium, Inc. Wildcard TDM410 4-port analog card Flags: bus master, medium devsel, latency 64, IRQ 19 I/O ports at d100 [size=256] Memory at f1001000 (32-bit, non-prefetchable) [size=1K] [virtual] Expansion ROM at 80600000 [disabled] [size=128K] Capabilities: [c0] Power Management version 2 Kernel driver in use: wctdm24xxp Kernel modules: wctdm24xxp 2. Конфигурим dahdi для связки с карточкой: root@asterisk:/# nano /etc/dahdi/system.conf #1-й Внутренний fxsks=1 #2,3,4 Внешние fxoks=2,3,4 #Эхоподавление echocanceller=mg2,1-4 loadzone = us defaultzone = us Вот что должно получиться: root@asterisk:/# dahdi_cfg -vv DAHDI Tools Version - 2.2.1 DAHDI Version: 2.2.1 Echo Canceller(s): Configuration ====================== Channel map: Channel 01: FXS 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: FXO Kewlstart (Default) (Echo Canceler: mg2) (Slaves: 04) 4 channels to configure. 3. Конфигурим asterisk для связки с dahdi root@asterisk:/# nano /etc/asterisk/chan_dahdi.conf ;General options usecallerid = yes hidecallerid = no callwaiting = yes threewaycalling = yes transfer = yes echocancel = yes echocancelwhenbridged = yes rxgain = 0.0 txgain = 0.0 ;FXS Modules group = 1 signalling = fxo_ks context = Internal channel = 1 ;FXO Modules group = 2 echocancel = yes signalling = fxs_ks context = Incoming channel = 2,3,4 Вот так получилось у меня: root@asterisk:/# lsdahdi ### Span 1: WCTDM/0 "Wildcard TDM410P Board 1" (MASTER) 1 FXS FXOKS (In use) 2 FXO FXSKS (In use) RED 3 FXO FXSKS (In use) 4 FXO FXSKS (In use) RED ### Span 2: DAHDI_DUMMY/1 "DAHDI_DUMMY/1 (source: HRtimer) 1" 4. Настройка голосового меню root@asterisk:/# nano /etc/asterisk/extensions.conf [Incoming] exten => s,1,Answer() exten => s,n,Wait(1) exten => s,n(naberite),Background(dial-exten-tone) exten => s,n,WaitExten(2) exten => s,n,GoTo(t,1) exten => 1,1,Goto(office,1,1) ;teh.otdel exten => 2,1,Goto(office,2,1) ;otdel.prodaz exten => 3,1,Goto(office,3,1) ;;teh.otdel2 exten => 4,1,Goto(office,4,1) ;teh.otdel3 exten => 5,1,Goto(office,5,1) ;levantuev exten => 6,1,Goto(office,6,1) ;levantuev2 exten => 7,1,Goto(office,7,1) ;Mahachkeev exten => 404,1,Goto(office,404,1) ;diza exten => i,1,Playback(izvinite) exten => i,n,Goto(s,naberite) exten => t,1, Set(fname=${STRFTIME(${EPOCH},,%Y%m%d%H%M)}-${CALLERID(number)}-${EXTEN}) exten => t,2, Monitor(wav,/var/www/html/${fname},mb) exten => t,3, Dial(sip/1,140,m(mymoh)) exten => t,n,Hangup() [office] ;teh.otdel exten => 1,1, Set(fname1=${STRFTIME(${EPOCH},,%Y%m%d%H%M)}-${CALLERID(number)}-${EXTEN}) exten => 1,2, Monitor(wav,/var/www/html/num1/${fname1},mb) exten => 1,3, Dial(SIP/1,40,m(mymoh)) exten => 1,n, Hangup exten => _X./1,1,Dial(DAHDI/g2/${EXTEN}) ;otdel.prodaz exten => 2,1, Set(fname2=${STRFTIME(${EPOCH},,%Y%m%d%H%M)}-${CALLERID(number)}-${EXTEN}) exten => 2,2, Monitor(wav,/var/www/html/num2/${fname2},mb) exten => 2,3, Dial(SIP/2,40,m(mymoh)) exten => 2,n, Hangup exten => _X./2,1,Dial(DAHDI/g2/${EXTEN}) ;teh.otdel2 exten => 3,1, Set(fname3=${STRFTIME(${EPOCH},,%Y%m%d%H%M)}-${CALLERID(number)}-${EXTEN}) exten => 3,2, Monitor(wav,/var/www/html/num3/${fname3},mb) exten => 3,3, Dial(SIP/3,40,m(mymoh)) exten => 3,n, Hangup exten => _X./3,1,Dial(DAHDI/g2/${EXTEN}) root@asterisk:/# nano /etc/asterisk/sip.conf [201] type = friend host = dynamic username = 201 secret = 1111 nat = no canreinvite = no context = office callerid = user1 <201> allow = gsm allow = ulaw allow = alaw ;pavel [202] type = friend host = dynamic username = 202 secret = 1111 nat = no canreinvite = no context = office callerid = user2 <202> allow = gsm allow = ulaw allow = alaw [203] type = friend host = dynamic username = 203 secret = 1111 nat = no canreinvite = no context = office callerid = user3 <203> allow = gsm allow = ulaw allow = alaw 5. Небольшие баги или порядок запуска демонов У меня отказывался астериск дружить с dahdi пока вручну не подгрузишь модуль wctdm24xxp, решил я это таким скриптом: root@asterisk:/# nano /etc/init.d/iptelefoniya.sh #!/bin/sh /etc/init.d/dahdi stop /etc/init.d/asterisk stop modprobe wctdm24xxp /etc/init.d/dahdi start /etc/init.d/asterisk start