Страница 1 из 1

Проблема при входящем вызове.

Добавлено: 10 июн 2011, 12:50
FreeSS
Добрый день Уважаемые!
Сразу скажу - я еще совсем новичёк, поэтому прошу сильно не пинать
Система:
CentOS 5 + Asterisk 1.8.3.2
Два офиса соединены по следующей схеме:
KX-TDA100 (плата внутренних аналоговых линий) <-> D-link DVG-6004S (FXO порт) <-> NAT <-> Asterisk <-> NAT <-> Cisco ATA-186
Звонок с ATA-186 во внутренюю сеть TDA100 проходит нормально, а вот из внутренней сети TDA100 дозвониться на порт ATA-186 невозможно, только в ооочень редких случаях звонок всё таки проходит.

sip.conf:

порт dvg-6004s:

Код: Выделить всё

[111112]                                                                                                                                                      
type=friend                                                                                                                                                  
username=bashni_fxo                                                                                                                                          
callerid=bashni_in                                                                                                                                            
secret=password                                                                                                                                              
nat=yes ; Этот телефон находиться за роутером с NAT                                                                                                          
canreinvite=no                                                                                                                                                
context=bashni_in                                                                                                                                            
host=dynamic                                                                                                                                                  
dtmfmode=rfc2833                                                                                                                                              
disallow=all                                                                                                                                                  
allow=ulaw                                                                                                                                                    
allow=alaw                                                                                                                                                    
allow=g729       



порт cisco ata-186:

Код: Выделить всё

[222222]                                                                                                                                                      
type=friend                                                                                                                                                  
username=bashni_fxs                                                                                                                                          
callerid=bashni_out                                                                                                                                          
secret=password                                                                                                                                              
nat=yes ; Этот телефон находиться за роутером с NAT                                                                                                          
canreinvite=no                                                                                                                                                
context=bashni_out                                                                                                                                            
host=dynamic                                                                                                                                                  
dtmfmode=rfc2833                                                                                                                                              
disallow=all                                                                                                                                                  
allow=ulaw                                                                                                                                                    
allow=alaw                                                                                                                                                    
allow=g729                  



extension.conf:

Код: Выделить всё

[bashni_out]                                                                                                                                                  
exten => _X.,1,Dial(SIP/111112/111112${EXTEN},240)       ;Тут перед ${EXTEN} дописываем учётку FXO-порта для жесткой привязки к данному порту, т.е. обход функции Dlink First Idle.                                                                                                    
exten => _X.,2,Hangup()                                                                                                                                      
                                                                                                                                                                                                                                                                                                                
[bashni_in]                                                                                                                                                  
exten => 222222,1,Dial(SIP/222222)                                                                                                                            
exten => 222222,2,hangup       

Лог проблемного звонка из full-log:

Код: Выделить всё

