The answer to this is actually pretty simple: adding Referred-By in
outgoing SIP REFERs is simply not implemented in chan_pjsip's
chan_pjsip_transfer() function.
As far as the syntax required for the Transfer() application, that's
probably a case where that needs to be clarified in documentation. There
are lots of places in PJSIP configuration where we require full SIP URIs
rather than just IP addresses or bare URIs (user@domain).
On 08/25/2015 10:00 AM, Dan Cropp wrote:
I asked the question on asterisk–users but did not receive a response,
so I am sending the question here.
I am running Asterisk 13.5.0.
A call comes in, Asterisk answers it. After some actions, the call
needs to be Transferred (SIP REFER) to another number. The other
switch is responsible for accepting the Transfer and tromboning the
lines internally. It will also send a BYE so Asterisk no longer has
the call.
The behavior works when I have the endpoint configured at chan_sip.
It does not work when the endpoint is configured as PJSIP. I worked
with the other switch vendor and he determined chan_sip includes the
Referred-By header. PJSIP does not include the Referred-By header.
The other switch requires the Referred-By header to be present.
I tried setting the channel’s SIPREFERREDBYHDR variable before the
Transfer command and that still did not force the Referred-By header
to be part of the REFER packet.
I tried the PJSIP_HEADER add and it still did not add the Referred-By
header to the REFER packet.
Is there a PJSIP setting to force the Referred-By to be part of the
REFER packet?
chan_sip (succeeds)
19:27:32.512123 IP (tos 0x0, ttl 64, id 11492, offset 0, flags [none],
proto UDP (17), length 630)
192.168.xxx.xxx.sip > 192.168.yyy.yyy.sip: SIP, length: 602
REFER sip:[email protected]:5060 SIP/2.0
Via: SIP/2.0/UDP 192.168.xxx.xxx:5060;branch=z9hG4bK58f4bd1d
Max-Forwards: 70
From: <sip:[email protected]>;tag=as44000cf4
To: <sip:[email protected]>;tag=7Iy0JkwDC
Contact: <sip:[email protected]:5060>
Call-ID: [email protected]
<mailto:[email protected]>
CSeq: 102 REFER
User-Agent: Asterisk PBX 13.5.0
Date: Thu, 20 Aug 2015 19:27:32 GMT
Refer-To: <sip:[email protected]>
Referred-By: <sip:[email protected]:5060>
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE,
NOTIFY, INFO, PUBLISH, MESSAGE
Supported: replaces, timer
Content-Length: 0
Pjsip
18:46:58.386372 IP (tos 0x0, ttl 64, id 38690, offset 0, flags [DF],
proto UDP (17), length 654)
192.168.xxx.xxx.sip > 192.168.yyy.yyy.sip: SIP, length: 626
REFER sip:[email protected]:5060 SIP/2.0
Via: SIP/2.0/UDP
192.168.xxx.xxx:5060;rport;branch=z9hG4bKPjec41c3b9-d734-482d-82c1-2a6f8d9452a3
From:
<sip:[email protected]>;tag=3c10f423-e468-42ea-87a1-658ae106581c
To: <sip:[email protected]>;tag=WITKDakt
Contact: <sip:192.168.xxx.xxx:5060>
Call-ID: [email protected]
<mailto:[email protected]>
CSeq: 981 REFER
Event: refer
Expires: 600
Supported: 100rel, timer, replaces, norefersub
Accept: message/sipfrag;version=2.0
Allow-Events: message-summary, presence, dialog, refer
Refer-To: <sip:[email protected]>
Max-Forwards: 70
User-Agent: Asterisk PBX 13.5.0
Content-Length: 0
One other slight oddity.
To get chan_sip to Transfer
[email protected] <mailto:[email protected]>
To get PJSIP to Transfer with the correct Refer-To header, I had to
include the <> and sip:
<_sip:[email protected].__yyy_>
Have a great day!
Dan
--
_____________________________________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --
asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
http://lists.digium.com/mailman/listinfo/asterisk-dev