Opened 9 years ago

Closed 9 years ago

Last modified 9 years ago

#148 closed баг (fixed)

Неправильный URI в ответе 302

Reported by: alx Owned by: alx
Priority: средний Milestone: Resiprocate proxy/registrar
Component: any Keywords: 302 redirect переадресация
Cc:

Description

При вызове из SIP окончания TDM, у которого установлена переадресация, вызывающему возвращается ответ 302 с неправильным полем Contact: в URI для переадресации указаны внутренние хост и порт 127.0.0.1:6060. В результате вызывающий не может переадресоваться.

10:08:19.530998 IP (tos 0x68, ttl 64, id 3489, offset 0, flags [DF], proto UDP (17), length 1077)
    192.168.0.200.5062 > 192.168.0.69.5060: SIP, length: 1049
        INVITE sip:111@192.168.0.69 SIP/2.0
        Via: SIP/2.0/UDP 192.168.0.200:5062;branch=z9hG4bK240030234
        From: <sip:122@192.168.0.69>;tag=737584821
        To: <sip:111@192.168.0.69>
        Call-ID: 800582554@192.168.0.200
        CSeq: 2 INVITE
        Contact: <sip:122@192.168.0.200:5062>
        Proxy-Authorization: Digest username="122", realm="192.168.0.69", nonce="1447063699:32c78b22f7d1e3b23dc18521daddb1a7", uri="sip:111@192.168.0.69", response="346c2b89c3166d6642ffecff3c62d268", algorithm=MD5, cnonce="0a4f113b", qop=auth, nc=00000001
        Content-Type: application/sdp
        Allow: INVITE, INFO, PRACK, ACK, BYE, CANCEL, OPTIONS, NOTIFY, REGISTER, SUBSCRIBE, REFER, PUBLISH, UPDATE, MESSAGE
        Max-Forwards: 70
        User-Agent: Yealink SIP-T12P 5.60.14.10
        Supported: replaces
        Allow-Events: talk,hold,conference,refer,check-sync
        Content-Length: 237

        v=0
        o=- 20073 20073 IN IP4 192.168.0.200
        s=SDP data
        c=IN IP4 192.168.0.200
        t=0 0
        m=audio 11782 RTP/AVP 8 0 101
        a=rtpmap:8 PCMA/8000
        a=rtpmap:0 PCMU/8000
        a=fmtp:101 0-15
        a=rtpmap:101 telephone-event/8000
        a=ptime:20
        a=sendrecv

10:08:19.628403 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 252)
    192.168.0.69.5060 > 192.168.0.200.5062: SIP, length: 224
        SIP/2.0 100 Trying
        Via: SIP/2.0/UDP 192.168.0.200:5062;branch=z9hG4bK240030234
        To: <sip:111@192.168.0.69>
        From: <sip:122@192.168.0.69>;tag=737584821
        Call-ID: 800582554@192.168.0.200
        CSeq: 2 INVITE
        Content-Length: 0


10:08:19.679495 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 424)
    192.168.0.69.5060 > 192.168.0.200.5062: SIP, length: 396
        SIP/2.0 302 Moved Temporarily
        Via: SIP/2.0/UDP 192.168.0.200:5062;branch=z9hG4bK240030234
        Contact: <sip:2580@127.0.0.1:6060>
        To: <sip:111@192.168.0.69>;tag=226789097
        From: <sip:122@192.168.0.69>;tag=737584821
        Call-ID: 800582554@192.168.0.200
        CSeq: 2 INVITE
        Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, REFER, NOTIFY, INFO
        Server: repro 1.9.10
        User-Agent: eXosip/4.1.0
        Content-Length: 0


10:08:19.693012 IP (tos 0x68, ttl 64, id 3490, offset 0, flags [DF], proto UDP (17), length 277)
    192.168.0.200.5062 > 192.168.0.69.5060: SIP, length: 249
        ACK sip:111@192.168.0.69 SIP/2.0
        Via: SIP/2.0/UDP 192.168.0.200:5062;branch=z9hG4bK240030234
        From: <sip:122@192.168.0.69>;tag=737584821
        To: <sip:111@192.168.0.69>;tag=226789097
        Call-ID: 800582554@192.168.0.200
        CSeq: 2 ACK
        Content-Length: 0

Change History (2)

comment:1 by alx, 9 years ago

Resolution: готово
Status: newclosed

В ua_response_status() добавлена проверка на коды 301 и 302. При ответе с одним из этих кодов поле Contact на локальный IP/port не меняется.

comment:2 by alx, 9 years ago

Resolution: готовоfixed

In 851/sip_ua:

Формирование и отправка CDR перенесены из класса SIPChannel в прокси-сервер. Closes #145.
CDR теперь не endpoint-ориентированные, а connection-ориентированные. На одно соединение
теперь создается одна CDR (даже если это соединения sip-sip или tel-tel).
Для индикации типа канального окончания, в исходящие от шлюза INVITE и ответы на INVITE
добавляется поле X-Endpoint-Type. Значение из этого поля передается в CDR.

В ответах 301 и 302 не исправляется поле Contact. Closes #148.

Note: See TracTickets for help on using tickets.