[Jun 10 11:29:33] VERBOSE[2570] netsock2.c:   == Using SIP RTP CoS mark 5                                                                                    
[Jun 10 11:29:33] VERBOSE[27971] pbx.c:     -- Executing [222222@bashni_in:1] Dial("SIP/111112-00000078", "SIP/222222") in new stack                          
[Jun 10 11:29:33] VERBOSE[27971] netsock2.c:   == Using SIP RTP CoS mark 5                                                                                    
[Jun 10 11:29:33] VERBOSE[27971] app_dial.c:     -- Called 222222                                                                                            
[Jun 10 11:30:05] VERBOSE[27971] app_dial.c:     -- SIP/222222-00000079 is circuit-busy                                                                      
[Jun 10 11:30:05] VERBOSE[27971] app_dial.c:   == Everyone is busy/congested at this time (1:0/1/0)                                                          
[Jun 10 11:30:05] VERBOSE[27971] pbx.c:     -- Executing [222222@bashni_in:2] Hangup("SIP/111112-00000078", "") in new stack                                  
[Jun 10 11:30:05] VERBOSE[27971] pbx.c:   == Spawn extension (bashni_in, 222222, 2) exited non-zero on 'SIP/111112-00000078'                                  
[Jun 10 11:30:05] WARNING[2570] chan_sip.c: Retransmission timeout reached on transmission 16e0d2287a9316c85e776600450a2cc1@91.194.XXX.X:5060 for seqno 102 ( 
Packet timed out after 32000ms with no response     

Re: Проблема при входящем вызове.

Добавлено: 10 июн 2011, 13:00
ded
[222222]
type=friend
username=bashni_fxs
callerid=bashni_out
secret=password
nat=yes ; Этот телефон находиться за роутером с NAT
canreinvite=no
context=bashni_out
host=dynamic
qualify=yes
dtmfmode=rfc2833
disallow=all
allow=ulaw
allow=alaw
allow=g729

Для понимания - включить дебаг
sip set debug peer 222222

Re: Проблема при входящем вызове.

Добавлено: 10 июн 2011, 13:14
FreeSS
Включил дебаг данного пира, 4 строчки подряд выпадают таких:

Retransmitting #3 (NAT) to реальник_за_которым_fxs:1024:
OPTIONS sip:222222@10.30.5.122:5060;user=phone;transport=udp SIP/2.0
Via: SIP/2.0/UDP реальник_астериска:5060;branch=z9hG4bK168b2fb7;rport
Max-Forwards: 70
From: "asterisk" <sip:asterisk@реальник_Астериска>;tag=as237eb620
To: <sip:222222@10.30.5.122:5060;user=phone;transport=udp>
Contact: <sip:asterisk@реальник_астериска:5060>
Call-ID: 4b8db7e232ddac12614b4e0f696adb2e@реальник_астериска:5060
CSeq: 102 OPTIONS
User-Agent: Asterisk PBX 1.8.3.2
Date: Fri, 10 Jun 2011 09:10:50 GMT
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH
Supported: replaces, timer
Content-Length: 0

Во время данного дебага, при звонке точно такой же лог ошибки что был указан выше.

Re: Проблема при входящем вызове.

Добавлено: 10 июн 2011, 13:19
FreeSS
После включения в CLI - core set debug 5 и core set verbose 5, в full-log'е появилось много интересного:

Очень много таких строчек:

Код: Выделить всё

[Jun 10 12:53:31] DEBUG[2570] chan_sip.c: Bridge still active.  Delaying destroy of SIP dialog '6b48570324115e8c0ab1d77449bbb42f@реальник_астериска:5060' Method: INVITE
[Jun 10 12:53:31] DEBUG[2570] chan_sip.c: Bridge still active.  Delaying destroy of SIP dialog '1378979071@10.30.5.122' Method: ACK   
И вот такое:

Код: Выделить всё

[Jun 10 12:53:31] DEBUG[2570] chan_sip.c: = Looking for  Call ID: 1378979071@10.30.5.122 (Checking From) --From tag 4100695784 --To-tag as6be68073           
[Jun 10 12:53:31] DEBUG[2570] chan_sip.c: **** Received BYE (8) - Command in SIP BYE                                                                         
[Jun 10 12:53:31] DEBUG[2570] netsock2.c: Splitting '10.30.5.122:5060' gives...                                                                              
[Jun 10 12:53:31] DEBUG[2570] netsock2.c: ...host '10.30.5.122' and port '5060'.                                                                             
[Jun 10 12:53:31] DEBUG[2570] chan_sip.c: Setting SIP_ALREADYGONE on dialog 1378979071@10.30.5.122                                                           
[Jun 10 12:53:31] DEBUG[2570] res_rtp_asterisk.c: Setting RTCP address on RTP instance '0x106e7a48'                                                          
[Jun 10 12:53:31] DEBUG[2570] chan_sip.c: Received bye, issuing owner hangup                                                                                 
[Jun 10 12:53:31] DEBUG[2570] chan_sip.c: Trying to put 'SIP/2.0 200' onto UDP socket destined for реальник_за_которым_fxs:5060
[Jun 10 12:53:31] DEBUG[28609] res_rtp_asterisk.c: Setting RTCP address on RTP instance '0x106e7a48'                                                         
[Jun 10 12:53:31] DEBUG[2523] devicestate.c: No provider found, checking channel drivers for SIP - 111112                                                    
[Jun 10 12:53:31] DEBUG[2523] chan_sip.c: Checking device state for peer 111112                                                                              
[Jun 10 12:53:31] DEBUG[2523] devicestate.c: Changing state for SIP/111112 - state 1 (Not in use)                                                            
[Jun 10 12:53:31] DEBUG[2523] devicestate.c: device 'SIP/111112' state '1'                                                                                   
[Jun 10 12:53:31] DEBUG[2523] devicestate.c: No provider found, checking channel drivers for SIP - 222222                                                    
[Jun 10 12:53:31] DEBUG[2523] chan_sip.c: Checking device state for peer 222222                                                                              
[Jun 10 12:53:31] DEBUG[2523] devicestate.c: Changing state for SIP/222222 - state 1 (Not in use)                                                            
[Jun 10 12:53:31] DEBUG[2523] devicestate.c: device 'SIP/222222' state '1'

Re: Проблема при входящем вызове.

Добавлено: 10 июн 2011, 13:29
ded
Бегут пакеты OPTIONS без ответа оттуда
Retransmitting #3 (NAT) to реальник_за_которым_fxs:1024:
Они служатдля поддержания живой трансляции NAT создаваемой утройством реальник_за_которым_fxs. В ответ - тишина, потому и ретрансмитит много раз.
Стало быть утройство реальник_за_которым_fxs как НАТ работает неправильно, либо firewall на нём режет этот трафик.

Как вариант - указать на АТА-186 время регистрации на Астериске 60 сек. вместо дефолтных 3600, тогда трансляция НАТ, созданная при регистрации будет поддерживаться всё время без механизма OPTIONS - qualify.

Re: Проблема при входящем вызове.

Добавлено: 10 июн 2011, 14:23
FreeSS
Огромное человеческое спасибо. Поменял значение 3600с на 60с и всё отлично работает))))
Спасибо :)
А как теперь debug отключить что б CLI не засорял? Или достаточно просто из консоли выйти и он потом там не будет сыпаться?

Re: Проблема при входящем вызове.

Добавлено: 10 июн 2011, 14:35
SolarW
core set debug off