[Kamailio-Users] kamailio crashes
Daniel-Constantin Mierla
miconda at gmail.com
Sun Mar 14 16:42:14 CET 2010
Hello,
can you send me ngrep/pcap file with ip addresses so I can match which
200ok is causing the problem (coming from B or coming from Asterisk)?
The backtrace shows ip while the sip trace is masked.
Also, I would need a bit more info from the core file. Please keep one
around. The issue seems to be related to P-Asserted-Identity header, but
I couldn't find any such header in the sip trace you sent.
Are you accounting the PAI header?
Thanks,
Daniel
On 03/10/2010 03:30 PM, Panagiotis Skoulikaritis wrote:
> 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
> Users at lists.kamailio.org
> http://lists.kamailio.org/cgi-bin/mailman/listinfo/users
> http://lists.openser-project.org/cgi-bin/mailman/listinfo/users
--
Daniel-Constantin Mierla
Kamailio SIP Router Masterclass, Berlin, March 22-26, 2010
* http://www.asipto.com/index.php/sip-router-masterclass/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.kamailio.org/pipermail/users/attachments/20100314/fe52413d/attachment.htm>
More information about the Users
mailing list