<div dir="ltr"><div style="font-family:arial,sans-serif;font-size:13px">Hello. I have construction Asterisk --> Kamailio --> Providers</div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">
My provisers registered with UAC modure and stored at UACREG table.</div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">Problem scenario is:</div>
<div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">I ring from asterisk to provider</div><div style="font-family:arial,sans-serif;font-size:13px"><br>
</div><div style="font-family:arial,sans-serif;font-size:13px">Asterisk --> Kamailio --> Providers</div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">
Call from asterisk come to kamailio with </div><div style="font-family:arial,sans-serif;font-size:13px">furi(Asterisk_clinet_local_number@asterisk)</div><div style="font-family:arial,sans-serif;font-size:13px">turi(external_number@kamailio)</div>
<div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">Then, to forward INVITE to provider that Needed I use some manipulations to choose provider (it does not matter, it is only sql_queryes to some tables), and then modify invite with this code:</div>
<div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">#$var(prov) - my.provider.ip</div><div style="font-family:arial,sans-serif;font-size:13px">#$var(trunk) - name_of_trunk </div>
<div style><font face="arial, sans-serif"><br></font></div><div style><font face="arial, sans-serif">uac_replace_from("sip:$var(trunk)@$var(prov)");</font><br></div><div style="font-family:arial,sans-serif;font-size:13px">
<br></div><div style="font-family:arial,sans-serif;font-size:13px">$rd=$var(prov);</div><div style="font-family:arial,sans-serif;font-size:13px">$rp="5060";</div><div style="font-family:arial,sans-serif;font-size:13px">
<span style="white-space:pre-wrap">                     </span></div><div style="font-family:arial,sans-serif;font-size:13px">$td=$var(prov);</div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">
remove_hf("Contact");</div><div style="font-family:arial,sans-serif;font-size:13px">append_hf("Contact:<$var(trunk)@my.kamailio.domain:5068>\n","Contact");<br>#Then I get from database varibles to set it at failure route whet it needs to auth <br>
<br><div>                     #modparam("uac","auth_realm_avp","$avp(s:realm)")</div><div>                     #modparam("uac","auth_username_avp","avp(s:uname)")</div>
<div>                     #modparam("uac","auth_password_avp","$avp(s:passwd))") </div><br></div><div style><font face="arial, sans-serif">sql_pvquery("ca","select auth_username, auth_password, realm from uacreg where auth_username='$var(trunk)'","$avp(uname), $avp(passwd), $avp(realm)");</font><br>
</div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">So -after this manipulation I have write packet, that goes to my provider.</div><div style="font-family:arial,sans-serif;font-size:13px">
<br></div><div style="font-family:arial,sans-serif;font-size:13px">Then Provier sends me 407 answer and packet goes to failure_route</div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">
if (t_check_status("401|407")){</div><div style="font-family:arial,sans-serif;font-size:13px">        xlog("L_INFO", "Reply from provider on failure: $rs");<br><br>        <span style="white-space:pre-wrap"> </span>pv_printf("$avp(s:uname)","$var(uname)");</div>
<div style="font-size:13px;font-family:arial,sans-serif">         pv_printf("$avp(s:passwd)","$var(passwd)");</div><div style="font-size:13px;font-family:arial,sans-serif">         pv_printf("$avp(s:realm)","$var(realm)");<br>
         avp_print();</div><div style="font-family:arial,sans-serif;font-size:13px">         uac_auth();</div><div style="font-family:arial,sans-serif;font-size:13px">         xlog("L_INFO", "UAC_AUTH(): $rs"); </div>
<div style="font-family:arial,sans-serif;font-size:13px">          t_relay();</div><div style="font-family:arial,sans-serif;font-size:13px">      }</div><div style>
<font face="arial, sans-serif"><span style="white-space:pre-wrap">After that Call fails. When I look at at syslog I see that avp parametrs succesfull sets:</span></font>

<font face="arial, sans-serif"><span style="white-space:pre-wrap">INFO: avpops [avpops_impl.c:1484]: ops_print_avp(): p=0x7f63acec0650, flags=0x0113
INFO: avpops [avpops_impl.c:1488]: ops_print_avp(): #011#011#011name=<realm>
INFO: avpops [avpops_impl.c:1496]: ops_print_avp(): #011#011#011val_str=<0 / 1>
INFO: avpops [avpops_impl.c:1484]: ops_print_avp(): p=0x7f63acebe1a8, flags=0x0113
INFO: avpops [avpops_impl.c:1488]: ops_print_avp(): #011#011#011name=<passwd>
INFO: avpops [avpops_impl.c:1496]: ops_print_avp(): #011#011#011val_str=<0 / 1>
INFO: avpops [avpops_impl.c:1484]: ops_print_avp(): p=0x7f63ace697a8, flags=0x0113
INFO: avpops [avpops_impl.c:1488]: ops_print_avp(): #011#011#011name=<uname>
INFO: avpops [avpops_impl.c:1496]: ops_print_avp(): #011#011#011val_str=<0 / 1>
INFO: avpops [avpops_impl.c:1484]: ops_print_avp(): p=0x7f63acec0240, flags=0x0113
INFO: avpops [avpops_impl.c:1488]: ops_print_avp(): #011#011#011name=<realm>
INFO: avpops [avpops_impl.c:1496]: ops_print_avp(): #011#011#011val_str=<<a href="http://my.provider.com">my.provider.com</a> / 15>
INFO: avpops [avpops_impl.c:1484]: ops_print_avp(): p=0x7f63acec0308, flags=0x0113
INFO: avpops [avpops_impl.c:1488]: ops_print_avp(): #011#011#011name=<passwd>
INFO: avpops [avpops_impl.c:1496]: ops_print_avp(): #011#011#011val_str=<mYPa$$wd / 8>
INFO: avpops [avpops_impl.c:1484]: ops_print_avp(): p=0x7f63acea3d40, flags=0x0113
INFO: avpops [avpops_impl.c:1488]: ops_print_avp(): #011#011#011name=<uname>
INFO: avpops [avpops_impl.c:1496]: ops_print_avp(): #011#011#011val_str=<myTrunk/ 16>
</span></font>
<br>But Next I see:<br><br>ERROR <script> : AUTH_UAC(): <null></div><div style><br><font face="arial, sans-serif">As I see AUTH_UAC() don`t want to set Auth  parameters. <br><br>My question is Why?<br><br>Thanks!</font></div>
</div>