Hello,

I am not a python parameter, but seems a limitation of the xmlrpc_test2.py tool, the tcp dump shows that the records are sent back in the xmlrpc response.

You will have to look inside/troubleshoot the xmlrpc_test2.py and see why it fails.

Cheers,
Daniel

On 11/12/12 9:58 AM, Kristofer Signer wrote:
Hello,

running kamailio 3.3.2.

On Mon, Nov 12, 2012 at 1:48 PM, Daniel-Constantin Mierla <[email protected] <mailto:[email protected]>> wrote:

    Hello,


    On 11/12/12 10:02 AM, Kristofer Signer wrote:

        Hello,

        I'm trying to dig in to the kamailio XMLRPC interfaces and the
        limitations I read in
        
http://www.kamailio.org/docs/modules/stable/modules/xmlrpc.html#xmlrpc.implementation.limitations

        is really a no go for us.

    which one is a 'no go'? Nested structures are supported in the
    last version, iirc, the readme does not seem to be updated for
    this case.

the 'no go' is the structure {AoR, HashID, Contact, AoR, HashID, Contacts, ...}




        For example, when to retrieve user locations and list of
        dialogs we get a xml document which is not so well formatted
        and we can not successfully parse it in an xmlrpc-parser.

        Is there other options for xmlrpc module?


    If the body is not successfully parsed, it is a bug. The
    limitation is about not supporting all the data types, but when a
    reply is xmlrpc sent, it should be valid. Can you test it with 1-2
    location records that fail and post the xmrpc here as well as the
    log error messages from the xml parser?


Actually, I don't get any errors. I'm using the python example provided in kamailio src and that example will only parse out one record.


[krsi@vera examples]$ python xmlrpc_test2.py ul.dump foo
{'Domain': 'location', 'Stats': {'Records': 2, 'Max-Slots': 1}, 'AoRs': {'HashID': 1731621673, 'AoR': 'jkp-01', 'Contacts': {'Contact': {'Ruid': 'uloc-50a0ea3c-124bf-1', 'Received': '[not set]', 'Path': '[not set]', 'Reg-Id': 0, 'Expires': 99, 'Flags': 0, 'User-Agent': 'Jitsi1.0-Linux', 'Q': 0.0, 'Instance': '[not set]', 'State': 'CS_SYNC', 'CSeq': 11, 'Methods': 18446744073709551615L, 'CFlags': 0, 'Address': 'sip:[email protected]:25060;transport=udp;registering_acc=foo_bar_com', 'Call-ID': '61ac73a44826f3887a5db2371b044275@0:0:0:0:0:0:0:0', 'Socket': 'udp:192.168.0.82:5060'}}}, 'Size': 512}

As you can see,. there should be two records but only one is parsed.


Here is the response body from tcpdump

<?xml version="1.0"?>
<methodResponse>
<params>
<param>
<value><struct>
<member><name>Domain</name><value><string>location</string></value></member>
<member><name>Size</name><value><int>512</int></value></member>
  <member>
    <name>AoRs</name>
    <value><struct>
<member><name>AoR</name><value><string>jkp-02</string></value></member>
<member><name>HashID</name><value><int>1731621670</int></value></member>
      <member>
        <name>Contacts</name>
        <value><struct>
          <member>
            <name>Contact</name>
            <value><struct>
<member><name>Address</name><value><string>sip:[email protected]:35060 <http://sip:[email protected]:35060></string></value></member>
<member><name>Expires</name><value><int>768</int></value></member>
<member><name>Q</name><value><double>0.000000</double></value></member>
<member><name>Call-ID</name><value><string>[email protected] 
<mailto:[email protected]></string></value></member>
<member><name>CSeq</name><value><int>383</int></value></member>
<member><name>User-Agent</name><value><string>Twinkle/1.4.2</string></value></member>
<member><name>Received</name><value><string>[not set]</string></value></member> <member><name>Path</name><value><string>[not set]</string></value></member>
<member><name>State</name><value><string>CS_SYNC</string></value></member>
<member><name>Flags</name><value><int>0</int></value></member>
<member><name>CFlags</name><value><int>0</int></value></member>
<member><name>Socket</name><value><string>udp:192.168.0.82:5060 <http://192.168.0.82:5060></string></value></member>
<member><name>Methods</name><value><int>6111</int></value></member>
<member><name>Ruid</name><value><string>uloc-50a0ea3c-124c0-1</string></value></member>
<member><name>Instance</name><value><string>[not set]</string></value></member>
<member><name>Reg-Id</name><value><int>0</int></value></member>
            </struct></value>
          </member>
        </struct></value>
      </member>
      <member>
