< Previous by Date Date Index Next by Date >
< Previous in Thread Thread Index Next in Thread >

Re: [reSIProcate] RFC 3455 headers and parameters



Sorry it took me so long to get around to this, but in case it is still useful, here are the patch files corresponding to the changes I made locally, as described in my email to this list back on 6/2/14.

-John Gregg



On 09/16/2014 11:48 AM, Dario Bozzali wrote:

Hi Scott,

Following suggestions that John sent us in his mail, I created a patch file for new headers and parameters contained in RFC 3455.

Moreover I included changes for User-to-User header and corresponding parameters as indicated in draft-johnston-sipping-cc-uui-09 and draft-ietf-cuss-sip-uui-17 drafts.

I encountered some problems using gperf under Windows since I obtained an error using option -k "*" and I had to use --key-positions="*".

Could you please, or anyone else that is interested in these changes, have a look at attached patch file and give me your opinion?

Note that “purpose” parameter is already present since it is used for GenericUri, but not for Token, so in some place I commented it out.

Thank you in advance and best regards,

Dario.

 

From: slgodin@xxxxxxxxx [mailto:slgodin@xxxxxxxxx] On Behalf Of Scott Godin
Sent: venerdì 12 settembre 2014 14.51
To: Dario Bozzali
Cc: resiprocate-devel@xxxxxxxxxxxxxxx
Subject: Re: [reSIProcate] RFC 3455 headers and parameters

 

Hi Dario,

 

We haven't had the cycles to integrate these changes yet.  It would be great if John could provide a patch file.

 

Keep in mind you can always support headers and parameters that aren't officially called out in the stack parser by using ExtensionParamater and ExtensionHeaders logic.

 

 

Scott

 

On Fri, Sep 12, 2014 at 8:31 AM, Dario Bozzali <Dario.Bozzali@xxxxxxxxxxx> wrote:

Hi all,
I am interested in RFC 3455 and I was wondering if there are any news about integration of these features in main line.
John, if they will not be added to main line, could you please post the patch file?

I am also concerned about User-to-User information transport over SIP (draft-johnston-sipping-cc-uui-09, draft-ietf-cuss-sip-uui-17).
Could I use a similar approach to add support for User-to-User header in Resiprocate?

Thank you in advance.

Best regards, Dario.


-----Original Message-----
From: resiprocate-devel [mailto:resiprocate-devel-bounces@xxxxxxxxxxxxxxx] On Behalf Of John Gregg
Sent: lunedì 2 giugno 2014 22.03
To: resiprocate-devel@xxxxxxxxxxxxxxx
Subject: [reSIProcate] RFC 3455 headers and parameters


I changed the following files:

M       Token.cxx
M       ParameterTypes.cxx
M       Headers.hxx
M       SipMessage.cxx
M       HeaderTypes.hxx
M       ParameterTypeEnums.hxx
M       HeaderHash.cxx
M       ParameterHash.cxx
M       Token.hxx
M       Headers.cxx
M       HeaderHash.gperf
M       ParameterHash.gperf
M       ParameterTypes.hxx
M       SipMessage.hxx

All I did was add the following header definitions, where appropriate:

defineHeader(PAccessNetworkInfo, "P-Access-Network-Info", Token, "RFC 3455"); defineHeader(PChargingVector, "P-Charging-Vector", Token, "RFC 3455"); defineHeader(PChargingFunctionAddresses,
"P-Charging-Function-Addresses", Token, "RFC 3455"); defineMultiHeader(PVisitedNetworkID, "P-Visited-Network-ID", Token, "RFC 3455");

And the following parameters:

       defineParam(description, "description", QuotedDataParameter, "RFC 3840");
       defineParam(utranCellId3gpp, "utran-cell-id-3gpp", DataParameter, "RFC 3455");  // P-Access-Network-Info
       defineParam(cgi3gpp, "cgi-3gpp", DataParameter, "RFC 3455"); // P-Access-Network-Info
       defineParam(ccf, "ccf", DataParameter, "RFC 3455"); // P-Charging-Function-Addresses
       defineParam(ecf, "ecf", DataParameter, "RFC 3455"); // P-Charging-Function-Addresses
       defineParam(icidValue, "icid-value", DataParameter, "RFC 3455"); // P-Charging-Vector
       defineParam(icidGeneratedAt, "icid-generated-at", DataParameter, "RFC 3455"); // P-Charging-Vector
       defineParam(origIoi, "orig-ioi", DataParameter, "RFC 3455"); // P-Charging-Vector
       defineParam(termIoi, "term-ioi", DataParameter, "RFC 3455"); // P-Charging-Vector


