Disclaimer: This repository is a git-svn mirror of the project found at http://java.net/projects/jsip whose original repository is developed collaboratively by the Advanced Networking Technologies Division at the National Institute of Standards and Technology (NIST) - an agency of the United States Department of Commerce and by a community of individual and enterprise contributors. TeleStax, Inc. will perform some productization work, new features experimentation branches, etc for its TelScale jSIP product that doesn't concern the community from the main repository hence this git repository.
"Multiple header field rows with the same field-name MAY be present in
a message if and only if the entire field-value for that header field
is defined as a comma-separated list (that is, if follows the grammar
defined in Section 7.3)."
This means that using multiple P-Access-Newtork-Info headers is
valid syntax.
syntax for P-Access-Network-Info:
P-Access-Network-Info = P-Access-Network-Info HCOLON access-net-spec (COMMA access-net-spec) access-net-spec = (access-type / access-class) (SEMI access-info) access-type = "IEEE-802.11" / "IEEE-802.11a" / "IEEE-802.11b" / "IEEE-802.11g" / "IEEE-802.11n" / "3GPP-GERAN" / "3GPP-UTRAN-FDD" / "3GPP-UTRAN-TDD" / "3GPP-E-UTRAN-FDD" / "3GPP-E-UTRAN-TDD" / "ADSL" / "ADSL2" / "ADSL2+" / "RADSL" / "SDSL" / "HDSL" / "HDSL2" / "G.SHDSL" / "VDSL" / "IDSL" / "3GPP2-1X" / "3GPP2-1X-Femto" / "3GPP2-1X-HRPD" / "3GPP2-UMB" / "DOCSIS" / "IEEE-802.3" / "IEEE-802.3a" / "IEEE-802.3e" / "IEEE-802.3i" / "IEEE802.3j" / "IEEE-802.3u" / "IEEE-802.3ab"/ "IEEE-802.3ae" / "IEEE802.3ak" / "IEEE-802.3aq" / "IEEE-802.3an" / "IEEE-802.3y" / "IEEE802.3z" / GPON/ XGPON1/ "GSTN"/ token ...access-class = "3GPP-GERAN" / "3GPP-UTRAN" / "3GPP-E-UTRAN" / "3GPP-WLAN" / "3GPP-GAN" / "3GPP-HSPA" / token np = "network-provided" access-info = cgi-3gpp / utran-cell-id-3gpp / dsl-location / i-wlan-node-id / ci-3gpp2 / ci-3gpp2-femto / eth-location / fiber-location / np/ gstn-location / extension-access-info extension-access-info = gen-value cgi-3gpp = "cgi-3gpp" EQUAL (token / quoted-string) utran-cell-id-3gpp = "utran-cell-id-3gpp" EQUAL (token / quoted-string) i-wlan-node-id = "i-wlan-node-id" EQUAL (token / quoted-string) dsl-location = "dsl-location" EQUAL (token / quoted-string) eth-location = "eth-location" EQUAL (token / quoted-string) fiber-location = "fiber-location" EQUAL (token / quoted-string) ci-3gpp2 = "ci-3gpp2" EQUAL (token / quoted-string) ci-3gpp2-femto = "ci-3gpp2-femto" EQUAL (token / quoted-string) gstn-location = "gstn-location" EQUAL (token / quoted-string)
And https://tools.ietf.org/html/rfc3261#section-7.3.1 states that:
"Multiple header field rows with the same field-name MAY be present in a message if and only if the entire field-value for that header field is defined as a comma-separated list (that is, if follows the grammar defined in Section 7.3)."
This means that using multiple P-Access-Newtork-Info headers is valid syntax.