AF
Asterisk Forum
обсуждения телефонии, VoIP и IP-PBX
12разделов
5 423тем
34 385сообщений
← К списку тем

Проблемы с авторизацией sip клиента

Newbies/FAQ Forum 14 сообщений -
#1

Привет знатокам!!!
странное поведение asteriska. Есть несколько проблем при регистрации SIP клиентов.
клиент за нат, сервер за нат.
после того как регистрация клиента прошла успешно, астер выдает сообщения:
Код:
-- Registered SIP '1004' at 93.74.85.243:51237
[2012-08-05 17:17:24] NOTICE[29992]: chan_sip.c:21157 handle_response_peerpoke: Peer '1004' is now Reachable. (83ms / 1000ms)
[2012-08-05 17:17:42] NOTICE[29992]: chan_sip.c:21157 handle_response_peerpoke: Peer '1004' is now Lagged. (1617ms / 1000ms)
[2012-08-05 17:17:52] NOTICE[29992]: chan_sip.c:21157 handle_response_peerpoke: Peer '1004' is now Reachable. (65ms / 1000ms)
[2012-08-05 17:18:01] NOTICE[29925]: chan_sip.c:26687 sip_poke_noanswer: Peer '1004' is now UNREACHABLE! Last qualify: 67
[2012-08-05 17:18:11] NOTICE[29992]: chan_sip.c:21157 handle_response_peerpoke: Peer '1004' is now Reachable. (67ms / 1000ms)
[2012-08-05 17:18:27] NOTICE[29925]: chan_sip.c:26687 sip_poke_noanswer: Peer '1004' is now UNREACHABLE! Last qualify: 71
[2012-08-05 17:18:37] NOTICE[29992]: chan_sip.c:21157 handle_response_peerpoke: Peer '1004' is now Reachable. (76ms / 1000ms)
[2012-08-05 17:18:47] NOTICE[29925]: chan_sip.c:26687 sip_poke_noanswer: Peer '1004' is now UNREACHABLE! Last qualify: 70
[2012-08-05 17:18:57] NOTICE[29992]: chan_sip.c:21157 handle_response_peerpoke: Peer '1004' is now Reachable. (67ms / 1000ms)
[2012-08-05 17:19:12] NOTICE[29925]: chan_sip.c:26687 sip_poke_noanswer: Peer '1004' is now UNREACHABLE! Last qualify: 70
[2012-08-05 17:19:22] NOTICE[29992]: chan_sip.c:21157 handle_response_peerpoke: Peer '1004' is now Reachable. (78ms / 1000ms)
[2012-08-05 17:19:32] NOTICE[29925]: chan_sip.c:26687 sip_poke_noanswer: Peer '1004' is now UNREACHABLE! Last qualify: 72


При этом параметр qualify менял от 1000 до 4000. Ситуация такая же.. просто сервер переодически "теряет" клиента.
От чего это может быть???

Когда клинт решает отключиться, то сервер и на это реагирует не так, как хотелось бы...
Код:

WARNING[29941] chan_sip.c: Failure to write to tcp/tls socket
WARNING[29941] chan_sip.c: Failure to write to tcp/tls socket
WARNING[29941] chan_sip.c: Failure to write to tcp/tls socket
WARNING[29941] chan_sip.c: Failure to write to tcp/tls socket
WARNING[29941] chan_sip.c: Failure to write to tcp/tls socket
WARNING[29941] chan_sip.c: Failure to write to tcp/tls socket
WARNING[29941] chan_sip.c: Failure to write to tcp/tls socket
WARNING[29925] chan_sip.c: sip_xmit of 0xb6c05958 (len 647) to ip_clinet returned -2: Interupted system call
WARNING[29925] chan_sip.c: sip_xmit of 0xb6c03892 (len 647) to ip_clinet returned -2: Interupted system call
WARNING[29925] chan_sip.c: sip_xmit of 0xb6c03831 (len 647) to ip_clinet returned -2: Interupted system call
WARNING[29925] chan_sip.c: sip_xmit of 0xb6c05312 (len 647) to ip_clinet returned -2: Interupted system call

