[prev in list] [next in list] [prev in thread] [next in thread] 

List:       asterisk-dev
Subject:    Re: [asterisk-dev] Asterisk 13.6.0-rc2 Possible CDR Bug
From:       Ross Beer <ross.beer () outlook ! com>
Date:       2015-10-09 14:23:06
Message-ID: SNT151-W8279D3CE205F4E5D2AD8EDFF340 () phx ! gbl
[Download RAW message or body]

[Attachment #2 (multipart/alternative)]


Hi Matthew,
 
Thank you for your reply.
 
I have created issue ASTERISK-25458 regarding this. 
 
I agree with your summary, basically this would be really useful in a failover \
situation. For example if one route was tried and failed, the hang-up cause could be \
stored for the first call. At present the hang-up cause will be set in the next call \
attempt and therefore not relate to the actual call that had the issue. Another \
situation would be where you wish to store call stats to calculate a MOS score for a \
given call, etc, etc.  
I've raise another issue today with regards to chan_pjsip  and MOH (ASTERISK-25457), \
where by Asterisk 13 isn't placing a call on hold when receiving an invite with \
'a=sendonly'. I expected to see an invite with the IP address of 0.0.0.0, however \
both SNOM and Cisco SPA phones use the same method of placing a call on hold. I \
initially thought this was an issue with MOH, however I believe the issue relates to \
chan_pjsip and how it identifies a call hold situation. Any feedback on this issue \
would be appreciated.  
Kind regards,
 
Ross
 
> Date: Fri, 9 Oct 2015 08:50:16 -0500
> From: mjordan@digium.com
> To: asterisk-dev@lists.digium.com
> Subject: Re: [asterisk-dev] Asterisk 13.6.0-rc2 Possible CDR Bug
> 
> On Wed, Oct 7, 2015 at 2:06 PM, Ross Beer <ross.beer@outlook.com> wrote:
> > Hi,
> > 
> > I am having an issue setting custom variables in a CDR record for a call
> > once it has hung up. Setting variables before a dial are inserted into the
> > CDR correctly. I am using the following hangup_handler as per previous
> > versions:
> > 
> > [record-hangupcause]
> > 
> > exten => s,1,Set(CDR(hangupcause)=${HANGUPCAUSE})
> > exten => s,n,Return()
> > 
> > 
> > Before the dial a hangup handler is registered:
> > 
> > Set(CHANNEL(hangup_handler_push)=record-hangupcause,s,1)
> > 
> > 
> > The routine is called and the variables are being set, however not on the
> > channel's CDR which made the call.
> > 
> > By changing the cdr option 'endbeforehexten=no' this should keep the CDR
> > accessible, however all this does is cause another CDR to be created for the
> > 'h' extension.
> > 
> > Is there currently a bug with accessing CDR data for a channel that has been
> > hung-up? It looks to me that the CDR is closed before the hangup_handler is
> > called. However this shouldn't be the case!
> > I would be grateful for any feedback you can offer!
> > 
> > I am happy to open a bug report, but I would prefer to have this
> > acknowledged before doing so.
> > Ross
> > 
> 
> Hey Ross -
> 
> Sorry I didn't reply sooner.
> 
> The short answer is that it is working as designed; the long answer is
> that I think the design is wrong. (As the guy responsible, I feel like
> I'm only throwing stones at myself.)
> 
> Keeping a single CDR running after channels have left a bridge was one
> of those things that was relatively "easy" in 11 and earlier versions,
> and is a bit more challenging in 13. I think in this case that we
> probably should revisit the rules around it.
> 
> I do know this has come up a few times on the mailing lists, but I
> don't think anyone has made an issue yet. Please do made one,
> referencing this discussion.
> 
> Just to summarize what I think should happen:
> 
> endbeforehexten=no should cause no new CDR to be created in the 'h'
> extension, and the 'end' time on the CDR should not be set. The CDR
> should allow manipulation of its properties via the CDR function.
> 
> Does that sound right?
> 
> -- 
> Matthew Jordan
> Digium, Inc. | Director of Technology
> 445 Jan Davis Drive NW - Huntsville, AL 35806 - USA
> Check us out at: http://digium.com & http://asterisk.org
> 
> -- 
> _____________________________________________________________________
> -- Bandwidth and Colocation Provided by http://www.api-digital.com --
> 
> asterisk-dev mailing list
> To UNSUBSCRIBE or update options visit:
> http://lists.digium.com/mailman/listinfo/asterisk-dev
 		 	   		  


[Attachment #5 (text/html)]

<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>Hi Matthew,<BR>&nbsp;<BR>Thank you for your \
reply.<BR>&nbsp;<BR>I&nbsp;have created issue ASTERISK-25458 regarding \
this.&nbsp;<BR>&nbsp;<BR>I agree with your summary, basically this would be really \
useful in a failover situation. For example if one route was tried and failed, the \
hang-up cause could be stored for the first call. At present the hang-up cause will \
be set in the next call attempt and therefore not relate to the actual call that had \
the issue. Another situation would be where you wish to&nbsp;store call stats to \
calculate a&nbsp;MOS score for a given call, etc, etc.<BR>&nbsp;<BR>I've raise \
another issue today with regards to chan_pjsip&nbsp; and MOH (ASTERISK-25457), where \
by Asterisk 13 isn't placing a call on hold when receiving an invite with \
'a=sendonly'. I expected to see an invite with the IP address of 0.0.0.0, however \
both SNOM and Cisco SPA phones use the same method of placing a call on hold. I \
initially thought this was an issue with MOH, however I believe the issue relates to \
chan_pjsip and how it identifies a call hold situation. Any feedback on this issue \
would be appreciated.<BR>&nbsp;<BR>Kind \
regards,<BR>&nbsp;<BR>Ross<br>&nbsp;<BR><div>&gt; Date: Fri, 9 Oct 2015 08:50:16 \
-0500<br>&gt; From: mjordan@digium.com<br>&gt; To: \
asterisk-dev@lists.digium.com<br>&gt; Subject: Re: [asterisk-dev] Asterisk 13.6.0-rc2 \
Possible CDR Bug<br>&gt; <br>&gt; On Wed, Oct 7, 2015 at 2:06 PM, Ross Beer \
&lt;ross.beer@outlook.com&gt; wrote:<br>&gt; &gt; Hi,<br>&gt; &gt;<br>&gt; &gt; I am \
having an issue setting custom variables in a CDR record for a call<br>&gt; &gt; once \
it has hung up. Setting variables before a dial are inserted into the<br>&gt; &gt; \
CDR correctly. I am using the following hangup_handler as per previous<br>&gt; &gt; \
versions:<br>&gt; &gt;<br>&gt; &gt; [record-hangupcause]<br>&gt; &gt;<br>&gt; &gt; \
exten =&gt; s,1,Set(CDR(hangupcause)=${HANGUPCAUSE})<br>&gt; &gt; exten =&gt; \
s,n,Return()<br>&gt; &gt;<br>&gt; &gt;<br>&gt; &gt; Before the dial a hangup handler \
is registered:<br>&gt; &gt;<br>&gt; &gt; \
Set(CHANNEL(hangup_handler_push)=record-hangupcause,s,1)<br>&gt; &gt;<br>&gt; \
&gt;<br>&gt; &gt; The routine is called and the variables are being set, however not \
on the<br>&gt; &gt; channel's CDR which made the call.<br>&gt; &gt;<br>&gt; &gt; By \
changing the cdr option 'endbeforehexten=no' this should keep the CDR<br>&gt; &gt; \
accessible, however all this does is cause another CDR to be created for the<br>&gt; \
&gt; 'h' extension.<br>&gt; &gt;<br>&gt; &gt; Is there currently a bug with accessing \
CDR data for a channel that has been<br>&gt; &gt; hung-up? It looks to me that the \
CDR is closed before the hangup_handler is<br>&gt; &gt; called. However this \
shouldn't be the case!<br>&gt; &gt; I would be grateful for any feedback you can \
offer!<br>&gt; &gt;<br>&gt; &gt; I am happy to open a bug report, but I would prefer \
to have this<br>&gt; &gt; acknowledged before doing so.<br>&gt; &gt; Ross<br>&gt; \
&gt;<br>&gt; <br>&gt; Hey Ross -<br>&gt; <br>&gt; Sorry I didn't reply \
sooner.<br>&gt; <br>&gt; The short answer is that it is working as designed; the long \
answer is<br>&gt; that I think the design is wrong. (As the guy responsible, I feel \
like<br>&gt; I'm only throwing stones at myself.)<br>&gt; <br>&gt; Keeping a single \
CDR running after channels have left a bridge was one<br>&gt; of those things that \
was relatively "easy" in 11 and earlier versions,<br>&gt; and is a bit more \
challenging in 13. I think in this case that we<br>&gt; probably should revisit the \
rules around it.<br>&gt; <br>&gt; I do know this has come up a few times on the \
mailing lists, but I<br>&gt; don't think anyone has made an issue yet. Please do made \
one,<br>&gt; referencing this discussion.<br>&gt; <br>&gt; Just to summarize what I \
think should happen:<br>&gt; <br>&gt; endbeforehexten=no should cause no new CDR to \
be created in the 'h'<br>&gt; extension, and the 'end' time on the CDR should not be \
set. The CDR<br>&gt; should allow manipulation of its properties via the CDR \
function.<br>&gt; <br>&gt; Does that sound right?<br>&gt; <br>&gt; -- <br>&gt; \
Matthew Jordan<br>&gt; Digium, Inc. | Director of Technology<br>&gt; 445 Jan Davis \
Drive NW - Huntsville, AL 35806 - USA<br>&gt; Check us out at: http://digium.com \
&amp; http://asterisk.org<br>&gt; <br>&gt; -- <br>&gt; \
_____________________________________________________________________<br>&gt; -- \
Bandwidth and Colocation Provided by http://www.api-digital.com --<br>&gt; <br>&gt; \
asterisk-dev mailing list<br>&gt; To UNSUBSCRIBE or update options visit:<br>&gt;    \
http://lists.digium.com/mailman/listinfo/asterisk-dev<br></div> 		 	   		  \
</div></body> </html>



-- 
_____________________________________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-dev

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic