[SIP Beyond VoIP] Another case where Sylk would reject Notifications

Hadzhiev, Tihomir tihomir.hadzhiev at acision.com
Thu Nov 15 14:34:25 CET 2012


Hi Guys,

I hit another wall in here ( even though I have applied a workaround, but not sure to what extend it works ).

So the short story


1.       IMS client logs in the SIP proxy ( IMS core )

2.       Whole world of notifications flies around and that's fine

3.       Of course before the notifications there is the PUBLISH sent across which reaches the Presence server. The PUBLISH has in the XML part the following:

<?xml version="1.0" encoding="utf-8"?>
<presence xmlns:cp="urn:ietf:params:xml:ns:pidf:cipid" xmlns:caps="urn:ietf:params:xml:ns:pidf:caps" xmlns:rpid="urn:ietf:params:xml:ns:pidf:rpid" xmlns:pdm="urn:ietf:params:xml:ns:pidf:data-model" xmlns:p="urn:ietf:params:xml:ns:pidf-diff" xmlns:op="urn:oma:xml:prs:pidf:oma-pres" entity="sip:alice at open-ims.test" xmlns="urn:ietf:params:xml:ns:pidf">
  <pdm:person id="USVMMSSM">
    <op:overriding-willingness>
      <op:basic>open</op:basic>
    </op:overriding-willingness>
    <rpid:activities>
      <rpid:unknown />
    </rpid:activities>
    <rpid:mood>
      <rpid:neutral />
    </rpid:mood>
    <cp:homepage>http://dir.bg</cp:homepage>
    <pdm:note>TEST TEXT</pdm:note>
  </pdm:person>
  <pdm:device id="d0001">
    <status>
      <basic>open</basic>
    </status>
    <caps:devcaps>
      <caps:mobility>
        <caps:supported>
          <caps:fixed />
        </caps:supported>
      </caps:mobility>
    </caps:devcaps>
    <op:network-availability>
      <op:network id="IMS">
        <op:active />
      </op:network>
    </op:network-availability>
    <pdm:deviceID>urn:uuid:3ca50bcb-7a67-44f1-afd0-994a55f930f4</pdm:deviceID>
  </pdm:device>
</presence>

The important tag here is the <pdm:person id="USVMMSSM">


4.       As Expected IMS Core doesn't have a problem with this string, as well the presence Server.

5.       As I have finally kind of a working subscription ( by manually Authorizing the XMPP guy in the Presence server, e.g. changing the status=1 ) the presence server sends NOTIFY against SYLK.

At this very moment SYLK would complain with the following error:

warning: [xmppgateway] Error parsing PIDF document: Element '{urn:ietf:params:xml:ns:pidf:data-model}person', attribute 'id': 'USVMMSSM' is not a valid value of the atomic type 'xs:ID'., line 35


6.       The same would happen if the XMPP guy logs in and checks for presence towards Sylk -> Presence server

Now I have investigated the problem and digged upto the XML schemas in sipsimple, e.g. data-model.xml

The guilty one here is:

      <xs:attribute name="id" type="xs:ID" use="required"/>

Now I'm not sure if the above record for ID is really an invalid one, but it might well be.

There for I made a short test, e.g. change the:

      <xs:attribute name="id" type="xs:ID" use="required"/>

To

      <xs:attribute name="id" type="xs:string" use="required"/>  on both places in data-model.xml

In that case if the XMPP guy will login, the problem won't appear, and I will get confirmation from Sylk that the XMPP guy is subscribed for Alice's presence ( Alice the IMS user ) -> so far so good which means that the whole chain of communication is there, e.g. XMPP Server <-> Sylk <-> Presence Server and the notifications are correct



What else bothers me is the following scenario, where a presence server is used.

In case a presence server is used ( in case both IMS and XMPP guys have authorized each other's already  and the XMPP GUY is already ONLINE, e.g. SUBSCRIBED for the IMS's part for presence ) when the IMS client would login the following scenario is happening:


1.       IMS client logs in - sends SUBSCRIBE only to the presence server ( where Netwrok Address Book is used )

