Update on this one.

I finally went back to AMI only for implementing this particular feature, but 
ofcourse I had to make an addition of a couple of lines for my particular 
requirement.

On "Dial", the 'dial' event is sent over AMI which I capture. Unfortunately the 
event didn't have any field identifying the account/or other user settable data 
for that particular call. So, I added lines in app_dial.c to send even the CDR 
userfield in the event.
So, before doing the 'Dial' I set CDR userfield with my own data, which is 
captured by the AMI user and populates/updates the correct row in my DB with 
the dialed channel, etc. 
>From this point on, I can hangup the required channel, even before it has been 
>answered/ even before it has started ringing. 


static void senddialevent(struct ast_channel *src, struct ast_channel *dst)
{
    manager_event(EVENT_FLAG_CALL, "Dial",
    "Source: %s\r\n"
    "Destination: %s\r\n"
    "CallerID: %s\r\n"
    "CallerIDName: %s\r\n"
    "SrcUniqueID: %s\r\n"
    "DestUniqueID: %s\r\n"
    "CDRUserfield: %s\r\n",
     src->name, dst->name, src->cid.cid_num ? src->cid.cid_num : "<unknown>",
     src->cid.cid_name ? src->cid.cid_name : "<unknown>", src->uniqueid,
     dst->uniqueid,
     (dst->cdr)?(dst->cdr->userfield):"");
}

I am writing this mail from home, so don't really have the exact field names.

cheers
- Ben.


--- On Thu, 5/8/08, Tzafrir Cohen <[EMAIL PROTECTED]> wrote:

> From: Tzafrir Cohen <[EMAIL PROTECTED]>
> Subject: Re: [asterisk-users] update DB on ringing/ catch ringing event
> To: asterisk-users@lists.digium.com
> Date: Thursday, May 8, 2008, 12:00 AM
> On Thu, May 08, 2008 at 12:19:52AM +0300, Atis Lezdins
> wrote:
> > On Wed, May 7, 2008 at 5:43 PM, Philipp Kempgen
> > <[EMAIL PROTECTED]> wrote:
> > > Benjamin Jacob schrieb:
> > >
> > >
> > >  > Anyway in Asterisk to update a DB/ do some
> action on
> > >  > events like ringing.
> > >  > The issue is I need to be able to
> hangup/cancel a
> > >  > call, if it's ringing(decided by the
> admin). This is
> > >  > independant of the timeout that we can
> specify in the
> > >  > Dial command.
> > >  >
> > >  > If I could somehow update a DB with the
> channel name
> > >  > on ringing, it would solve my problem.
> > >  >
> > >  > I assume NVlinedetect is one way to do it,
> but that
> > >  > isn't visible anymore, more so for
> Asterisk 1.4 and
> > >  > above.
> > >  >
> > >  > Any bright ideas on this one?
> > >
> > >  I think there is no other solution but to listen
> to events on
> > >  the Asterisk manager interface.
> > >
> > 
> > For now, not really.
> > 
> > You could try Realtime Channels patch I just mentioned
> here:
> >
> http://lists.digium.com/pipermail/asterisk-users/2008-May/211136.html
> > 
> > This should give you up-to-date list of channels in
> database, so you can use
> > 
> > SELECT * FROM channels WHERE state="Ring";
> > 
> > to get currently ringing channels.
> > 
> > If You find this patch useful, please add a comment to
> issue
> > http://bugs.digium.com/view.php?id=12556
> > that you would like to see Realtime status implemented
> in future
> > versions of Asterisk.
> 
> So you constantly poll the status of all channels? Waiting
> on manager
> interface event sounds more effective to me.
> 
> But what exact "ringing" is it? Isn't the
> call by then already in the
> dialplan (and could be hung up before answered?)
> 
> -- 
>                Tzafrir Cohen
> icq#16849755              jabber:[EMAIL PROTECTED]
> +972-50-7952406           mailto:[EMAIL PROTECTED]
> http://www.xorcom.com  iax:[EMAIL PROTECTED]/tzafrir
> 
> _______________________________________________
> -- Bandwidth and Colocation Provided by
> http://www.api-digital.com --
> 
> asterisk-users mailing list
> To UNSUBSCRIBE or update options visit:
>    http://lists.digium.com/mailman/listinfo/asterisk-users


      


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

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

Reply via email to