<name>AoR</name><value><string>jkp-01</string></value></member>
<member><name>HashID</name><value><int>1731621673</int></value></member>
        <member>
          <name>Contacts</name>
          <value><struct>
            <member>
              <name>Contact</name>
              <value><struct>
<member><name>Address</name><value><string>sip:[email protected]:25060 <http://sip:[email protected]:25060></string></value></member>
<member><name>Expires</name><value><int>185</int></value></member>
<member><name>Q</name><value><double>0.000000</double></value></member>
<member><name>Call-ID</name><value><string>61ac73a44826f3887a5db2371b044275@0:0:0:0:0:0:0:0</string></value></member>
<member><name>CSeq</name><value><int>12</int></value></member>
<member><name>User-Agent</name><value><string>Jitsi1.0-Linux</string></value></member>
<member><name>Received</name><value><string>[not set]</string></value></member> <member><name>Path</name><value><string>[not set]</string></value></member>
  <member><name>State</name><value><string>CS_SYNC</string></value></member>
<member><name>Flags</name><value><int>0</int></value></member>
<member><name>CFlags</name><value><int>0</int></value></member>
<member><name>Socket</name><value><string>udp:192.168.0.82:5060 <http://192.168.0.82:5060></string></value></member>
<member><name>Methods</name><value><int>18446744073709551615</int></value></member>
<member><name>Ruid</name><value><string>uloc-50a0ea3c-124bf-1</string></value></member>
<member><name>Instance</name><value><string>[not set]</string></value></member>
<member><name>Reg-Id</name><value><int>0</int></value></member>
              </struct></value>
            </member>
          </struct></value>
        </member>
      </struct></value>
    </member>
    <member>
      <name>Stats</name>
      <value><struct>
<member><name>Records</name><value><int>2</int></value></member>
<member><name>Max-Slots</name><value><int>1</int></value></member>
      </struct></value>
    </member>
  </struct></value>
</param>
</params>
</methodResponse>



and for reference, the same command from kamctl:

 [krsi@sipproxy1 ~]$  kamctl mi ul_dump
Domain:: location table=512 records=2 max_slot=1
        AOR:: jkp-02
Contact:: sip:[email protected]:35060 <http://sip:[email protected]:35060> Q=
                        Expires:: 1961
Callid:: [email protected] <mailto:[email protected]>
                        Cseq:: 383
                        User-agent:: Twinkle/1.4.2
                        State:: CS_SYNC
                        Flags:: 0
                        Cflag:: 0
Socket:: udp:192.168.0.82:5060 <http://192.168.0.82:5060>
                        Methods:: 6111
                        Ruid:: uloc-50a0ea3c-124c0-1
                        Reg-Id:: 0
        AOR:: jkp-01
Contact:: sip:[email protected]:25060 <http://sip:[email protected]:25060> Q=
                        Expires:: 298
Callid:: 61ac73a44826f3887a5db2371b044275@0:0:0:0:0:0:0:0
                        Cseq:: 10
                        User-agent:: Jitsi1.0-Linux
                        State:: CS_SYNC
                        Flags:: 0
                        Cflag:: 0
Socket:: udp:192.168.0.82:5060 <http://192.168.0.82:5060>
                        Methods:: 4294967295
                        Ruid:: uloc-50a0ea3c-124bf-1
                        Reg-Id:: 0


Thanks
./Kristofer


    For example, siremis uses the xmlrpc interface and all is ok with
    handling the replies. It uses a library from php pear.

    Cheers,
    Daniel

-- Daniel-Constantin Mierla - http://www.asipto.com
    http://twitter.com/#!/miconda <http://twitter.com/#%21/miconda> -
    http://www.linkedin.com/in/miconda



--
Daniel-Constantin Mierla - http://www.asipto.com
http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda

_______________________________________________
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
[email protected]
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users

Reply via email to