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

Не проходит вызов с одного сервера Asterisk на 2-ой сервер при хранении пользователей в MySQL.

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

Не проходит вызов с одного сервера Asterisk на 2-ой сервер при хранении пользователей в MySQL.


Здравствуйте.
Есть 2 сервера Asterisk, (server1) и (server2).
Сервера связаны между собой sip-транком. (server1) (server2)
На (server1) подключается (Phone1) номер 1001, на (server2) подключается (Phone2) номер 1002. Phone1 и 2 - программные sip-телефоны.

На серверах настроено внешнее хранение extensions.conf и sip.conf в БД MySQL. Так же на серверах настроены хранение абонентов в БД MySQL(Realtime, таблица sippeers).

То есть, общая схема такая
Код:
(MySQL Сервер)
/ \
(Phone1) -----> (Server1) (Server2)
#2

У вас схема не правильная. Отказаустойчивость делается - через наличии mysql баз на обоих серверах и синхронизацией их в режиме - мастер/мастер.

sip show peer 1001 и sip show peer 1002 - покажите
#3

Извините, что долго не писал.

Вот вывод для 1001 на Server1:
* Name : 1001
Secret :
MD5Secret :
Remote Secret:
Context : from-internal
Subscr.Cont. :
Language : ru
AMA flags : Unknown
Transfer mode: open
CallingPres : Presentation Allowed, Not Screened
Callgroup :
Pickupgroup :
MOH Suggest :
Mailbox :
VM Extension : asterisk
LastMsgsSent : 32767/65535
Call limit : 0
Max forwards : 0
Dynamic : Yes
Callerid : ""
MaxCallBR : 384 kbps
Expire : 537
Insecure : no
Force rport : Yes
ACL : No
DirectMedACL : No
T.38 support : No
T.38 EC mode : Unknown
T.38 MaxDtgrm: -1
DirectMedia : No
PromiscRedir : No
User=Phone : No
Video Support: No
Text Support : No
Ign SDP ver : No
Trust RPID : No
Send RPID : No
Subscriptions: Yes
Overlap dial : Yes
DTMFmode : rfc2833
Timer T1 : 500
Timer B : 32000
ToHost :
Addr->IP : 192.168.77.102:41672
Defaddr->IP : (null)
Prim.Transp. : TLS
Allowed.Trsp : TLS
Def. Username: 1001
SIP Options : (none)
Codecs : 0x408 (alaw|ilbc)
Codec Order : (alaw:20,ilbc:30)
Auto-Framing : No
Status : Unmonitored
Useragent : Acrobits Softphone
Reg. Contact : sip:1001@192.168.77.102:41672;rinstance=5119B249;transport=tls
Qualify Freq : 60000 ms
Sess-Timers : Accept
Sess-Refresh : uas
Sess-Expires : 1800 secs
Min-Sess : 90 secs
RTP Engine : asterisk
Parkinglot :
Use Reason : No
Encryption : Yes


Вот вывод для 1002 на Server2:
* Name : 1002
Secret :
MD5Secret :
Remote Secret:
Context : from-internal
Subscr.Cont. :
Language : ru
AMA flags : Unknown
Transfer mode: open
CallingPres : Presentation Allowed, Not Screened
Callgroup :
Pickupgroup :
MOH Suggest :
Mailbox :
VM Extension : asterisk
LastMsgsSent : 32767/65535
Call limit : 0
Max forwards : 0
Dynamic : Yes
Callerid : ""
MaxCallBR : 384 kbps
Expire : 484
Insecure : no
Force rport : Yes
ACL : No
DirectMedACL : No
T.38 support : No
T.38 EC mode : Unknown
T.38 MaxDtgrm: -1
DirectMedia : No
PromiscRedir : No
User=Phone : No
Video Support: No
Text Support : No
Ign SDP ver : No
Trust RPID : No
Send RPID : No
Subscriptions: Yes
Overlap dial : Yes
DTMFmode : rfc2833
Timer T1 : 500
Timer B : 32000
ToHost :
Addr->IP : 192.168.77.100:56153
Defaddr->IP : (null)
Prim.Transp. : TLS
Allowed.Trsp : TLS
Def. Username: 1002
SIP Options : (none)
Codecs : 0x408 (alaw|ilbc)
Codec Order : (alaw:20,ilbc:30)
Auto-Framing : No
Status : Unmonitored
Useragent : Acrobits Softphone
Reg. Contact : sip:1002@192.168.77.100:56153;rinstance=83314BB6;transport=tls
Qualify Freq : 60000 ms
Sess-Timers : Accept
Sess-Refresh : uas
Sess-Expires : 1800 secs
Min-Sess : 90 secs
RTP Engine : asterisk
Parkinglot :
Use Reason : No
Encryption : Yes


