[SR-Users] Tagging a call with custom pseudo variables - cfg 101

Alex Balashov abalashov at evaristesys.com
Mon May 14 18:03:06 CEST 2018

Not necessarily. All depends on how performant the query is. 

Most real-world call processing involves at least one database touch point on every call. Our product does about five or six complex stored procedure calls and we can still do about 1000 CPS on most commodity hardware. 

On May 14, 2018 5:52:59 PM GMT+02:00, KamDev Essa <kamdevessa at yahoo.com> wrote:
>Awesome. Will I take a huge performance hit if I I dip to DB on every
>call. e.g 
> request_route {
>      # Initialize AVPs needed for the call.    # call usp that returns
>calltype and other items
>        sql_xquery("ca","call usp_classcall '$fU' , '$fd';", "ra");
>      $avp(call_type) = $xavp(ra=>callType);      $avp(goodies1) =
>$xavp(ra=> goodies1);      $avp( goodies2) = $xavp(ra=> goodies2);
>      $avp( goodies3) = $xavp(ra=> goodies3);
>          sql_result_free("ra");
>  }
>Will DB hits on every call hinder performance. 
>On Monday, May 14, 2018, 10:03:04 AM EDT, Alex Balashov
><abalashov at evaristesys.com> wrote:  
> I think your best bet is to set those variables as AVPs, so that their
>values can persist throughout the lifetime of the INVITE transaction.
>That way you can also access them in onreply_route and failure_route,
>which would not be the case with user variables ($var(...)). 
>  request_route {
>      # Initialise AVPs to $null or presumed default value.
>      $avp(call_type) = $null;
>      ...
>      # When determination is made as to the call type:
>      if($dbr(res=>[0,0]) eq 'vm')
>          $avp(call_type) = 'voicemail';
>  }
>-- Alex
>On Mon, May 14, 2018 at 01:56:53PM +0000, KamDev Essa wrote:
>> Being spoiled by Freeswitch profiles and dialplans, the stock 1 piece
>Kamailio cfg file is cool @ first to get certain call flows knocked out
>but quite a maze when you get in deeper. 
>> Right now, using the 1 piece stock cfg file, I am faced with the fact
>that my carrier outbound calls started failing after I enabled VM.
>Basically WITH_VOICEMAIL in route LOCATION started sending the carrier
>calls to TOVOICEMAIL and it basically dies there. I can see the
>route(TOVOICEMAIL) line and can condition it out with an if but I
>really don't now how to differentiate between a ext to ext call or a
>outbound call in the cfg file. However given SQL I could. 
>> Is there a way for me to place custom pseudo variables in the call
>right @ the start and use them in the script as needed. For example I
>could mark the call as ext to ext or carrier bound right @ the start
>and dodge VM in the LOCATION route. 
>> KD
>> _______________________________________________
>> Kamailio (SER) - Users Mailing List
>> sr-users at lists.kamailio.org
>> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users

-- Alex

Sent via mobile, please forgive typos and brevity. 

More information about the sr-users mailing list