I figured it would be less confusing to just describe the changes than to include diff files for all the files involved, but I can do that upon request. I think it would be a good idea to incorporate this change into the next resiprocate release, and I can't see a downside. I'm not completely sure that Token is the right object type to use for all of them, but it worked for me.

-John Gregg

_______________________________________________
resiprocate-devel mailing list
resiprocate-devel@xxxxxxxxxxxxxxx
https://list.resiprocate.org/mailman/listinfo/resiprocate-devel

_______________________________________________
resiprocate-devel mailing list
resiprocate-devel@xxxxxxxxxxxxxxx
https://list.resiprocate.org/mailman/listinfo/resiprocate-devel

 



_______________________________________________
resiprocate-devel mailing list
resiprocate-devel@xxxxxxxxxxxxxxx
https://list.resiprocate.org/mailman/listinfo/resiprocate-devel

Index: HeaderHash.gperf
===================================================================
--- HeaderHash.gperf	(revision 27436)
+++ HeaderHash.gperf	(working copy)
@@ -94,6 +94,10 @@
 p-asserted-identity, Headers::PAssertedIdentity
 p-associated-uri, Headers::PAssociatedUri
 p-called-party-id, Headers::PCalledPartyId
+p-access-network-info, Headers::PAccessNetworkInfo
+p-charging-vector, Headers::PChargingVector
+p-charging-function-addresses, Headers::PChargingFunctionAddresses
+p-visited-network-id, Headers::PVisitedNetworkID
 p-media-authorization, Headers::PMediaAuthorization
 p-preferred-identity, Headers::PPreferredIdentity
 path, Headers::Path
Index: Headers.cxx
===================================================================
--- Headers.cxx	(revision 27436)
+++ Headers.cxx	(working copy)
@@ -218,6 +218,10 @@
 
 defineHeader(PCalledPartyId, "P-Called-Party-ID", NameAddr, "RFC 3455");
 defineMultiHeader(PAssociatedUri, "P-Associated-URI", NameAddr, "RFC 3455");
+defineHeader(PAccessNetworkInfo, "P-Access-Network-Info", Token, "RFC 3455");
+defineHeader(PChargingVector, "P-Charging-Vector", Token, "RFC 3455");
+defineHeader(PChargingFunctionAddresses, "P-Charging-Function-Addresses", Token, "RFC 3455");
+defineMultiHeader(PVisitedNetworkID, "P-Visited-Network-ID", Token, "RFC 3455");
 defineMultiHeader(ServiceRoute, "Service-Route", NameAddr, "RFC 3608");
 defineMultiHeader(RemotePartyId, "Remote-Party-ID", NameAddr, "draft-ietf-sip-privacy-04"); // ?bwc? Not in 3323, should we keep?
 defineMultiHeader(HistoryInfo, "History-Info", NameAddr, "RFC 4244");
Index: Headers.hxx
===================================================================
--- Headers.hxx	(revision 27436)
+++ Headers.hxx	(working copy)
@@ -200,6 +200,10 @@
 
 defineHeader(PCalledPartyId, "P-Called-Party-ID", NameAddr, "RFC 3455");
 defineMultiHeader(PAssociatedUri, "P-Associated-URI", NameAddr, "RFC 3455");
+defineHeader(PAccessNetworkInfo, "P-Access-Network-Info", Token, "RFC 3455");
+defineHeader(PChargingVector, "P-Charging-Vector", Token, "RFC 3455");
+defineHeader(PChargingFunctionAddresses, "P-Charging-Function-Addresses", Token, "RFC 3455");
+defineMultiHeader(PVisitedNetworkID, "P-Visited-Network-ID", Token, "RFC 3455");
 defineMultiHeader(ServiceRoute, "Service-Route", NameAddr, "RFC 3608");
 defineMultiHeader(RemotePartyId, "Remote-Party-ID", NameAddr, "draft-ietf-sip-privacy-04"); // ?bwc? Not in 3323, should we keep?
 defineMultiHeader(HistoryInfo, "History-Info", NameAddr, "RFC 4244");
