Maven Cipango Plugin Configuration Guide

This plugin is based on Maven Jetty Plugin, most of the options available on jetty plugin are also available.

To run a sip application from a maven project,

  1. add it in your POM file:
      <build>
        ...
        <plugins>  
          <plugin>
            <groupId>org.cipango</groupId>
            <artifactId>maven-cipango-plugin</artifactId>
         </plugin>
        </plugins>
      </build>
    
  2. start the plugin:
    mvn cipango:run

As Cipango is not available yet on public maven repositories, to use this plugin, you must download cipango sources and install it

How to configure the plugin

Container Configuration

Webapp Configuration
<project>
  ...
  <plugins>
    ...
      <plugin>
        <groupId>org.cipango</groupId>
        <artifactId>maven-cipango-plugin</artifactId>
        <configuration>
          <scanIntervalSeconds>5</scanIntervalSeconds>
          <!-- Http configuration -->
          <connectors>
            <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
              <port>9090</port>
              <maxIdleTime>60000</maxIdleTime>
            </connector>
          </connectors>
          <!-- SIP configuration -->
          <sipConnectors>
            <sipConnector implementation="org.cipango.sip.UdpConnector">
              <port>5060</port>
            </sipConnector>
          </sipConnectors>
          <messageLog implementation="org.cipango.log.MessageLog">
            <filename>target/logs/yyyy_mm_dd.message.log</filename>
            <retainDays>90</retainDays>
            <append>true</append>
          </messageLog>
        </configuration>
      </plugin>
  </plugins>
</project>

Configure with diameter support

To enable diameter support with maven plugin, the following configuration should be used.

<project>
  ...
  <plugins>
    ...
      <plugin>
        <groupId>org.cipango</groupId>
        <artifactId>maven-cipango-plugin</artifactId>
        <configuration>
          <jettyConfig>etc/diameter-mavenPlugin.xml</jettyConfig>
          <webAppConfig>
            <configurationClasses>
              <configurationClasse>org.mortbay.jetty.webapp.WebInfConfiguration</configurationClasse>
              <configurationClasse>org.mortbay.jetty.plus.webapp.EnvConfiguration</configurationClasse>
              <configurationClasse>org.mortbay.jetty.webapp.WebXmlConfiguration</configurationClasse>
              <configurationClasse>org.cipango.plugin.CipangoMavenConfiguration</configurationClasse>
              <configurationClasse>org.mortbay.jetty.webapp.JettyWebXmlConfiguration</configurationClasse>
              <configurationClasse>org.mortbay.jetty.webapp.TagLibConfiguration</configurationClasse>
              <configurationClasse>org.cipango.diameter.app.DiameterConfiguration</configurationClasse>
            </configurationClasses>
            <contextPath>/</contextPath>
          </webAppConfig>
        </configuration>
        <dependencies>
          <dependency>
            <groupId>org.cipango</groupId>
            <artifactId>cipango-diameter</artifactId>
            <version>1.0-SNAPSHOT</version>
          </dependency>
        </dependencies>
      </plugin>
  </plugins>
</project>
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd">
<Configure class="org.mortbay.jetty.Server" id="Server">

  <Call name="addLifeCycle">
    <Arg>
      <New id="node" class="org.cipango.diameter.Node">
        <Set name="server"><Ref id="Server"/></Set>
        <Call name="addConnector">
          <Arg>
            <New class="org.cipango.diameter.bio.DiameterSocketConnector">
              <Set name="port"><SystemProperty default="3868" name="diameter.port"/></Set>
              <Set name="node"><Ref id="node"/></Set>
            </New>
          </Arg>
        </Call>
        <Set name="router">
          <New class="org.cipango.diameter.Router">
            <Set name="node"><Ref id="node"/></Set>
            <Call name="addPeer">
              <Arg>
                <New class="org.cipango.diameter.Peer">
                  <Arg>hss.cipango.org</Arg>
                </New>
              </Arg>
            </Call>
          </New>
        </Set>
      </New>
    </Arg>
  </Call>

  <Call name="setAttribute">
    <Arg>org.cipango.diameter.Node</Arg>
    <Arg><Ref id="node"/></Arg>
  </Call>
</Configure>