Hi, At this point in the code the call is already prepaid since the account has been found with the query:
$query=sprintf("select * from %s where account = '%s'",addslashes($this->prepaid_table),addslashes($CDR->BillingPartyId)); Normally if the normalized number starts with a 0 it is routed to PSTN, what in most cases has a price. If a number resolves over ENUM, the Normalized URI would not start with a 0, but will be a sip account. This is just a convention we made and therefore you also should not have accounts starting with a 0 -- Tijmen de Mes AG-Projects From: Pavel Eremin <eremina....@gmail.com> Reply: OpenSIPS users mailling list <users@lists.opensips.org>> Date: 29 september 2014 at 18:30:00 To: OpenSIPS users mailling list <users@lists.opensips.org>> Subject: Re: [OpenSIPS-Users] CDRtool This code in rating.php... 2014-09-29 22:18 GMT+06:00 Pavel Eremin <eremina....@gmail.com>: Hi, All! Let's dance with CDRTool I am trying to use it on heavy load system and get stack. Why in this code author match canonical number with string started by 0?(in hard way) Because of this line all calls are postpaid...:( if (!preg_match("/^0[9-0]{1,}@/",$CDR->CanonicalURINormalized)) { $log=sprintf ("MaxSessionTime=unlimited Type=prepaid CallId=%s BillingParty=%s DestId=None",$NetFields['callid'],$CDR->BillingPartyId); syslog(LOG_NOTICE, $log); $this->logRuntime(); $ret="none"."\n"."type=prepaid"; return $ret; } else { if (!$CDR->DestinationId) { $log = sprintf ("error: cannot figure out the destination id for %s",$CDR->CanonicalURI); $this->logRuntime(); syslog(LOG_NOTICE, $log); $ret=$log."\n"."type=prepaid"; return $ret; } } _______________________________________________ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
_______________________________________________ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users