Hi all,
I have an kamailio 3.3.2 server deployed with dialog awareness.
When call dlg.end_dlg over xmlrpc I get an 200 OK response but the dialog is not ended.
What I can do; call dlg.list (xmlrpc) and get the active dialog list, xmlrpc interface working. call dlg.dlg_list (xmlrpc) and get description of one dialog, xmlrpx method call with parameters working. call dlg_end_dlg (kamctl) and successfully end the dialog.
so my questions are... Is the xmlrpc method dlg.end_dlg known to work? and if, what have I missed?
thanks ./Kristofer Signer
$ /usr/local/kamailio-3.3/sbin/kamailio -V
version: kamailio 3.3.2 (x86_64/freebsd)
flags: STATS: Off, USE_IPV6, USE_TCP, USE_TLS, TLS_HOOKS, USE_RAW_SOCKS, DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MEM, SHM_MMAP, PKG_MALLOC, F_MALLOC, FAST_LOCK-ADAPTIVE_WAIT, USE_DNS_CACHE, USE_DNS_FAILOVER, USE_NAPTR, USE_DST_BLACKLIST, HAVE_RESOLV_RES ADAPTIVE_WAIT_LOOPS=1024, MAX_RECV_BUFFER_SIZE 262144, MAX_LISTEN 16, MAX_URI_SIZE 1024, BUF_SIZE 65535, DEFAULT PKG_SIZE 4MB poll method support: poll, select, kqueue. id: unknown compiled on 09:53:26 Nov 2 2012 with gcc 4.2.1
Found it!
in modules_k/dialog/dialog.c in method rpc_dlg_briodge
it checks for three mandatory parameters if (rpc->scan(c, "SSS", &from, &to, &op) < 2) { return; }
but it should be two mandatory and one optional if (rpc->scan(c, "SS", &from, &to) < 2) return; if (rpc->scan(c, "*S", &op) < 0) return;
the same for method rpc_end_dlg_entry_id // if (rpc->scan(c, "ddS", &h_entry, &h_id, &rpc_extra_hdrs) < 2) return; if (rpc->scan(c, "dd", &h_entry, &h_id) < 2) return; if (rpc->scan(c, "*S", &rpc_extra_hdrs) < 0) return;
./Kristofer
On Wed, Nov 7, 2012 at 9:55 AM, Kristofer Signer <kristofer.signer@gmail.com
wrote:
Hi all,
I have an kamailio 3.3.2 server deployed with dialog awareness.
When call dlg.end_dlg over xmlrpc I get an 200 OK response but the dialog is not ended.
What I can do; call dlg.list (xmlrpc) and get the active dialog list, xmlrpc interface working. call dlg.dlg_list (xmlrpc) and get description of one dialog, xmlrpx method call with parameters working. call dlg_end_dlg (kamctl) and successfully end the dialog.
so my questions are... Is the xmlrpc method dlg.end_dlg known to work? and if, what have I missed?
thanks ./Kristofer Signer
$ /usr/local/kamailio-3.3/sbin/kamailio -V
version: kamailio 3.3.2 (x86_64/freebsd)
flags: STATS: Off, USE_IPV6, USE_TCP, USE_TLS, TLS_HOOKS, USE_RAW_SOCKS, DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MEM, SHM_MMAP, PKG_MALLOC, F_MALLOC, FAST_LOCK-ADAPTIVE_WAIT, USE_DNS_CACHE, USE_DNS_FAILOVER, USE_NAPTR, USE_DST_BLACKLIST, HAVE_RESOLV_RES ADAPTIVE_WAIT_LOOPS=1024, MAX_RECV_BUFFER_SIZE 262144, MAX_LISTEN 16, MAX_URI_SIZE 1024, BUF_SIZE 65535, DEFAULT PKG_SIZE 4MB poll method support: poll, select, kqueue. id: unknown compiled on 09:53:26 Nov 2 2012 with gcc 4.2.1
Hello,
thanks for troubleshooting and fixing suggestions. Probably the MI command used by kamctl was updated to have the third parameter optional, but the RPC equivalent wasn't. I will push a fix soon.
Cheers, Daniel
On 11/7/12 4:45 PM, Kristofer Signer wrote:
Found it!
in modules_k/dialog/dialog.c in method rpc_dlg_briodge
it checks for three mandatory parameters if (rpc->scan(c, "SSS", &from, &to, &op) < 2) { return; }
but it should be two mandatory and one optional if (rpc->scan(c, "SS", &from, &to) < 2) return; if (rpc->scan(c, "*S", &op) < 0) return;
the same for method rpc_end_dlg_entry_id // if (rpc->scan(c, "ddS", &h_entry, &h_id, &rpc_extra_hdrs) < 2) return; if (rpc->scan(c, "dd", &h_entry, &h_id) < 2) return; if (rpc->scan(c, "*S", &rpc_extra_hdrs) < 0) return;
./Kristofer
On Wed, Nov 7, 2012 at 9:55 AM, Kristofer Signer <kristofer.signer@gmail.com mailto:kristofer.signer@gmail.com> wrote:
Hi all, I have an kamailio 3.3.2 server deployed with dialog awareness. When call dlg.end_dlg over xmlrpc I get an 200 OK response but the dialog is not ended. What I can do; call dlg.list (xmlrpc) and get the active dialog list, xmlrpc interface working. call dlg.dlg_list (xmlrpc) and get description of one dialog, xmlrpx method call with parameters working. call dlg_end_dlg (kamctl) and successfully end the dialog. so my questions are... Is the xmlrpc method dlg.end_dlg known to work? and if, what have I missed? thanks ./Kristofer Signer $ /usr/local/kamailio-3.3/sbin/kamailio -V version: kamailio 3.3.2 (x86_64/freebsd) flags: STATS: Off, USE_IPV6, USE_TCP, USE_TLS, TLS_HOOKS, USE_RAW_SOCKS, DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MEM, SHM_MMAP, PKG_MALLOC, F_MALLOC, FAST_LOCK-ADAPTIVE_WAIT, USE_DNS_CACHE, USE_DNS_FAILOVER, USE_NAPTR, USE_DST_BLACKLIST, HAVE_RESOLV_RES ADAPTIVE_WAIT_LOOPS=1024, MAX_RECV_BUFFER_SIZE 262144, MAX_LISTEN 16, MAX_URI_SIZE 1024, BUF_SIZE 65535, DEFAULT PKG_SIZE 4MB poll method support: poll, select, kqueue. id: unknown compiled on 09:53:26 Nov 2 2012 with gcc 4.2.1
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list sr-users@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
Hello,
I pushed a fix for it, different than your suggestions, using a modifier in the rpc scan parameter to specify optional input.
You can get the latest branch 3.3 and try -- reply and say if all goes fine now.
Cheers, Daniel
On 11/8/12 7:37 AM, Daniel-Constantin Mierla wrote:
Hello,
thanks for troubleshooting and fixing suggestions. Probably the MI command used by kamctl was updated to have the third parameter optional, but the RPC equivalent wasn't. I will push a fix soon.
Cheers, Daniel
On 11/7/12 4:45 PM, Kristofer Signer wrote:
Found it!
in modules_k/dialog/dialog.c in method rpc_dlg_briodge
it checks for three mandatory parameters if (rpc->scan(c, "SSS", &from, &to, &op) < 2) { return; }
but it should be two mandatory and one optional if (rpc->scan(c, "SS", &from, &to) < 2) return; if (rpc->scan(c, "*S", &op) < 0) return;
the same for method rpc_end_dlg_entry_id // if (rpc->scan(c, "ddS", &h_entry, &h_id, &rpc_extra_hdrs) < 2) return; if (rpc->scan(c, "dd", &h_entry, &h_id) < 2) return; if (rpc->scan(c, "*S", &rpc_extra_hdrs) < 0) return;
./Kristofer
On Wed, Nov 7, 2012 at 9:55 AM, Kristofer Signer <kristofer.signer@gmail.com mailto:kristofer.signer@gmail.com> wrote:
Hi all, I have an kamailio 3.3.2 server deployed with dialog awareness. When call dlg.end_dlg over xmlrpc I get an 200 OK response but the dialog is not ended. What I can do; call dlg.list (xmlrpc) and get the active dialog list, xmlrpc interface working. call dlg.dlg_list (xmlrpc) and get description of one dialog, xmlrpx method call with parameters working. call dlg_end_dlg (kamctl) and successfully end the dialog. so my questions are... Is the xmlrpc method dlg.end_dlg known to work? and if, what have I missed? thanks ./Kristofer Signer $ /usr/local/kamailio-3.3/sbin/kamailio -V version: kamailio 3.3.2 (x86_64/freebsd) flags: STATS: Off, USE_IPV6, USE_TCP, USE_TLS, TLS_HOOKS, USE_RAW_SOCKS, DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MEM, SHM_MMAP, PKG_MALLOC, F_MALLOC, FAST_LOCK-ADAPTIVE_WAIT, USE_DNS_CACHE, USE_DNS_FAILOVER, USE_NAPTR, USE_DST_BLACKLIST, HAVE_RESOLV_RES ADAPTIVE_WAIT_LOOPS=1024, MAX_RECV_BUFFER_SIZE 262144, MAX_LISTEN 16, MAX_URI_SIZE 1024, BUF_SIZE 65535, DEFAULT PKG_SIZE 4MB poll method support: poll, select, kqueue. id: unknown compiled on 09:53:26 Nov 2 2012 with gcc 4.2.1
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list sr-users@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
-- Daniel-Constantin Mierla -http://www.asipto.com http://twitter.com/#!/miconda -http://www.linkedin.com/in/miconda Kamailio Advanced Training, Berlin, Nov 5-8, 2012 -http://asipto.com/u/kat Kamailio Advanced Training, Miami, USA, Nov 12-14, 2012 -http://asipto.com/u/katu