Skip to main content

mod_abstraction

About

mod_abstraction links a new API function to another using a regular expression parser to adapt the provided arguments. It allows for simplified, standardized script replacement API.

You MUST reload mod_abstraction when changing the XML to add or remove an API, or else they won't be created or removed. Destination settings and parsing can be changed in real time.

Usage

This defines what API link should be created and what to do once executed.

<api name="user_name" description="Return Name for extension" syntax="<exten>" parse="(.*)" destination="user_data" argument="$1@default var effective_caller_id_name"/>
  • name - API name
  • description - API description
  • syntax - API Syntax
  • parse - Regex parsing the original argument provided
  • destination - The API name of the final api execution
  • argument - Format for the argument sent to the final API. You can use $1 $2 $3... from the () result of the parse regex

Security

With mod_event_socket per-user API restriction, this can be useful to limit the capabilities a user can have over some API commands by restricting certain parameters a user can do.

Examples

Here are 2 examples:

tts_path(<text>) could be rewritten to python(tts2wav <text>)

user_password(<id>) could be rewritten to user_data(<id> param password)

Comments:

Shouldn't the XML attribute syntax be escaped since it contains < and > to be valid? If so, would the below be correct? <api name\="user_name" description\="Return Name for extension" syntax="<exten>" parse="(.*)" destination="user_data" argument="$1@default var effective_caller_id_name"/> Posted by wralphcook at Jun 14, 2015 11:23