Схема такая:
ipLDK-60 <--- h.323 ---> Asterisk <--- h.323 ---> ipLDK-20.
Астериск может выходить на городские линие через любую атс, в зависимости от города.
Абоненты АТС могуз звонить абонентам Asterisk и друг другу
Абоненты Asterisk могут звонить абонентым любой АТС.
На АТС работает безусловный перевод на сетевой номер. Т.е. входящий звонок из города на атс, переводится на нужного абонента Asterisk. АОН передается.
Слышимость в любом направлении отличная.
На Asterisk-е работает запись. Слышимость записи отличная.
Натсройка ipLDK.Настраивал как написано в пункте 2.16.1 вариант 2 (VoIP H.450 между двумя системами ipLDK), руководства по программированию ipLDK.
Настройка Asterisk.Alt Linux 4.0.1 Server kernel 2.6.18-че-то-там.
asterisk1.4
asterisk1.4-chan_h323
asterisk1.4-chan_sip
/etc/asterisk/modules.confКод
;noload => chan_h323.so <-- комментируем, чтобы модуль H.323 подгружался автоматически
/etc/asterisk/h323.confКод
[general]
port = 1720
bindaddr = 87.10.15.11; должен быть указан один, действительный IP адрес компа. Т.е. нельзя писать 0.0.0.0, как в oh323.conf
allow = all
dtmfmode = rfc2833; в настройках АТС, тоже встречается этот параметр, там я тоже выставил rfc2833.
; далее незакомментированные параметры. За что они отвечают, не знаю.
gatekeeper = disable
userbyalias = no
context = default
progress_setup = 3
progress_alert = 8
progress_audio = no
; настройка подключения к атс. Подключено две атс, связаны между собой, через астериск.
[ipldk-earth]
type=user
host=88.23.56.11
context=phones
;incominglimit=4
; след. два параметра есть и в АТС, там я их тоже включил. Можно и без них наверно, не проверял.
fastStart=yes
h245Tunneling=yes
[ipldk-moon]
type=user
host=86.112.11.232
context=phones
;incominglimit=4
fastStart=yes
h245Tunneling=yes
/etc/asterisk/extensions.confКод
[globals]
; для записи, используем sox, который сначала нужно установить
MONITOR_EXEC=sox -m
[general]
[default]
exten => s,1,Verbose(1|Unrouted call handler)
exten => s,n,Answer()
exten => s,n,Wait(1)
exten => s,n,Playback(tt-weasels)
exten => s,n,Hangup()
[phones]
; echo
exten => 300,1,Verbose(1|Extension ${EXTEN})
exten => 300,n,Answer()
exten => 300,n,Monitor(wav,echo)
exten => 300,n,Echo()
exten => 300,n,Hangup()
; sip-абоненты, нумерация с 300
exten => _3XX,1,Verbose(1|Extension ${EXTEN})
exten => _3XX,2,Dial(SIP/${EXTEN},30)
exten => _3XX,3,Hangup()
; ipldk-earth, нумерация с 200
exten => _2XX,1,Verbose(1|Extension ${EXTEN})
exten => _2XX,n,Dial(H323/88.23.56.11:1720/${EXTEN:0})
exten => _2XX,n,Hangup
; ipldk-earth, выход на городскую линию, 6-и значный номер, начинающийся с 6-ки, например 64-29-49
exten => _6XXXXX,1,Verbose(1|Extension ${EXTEN})
exten => _6XXXXX,n,Dial(H323/172.168.1.201:1720/9${EXTEN:0})
exten => _6XXXXX,n,Hangup
; ipldk-moon, нумерация с 100
exten => _1XX,1,Verbose(1|Extension ${EXTEN})
exten => _1XX,n,Dial(H323/86.112.11.232:1720/${EXTEN:0})
exten => _1XX,n,Hangup
; ipldk-moon, выход на городскую линию, номер начинающийся с 8-ки, например 8 (4212) 500-500
exten => _8.,1,Verbose(1|Extension ${EXTEN})
exten => _8.,n,Dial(H323/86.102.101.132:1720/9${EXTEN:0})
exten => _8.,n,Hangup
/etc/asterisk/rtp.confКод
[general]
rtpstart=10000
rtpend=20000
/etc/asterisk/sip.confКод
[general]
context=default
allowguest=no
bindport=5060
bindaddr=0.0.0.0
videosupport=yes
[echo]
type=friend
context=phones
host=dynamic
[302]
username=polycom
secret=302
type=friend
host=dynamic
context=phones
;canreinvite=no
nat=no
disallow=all
allow=ulaw
;allow=all
[303]
username=303
secret=303
type=friend
host=dynamic
context=phones
;canreinvite=no
nat=no
disallow=all
allow=ulaw
;allow=all