[SR-Users] xmlrpc always returns NO RESULT

岩間理佐 iwama at geekfeed.co.jp
Fri Sep 17 06:42:13 CEST 2021


Hi,

I have a question regarding the XMLRPC commands in the siremis GUI.


【Environment】

・Centos7

・kamailio 5.5.2

・siremis 5.3

(installed by git clone https://github.com/asipto/siremis siremis-5.3.x)

・php:

$ rpm -qa | grep php

php-process-5.4.16-48.el7.x86_64

php-common-5.4.16-48.el7.x86_64

php-mysqlnd-5.4.16-48.el7.x86_64

php-pdo-5.4.16-48.el7.x86_64

php-xml-5.4.16-48.el7.x86_64

php-cli-5.4.16-48.el7.x86_64

php-5.4.16-48.el7.x86_64

php-pear-1.9.4-22.el7.noarch


・apache 2.4.6



When I execute commands in command service → XMLPRC from siremis GUI,
it always shows no result.

It looks like the command is not being executed.

I also executed these commands on server, and there are no problem.

There is no error in apache log and kamailio is also working.



This is what I have in /etc/kamailio/kamailio.cfg


#!KAMAILIO

#!define WITH_XMLRPC

#!define WITH_DEBUG

#!define DBURL "mysql://kamailio:kamailiorw@localhost/kamailio"

# - flags

#FLT_ - per transaction (message) flags

#FLB_ - per branch flags

#!define FLT_ACC 1

#!define FLT_ACCMISSED 2

#!define FLT_ACCFAILED 3

#!define WITH_MYSQL

#!define WITH_NAT

####### Global Parameters #########

#!ifdef WITH_DEBUG

debug=4

log_stderror=yes

#!else

debug=2

log_stderror=no

#!endif

#!ifdef WITH_MYSQL

 loadmodule "db_mysql.so"

#!endif

#!ifdef WITH_NAT

loadmodule "nathelper.so"

 #!ifdef WITH_RTPENGINE

 loadmodule "rtpengine.so"

 #!else

 loadmodule "rtpproxy.so"

 #!endif

#!endif

#!ifdef WITH_JSONRPC

loadmodule "xhttp.so"

#!endif

memdbg=5

memlog=5

log_facility=LOG_LOCAL0

fork=yes

children=4

disable_tcp=yes

auto_aliases=no

port=5060

listen=udp:172.23.0.246:5060 advertise 52.69.75.254:5060

sip_warning=no

####### Modules Section ########

# set module path

#mpath="/usr/local/lib/kamailio/modules/"

#loadmodule "db_mysql.so"

loadmodule "tm.so"

loadmodule "tmx.so"

loadmodule "sl.so"

loadmodule "rr.so"

loadmodule "pv.so"

loadmodule "maxfwd.so"

loadmodule "textops.so"

loadmodule "siputils.so"

loadmodule "xlog.so"

loadmodule "sanity.so"

loadmodule "ctl.so"

loadmodule "acc.so"

loadmodule "dispatcher.so"

loadmodule "uac.so"

loadmodule "sqlops"

loadmodule "rtimer"

loadmodule "jsonrpcs.so"

loadmodule "kex.so"

loadmodule "corex.so"

# ----- jsonrpcs params -----

modparam("jsonrpcs", "pretty_format", 1)

modparam("jsonrpcs", "dgram_socket", "/var/run/kamailio/kamailio_rpc.sock")

modparam("jsonrpcs", "dgram_mode", 0666)

modparam("jsonrpcs", "dgram_user", "kamailio")

modparam("jsonrpcs", "dgram_group", "kamailio")

modparam("jsonrpcs", "transport", 0)

# ----- xmlrpc params -----

#modparam("xmlrpc", "route", "XMLRPC")

#modparam("xmlrpc", "url_match", "^/RPC")

# ----- rr params -----

modparam("rr", "append_fromtag", 1)

# ----- R Timer -----

modparam("rtimer", "timer", "name=cdr;interval=300;mode=1;")

modparam("rtimer", "exec", "timer=cdr;route=CDRS")

# ----- acc params -----

modparam("acc", "log_flag", FLT_ACC)

modparam("acc", "failed_transaction_flag", FLT_ACCFAILED)

modparam("acc", "log_extra",

"src_user=$fU;src_domain=$fd;dst_ouser=$tU;dst_user=$rU;dst_domain=$rd;src_ip=$si")

# ----- tm params -----

modparam("tm", "fr_timer", 2000)

modparam("tm", "fr_inv_timer", 40000)

modparam("tm", "auto_inv_100_reason", "Trying")

# ----- dispatcher params -----

modparam("dispatcher", "db_url", DBURL)

modparam("dispatcher", "table_name", "dispatcher")

modparam("dispatcher", "flags", 2)

modparam("dispatcher", "xavp_dst", "_dsdst_")

modparam("dispatcher", "xavp_ctx", "_dsctx_")

modparam("dispatcher", "ds_ping_from", "sip:proxy at 52.69.75.254")

modparam("dispatcher", "ds_ping_interval", 60)

modparam("dispatcher", "ds_probing_mode", 1)

modparam("dispatcher", "ds_timer_mode", 1)

modparam("dispatcher", "xavp_dst_mode", 0)

modparam("dispatcher", "ds_ping_latency_stats", 1)

modparam("dispatcher", "ds_ping_method", "OPTIONS")

modparam("dispatcher", "ds_probing_threshold", 10)

modparam("dispatcher", "ds_inactive_threshold", 10)

modparam("dispatcher",
"ds_ping_reply_codes","class=2;code=403;code=404;code=484;class=3")

# ----- uac params -----

modparam("uac", "reg_db_url", DBURL)

modparam("uac", "reg_contact_addr", "52.69.75.254")

modparam("uac", "reg_db_table", "uacreg")

# ----- mysql -----

modparam("sqlops",
"sqlcon","cb=>mysql://kamailio:kamailiorw@localhost/kamailio")

####### Routing Logic ########

# main request routing logic

request_route {

        # per request initial checks

        route(REQINIT);

        # CANCEL processing

        if (is_method("CANCEL")) {

                if (t_check_trans()) {

                        route(RELAY);

                }

                exit;

        }

        # handle retransmissions

        if (!is_method("ACK")) {

                if(t_precheck_trans()) {

                        t_check_trans();

                        exit;

                }

                t_check_trans();

        }

        # handle requests within SIP dialogs

        route(WITHINDLG);

        ### only initial requests (no To tag)

        # record routing for dialog forming requests (in case they are routed)

        # - remove preloaded route headers

        remove_hf("Route");

        if (is_method("INVITE|SUBSCRIBE")) {

                record_route();

        }

        # account only INVITEs

        if (is_method("INVITE")) {

                setflag(FLT_ACC); # do accounting

        }

        # handle presence related requests

        route(PRESENCE);

        # handle registrations

        route(REGISTRAR);

        if ($rU==$null) {

                # request with no Username in RURI

                sl_send_reply("484","Address Incomplete");

                exit;

        }

        # dispatch destinations

        route(DISPATCH);

}

route[RELAY] {

        if (!t_relay()) {

                sl_reply_error();

        }

        exit;

}

# Per SIP request initial checks

route[REQINIT] {

        if (!mf_process_maxfwd_header("10")) {

                sl_send_reply("483","Too Many Hops");

                exit;

        }

        if(!sanity_check("1511", "7")) {

                xlog("Malformed SIP message from $si:$sp\n");

                exit;

        }

}

# Handle requests within SIP dialogs

route[WITHINDLG] {

        if (!has_totag()) {

                return;

        }

        # sequential request withing a dialog should

        # take the path determined by record-routing

        if (loose_route()) {

                if (is_method("BYE")) {

                        setflag(FLT_ACC); # do accounting ...

                        setflag(FLT_ACCFAILED); # ... even if the
transaction fails

                }

                route(RELAY);

        }

        if (is_method("SUBSCRIBE") && uri == myself) {

                # in-dialog subscribe requests

                route(PRESENCE);

        }

        if ( is_method("ACK") ) {

                if ( t_check_trans() ) {

                        t_relay();

                        exit;

                } else {

                        exit;

                }

        }

        sl_send_reply("404","Not here");

        exit;

}

# Handle SIP registrations

route[REGISTRAR] {

        if(!is_method("REGISTER"))

                return;

        sl_send_reply("404", "No registrar");

        exit;

}

# Presence server route

route[PRESENCE] {

        if(!is_method("PUBLISH|SUBSCRIBE"))

                return;

        sl_send_reply("404", "Not here");

        exit;

}

# Dispatch requests

route[DISPATCH] {

        # round robin dispatching on gateways group '1'

        if(!ds_select_dst("1", "11")) {

                send_reply("404", "No destination");

                exit;

        }

        xdbg("--- SCRIPT: going to <$ru> via <$du> (attrs:
$xavp(_dsdst_=>attrs))\n");

        t_on_failure("RTF_DISPATCH");

        route(RELAY);

        exit;

}

# Try next destionations in failure route

failure_route[RTF_DISPATCH] {

        if (t_is_canceled()) {

                exit;

        }

        # next DST - only for 500 or local timeout

        if (t_check_status("500|486")

                        or (t_branch_timeout() and !t_branch_replied())) {

                if(ds_next_dst()) {

                        xdbg("--- SCRIPT: retrying to <$ru> via <$du>
(attrs: $xavp(_dsdst_=>attrs))\n");

                        t_on_failure("RTF_DISPATCH");

                        route(RELAY);

                        exit;

                }

        }

}



I have tried my best to do some researches about it, but still stuck.

Any help is appreciated. Thank you!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.kamailio.org/pipermail/sr-users/attachments/20210917/6e5ff56c/attachment.htm>


More information about the sr-users mailing list