[asterisk-bugs] [JIRA] (ASTERISK-24376) res_pjsip_refer: REFER request for remote session attempts to direct channel to external_replaces extension instead of context, without providing for the Referred-To SIP URI
Mark Michelson (JIRA)
noreply at issues.asterisk.org
Wed Jan 7 11:39:35 CST 2015
[ https://issues.asterisk.org/jira/browse/ASTERISK-24376?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Mark Michelson closed ASTERISK-24376.
-------------------------------------
Resolution: Fixed
> res_pjsip_refer: REFER request for remote session attempts to direct channel to external_replaces extension instead of context, without providing for the Referred-To SIP URI
> -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: ASTERISK-24376
> URL: https://issues.asterisk.org/jira/browse/ASTERISK-24376
> Project: Asterisk
> Issue Type: Bug
> Security Level: None
> Components: Resources/res_pjsip_refer
> Affects Versions: 12.6.0, 13.0.0-beta2
> Reporter: Matt Jordan
> Assignee: Mark Michelson
>
> Given the following REFER request:
> {noformat}
> <--- Received SIP request (757 bytes) from UDP:132.177.253.60:5060 --->
> REFER sip:6df4b26a-d9ab-4080-8329-db7ac6cf5eb0 at 132.177.253.27:5063 SIP/2.0
> From: <sip:005 at h4.aspect.sipit.net>;tag=3e52d60-0-13c4-6009-40e-1086de4d-40e
> To: "Asterisk 2002"<sip:2002 at 132.177.253.27>;tag=596d5116-93c0-4b71-8d09-cf4f48e1362f
> Call-ID: 52155115-5701-47ee-a9a8-515d3387508f
> CSeq: 2 REFER
> Via: SIP/2.0/UDP 132.177.253.60:5060;rport;branch=z9hG4bK-40f-fdaee-77f9b840-e8ba9f0
> Refer-To: <sip:callxml at 132.177.253.60:5060?Replaces=3320172437-0e2c5300-0e3aabf0-0000000e%40132.177.253.60%3bto-tag%3d3e531d0-0-13c4-6009-40e-44cdcdd1-40e%3bfrom-tag%3d3e52f98-0-13c4-6009-40e-4e8c3410-40e&Require=replaces>
> Max-Forwards: 70
> Supported: 100rel
> Referred-By: sip:callxml at h4.aspect.sipit.net
> Contact: <sip:005 at 132.177.253.60:5060>
> Content-Length: 0
> {noformat}
> In this particular case, the REFER request is attempt to replace a remote dialog with a new URI. Our handling of this is a bit interesting:
> # If the {{TRANSFER_CONTEXT}} is present, use that
> # Otherwise, use the endpoint's context
> # Then attempt to send the channel to the {{external_replaces}} extension in that context
> There are a few problems with this:
> # The {{external_replaces}} extension is unlikely to exist (it's not exactly well known)
> # Even if you create that extension in the appropriate context, it's generally useless. We don't set the destination of the REFER, which should be the URI in the {{Referred-To}} header (in this case, {{sip:callxml at 132.177.253.60:5060}}). This means that {{external_replaces}} can't know where it was supposed to send the channel.
> Plus, the ERROR message is wrong:
> {noformat}
> [Sep 30 04:30:46] ERROR[18918]: res_pjsip_refer.c:663 refer_incoming_attended_request: Received REFER for remote session on channel 'PJSIP/unknown-0000000a' from endpoint 'unknown' but 'external_replaces' context does not exist for handling
> {noformat}
> (It's the extension that's missing, not the context)
> Generally, I think it should be:
> # Use the {{TRANSFER_CONTEXT}} if available
> # Use the endpoint context next
> # See if we have an extension matching the user portion of the {{Referred-To}} header.
> # If so, go there.
> Ideally, we would also have the ability to bypass the dialplan and simply create a new outbound dialog to the SIP URI provided.
--
This message was sent by Atlassian JIRA
(v6.2#6252)
More information about the asterisk-bugs
mailing list