Hi<br><br>I am using this code below to calculate the duration and billsec of a call in asterisk.&nbsp; It works fine when I test it with one call, however if I make a 3-way call, when I hangup it crashes asterisks. When I check the log I get this debug error right before it crashes:DEBUG[23679] rtp.c: Oooh, something is weird, backing out.<br>
<br>Can anyone give me some insight as to what I am doing wrong.<br><br>struct tm tm;<br> timestr[128];<br>time_t t;<br><br>{<br>&nbsp;&nbsp;&nbsp; time(&amp;t);<br>&nbsp;&nbsp;&nbsp; ast_localtime(&amp;t, &amp;tm, NULL);<br>&nbsp;&nbsp;&nbsp; strftime(timestr,128,DATE_FORMAT,&amp;tm);<br>
&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; ast_cdr_end(cdr);<br>&nbsp; <br>&nbsp;&nbsp;&nbsp; if (!cdr-&gt;end.tv_sec &amp;&amp; !cdr-&gt;end.tv_usec)<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ast_log(LOG_WARNING, &quot;CDR on channel &#39;%s&#39; lacks end\n&quot;, cdr-&gt;channel);<br><br>&nbsp; &nbsp; if (!cdr-&gt;start.tv_sec &amp;&amp; !cdr-&gt;start.tv_usec)<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ast_log(LOG_WARNING, &quot;CDR on channel &#39;%s&#39; lacks start\n&quot;, cdr-&gt;channel);<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; if (cdr-&gt;answer.tv_sec || cdr-&gt;answer.tv_usec) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; cdr-&gt;billsec = cdr-&gt;end.tv_sec - cdr-&gt;answer.tv_sec + (cdr-&gt;end.tv_usec - cdr-&gt;answer.tv_usec) / 1000000;<br>&nbsp;&nbsp;&nbsp; } else {&nbsp;&nbsp;&nbsp; cdr-&gt;billsec = 0;}<br>
<br>}<br>