Dear Marius
The scenario is as follows:
1. A Call is placed by a sip subscriber "A"
2. kamailio forwards the call to the asterisk server
3. Asterisk plays an IVR message on the subscriber "A", creates a
new call to a "virtual" number which is forwarded to the kamailio
server, and plays an ivr to this leg as well when the call is
answered, then it connects the two calls.
4. Kamailio translates the "virtual" number to the pstn number of
subscriber B
I have attached a picture of the above scenario.
The modules that are loaded are:
loadmodule "db_mysql.so"
loadmodule "mi_fifo.so"
loadmodule "mi_datagram.so"
loadmodule "sl.so"
loadmodule "tm.so"
loadmodule "rr.so"
loadmodule "pv.so"
loadmodule "maxfwd.so"
loadmodule "usrloc.so"
loadmodule "registrar.so"
loadmodule "textops.so"
loadmodule "uri_db.so"
loadmodule "siputils.so"
loadmodule "xlog.so"
loadmodule "acc.so"
loadmodule "dispatcher.so"
loadmodule "pdt.so"
loadmodule "dialplan.so"
loadmodule "siptrace.so"
loadmodule "dialog.so"
loadmodule "sqlops.so"
loadmodule "userblacklist.so"
loadmodule "htable.so"
loadmodule "uac.so"
The config that does all the routing is :
route[10] {
xlog("alx ------- This is Route 10 -------");
if($rU =~ "^.*%+")
{
xlog("alx ------- The number contains %23 ");
$rU = $(rU{re.subst,/^(.*)%23(.*)/\1\2/});
#$rU = $(rU{s.unescape.user}); #It changes the %23
to # !!
xlog("alx ------- The perl $rU ------- ");
}
if($rU =~ "^.*#+")
{
xlog("alx ------- The number contains #");
$rU = $(rU{re.subst,/^(.*)#(.*)/\1\2/});
#$rU = $(rU{s.unescape.user}); #It changes the %23
to # !!
xlog("alx ------- The perl $rU ------- ");
}
if(prefix2domain("2", "0")) {
$var(dial_grp) = $(rd{s.select,0,.}{s.int}); #
Dialplan group prefix for routing
$var(num_pr) = $(rd{s.select,1,.}{s.int}); # The
number of digits that prefix has
$var(num_translation) =
$(rd{s.select,2,.}{s.int}); # Called number translation
$avp(s:port_translation) =
$(rd{s.select,3,.}{s.int}); # Port number translation
#$var(test_var) = $(rd{s.select,4,.}{s.int}); #
Future property
$avp(s:cust_prefix) = $(rU{s.substr,0,$var(num_pr)});
$rU = $(rU{s.substr,$var(num_pr),0});
xlog("alx ------- The new rU is $rU and properties $rd
-------");
if($var(num_translation) == 1)
{
if($sht(a=>$rU)!=null){
$rU = $sht(a=>$rU);
xlog("alx ------- Translation Done. DST
num=$rU ----------");
} else {
xlog("alx ------- Translation NOT Done
----------");
}
#xlog("alx ------- We have DST number
translation for user fU $avp(s:frm_user_name) ----------");
#if(dp_translate("31", "$rU/$rU"))
#{
# xlog("alx ------- Translation Done.
DST num=$rU ----------");
#} else {
# xlog("alx ------- Translation NOT
Done ----------");
#}
}
if(dp_translate("$var(dial_grp)", "$rU/$rU"))
{
xlog("alx ------- The $rU and with
attributes :$avp(s:dest) -------\n");
$var(i) = 0;
while($(avp(s:dest){s.select,$var(i),.})!="#")
{
$avp(s:dstgrp) =
$(avp(s:dest){s.select,$var(i),.}{s.int});
$var(i) = $var(i) + 1;
xlog("alx ------- The
avp(s:dstgrp)=$avp(s:dstgrp) var(i)=$var(i) -------");
}
# backup the username so we can use
different prefixes
$avp(s:user) = $rU;
# select destination from first group
if(ds_select_domain("$avp(s:dstgrp)", "4"))
{
if($(ru{uri.param,prefix})!=null)
{
$ru
= "sip:" + $(ru{uri.param,prefix}) + $avp(s:user) + "@" + $rd;
} else {
$ru
= "sip:" + $avp(s:user) + "@" + $rd;
}
}
$avp(s:dstgrp) = null;
xlog("alx ------- The final
RURI is $ru ------- ");
if($avp(s:port_translation)
== 1)
{
rewriteport("5061");
}
t_on_failure("3");
t_relay();
exit;
}
}
}
Attached is the trace
Regards.
P.
marius zbihlei wrote:
Panagiotis Skoulikaritis wrote:
Hello Daniel
the kamailio version is 1.5.3
Regards
P.
Hello,
Can you give us more details like the sip message that generates
the coredump (or if every sip message received generates the
core), if your config does something more out of the
ordinary(let's say exotic). Can we reproduce it ?
It would also be helpful if you specify the list of modules you
have loaded.
Cheers,
Marius
Daniel-Constantin Mierla wrote:
Hello,
http://lists.openser-project.org/cgi-bin/mailman/listinfo/users
_______________________________________________
Kamailio (OpenSER) - Users mailing list
[email protected]
http://lists.kamailio.org/cgi-bin/mailman/listinfo/users
http://lists.openser-project.org/cgi-bin/mailman/listinfo/users