........


и такой лог идет не останавливаясь....

При перезазрузке астера, возникают след ошибка

Код:

ERROR[30058]: tcptls.c:397 ast_tcptls_client_start: Unable to connect SIP socket to ip-clienet_beh_nat: Connection refused
ERROR[30059]: tcptls.c:397 ast_tcptls_client_start: Unable to connect SIP socket to ip-clienet_beh_nat: Connection refused
ERROR[30060]: tcptls.c:397 ast_tcptls_client_start: Unable to connect SIP socket to ip-clienet_beh_nat: Connection refused
ERROR[30061]: tcptls.c:397 ast_tcptls_client_start: Unable to connect SIP socket to ip-clienet_beh_nat: Connection refused
ERROR[30062]: tcptls.c:397 ast_tcptls_client_start: Unable to connect SIP socket to ip-clienet_beh_nat: Connection refused
ERROR[30057]: tcptls.c:397 ast_tcptls_client_start: Unable to connect SIP socket to ip-clienet_beh_nat: Connection timed out
ERROR[30063]: tcptls.c:397 ast_tcptls_client_start: Unable to connect SIP socket to ip-clienet_beh_nat: Connection refused

...........


А спустя некоторое время, астер просто "падает"....


Подозреваю что что-то не то с натом.... но что именно.... может кто сталкивался с такой проблемой, подскажите что не так..
Спасибо

Мои настройки

sip.conf

[general]
externaddr=externIP:5060
localnet=192.168.0.0/255.255.255.0
context=default
allowguest=yes
tcpenable=yes
transport=tcp
tcpbindaddr=192.168.0.2:5060
tlsenable=no
rtpkeepalive=10


[user](!)
type=friend
context= out
host=dynamic
nat=no
secret=123
dtmfmode=auto
disallow=all
allow=ulaw
transport=tcp
directmedia=no
qualify=1000

[1000](user) - клиент внутренней сети

[1001](user) - клиент внешней сети
nat=yes
[/list]
#2

(!) - сначала идет nat=no, потом этому клиенту nat=yes

во вторых в обциях [general] неплохобы сказать что и сервер за натом

клиент точно по TCP цепляется ?
#3

awsswa , спасибо за совет!) вот результат...

1. убрал nat=no из шаблона, сейчас он прописывается у конкертного юзера
2 в [General] добавил nat=yes, заменил externaddr=externIP:5060 на externhost=externIP:5060 и externrefresh=10
3 да, клиенты вешаются именно на TCP, так как при стандартном UDP были проблемы со звуком...
версия * 1.8.11 cert5

на данный момент ошибки пропали... но и sip Не подключены - нечему глючить! ))
но осталось такое

[2012-08-05 20:19:26] NOTICE[30722]: chan_sip.c:21157 handle_response_peerpoke: Peer '1000' is now Lagged. (1610ms / 1000ms)
[2012-08-05 20:23:26] NOTICE[30722]: chan_sip.c:21157 handle_response_peerpoke: Peer '1000' is now Lagged. (1883ms / 1000ms)
[2012-08-05 20:23:36] NOTICE[30722]: chan_sip.c:21157 handle_response_peerpoke: Peer '1000' is now Reachable. (162ms / 1000ms)
[2012-08-05 20:23:42] NOTICE[30725]: chan_sip.c:26687 sip_poke_noanswer: Peer '1000' is now UNREACHABLE! Last qualify: 148
[2012-08-05 20:23:52] NOTICE[30722]: chan_sip.c:21157 handle_response_peerpoke: Peer '1000' is now Reachable. (226ms / 1000ms)
[2012-08-05 20:19:36] NOTICE[30722]: chan_sip.c:21157 handle_response_peerpoke: Peer '1000' is now Reachable. (214ms / 1000ms)
[2012-08-05 20:25:24] NOTICE[30803]: chan_sip.c:21157 handle_response_peerpoke: Peer '1002' is now Lagged. (1049ms / 1000ms)
[2012-08-05 20:25:26] NOTICE[30722]: chan_sip.c:21157 handle_response_peerpoke: Peer '1000' is now Lagged. (1267ms / 1000ms)
[2012-08-05 20:25:35] NOTICE[30803]: chan_sip.c:21157 handle_response_peerpoke: Peer '1002' is now Reachable. (479ms / 1000ms)
[2012-08-05 20:25:36] NOTICE[30722]: chan_sip.c:21157 handle_response_peerpoke: Peer '1000' is now Reachable. (152ms / 1000ms)


