<html><head><style type="text/css"><!-- DIV {margin:0px;} --></style></head><body><div style="font-family:courier,monaco,monospace,sans-serif;font-size:12pt">It works similar to how the dialplan hook works.<br><br>When the sip registration or attempted call comes<br>in with the authorization header, the mod_sofia will<br>do a directory lookup in the xml for the user/domain<br>combo specified in the request.<br><br>This is done by first requesting the entire domain then<br>iterating the &lt;user&gt; tags in that result.<br><br>So you have 2 choices when the request for the domain comes<br>in to your cgi.<br><br>1) Do exactly as it wants and deliver a &lt;domain&gt; with<br>all of the users for that domain and let the core find<br>the right one.<br><br>2) Look at the query params in the POST data where many<br>hints are provided about what the search is for (you may<br>find this familiar from the dialplan)<br>You can elect to find the exact user and return
 a &lt;domain&gt;<br>with just 1 &lt;user&gt; in it.<br><br>As far as doing the auth yourself you have 2 options as well.<br>&nbsp;<br>1) store the a1-hash in your database and return that<br>&nbsp;&nbsp; in the a1-hash user param&nbsp;  <br><div>&nbsp;&nbsp; md5hash(&lt;user&gt;:&lt;realm&gt;:&lt;pass&gt;) <br><br>2) all the bits of the authorization header are passed to<br>&nbsp;&nbsp; you in the POST data so you can perform the digest auth<br>&nbsp;&nbsp; yourself in your cgi and return a user with no passwd<br>&nbsp;&nbsp; param to indicate a successful auth.<br>&nbsp;&nbsp; (exactly how to do that is out of the scope of this reply =])<br><br>&nbsp;&nbsp; <br>sip_auth_username<br>sip_auth_realm<br>sip_auth_nonce<br>sip_auth_uri<br>sip_auth_qop<br>sip_auth_cnonce<br>sip_auth_nc<br>sip_auth_response<br>sip_auth_method<br><br><br><br></div><div>Anthony Minessale II<br><br><span>FreeSWITCH <a target="_blank"
 href="http://www.freeswitch.org/">http://www.freeswitch.org/</a></span><br><span>ClueCon <a target="_blank" href="http://www.cluecon.com/">http://www.cluecon.com/</a></span><br><br>AIM: anthm<br>MSN:anthony_minessale@hotmail.com<br>GTALK/JABBER/PAYPAL:anthony.minessale@gmail.com<br>IRC: irc.freenode.net #freeswitch</div><div><br>FreeSWITCH Developer Conference<br>sip:888@conference.freeswitch.org<br>iax:guest@conference.freeswitch.org/888<br>googletalk:conf+888@conference.freeswitch.org<br>pstn:213-799-1400</div><div style="font-family: courier,monaco,monospace,sans-serif; font-size: 12pt;"><br><br><div style="font-family: times new roman,new york,times,serif; font-size: 12pt;">----- Original Message ----<br>From: Jonas Gauffin &lt;jonas.gauffin@gmail.com&gt;<br>To: freeswitch-users@lists.freeswitch.org<br>Sent: Tuesday, February 5, 2008 4:30:02 AM<br>Subject: [Freeswitch-users] Problems with xml_curl and directory<br><br>
Hello<br><br>I've 
used 
xml_curl 
for 

while 
to 
supply 

dialplan, 
and 
it 
works 
fine.<br>I'm 
now 
trying 
to 
get 
the 
directory 
working.<br><br>If 
I'm 
not 
remembering 
wrong, 
FS 
fetches 
the 
complete 
directory 
at<br>startup 
to 
be 
able 
to 
do 
presence 
managing, 
correct?<br>Anyway 

provide 

XML 
document 
when 
it's 
requested 
at 
startup:<br><br>&lt;document 
type="freeswitch/xml"&gt;<br>&lt;section 
name="directory"&gt;&lt;domain 
name="192.168.1.124"&gt;<br>&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&lt;user 
id="janolov" 
mailbox="1202"&gt;<br>&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&lt;params 
/&gt;<br>&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&lt;variables&gt;<br>&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&lt;variable 
name="user_context" 
value="default" 
/&gt;<br>&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&lt;variable 
name="effective_caller_id_name"<br>value="Jan-Olov 
Andersson" 
/&gt;<br>&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&lt;variable 
name="effective_caller_id_number"<br>value="1202" 
/&gt;<br>&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&lt;/variables&gt;<br>&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&lt;/user&gt;<br>&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&lt;user 
id="jonas" 
mailbox="1201"&gt;<br>&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&lt;params 
/&gt;<br>&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&lt;variables&gt;<br>&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&lt;variable 
name="user_context" 
value="default" 
/&gt;<br>&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&lt;variable 
name="effective_caller_id_name"<br>value="Jonas 
Gauffin" 
/&gt;<br>&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&lt;variable 
name="effective_caller_id_number"<br>value="1201" 
/&gt;<br>&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&lt;/variables&gt;<br>&nbsp; 
&nbsp; 
&nbsp; 
&nbsp; 
&lt;/user&gt;<br>&lt;/domain&gt;&lt;/section&gt;<br>&lt;/document&gt;<br><br>I 
don't 
know 
if 
an 
empty 
"params" 
tag 
is 
required 
anymore, 
it 
was<br>before 
(when 
no 
password 
is 
used).<br><br>My 
problem 
is 
that 
registrations 
do 
not 
work 
when 
I'm 
using 
xml_curl<br>to 
fetch 
directory.<br>It 
does 
not 
fetch 
anything 
upon 
registration 
and 
nothing 
is 
written<br>into 
the 
console 
about 
the 
registration.<br><br>Everything 
works 
if 

disable 
directory 
handling 
in 
xml_curl 
(it 
then<br>uses 
the 
standard 
config 
files 
and 
registration 
works 
fine).<br><br>Then 

got 

feature 
request. 

would 
like 
to 
do 
then 
authentication<br>myself 
in 
the 
xml 
curl 
call, 
is 
that 
possible?<br>(FS 
supplies 
the 
password 
and 

can 
reply 
with 

status 
code 
that<br>indicates 
that 
the 
authentication 
was 
unsuccessful)<br>I'm 
storing 
passwords 
encrypted, 
and 

can 
therefore 
not 
provide 
a<br>password 
back 
to 
FS.<br><br>Regards,<br>&nbsp; 
Jonas<br><br>_______________________________________________<br>Freeswitch-users 
mailing 
list<br><a ymailto="mailto:Freeswitch-users@lists.freeswitch.org" href="mailto:Freeswitch-users@lists.freeswitch.org">Freeswitch-users@lists.freeswitch.org</a><br><a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users" target="_blank">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</a><br>UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-users" target="_blank">http://lists.freeswitch.org/mailman/options/freeswitch-users</a><br><a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a><br></div><br></div></div><br>



      <hr size=1>Never miss a thing.  <a href="http://us.rd.yahoo.com/evt=51438/*http://www.yahoo.com/r/hs"> Make Yahoo your homepage.</a>

</body></html>