[Kamailio-Users] kamailio crashes

Panagiotis Skoulikaritis pskoul at algonet.gr
Wed Mar 17 11:56:32 CET 2010


Hello Daniel

I do have quite a few core files, please send me the gdb commands.

Regards

Panagiotis.

Daniel-Constantin Mierla wrote:
> Hello Panagiotis,
>
> On 03/16/2010 02:21 PM, Panagiotis Skoulikaritis wrote:
>> Hello Daniel
>>
>> I will need time to recreate the problem,
>> attached are the only traces I kept.
>> on the amaze-4.cap the calls are originated by a softphone registered 
>> on the kamailio
>> on the crash.cap the calls are originated from the "PSTN".
>>
>> we do account the $pd and the $pn
>>
>> I reply to you directly since i don't want to give the traces on the 
>> mailing list, I hope you will understand.
>
> I asked to be sent private, it is ok.
>
>>
>> Also for workaround Alex took out the PDT module from the route and 
>> the kamailio do not crash anymore.
>
> Hmm, so you say pdt module is related? That is pretty small and old 
> module...
>
> Do you still have the core file? I can send you some gdb commands to 
> get more details out of it.
>
> Thanks,
> Daniel
>
>>
>> Regards
>>
>> Panagiotis
>>
>>
>> Daniel-Constantin Mierla wrote:
>>> 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/ 
>>>   
>
> -- 
> 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/20100317/0bb364f5/attachment-0001.htm>


More information about the Users mailing list