FXO

Материал из Xgu.ru

Перейти к: навигация, поиск


FXO (foreign exchange office) — телефонный сигнальный интерфейс в традиционных аналоговых телефонных сетях (POTS, Plain Old Telephone Service) со стороны устройства. Грубо говоря, обычная телефонная линия, приходящая с АТС, предназначена для подключения по интерфейсу FXO, а обычные аналоговые телефоны, факсы, модемы — обычные FXO-устройства.

FXO-порт не генерирует тональный сигнал, а принимает его.

Интерфейс FXS должен подключаться к интерфейсу с FXO. Устройство, которое подключается к FXO-интерфейсу, содержит FXS-интерфейс. Если соединить два устройства FXO-интерфейсами между собой (например, два аналоговых телефона), то соединение работать не будет. Точно так же соединение работать не будет, если соединить два устройства с FXS-интерфейсами.

Существуют карточки, производимые компанией Digium[1], которые позволяют получить порт FXO/FXS на компьютере и обрабатывать звонки, приходящие или отправляющиеся через него, с помощью Астериска, используя модуль zaptel (DAHDI).

[править] Настройка FXO-порта на компьютере с Астериском

Ниже приводится пример настройки и использования FXO-платы в сочетании с программной АТС Астериск.

...

Проверте, что устройство видится:

%# lspci
...
03:00.0 Ethernet controller: Digium, Inc. Device 8005 (rev 11)

Установите исходники zaptel:

%# apt-get install zaptel zaptel-source

Собрать модуль zaptel:

%# m-a a-i zaptel

Конфигурация модуля zaptel /etc/zaptel.conf:

loadzone=no
defaultzone=no
fxoks=1-4

Если при загрузке модуля возникает следующая ошибка, возможно, вы перепутали FXO и FXS (fxoks и fxsks; помните, что тут указывается не название платы, а с кем она должна работать; то есть для FXO-плат указывается fxoks, а для FXS-плат fxsks).

Zaptel telephony kernel driver: ZT_CHANCONFIG failed on channel 1: Invalid argument (22)
Did you forget that FXS interfaces are configured with FXO signalling
and that FXO interfaces use FXS signalling?
#ztcfg -vvv

Zaptel Version: 1.4.11
Echo Canceller: MG2
Configuration
======================
Channel map:
Channel 01: FXS Kewlstart (Default) (Slaves: 01)
Channel 02: FXS Kewlstart (Default) (Slaves: 02)
Channel 03: FXS Kewlstart (Default) (Slaves: 03)
Channel 04: FXS Kewlstart (Default) (Slaves: 04)
Channel 05: FXO Kewlstart (Default) (Slaves: 05)
Channel 06: FXS Kewlstart (Default) (Slaves: 06)
Channel 07: FXS Kewlstart (Default) (Slaves: 07)
Channel 08: FXS Kewlstart (Default) (Slaves: 08)

Если драйвер настроен верно, команда ztscan должна показать информацию о плате:

#ztscan

[1]
active=yes
alarms=OK
description=Wildcard TDM800P Board 1
name=WCTDM/0
manufacturer=Digium
devicetype=Wildcard TDM800P
location=PCI Bus 03 Slot 02
basechan=1
totchans=8
irq=21
type=analog
port=1,none
port=2,none
port=3,none
port=4,none
port=5,FXS
port=6,FXO
port=7,none
port=8,none

Icon-caution.gif

Обратите внимание, что в выводе ztscan порты FXS называются FXS, а FXO — FXO. В остальных местах наоборот (FXS называются FXO, а FXO — FXS).

Конфигурация Астериск /etc/asterisk/zapata.conf:

[channels]
context=default
switchtype=national
rxwink=300
usecallerid=yes
hidecallerid=no
callwaiting=yes
usecallingpres=yes
callwaitingcallerid=yes
threewaycalling=yes
transfer=yes
canpark=yes
cancallforward=yes
callreturn=yes
echocancel=yes
echocancelwhenbridged=yes
relaxdtmf=yes
rxgain=0.0
txgain=0.0
callgroup=1
pickupgroup=1

immediate=no

signalling=fxo_ks
group=1
context=demo1
callerid="Luna Luna"<111>
channel=>5

Изменения в диалплане. Звонки на 111 должны отправляться через порт FXS:

exten => 111,1,Dial(ZAP/G1/${EXTEN},60)
exten => 111,n,Hangup



Если позвонить через порт FXS не удаётся, потому что номер просто не набирается, можно попробовать сделать не такой строгой проверку DTMF, для этого в конфигурационный файл zapata.conf добавить параметр relazdtmf=yes:

#vi /etc/asterisk/zapata.conf
--- /tmp/l3-saved-3315.19274.20268	2009-11-28 20:19:08.000000000 +0200
+++ /etc/asterisk/zapata.conf	2009-11-28 20:19:27.000000000 +0200
@@ -391,7 +391,7 @@
 ; detection parameters.  Relaxing them may make the DTMF detector more likely
 ; to have "talkoff" where DTMF is detected when it shouldn't be.
 ;
-;relaxdtmf=yes
+relaxdtmf=yes
 ;
 ; You may also set the default receive and transmit gains (in dB)
 ;

[править] Дополнительная информация

  • The Difference Between FXS and FXO (англ.) — небольшое введение в терминологию: что такое FXS, FXO, и чем они отличаются друг от друга
  • FXO (англ.) на voip-info.org
  • Digium TDM401B (рус.) — пример PCI-карточки, с поддержкой FXS и FXO интерфейсов

[править] Примечания

  1. А также, рядом других компаний, в том числе:
    • Rhino;
    • Sangoma;
    • Voicetronix;
    • Pika Technologies
Источник — «http://xgu.ru/wiki/FXO»