настроена конфигурация АТС+Asterisk 1.8.4.1+шлюз Dynamix 4FXOA.
Внутренние номера АТС трехзначные. Предполагается использовать все 4 порта, но пока шлюз включен в единственную линию 110.
конфиг шлюза следующий
flash -clean
ifaddr -ip 192.168.3.222 -mask 255.255.252.0 -gate 192.168.1.72
sip mode 1
sip -line 1 885
line -config 1 hotline 777
security -line 1 -name 885 -password 885
commit
reboot
Астериск
sip.conf
[885]
type=friend
host=dynamic
username=885
secret=885
nat=no
qualify=yes
context=office
callerid="VoIP Gateway" <885>
[111]
type=friend
host=dynamic
username=111
secret=111
pedantic=yes
nat=no
dial=SIP/111
canreinvite=no
context=office
callerid= <111>
[112]
type=friend
host=dynamic
username=111
secret=111
pedantic=yes
nat=no
dial=SIP/112
canreinvite=no
context=office
callerid= <112>
extensions.conf
[default]
exten => _XXX,1,Macro(stdexten,${EXTEN},SIP/${EXTEN})
exten => _9.,1,Dial(SIP/${EXTEN:1}@192.168.3.222,30,t)
exten => 777,1,Answer
exten => 777,2,Background(to-call-exten-dial-exten)
exten => 777,3,waitExten(10)
[macro-stdexten]
exten => s,1,Dial(${ARG2},30,t)
exten => s,2,Goto(s-${DIALSTATUS},1)
exten => s-NOANSWER,1,voicemail(${ARG1},u)
exten => s-NOANSWER,2,Goto(default,s,1)
exten => s-BUSY,1,Voicemail(${ARG1},b)
exten => s-BUSY,2,Goto(default,s,1)
exten => _s-.,Goto(s-NOANSWER)
то есть всё очень просто. 1й exten для звонков IP-абонентов друг другу, 2й - выход через девятку на шлюз
sip show peers
Name/username Host Dyn Forcerport ACL Port Status
111/111 192.168.1.11 D 5060 Unmonitored
112/112 192.168.1.12 D 5060 Unmonitored
В итоге имею такой неприятный эффект.
Звоню с телефона на шлюз (номер 110). hotline переадресовывает меня на номер 777, который обрабатывается соответствующим exten. Слышу приглашение астериска, ввожу внутренний номер абонента 111, проходит звонок на IP-phone. Всё хорошо. НО.
Если я в этот момент кладу трубку, то шлюз продолжает звонить и через заданные 30 секунд Астериск получает DIALSTATUS=NOANSWER. Согласно макросу включается голосовая почта и пишется до бесконечности, пока насильно не перезагрузишь шлюз. Как заставить шлюз понимать, что трубку положили?
Согласно мануала record -tone, должен был получить нечто похожее на
Frequency 1 : 481
Frequency 3 : 621
0.25sec on 0.25sec off
а получил
Frequency 1 : 481
Frequency 3 : 621
(3й строчки с секундами нет).
выполнил
tone 1 425 425 8 8 35 35 35 35
tone 2 150 250 8 8 25 25 50 50
но это не помогает.