По MySQL понятно, так и предполагалось делать.
#4

transport=udp ? Между серверами ?

Prim.Transp. : TLS - И tls на клиентах ?
Allowed.Trsp : TLS

Вы как-то уже определитесь в чем вы работает в UDP или TLS

И не забывайте - раз сервера и клиенты в разных сетях - 192.168. и 10.0.

Делайте в extension.conf тестовых телефоны, примерно вот так и балуйтесь звоня на них

Звоните, пикнуло, поругались в микрофон, нажали решетку, услышали свой голов +1 к мудрости

exten => 592,1,Set(TIME="${STRFTIME(${EPOCH},,%Y-%m-%d_%H-%M-%S)}")
exten => 592,n,Playback(beep)
exten => 592,n,Record(/var/lib/asterisk/sounds/custom/record_${TIME}:gsm)
exten => 592,n,Playback(beep)
exten => 592,n,Playback(/var/lib/asterisk/sounds/custom/record_${TIME})
exten => 592,n,Hangup()

Просто слушаете музыку

exten => 598,1,Answer()
exten => 598,n,MusicOnHold()
exten => 598,n,Hangup()
#5

Может непонятно объяснил.

Транк между серверами я настроить могу, и он работает, и звонить могу, но только если настройки писать в sip.conf, и не использовать MySQL для хранения пользователей. Проблем с обычной настройкой через sip.conf нет.

Проблема заключается в звонке через транк, когда пользователи хранятся в MySQL, и данная таблица используется всеми серверами.

Я думаю, что необходимо при посылке INVITE подменять IP в каком то поле, наверно FROM, так как при INVITE посылается "1001@server1_ip_add" , а если поменять на IP на котором висит Phone1(т.е. 192.168.77.102), то Asterisk должен это проглотить. Возможно я что-то не знаю в авторизации INVITE, и не прав, тогда поправьте пожалуйста.
Если логика верна, то как можно редактировать поле (и главное какое?), пробовал редактировать так Set(SIP_HEADER(From)="1001@192.168.77.102") , но Asterisk сказал "Function SIP_HEADER cannot be written to". Можно ли как то редактировать SIP заголовки, или необходим sip-proxy(Например kamailio)?


На клиентах TLS, а между сервером UDP. А разве так запрещено делать?

Вот что приходит на сервер Server2 от Server1 из sip-транка , при звонке с 1001 на 1002:
INVITE sip:1002@10.0.0.5:5857 SIP/2.0
Via: SIP/2.0/UDP 10.0.0.4:5857;branch=z9hG4bK7e4051ae;rport
Max-Forwards: 70
From: "1001" ;tag=as65b94839
To:
Contact:
Call-ID: 633ec19e6d85db38184f2327090d7ac2@10.0.0.4
CSeq: 102 INVITE
User-Agent: VerySecureSipServer
Date: Sat, 29 Dec 2012 06:26:43 GMT
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH
Supported: replaces, timer
Content-Type: application/sdp
Content-Length: 274


Дальше он посылает ответ:
SIP/2.0 401 Unauthorized
Via: SIP/2.0/UDP 10.0.0.4:5857;branch=z9hG4bK7e4051ae;received=10.0.0.4;rport=5857
From: "1001" ;tag=as65b94839
To: ;tag=as1f02cf85
Call-ID: 633ec19e6d85db38184f2327090d7ac2@10.0.0.4
CSeq: 102 INVITE
Server: VerySecureSipServer
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH
Supported: replaces, timer
WWW-Authenticate: Digest algorithm=MD5, realm="vsss", nonce="251ac46c"
Content-Length: 0


UPD. Версия Asterisk 1.8.16.
#6

Тогда проблема в маршрутизации с 10.0 и 192.168

Строку инвайте можно менять через включения\выключения NAT на астериск и редактируя externip и externhost, localnet

Просто видя вот это
Reg. Contact : sip:1002@192.168.77.100:56153;rinstance=83314BB6;transport=tls - значит клиент на 192.168.77.100 - смотрим sip show peers - и видим что регистрация успешная ?

