<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style>
</head>
<body lang="EN-US" link="blue" vlink="purple" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal">Mickael,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">The PAI header is not just a parameter list, so you can’t use that transformation directly. The PAI header follows the name-addr spec and the params are part of the URI. So it would be something like one of the following.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">$(ai{uri.param,privacy}) [1]<o:p></o:p></p>
<p class="MsoNormal">$(ai{nameaddr.param, privacy}) [2]<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">You may even have to combine the two if the parameters are associated with the uri in the name-addr:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">$(ai{nameaddr.uri}{uri.param,privacy})<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">You should try printing out things like $(ai{nameaddr.uri}) or $(ai{uri.params}) to see what you get and help narrow down where the parameters are located. I always get confused by uri params vs host params vs name-addr params.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I will point out that the P-Asserted-Identity spec doesn’t actually define a privacy parameter like this. Privacy for PAI is indicated by the Privacy header, which is a separate header. For indicating privacy of the PAI header contents,
 the Privacy header should have a value of “id”. In fact, these parameters all seem to be ones typically used with the Remote-Party-ID (RPID) header, not the PAI header. [3] [4] [5]<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">You can check the presence and value of the Privacy header with something like this:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">if (is_present_hf("Privacy") && ($hdr(Privacy) =~ "id|user")) {<o:p></o:p></p>
<p class="MsoNormal">  // do stuff<o:p></o:p></p>
<p class="MsoNormal">}<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">[1] <a href="https://www.opensips.org/Documentation/Script-Tran-3-2#toc38">
https://www.opensips.org/Documentation/Script-Tran-3-2#toc38</a><o:p></o:p></p>
<p class="MsoNormal">[2] <a href="https://www.opensips.org/Documentation/Script-Tran-3-2#toc70">
https://www.opensips.org/Documentation/Script-Tran-3-2#toc70</a><o:p></o:p></p>
<p class="MsoNormal">[3] <a href="https://datatracker.ietf.org/doc/html/rfc3325">
https://datatracker.ietf.org/doc/html/rfc3325</a><o:p></o:p></p>
<p class="MsoNormal">[4] <a href="https://datatracker.ietf.org/doc/html/rfc3323">
https://datatracker.ietf.org/doc/html/rfc3323</a><o:p></o:p></p>
<p class="MsoNormal">[5] <a href="https://datatracker.ietf.org/doc/html/draft-ietf-sip-privacy-04">
https://datatracker.ietf.org/doc/html/draft-ietf-sip-privacy-04</a><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span style="color:black">Ben Newlin </span><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal" style="margin-bottom:12.0pt"><b><span style="font-size:12.0pt;color:black">From:
</span></b><span style="font-size:12.0pt;color:black">Users <users-bounces@lists.opensips.org> on behalf of Mickael MONSIEUR <mickael.monsieur@gmail.com><br>
<b>Date: </b>Monday, November 29, 2021 at 9:32 AM<br>
<b>To: </b>OpenSIPS users mailling list <users@lists.opensips.org><br>
<b>Subject: </b>Re: [OpenSIPS-Users] Parse P-Asserted-Identity<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt">No more result with:<br>
xlog("L_NOTICE","P-Asserted-Identity param =<br>
$(hdr(P-Asserted-Identity){param.value,privacy})\n");<br>
<br>
Nov 29 14:17:13 [16103] P-Asserted-Identity param = <null><br>
<br>
Le lun. 29 nov. 2021 à 13:44, Mickael MONSIEUR<br>
<mickael.monsieur@gmail.com> a écrit :<br>
><br>
> Hello,<br>
><br>
> xlog("L_NOTICE","P-Asserted-Identity params = $(ai{param.value,privacy})\n");<br>
><br>
> Nov 29 13:43:34 [15988] P-Asserted-Identity params = <null><br>
><br>
> Le lun. 29 nov. 2021 à 13:32, David Villasmil<br>
> <david.villasmil.work@gmail.com> a écrit :<br>
> ><br>
> > <a href="https://www.opensips.org/Documentation/Script-Tran-2-4#toc60">
https://protect-us.mimecast.com/s/UcAGC2k19lfq1Q7xUn5156?domain=opensips.org</a><br>
> ><br>
> > Regards,<br>
> ><br>
> > David Villasmil<br>
> > email: david.villasmil.work@gmail.com<br>
> > phone: +34669448337<br>
> ><br>
> ><br>
> > On Mon, Nov 29, 2021 at 12:22 PM Mickael MONSIEUR <mickael.monsieur@gmail.com> wrote:<br>
> >><br>
> >> Hello,<br>
> >><br>
> >> My provider add to my INVITE's :<br>
> >><br>
> >> P-Asserted-Identity: "Anonymous"<br>
> >> <sip:+xxxxxxx@sbc.provider.com>;party=calling;privacy=yes;screen=no<br>
> >><br>
> >> Whether the call should be Anonymized to end-users.<br>
> >><br>
> >> How to get the value of "privacy" ?<br>
> >><br>
> >> I try:<br>
> >><br>
> >> if( $(ai{privacy}) == "yes" )<br>
> >><br>
> >> But it does not work. (error when starting opensips)<br>
> >><br>
> >> Thanks<br>
> >><br>
> >> _______________________________________________<br>
> >> Users mailing list<br>
> >> Users@lists.opensips.org<br>
> >> <a href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users">
https://protect-us.mimecast.com/s/RDxAC31K9mH1qvZ8tq4_Yp?domain=lists.opensips.org</a><br>
> ><br>
> > _______________________________________________<br>
> > Users mailing list<br>
> > Users@lists.opensips.org<br>
> > <a href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users">
https://protect-us.mimecast.com/s/RDxAC31K9mH1qvZ8tq4_Yp?domain=lists.opensips.org</a><br>
<br>
_______________________________________________<br>
Users mailing list<br>
Users@lists.opensips.org<br>
<a href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users">http://lists.opensips.org/cgi-bin/mailman/listinfo/users</a><o:p></o:p></p>
</div>
</div>
</body>
</html>