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>