Потом идет звонок и ответ приходят на INVITE sip:1002@10.0.0.5:5857 SIP/2.0 - а почему 10.0.0.5 ? должен ведь приходить с адреса клиента
#7

Возможно не совсем поняли, или я не понял.

Номер 1001 регистрируется на Server1, номер 1002 регистрируется на Server2.

Мы делаем вызов с номера 1001(который регистрировался на сервере Server1) номер 1002 (который регистрировался на сервере Server2).
Сначала INVITE(тут строка правильная) приходит на (Server1) от номер 1001, потом (Server1) через SIP-Транк посылает INVITE на (Server2)
"INVITE sip:1002@10.0.0.5:5857 SIP/2.0"
и Server2 посылает ответ Server1-у в виде
"SIP/2.0 401 Unauthorized "

Или я вас не понял?

Да, так же я пробовал звонить не через sip-trunk с server1 на Server2, а так: 1001 делает вызов на 1002, с 1001 INVITE приходит на Server1, далее Server1, находит сам в MySQL адрес 1002, и посылает 1002 INVITE(поля вроде правильные), но Server1 выдает "Connction Refuse", причем и порт и ip правильные, и телефон доступен. Как мне кажется, по правильному, такая логика и должна быть, Абонент делает вызов, сервер в БД находит Абонента, которому звонят, и делает ему вызов. Но такая логика вроде используется для SIP-proxy.
Мне кажется, вэ том случае проблема кроется в том, где регистрируется клиент, и потом не принимает вызовы от других серверов, так как там не регистрировался.

В какую сторону копать? в сторону звонка через sip-trunk, или напрямую абоненту?
#8

Пьянству бой.
type=peer за место friend и настраивайте маршрутизацию звонков

_1001,1,Dial(SIP/Server1/${EXTEN})
#9

Да, собственно, у меня везде указаны friend. Ни peers , ни user не использую.


UPD: Понял, рано увидел ваш комментарий, который не изменен.
Да, Dial(SIP/Server1/${EXTEN}) такой.
А зачем вместо friend использовать peers?
#10

Сервер серверу звонить будет ?
И тогда конструкция _1001,1,Dial(SIP/Server1/${EXTEN}) - заработает
#11

Не понял вопроса? Сервер серверу у меня звонит, но сервер, которому звонят, не авторизует INVITE.

awsswa @ Сб Дек 29, 2012
11:58 писал(а):
Сервер серверу звонить будет ?
#12

У вас не сервер серверу звонит, а пользователь на сервере звонит другому пользователю и в зависимости от маршрутизации идет разными путями
#13

awsswa @ Сб Дек 29, 2012 12:14 писал(а):
У вас не сервер серверу звонит, а пользователь на сервере звонит другому пользователю и в зависимости от маршрутизации идет разными путями


Да, верно, и по моей маршрутизации, звонок идет через транк на другой сервер. И проблема как раз втом, что второй сервер не пропускает такой вызов.
Но если можно сделать вызов напрямую нужному абоненту, то мне транк и не нужен будет. Но так я пробовал(описано 2 поста назад), и получал ошибку.
#14

Заработало ?
#15

Нет, проблема сохранилась "Failed to authenticate on INVITE to 1001".
#16

Включите guest=ok Smile
_________________
P4 3.0 + 1Gb CentOS 5.8 Aster 1.8.16
Не люблю gui-сборки: натуральный продукт вкуснее.
И еще: я ПРОФИ так как НЕ ЛЕНЮСЬ читать литературу.
#17

Если это единственный выход, тогда понятно. Спасибо.
#18

Не единственный - еще можно делать insecure=port раз у вас ТОЧНЫЕ направленгия
_________________
P4 3.0 + 1Gb CentOS 5.8 Aster 1.8.16
Не люблю gui-сборки: натуральный продукт вкуснее.
И еще: я ПРОФИ так как НЕ ЛЕНЮСЬ читать литературу.
#19

Боюсь, я так уже делал.
В самом начале написано "insecure=invite,port"
#20

У меня написано именно порт, а не инвайт. Т.е. идентификация идет по порту, а не запросом
_________________
P4 3.0 + 1Gb CentOS 5.8 Aster 1.8.16
Не люблю gui-сборки: натуральный продукт вкуснее.
И еще: я ПРОФИ так как НЕ ЛЕНЮСЬ читать литературу.
#21

