Контакты
 

Описание

TDM400P - это PCI карта, которая служит основой для четырех FXS/FXO модулей. Модули можно сочетать в любом количестве. Чтобы различать различные комбинации, существует следующая нотация:

TDMXYB, где:

  • X - количество FXS портов.
  • Y - количество FXO портов.
  • B - bundle (комлект).

Пример: карта TDM11B имеет 1 FXS и 1 FXO порт.

 Зеленые модули - это FXS порты (S110M), красные модули - FXO порты (X110M). TDM400P подходит в любой (3.3/5 вольт) PCI слот. Смотрите также Описание FXS/FXO интерфейсов и Модули S110M и X110M для карты TDM400P

Пошаговая инструкция:

  1. Выключите компьютер
  2. Выключите шнур питания из сети 220 вольт.
  3. Вставьте TDM400P в PCI слот с напряжением 3.3 вольта или 5 вольт. Требуется PCI версии 2.2 или выше.
  4. Вставьте 4-х пиновый 12-ти вольтный коннектор (такой как кабель питания жесткого диска) белую пластиковую розетку, расположенную в задней части карты.
  5. Включите сервер.

После установки карты нужно убедиться, что ядро видит PCI устройство. Варианты вывода команды lspci:

  • Communication controller: Tiger Jet Network Inc. Tiger3XX Modem/ISDN interface / Network controller: Tiger Jet Network Inc. Tiger3XX Modem/ISDN interface -для карт TE110p или TDM400p.
  • Network controller: Jens Scoenfeld для TE110p или TDM400p.

Далее нужно загрузить модуль ядра для карты TDM400P:

 explorer ~ # modprobe zaptel
explorer ~ # modprobe wctdm

После загрузки модулей файл /var/log/messages должен содержать строки (для карты TDM22B):

May 26 21:54:29 explorer kernel: Zapata Telephony Interface Registered on major 196
May 26 21:54:32 explorer kernel: Freshmaker version: 63
May 26 21:54:32 explorer kernel: Freshmaker passed register test
May 26 21:54:32 explorer kernel: Module 0: Installed — AUTO FXO
May 26 21:54:32 explorer kernel: Module 1: Installed — AUTO FXO
May 26 21:54:32 explorer kernel: Module 2: Installed — AUTO FXS
May 26 21:54:32 explorer kernel: Module 3: Installed — AUTO FXS
May 26 21:54:32 explorer kernel: Found a Wildcard TDM: Wildcard TDM400P REV E/F (4 modules)

Конфигурирование

За конфигурацию карты отвечает файл /etc/zaptel.conf. Минимальные настройки - это тип сигналинга (FXO/FXS). Здесь может быть небольшая путаница. FXO модули используют тип сигналинга FXS, и наоборот.

Для FXO модулей могут использоваться следующие типы сигналинга:

fxsls : Channel(s) are signalled using FXS Loopstart protocol
fxsgs : Channel(s) are signalled using FXS Groundstart protocol
fxsks : Channel(s) are signalled using FXS Koolstart protocol

Для FXS модулей используются типы:

 fxols : Channel(s) are signalled using FXO Loopstart protocol
fxogs : Channel(s) are signalled using FXO Groundstart protocol
fxoks : Channel(s) are signalled using FXO Koolstart protocol

Ниже представлен пример минимальной конфигурации zaptel.conf (для TDM11B):

 cat /etc/zaptel.conf

fxoks=1
fxsks=2
loadzone=gr
defaultzone=gr

Далее необходимо сконфигурировать zaptel каналы в asterisk. Это делается в файле /etc/asterisk/zapata.conf.

Пример конфигурации zapata.conf (для карты TDM11B):

cat /etc/asterisk/zapata.conf

[channels]
usecallerid=yes
hidecallerid=no
immediate=no

context=from-phone
group=1
signalling=fxo_ks
echocancel=yes
channel=1

context=from-pstn
group=2
signalling=fxs_ks
callerid=""
echocancel=yes
channel=2

Пояснения

Строка "fxsks=1" означает что будет использоваться fxsks сигнализация на первом порту карточки. Если у вас FXO порт, то вы должны использовать FXS сигнализацию для него.

Номер порта можно узнать из лога /var/log/messages после подгрузки модуля wctdm:

 root# modprobe wctdm
root# tail /var/log/messages
Jun 29 15:51:48 localhost Freshmaker version: 73
Jun 29 15:51:48 localhost Freshmaker passed register test
Jun 29 15:51:50 localhost Module 0: Installed -- AUTO FXS/DPO
Jun 29 15:51:50 localhost Module 1: Not installed
Jun 29 15:51:50 localhost Module 2: Not installed
Jun 29 15:51:50 localhost Module 3: Installed -- AUTO FXO (FCC mode)

