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

Изменение заголовка Contact

Добавлено: 08 сен 2021, 13:03
ukrop
Здравствуйте.
Пытаюсь подключится к ростелекомскому облаку и все время получаю ошибку 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
По совету https://forum.asterisk.ru/viewtopic.php?f=3&t=7419 поменял исходник астериска и в chan_sip.c в функции build_contact вручную вписал свой домен. Вызов успешно прошел.
Собственно вопрос - а как делать так, чтобы и домен поля контакт поменять, и исходники не пересобирать.
В исходнике домен берется следующим образом:

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

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" // а это домен провайдера, если коммент сделать в предыдущей строчке, 
                // а не в этой, то вызов будет идти
         );
УПД: Это я делал в астериске 13. Сейчас скачал версию 18 - там тот-же самый код.

Re: Изменение заголовка Contact

Добавлено: 08 сен 2021, 15:07
Zavr2008
fromdomain и fromuser как раз и делают то что Вам нужно без патчей.

Re: Изменение заголовка Contact

Добавлено: 08 сен 2021, 15:29
ukrop
fromdomain не делает этого (у меня уже установлен, и давно, не помогло)
fromuser = admin меняет пользователя, но если вписать admin@domain.com, то получается contact sip:admin%12domain.com@192.168.3.71 (то есть это считается именем пользователя дальше).

Re: Изменение заголовка Contact

Добавлено: 08 сен 2021, 16:12
amateur
ukrop писал(а):Собственно вопрос - а как делать так, чтобы и домен поля контакт поменять, и исходники не пересобирать.
Сделать патч не таким прямолинейным, а немного посложнее. Например, добавить конфигурационную опцию contactdomain и копировать ее значение в заголовок Contact если она имеет не пустое значение.

Re: Изменение заголовка Contact

Добавлено: 08 сен 2021, 16:20
Zavr2008
fromdomain не делает этого
sip конфиг покажите.

Re: Изменение заголовка Contact

Добавлено: 08 сен 2021, 16:52
amateur
ukrop писал(а):fromdomain не делает этого
Конечно не делает. Вы же сами видите, что в функции build_contact значение domain берется только из p->ourip, которое может быть только IP-адресом. Других вариантов, насколько я вижу, в коде chan_sip не предусмотрено.

Re: Изменение заголовка Contact

Добавлено: 08 сен 2021, 17:03
ukrop
Вот такой сейчас конфиг: https://pastebin.com/7E3FuwVf
ip адреса и прочее такое все верно вроде проставлено (ну я тут их убрал).

Re: Изменение заголовка Contact

Добавлено: 08 сен 2021, 17:04
ukrop
amateur писал(а):Сделать патч не таким прямолинейным, а немного посложнее. Например, добавить конфигурационную опцию contactdomain и копировать ее значение в заголовок Contact если она имеет не пустое значение.
:)
Ну я все-таки надеюсь, что сейчас меня ткнут носом в ответ вида "да вот тут впиши хрень и читай мануалы".

Re: Изменение заголовка Contact

Добавлено: 08 сен 2021, 17:45
Zavr2008
Читайте разницу между type=friend и type=peer.
ТС, ждем конфиг sip пира.

Re: Изменение заголовка Contact

Добавлено: 09 сен 2021, 10:13
ukrop
Читайте разницу между type=friend и type=peer.
Пробовал менять, в поле контакт ничего не менялось (как мне кажется). Разницы тоже не заметил в плане успешности коннекта.
ТС, ждем конфиг sip пира.
В смысле то, что дал провайдер? Там логин (admin, пароль и домен 12345.17.rt.ru). Если ввести в зоипер это, то все работает.
Если нужен конфиг тилифона на столе - то просто логин 101 и пароль 1234568. Внутри атс все звонит во все стороны нормально.