Jan,
Thank you for your explanation, it has really cleared up a lot of my questions.
I am confused on one point, where you said "location" should be the value that I
am
using. Are there a set number or only a specific few tables that will be accepted by
this call? When I use location I get the XML reply
<value><string>AOR Not Found</string></value>
which is expected, because my "location" table is empty. When I switch
"subscriber"
for "location" I get the following reply
<value><string>Table Not Found</string></value>
That is perplexing since we both know that suscbribers is there. Looking at the library
itself
I have been able to determine that I will get this sort of reply when the system cannot
find the domain.
ul_rpc.c (lines 374 - 403)
rpc_find_domain(&t, &d);
if (d) {
...
}else {
rpc->fault(400, "Table Not Found");
}
Why does the system find a domain for "location" but not for
"subscriber"? E
Thank you for your patience so far,
Zach Keatts
Software Engineer
Nuvio.com
Jan Janak wrote:
The function expects two parameters, the first one is
the name of the
table ("location" in your case) and the 2nd parameter is AOR (Address Of
Record), the XML-RPC request should look like this:
<?xml version=\"1.0\"?>
<methodCall>
<methodName>usrloc.show_contacts</methodName>
<params>
<param>
<value><string>location</string></value>
</param>
<param>
<value><string>jan(a)iptel.org</string></value>
</param>
</params>
</methodCall>
Here is how you could find out what parameters does the function expect:
Open ul_rpc.c and lookup function rpc_show_contacts.
The function contains the following code at the beginning:
if (rpc->scan("SS", &t, &aor) < 0) return;
Function scan reads and parses the parameters. In this particular example
you can see that the function expects two string parameters (hence
double S in the formatting string) and from the name of the variables
you could guess that the first one is the table name (well, t is not
very descriptive, I admit), and the 2nd one is AOR.
Jan.
On 09-08-2005 12:03, zkeatts wrote:
>I am currently trying to do an xml-rpc call to usrloc.show_contacts.
>The xml packet I am sending is the following
>
>POST /RPC2 HTTP/1.0
>User-Agent: Radio UserLand/7.1b7 (WinNT)
>Host: localhost:5060
>Content-Type: text/xml
>Content-length: 131
>
><?xml version=\"1.0\"?>
><methodCall>
><methodName>usrloc.show_contacts</methodName>
><params>
></params>
></methodCall>
>
>As a return packet I am getting
>
>HTTP/1.0 200 OK
>Via: SIP/2.0/UDP 127.0.0.1:32769
>Server: Sip EXpress router (0.10.99-janakj_experimental (i386/linux))
>Content-Length: 303
>Warning: 392 127.0.0.1:5060 "Noisy feedback tells: pid=5820
>req_src_ip=127.0.0.1 req_src_port=32769 in_uri=/RPC2 out_uri=/RPC2
>via_cnt==1"
>
><?xml version="1.0" encoding="UTF-8"?>
><methodResponse>
><fault>
><value><struct>
><member><name>faultCode</name>
><value><i4>400</i4></value></member>
><member><name>faultString</name>
><value><string>More Parameters
Expected</string></value></member>
></struct></value>
></fault>
></methodResponse>
>
>This tells me that I am not entering the correct information, but I am
>at a loss to exactly what else I should be inserting.
>
>I did a search for rpc_show_contacts and found in
>./sip_router/modules/usrloc/ul_rpc.c
>
>static void rpc_show_contacts(rpc_t* rpc)
>
>After searching some more I could not find the rpc_t structure. Does
>anyone know what values I should be passing via XML?
>
>Thanks,
>
>Zach Keatts
>Software Engineer
>Nuvio.com
>
>
>
>_______________________________________________
>Serusers mailing list
>serusers(a)lists.iptel.org
>http://lists.iptel.org/mailman/listinfo/serusers
>
>