Тут мы видим что на первом порту стоит FXS, а на четвертом FXO. По этим данным записываем в файле zaptel.conf:

 fxoks=1
fxsks=4

loadzone=gr и defaultzone=gr используются для подгрузки настроек сигнализации для зоны gr (Greece) и использование ее по-умолчанию. В описание зоны входят настройке dialtone, busytone, ringtone ... Все зоны вы можете посмотреть в файле: src/zaptel-/zonedata.c.

Usecallerid=yes и hidecallerid=no означает что астериск не будет скрывать callerid (номер звонящего).

Context=from-phone - это контекст куда будут попадать все звонки с FXS порта. Контекст это список инструкций который выполняет астериск step-by-step когда вы набираете определенный номер. Все контексты определяются в файле /etc/asterisk/extensions.conf.

Signaling=fxo_ks - устанавливает тип сигнализации. Так как это FXS порт, то сигнализация будет fxo_ks.

Echocancel=yes - астериск будет пытаться подавлять эхо

channel=1 - здесь мы указываем номер порта для которого мы определили все настройке описаны выше.

Далее мы описываем настройки FXO порта:

 context=from-pstn
signalling=fxs_ks
callerid=""
echocancel=yes
channel=2

Тут уже используется сигнализация fxs_ks. Callerid это номер который будет передаваться па телефонной линии как номер звоняшего. Для начала можно не использовать эту опцию.

После всех настроек нужно вызвать команду реконфигурации драйвера zaptel - ztcfg. Если коммада молча прекратила выполнение, все в порядке, можно запускать Asterisk (asterisk -vvvvvgnc или сразу safe_asterisk или asterisk)

Вызов команд Dial для звонков в город/из города и на аналоговые телефоны

План набора номера конфигурируется в /etc/asterisk/extensions.conf. Ниже представлен план набора (диалплан), позволяющий звонить в город с аналогового телефона, сип клиента, принимать звонки из города, а также звонить с аналогового телефона на сип клиента и наоборот. Также демонстрируются приемы манипуляции с номером (отрезание префикса) и шаблоном номера.

Пример диалплана с пояснениями:

cat /etc/asterisk/extensions.conf

[from-pstn]
; Звонки из города по внешним линиям, подключенным к FXO модулям.
;Все звонки отправляются одновременно на аналоговый телефон
; и SIP устройство
include => cause-codes
exten => s,1,Dial(Zap/1&SIP/sipura_1)
exten => s,n,Hangup()

[from-phone]
; Звонки с аналоговых телефонов направлются в город через 9-ку, с ее отрезанием.
; Звонок на номер 200 отправляется на SIP телефон.
include => cause-codes
exten => _9X.,1,Dial(ZAP/2/${EXTEN:1})
exten => _9X.,n,Hangup()
exten => 200,1,Dial(SIP/sipura_1)
exten => 200,n,Hangup

[from-sip]
; Звонки с SIP клиента.
; 100 - звонит аналоговый телефон
; На 9-ку - выход в город.
include => cause-codes
exten => 100,1,Dial(ZAP/1)
exten => 100,n,Hangup
exten => _9X.,1,Dial(ZAP/2/${EXTEN:1})
exten => _9X.,n,Hangup()

[cause-codes]
; Обработка таймаутов и неправильного номера (для которого нет правил)
exten => i,1,Playback(invalid)
exten => i,n,Hangup()
exten => t,1,Hangup

SIP телефоны могут быть "железные" или в виде программы на компьютере. Сначала нужно создать запись для каждого телефона в файле /etc/asterisk/sip.conf:

 [sipura_1]
host=dynamic
secret=12pass34
type=friend
context=incoming-sip
disallow=all
allow=all

Потом нужно настроить сип телефон на астериск, для этого прописать в его настройках IP астериска, логин и пароль. В нашем случае login=sipura_1, а пароль=12pass34. Все звонки с этого телефона попадают в контекст incoming-sip.

Sip softphone для винды: Sjphone, Firefly(Cubix), xten и другие:

 exten => _9x.,1,Dial(ZAP/2/${EXTEN:1})
exten => _9x.,n,Hangup()

Эти инструкции срабатывают когда набирается номер, который начинается с девятки. Если наберается 91234567, то астериск позвонит через второй порт на номер 1234567. ${EXTEN:1} указывает на номер без 9. ${EXTEN} указывает на весь номер.

Контакты
pbxware.ru
603954577 - Алексей
8(495)23 23 956, sip:office@pbxware.ru
request@pbxware.ru