Index: HeaderTypes.hxx
===================================================================
--- HeaderTypes.hxx	(revision 27436)
+++ HeaderTypes.hxx	(working copy)
@@ -128,6 +128,10 @@
          defineMultiHeader(RejectContact, "Reject-Contact", NameAddr, "RFC 3841"),
          defineHeader(PCalledPartyId, "P-Called-Party-ID", NameAddr, "RFC 3455"),
          defineMultiHeader(PAssociatedUri, "P-Associated-URI", NameAddr, "RFC 3455"),
+         defineHeader(PAccessNetworkInfo, "P-Access-Network-Info", Token, "RFC 3455"),
+         defineHeader(PChargingVector, "P-Charging-Vector", Token, "RFC 3455"),
+         defineHeader(PChargingFunctionAddresses, "P-Charging-Function-Addresses", Token, "RFC 3455"),
+         defineMultiHeader(PVisitedNetworkID, "P-Visited-Network-ID", Token, "RFC 3455"),
 
          defineHeader(ContentLength, "Content-Length", UInt32Category, "RFC 3261"),
          defineHeader(ReferSub, "Refer-Sub", Token, "RFC 4488"),
Index: ParameterHash.gperf
===================================================================
--- ParameterHash.gperf	(revision 27436)
+++ ParameterHash.gperf	(working copy)
@@ -103,5 +103,13 @@
 addtransport, ParameterTypes::addTransport
 ws-src-ip, ParameterTypes::wsSrcIp
 ws-src-port, ParameterTypes::wsSrcPort
+utran-cell-id-3gpp, ParameterTypes::utranCellId3gpp
+cgi-3gpp, ParameterTypes::cgi3gpp
+ccf, ParameterTypes::ccf
+ecf, ParameterTypes::ecf
+icid-value, ParameterTypes::icidValue
+icid-generated-at, ParameterTypes::icidGeneratedAt
+orig-ioi, ParameterTypes::origIoi
+term-ioi, ParameterTypes::termIoi
 %%
 }
Index: ParameterTypeEnums.hxx
===================================================================
--- ParameterTypeEnums.hxx	(revision 27436)
+++ ParameterTypeEnums.hxx	(working copy)
@@ -154,6 +154,15 @@
          defineParam(wsSrcIp, "ws-src-ip", DataParameter, ""),
          defineParam(wsSrcPort, "ws-src-port", UInt32Parameter, ""),
 
+         defineParam(utranCellId3gpp, "utran-cell-id-3gpp", DataParameter, "RFC 3455"),  // P-Access-Network-Info
+         defineParam(cgi3gpp, "cgi-3gpp", DataParameter, "RFC 3455"), // P-Access-Network-Info
+         defineParam(ccf, "ccf", DataParameter, "RFC 3455"), // P-Charging-Function-Addresses
+         defineParam(ecf, "ecf", DataParameter, "RFC 3455"), // P-Charging-Function-Addresses
+         defineParam(icidValue, "icid-value", DataParameter, "RFC 3455"), // P-Charging-Vector
+         defineParam(icidGeneratedAt, "icid-generated-at", DataParameter, "RFC 3455"), // P-Charging-Vector
+         defineParam(origIoi, "orig-ioi", DataParameter, "RFC 3455"), // P-Charging-Vector
+         defineParam(termIoi, "term-ioi", DataParameter, "RFC 3455"), // P-Charging-Vector
+
          MAX_PARAMETER
       };
 
Index: ParameterTypes.cxx
===================================================================
--- ParameterTypes.cxx	(revision 27436)
+++ ParameterTypes.cxx	(working copy)
@@ -149,6 +149,15 @@
 defineParam(mp, "mp", DataParameter, NameAddr, "RFC 4244-bis");
 defineParam(np, "np", DataParameter, NameAddr, "RFC 4244-bis");
 