Я не понимаю, почему вас не устраивает "insecure=invite,port".
Но я пробовал и так как вы написали, тоже самое.
#22

По моему проще уже доступ до консоли получить и самому настроить
#23

Простите, но доступ дать не могу, потому что они крутятся в тестовой виртуальной среде, и из-вне доступа к ним нет.
Просто, у меня складывается ощущение, что вы считаете, что я один из многих новичков, который не может соединить 2 asterisk-а по sip-транку.
Я могу это сделать, если настраивать через обычный файл, и у меня все работает, при настройке серверов через "ОБЫЧНЫЙ" файл sip.conf.
И проблема возникает, при использовании MySQl для хранения пользователей.

Если я не прав, исправьте меня пожалуйста.

Если у вас есть настройки, которые должны работать в такой конфигурации, буду рад посмотреть.
#24

У вас проблема не mysql, у вас проблема в настройках или клиентов или серверов.
показывайте настройки на серверах по новой и показывайте звонок без дебага, и потом с дебагом
#25

Скажите пожалуйста, а вы поднимали подобную схему?
Просто интересуюсь, если да, то это возможно и значит у меня и правда где-то неправильная настройка.

Но все равно, спасибо за ответы. Сейчас , к сожалению, не могу ничего показать, но завтра днем постораюсь.
#26

Я в стане профи, есть конечно старший админ, и глобальные косяки правит он.

Дома крутится тестовый сервер с реалтаймом на mysql, а на работе вообще толпа серверов и все работает.
Правда потихоньку уходим от чистого астериск и переходим на связку веб морда и mysql.
Веб довольно редкий, я не разу не видел обсуждений в русской части интернета - можете погуглить VOICEONE
#27

Вот, добрался до виртуалок.

В принципе проблему решил переходом с sip-транка на iax-транк.

Но хотелось бы знать, почему не работало, если такая схема возможна.

Настройки Server1:
[general]
static=yes
language=ru
alwaysauthreject=yes
context=default
allowguest=no
tcpenable=no
tlsenable=yes
tlscafile=/etc/asterisk/keys/ca.pem
tlscertfile=/etc/asterisk/keys/asterisk.pem
tlsbindaddr=0.0.0.0
transport=tls
rtptimeout=60
directmedia=no
encryption=yes
nat=yes
canreinvite=no
localnet=10.0.0.0/255.255.255.0
localnet=192.168.77.0/255.255.255.0
useragent=VerySecureSipServer
realm=vsss
disallow=all
allow=alaw
allow=ilbc
rtcachefriends=yes
rtautoclear=600
rtsavesysname=yes
bindaddr=0.0.0.0:5857

[server2]
host=10.0.0.5
type=friend
port=5857
secret=A123456!
transport=udp
insecure=invite,port
encryption=no
context=from-internal


Настройки на Server2:
[general]
static=yes
language=ru
alwaysauthreject=yes
context=default
allowguest=no
tcpenable=no
tlsenable=yes
tlscafile=/etc/asterisk/keys/ca.pem
tlscertfile=/etc/asterisk/keys/asterisk.pem
tlsbindaddr=0.0.0.0
transport=tls
rtptimeout=60
directmedia=no0
encryption=yes
nat=yes
canreinvite=no
localnet=10.0.0.0/255.255.255.0
localnet=192.168.77.0/255.255.255.0
useragent=VerySecureSipServer
realm=vsss
disallow=all
allow=alaw
allow=ilbc
rtcachefriends=yes
rtautoclear=600
rtsavesysname=yes
bindaddr=0.0.0.0:5857

[server1]
host=10.0.0.4
type=friend
port=5857
secret=A123456!
transport=udp
insecure=invite,port
encryption=no
context=from-internal


Лог звонка на Server1(Звоним с 1001 на номер 1002 через sip-транк):
[Jan 2 17:42:03] VERBOSE[1819] pbx_realtime.c: -- Executing [s@macro-dial-internal-to-internal:22] Dial("SIP/1001-00000000", "SIP/server2/1002")
[Jan 2 17:42:03] VERBOSE[1819] netsock2.c: == Using SIP RTP CoS mark 5
[Jan 2 17:42:03] VERBOSE[1819] app_dial.c: -- Called SIP/server2/1002
[Jan 2 17:42:03] NOTICE[1802] chan_sip.c: Failed to authenticate on INVITE to '"1001" ;tag=as380e9680'
[Jan 2 17:42:03] VERBOSE[1819] app_dial.c: -- SIP/server2-00000002 is circuit-busy