отчего зависит время ответа абонента??? при sip show peers время отклика составляет примерно 150-200 мс, но иногда возникют lagged, а то и вовсе unreachible....

1002 - клиент из-за нат
1000 - клиент подключенный по VPN, следовательно без нат...
#4

к сожалению, не помогло...
Код:

[2012-08-05 23:37:08] NOTICE[30928]: chan_sip.c:21157 handle_response_peerpoke: Peer '1004' is now Reachable. (69ms / 1000ms)
[2012-08-05 23:37:26] NOTICE[30725]: chan_sip.c:26687 sip_poke_noanswer: Peer '1004' is now UNREACHABLE! Last qualify: 768
[2012-08-05 23:37:36] NOTICE[30928]: chan_sip.c:21157 handle_response_peerpoke: Peer '1004' is now Reachable. (129ms / 1000ms)
[2012-08-05 23:37:44] NOTICE[30928]: chan_sip.c:21157 handle_response_peerpoke: Peer '1004' is now Lagged. (1369ms / 1000ms)
[2012-08-05 23:37:56] NOTICE[30725]: chan_sip.c:26687 sip_poke_noanswer: Peer '1004' is now UNREACHABLE! Last qualify: 1369
[2012-08-05 23:38:06] NOTICE[30928]: chan_sip.c:21157 handle_response_peerpoke: Peer '1004' is now Reachable. (71ms / 1000ms)
[2012-08-05 23:38:10] NOTICE[30725]: chan_sip.c:26687 sip_poke_noanswer: Peer '1004' is now UNREACHABLE! Last qualify: 71
[2012-08-05 23:38:32] WARNING[30725]: chan_sip.c:3396 __sip_xmit: sip_xmit of 0xb6d0ea60 (len 647) to IP_CLIENT:51694 returned -2: Interrupted system call
[2012-08-05 23:38:44] WARNING[30725]: chan_sip.c:3396 __sip_xmit: sip_xmit of 0xb6d0ea60 (len 647) to IP_CLIENT:51694 returned -2: Interrupted system call
[2012-08-05 23:38:56] WARNING[30725]: chan_sip.c:3396 __sip_xmit: sip_xmit of 0xb6d0ea60 (len 647) to IP_CLIENT:51694 returned -2: Interrupted system call
[2012-08-05 23:39:08] WARNING[30725]: chan_sip.c:3396 __sip_xmit: sip_xmit of 0xb6d0ea60 (len 647) to IP_CLIENT:51694 returned -2: Interrupted system call
[2012-08-05 23:39:20] WARNING[30725]: chan_sip.c:3396 __sip_xmit: sip_xmit of 0xb6d0ea60 (len 647) to IP_CLIENT:51694 returned -2: Interrupted system call
[2012-08-05 23:39:32] WARNING[30725]: chan_sip.c:3396 __sip_xmit: sip_xmit of 0xb6d0ea60 (len 647) to IP_CLIENT:51694 returned -2: Interrupted system call
...


клиент 1004 за нат

и такой варнинг наблюдается каждые 12 секунд....

при этом висит канал с 1002, который находится тоже за натом

Код:

*CLI> sip show channels
Peer User/ANR Call ID Format Hold Last Message Expiry Peer
IP_ANOTHER_CLIENT (None) 59384a7f66cccc0 0x0 (nothing) No (d) Init: OPTIONS 1002
1 active SIP dialog



хотя разговор давно окончен...
дебаг peer выдает:

Код:

