Пытаюсь подключится к ростелекомскому облаку и все время получаю ошибку 403.
Ростелеком говорит, что в поле Contact неверно указан домен:
Код: Выделить всё
> 0x99683c0 -- Strict RTP learning after remote address set to: 192.168.3.113:10038
-- Executing [140@local:1] Dial("SIP/101-00000010", "SIP/180/8927012345678") in new stack
== Using SIP RTP CoS mark 5
Audio is at 23954
Adding codec ulaw to SDP
Adding codec alaw to SDP
Adding non-codec 0x1 (telephone-event) to SDP
Reliably Transmitting (NAT) to 123.45.249.116:5060:
INVITE sip:8927012345678@123456.17.rt.ru SIP/2.0
Via: SIP/2.0/TCP 192.168.3.71:5060;branch=z9hG4bK379d4ac6;rport
Max-Forwards: 70
From: "admin" <sip:admin@12345.17.rt.ru>;tag=as65bf7d16
To: <sip:8927012345678@782454.17.rt.ru>
Contact: <sip:admin@192.168.3.71:5060;transport=tcp> ; вот эта строчка виновата
Call-ID: 7c64b18e760132286d1aa9864cb403b3@12345.17.rt.ru
CSeq: 102 INVITE
User-Agent: Asterisk PBX 13.38.3
Date: Wed, 08 Sep 2021 09:36:19 GMT
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE
Supported: replaces, timer
Content-Type: application/sdp
Content-Length: 274
Собственно вопрос - а как делать так, чтобы и домен поля контакт поменять, и исходники не пересобирать.
В исходнике домен берется следующим образом:
Код: Выделить всё
if (p->socket.type == AST_TRANSPORT_UDP) {
ast_string_field_build(p, our_contact, "<%s:%s%s%s>", use_sips ? "sips" : "sip",
user, ast_strlen_zero(user) ? "" : "@",
ast_sockaddr_stringify_remote(&p->ourip) // так было
// "12345.17.rt.ru" // а это домен провайдера, если коммент сделать в предыдущей строчке,
// а не в этой, то вызов будет идти
);