In order to add 3rd party service and a new role definition you need to drop in the service plug-in in sipXconfig jar directory.

Service plug-in is similar to phone plug-in: but instead of new phone you describe a new service (SipxService) and optionally a new bundle
(SipxServiceBundle). You can have a single plugin adding multiple services (check service.beans.xml and bundle.beans.xml for example defintions).

Defining new service

Example: Openfire Service

Step 1. Create project directory
Under sipXconfig/plugins directory: create a new project. For example: openfire

Step 2. Create package
Create a new package. For example: org.sipfoundry.sipxconfig.openfire

Step 3. Create implementation.
Inside the package:

Create the service java class. It must extend org.sipfoundry.sipxconfig.service.SipxService otherwise system will not recognize your class as a possible service.

public class SipxOpenfireService extends SipxService {
    public static final String BEAN_ID = "sipxOpenfireService";

Step 4. Create plugin manifest
Create the xml spring configuration file: sipxplugins.beans.xml located in the root of your source tree

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="" xmlns:xsi=""
    <bean id="imBundle" parent="abstractBundle">
   	<constructor-arg value="im" />
    <bean id="sipxOpenfireService" class="org.sipfoundry.sipxconfig.openfire.SipxOpenfireService" scope="prototype" parent="sipxService">
        <property name="processName" value="SipXopenfire" />
        <property name="bundles">
            <ref bean="imBundle" />

Any other Spring beans that perform any kind of functionality should be added here.

Step 5. Create service start/stop script
Create a corresponding process.xml file that should be added on the sipX installation directory in process.d directory (near the other process.xml files): sipxopenfire-process.xml

<?xml version='1.0' encoding='iso-8859-1' standalone='yes'?>
<sipXecs-process xmlns=''>

Be sure that
<property name="processName" value="SipXopenfire" /> in sipxplugins.beans.xml
<name>SipXopenfire</name> in your service start/stop script.

Step 6. Packaging
Update appropriate Makefile, and rpm spec file to build and install your plugin.