+defineParam(utranCellId3gpp, "utran-cell-id-3gpp", DataParameter, Token, "RFC 3455");  // P-Access-Network-Info
+defineParam(cgi3gpp, "cgi-3gpp", DataParameter, Token, "RFC 3455"); // P-Access-Network-Info
+defineParam(ccf, "ccf", DataParameter, Token, "RFC 3455"); // P-Charging-Function-Addresses
+defineParam(ecf, "ecf", DataParameter, Token, "RFC 3455"); // P-Charging-Function-Addresses
+defineParam(icidValue, "icid-value", DataParameter, Token, "RFC 3455"); // P-Charging-Vector
+defineParam(icidGeneratedAt, "icid-generated-at", DataParameter, Token, "RFC 3455"); // P-Charging-Vector
+defineParam(origIoi, "orig-ioi", DataParameter, Token, "RFC 3455"); // P-Charging-Vector
+defineParam(termIoi, "term-ioi", DataParameter, Token, "RFC 3455"); // P-Charging-Vector
+
 // Internal use only
 defineParam(qopOptions,"qop",DataParameter, Auth, "RFC 3261");
 defineParam(addTransport, "addTransport", ExistsParameter, Uri, "RESIP INTERNAL");
Index: ParameterTypes.hxx
===================================================================
--- ParameterTypes.hxx	(revision 27436)
+++ ParameterTypes.hxx	(working copy)
@@ -186,6 +186,15 @@
 defineParam(mp, "mp", DataParameter, NameAddr, "RFC 4244-bis");
 defineParam(np, "np", DataParameter, NameAddr, "RFC 4244-bis");
 
+defineParam(utranCellId3gpp, "utran-cell-id-3gpp", DataParameter, Token, "RFC 3455");  // P-Access-Network-Info
+defineParam(cgi3gpp, "cgi-3gpp", DataParameter, Token, "RFC 3455"); // P-Access-Network-Info
+defineParam(ccf, "ccf", DataParameter, Token, "RFC 3455"); // P-Charging-Function-Addresses
+defineParam(ecf, "ecf", DataParameter, Token, "RFC 3455"); // P-Charging-Function-Addresses
+defineParam(icidValue, "icid-value", DataParameter, Token, "RFC 3455"); // P-Charging-Vector
+defineParam(icidGeneratedAt, "icid-generated-at", DataParameter, Token, "RFC 3455"); // P-Charging-Vector
+defineParam(origIoi, "orig-ioi", DataParameter, Token, "RFC 3455"); // P-Charging-Vector
+defineParam(termIoi, "term-ioi", DataParameter, Token, "RFC 3455"); // P-Charging-Vector
+
 // Internal use only
 defineParam(qopOptions,"qop",DataParameter, Auth, "RFC 3261");
 defineParam(addTransport, "addTransport", ExistsParameter, Uri, "RESIP INTERNAL");
Index: SipMessage.cxx
===================================================================
--- SipMessage.cxx	(revision 27436)
+++ SipMessage.cxx	(working copy)
@@ -1503,6 +1503,10 @@
 defineMultiHeader(PPreferredIdentity, "P-Preferred-Identity", NameAddr, "RFC 3325");
 defineHeader(PCalledPartyId, "P-Called-Party-ID", NameAddr, "RFC 3455");
 defineMultiHeader(PAssociatedUri, "P-Associated-URI", NameAddr, "RFC 3455");
+defineHeader(PAccessNetworkInfo, "P-Access-Network-Info", Token, "RFC 3455");
+defineHeader(PChargingVector, "P-Charging-Vector", Token, "RFC 3455");
+defineHeader(PChargingFunctionAddresses, "P-Charging-Function-Addresses", Token, "RFC 3455");
+defineMultiHeader(PVisitedNetworkID, "P-Visited-Network-ID", Token, "RFC 3455");
 defineMultiHeader(ServiceRoute, "Service-Route", NameAddr, "RFC 3608");
 
 defineHeader(ContentTransferEncoding, "Content-Transfer-Encoding", StringCategory, "RFC ?");
Index: SipMessage.hxx
===================================================================
--- SipMessage.hxx	(revision 27436)
+++ SipMessage.hxx	(working copy)
@@ -383,6 +383,11 @@
       defineMultiHeader(PPreferredIdentity, "P-Preferred-Identity", NameAddr, "RFC 3325");
       defineHeader(PCalledPartyId, "P-Called-Party-ID", NameAddr, "RFC 3455");
       defineMultiHeader(PAssociatedUri, "P-Associated-URI", NameAddr, "RFC 3455");
