Hi Jayesh,

Yes, the missed_call flag is automatically reset after each triggering, so basically, in failure route, you need to set it again. That is done on purpose.

Regards,
Bogdan

On 12/03/2011 01:15 PM, Jayesh Nambiar wrote:
Hello,
The below problem was because of an error in the configuration. Basically you have to set the missed_call flag every time before going into the failure route. It works well when configured like that !!

Thanks for all the help.

--- Jayesh

On Fri, Dec 2, 2011 at 2:51 PM, Jayesh Nambiar <[email protected] <mailto:[email protected]>> wrote:

    Hi Bogdan,
    Just ran into another challenge while testing this. Basically I
    try 3 carriers for a single call. So what happens now is, the
    first failed call gets inserted into the missed_calls table but
    the second and third one does not enter. Moreover, if the first
    call fails and before the second carrier connects if the caller
    sends a CANCEL, the row with 487 status also does not get entered
    into the missed_calls table.
    How do I make sure that all failed transactions get inserted into
    the missed_call table and successful call get inserted into the
    acc table !!
    Thanks,

    --- Jayesh


    On Tue, Nov 29, 2011 at 12:03 AM, Jayesh Nambiar
    <[email protected] <mailto:[email protected]>> wrote:

        Thanks for the super suggestion. This has just made it very
        simple and isolated !!

        --- Jayesh


        On Mon, Nov 28, 2011 at 5:21 PM, Bogdan-Andrei Iancu
        <[email protected] <mailto:[email protected]>> wrote:

            Hello Jayesh,

            For your purpose + needs, I would rather suggest to use,
            instead of multi-leg accounting, standard accounting +
            missed calls accounting - so in ACC table you will get a
            single record showing calls from caller to GWn (successful
            one), while in MISSED_CALLS table you will get one record
            per failure (with the corresponding reply info). Probably
            you can use db_extra to push more than the standard info
            into the accounting records.

            Regards,
            Bogdan


            On 11/28/2011 12:57 PM, Jayesh Nambiar wrote:
            Hi All,
            I use failure_routes to failover the calls to multiple
            carriers. So if 1st carrier rejects the call, I route it
            to another carrier for the call to get completed. Now, I
            need the accounting of first carrier also in the acc
            table. Basically I need to know that this call was
            rejected from the 1st carrier and got connected on the
            second carrier. I am able to insert all the carrier
            related details in the acc table using multi-leg info
            parameter. But I get stuck on the standard acc columns
            like sip_code, sip_reason, to_tag etc.
            When the call gets connected on second carrier, the
            sip_code and sip_reason for the first row also shows 200
            OK when in reality the sip_code and sip_reason for the
            first attempt was 503 Service Unavailable. Is it possible
            to maintain those standard values also in some
            variable/AVPs and insert appropriate values in
            appropriate rows??

            I also tried a different approach of not using acc module
            and using avp_db_query for accounting on reply_routes.
            Basically this will insert a record for every initial
            INVITE and all BYEs after a reply for the method is
            received. Something like this gives me more control on
            what is to be inserted according to my requirements:

            if(loose_route()) {
            if(is_method("BYE")) {
               t_on_reply("1");
            }
               t_relay();
            }

            if(is_method("INVITE")) {
            <my logic>
                t_on_reply("1");
                t_relay();
            }

            onreply_route[1] {
               if(status =~ [2-6][0-9][0-9]) {
                   avp_db_query("insert into acc (sip_method,
            sip_to_tag,sip_callid,sip_code,sip_reason, calling_party,
            called_party, source_ip, dst_ip) values ('$rm', '$tt',
            '$ci', '$rs', '$rr', '$fU', '$avp(called_party)',
            '$avp(source_ip)', '$avp(dst_ip)' )");
               }
            }
            I set the appropriate AVPs like $avp(called_party),
            $avp(dst_ip) etc after the initial INVITEs according to
            my requirements. These are my questions:

            1) First and foremost will this method insert proper
            INVITE and BYE for accounting purpose?
            2) How much roughly will be the penalty on efficiency as
            compared to using the acc module?
            3) Can AVP module take advantage of parameters like
            query_buffer_time and query_flush_time for performance
            reasons?
            4) Can I use prepared_statements while inserting using
            avp_db_query for performance reasons?

            Any help and suggestions regarding the above queries are
            very much appreciated.
            Thanks in advance.

            --- Jayesh


            _______________________________________________
            Users mailing list
            [email protected]  <mailto:[email protected]>
            http://lists.opensips.org/cgi-bin/mailman/listinfo/users


-- Bogdan-Andrei Iancu
            OpenSIPS Founder and Developer
            OpenSIPS solutions and "know-how"






--
Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
OpenSIPS solutions and "know-how"

_______________________________________________
Users mailing list
[email protected]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

Reply via email to