[Home]

Summary:ASTERISK-29955: chan_sip: SIP route header is missing on UPDATE
Reporter:Mark Petersen (asterisk.org@zombie.dk)Labels:
Date Opened:2022-03-07 08:10:50.000-0600Date Closed:2022-04-26 16:46:35
Priority:MinorRegression?
Status:Closed/CompleteComponents:Channels/chan_sip/General Channels/chan_sip/Transfers
Versions:16.24.1 18.10.1 Frequency of
Occurrence
Constant
Related
Issues:
Environment:Attachments:( 0) lunken.pcap
Description:if Asterisk need to send an UPDATE before answer on a channel that uses Record-Route: it will not include a Route header

how to reproduce:
A call B
B put A on HOLD
B call C
C send 180 Ringing with a Record-Route header
B refer A to C (while C is still ringing)

note only newer phone will send the refer with the unanswered channel of C

bug introduced with ASTERISK-24628
that is trying to prevent set_destination from being set,
but inadvertently also prevents add_route from being set
Comments:By: Asterisk Team (asteriskteam) 2022-03-07 08:10:51.283-0600

Thanks for creating a report! The issue has entered the triage process. That means the issue will wait in this status until a Bug Marshal has an opportunity to review the issue. Once the issue has been reviewed you will receive comments regarding the next steps towards resolution. Please note that log messages and other files should not be sent to the Sangoma Asterisk Team unless explicitly asked for. All files should be placed on this issue in a sanitized fashion as needed.

A good first step is for you to review the [Asterisk Issue Guidelines|https://wiki.asterisk.org/wiki/display/AST/Asterisk+Issue+Guidelines] if you haven't already. The guidelines detail what is expected from an Asterisk issue report.

Then, if you are submitting a patch, please review the [Patch Contribution Process|https://wiki.asterisk.org/wiki/display/AST/Patch+Contribution+Process].

Please note that once your issue enters an open state it has been accepted. As Asterisk is an open source project there is no guarantee or timeframe on when your issue will be looked into. If you need expedient resolution you will need to find and pay a suitable developer. Asking for an update on your issue will not yield any progress on it and will not result in a response. All updates are posted to the issue when they occur.

Please note that by submitting data, code, or documentation to Sangoma through JIRA, you accept the Terms of Use present at [https://www.asterisk.org/terms-of-use/|https://www.asterisk.org/terms-of-use/].

By: Mark Petersen (asterisk.org@zombie.dk) 2022-03-07 08:18:03.617-0600

SIP trace of failed Transfer

By: Friendly Automation (friendly-automation) 2022-04-26 16:46:35.799-0500

Change 18189 merged by Kevin Harwell:
chan_sip: SIP route header is missing on UPDATE

[https://gerrit.asterisk.org/c/asterisk/+/18189|https://gerrit.asterisk.org/c/asterisk/+/18189]

By: Friendly Automation (friendly-automation) 2022-04-26 16:47:22.864-0500

Change 18453 merged by Kevin Harwell:
chan_sip: SIP route header is missing on UPDATE

[https://gerrit.asterisk.org/c/asterisk/+/18453|https://gerrit.asterisk.org/c/asterisk/+/18453]

By: Friendly Automation (friendly-automation) 2022-04-26 16:47:22.865-0500

Change 18452 merged by Kevin Harwell:
chan_sip: SIP route header is missing on UPDATE

[https://gerrit.asterisk.org/c/asterisk/+/18452|https://gerrit.asterisk.org/c/asterisk/+/18452]

By: Friendly Automation (friendly-automation) 2022-04-26 16:48:16.147-0500

Change 18454 merged by Kevin Harwell:
chan_sip: SIP route header is missing on UPDATE

[https://gerrit.asterisk.org/c/asterisk/+/18454|https://gerrit.asterisk.org/c/asterisk/+/18454]

By: Joshua C. Colp (jcolp) 2022-04-27 11:51:21.473-0500

[~asterisk.org@zombie.dk] The tests accompanying these appear to be failing when run in the testsuite. Are you going to look into this? If not then we'll need to revert the changes.

From the PJSIP test in Jenkins (https://jenkins2.asterisk.org/job/Asterisk%20Gates/job/19/447/artifact/tests/CI/output/pjsip2/logs/channels/pjsip/transfers/attended_transfer/nominal/callee_local_semi_attended_transfer_record_route/run_1/ast1/var/log/asterisk/full.txt):

{noformat}
[Apr 27 16:11:15] ERROR[1604] pjproject:       sip_transport.c Error processing 649 bytes packet from UDP 127.0.0.1:5068 : PJSIP syntax error exception when parsing 'Record-Route' header on line 3 col 15:
INVITE sip:alice@127.0.0.1:5060 SIP/2.0
Via: SIP/2.0/UDP 127.0.0.1:5068;branch=z9hG4bK-1676-1-1
Record-Route: <sip:127.0.0.1:5068;transport=UDP;lr>
From: sipp <sip:alice@127.0.0.1:5068>;tag=1676SIPpTag001
To: sut <sip:alice@127.0.0.1:5060>
Call-ID: 1-1676@127.0.0.1
CSeq: 1 INVITE
Allow: INVITE, ACK, CANCEL, BYE, NOTIFY, REFER, OPTIONS, UPDATE, PRACK, SUBSCRIBE, INFO
Contact: sip:alice@127.0.0.1:5068
Max-Forwards: 70
Subject: Performance Test
Content-Type: application/sdp
Content-Length:   130

v=0
o=user1 53655765 2353687637 IN IP4 127.0.0.1
s=-
c=IN IP4 127.0.0.1
t=0 0
m=audio 43836 RTP/AVP 0
a=rtpmap:0 PCMU/8000

-- end of packet.
{noformat}

The chan_sip one is along the same lines. It could be a difference in SIPp version. Which were you using?

By: Michael Bradeen (mbradeen) 2022-04-27 19:03:40.437-0500

Potential fix for escape characters up: https://gerrit.asterisk.org/c/testsuite/+/18417