+      defineHeader(PAccessNetworkInfo, "P-Access-Network-Info", Token, "RFC 3455");
+      defineHeader(PChargingVector, "P-Charging-Vector", Token, "RFC 3455");
+      defineHeader(PChargingFunctionAddresses, "P-Charging-Function-Addresses", Token, "RFC 3455");
+      defineMultiHeader(PVisitedNetworkID, "P-Visited-Network-ID", Token, "RFC 3455");
+
       defineMultiHeader(ServiceRoute, "Service-Route", NameAddr, "RFC 3608");
       defineMultiHeader(RemotePartyId, "Remote-Party-ID", NameAddr, "draft-ietf-sip-privacy-04"); // ?bwc? Not in 3323, should we keep?
       defineMultiHeader(HistoryInfo, "History-Info", NameAddr, "RFC 4244");
Index: Token.cxx
===================================================================
--- Token.cxx	(revision 27856)
+++ Token.cxx	(working copy)
@@ -204,6 +204,15 @@
 defineParam(appId, "app-id", DataParameter, "draft-ietf-sipping-config-framework-05 (renamed to auid in 06, which was then removed in 08)");
 defineParam(networkUser, "network-user", DataParameter, "draft-ietf-sipping-config-framework-11 (removed in 12)");
 defineParam(require, "require", DataParameter, "RFC 5373");
+defineParam(utranCellId3gpp, "utran-cell-id-3gpp", DataParameter, "RFC 3455");  // P-Access-Network-Info
+defineParam(cgi3gpp, "cgi-3gpp", DataParameter, "RFC 3455"); // P-Access-Network-Info
+defineParam(ccf, "ccf", DataParameter, "RFC 3455"); // P-Charging-Function-Addresses
+defineParam(ecf, "ecf", DataParameter, "RFC 3455"); // P-Charging-Function-Addresses
+defineParam(icidValue, "icid-value", DataParameter, "RFC 3455"); // P-Charging-Vector
+defineParam(icidGeneratedAt, "icid-generated-at", DataParameter, "RFC 3455"); // P-Charging-Vector
+defineParam(origIoi, "orig-ioi", DataParameter, "RFC 3455"); // P-Charging-Vector
+defineParam(termIoi, "term-ioi", DataParameter, "RFC 3455"); // P-Charging-Vector
+defineParam(description, "description", QuotedDataParameter, "RFC 3840");
 
 #undef defineParam
 
Index: Token.hxx
===================================================================
--- Token.hxx	(revision 27856)
+++ Token.hxx	(working copy)
@@ -84,6 +84,15 @@
       defineParam(appId, "app-id", DataParameter, "draft-ietf-sipping-config-framework-05 (renamed to auid in 06, which was then removed in 08)");
       defineParam(networkUser, "network-user", DataParameter, "draft-ietf-sipping-config-framework-11 (removed in 12)");
       defineParam(require, "require", DataParameter, "RFC 5373");
+      defineParam(description, "description", QuotedDataParameter, "RFC 3840");
+      defineParam(utranCellId3gpp, "utran-cell-id-3gpp", DataParameter, "RFC 3455");  // P-Access-Network-Info
+      defineParam(cgi3gpp, "cgi-3gpp", DataParameter, "RFC 3455"); // P-Access-Network-Info
+      defineParam(ccf, "ccf", DataParameter, "RFC 3455"); // P-Charging-Function-Addresses
+      defineParam(ecf, "ecf", DataParameter, "RFC 3455"); // P-Charging-Function-Addresses
+      defineParam(icidValue, "icid-value", DataParameter, "RFC 3455"); // P-Charging-Vector
+      defineParam(icidGeneratedAt, "icid-generated-at", DataParameter, "RFC 3455"); // P-Charging-Vector
+      defineParam(origIoi, "orig-ioi", DataParameter, "RFC 3455"); // P-Charging-Vector
+      defineParam(termIoi, "term-ioi", DataParameter, "RFC 3455"); // P-Charging-Vector
 
 #undef defineParam