<div dir="ltr">Ovidiu,<div><br></div><div>That makes sense.  If you&#39;re right, this feature has never worked?  <a href="https://github.com/OpenSIPS/opensips/issues/134">Ticket</a> submitted (#134).  Thanks for your help.</div>
<div><br></div><div><br></div><div>- Jeff</div><div><br></div><div class="gmail_extra">
<br><br><div class="gmail_quote">On Tue, Nov 19, 2013 at 12:18 PM, Ovidiu Sas <span dir="ltr">&lt;<a href="mailto:osas@voipembedded.com" target="_blank">osas@voipembedded.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I think this is something that will require some coding ...<br>
There are two tm transactions:<br>
 - a UAS transaction for the received INVITE;<br>
 - a UAC transaction for the newly generated INVITE.<br>
<br>
The AVPs are stored by the first tm transaction and invisible for the<br>
second tm transaction.<br>
The authentication is happening on the second tm transaction and since<br>
the AVPs are invisible, the authentication cannot be performed.<br>
The parameter based authentication credentials are visible on both<br>
transactions and therefor the authentication process is successful.<br>
<br>
Again, this is what I think ... I haven&#39;t had a chance to check the<br>
code in detail.<br>
Best thing to do is open a bug report.<br>
<br>
Regards,<br>
Ovidiu Sas<br>
<div class="HOEnZb"><div class="h5"><br>
On Mon, Nov 18, 2013 at 9:37 PM, Jeff Pyle &lt;<a href="mailto:jpyle@fidelityvoice.com">jpyle@fidelityvoice.com</a>&gt; wrote:<br>
&gt; Yes:<br>
&gt;<br>
&gt; # ----- tm params -----<br>
&gt; modparam(&quot;tm&quot;, &quot;fr_timer&quot;, 2)<br>
&gt; modparam(&quot;tm&quot;, &quot;fr_inv_timer&quot;, 118)<br>
&gt; modparam(&quot;tm&quot;, &quot;disable_6xx_block&quot;, 1)<br>
&gt; modparam(&quot;tm&quot;, &quot;restart_fr_on_each_reply&quot;, 0)<br>
&gt; modparam(&quot;tm&quot;, &quot;onreply_avp_mode&quot;, 1)<br>
&gt;<br>
&gt;<br>
&gt; - Jeff<br>
&gt;<br>
&gt;<br>
&gt; On Mon, Nov 18, 2013 at 7:36 PM, Ovidiu Sas &lt;<a href="mailto:osas@voipembedded.com">osas@voipembedded.com</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; Did you set the onreply_avp_mode for tm:<br>
&gt;&gt; <a href="http://www.opensips.org/html/docs/modules/devel/tm.html#id293972" target="_blank">http://www.opensips.org/html/docs/modules/devel/tm.html#id293972</a><br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; On Monday, November 18, 2013, Jeff Pyle wrote:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; It&#39;s 1.10 pulled from git a few hours ago.  Debian 7 64-bit.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; The AVPs are set prior to calling the b2b scenario:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; modparam(&quot;uac_auth&quot;,&quot;auth_realm_avp&quot;,   &quot;$avp(auth_realm)&quot;)<br>
&gt;&gt;&gt; modparam(&quot;uac_auth&quot;,&quot;auth_username_avp&quot;,&quot;$avp(auth_user)&quot;)<br>
&gt;&gt;&gt; modparam(&quot;uac_auth&quot;,&quot;auth_password_avp&quot;,&quot;$avp(auth_pass)&quot;)<br>
&gt;&gt;&gt; #modparam(&quot;uac_auth&quot;,&quot;credential&quot;,&quot;UserName:AuthRealm123:SuperS33cret&quot;)<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; route {<br>
&gt;&gt;&gt;   ...<br>
&gt;&gt;&gt;         $avp(auth_user)  := &quot;UserName&quot;;<br>
&gt;&gt;&gt;         $avp(auth_pass)  := &quot;SuperS33cret&quot;;<br>
&gt;&gt;&gt;         $avp(auth_realm) := &quot;AuthRealm123&quot;;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;         b2b_init_request(&quot;top hiding/t105&quot;);<br>
&gt;&gt;&gt; ...<br>
&gt;&gt;&gt; }<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; debugs:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Nov 18 18:07:55 [26004] DBG:b2b_entities:b2b_tm_cback: Received reply<br>
&gt;&gt;&gt; [407] for dialog [0x7ff941c13268], method [INVITE]<br>
&gt;&gt;&gt; Nov 18 18:07:55 [26004] DBG:tm:t_unref_cell: UNREF_UNSAFE:<br>
&gt;&gt;&gt; [0x7ff941c18448] after is 1<br>
&gt;&gt;&gt; Nov 18 18:07:55 [26004] DBG:b2b_entities:b2b_tm_cback:<br>
&gt;&gt;&gt; dlg=[0x7ff941c13268], uac_tran=NULL<br>
&gt;&gt;&gt; Nov 18 18:07:55 [26004] DBG:core:parse_authenticate_body:<br>
&gt;&gt;&gt; &lt;realm&gt;=&quot;AuthRealm123&quot; state=2<br>
&gt;&gt;&gt; Nov 18 18:07:55 [26004] DBG:core:parse_authenticate_body:<br>
&gt;&gt;&gt; &lt;nonce&gt;=&quot;528a9de900013e5f13fe985df4a9848356a1f937207ecfe4&quot; state=3<br>
&gt;&gt;&gt; Nov 18 18:07:55 [26004] DBG:core:parse_authenticate_body: &lt;qop&gt;=&quot;auth&quot;<br>
&gt;&gt;&gt; state=1<br>
&gt;&gt;&gt; Nov 18 18:07:55 [26004] DBG:b2b_logic:b2bl_parse_key: hash_index = [472]<br>
&gt;&gt;&gt; - local_index= [0]<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; The following (successful) debugs occur if I uncomment the credential<br>
&gt;&gt;&gt; modparam visible above:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Nov 18 18:15:45 [26118] DBG:b2b_entities:b2b_tm_cback:<br>
&gt;&gt;&gt; dlg=[0x7f8a06744c30], uac_tran=NULL<br>
&gt;&gt;&gt; Nov 18 18:15:45 [26118] DBG:core:parse_authenticate_body:<br>
&gt;&gt;&gt; &lt;realm&gt;=&quot;66.94.76.24&quot; state=2<br>
&gt;&gt;&gt; Nov 18 18:15:45 [26118] DBG:core:parse_authenticate_body:<br>
&gt;&gt;&gt; &lt;nonce&gt;=&quot;528a9fbf00014297ef8f2335679f0310537c85fe2b007186&quot; state=3<br>
&gt;&gt;&gt; Nov 18 18:15:45 [26118] DBG:core:parse_authenticate_body: &lt;qop&gt;=&quot;auth&quot;<br>
&gt;&gt;&gt; state=1<br>
&gt;&gt;&gt; Nov 18 18:15:45 [26118] DBG:uac_auth:build_authorization_hdr: auth_hdr is<br>
&gt;&gt;&gt; &lt;Proxy-Authorization: Digest username=&quot;UserName&quot;, realm=&quot;AuthRealm123&quot;,<br>
&gt;&gt;&gt; nonce=&quot;528a9fbf00014297ef8f2335679f0310537c85fe2b007186&quot;,<br>
&gt;&gt;&gt; uri=&quot;sip:2165551212@domain&quot;, qop=auth, nc=00000001, cnonce=&quot;3105687311&quot;,<br>
&gt;&gt;&gt; response=&quot;ef047011046690b6eea99c7848de499a&quot;, algorithm=MD5<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; Nov 18 18:15:45 [26118] DBG:b2b_entities:b2b_tm_cback:<br>
&gt;&gt;&gt; [Proxy-Authorization: Digest ...]<br>
&gt;&gt;&gt; Nov 18 18:15:45 [26118] DBG:b2b_entities:b2b_tm_cback: uri [...]<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; I tried to follow the source to isolate the failing mechanism.  I arrived<br>
&gt;&gt;&gt; at modules/uac_auth/auth.c.  In get_avp_credential() at line 199:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;         avp = search_first_avp( realm_avp_type, realm_avp_name, &amp;val, 0);<br>
&gt;&gt;&gt;         if ( avp==NULL || (avp-&gt;flags&amp;AVP_VAL_STR)==0 || val.s.len&lt;=0 )<br>
&gt;&gt;&gt;                 return 0;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; In my case I&#39;ve discovered avp==NULL so the if-statement returns 0.<br>
&gt;&gt;&gt; avp==NULL because in the search_first_avp() at line 346 of usr_avp.c:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;                 if (*crt_avps==0)<br>
&gt;&gt;&gt;                         return 0;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; And it&#39;s game over.  I can&#39;t discern what causes this.  I&#39;m already way<br>
&gt;&gt;&gt; in over my pay grade.  :)<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; - Jeff<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; On Mon, Nov 18, 2013 at 6:02 PM, Ovidiu Sas &lt;<a href="mailto:osas@voipembedded.com">osas@voipembedded.com</a>&gt;<br>
&gt;&gt;&gt; wrote:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Can you post the debug logs and let us know which version of opensips<br>
&gt;&gt;&gt; are you running?<br>
&gt;&gt;&gt; Also, make sure that you set the credentials in AVPs before invoking<br>
&gt;&gt;&gt; the b2b call.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Thanks,<br>
&gt;&gt;&gt; Ovidiu<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; On Mon, Nov 18, 2013 at 5:11 PM, Jeff Pyle &lt;<a href="mailto:jpyle@fidelityvoice.com">jpyle@fidelityvoice.com</a>&gt;<br>
&gt;&gt;&gt; wrote:<br>
&gt;&gt;&gt; &gt; This functionality has become key for my configuration.  I&#39;ve done some<br>
&gt;&gt;&gt; &gt; digging today.  Here&#39;s what I know.<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; b2b_entities&#39; auth call gets to around line 347 of usr_avp.c and fails:<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;                 if (*crt_avps==0)<br>
&gt;&gt;&gt; &gt;                         return 0;<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; Programming is not my strength.  Any thoughts what might cause this<br>
&gt;&gt;&gt; &gt; condition, or how it might be related b2b_entities&#39; ability to process<br>
&gt;&gt;&gt; &gt; an<br>
&gt;&gt;&gt; &gt; auth request?<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; - Jeff<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; On Wed, Nov 13, 2013 at 6:03 PM, Jeff Pyle &lt;<a href="mailto:jpyle@fidelityvoice.com">jpyle@fidelityvoice.com</a>&gt;<br>
&gt;&gt;&gt; &gt; wrote:<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt; Hi Ovidiu,<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt; It does not.  At least not for me.  Here are some snippets of my<br>
&gt;&gt;&gt; &gt;&gt; config<br>
&gt;&gt;&gt; &gt;&gt; file:<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt; modparam(&quot;uac_auth&quot;,&quot;auth_realm_avp&quot;,  &quot;$avp(auth_realm)&quot;)<br>
&gt;&gt;&gt; &gt;&gt; modparam(&quot;uac_auth&quot;,&quot;auth_username_avp&quot;,&quot;$avp(auth_user)&quot;)<br>
&gt;&gt;&gt; &gt;&gt; modparam(&quot;uac_auth&quot;,&quot;auth_password_avp&quot;,&quot;$avp(auth_pass)&quot;)<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt; #modparam(&quot;uac_auth&quot;,&quot;credential&quot;,&quot;valid-username:appropriate-realm:valid-password&quot;)<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt; route {<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;   ... sanity checks, etc ...<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;         $avp(auth_realm) := &quot;appropriate-realm&quot;;<br>
&gt;&gt;&gt; &gt;&gt;         $avp(auth_user)  := &quot;valid-username&quot;;<br>
&gt;&gt;&gt; &gt;&gt;         $avp(auth_pass)  := &quot;valid-password&quot;;<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;         if !(b2b_init_request(&quot;top hiding/t105&quot;)) {<br>
&gt;&gt;&gt; &gt;&gt;                 xlog(&quot;L_ERR&quot;, &quot;** b2b_init  failed - - S=$si:$sp T=$tU<br>
&gt;&gt;&gt; &gt;&gt; F=$fU C=$ci\n&quot;);<br>
&gt;&gt;&gt; &gt;&gt;                 send_reply(&quot;500&quot;, &quot;Internal Server Error&quot;);<br>
&gt;&gt;&gt; &gt;&gt;         }<br>
&gt;&gt;&gt; &gt;&gt;         exit;<br>
&gt;&gt;&gt; &gt;&gt; }<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt; Configured like this, the 407 gets passed back to the client.  If I<br>
&gt;&gt;&gt; &gt;&gt; uncomment the &#39;credential&#39; modparam, the B2B will send an INVITE with<br>
&gt;&gt;&gt; &gt;&gt; the<br>
&gt;&gt;&gt; &gt;&gt; correct auth.<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt; The same uac_auth config with the same AVPs work correctly if I use<br>
&gt;&gt;&gt; &gt;&gt; uac_auth() on a failure_route in a pure proxy config.  That&#39;s why I&#39;m<br>
&gt;&gt;&gt; &gt;&gt; confused about it not working with the B2B.  I looked through the<br>
&gt;&gt;&gt; &gt;&gt; source and<br>
&gt;&gt;&gt; &gt;&gt; as best I can tell the same functions are called the same way for<br>
&gt;&gt;&gt; &gt;&gt; each.<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt; Ok, let me be specific on that last point.  The client to this B2B<br>
&gt;&gt;&gt; &gt;&gt; instance is another Opensips instance with proxy-only commands, most<br>
&gt;&gt;&gt; &gt;&gt; notably<br>
&gt;&gt;&gt; &gt;&gt; rtpproxy.  That&#39;s where I have uac_auth() working today.  With that I<br>
&gt;&gt;&gt; &gt;&gt; call<br>
&gt;&gt;&gt; &gt;&gt; the scenario here as &quot;top hiding/at105&quot; (note the &quot;a&quot;) to<br>
&gt;&gt;&gt; &gt;&gt; intentionally pass<br>
&gt;&gt;&gt; &gt;&gt; the 407 back to the proxy config.  It works.  Ideally, I&#39;d prefer the<br>
&gt;&gt;&gt; &gt;&gt; B2B<br>
&gt;&gt;&gt; &gt;&gt; scenario here field the 407.<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt; - Jeff<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt; On Wed, Nov 13, 2013 at 4:34 PM, Ovidiu Sas &lt;<a href="mailto:osas@voipembedded.com">osas@voipembedded.com</a>&gt;<br>
&gt;&gt;&gt; &gt;&gt; wrote:<br>
&gt;&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt; If you set the AVPs before creating the b2b call, it should work on<br>
&gt;&gt;&gt; &gt;&gt;&gt; 1.10.<br>
&gt;&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt; Regards,<br>
&gt;&gt;&gt; &gt;&gt;&gt; Ovidiu Sas<br>
&gt;&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt; On Tue, Nov 12, 2013 at 11:16 PM, Jeff Pyle &lt;<a href="mailto:jpyle@fidelityvoice.com">jpyle@fidelityvoice.com</a>&gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt; wrote:<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt; I was about to let this one go when I found &quot;B2B module gets<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt; visibility<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt; to<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt; credentials defined via AVPs&quot; on the About Version 1.10 page.  In<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt; my<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt; case it<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt; works only if I define the &#39;credential&#39; modparam for uac_auth.<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; --<br>
&gt;&gt; VoIP Embedded, Inc.<br>
&gt;&gt; <a href="http://www.voipembedded.com" target="_blank">http://www.voipembedded.com</a><br>
&gt;&gt;<br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; Users mailing list<br>
&gt;&gt; <a href="mailto:Users@lists.opensips.org">Users@lists.opensips.org</a><br>
&gt;&gt; <a href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users" target="_blank">http://lists.opensips.org/cgi-bin/mailman/listinfo/users</a><br>
&gt;&gt;<br>
&gt;<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; Users mailing list<br>
&gt; <a href="mailto:Users@lists.opensips.org">Users@lists.opensips.org</a><br>
&gt; <a href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users" target="_blank">http://lists.opensips.org/cgi-bin/mailman/listinfo/users</a><br>
&gt;<br>
<br>
<br>
<br>
--<br>
VoIP Embedded, Inc.<br>
<a href="http://www.voipembedded.com" target="_blank">http://www.voipembedded.com</a><br>
<br>
_______________________________________________<br>
Users mailing list<br>
<a href="mailto:Users@lists.opensips.org">Users@lists.opensips.org</a><br>
<a href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users" target="_blank">http://lists.opensips.org/cgi-bin/mailman/listinfo/users</a><br>
</div></div></blockquote></div><br></div></div>