Difference between revisions of "UAS Prack Announcement page"

From reSIProcate
Jump to navigation Jump to search
(Created page with "Hello Fellow reSIPers, I am happy to announce that resiprocate/dum will fully support RFC3262 PRACK in the next release. Resiprocate has supported playing the UAC role (PRAC...")
 
Line 1: Line 1:
 
Hello Fellow reSIPers,
 
Hello Fellow reSIPers,
  
I am happy to announce that resiprocate/dum will fully support RFC3262 PRACK in the next release.  Resiprocate has supported playing the UAC role (PRACK sender) in a PRACK enabled call for some time now, but it did not previously support the UAS role (reliable provisional sender).
+
I am happy to announce that resiprocate/dum now fully supports RFC3262 PRACK.  This will offcially appear in the 1.9 release when it is made available.  Resiprocate has supported playing the UAC role (PRACK sender) in a PRACK enabled call for some time now, but it did not previously support the UAS role (reliable provisional sender).
 
 
The work to add UAS PRACK support is nearly completed in the following SVN branch:
 
http://svn.resiprocate.org/rep/resiprocate/branches/b-uasprack-20130904
 
 
 
If this is something of interest to you I encourage you to give this branch a test drive.  It is expected to be merged into SVN trunk sometime over the next few weeks.
 
  
 
To enable UAS Prack support use the following MasterProfile setting:
 
To enable UAS Prack support use the following MasterProfile setting:
Line 22: Line 17:
  
 
There is also a new optional InviteSessionHandler callback called onPrack if you would like to inspect the Prack messages that are received.
 
There is also a new optional InviteSessionHandler callback called onPrack if you would like to inspect the Prack messages that are received.
 +
      /// called when PRACK is received for a reliable provisional answer (UAS)
 +
      virtual void onPrack(ServerInviteSessionHandle, const SipMessage &msg);
 +
 +
And a new profile setting to control how often reliable provisionals are repeated if the application doesn't send a provisional or answer the call:
 +
      /// The amount of time that can pass before dum will resubmit a reliable provisional response
 +
      virtual void set1xxRelResubmitTime(int secs);
 +
      virtual int get1xxRelResubmitTime() const;
 +
      virtual void unset1xxRelResubmitTime();
  
 
The resip/dum/doc directory contains a few new documents surrounding PRACK support:
 
The resip/dum/doc directory contains a few new documents surrounding PRACK support:
Line 31: Line 34:
  
 
The TFM DUM Automated test framework has been extended to support a total of 33 automated PRACK test cases and scenarios.
 
The TFM DUM Automated test framework has been extended to support a total of 33 automated PRACK test cases and scenarios.
 
Please let me know if you have any issues with the code in this branch.
 
  
 
Best Regards,<br>
 
Best Regards,<br>
 
Scott Godin<br>
 
Scott Godin<br>
 
SIP Spectrum, Inc.
 
SIP Spectrum, Inc.

Revision as of 21:36, 24 November 2013

Hello Fellow reSIPers,

I am happy to announce that resiprocate/dum now fully supports RFC3262 PRACK. This will offcially appear in the 1.9 release when it is made available. Resiprocate has supported playing the UAC role (PRACK sender) in a PRACK enabled call for some time now, but it did not previously support the UAS role (reliable provisional sender).

To enable UAS Prack support use the following MasterProfile setting:

     // UAS PRACK support.  UPDATE must be enabled(currently defaults to on, do
     // not disable w/out disabling UAS PRACK support).
     //
     // All flows and limitations mentioned in UAC Prack comments apply
     //
     // Modes work as follows:
     // SupportedEssential - Only send reliable provisionals if sending a body and far end supports
     // Supported - Always send reliable provisionals if far end supports
     // Required - Always send reliable provisionals
     virtual void setUasReliableProvisionalMode(ReliableProvisionalMode mode);

There is also a new optional InviteSessionHandler callback called onPrack if you would like to inspect the Prack messages that are received.

     /// called when PRACK is received for a reliable provisional answer (UAS)
     virtual void onPrack(ServerInviteSessionHandle, const SipMessage &msg);

And a new profile setting to control how often reliable provisionals are repeated if the application doesn't send a provisional or answer the call:

     /// The amount of time that can pass before dum will resubmit a reliable provisional response
     virtual void set1xxRelResubmitTime(int secs);
     virtual int get1xxRelResubmitTime() const;
     virtual void unset1xxRelResubmitTime();

The resip/dum/doc directory contains a few new documents surrounding PRACK support:

  • UASPRACKFlows.png
  • 3GPP-24.930Rel11Flows.png
  • dum-UASPRACK-state.png

All offer/answer scenarios from PRACK RFC3262 and the UPDATE RFC3311 are supported. Sending of overlapped reliable provisionals are not allowed. The only odd scenario worth mentioning is the ability to send an Offer in a PRACK request after receiving an answer in a reliable provisional. In order to be able to do this the caller must call provideOffer from the onAnswer callback. If provideOffer is called later in time, then the PRACK will go out without the offer and an UPDATE request will carry the offer instead.

The TFM DUM Automated test framework has been extended to support a total of 33 automated PRACK test cases and scenarios.

Best Regards,
Scott Godin
SIP Spectrum, Inc.