Testing out rtp_media_server module's rms_bridge()
function with the intention of bridging A-leg to B-leg (an Asterisk conference server). The B-leg never gets sent out and after the call times out, this testing instance crashes.
Config slightly modified from https://github.com/kamailio/kamailio/blob/master/src/modules/rtp_media_server/config_example/kamailio.cfg
...
loadmodule "uac.so"
event_route[rms:bridged] {
xnotice("[rms:bridged] ...\n");
}
route {
if (t_precheck_trans()) {
t_check_trans();
exit;
}
t_check_trans();
if (is_method("REGISTER")) {
save("location");
exit;
}
xnotice("[$rm][$ci]\n");
if (is_method("INVITE") && !has_totag()) {
fix_nated_contact();
if ($rU == "888") {
$var(target) = "sip:conference@example.com:5080;";
if (!rms_bridge("$var(target)", "rms:bridged")) {
send_reply("503", "server error");
xerr("rtp_media_server bridge error!\n");
}
exit;
}
if (!rms_answer("rms:answered")) {
t_reply("503", "server error");
xerr("rtp_media_server error!\n");
exit;
}
}
if(rms_dialog_check())
rms_sip_request();
exit;
}
I added loadmodule "uac.so"
, though I'm not sure it's required.
I can only do a stack trace at the moment running this test in a systemd-nspawn container
Stack trace of thread 589:
#0 0x00007fb449848518 n/a (/usr/lib64/kamailio/modules/rtp_media_server.so + 0x2f518)
#1 0x00007fb44982682b n/a (/usr/lib64/kamailio/modules/rtp_media_server.so + 0xd82b)
#2 0x00000000005cca6b n/a (/usr/sbin/kamailio + 0x1cca6b)
#3 0x000000000041cf90 n/a (/usr/sbin/kamailio + 0x1cf90)
#4 0x000000000041e9ea n/a (/usr/sbin/kamailio + 0x1e9ea)
#5 0x0000000000421c65 n/a (/usr/sbin/kamailio + 0x21c65)
#6 0x000000000042c61c n/a (/usr/sbin/kamailio + 0x2c61c)
#7 0x0000000000434cbd n/a (/usr/sbin/kamailio + 0x34cbd)
#8 0x00007fb44a8b0042 __libc_start_main (libc.so.6 + 0x27042)
#9 0x000000000041bbde n/a (/usr/sbin/kamailio + 0x1bbde)
kamailio[275]: 10(275) INFO: rtp_media_server [rtp_media_server.c:254]: rms_dialog_action_check(): dialog action RMS_BRIDGING [0_3746724993@2001:db8::99]
kamailio[275]: 10(275) INFO: rtp_media_server [rtp_media_server.c:583]: rms_bridging_call(): parsed[sip:conference@example.com:5080][0]
kamailio[275]: 10(275) INFO: rtp_media_server [rtp_media_server.c:599]: rms_bridging_call(): si[0x7f83fddb78e0]call-id[0_3746724993@2001:db8::99]cseq[0]ruri[32|sip:conference@example.com:5080]remote_uri[<sip:conference@example.com:5080>]local_uri[<sip:888@example.com>]
kamailio[275]: 10(275) DEBUG: tm [uac.c:450]: t_uac_prepare(): next_hop=<sip:conference@example.com:508>
kamailio[275]: 10(275) DEBUG: <core> [core/dns_cache.c:527]: _dns_hash_find(): (example.com(12), 1), h=205
kamailio[275]: 10(275) DEBUG: <core> [core/resolve.c:985]: get_record(): skipping 2 NS (p=0x9a0e6e, end=0x9a0ef2)
kamailio[275]: 10(275) DEBUG: <core> [core/resolve.c:998]: get_record(): parsing 4 ARs (p=0x9a0e9a, end=0x9a0ef2)
kamailio[275]: 10(275) DEBUG: <core> [core/dns_cache.c:1633]: dns_get_related(): (0x7f83fddbb878 (example.com, 1), 1, *0x7f8406d319f0) (0)
kamailio[275]: 10(275) DEBUG: <core> [core/dns_cache.c:739]: dns_cache_add_unsafe(): adding example.com(12) 1 (flags=0) at 205
kamailio[275]: 10(275) DEBUG: tm [uac.c:158]: dlg2hash(): hashid 35754
kamailio[275]: 10(275) DEBUG: tm [uac.c:678]: send_prepared_request_impl(): uac: 0x7f83fddb9a10 branch: 0 to 10.77.79.3:508
kamailio[275]: 10(275) DEBUG: <core> [core/onsend.c:50]: run_onsend(): required parameters are not available - ignoring
kamailio[275]: 10(275) ERROR: rtp_media_server [rtp_media_server.c:622]: rms_bridging_call(): tmb.t_request_within ok
There is no SIP traffic generated to <sip:conference@example.com:5080>
kamailio -v
version: kamailio 5.4.1-8.gitd43872c11e.fc32.1 (x86_64/linux) 09fd6a
flags: USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS, USE_RAW_SOCKS, DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MMAP, PKG_MALLOC, Q_MALLOC, F_MALLOC, TLSF_MALLOC, DBG_SR_MEMORY, USE_FUTEX, FAST_LOCK-ADAPTIVE_WAIT, USE_DNS_CACHE, USE_DNS_FAILOVER, USE_NAPTR, USE_DST_BLACKLIST, HAVE_RESOLV_RES, TLS_PTHREAD_MUTEX_SHARED
ADAPTIVE_WAIT_LOOPS 1024, MAX_RECV_BUFFER_SIZE 262144, MAX_URI_SIZE 1024, BUF_SIZE 65535, DEFAULT PKG_SIZE 8MB
poll method support: poll, epoll_lt, epoll_et, sigio_rt, select.
id: 09fd6a
compiled on 00:00:00 Oct 21 2020 with gcc 10.2.1
Linux kamtest 5.8.16-200.fc32.x86_64 #1 SMP Mon Oct 19 14:17:16 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.