[Asterisk-Users] How to determine duration call when is used Attended Transfer

Miroslav Nachev miro at space-comm.com
Tue Feb 28 08:53:40 MST 2006


   Hi,

   I am trying to determine the actual call duration (billsec) when is
used Attended Transfer but this is very dificult because there is no
relation between channels. Are there any suggestions how can be solved
this?

   I have an idea where in the CDR must be added new column where to
be stored the CDR UniqueID from another channel which is linked.
   Or to have another database/table (res_features) where to store all
events like transfer, hold and conferences.

   How to add some very useful patch for Attended Transfer? In the
standard source code of function builtin_atxfer(...) is writen:
   newchan = ast_feature_request_and_dial(
      transferer, "Local",
      ast_best_codec(transferer->nativeformats),
                     dialstr,
                     15000,
                     &outstate, cid_num, cid_name);

   We replace this line with this one:
   newchan = ast_feature_request_and_dial(
      transferer, "Local",
      ast_best_codec(transferer->nativeformats),
                     dialstr,
                     atxfernoanswertimeout,
                     &outstate, cid_num, cid_name);

   where "atxfernoanswertimeout" is static int which can be configured
in features.conf. the default value is 15000.

   Follow the main useful patch where when the other party is busy the
channel return busy signal instead return to the caller. The function
is ast_feature_request_and_dial(...):
   ...
   else if ((f->subclass == AST_CONTROL_BUSY) ||
            (f->subclass == AST_CONTROL_CONGESTION))
        {
            state = f->subclass;
-> new lines:
            if (option_verbose > 2)
               ast_verbose( VERBOSE_PREFIX_3 "%s is busy\n", chan->name);
            ast_indicate(caller, AST_CONTROL_BUSY);
-> old lines:
            /*
            ast_frfree(f);
            f = NULL;
            break;
            */


   Best Regards,
   Miroslav Nachev





More information about the asterisk-users mailing list