1600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang/* 2600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang* Conditions Of Use 3600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang* 4600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang* This software was developed by employees of the National Institute of 5600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang* Standards and Technology (NIST), an agency of the Federal Government 6600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang* and others. 7600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang* Pursuant to title 15 Untied States Code Section 105, works of NIST 8600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang* employees are not subject to copyright protection in the United States 9600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang* and are considered to be in the public domain. As a result, a formal 10600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang* license is not needed to use the software. 11600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang* 12600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang* This software is provided by NIST as a service and is expressly 13600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang* provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED 14600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang* OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF 15600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT 16600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang* AND DATA ACCURACY. NIST does not warrant or make any representations 17600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang* regarding the use of the software or the results thereof, including but 18600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang* not limited to the correctness, accuracy, reliability or usefulness of 19600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang* the software. 20600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang* 21600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang* Permission to use this software is contingent upon your acceptance 22600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang* of the terms of this agreement 23600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang* 24600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang* . 25600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang* 26600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang*/ 27600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang/******************************************* 28600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * PRODUCT OF PT INOVACAO - EST DEPARTMENT * 29600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang *******************************************/ 30600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 31600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangpackage gov.nist.javax.sip.header.ims; 32600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 33600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 34600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangimport java.text.ParseException; 35600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangimport javax.sip.header.Header; 36600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangimport javax.sip.header.Parameters; 37600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 38600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 39600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 40600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 41600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang/** 42600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * <p>P-Charging-Vector header SIP Private Header. </p> 43600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * 44600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * <p> Sintax (RFC 3455): </p> 45600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * <pre> 46600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * P-Charging-Vector = "P-Charging-Vector" HCOLON icid-value (SEMI charge-params) 47600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * charge-params = icid-gen-addr / orig-ioi / term-ioi / generic-param 48600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * icid-value = "icid-value" EQUAL gen-value 49600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * icid-gen-addr = "icid-generated-at" EQUAL host 50600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * orig-ioi = "orig-ioi" EQUAL gen-value 51600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * term-ioi = "term-ioi" EQUAL gen-value 52600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * </pre> 53600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * 54600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * <p>Sintax from RFC3261: </p> 55600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * <pre> 56600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * generic-param = token [ EQUAL gen-value ] 57600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * gen-value = token / host / quoted-string 58600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * host = hostname / IPv4address / Ipv6reference 59600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * </pre> 60600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * 61600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * 62600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * <p> syntax as in 3GPP TS 24.229-720 (2005-12) : 63600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * 64600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * The access-network-charging-info parameter is an instance of generic-param 65600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * from the current charge-params: </p> 66600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * 67600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * <pre> 68600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * access-network-charging-info = (gprs-charging-info / i-wlan-charging-info / xdsl-charging-info / generic-param) 69600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * gprs-charging-info = ggsn SEMI auth-token [SEMI pdp-info-hierarchy] *(SEMI extension-param) 70600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * ggsn = "ggsn" EQUAL gen-value 71600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * pdp-info-hierarchy = "pdp-info" EQUAL LDQUOT pdp-info *(COMMA pdp-info) RDQUOT 72600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * pdp-info = pdp-item SEMI pdp-sig SEMI gcid [SEMI flow-id] 73600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * pdp-item = "pdp-item" EQUAL DIGIT 74600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * pdp-sig = "pdp-sig" EQUAL ("yes" / "no") 75600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * gcid = "gcid" EQUAL 1*HEXDIG 76600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * auth-token = "auth-token" EQUAL 1*HEXDIG 77600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * flow-id = "flow-id" EQUAL "(" "{" 1*DIGIT COMMA 1*DIGIT "}" *(COMMA "{" 1*DIGIT COMMA 1*DIGIT"}")")" 78600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * extension-param = token [EQUAL token] 79600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * i-wlan-charging-info = "pdg" 80600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * xdsl-charging-info = bras SEMI auth-token [SEMI xDSL-bearer-info] *(SEMI extension-param) 81600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * bras = "bras" EQUAL gen-value 82600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * xDSL-bearer-info = "dsl-bearer-info" EQUAL LDQUOT dsl-bearer-info *(COMMA dsl-bearer-info) RDQUOT 83600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * dsl-bearer-info = dsl-bearer-item SEMI dsl-bearer-sig SEMI dslcid [SEMI flow-id] 84600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * dsl-bearer-item = "dsl-bearer-item" EQUAL DIGIT 85600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * dsl-bearer-sig = "dsl-bearer-sig" 86600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * </pre> 87600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * 88600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * 89600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * <p>example: 90600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * P-Charging-Vector: icid-value=1234bc9876e; icid-generated-at=192.0.6.8; orig-ioi=home1.net </p> 91600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * 92600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * 93600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * <p>TODO: gen-value can be token / host / quoted-string</p> 94600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * <p>TODO: add suport for the new header extensions access-network-charging-info</p> 95600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * 96600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @author ALEXANDRE MIGUEL SILVA SANTOS 97600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 98600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 99600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 100600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 101600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangpublic interface PChargingVectorHeader extends Header, Parameters { 102600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 103600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang /** 104600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * Name of PChargingVectorHeader 105600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 106600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public final static String NAME = "P-Charging-Vector"; 107600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 108600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 109600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang /** 110600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @return -- icid value. 111600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 112600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public String getICID(); 113600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 114600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 115600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang /** 116600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @param icid 117600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @throws ParseException 118600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 119600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public void setICID(String icid) throws ParseException; 120600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 121600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang /** 122600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @return -- the ICID generatedAt field. 123600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 124600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public String getICIDGeneratedAt(); 125600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 126600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 127600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang /** 128600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @param host -- set the icid host value. 129600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * 130600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @throws ParseException -- if bad host value. 131600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 132600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public void setICIDGeneratedAt(String host) throws ParseException; 133600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 134600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 135600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang /** 136600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * 137600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @return the originating IOI 138600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 139600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public String getOriginatingIOI(); 140600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 141600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 142600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang /** 143600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @param origIOI 144600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @throws ParseException 145600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * 146600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 147600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public void setOriginatingIOI(String origIOI) throws ParseException; 148600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 149600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 150600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang /** 151600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @return -- the terminating IOI field 152600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 153600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public String getTerminatingIOI(); 154600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 155600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 156600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang /** 157600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @param termIOI -- the terminating IOI field to set. 158600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @throws ParseException 159600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 160600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public void setTerminatingIOI(String termIOI) throws ParseException; 161600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 162600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 163600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 164600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 165600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 166600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 167600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang} 168