Hace unos meses uno de nuestros clientes pidió integrar Asterisk a su conmutador Avaya, pero el problema es que ya no tenía puertos analógicos o troncales digitales libres, así como soporte para SIP. Antes de que sigan leyendo el post ¡les recomiendo que esta sea su última opción!, ¡no son enchiladas!
Si después de agotar los otros métodos no logran encontrar una forma mas fácil de integrar los PBX entonces tenemos que intentar mediante H323. De la misma forma, antes de irse a la "carnita" del post es importante saber que el protocolo H323 es viejo, casi ya no se encuentra soporte y no tiene las funcionalidades de otros métodos (como transferir llamadas, algunos problemas con el paso de CallerID, etc). Una vez dicho esto entramos en materia.
Todo el proceso, como es de imaginarse, consiste en la configuración correcta tanto de Asterisk como del PBX Avaya, y como yo no soy experto de Avaya solo les copio las configuraciones que se usaron y ya alguna persona capacitada en esta marca les podrá ayudar a adaptarlo a sus necesidades:
IP NETWORK REGION
Region: 3
Location: 1 Authoritative Domain:
Name: CONDUSEF
MEDIA PARAMETERS Intra-region IP-IP Direct Audio: no
Codec Set: 1 Inter-region IP-IP Direct Audio: translated(NAT)
UDP Port Min: 2048 IP Audio Hairpinning? y
UDP Port Max: 2201
DIFFSERV/TOS PARAMETERS RTCP Reporting Enabled? y
Call Control PHB Value: 34 RTCP MONITOR SERVER PARAMETERS
Audio PHB Value: 46 Use Default Server Parameters? y
Video PHB Value: 26
802.1P/Q PARAMETERS
Call Control 802.1p Priority: 7
Audio 802.1p Priority: 6
Video 802.1p Priority: 5 AUDIO RESOURCE RESERVATION PARAMETERS
H.323 IP ENDPOINTS RSVP Enabled? n
H.323 Link Bounce Recovery? y
Idle Traffic Interval (sec): 20
Keep-Alive Interval (sec): 5
Keep-Alive Count: 5
IP NETWORK REGION
INTER-GATEWAY ALTERNATE ROUTING
Incoming LDN Extension:
Conversion To Full Public Number - Delete: Insert:
Maximum Number of Trunks to Use:
BACKUP SERVERS IN PRIORITY ORDER SECURITY PROCEDURES
1 1 challenge
2 2
3 3
4 4
5
6
Inter Network Region Connection Management
src dst codec direct Total Video Dyn
rgn rgn set WAN WAN-BW-limits WAN-BW-limits Intervening-regions CAC IGAR
3 1 1 y :NoLimit :NoLimit n
3 2
3 3 1
3 4
3 5
3 6
3 7
3 8
3 9
3 10
3 11
3 12
3 13
3 14
3 15
SIGNALING GROUP
Group Number: 3 Group Type: h.323
Remote Office? n Max number of NCA TSC: 0
SBS? n Max number of CA TSC: 0
IP Video? n Trunk Group for NCA TSC:
Trunk Group for Channel Selection: 7
Supplementary Service Protocol: b Network Call Transfer? n
T303 Timer(sec): 10
Near-end Node Name: CLAN-2E08 Far-end Node Name: CONDUSEF
Near-end Listen Port: 1720 Far-end Listen Port: 1720
Far-end Network Region: 3
LRQ Required? n Calls Share IP Signaling Connection? n
RRQ Required? n
Media Encryption? n Bypass If IP Threshold Exceeded? n
H.235 Annex H Required? n
DTMF over IP: out-of-band Direct IP-IP Audio Connections? n
IP Audio Hairpinning? n
Interworking Message: PROGress
DCP/Analog Bearer Capability: 3.1kHz
Type Name IP Address
IP CLAN_04A10 192.168.231.179
IP CLAN_DGRO_06A02 172.21 .2 .22
IP CLAN_DGRO_06A03 172.21 .2 .23
IP CLAN_DGRO_07A02 172.21 .2 .24
IP CLAN_DGRO_07A03 172.21 .2 .25
IP CLAN_DRGO_05A02 172.21 .2 .20
IP CLAN_DRGO_05A03 172.21 .2 .21
IP CLAN_DRGO_10A02 172.21 .2 .30
IP CMS 172.16 .2 .10
IP CONDUSEF 172.16 .2 .13
IP Clan-02E09 172.16 .2 .42
IP Clan-03E08 172.16 .2 .41
IP Clan-04E10-Next 172.16 .2 .40
IP DURANGO1_ESS 172.21 .2 .10
IP DURANGO2_ESS 172.21 .2 .11
IP MEDPRO-01A18 172.16 .2 .46
TRUNK GROUP
Group Number: 7 Group Type: isdn CDR Reports: y
Group Name: CONDUSEF COR: 90 TN: 1 TAC: #07
Direction: two-way Outgoing Display? y Carrier Medium: H.323
Dial Access? y Busy Threshold: 255 Night Service:
Queue Length: 0
Service Type: tie Auth Code? n
Member Assignment Method: auto
Signaling Group: 3
Number of Members: 5
Group Type: isdn
TRUNK PARAMETERS
Codeset to Send Display: 6 Codeset to Send National IEs: 6
Charge Advice: none
Supplementary Service Protocol: b Digit Handling (in/out): enbloc/enbloc
QSIG Value-Added? y
Digital Loss Group: 13
Incoming Calling Number - Delete: Insert: Format: pub-unk
Disconnect Supervision - In? y Out? y
Answer Supervision Timeout: 0
TRUNK FEATURES
ACA Assignment? n Measured: internal
Internal Alert? n Maintenance Tests? y
Data Restriction? n NCA-TSC Trunk Member:
Send Name: y Send Calling Number: y
Used for DCS? n Hop Dgt? n Send EMU Visitor CPN? y
Suppress # Outpulsing? y Format: public
UUI IE Treatment: service-provider
Replace Restricted Numbers? n
Replace Unavailable Numbers? n
Send Called/Busy/Connected Number: y
Hold/Unhold Notifications? y
Send UUI IE? y Modify Tandem Calling Number? n
Send UCID? n
Send Codeset 6/7 LAI IE? y
QSIG TRUNK GROUP OPTIONS
Diversion by Reroute? y
Path Replacement? y
Path Replacement with Retention? n
Path Replacement Method: better-route
SBS? n
Display Forwarding Party Name? y
Character Set for QSIG Name: eurofont
TRUNK GROUP
Administered Members (min/max): 1/5
GROUP MEMBER ASSIGNMENTS Total Administered Members: 5
Port Name Night
1: T00231 CONDUSEF
2: T00232 CONDUSEF
3: T00233 CONDUSEF
4: T00234 CONDUSEF
5: T00235 CONDUSEF
Una vez teniendo configurado el enlace por parte de Avaya para usar H323 hacia Asterisk (en este caso Asterisk se quedó con la IP: 172.16.2.13) vamos a ver lo referente a Asterisk. Para este caso utilicé los paquetes sobre Redhat 5.1:
Asterisk 1.4.17
Zaptel 1.4.8
PWLib 1.10.0
OpenH323 1.18.0
Es muy importante que utilicen estas versiones para pwlib y para openh323, ya que utilizando versiones mas recientes no aseguran que se integre completamente.
Como paso 1 hay que compilar pwlib (se requiere openssl-devel y expat-devel previamente):
tar -xzvf pwlib-v1_10_0-src-tar.gz
cd /directorio/de/pwlib_v1_10_0/
./configure
make clean opt
PWLIBDIR=/directorio/de/pwlib_v1_10_0
export PWLIBDIR
Después seguimos con opehh323:
tar -xzvf openh323-v1_18_0-src-tar.gz
cd /directorio/de/openh323_v1_18_0/
./configure
make clean opt
OPENH323=/directorio/de/openh323_v1_18_0
export OPENH323DIR
Ya teniendo tanto pwlib y openh323 compilados e instalados resta instalar Asterisk
tar -xzvf asterisk-1.4.9.tar.gz
cd /directorio/de/asterisk-1.4.9/
./configure
male menuselect (aquí hay que validar que dentro de Asterisk Channels venga seleccionado chan_h323 dentro de Channel Drivers, si no lo permite seleccionar es que no se compiló correctamente pwlib y/o openh323)
make
make install
Ya con esto podemos entrar a la consola de Asterisk y validar que se encuentre registrado el canal H323 de la siguiente manera:
asterisk -vvvvvvvvvvvvvvvvgc
*CLI> core show channeltypes
Type Description Devicestate Indications Transfer
---------- ----------- ----------- ----------- --------
Local Local Proxy Channel Driver yes yes no
SIP Session Initiation Protocol (SIP) yes yes yes
Console OSS Console Channel Driver no yes no
MGCP Media Gateway Control Protocol (MGCP) yes yes no
H323 The NuFone Network's Open H.323 Channel no yes no
Phone Standard Linux Telephony API Driver no yes no
Agent Call Agent Proxy Channel yes yes no
Skinny Skinny Client Control Protocol (Skinny) no yes no
IAX2 Inter Asterisk eXchange Driver (Ver 2) yes yes yes
----------
9 channel drivers registered.
Habiendo validado todo este proceso podemos pasar a la etapa de configuración del sistema:
1. Dentro de /etc/asterisk/h323.conf
[general]
port = 1720
bindaddr = 172.16.2.60 ; Esta es la IP de nuestro Asterisk
disallow=all
allow=alaw ; Validen bien que codecs tiene habilitado Avaya, de otra manera no podrán realizar llamadas
context=default
faststart=yes
h245tunneling=yes
gatekeeper = 172.16.2.16 ; Esta es la IP de Avaya
Para este caso en particular no es necesario configurar clientes H323, ya que mandaremos las llamadas directamente dentro de nuestro extensions.conf a Avaya:
2. Dentro de /etc/asterisk/extensions.conf
[globals]
[default]
exten => _X.,1,Dial(H323/8${EXTEN}@172.16.2.16:1720,40)
Recuerden que la IP de nuestro Avaya para este ejemplo es 172.16.2.16. Y listo, con esto debe de ser suficiente para empezar a pasar llamadas en ambos sentidos. Claro esta que cada integración tiene sus peculiaridades dependiendo de la versión y configuración de ambos equipos, por lo que no pierdan de vista analizar codecs disponibles entre los dos, planes de marcación, configuración del puerto H323 (por default es TCP 1720), etc. Espero les ayude en sus proyectos.
Metfan