Brekeke PBX Wiki

Sample ARS Plug-in

1. Code Sample –


package yourpackage;

import java.util.*;
import java.util.regex.*;
import com.brekeke.pbx.common.*;

public class ARSMatchingSample {
private static long lastmodified = 0;
	private static ArrayList patternlist = null;
	public static synchronized String regex( String param ) throws Exception {
		long l = NoteUtils.lastModified( "Regex" );
		if( l == 0 ){
			return null; 
		if( lastmodified != l ){
			lastmodified = l;
			String s = "Regex" );
			if( s == null ){
				return null;
			ArrayList al = new ArrayList();
			StringTokenizer st = new StringTokenizer( s );
			while( st.hasMoreTokens() ){
				String token = st.nextToken();
				Pattern pt = Pattern.compile( token );
				al.add( pt );
			patternlist = al;
		for( int i = 0; i < patternlist.size(); i++ ){
			Pattern pt = (Pattern) patternlist.get(i);
			Matcher mt = pt.matcher( param );
			if( mt.matches() ){
		return null;


This sample program refers to a note called “Regex” and matches using regular expressions. The program processes matching data strings in all rows in order starting from the top row. When the program finds a matched row, it returns the matched character strings inside parenthesis ( ). When the program can not locate a matched row, it returns null. (When null is returned, the patterns are considered mismatched.) The content of the note is cached in the variables. When a note is renewed, the program will re-read the content.



2. Example of ARS Setup

Set the following fields in ARS route’s Patterns > [Matching patterns]. Choose appropriate patterns (IN or OUT) depending on the environment.

[Matching Patterns]

To sip:(.+)@
Plugin yourpackage.ARSMatchingSample regex
Param &t1
Return (.+)

[Deploy Patterns]

To sip:&

In the above example, user SIP ID in To header is set as a parameter “&t1“. The return value “&p1” is drawn out and set in [Deploy Patterns] To header.



3. Example of Notes Setup

Select the menu [Notes]. Brekeke PBX plug-ins can use the text in the notes.

Name Description
Name Name of the note.
Description A brief description of the note
User access level Access level
Select from “No Access”, “Read only”, “Read/Write”
Note Text field where you can write your own notes.


Contents of the note “Regex“:


When the number is starting with “1650”, “1888”, or “1800”, the rest of the number in the parentheses will be drawn out as return value.



Related Links:


Yes No
Suggest Edit