Creating "sip:" links for CTI Software

Hello,

in our organisation we use Cisco Jabber as a CTI Software.
It accepts sip: URLs to open the CTI software and call the number.
AFAIK this is some kind of standard protocol handler and not uniqe / proprietary to Cisco Jabber.

Is it possible to create sip links directly in XWiki using the link/URL feature?
SIP links are like this:
<a href="sip:+49XXXXXXXX">Call</a>
49 is the German country code.

If I try to put sip:+49XXXXXXXX into a URL link it creates an link like this:
<a href="https://sip:+49XXXXXXXX">Test</a> so it adds https:// as protocol handler and obviously it won’t work.

Is there another out of the box way or are the accepted/processed protocol-handlers for links configurable?

If not configurable yet, is it thinkable for this to be implemented - of course only if this sip: protocol is truly standard and not a proprietary thing of Jabber.
I guess for it to be implemented in a good way it could be solved, that when putting something starting with sip: then it adds an normally hidden link category like it does when you input unc: links.
image

I’ve realized that we have a limitation indeed at the xwiki Syntax level. we’re missing a uri: prefix. Right now we have a url: one but that’s too limiting. See https://www.xwiki.org/xwiki/bin/view/Documentation/UserGuide/Features/XWikiSyntax/?syntax=2.1&section=Links

Right now, when using the wiki syntax, the workaround is to use the path: prefix, as in:

[[label>>path:sip:+49XXXXXXXX]]

You need to do the same in the WYSIWYG editor and use “Path”.

Thanks

PS: Using URL is wrong since sip:+49XXXXXXXX is clearly not a URL.

1 Like

Regarding implementation, XWiki is fully extensible and it would be enough to implement a ResourceReferenceTypeParser role with a sip or uri hint. And a XHTMLLinkTypeRenderer role with a sip or uri hint for the rendering to HTML.

See https://rendering.xwiki.org/xwiki/bin/view/Main/Extending/#HAddinganewLinkType for more

EDIT: I’m not sure how it would appear in the WYSIWYG editor though, I hope it’s automatic, cc @mflorea

I’ve created Loading...

Note that it’s not easy to add this to the xwiki/2.1 syntax since it would conflict with the ability to have a wiki named “uri”, as right now the following means a reference in the “uri” wiki: [[label>>uri:sip:xxxx]]. We have the same issue for adding a user:prefix.

1 Like

The list of resource types known by the WYSIWYG editor is currently defined by xwiki-platform/xwiki-platform-core/xwiki-platform-ckeditor/xwiki-platform-ckeditor-plugins/src/main/webjar/xwiki-resource/resource.js at master · xwiki/xwiki-platform · GitHub and can be extended relatively easy:

  • first you need to configure the list of resource types to appear in the link modal dropdown, see https://extensions.xwiki.org/xwiki/bin/view/Extension/CKEditor+Integration#HConfigurationParameters
    config['xwiki-link'] = config['xwiki-link'] || {};
    config['xwiki-link'].resourceTypes = ['doc', 'attach', 'url', 'mailto', 'sip'];
    
  • then you need to specify the resource type metadata, which you can do from a JSX:
    require(['deferred!resource'], resourcePromise => {
      resourcePromise.then(resource => {
        resource.types.sip = {
          label: 'SIP Phone Number',
          icon: 'glyphicon glyphicon-phone',
          placeholder: '+49XXXXXXXX'
        };
        return resource;
      });
    });
    

But of course, you also need to add the new resource type on the rendering side.

2 Likes

Thanks, I’ve added:

Thanks

1 Like