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@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@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers