[sr-dev] [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.sip-router.org/pipermail/sr-dev/attachments/20100317/0bb364f5/attachment-0001.htm>
More information about the sr-dev
mailing list