[2012-08-06 00:37:14] WARNING[30725]: chan_sip.c:3396 __sip_xmit: sip_xmit of 0xb6d0b7a0 (len 647) to IP_SERVER returned -2: Interrupted system call
Really destroying SIP dialog '0c7aa02367c1fb1613746a16471f2a9a@IP_SERVER:5060' Method: OPTIONS
Reliably Transmitting (NAT) to IP_CALIENT:55356:
OPTIONS sip:1004@192.168.1.101:5060;rinstance=cf7dd7267302a236;transport=TCP SIP/2.0
Via: SIP/2.0/TCP IP_SERVER:5060;branch=z9hG4bK7f88e3b1;rport
Max-Forwards: 70
From: "asterisk" ;tag=as4e7b1a00
To:
Contact:
Call-ID: 4457b3615f3470dd2281a7343f390e60@93.125.108.62:5060
CSeq: 102 OPTIONS
User-Agent: Asterisk PBX 1.8.11-cert5
Date: Sun, 05 Aug 2012 21:37:26 GMT
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH
Supported: replaces, timer
Content-Length: 0


#5

Я надеюсь вы не на виртуалке все это запускаете ?
А то про проблемы со звуком наводят соинения
#6

нет, на отдельной машине

проблемы с Udp начинались с подключения: при том, что и клиент и сервер находятся за натом, было необходимо использование стан сервера.
"К сожалению, если обе общающиеся стороны находятся за NAT’ом, соединение не может быть установлено обычным способом. Именно здесь STUN и оказывается полезным." (- Википедия)
В целях избежания использования какого либо стороннего приложения, решил перейти на TCP.

идут все те же ошибки при регистрации:
Код:

ERRROR[31909]: tcptls.c:397 ast_tcptls_client_start: Unable to connect SIP socket to IP_CLIENT:52395: Connection timed out

несмотря на то, что

64 bytes from IP_CLIENT: icmp_req=1 ttl=52 time=50.3 ms
64 bytes from IP_CLIENT: icmp_req=2 ttl=52 time=32.4 ms
64 bytes from IP_CLIENT: icmp_req=3 ttl=52 time=31.3 ms
64 bytes from IP_CLIENT: icmp_req=4 ttl=52 time=31.2 ms
64 bytes from IP_CLIENT: icmp_req=7 ttl=52 time=28.4 ms
64 bytes from IP_CLIENT: icmp_req=8 ttl=52 time=32.2 ms
64 bytes from IP_CLIENT: icmp_req=9 ttl=52 time=30.8 ms



Последний раз редактировалось: Shyrikoff (Пн Авг 06, 2012 09:36)
#7

Без всяких STUN все работает у всех - STUN нужен когда сервер за NAT (балансировка) - или кривой сип клиент.
Половина sip клиентов работает криво с нат.
Это легко проверяется
sip show peers
и если клиенты за натом висят на порту внешнийадресклиента:5060 - клиент кривой - но это не говорит об его нерабочем состоянии.
Точно работает 3CX Phone - у него обычно - внешнийадресклиента:56435 - типа так - и при каждом перезапуске порт меняется

Может вам поднять на сервере PPPoE сервер - многие клиенты умеют подключаться к нему - так избежите проблему с нат.


Последний раз редактировалось: awsswa (Пн Авг 06, 2012 09:43)
#8

так у нас и есть "STUN нужен когда сервер за NAT". На него проброшены порты 5060, 10000-10020.

Код:

sip show peers
Name/username Host Dyn Forcerport ACL Port Status
1000/1000 внутреннийIP D 5060 OK (19 ms)
1001 (Unspecified) D N 0 UNKNOWN
1002/1002 вненийIP D N 57764 OK (280 ms)
1003 (Unspecified) D N 0 UNKNOWN
1004/1004 внешнийIP2 D N 52395 UNREACHABLE

и сыпятся ERROR[31928]: tcptls.c:397 ast_tcptls_client_start: Unable to connect SIP socket to внешнийIP2:52395: Connection timed out


Последний раз редактировалось: Shyrikoff (Пн Авг 06, 2012 09:44)
#9

