Pjsip: BLF ringing event not working with pidf+xml

I’m currently testing FreePBX 13 in order to upgrade our FreePBX 3.211 later on.
I found an annoying issue with the pjsip channel driver and my BLF’s:
when a phone rings, the BLF light is off, like the person being called is offline. The same happens with the BLF of the caller, that light switches off also.
This happens when using pidf+xml and only with pjsip. chan_sip is working properly.
(pidf+xml is the only working option for me, as dialog-info+xml does not have an ‘offline’ state.)

I really would like to use the pjsip driver, because with chan_sip I cannot get direct call pickup (**extension) working. That gives timeouts after 6 seconds which I never managed to solve. The pjsip driver does not have this problem.

Anyway, there shouldn’t be any difference between chan_sip and pjsip, but there is.
I’ve created some debug logging which shows a clear difference between chan_sip and psjip:
chan_sip:
set_destination: Parsing <sip:192.168.50.39:5061> for address/port to send to
set_destination: set destination to 192.168.50.39:5061
Reliably Transmitting (no NAT) to 192.168.50.39:5061:
NOTIFY sip:192.168.50.39:5061 SIP/2.0
Via: SIP/2.0/UDP 192.168.50.35:5061;branch=z9hG4bK0368fd5e
Max-Forwards: 70
From: <sip:[email protected]:5061>;tag=as26041eb4
To: <sip:[email protected]:5061>;tag=13931e34a4ef1d0f5417c777994b57e8
Contact: <sip:[email protected]:5061>
Call-ID: ssc-05616c3d98212dcd6114cf80bf46cc97@81b0486b2e05eddb73f707aca52bf8b9
CSeq: 107 NOTIFY
User-Agent: FPBX-13.0.42(13.6.0)
Subscription-State: active
Event: presence
Content-Type: application/pidf+xml
Content-Length: 535
``
<?xml version="1.0" encoding="ISO-8859-1"?>
<presence xmlns="urn:ietf:params:xml:ns:pidf"
xmlns:pp="urn:ietf:params:xml:ns:pidf:person"
xmlns:es="urn:ietf:params:xml:ns:pidf:rpid:status:rpid-status"
xmlns:ep="urn:ietf:params:xml:ns:pidf:rpid:rpid-person"
entity="sip:[email protected]:5061">
<pp:person><status>
<ep:activities><ep:busy/></ep:activities>
</status></pp:person>
<note>Ringing</note>
<tuple id="4609">
<contact priority="1">sip:[email protected]:5061</contact>
<status><basic>open</basic></status>
</tuple>
</presence>

pjsip:
NOTIFY sip:[email protected]:62865 SIP/2.0
Via: SIP/2.0/UDP 192.168.50.35:5060;rport;branch=z9hG4bKPj8znVDkIbcFQLwiyc.LaWLFXYIz5Ryo4p
From: <sip:[email protected]>;tag=CcBvodKOFZwDFh3hkHHSnsWvfZRhRuCS
To: <sip:[email protected]>;tag=1c1c34ffe5ce4fdc5d1734d4056ef0ae
Contact: <sip:192.168.50.35:5060>
Call-ID: ssc-46b931c4e37ff78a48221dab23409e0f@0ba8a5dce96d28f4dbae5b86608e39dc
CSeq: 12076 NOTIFY
Event: presence
Subscription-State: active;expires=1955
Allow-Events: presence, dialog, message-summary, refer
Max-Forwards: 70
User-Agent: FPBX-13.0.42(13.6.0)
Content-Type: application/pidf+xml
Content-Length: 556
``
<?xml version="1.0" encoding="UTF-8"?>
<presence entity="sip:[email protected]:5060" xmlns="urn:ietf:params:xml:ns:pidf"
xmlns:pp="urn:ietf:params:xml:ns:pidf:person" xmlns:es="urn:ietf:params:xml:ns:pidf:rpid:status:rpid-status"
xmlns:ep="urn:ietf:params:xml:ns:pidf:rpid:rpid-person">
<note>Ringing</note>
<tuple id="4606">
<status>
<basic>closed</basic>
</status>
<contact priority="1">&lt;sip:[email protected]&gt;</contact>
</tuple>
<pp:person>
<status>
<ep:activities>ep:busy</ep:activities>
</status>
</pp:person>
</presence>

What kind of phones do you use? Softphones or hardphones, and if it’s a hardphone, what brand?

I am testing with Dialplate currently.
But that’s not important. If you look at the xml, you’ll see for example the xml tag status->basic, where chan_sip and pjsip are having the opposite values.