[OpenSIPS-Devel] [OpenSIPS/opensips] ae9d2e: $route variable: Add support for script "callback ...
    Liviu Chircu 
    noreply at github.com
       
    Tue Dec 21 14:20:22 UTC 2021
    
    
  
  Branch: refs/heads/3.2
  Home:   https://github.com/OpenSIPS/opensips
  Commit: ae9d2e2d99922bbf5cdaed1842056e55d6e8f711
      https://github.com/OpenSIPS/opensips/commit/ae9d2e2d99922bbf5cdaed1842056e55d6e8f711
  Author: Liviu Chircu <liviu at opensips.org>
  Date:   2021-12-21 (Tue, 21 Dec 2021)
  Changed paths:
    M action.c
    M action.h
    M pvar.c
    M route.c
  Log Message:
  -----------
  $route variable: Add support for script "callback routes"
The idea of "callback routes" was missed during the development of
$route, with this feature having been first introduced in 3.1.
Conceptually, a "callback route" is a contextless route that may be
invoked in a nested fashion, during the processing of a SIP message in
any of the routes.
For example, on a SIP BYE:
    1. route
	1.1 loose_route() (this triggers the "callback route",
	    e.g. see dlg_on_hangup())
	1.2 route "dlg_on_hangup" is run, contextless!
    2. script processing continues! <--- here, $route output was broken
This patch fixes the issue, by adding recursion detection into the
run_top_route() function, such that the $route variable works as
expected regardless of how many (nested) times it is called.
Many thanks to Ben Newlin for catching this issue, as well as providing
a detailed report!
Fixes #2681
(cherry picked from commit bb1fcc27e279e3021537d197e97bee900fbbae37)
    
    
More information about the Devel
mailing list