2.       The subscribtion is accepted and everything looks fine, NOTIFY comes bad to the IMS client and so on.

3.       At this point the PRESENCE SERVER would generate a NOTIFY which will be routed from the IMS core towards the Sylk. The Notify would look the following way:

10.226.20.240:6060 -(SIP over UDP)-> 10.226.20.56:6060
NOTIFY sip:vafkwdum at 10.226.20.56:6060 SIP/2.0
Via: SIP/2.0/UDP 10.226.20.240:6060;branch=z9hG4bK18f6.19a33997.0
Via: SIP/2.0/UDP 10.226.20.56:5080;branch=z9hG4bK18f6.8121c624.0
To: sip:tihoparvi at testing.com;tag=-j50HN5nEOhFzvHte4Dh-XtYi3eHDM61
From: sip:alice at open-ims.test;tag=48b5b8952e8d0bca6256941910840e90-e846
CSeq: 8 NOTIFY
Call-ID: y9Uei.pLa2d6qMP76JtVH.LIA1xSKxd2
Content-Length: 10358
User-Agent: kamailio (3.3.2 (x86_64/linux))
Max-Forwards: 16
Event: presence
Contact: <sip:10.226.20.56:5080;transport=udp>
Subscription-State: active;expires=2743
Content-Type: application/pidf+xml

