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

Alex Balashov abalashov at evaristesys.com
Mon May 14 18:17:13 CEST 2018

Retransmission dampening (t_check_trans()) is meant to prevent this. But of course there are edge cases. I wouldn't worry about that. They're quite marginal. 

On May 14, 2018 6:15:42 PM GMT+02:00, KamDev Essa <kamdevessa at yahoo.com> wrote:
>Theoretically in the lifespan of an INVITE can request_route be called
>again? Do I need to set a flag that says I have already dipped DB?
>On Monday, May 14, 2018, 12:04:28 PM EDT, Alex Balashov
><abalashov at evaristesys.com> wrote:  
> 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
>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
>>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
>>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
>>Kamailio cfg file is cool @ first to get certain call flows knocked
>>but quite a maze when you get in deeper. 
>>> Right now, using the 1 piece stock cfg file, I am faced with the
>>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. 
>Kamailio (SER) - Users Mailing List
>sr-users at lists.kamailio.org

-- Alex

Sent via mobile, please forgive typos and brevity. 

More information about the sr-users mailing list