10000-20000 ?
Чтоб не сюпались предупреждения qualify=no
Но эту проблему не решит - у вас сеть гавно. Большой пинг.
У вернитесь обратно на UDP - по играйте с кодаками - Jbuffer включите.


Последний раз редактировалось: awsswa (Пн Авг 06, 2012 09:48)
#10

нет столько одновременных разговоров. Поэтому из расчета 2 порта на 1 звонок открыл 10000-10020
vpn сервер работает и при подключении таких проблем не наблюдал.

предупреждения не страшат!)) проблему не исправит, так как все равно переодически клиент будет недоступен... уж лучше видеть проблему

Added after 5 minutes:

я вот еще чего не понимаю. Почему при пинге от 25-60мс qualify в 1000 не успевает возвращаться...
#11

когда решил проверить еще раз подключение из-за нат по udp, получил:
Код:


[general]
nat=yes
externaddr= IP_SERVER:5060
localnet=192.168.0.0/255.255.255.0
context=default
allowguest=yes
tcpenable=no
transport=udp
udpbindaddr=0.0.0.0
tlsenable=no
rtpkeepalive=10
directmedia=no


[user](!)
type=friend
context= out
host=dynamic
secret=123
dtmfmode=auto
disallow=all
allow=ulaw
transport=udp
directmedia=no
qualify=1000

[1000](user)
nat=no

[1001](user)
nat=no

[1002](user)
nat=yes

[1003](user)
nat=yes



Код:

*CLI> sip show peers
Name/username Host Dyn Forcerport ACL Port Status
1000/1000 192.168.0.251 D 49153 OK (26 ms)
1002/1002 белыйИПклиента,которыйзанатом D N 11135 OK (34 ms)


при звонке с 1002 на 1000. звонок идет, поднять трубку невозможно (сервер на это не реагирует)
rtp весело бегут в одну сторону...


Код:

Got RTP packet from белыйИПклиента,которыйзанатом:11208 (type 00, seq 022320, ts 1826129970, len 000160)
Got RTP packet from белыйИПклиента,которыйзанатом:11208 (type 00, seq 022321, ts 1826130130, len 000160)
Got RTP packet from белыйИПклиента,которыйзанатом:11208 (type 00, seq 022322, ts 1826130290, len 000160)
Got RTP packet from белыйИПклиента,которыйзанатом:11208 (type 00, seq 022323, ts 1826130450, len 000160)
Got RTP packet from белыйИПклиента,которыйзанатом:11208 (type 00, seq 022324, ts 1826130610, len 000160)


при обратном направлении вызова сервер вообще никак не реагирует...

rtp по-прежнему проброшены 10000-10020 и 5060 для sip

Подскажите, что неправильно, уже несколько дней борюсь
#12

в rtp.conf записано 10000-20000 ?
так и открывайте с 10000-20000.
#13

в rtp.cpnf записано то же самое, что проброшено на роутере: 10000-10020. Доступа к нему у меня пока нет... буду в той сети - попробую. Но очень сомневаюсь, что поможет, так как кол-во ртп портов зависит от кол-ва одновременных вызовов - по 2 порта на канал.

есть еще вопрос: был клиент из-под нат. был зарегестрирован на беломIP. Он уже давно отконнектился, а вот в астер поступают воспоминания о нем ...
Код:

Unable to connect SIP socket to белыйIP:11135: Connection refused
Unable to connect SIP socket to белыйIP:11135: Connection refused
Unable to connect SIP socket to белыйIP:11135: Connection refused
Unable to connect SIP socket to белыйIP:11135: Connection refused
Unable to connect SIP socket to белыйIP:11135: Connection refused
Unable to connect SIP socket to белыйIP:11135: Connection refused
Unable to connect SIP socket to белыйIP:11135: Connection refused
Unable to connect SIP socket to белыйIP:11135: Connection refused
Unable to connect SIP socket to белыйIP:11135: Connection refused
Unable to connect SIP socket to белыйIP:11135: Connection refused
Unable to connect SIP socket to белыйIP:11135: Connection refused


и это не заканчивается!