Menu Close

Creating and modifying CPL scripts using the CPLed

To create a SIP CPL service visually there is only one solution, the CPLed editor. The editor may be downloaded from the sourceforge archive. Latest version of the editor is 0.4, from the 2009. The editor is Java based and therefore is multiplatform. The editor allows to create CPL script visually through the GUI, but it require the CPL and SIP knowledge.

Resulting CPL script look:

<?xml version="1.0" encoding="UTF-8"?>
<cpl xmlns="urn:ietf:params:xml:ns:cpl" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:ietf:params:xml:ns:cpl cpl.xsd" >
  <incoming >
    <reject reason="The CPL script rejected the call!" status="reject" />
  </incoming>
</cpl>

The CPL script should be uploaded on a SIP server for specified user somehow. The CPLed supports HTTP and SIP options to made this.

 

Observed problems

Problem 1

The SIP upload does not support SIP architectures with SIP authentication implemented, therefore the editor does not know how to react on Unauthorized solicitation.

Solution

Upload the script on the server manually, as is described for Kamailio 3.1 .

 

Problem 2

Once saved cpl script the editor does not know to open again. It return error displayed in cmd

parsing error = org.xml.sax.SAXException: Parse Error: URI=file:D:/temp/CPL-eD/c
pled_win_bin-0.4.0/CPLEd/cpl.dtd Line=2: schema_reference.4: Failed to read schema document ‘cpl.xsd’, because 1) could not find the document; 2) the document could not be read; 3) the root element of the document is not <xsd:schema>.

or in its GUI

 

The problem is, that the editor is using xsd schema, which it can not find. The file is not also located inside of the package downloaded from the sourceforge site.

Solution

Download the xpl.xsd definition from the http://www.iana.org/assignments/xml-registry/schema/cpl.xsd site and save it to the folder where the CPLed is extracted. The file is attached to the page.

 

Problem 3

The CPLed is using cpl.xsd definitions, which servers derived from SER (Kamailio, OpenSIPS) do not support as they use dtd definition. Therefore is not able, for example for Kamailio, to import a cpl script.

The definition is written on the second line of the script:

<cpl xmlns="urn:ietf:params:xml:ns:cpl" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:ietf:params:xml:ns:cpl cpl.xsd" >

Solution

Remove the xml specification inside of the cpl tag and made the tag empty (<cpl>). This allow then import the script into a Kamailio/OpenSIPS server, but the script is no more editable by the CPLed.

<cpl>
Rate this post

Leave a Reply

Your email address will not be published. Required fields are marked *

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

The reCAPTCHA verification period has expired. Please reload the page.