На Server2 пусто.

Теперь с sip дебагом.
Лог звонка на Server1:
[Jan 2 17:48:13] VERBOSE[1833] pbx_realtime.c: -- Executing [s@macro-dial-internal-to-internal:22] Dial("SIP/1001-00000003", "SIP/server2/1002")
[Jan 2 17:48:13] VERBOSE[1833] netsock2.c: == Using SIP RTP CoS mark 5
[Jan 2 17:48:13] VERBOSE[1833] chan_sip.c: Audio is at 57082
[Jan 2 17:48:13] VERBOSE[1833] chan_sip.c: Adding codec 0x8 (alaw) to SDP
[Jan 2 17:48:13] VERBOSE[1833] chan_sip.c: Adding codec 0x400 (ilbc) to SDP
[Jan 2 17:48:13] VERBOSE[1833] chan_sip.c: Adding non-codec 0x1 (telephone-event) to SDP
[Jan 2 17:48:13] VERBOSE[1833] chan_sip.c: Reliably Transmitting (NAT) to 10.0.0.5:5857:
INVITE sip:1002@10.0.0.5:5857 SIP/2.0
Via: SIP/2.0/UDP 10.0.0.4:5857;branch=z9hG4bK3fa27566;rport
Max-Forwards: 70
From: "1001" ;tag=as43c29f42
To:
Contact:
Call-ID: 1ba7486839ca5ca0765660b91463d6bb@10.0.0.4:5857
CSeq: 102 INVITE
User-Agent: VerySecureSipServer
Date: Wed, 02 Jan 2013 13:48:13 GMT
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH
Supported: replaces, timer
Content-Type: application/sdp
Content-Length: 272

v=0
o=root 386280923 386280923 IN IP4 10.0.0.4
s=Asterisk PBX 1.8.16.0
c=IN IP4 10.0.0.4
t=0 0
m=audio 57082 RTP/AVP 8 97 101
a=rtpmap:8 PCMA/8000
a=rtpmap:97 iLBC/8000
a=fmtp:97 mode=30
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=ptime:20
a=sendrecv

---
[Jan 2 17:48:13] VERBOSE[1833] app_dial.c: -- Called SIP/server2/1002
[Jan 2 17:48:13] VERBOSE[1802] chan_sip.c:


SIP/2.0 401 Unauthorized
Via: SIP/2.0/UDP 10.0.0.4:5857;branch=z9hG4bK3fa27566;received=10.0.0.4;rport=5857
From: "1001" ;tag=as43c29f42
To: ;tag=as70eca72c
Call-ID: 1ba7486839ca5ca0765660b91463d6bb@10.0.0.4:5857
CSeq: 102 INVITE
Server: VerySecureSipServer
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH
Supported: replaces, timer
WWW-Authenticate: Digest algorithm=MD5, realm="vsss", nonce="6f894d81"
Content-Length: 0


[Jan 2 17:48:13] VERBOSE[1802] chan_sip.c: --- (11 headers 0 lines) ---
[Jan 2 17:48:13] VERBOSE[1802] chan_sip.c: Transmitting (NAT) to 10.0.0.5:5857:
ACK sip:1002@10.0.0.5:5857 SIP/2.0
Via: SIP/2.0/UDP 10.0.0.4:5857;branch=z9hG4bK3fa27566;rport
Max-Forwards: 70
From: "1001" ;tag=as43c29f42
To: ;tag=as70eca72c
Contact:
Call-ID: 1ba7486839ca5ca0765660b91463d6bb@10.0.0.4:5857
CSeq: 102 ACK
User-Agent: VerySecureSipServer
Content-Length: 0


---
[Jan 2 17:48:13] NOTICE[1802] chan_sip.c: Failed to authenticate on INVITE to '"1001" ;tag=as43c29f42'
[Jan 2 17:48:13] VERBOSE[1833] app_dial.c: -- SIP/server2-00000005 is circuit-busy


В это же время лог на Server2:
[Jan 2 17:48:15] VERBOSE[1868] chan_sip.c:

INVITE sip:1002@10.0.0.5:5857 SIP/2.0
Via: SIP/2.0/UDP 10.0.0.4:5857;branch=z9hG4bK3fa27566;rport
Max-Forwards: 70
From: "1001" ;tag=as43c29f42
To:
Contact:
Call-ID: 1ba7486839ca5ca0765660b91463d6bb@10.0.0.4:5857
CSeq: 102 INVITE
User-Agent: VerySecureSipServer
Date: Wed, 02 Jan 2013 13:48:13 GMT
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH
Supported: replaces, timer
Content-Type: application/sdp
Content-Length: 272

v=0
o=root 386280923 386280923 IN IP4 10.0.0.4
s=Asterisk PBX 1.8.16.0
c=IN IP4 10.0.0.4
t=0 0
m=audio 57082 RTP/AVP 8 97 101
a=rtpmap:8 PCMA/8000
a=rtpmap:97 iLBC/8000
a=fmtp:97 mode=30
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=ptime:20
a=sendrecv

[Jan 2 17:48:15] VERBOSE[1868] chan_sip.c: --- (14 headers 13 lines) ---
[Jan 2 17:48:15] VERBOSE[1868] chan_sip.c: Sending to 10.0.0.4:5857 (NAT)
[Jan 2 17:48:15] VERBOSE[1868] chan_sip.c: Using INVITE request as basis request - 1ba7486839ca5ca0765660b91463d6bb@10.0.0.4:5857
[Jan 2 17:48:15] VERBOSE[1868] chan_sip.c: Found peer '1001' for '1001' from 10.0.0.4:5857
[Jan 2 17:48:15] VERBOSE[1868] chan_sip.c:

SIP/2.0 401 Unauthorized
Via: SIP/2.0/UDP 10.0.0.4:5857;branch=z9hG4bK3fa27566;received=10.0.0.4;rport=5857
From: "1001" ;tag=as43c29f42
To: ;tag=as70eca72c
Call-ID: 1ba7486839ca5ca0765660b91463d6bb@10.0.0.4:5857
CSeq: 102 INVITE
Server: VerySecureSipServer
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH
Supported: replaces, timer
WWW-Authenticate: Digest algorithm=MD5, realm="vsss", nonce="6f894d81"
Content-Length: 0



[Jan 2 17:48:15] VERBOSE[1868] chan_sip.c: Scheduling destruction of SIP dialog '1ba7486839ca5ca0765660b91463d6bb@10.0.0.4:5857' in 32000 ms (Method: INVITE)
[Jan 2 17:48:15] VERBOSE[1868] chan_sip.c:

ACK sip:1002@10.0.0.5:5857 SIP/2.0
Via: SIP/2.0/UDP 10.0.0.4:5857;branch=z9hG4bK3fa27566;rport
Max-Forwards: 70
From: "1001" ;tag=as43c29f42
To: ;tag=as70eca72c
Contact:
Call-ID: 1ba7486839ca5ca0765660b91463d6bb@10.0.0.4:5857
CSeq: 102 ACK
User-Agent: VerySecureSipServer
Content-Length: 0


[Jan 2 17:48:15] VERBOSE[1868] chan_sip.c: --- (10 headers 0 lines) ---


Буду рад, если подскажете, в чем проблема и что почитать дополнительно.
#28

судя по настройкам вы советами не пользуетесь.
#29

Простите, а о каких конкретно настройках вы говорите? Перечитал, и вроде на все настройки, которые предлагали, я пробовал и отписывался, что не помогает, и ничего не меняется. Или что-то пропустил?
#30

Предлагали убрать invite оставить только port, сменить тип - за место friend, peer.
#31

Да, я это делал все, и отписывался, что ничего не поменялось.
#32

Скажите - а не забываете делать sip reload после изменений? Если честно - задача решается за 5 минут!!!!! Просто надо голову включить Smile
_________________
P4 3.0 + 1Gb CentOS 5.8 Aster 1.8.16
Не люблю gui-сборки: натуральный продукт вкуснее.
И еще: я ПРОФИ так как НЕ ЛЕНЮСЬ читать литературу.
#33

