<div dir="ltr"><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:large">Hello,<br><br>I have a problem with BLF (Busy Lamp Fields, i.e. dialog events) on Yealink T41S: the key status (green or blinking red) freezes when calling a user to which we SUBSCRIBEd. It freezes until the subscription expires.<br><br>Using sngrep, I was able to see that some NOTIFYs get a timeout (they are sent 3 times)  because the phone doesn't reply (200 OK). These NOTIFY seem to have in common the fact that the caller is the SUBSCRIBEd Yealink user.<br><br>Example on NOTIFY body:<span class="gmail-im" style="color:rgb(80,0,80)"><br><?xml version="1.0"?><br><dialog-info xmlns="urn:ietf:params:xml:ns:dialog-info" version="4" state="full" entity="<a href="mailto:sip%3Acallee@sip.com" target="_blank">sip:callee@sip.com</a>"><br>  <dialog id="<a href="mailto:5_2630032430@11.202.138.255" target="_blank">5_2630032430@11.202.138.255</a>" call-id="<a href="mailto:5_2630032430@11.202.138.255" target="_blank">5_2630032430@11.202.138.255</a>" direction="recipient"><br>    <state>confirmed</state><br>    <remote><br>      <identity><a href="http://sip:caller@sip.com:5060/" target="_blank">sip:caller@sip.com:5060</a></identity><br>      <target uri="<a href="http://sip:caller@11.202.138.255:5060/" target="_blank">sip:caller@11.202.138.255:5060</a>"/><br>    </remote><br>    <local><br>      <identity><a href="http://sip:callee@sip.com:5060/" target="_blank">sip:callee@sip.com:5060</a></identity><br>      <target uri="<a href="http://sip:callee@sip.com:5060/" target="_blank">sip:callee@sip.com:5060</a>"/><br>    </local><br>  </dialog><br></dialog-info><br></span><a href="mailto:caller@sip.com" target="_blank">caller@sip.com</a> subscribed to <a href="mailto:callee@sip.com" target="_blank">callee@sip.com</a> and then called it.<span class="gmail-im" style="color:rgb(80,0,80)"><br><br>I wasn't able to find a solution with the current implementation, for example presence_dialoginfo/force_single_dialog = 1 doesn't help.<br></span>I come with a setting modparam("presence", "dont_notify_subscribed_caller", 1) that, if enabled, doesn't NOTIFY a subscriber if this one is the caller itself. It does this by validating remote and local elements in the xml body of the NOTIFY message against the message target.<br><br>Is there a better solution?<br><br>The technical questions:<br>1. I verify the sender in the function notify(..) by analyzing the dialog's event xml body. Is there a more direct method, not passing by this xml? </div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:large">modparam("pua_dialoginfo", "include_localremote", 0) - might be missing, but it's not relevant<span class="gmail-im" style="color:rgb(80,0,80)"><br></span>2. I would have preferred a flag-like solution: but how to flag (refuse) a NOTIFY message that doesn't even pass by the configuration script? For example, I could activate that flag for a SUBSCRIBE coming from "User-Agent: Yealink SIP-T41S".<br>3. I am using xml_utils.h, so libser_cds, libser_presence, but is this alright? I had to modify their Makefiles for the build to succeed, this gets new dependencies in presence.so ...<br>4. I verify only that dialog-info/remote & local/identity is not the one of the recipient (the subscriber) and, if so, I stop the notification ... Because the message could contain multiple dialogs, this technique is not enough: removing parts of the dialog is necessary.<br><br>Thank you,<br>Liviu<br></div></div>