<?xml version="1.0" encoding="utf-8"?>
<presence xmlns:cp="urn:ietf:params:xml:ns:pidf:cipid" xmlns:caps="urn:ietf:params:xml:ns:pidf:caps" xmlns:rpid="urn:ietf:params:xml:ns:pidf:rpid" xmlns:pdm="urn:ietf:params:xml:ns:pidf:data-model" xmlns:p="urn:ietf:params:xml:ns:pidf-diff" xmlns:op="urn:oma:xml:prs:pidf:oma-pres" xmlns="urn:ietf:params:xml:ns:pidf" entity="sip:alice at open-ims.test">
  <pdm:person id="USVMMSSM">
    <op:overriding-willingness>
      <op:basic>open</op:basic>
    </op:overriding-willingness>
    <rpid:activities>
      <rpid:unknown/>
    </rpid:activities>
    <rpid:mood>
      <rpid:neutral/>
    </rpid:mood>
    <cp:homepage>http://dir.bg</cp:homepage>
    <pdm:note>TEST TEXT</pdm:note>
  </pdm:person>
  <pdm:device id="d0001">
    <status>
      <basic>open</basic>
    </status>
    <caps:devcaps>
      <caps:mobility>
        <caps:supported>
          <caps:fixed/>
        </caps:supported>
      </caps:mobility>
    </caps:devcaps>
    <op:network-availability>
      <op:network id="IMS">
        <op:active/>
      </op:network>
    </op:network-availability>
    <pdm:deviceID>urn:uuid:3ca50bcb-7a67-44f1-afd0-994a55f930f4</pdm:deviceID>
  </pdm:device>

  <pdm:person xmlns:pdm="urn:ietf:params:xml:ns:pidf:data-model" xmlns:op="urn:oma:xml:prs:pidf:oma-pres" xmlns:rpid="urn:ietf:params:xml:ns:pidf:rpid" xmlns:cp="urn:ietf:params:xml:ns:pidf:cipid" id="USVMMSSM">
    <op:overriding-willingness>
      <op:basic>open</op:basic>
    </op:overriding-willingness>
    <rpid:activities>
      <rpid:unknown/>
    </rpid:activities>
    <rpid:mood>
      <rpid:neutral/>
    </rpid:mood>
    <cp:homepage>http://dir.bg</cp:homepage>
    <pdm:note>TEST TEXT</pdm:note>
  </pdm:person>
  <pdm:device xmlns:pdm="urn:ietf:params:xml:ns:pidf:data-model" xmlns="urn:ietf:params:xml:ns:pidf" xmlns:caps="urn:ietf:params:xml:ns:pidf:caps" xmlns:op="urn:oma:xml:prs:pidf:oma-pres" id="d0001">
    <status>
      <basic>open</basic>
    </status>
    <caps:devcaps>
      <caps:mobility>
        <caps:supported>
          <caps:fixed/>
        </caps:supported>
      </caps:mobility>
    </caps:devcaps>
    <op:network-availability>
      <op:network id="IMS">
        <op:active/>
      </op:network>
    </op:network-availability>
    <pdm:deviceID>urn:uuid:3ca50bcb-7a67-44f1-afd0-994a55f930f4</pdm:deviceID>
  </pdm:device>

  <pdm:person xmlns:pdm="urn:ietf:params:xml:ns:pidf:data-model" xmlns:op="urn:oma:xml:prs:pidf:oma-pres" xmlns:rpid="urn:ietf:params:xml:ns:pidf:rpid" xmlns:cp="urn:ietf:params:xml:ns:pidf:cipid" id="USVMMSSM">
    <op:overriding-willingness>
      <op:basic>open</op:basic>
    </op:overriding-willingness>
    <rpid:activities>
      <rpid:unknown/>
    </rpid:activities>
    <rpid:mood>
      <rpid:neutral/>
    </rpid:mood>
    <cp:homepage>http://dir.bg</cp:homepage>
    <pdm:note>TEST TEXT</pdm:note>
  </pdm:person>
  <pdm:device xmlns:pdm="urn:ietf:params:xml:ns:pidf:data-model" xmlns="urn:ietf:params:xml:ns:pidf" xmlns:caps="urn:ietf:params:xml:ns:pidf:caps" xmlns:op="urn:oma:xml:prs:pidf:oma-pres" id="d0001">
    <status>
      <basic>open</basic>
    </status>
    <caps:devcaps>
      <caps:mobility>
        <caps:supported>
          <caps:fixed/>
        </caps:supported>
      </caps:mobility>
    </caps:devcaps>
    <op:network-availability>
      <op:network id="IMS">
        <op:active/>
      </op:network>
    </op:network-availability>
    <pdm:deviceID>urn:uuid:3ca50bcb-7a67-44f1-afd0-994a55f930f4</pdm:deviceID>
  </pdm:device>

  <pdm:person xmlns:pdm="urn:ietf:params:xml:ns:pidf:data-model" xmlns:op="urn:oma:xml:prs:pidf:oma-pres" xmlns:rpid="urn:ietf:params:xml:ns:pidf:rpid" xmlns:cp="urn:ietf:params:xml:ns:pidf:cipid" id="USVMMSSM">
    <op:overriding-willingness>
      <op:basic>open</op:basic>
    </op:overriding-willingness>
    <rpid:activities>
      <rpid:unknown/>
    </rpid:activities>
    <rpid:mood>
      <rpid:neutral/>
    </rpid:mood>
    <cp:homepage>http://dir.bg</cp:homepage>
    <pdm:note>TEST TEXT</pdm:note>
  </pdm:person>
  <pdm:device xmlns:pdm="urn:ietf:params:xml:ns:pidf:data-model" xmlns="urn:ietf:params:xml:ns:pidf" xmlns:caps="urn:ietf:params:xml:ns:pidf:caps" xmlns:op="urn:oma:xml:prs:pidf:oma-pres" id="d0001">
    <status>
      <basic>open</basic>
    </status>
    <caps:devcaps>
      <caps:mobility>
        <caps:supported>
          <caps:fixed/>
        </caps:supported>
      </caps:mobility>
    </caps:devcaps>
    <op:network-availability>
      <op:network id="IMS">
        <op:active/>
      </op:network>
    </op:network-availability>
    <pdm:deviceID>urn:uuid:3ca50bcb-7a67-44f1-afd0-994a55f930f4</pdm:deviceID>
  </pdm:device>

  <pdm:person xmlns:pdm="urn:ietf:params:xml:ns:pidf:data-model" xmlns:op="urn:oma:xml:prs:pidf:oma-pres" xmlns:rpid="urn:ietf:params:xml:ns:pidf:rpid" xmlns:cp="urn:ietf:params:xml:ns:pidf:cipid" id="USVMMSSM">
    <op:overriding-willingness>
      <op:basic>open</op:basic>
    </op:overriding-willingness>
    <rpid:activities>
      <rpid:unknown/>
    </rpid:activities>
    <rpid:mood>
      <rpid:neutral/>
    </rpid:mood>
    <cp:homepage>http://dir.bg</cp:homepage>
    <pdm:note>TEST TEXT</pdm:note>
  </pdm:person>
  <pdm:device xmlns:pdm="urn:ietf:params:xml:ns:pidf:data-model" xmlns="urn:ietf:params:xml:ns:pidf" xmlns:caps="urn:ietf:params:xml:ns:pidf:caps" xmlns:op="urn:oma:xml:prs:pidf:oma-pres" id="d0001">
    <status>
      <basic>open</basic>
    </status>
    <caps:devcaps>
      <caps:mobility>
        <caps:supported>
          <caps:fixed/>
        </caps:supported>
      </caps:mobility>
    </caps:devcaps>
    <op:network-availability>
      <op:network id="IMS">
        <op:active/>
      </op:network>
    </op:network-availability>
    <pdm:deviceID>urn:uuid:3ca50bcb-7a67-44f1-afd0-994a55f930f4</pdm:deviceID>
  </pdm:device>

  <pdm:person xmlns:pdm="urn:ietf:params:xml:ns:pidf:data-model" xmlns:op="urn:oma:xml:prs:pidf:oma-pres" xmlns:rpid="urn:ietf:params:xml:ns:pidf:rpid" xmlns:cp="urn:ietf:params:xml:ns:pidf:cipid" id="p0000019">
    <op:overriding-willingness>
      <op:basic>open</op:basic>
    </op:overriding-willingness>
    <rpid:activities>
      <rpid:unknown/>
    </rpid:activities>
    <cp:homepage>http://www.doubango.org</cp:homepage>
    <pdm:note>Hello world</pdm:note>
  </pdm:person>
  <pdm:device xmlns:pdm="urn:ietf:params:xml:ns:pidf:data-model" xmlns="urn:ietf:params:xml:ns:pidf" xmlns:caps="urn:ietf:params:xml:ns:pidf:caps" xmlns:op="urn:oma:xml:prs:pidf:oma-pres" id="d0001">
    <status>
      <basic>open</basic>
    </status>
    <caps:devcaps>
      <caps:mobility>
        <caps:supported>
          <caps:fixed/>
        </caps:supported>
      </caps:mobility>
    </caps:devcaps>
    <op:network-availability>
      <op:network id="IMS">
        <op:active/>
      </op:network>
    </op:network-availability>
    <pdm:deviceID>urn:uuid:3ca54bcb-9a69-55a2-aab4-995a55a934a5</pdm:deviceID>
  </pdm:device>

  <pdm:person xmlns:pdm="urn:ietf:params:xml:ns:pidf:data-model" xmlns:op="urn:oma:xml:prs:pidf:oma-pres" xmlns:rpid="urn:ietf:params:xml:ns:pidf:rpid" xmlns:cp="urn:ietf:params:xml:ns:pidf:cipid" id="p0000019">
    <op:overriding-willingness>
      <op:basic>open</op:basic>
    </op:overriding-willingness>
    <rpid:activities>
      <rpid:unknown/>
    </rpid:activities>
    <cp:homepage>http://www.doubango.org</cp:homepage>
    <pdm:note>Hello world</pdm:note>
  </pdm:person>
  <pdm:device xmlns:pdm="urn:ietf:params:xml:ns:pidf:data-model" xmlns="urn:ietf:params:xml:ns:pidf" xmlns:caps="urn:ietf:params:xml:ns:pidf:caps" xmlns:op="urn:oma:xml:prs:pidf:oma-pres" id="d0001">
    <status>
      <basic>open</basic>
    </status>
    <caps:devcaps>
      <caps:mobility>
        <caps:supported>
          <caps:fixed/>
        </caps:supported>
      </caps:mobility>
    </caps:devcaps>
    <op:network-availability>
      <op:network id="IMS">
        <op:active/>
      </op:network>
    </op:network-availability>
    <pdm:deviceID>urn:uuid:3ca54bcb-9a69-55a2-aab4-995a55a934a5</pdm:deviceID>
  </pdm:device>

  <pdm:person xmlns:pdm="urn:ietf:params:xml:ns:pidf:data-model" xmlns:op="urn:oma:xml:prs:pidf:oma-pres" xmlns:rpid="urn:ietf:params:xml:ns:pidf:rpid" xmlns:cp="urn:ietf:params:xml:ns:pidf:cipid" id="p0000019">
    <op:overriding-willingness>
      <op:basic>open</op:basic>
    </op:overriding-willingness>
    <rpid:activities>
      <rpid:unknown/>
    </rpid:activities>
    <cp:homepage>http://www.doubango.org</cp:homepage>
    <pdm:note>Hello world</pdm:note>
  </pdm:person>
  <pdm:device xmlns:pdm="urn:ietf:params:xml:ns:pidf:data-model" xmlns="urn:ietf:params:xml:ns:pidf" xmlns:caps="urn:ietf:params:xml:ns:pidf:caps" xmlns:op="urn:oma:xml:prs:pidf:oma-pres" id="d0001">
    <status>
      <basic>open</basic>
    </status>
    <caps:devcaps>
      <caps:mobility>
        <caps:supported>
          <caps:fixed/>
        </caps:supported>
      </caps:mobility>
    </caps:devcaps>
    <op:network-availability>
      <op:network id="IMS">
        <op:active/>
      </op:network>
    </op:network-availability>
    <pdm:deviceID>urn:uuid:3ca54bcb-9a69-55a2-aab4-995a55a934a5</pdm:deviceID>
  </pdm:device>

  <pdm:person xmlns:pdm="urn:ietf:params:xml:ns:pidf:data-model" xmlns:op="urn:oma:xml:prs:pidf:oma-pres" xmlns:rpid="urn:ietf:params:xml:ns:pidf:rpid" xmlns:cp="urn:ietf:params:xml:ns:pidf:cipid" id="p0000019">
    <op:overriding-willingness>
      <op:basic>open</op:basic>
    </op:overriding-willingness>
    <rpid:activities>
      <rpid:unknown/>
    </rpid:activities>
    <cp:homepage>http://www.doubango.org</cp:homepage>
    <pdm:note>Hello world</pdm:note>
  </pdm:person>
  <pdm:device xmlns:pdm="urn:ietf:params:xml:ns:pidf:data-model" xmlns="urn:ietf:params:xml:ns:pidf" xmlns:caps="urn:ietf:params:xml:ns:pidf:caps" xmlns:op="urn:oma:xml:prs:pidf:oma-pres" id="d0001">
    <status>
      <basic>open</basic>
    </status>
    <caps:devcaps>
      <caps:mobility>
        <caps:supported>
          <caps:fixed/>
        </caps:supported>
      </caps:mobility>
    </caps:devcaps>
    <op:network-availability>
      <op:network id="IMS">
        <op:active/>
      </op:network>
    </op:network-availability>
    <pdm:deviceID>urn:uuid:3ca54bcb-9a69-55a2-aab4-995a55a934a5</pdm:deviceID>
  </pdm:device>
</presence>



4.       Sylk will accept the NOTIFY with 200 OK and will reply correctly towards IMS Core -> Presence Server.

Now the problem here is that SYLK won't generate a Presence Stanza towards the XMPP server. Looking at the web site's sequence diagram, Sylk would expect a Subscribe, which of course won't be sent from the IMS client if a network address book is used.

So my question is, is there something that could be done in that case?  I can simulate the SUBSCRIBE of course, e.g. to have the IMS client sending SUBSCRIBE towards the XMPP domain, however I know this is not working ( the problem I have reported yesterday ).


Thanks,
Tiho

________________________________
This e-mail and any attachment is for authorised use by the intended recipient(s) only. It may contain proprietary material, confidential information and/or be subject to legal privilege. It should not be copied, disclosed to, retained or used by, any other party. If you are not an intended recipient then please promptly delete this e-mail and any attachment and all copies and inform the sender. Thank you for understanding.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ag-projects.com/pipermail/sipbeyondvoip/attachments/20121115/dd93166a/attachment-0001.html>


More information about the SIPBeyondVoIP mailing list