Да, я делал "sip reload". Может я чего то не понимаю.
Понимаете, проблема в том, что если я использую одну таблицу MySQL с пользователями, то получаю вышеописанную ошибку. Но если я одного пользователя пропишу в sip.conf на Server1, а второго пользователя на Server2, с такими же параметрами как в таблице, и не меняя настроек sip-транка, то звонок проходит(!!!).
Но если обоих пользователей вписать в sip.conf на каждый сервер(получатеся, каждый сервер имеет одинаковых peer-ов), и не использовать таблицу MySQL, то я получаю такую же ошибку.
Соответственно вопрос, можете ли вы предоставить рабочий конфиг для серверов, с 2-мя одинаковыми пользователями на каждом сервере и sip-транком, чтобы 1 пользователь регистрировался на 1 сервере, а 2 пользователь регистрировался на втором сервере, и они могли бы звонить друг другу?
#34

Подозреваю что все таки проблема не с базой mysql, и даже не с настройкой сервера.
Скорее всего что-то в диал плане, под подозрением поиск пользователя - разделите пользователей не 1001 и 1002, а сделайте 1001 и 2001
И тогда на одном 1 сервере где зарегистрирован 1001, звонок на другой сервер пойдет через
_2XXX,1,Dial(SIP/Server2/${EXTEN})
И соотвественно на 2 сервере где будет зарегистрировани 2001, звонок на вервер 1 пойдет через
_1XXX,1,Dial(SIP/Server1/${EXTEN})
#35

Не факт насчет пользователей - у ТС не проходит авторизация, которая НАФИГ ему не нужна. Он пытается серверами 1 и 2 авторизоваться- тут уж искать траблы в асторизации-настройках.
_________________
P4 3.0 + 1Gb CentOS 5.8 Aster 1.8.16
Не люблю gui-сборки: натуральный продукт вкуснее.
И еще: я ПРОФИ так как НЕ ЛЕНЮСЬ читать литературу.
#36

Не получается ли у вас такой ситуации, что host у нужного пользователя совпадает с host-ом сервера?
Сталкивался несколько раз с подобной ситуацией, когда один из старых пиров оставался мусором в конфиге, а новый добавленный с тем же IP адресом работать отказывался из-за авторизации.

_________________
IT Logic, разработка CRM систем, Call центры, сложные VoIP решения, телефонизация под ключ.
#37

Не совсем понял вопроса. Если имеется ввиду совпадение IP peer-а и сервера, то в логах так и есть, при отправке INVITE с одного сервера, на другой, сервер, который отправляет INVITE, подставляет свой IP.
Или я вас не понял.
По поводу "мусора".
Вы имеете ввиду, что на серверах имеется одинаковые peer-ы (т.е. на обоих серверах и 1001, и 1002) в настройках, то наверно так и есть, только используется не sip.conf, а таблица sippeers в MySQL. Я описал подобную ситуацию чуть выше. И как такая ситуация решается?
Если я вас неправильно понял, не могли бы вы описать по подробней?
#38

Вопрос - при чем тут INVITE??????? Вы понимаете понятие авторизации по порту-разрешениямIP-....
У одного моего заказчика было 3 сервера с учеткамии 1001 - но все звонки между ними летали. Одно но - звонок с сервера 1 номера 1001 в биллинге сервера 2 трактовался как .... звонок с сервера 2 на сервер 2!!!! Вот и вся засада.

_________________
P4 3.0 + 1Gb CentOS 5.8 Aster 1.8.16
Не люблю gui-сборки: натуральный продукт вкуснее.
И еще: я ПРОФИ так как НЕ ЛЕНЮСЬ читать литературу.
#39

Наверно и не причем, поэтому я и написал вначале , что не понял вопроса.
Что такое "авторизация по порту-разрешениямIP" - представляю.
#40

esavin @ Сб Янв 05, 2013 11:29 писал(а):
И как такая ситуация решается?
Если я вас неправильно понял, не могли бы вы описать по подробней?

Как такая ситуация решается я не знаю, т.к. надо глубоко вникать в суть вашей проблемы.
Я лишь попытался дать направление для размышления, посмотрите дамп SIP трафика, может быть asterisk запрос воспринимает не от того пира от которого вы хотите.

_________________
IT Logic, разработка CRM систем, Call центры, сложные VoIP решения, телефонизация под ключ.
#41

Всем спасибо за помощь.
Решил проблему.
Чтение исходников привело к мысли, что надо убрать пароль в настройках транка, и добавить параметр fromuser.
Получилось следующая настройка транка на Server2:
[server1]
host=192.168.1.12
type=friend
transport=udp
fromuser=server2
fromdomain=192.168.1.13
qualify=yes
encryption=no
context=from-internal


Звонок проходит, работает как надо.