├── .classpath
├── .gitignore
├── .project
├── README
├── README-DISTRIBUTION
├── README.md
├── TODO.txt
├── ant-build-config.properties
├── ant-tasks
├── build.xml
├── lib
│ ├── ant.jar
│ ├── jdom.jar
│ └── maven-repository-importer-1.2.jar
└── src
│ └── net
│ └── java
│ └── jsip
│ └── ant
│ └── tasks
│ └── VersionerTask.java
├── build.xml
├── codefmt.xml
├── contributing.txt
├── docs
├── back.gif
├── faq.html
├── get_java_red_button.gif
├── index.html
├── javanet_button_170.gif
├── nist-sip.gif
├── tools
│ └── tracesviewer
│ │ ├── README.html
│ │ └── images
│ │ ├── back.gif
│ │ └── visualizer-pic.jpg
├── uml
│ ├── jain-sip.mdr
│ ├── jain-sip.xml.zip
│ ├── udp-request-processing-sequence-diagram-mark.txt
│ ├── udp-request-processing-sequence-diagram.jpg
│ └── udp-request-processing-sequence-diagram.txt
└── uncopyright.html
├── how-to-run-the-tck.txt
├── javax
└── sip
│ └── jain-sip-ri
│ ├── 1.2
│ ├── jain-sip-ri-1.2.jar
│ ├── jain-sip-ri-1.2.jar.md5
│ ├── jain-sip-ri-1.2.jar.sha1
│ ├── jain-sip-ri-1.2.pom
│ ├── jain-sip-ri-1.2.pom.md5
│ └── jain-sip-ri-1.2.pom.sha1
│ ├── maven-metadata.xml
│ ├── maven-metadata.xml.md5
│ └── maven-metadata.xml.sha1
├── lib
├── README.txt
├── jakarta-regexp-1.3.jar
├── junit-3.8.1.jar
└── log4j-1.2.15.jar
├── licenses
├── ANT-LICENSE.txt
├── JSIP Spec License.pdf
├── LOG4J-LICENSE.txt
├── NIST-CONDITIONS-OF-USE.txt
└── README.txt
├── log4j.properties
├── m2
├── README
├── android-jain-sip-ri
│ └── pom.xml
├── jain-sip-api
│ └── pom.xml
├── jain-sip-performance
│ └── pom.xml
├── jain-sip-ri
│ ├── pom.xml
│ └── tck.properties
├── jain-sip-sctp
│ └── pom.xml
├── jain-sip-testsuite
│ ├── pom.xml
│ └── tck.properties
└── pom.xml
├── manifest.tck
├── manifest.viewer
├── poms
├── api-pom.xml
└── ri-pom.xml
├── repo
└── javax.sip
│ └── poms
│ ├── jain-sip-api-1.2.pom
│ ├── jain-sip-api-1.2.pom.md5
│ ├── jain-sip-ri-1.2-SNAPSHOT.pom
│ ├── jain-sip-ri-1.2-SNAPSHOT.pom.md5
│ ├── jain-sip-ri-1.2.pom
│ └── jain-sip-ri-1.2.pom.md5
├── src
├── examples
│ ├── android
│ │ └── simplecallsetup
│ │ │ ├── README.txt
│ │ │ ├── Shootist.java
│ │ │ └── Shootme.java
│ ├── authorization
│ │ ├── AccountManagerImpl.java
│ │ ├── ShootistAuth.java
│ │ ├── ShootmeAuth.java
│ │ ├── UserCredentialsImpl.java
│ │ └── build.xml
│ ├── busy
│ │ ├── Shootist.java
│ │ ├── Shootme.java
│ │ └── build.xml
│ ├── cancel
│ │ ├── AbstractCancelTest.java
│ │ ├── ProtocolObjects.java
│ │ ├── README.txt
│ │ ├── Shootist.java
│ │ ├── Shootme.java
│ │ ├── TestCancel.java
│ │ ├── TestDelayedCancel.java
│ │ └── build.xml
│ ├── forked
│ │ └── invite
│ │ │ ├── ForkedInviteTest.java
│ │ │ ├── ProtocolObjects.java
│ │ │ ├── Proxy.java
│ │ │ ├── README.txt
│ │ │ ├── Shootist.java
│ │ │ ├── Shootme.java
│ │ │ └── build.xml
│ ├── ims
│ │ ├── README.txt
│ │ ├── Shootist.java
│ │ ├── Shootme.java
│ │ ├── TheShootist.jpg
│ │ └── build.xml
│ ├── nistgoodies
│ │ ├── README.txt
│ │ ├── configlogger
│ │ │ ├── LogRecordFactoryImpl.java
│ │ │ ├── LogRecordImpl.java
│ │ │ ├── README.txt
│ │ │ ├── Shootist.java
│ │ │ ├── Shootme.java
│ │ │ └── build.xml
│ │ ├── leakaudit
│ │ │ ├── LeakAudit.java
│ │ │ ├── LeakingApp.java
│ │ │ └── README.txt
│ │ ├── match
│ │ │ ├── MatchTest.java
│ │ │ ├── README.txt
│ │ │ └── RegexpMatchTest.java
│ │ ├── messagevalve
│ │ │ ├── README.txt
│ │ │ └── SipMessageValve.java
│ │ ├── pluggablelogger
│ │ │ ├── LogRecordFactoryImpl.java
│ │ │ ├── LogRecordImpl.java
│ │ │ ├── README.txt
│ │ │ ├── ServerLoggerImpl.java
│ │ │ ├── Shootist.java
│ │ │ ├── Shootme.java
│ │ │ ├── StackLoggerImpl.java
│ │ │ └── build.xml
│ │ └── threadaudit
│ │ │ ├── README.txt
│ │ │ └── ThreadAudit.java
│ ├── noautodialog
│ │ ├── README.txt
│ │ ├── Shootist.java
│ │ ├── Shootme.java
│ │ └── build.xml
│ ├── parser
│ │ ├── Parser.java
│ │ └── README.txt
│ ├── prack
│ │ ├── Shootist.java
│ │ ├── Shootme.java
│ │ └── build.xml
│ ├── publish
│ │ ├── Notifier.java
│ │ ├── Publisher.java
│ │ └── Subscriber.java
│ ├── redirect
│ │ ├── ProtocolObjects.java
│ │ ├── Shootist.java
│ │ ├── Shootme.java
│ │ └── build.xml
│ ├── refer
│ │ ├── Referee.java
│ │ ├── Referer.java
│ │ └── build.xml
│ ├── reinvite
│ │ ├── ProtocolObjects.java
│ │ ├── README.txt
│ │ ├── Shootist.java
│ │ ├── Shootme.java
│ │ └── build.xml
│ ├── simplecallsetup
│ │ ├── README.txt
│ │ ├── Shootist.java
│ │ ├── Shootme.java
│ │ ├── TheShootist.jpg
│ │ └── build.xml
│ ├── subsnotify
│ │ ├── Forker.java
│ │ ├── Notifier.java
│ │ ├── Subscriber.java
│ │ └── build.xml
│ ├── tls
│ │ ├── HopImpl.java
│ │ ├── MyRouter.java
│ │ ├── README.txt
│ │ ├── Shootist.java
│ │ ├── Shootme.java
│ │ ├── build.xml
│ │ ├── testKeyStore
│ │ └── testkeys
│ ├── tpcc
│ │ ├── Controller.java
│ │ ├── Controller4.java
│ │ ├── Phone.java
│ │ ├── README.txt
│ │ └── build.xml
│ └── websocket
│ │ ├── B2BUA.java
│ │ ├── README.txt
│ │ └── build.xml
├── gov
│ └── nist
│ │ ├── core
│ │ ├── CommonLogger.java
│ │ ├── CommonLoggerLog4j.java
│ │ ├── Debug.java
│ │ ├── DuplicateNameValueList.java
│ │ ├── GenericObject.java
│ │ ├── GenericObjectList.java
│ │ ├── Host.java
│ │ ├── HostNameParser.java
│ │ ├── HostPort.java
│ │ ├── InternalErrorHandler.java
│ │ ├── LexerCore.java
│ │ ├── LogLevels.java
│ │ ├── LogWriter.java
│ │ ├── Match.java
│ │ ├── MultiMap.java
│ │ ├── MultiValueMap.java
│ │ ├── MultiValueMapImpl.java
│ │ ├── NameValue.java
│ │ ├── NameValueList.java
│ │ ├── NamingThreadFactory.java
│ │ ├── PackageNames.java
│ │ ├── ParserCore.java
│ │ ├── Separators.java
│ │ ├── ServerLogger.java
│ │ ├── StackLogger.java
│ │ ├── StringTokenizer.java
│ │ ├── ThreadAuditor.java
│ │ ├── Token.java
│ │ ├── net
│ │ │ ├── AddressResolver.java
│ │ │ ├── DefaultNetworkLayer.java
│ │ │ ├── DefaultSecurityManagerProvider.java
│ │ │ ├── NetworkLayer.java
│ │ │ ├── SecurityManagerProvider.java
│ │ │ ├── SslNetworkLayer.java
│ │ │ └── package.html
│ │ └── package.html
│ │ └── javax
│ │ ├── sdp
│ │ ├── MediaDescriptionImpl.java
│ │ ├── SdpEncoderImpl.java
│ │ ├── SessionDescriptionImpl.java
│ │ ├── TimeDescriptionImpl.java
│ │ ├── fields
│ │ │ ├── AttributeField.java
│ │ │ ├── BandwidthField.java
│ │ │ ├── ConnectionAddress.java
│ │ │ ├── ConnectionField.java
│ │ │ ├── Email.java
│ │ │ ├── EmailAddress.java
│ │ │ ├── EmailField.java
│ │ │ ├── Indentation.java
│ │ │ ├── InformationField.java
│ │ │ ├── KeyField.java
│ │ │ ├── MediaField.java
│ │ │ ├── OriginField.java
│ │ │ ├── PhoneField.java
│ │ │ ├── PreconditionFields.java
│ │ │ ├── ProtoVersionField.java
│ │ │ ├── RepeatField.java
│ │ │ ├── SDPField.java
│ │ │ ├── SDPFieldList.java
│ │ │ ├── SDPFieldNames.java
│ │ │ ├── SDPFormat.java
│ │ │ ├── SDPKeywords.java
│ │ │ ├── SDPObject.java
│ │ │ ├── SDPObjectList.java
│ │ │ ├── SessionNameField.java
│ │ │ ├── TimeField.java
│ │ │ ├── TypedTime.java
│ │ │ ├── URIField.java
│ │ │ ├── ZoneAdjustment.java
│ │ │ ├── ZoneField.java
│ │ │ └── package.html
│ │ ├── package.html
│ │ └── parser
│ │ │ ├── AttributeFieldParser.java
│ │ │ ├── BandwidthFieldParser.java
│ │ │ ├── ConnectionFieldParser.java
│ │ │ ├── EmailFieldParser.java
│ │ │ ├── InformationFieldParser.java
│ │ │ ├── KeyFieldParser.java
│ │ │ ├── Lexer.java
│ │ │ ├── MediaFieldParser.java
│ │ │ ├── OriginFieldParser.java
│ │ │ ├── ParserFactory.java
│ │ │ ├── PhoneFieldParser.java
│ │ │ ├── ProtoVersionFieldParser.java
│ │ │ ├── RepeatFieldParser.java
│ │ │ ├── SDPAnnounceParser.java
│ │ │ ├── SDPParser.java
│ │ │ ├── SessionNameFieldParser.java
│ │ │ ├── TimeFieldParser.java
│ │ │ ├── URIFieldParser.java
│ │ │ └── ZoneFieldParser.java
│ │ └── sip
│ │ ├── ClientTransactionExt.java
│ │ ├── DefaultAddressResolver.java
│ │ ├── DialogExt.java
│ │ ├── DialogFilter.java
│ │ ├── DialogTimeoutEvent.java
│ │ ├── EventScanner.java
│ │ ├── EventWrapper.java
│ │ ├── IOExceptionEventExt.java
│ │ ├── ListeningPointExt.java
│ │ ├── ListeningPointImpl.java
│ │ ├── LogRecord.java
│ │ ├── LogRecordFactory.java
│ │ ├── MDCScheduledTHExecutor.java
│ │ ├── MDCTask.java
│ │ ├── MergedSystemProperties.java
│ │ ├── NistSipMessageFactoryImpl.java
│ │ ├── ReleaseReferencesStrategy.java
│ │ ├── RequestEventExt.java
│ │ ├── ResponseEventExt.java
│ │ ├── SIPConstants.java
│ │ ├── ServerTransactionExt.java
│ │ ├── SipListenerExt.java
│ │ ├── SipProviderExt.java
│ │ ├── SipProviderImpl.java
│ │ ├── SipStackExt.java
│ │ ├── SipStackImpl.java
│ │ ├── ThreadAffinityExecutor.java
│ │ ├── ThreadAffinityIdentifier.java
│ │ ├── ThreadAffinityTask.java
│ │ ├── TlsSecurityPolicy.java
│ │ ├── TransactionExt.java
│ │ ├── Utils.java
│ │ ├── UtilsExt.java
│ │ ├── address
│ │ ├── AddressFactoryEx.java
│ │ ├── AddressFactoryImpl.java
│ │ ├── AddressImpl.java
│ │ ├── Authority.java
│ │ ├── GenericURI.java
│ │ ├── NetObject.java
│ │ ├── NetObjectList.java
│ │ ├── ParameterNames.java
│ │ ├── RouterExt.java
│ │ ├── SipURIExt.java
│ │ ├── SipUri.java
│ │ ├── TelURLImpl.java
│ │ ├── TelephoneNumber.java
│ │ ├── UriDecoder.java
│ │ ├── UserInfo.java
│ │ └── package.html
│ │ ├── clientauthutils
│ │ ├── AccountManager.java
│ │ ├── AuthenticationHelper.java
│ │ ├── AuthenticationHelperImpl.java
│ │ ├── CredentialsCache.java
│ │ ├── DigestServerAuthenticationHelper.java
│ │ ├── MessageDigestAlgorithm.java
│ │ ├── SecureAccountManager.java
│ │ ├── UserCredentialHash.java
│ │ ├── UserCredentials.java
│ │ └── package.html
│ │ ├── header
│ │ ├── Accept.java
│ │ ├── AcceptEncoding.java
│ │ ├── AcceptEncodingList.java
│ │ ├── AcceptLanguage.java
│ │ ├── AcceptLanguageList.java
│ │ ├── AcceptList.java
│ │ ├── AddressParameters.java
│ │ ├── AddressParametersHeader.java
│ │ ├── AlertInfo.java
│ │ ├── AlertInfoList.java
│ │ ├── Allow.java
│ │ ├── AllowEvents.java
│ │ ├── AllowEventsList.java
│ │ ├── AllowList.java
│ │ ├── AuthenticationHeader.java
│ │ ├── AuthenticationInfo.java
│ │ ├── AuthenticationInfoList.java
│ │ ├── Authorization.java
│ │ ├── AuthorizationList.java
│ │ ├── CSeq.java
│ │ ├── CallID.java
│ │ ├── CallIdentifier.java
│ │ ├── CallInfo.java
│ │ ├── CallInfoList.java
│ │ ├── Challenge.java
│ │ ├── Contact.java
│ │ ├── ContactList.java
│ │ ├── ContentDisposition.java
│ │ ├── ContentEncoding.java
│ │ ├── ContentEncodingList.java
│ │ ├── ContentLanguage.java
│ │ ├── ContentLanguageList.java
│ │ ├── ContentLength.java
│ │ ├── ContentType.java
│ │ ├── Credentials.java
│ │ ├── ErrorInfo.java
│ │ ├── ErrorInfoList.java
│ │ ├── Event.java
│ │ ├── Expires.java
│ │ ├── ExtensionHeaderImpl.java
│ │ ├── ExtensionHeaderList.java
│ │ ├── From.java
│ │ ├── HeaderExt.java
│ │ ├── HeaderFactoryExt.java
│ │ ├── HeaderFactoryImpl.java
│ │ ├── InReplyTo.java
│ │ ├── InReplyToList.java
│ │ ├── Indentation.java
│ │ ├── MaxForwards.java
│ │ ├── MediaRange.java
│ │ ├── MimeVersion.java
│ │ ├── MinExpires.java
│ │ ├── NameMap.java
│ │ ├── Organization.java
│ │ ├── ParameterNames.java
│ │ ├── ParametersExt.java
│ │ ├── ParametersHeader.java
│ │ ├── Priority.java
│ │ ├── Protocol.java
│ │ ├── ProxyAuthenticate.java
│ │ ├── ProxyAuthenticateList.java
│ │ ├── ProxyAuthorization.java
│ │ ├── ProxyAuthorizationList.java
│ │ ├── ProxyRequire.java
│ │ ├── ProxyRequireList.java
│ │ ├── RAck.java
│ │ ├── RSeq.java
│ │ ├── Reason.java
│ │ ├── ReasonList.java
│ │ ├── RecordRoute.java
│ │ ├── RecordRouteList.java
│ │ ├── ReferTo.java
│ │ ├── ReplyTo.java
│ │ ├── RequestLine.java
│ │ ├── Require.java
│ │ ├── RequireList.java
│ │ ├── RetryAfter.java
│ │ ├── Route.java
│ │ ├── RouteList.java
│ │ ├── SIPDate.java
│ │ ├── SIPDateHeader.java
│ │ ├── SIPETag.java
│ │ ├── SIPHeader.java
│ │ ├── SIPHeaderList.java
│ │ ├── SIPHeaderNames.java
│ │ ├── SIPHeaderNamesCache.java
│ │ ├── SIPIfMatch.java
│ │ ├── SIPObject.java
│ │ ├── SIPObjectList.java
│ │ ├── Server.java
│ │ ├── SipRequestLine.java
│ │ ├── SipStatusLine.java
│ │ ├── StatusLine.java
│ │ ├── Subject.java
│ │ ├── SubscriptionState.java
│ │ ├── Supported.java
│ │ ├── SupportedList.java
│ │ ├── TimeStamp.java
│ │ ├── To.java
│ │ ├── Unsupported.java
│ │ ├── UnsupportedList.java
│ │ ├── UserAgent.java
│ │ ├── Via.java
│ │ ├── ViaHeaderExt.java
│ │ ├── ViaList.java
│ │ ├── WWWAuthenticate.java
│ │ ├── WWWAuthenticateList.java
│ │ ├── Warning.java
│ │ ├── WarningList.java
│ │ ├── extensions
│ │ │ ├── Join.java
│ │ │ ├── JoinHeader.java
│ │ │ ├── MinSE.java
│ │ │ ├── MinSEHeader.java
│ │ │ ├── References.java
│ │ │ ├── ReferencesHeader.java
│ │ │ ├── ReferredBy.java
│ │ │ ├── ReferredByHeader.java
│ │ │ ├── Replaces.java
│ │ │ ├── ReplacesHeader.java
│ │ │ ├── SessionExpires.java
│ │ │ └── SessionExpiresHeader.java
│ │ ├── ims
│ │ │ ├── AddressHeaderIms.java
│ │ │ ├── AuthorizationHeaderIms.java
│ │ │ ├── PAccessNetworkInfo.java
│ │ │ ├── PAccessNetworkInfoHeader.java
│ │ │ ├── PAccessNetworkInfoList.java
│ │ │ ├── PAssertedIdentity.java
│ │ │ ├── PAssertedIdentityHeader.java
│ │ │ ├── PAssertedIdentityList.java
│ │ │ ├── PAssertedService.java
│ │ │ ├── PAssertedServiceHeader.java
│ │ │ ├── PAssociatedURI.java
│ │ │ ├── PAssociatedURIHeader.java
│ │ │ ├── PAssociatedURIList.java
│ │ │ ├── PCalledPartyID.java
│ │ │ ├── PCalledPartyIDHeader.java
│ │ │ ├── PChargingFunctionAddresses.java
│ │ │ ├── PChargingFunctionAddressesHeader.java
│ │ │ ├── PChargingVector.java
│ │ │ ├── PChargingVectorHeader.java
│ │ │ ├── PMediaAuthorization.java
│ │ │ ├── PMediaAuthorizationHeader.java
│ │ │ ├── PMediaAuthorizationList.java
│ │ │ ├── PPreferredIdentity.java
│ │ │ ├── PPreferredIdentityHeader.java
│ │ │ ├── PPreferredService.java
│ │ │ ├── PPreferredServiceHeader.java
│ │ │ ├── PProfileKey.java
│ │ │ ├── PProfileKeyHeader.java
│ │ │ ├── PServedUser.java
│ │ │ ├── PServedUserHeader.java
│ │ │ ├── PUserDatabase.java
│ │ │ ├── PUserDatabaseHeader.java
│ │ │ ├── PVisitedNetworkID.java
│ │ │ ├── PVisitedNetworkIDHeader.java
│ │ │ ├── PVisitedNetworkIDList.java
│ │ │ ├── ParameterNamesIms.java
│ │ │ ├── Path.java
│ │ │ ├── PathHeader.java
│ │ │ ├── PathList.java
│ │ │ ├── Privacy.java
│ │ │ ├── PrivacyHeader.java
│ │ │ ├── PrivacyList.java
│ │ │ ├── SIPHeaderNamesIms.java
│ │ │ ├── SecurityAgree.java
│ │ │ ├── SecurityAgreeHeader.java
│ │ │ ├── SecurityClient.java
│ │ │ ├── SecurityClientHeader.java
│ │ │ ├── SecurityClientList.java
│ │ │ ├── SecurityServer.java
│ │ │ ├── SecurityServerHeader.java
│ │ │ ├── SecurityServerList.java
│ │ │ ├── SecurityVerify.java
│ │ │ ├── SecurityVerifyHeader.java
│ │ │ ├── SecurityVerifyList.java
│ │ │ ├── ServiceRoute.java
│ │ │ ├── ServiceRouteHeader.java
│ │ │ ├── ServiceRouteList.java
│ │ │ ├── WWWAuthenticateHeaderIms.java
│ │ │ └── package.html
│ │ └── package.html
│ │ ├── message
│ │ ├── Content.java
│ │ ├── ContentImpl.java
│ │ ├── HeaderIterator.java
│ │ ├── ListMap.java
│ │ ├── MessageExt.java
│ │ ├── MessageFactoryExt.java
│ │ ├── MessageFactoryImpl.java
│ │ ├── MessageObject.java
│ │ ├── MultipartMimeContent.java
│ │ ├── MultipartMimeContentImpl.java
│ │ ├── RequestExt.java
│ │ ├── ResponseExt.java
│ │ ├── SIPDuplicateHeaderException.java
│ │ ├── SIPMessage.java
│ │ ├── SIPRequest.java
│ │ ├── SIPResponse.java
│ │ └── package.html
│ │ ├── package.html
│ │ ├── parser
│ │ ├── AcceptEncodingParser.java
│ │ ├── AcceptLanguageParser.java
│ │ ├── AcceptParser.java
│ │ ├── AddressParametersParser.java
│ │ ├── AddressParser.java
│ │ ├── AlertInfoParser.java
│ │ ├── AllowEventsParser.java
│ │ ├── AllowParser.java
│ │ ├── AuthenticationInfoParser.java
│ │ ├── AuthorizationParser.java
│ │ ├── CSeqParser.java
│ │ ├── CallIDParser.java
│ │ ├── CallInfoParser.java
│ │ ├── ChallengeParser.java
│ │ ├── ContactParser.java
│ │ ├── ContentDispositionParser.java
│ │ ├── ContentEncodingParser.java
│ │ ├── ContentLanguageParser.java
│ │ ├── ContentLengthParser.java
│ │ ├── ContentTypeParser.java
│ │ ├── DateParser.java
│ │ ├── ErrorInfoParser.java
│ │ ├── EventParser.java
│ │ ├── ExpiresParser.java
│ │ ├── FromParser.java
│ │ ├── HeaderParser.java
│ │ ├── InReplyToParser.java
│ │ ├── Lexer.java
│ │ ├── MaxForwardsParser.java
│ │ ├── MessageParser.java
│ │ ├── MessageParserFactory.java
│ │ ├── MimeVersionParser.java
│ │ ├── MinExpiresParser.java
│ │ ├── NioPipelineParser.java
│ │ ├── OrganizationParser.java
│ │ ├── ParametersParser.java
│ │ ├── ParseExceptionListener.java
│ │ ├── Parser.java
│ │ ├── ParserFactory.java
│ │ ├── Pipeline.java
│ │ ├── PipelinedMsgParser.java
│ │ ├── PostParseExecutorServices.java
│ │ ├── PriorityParser.java
│ │ ├── ProxyAuthenticateParser.java
│ │ ├── ProxyAuthorizationParser.java
│ │ ├── ProxyRequireParser.java
│ │ ├── RAckParser.java
│ │ ├── RSeqParser.java
│ │ ├── ReasonParser.java
│ │ ├── RecordRouteParser.java
│ │ ├── ReferToParser.java
│ │ ├── ReplyToParser.java
│ │ ├── RequestLineParser.java
│ │ ├── RequireParser.java
│ │ ├── RetryAfterParser.java
│ │ ├── RouteParser.java
│ │ ├── SIPETagParser.java
│ │ ├── SIPIfMatchParser.java
│ │ ├── SIPMessageListener.java
│ │ ├── ServerParser.java
│ │ ├── StatusLineParser.java
│ │ ├── StringMsgParser.java
│ │ ├── StringMsgParserFactory.java
│ │ ├── SubjectParser.java
│ │ ├── SubscriptionStateParser.java
│ │ ├── SupportedParser.java
│ │ ├── TimeStampParser.java
│ │ ├── ToParser.java
│ │ ├── TokenNames.java
│ │ ├── TokenTypes.java
│ │ ├── URLParser.java
│ │ ├── UnsupportedParser.java
│ │ ├── UserAgentParser.java
│ │ ├── ViaParser.java
│ │ ├── WWWAuthenticateParser.java
│ │ ├── WarningParser.java
│ │ ├── extensions
│ │ │ ├── JoinParser.java
│ │ │ ├── MinSEParser.java
│ │ │ ├── ReferencesParser.java
│ │ │ ├── ReferredByParser.java
│ │ │ ├── ReplacesParser.java
│ │ │ └── SessionExpiresParser.java
│ │ ├── ims
│ │ │ ├── AddressHeaderParser.java
│ │ │ ├── PAccessNetworkInfoParser.java
│ │ │ ├── PAssertedIdentityParser.java
│ │ │ ├── PAssertedServiceParser.java
│ │ │ ├── PAssociatedURIParser.java
│ │ │ ├── PCalledPartyIDParser.java
│ │ │ ├── PChargingFunctionAddressesParser.java
│ │ │ ├── PChargingVectorParser.java
│ │ │ ├── PMediaAuthorizationParser.java
│ │ │ ├── PPreferredIdentityParser.java
│ │ │ ├── PPreferredServiceParser.java
│ │ │ ├── PProfileKeyParser.java
│ │ │ ├── PServedUserParser.java
│ │ │ ├── PUserDatabaseParser.java
│ │ │ ├── PVisitedNetworkIDParser.java
│ │ │ ├── PathParser.java
│ │ │ ├── PrivacyParser.java
│ │ │ ├── SecurityAgreeParser.java
│ │ │ ├── SecurityClientParser.java
│ │ │ ├── SecurityServerParser.java
│ │ │ ├── SecurityVerifyParser.java
│ │ │ ├── ServiceRouteParser.java
│ │ │ ├── TokenNamesIms.java
│ │ │ └── package.html
│ │ └── package.html
│ │ └── stack
│ │ ├── AckSendingStrategy.java
│ │ ├── Base64.java
│ │ ├── BlockingQueueDispatchAuditor.java
│ │ ├── ByteBufferFactory.java
│ │ ├── CallAnalysisInterceptor.java
│ │ ├── CallAnalyzer.java
│ │ ├── ClientAuthType.java
│ │ ├── CongestionControlMessageValve.java
│ │ ├── ConnectionOrientedMessageChannel.java
│ │ ├── ConnectionOrientedMessageProcessor.java
│ │ ├── DatagramQueuedMessageDispatch.java
│ │ ├── DefaultMessageLogFactory.java
│ │ ├── DefaultRouter.java
│ │ ├── DefaultTlsSecurityPolicy.java
│ │ ├── HandshakeCompletedListenerImpl.java
│ │ ├── HopImpl.java
│ │ ├── IOHandler.java
│ │ ├── IllegalTransactionStateException.java
│ │ ├── KeyedSemaphore.java
│ │ ├── MessageChannel.java
│ │ ├── MessageLog.java
│ │ ├── MessageProcessor.java
│ │ ├── MessageProcessorFactory.java
│ │ ├── MultiPipelineExecutor.java
│ │ ├── NIOHandler.java
│ │ ├── NIOMode.java
│ │ ├── NioMessageProcessorFactory.java
│ │ ├── NioTcpMessageChannel.java
│ │ ├── NioTcpMessageProcessor.java
│ │ ├── NioTlsChannelInterface.java
│ │ ├── NioTlsMessageChannel.java
│ │ ├── NioTlsMessageProcessor.java
│ │ ├── NioTlsWebSocketMessageChannel.java
│ │ ├── NioTlsWebSocketMessageProcessor.java
│ │ ├── NioWebSocketMessageChannel.java
│ │ ├── NioWebSocketMessageProcessor.java
│ │ ├── OIOMessageProcessorFactory.java
│ │ ├── QueuedMessageDispatchBase.java
│ │ ├── RawMessageChannel.java
│ │ ├── SIPClientTransaction.java
│ │ ├── SIPClientTransactionImpl.java
│ │ ├── SIPDialog.java
│ │ ├── SIPDialogErrorEvent.java
│ │ ├── SIPDialogEventListener.java
│ │ ├── SIPEventInterceptor.java
│ │ ├── SIPMessageValve.java
│ │ ├── SIPServerTransaction.java
│ │ ├── SIPServerTransactionImpl.java
│ │ ├── SIPStackTimerTask.java
│ │ ├── SIPTransaction.java
│ │ ├── SIPTransactionErrorEvent.java
│ │ ├── SIPTransactionEventListener.java
│ │ ├── SIPTransactionImpl.java
│ │ ├── SIPTransactionStack.java
│ │ ├── SSLStateMachine.java
│ │ ├── ServerLog.java
│ │ ├── ServerRequestInterface.java
│ │ ├── ServerResponseInterface.java
│ │ ├── SocketTimeoutAuditor.java
│ │ ├── StackMessageFactory.java
│ │ ├── TCPMessageChannel.java
│ │ ├── TCPMessageProcessor.java
│ │ ├── TLSMessageChannel.java
│ │ ├── TLSMessageProcessor.java
│ │ ├── UDPMessageChannel.java
│ │ ├── UDPMessageProcessor.java
│ │ ├── WebSocketCodec.java
│ │ ├── WebSocketHttpHandshake.java
│ │ ├── package.html
│ │ ├── sctp
│ │ ├── SCTPMessageChannel.java
│ │ └── SCTPMessageProcessor.java
│ │ └── timers
│ │ ├── AffinitityExecutorSipTimer.java
│ │ ├── DefaultSipTimer.java
│ │ ├── ScheduledExecutorSipTimer.java
│ │ └── SipTimer.java
├── javax
│ ├── sdp
│ │ ├── Attribute.java
│ │ ├── BandWidth.java
│ │ ├── Connection.java
│ │ ├── EMail.java
│ │ ├── Field.java
│ │ ├── Info.java
│ │ ├── Key.java
│ │ ├── Media.java
│ │ ├── MediaDescription.java
│ │ ├── Origin.java
│ │ ├── Phone.java
│ │ ├── RepeatTime.java
│ │ ├── SdpConstants.java
│ │ ├── SdpEncoder.java
│ │ ├── SdpException.java
│ │ ├── SdpFactory.java
│ │ ├── SdpFactoryException.java
│ │ ├── SdpParseException.java
│ │ ├── SessionDescription.java
│ │ ├── SessionName.java
│ │ ├── Time.java
│ │ ├── TimeDescription.java
│ │ ├── TimeZoneAdjustment.java
│ │ ├── URI.java
│ │ ├── Version.java
│ │ └── package.html
│ └── sip
│ │ ├── ClientTransaction.java
│ │ ├── Dialog.java
│ │ ├── DialogDoesNotExistException.java
│ │ ├── DialogState.java
│ │ ├── DialogTerminatedEvent.java
│ │ ├── IOExceptionEvent.java
│ │ ├── InvalidArgumentException.java
│ │ ├── ListeningPoint.java
│ │ ├── ObjectInUseException.java
│ │ ├── PeerUnavailableException.java
│ │ ├── ProviderDoesNotExistException.java
│ │ ├── RequestEvent.java
│ │ ├── ResponseEvent.java
│ │ ├── ServerTransaction.java
│ │ ├── SipException.java
│ │ ├── SipFactory.java
│ │ ├── SipListener.java
│ │ ├── SipProvider.java
│ │ ├── SipStack.java
│ │ ├── Timeout.java
│ │ ├── TimeoutEvent.java
│ │ ├── Transaction.java
│ │ ├── TransactionAlreadyExistsException.java
│ │ ├── TransactionDoesNotExistException.java
│ │ ├── TransactionState.java
│ │ ├── TransactionTerminatedEvent.java
│ │ ├── TransactionUnavailableException.java
│ │ ├── TransportAlreadySupportedException.java
│ │ ├── TransportNotSupportedException.java
│ │ ├── address
│ │ ├── Address.java
│ │ ├── AddressFactory.java
│ │ ├── Hop.java
│ │ ├── Router.java
│ │ ├── SipURI.java
│ │ ├── TelURL.java
│ │ ├── URI.java
│ │ └── package.html
│ │ ├── change-log.html
│ │ ├── copyright.html
│ │ ├── header
│ │ ├── AcceptEncodingHeader.java
│ │ ├── AcceptHeader.java
│ │ ├── AcceptLanguageHeader.java
│ │ ├── AlertInfoHeader.java
│ │ ├── AllowEventsHeader.java
│ │ ├── AllowHeader.java
│ │ ├── AuthenticationInfoHeader.java
│ │ ├── AuthorizationHeader.java
│ │ ├── CSeqHeader.java
│ │ ├── CallIdHeader.java
│ │ ├── CallInfoHeader.java
│ │ ├── ContactHeader.java
│ │ ├── ContentDispositionHeader.java
│ │ ├── ContentEncodingHeader.java
│ │ ├── ContentLanguageHeader.java
│ │ ├── ContentLengthHeader.java
│ │ ├── ContentTypeHeader.java
│ │ ├── DateHeader.java
│ │ ├── Encoding.java
│ │ ├── ErrorInfoHeader.java
│ │ ├── EventHeader.java
│ │ ├── ExpiresHeader.java
│ │ ├── ExtensionHeader.java
│ │ ├── FromHeader.java
│ │ ├── Header.java
│ │ ├── HeaderAddress.java
│ │ ├── HeaderFactory.java
│ │ ├── InReplyToHeader.java
│ │ ├── MaxForwardsHeader.java
│ │ ├── MediaType.java
│ │ ├── MimeVersionHeader.java
│ │ ├── MinExpiresHeader.java
│ │ ├── OptionTag.java
│ │ ├── OrganizationHeader.java
│ │ ├── Parameters.java
│ │ ├── PriorityHeader.java
│ │ ├── ProxyAuthenticateHeader.java
│ │ ├── ProxyAuthorizationHeader.java
│ │ ├── ProxyRequireHeader.java
│ │ ├── RAckHeader.java
│ │ ├── RSeqHeader.java
│ │ ├── ReasonHeader.java
│ │ ├── RecordRouteHeader.java
│ │ ├── ReferToHeader.java
│ │ ├── ReplyToHeader.java
│ │ ├── RequireHeader.java
│ │ ├── RetryAfterHeader.java
│ │ ├── RouteHeader.java
│ │ ├── SIPETagHeader.java
│ │ ├── SIPIfMatchHeader.java
│ │ ├── ServerHeader.java
│ │ ├── SubjectHeader.java
│ │ ├── SubscriptionStateHeader.java
│ │ ├── SupportedHeader.java
│ │ ├── TimeStampHeader.java
│ │ ├── ToHeader.java
│ │ ├── TooManyHopsException.java
│ │ ├── UnsupportedHeader.java
│ │ ├── UserAgentHeader.java
│ │ ├── ViaHeader.java
│ │ ├── WWWAuthenticateHeader.java
│ │ ├── WarningHeader.java
│ │ └── package.html
│ │ ├── message
│ │ ├── Message.java
│ │ ├── MessageFactory.java
│ │ ├── Request.java
│ │ ├── Response.java
│ │ └── package.html
│ │ ├── overview.html
│ │ └── package.html
├── performance
│ ├── b2bua
│ │ ├── Test.java
│ │ ├── TestCall.java
│ │ ├── build.xml
│ │ ├── mss-sip-stack.properties
│ │ ├── run_uac_DIALOG.sh
│ │ ├── run_uas_DIALOG.sh
│ │ ├── test.properties
│ │ ├── uac_DIALOG.xml
│ │ └── uas_DIALOG.xml
│ └── uas
│ │ ├── .ant-targets-build.xml
│ │ ├── README.txt
│ │ ├── Shootme.java
│ │ ├── ShootmeDialogAndTxStateless.java
│ │ ├── ShootmeDialogStateless.java
│ │ ├── build.xml
│ │ ├── diff.txt
│ │ ├── download-and-compile-sipp.sh
│ │ ├── mss-sip-stack.properties
│ │ ├── performance-test-timer.sh
│ │ ├── performance-test.sh
│ │ ├── performance-uac-timer.xml
│ │ └── performance-uac.xml
├── test
│ ├── gov
│ │ └── nist
│ │ │ └── javax
│ │ │ └── sdp
│ │ │ └── parser
│ │ │ └── SdpParserTest.java
│ ├── load
│ │ ├── concurrency
│ │ │ ├── ProtocolObjects.java
│ │ │ ├── README.txt
│ │ │ ├── SelfTest.java
│ │ │ ├── Shootist.java
│ │ │ ├── Shootme.java
│ │ │ └── build.xml
│ │ ├── leakcheck
│ │ │ └── busy
│ │ │ │ ├── Shootist.java
│ │ │ │ └── Shootme.java
│ │ ├── multidialog
│ │ │ ├── README.txt
│ │ │ ├── Shootist.java
│ │ │ ├── Shootme.java
│ │ │ └── build.xml
│ │ └── subsnotify
│ │ │ ├── Notifier.java
│ │ │ ├── SubsNotify.java
│ │ │ └── Subscriber.java
│ ├── tck
│ │ ├── README
│ │ ├── TckInternalError.java
│ │ ├── TestHarness.java
│ │ ├── TiUnexpectedError.java
│ │ ├── factory
│ │ │ ├── AddressFactoryTest.java
│ │ │ ├── FactoryTestHarness.java
│ │ │ ├── FactoryTestSuite.java
│ │ │ ├── HeaderFactoryTest.java
│ │ │ └── MessageFactoryTest.java
│ │ └── msgflow
│ │ │ ├── ClientTransactionTest.java
│ │ │ ├── DialogStateMachineTest.java
│ │ │ ├── DialogTest.java
│ │ │ ├── InviteClientTransactionsStateMachineTest.java
│ │ │ ├── InviteServerTransactionsStateMachineTest.java
│ │ │ ├── MessageFlowHarness.java
│ │ │ ├── NonInviteClientTransactionsStateMachineTest.java
│ │ │ ├── NonInviteServerTransactionsStateMachineTest.java
│ │ │ ├── ServerTransactionTest.java
│ │ │ ├── SipEventCollector.java
│ │ │ ├── SipProviderTest.java
│ │ │ ├── TransactionTimeoutEventTest.java
│ │ │ └── callflows
│ │ │ ├── AssertUntil.java
│ │ │ ├── NetworkPortAssigner.java
│ │ │ ├── NonSipUriRouter.java
│ │ │ ├── ProtocolObjects.java
│ │ │ ├── ScenarioHarness.java
│ │ │ ├── TestAssertion.java
│ │ │ ├── forkedinvite
│ │ │ ├── AbstractForkedInviteTestCase.java
│ │ │ ├── ForkedInviteTest.java
│ │ │ ├── Proxy.java
│ │ │ ├── Shootist.java
│ │ │ └── Shootme.java
│ │ │ ├── prack
│ │ │ ├── AbstractPrackTestCase.java
│ │ │ ├── Shootist.java
│ │ │ ├── Shootme.java
│ │ │ ├── TcpPrackTest.java
│ │ │ └── UdpPrackTest.java
│ │ │ ├── recroute
│ │ │ ├── AbstractRecRouteTestCase.java
│ │ │ ├── Proxy.java
│ │ │ ├── Shootist.java
│ │ │ ├── Shootme.java
│ │ │ ├── TCPRecordRouteTest.java
│ │ │ └── UDPRecordRouteTest.java
│ │ │ ├── redirect
│ │ │ ├── AbstractRedirectTestCase.java
│ │ │ ├── Shootist.java
│ │ │ ├── Shootme.java
│ │ │ ├── TcpRedirectTest.java
│ │ │ └── UdpRedirectTest.java
│ │ │ ├── refer
│ │ │ ├── AbstractReferTestCase.java
│ │ │ ├── Referee.java
│ │ │ ├── Referrer.java
│ │ │ ├── TcpReferTest.java
│ │ │ └── UdpReferTest.java
│ │ │ ├── reinvite
│ │ │ ├── ReInviteTest.java
│ │ │ ├── Shootist.java
│ │ │ └── Shootme.java
│ │ │ ├── router
│ │ │ ├── AbstractRouterTestCase.java
│ │ │ ├── Shootist.java
│ │ │ ├── Shootme.java
│ │ │ ├── TcpRouterTest.java
│ │ │ └── UdpRouterTest.java
│ │ │ ├── sctp
│ │ │ ├── SctpTest.java
│ │ │ ├── Shootist.java
│ │ │ └── Shootme.java
│ │ │ ├── subsnotify
│ │ │ ├── AbstractSubsnotifyTestCase.java
│ │ │ ├── Forker.java
│ │ │ ├── Notifier.java
│ │ │ ├── Subscriber.java
│ │ │ ├── TcpSubsnotifyTest.java
│ │ │ └── UdpSubsnotifyTest.java
│ │ │ └── tls
│ │ │ ├── Shootist.java
│ │ │ ├── Shootme.java
│ │ │ ├── TlsTest.java
│ │ │ └── testkeys
│ ├── torture
│ │ ├── ConfigurationSwitches.java
│ │ ├── README
│ │ ├── TagNames.java
│ │ ├── TokenValues.java
│ │ ├── Torture.java
│ │ ├── TortureTest.java
│ │ ├── torture.dtd
│ │ └── torture.xml
│ └── unit
│ │ └── gov
│ │ └── nist
│ │ └── javax
│ │ └── sip
│ │ ├── address
│ │ ├── JainSipUriTest.java
│ │ └── UriDecoderTest.java
│ │ ├── multipartmime
│ │ ├── MultipartMimeParserTest.java
│ │ └── multipart-body.txt
│ │ ├── parser
│ │ ├── AcceptEncodingParserTest.java
│ │ ├── AcceptLanguageParserTest.java
│ │ ├── AcceptParserTest.java
│ │ ├── AddressParserTest.java
│ │ ├── AlertInfoParserTest.java
│ │ ├── AllowEventsParserTest.java
│ │ ├── AllowParserTest.java
│ │ ├── AuthenticationInfoParserTest.java
│ │ ├── AuthorizationParserTest.java
│ │ ├── CSeqParserTest.java
│ │ ├── CallIDParserTest.java
│ │ ├── CallInfoParserTest.java
│ │ ├── ContactParserTest.java
│ │ ├── ContentDispositionParserTest.java
│ │ ├── ContentEncodingParserTest.java
│ │ ├── ContentLanguageParserTest.java
│ │ ├── ContentLengthParserTest.java
│ │ ├── ContentTypeParserTest.java
│ │ ├── DateParserTest.java
│ │ ├── ErrorInfoParserTest.java
│ │ ├── EventParserTest.java
│ │ ├── ExpiresParserTest.java
│ │ ├── FromParserTest.java
│ │ ├── HostNameParserTest.java
│ │ ├── HostTest.java
│ │ ├── InReplyToParserTest.java
│ │ ├── JunkAtEndOfMessageTest.java
│ │ ├── MaxForwardsParserTest.java
│ │ ├── MimeVersionParserTest.java
│ │ ├── MinExpiresParserTest.java
│ │ ├── NioPipelineParserTest.java
│ │ ├── OrganizationParserTest.java
│ │ ├── ParserTestCase.java
│ │ ├── ParserTestSuite.java
│ │ ├── RecordRouteParserTest.java
│ │ ├── ReferToParserTest.java
│ │ ├── RetryAfterParserTest.java
│ │ ├── RouteParserTest.java
│ │ ├── RussianDisplayNameTest.java
│ │ ├── SubscriptionStateParserTest.java
│ │ ├── SupportedParserTest.java
│ │ ├── TimeStampParserTest.java
│ │ ├── URLParserTest.java
│ │ ├── ViaParserTest.java
│ │ ├── WarningParserTest.java
│ │ ├── extensions
│ │ │ ├── JoinParserTest.java
│ │ │ ├── MinSEParserTest.java
│ │ │ ├── ReferencesParserTest.java
│ │ │ ├── ReferredByParserTest.java
│ │ │ ├── ReplacesParserTest.java
│ │ │ └── SessionExpiresParserTest.java
│ │ └── ims
│ │ │ ├── PAccessNetworkInfoParserTest.java
│ │ │ ├── PAssertedIdentityParserTest.java
│ │ │ ├── PAssertedServiceParserTest.java
│ │ │ ├── PAssociatedURIParserTest.java
│ │ │ ├── PCalledPartyIDParserTest.java
│ │ │ ├── PChargingFunctionAddressesParserTest.java
│ │ │ ├── PChargingVectorParserTest.java
│ │ │ ├── PMediaAuthorizationParserTest.java
│ │ │ ├── PPreferredIdentityParserTest.java
│ │ │ ├── PPreferredServiceParserTest.java
│ │ │ ├── PProfileKeyParserTest.java
│ │ │ ├── PServedUserParserTest.java
│ │ │ ├── PUserDatabaseParserTest.java
│ │ │ ├── PVisitedNetworkIDParserTest.java
│ │ │ ├── PathParserTest.java
│ │ │ ├── PrivacyParserTest.java
│ │ │ ├── SecurityClientParserTest.java
│ │ │ ├── SecurityServerParserTest.java
│ │ │ └── SecurityVerifyParserTest.java
│ │ └── stack
│ │ ├── AckReTransmissionTest.java
│ │ ├── AddconcurrentProviderTest.java
│ │ ├── CancelEventTest.java
│ │ ├── ClientTransactionCallingAlertTest.java
│ │ ├── CtxExpiredTest.java
│ │ ├── DeliverNotifyBefore202Test.java
│ │ ├── DeliverRequestEventWithBadHeaderTest.java
│ │ ├── DeliverUnsolicitedNotifyTest.java
│ │ ├── DialogEarlyStateTimeoutTest.java
│ │ ├── DialogIdentityTest.java
│ │ ├── KeyedSemaphoreTest.java
│ │ ├── LooseDialogValidationTest.java
│ │ ├── MultipleContactsTest.java
│ │ ├── NIOIdleTimeoutTest.java
│ │ ├── NIOParsingTest.java
│ │ ├── NoAutoDialogTest.java
│ │ ├── NoToTagOn1xxDialogLeakTest.java
│ │ ├── NonRfc3261ForkedInviteTest.java
│ │ ├── RFC5626KeepAliveTest.java
│ │ ├── ReInviteBusyTest.java
│ │ ├── ReInviteInfoAckOverlapTest.java
│ │ ├── ReconnectTCPTest.java
│ │ ├── RejectInvalidResponseTest.java
│ │ ├── RejectOutOfSequenceMessageTest.java
│ │ ├── SIPEventInterceptorTest.java
│ │ ├── SIPMessageValveImpl.java
│ │ ├── SIPMessageValveTest.java
│ │ ├── SelfroutingTest.java
│ │ ├── ServerTransactionRetransmissionTimerTest.java
│ │ ├── SetRetransmissionTimerTest.java
│ │ ├── StackQueueCongestionControlTest.java
│ │ ├── TcpMultiThreadDeadlockTest.java
│ │ ├── TcpSingleThreadDeadlockTest.java
│ │ ├── TransactionAlreadyExistsExceptionTest.java
│ │ ├── UdpPrackTimeoutTest.java
│ │ ├── ViaRPortTest.java
│ │ ├── WebsocketHttpHandshakeTest.java
│ │ ├── WebsocketPacketFragmentationTest.java
│ │ ├── WebsocketSelfTest.java
│ │ ├── acktransport
│ │ ├── InviteTest.java
│ │ ├── Proxy.java
│ │ ├── Shootist.java
│ │ ├── Shootme.java
│ │ ├── SipObjects.java
│ │ └── package.html
│ │ ├── challenge
│ │ ├── ChallengeTest.java
│ │ ├── Shootist.java
│ │ └── Shootme.java
│ │ ├── ctx491
│ │ ├── ReInviteTest.java
│ │ ├── Shootist.java
│ │ └── Shootme.java
│ │ ├── dialog
│ │ ├── b2bua
│ │ │ ├── BackToBackUserAgent.java
│ │ │ ├── BackToBackUserAgentTest.java
│ │ │ ├── Shootist.java
│ │ │ ├── Shootme.java
│ │ │ └── reinvite
│ │ │ │ ├── BackToBackUserAgent.java
│ │ │ │ ├── BackToBackUserAgentTest.java
│ │ │ │ ├── Operation.java
│ │ │ │ ├── Shootist.java
│ │ │ │ └── Shootme.java
│ │ ├── termination
│ │ │ ├── DialogTerminationOn50XTest.java
│ │ │ ├── Shootist.java
│ │ │ └── Shootme.java
│ │ └── timeout
│ │ │ ├── DialogTimeoutTest.java
│ │ │ ├── Shootist.java
│ │ │ ├── ShootistNotImplementingSipListenerExt.java
│ │ │ ├── Shootme.java
│ │ │ └── ShootmeNotImplementingListener.java
│ │ ├── forkedinvite
│ │ ├── InviteTest.java
│ │ ├── Proxy.java
│ │ ├── Shootist.java
│ │ ├── Shootme.java
│ │ └── SipObjects.java
│ │ ├── forkedinvite482
│ │ ├── AbstractForkedInviteTestCase.java
│ │ ├── ForkedInviteTest.java
│ │ ├── Proxy.java
│ │ ├── Shootist.java
│ │ └── Shootme.java
│ │ ├── forkedinvitedialogtimeout
│ │ ├── InviteTest.java
│ │ ├── Proxy.java
│ │ ├── Shootist.java
│ │ ├── Shootme.java
│ │ ├── SipObjects.java
│ │ └── package.html
│ │ ├── no491
│ │ ├── ReInviteTCPPostParserThreadPoolTest.java
│ │ ├── ReInviteTest.java
│ │ ├── Shootist.java
│ │ └── Shootme.java
│ │ ├── nonblocking
│ │ └── NonBlockingTest.java
│ │ ├── reInvite
│ │ ├── ReInviteTest.java
│ │ ├── Shootist.java
│ │ └── Shootme.java
│ │ ├── reinvitechallenge
│ │ ├── AccountManagerImpl.java
│ │ ├── ReInviteTest.java
│ │ ├── Shootist.java
│ │ ├── Shootme.java
│ │ └── UserCredentialsImpl.java
│ │ ├── stx491
│ │ ├── ReInviteTest.java
│ │ ├── Shootist.java
│ │ └── Shootme.java
│ │ ├── subsnotify
│ │ ├── Notifier.java
│ │ ├── NotifyBefore202Test.java
│ │ ├── Subscriber.java
│ │ └── SubscriberTimeoutAggressiveTest.java
│ │ ├── timeoutontermineted
│ │ ├── Shootist.java
│ │ ├── Shootme.java
│ │ ├── SipObjects.java
│ │ └── TimeoutOnTerminatedTest.java
│ │ ├── tls
│ │ ├── DeadSocketTlsTest.java
│ │ ├── HopImpl.java
│ │ ├── MyRouter.java
│ │ ├── Shootist.java
│ │ ├── Shootme.java
│ │ ├── TlsTest.java
│ │ ├── TlsTestDomainDash.java
│ │ ├── fookeys
│ │ ├── nopasaran.java
│ │ ├── testKeyStore
│ │ └── testkeys
│ │ ├── tx
│ │ └── timeout
│ │ │ ├── Shootist.java
│ │ │ ├── Shootme.java
│ │ │ └── TxTimeoutTest.java
│ │ └── uasreinvite
│ │ ├── ReInviteAllowInterleavingTest.java
│ │ ├── Shootist.java
│ │ └── Shootme.java
└── tools
│ ├── sniffer
│ ├── README.txt
│ ├── SniffFileParser.java
│ ├── SniffMessage.java
│ ├── SniffMessageList.java
│ ├── SniffSessionList.java
│ └── pingtel.txt
│ └── tracesviewer
│ ├── AboutFrame.java
│ ├── AlertFrame.java
│ ├── Arrow.java
│ ├── CircleArrow.java
│ ├── DebugWindow.java
│ ├── HelpBox.java
│ ├── ListenerTracesViewer.java
│ ├── LogComparator.java
│ ├── LogFileParser.java
│ ├── MessageLogList.java
│ ├── PercentLayout.java
│ ├── PercentLayoutConstraint.java
│ ├── README.txt
│ ├── ScriptFrame.java
│ ├── StraightArrow.java
│ ├── TabbedPaneDemo.java
│ ├── TracesAnimationThread.java
│ ├── TracesCanvas.java
│ ├── TracesMessage.java
│ ├── TracesSession.java
│ ├── TracesSessions.java
│ ├── TracesSessionsDisplayer.java
│ ├── TracesSessionsList.java
│ ├── TracesSocket.java
│ ├── TracesViewer.java
│ ├── build.xml
│ ├── images
│ ├── back.gif
│ ├── comp.gif
│ ├── faces.jpg
│ └── nistBanner.jpg
│ └── runinit.sh
├── tck.properties
└── www
├── README.html
├── images
├── genaker_voip_api_stability_testing_over_72hours_callee.jpg
├── genaker_voip_api_stability_testing_over_72hours_caller.jpg
├── logo_bea_tl.gif
├── masthead_slogan.gif
├── nist-banner-bottom.jpg
├── stability-testing.jpg
└── sun_logo.gif
├── index.html
└── performance.html
/.classpath:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # ignore .svn metadata files
2 | .svn
3 | # ignore Maven generated target folders
4 | ~
5 | target
6 | classes
7 | *.zip
8 | # ignore eclipse files
9 | #.project
10 | #.classpath
11 | .settings
12 | .metadata
13 | # ignore IDEA files
14 | *.iml
15 | *.ipr
16 | *.iws
17 | .idea
18 | # ignore NetBeans files
19 | nbproject
20 | nbactions.xml
21 | nb-configuration.xml
22 | catalog.xml
23 | #
24 | maven-ant-tasks.jar
25 | test-output
26 | transaction.log
27 | # vim files
28 | *.swp
29 | /.gitk-tmp.*
30 | atlassian-ide-plugin.xml
31 | # temp files
32 | *~
33 | # maven versions plugin
34 | pom.xml.versionsBackup
35 | # hprof dumps
36 | /*.hprof
37 | # ignore 'randomly' strewn around logs
38 | server.log
39 | *.log
40 | # ignore java crashes
41 | hs_err_pid*.log
42 | # H2 databases produced by tests
43 | *.h2.db
44 | # JBoss transaction generated files
45 | PutObjectStoreDirHere
46 | # ignore mvn-rpmbuild repo
47 | /.m2
48 |
--------------------------------------------------------------------------------
/.project:
--------------------------------------------------------------------------------
1 |
2 |
3 | jain-sip
4 |
5 |
6 |
7 |
8 |
9 | org.eclipse.jdt.core.javabuilder
10 |
11 |
12 |
13 |
14 |
15 | org.eclipse.jdt.core.javanature
16 | com.nomagic.magicdraw.integrations.eclipse.magicdrawnature
17 |
18 |
19 |
--------------------------------------------------------------------------------
/README-DISTRIBUTION:
--------------------------------------------------------------------------------
1 |
2 | Here is how the distribution jar files are orgainized:
3 |
4 | jain-sip-api : contains the API
5 | jain-sip-all : contains everything prebuilt
6 | jain-sip-src : contains only the source files
7 | jain-sip-javadoc : contains only the javadoc
8 | jain-sip-ri : contains the JSR 32 Reference Implementation.
9 | jain-sip-sdp : contains the sip with SDP implementation. This includes the JSR 32 RI.
10 | jain-sip-tck : contains the TCK
11 |
12 | The Version number in version.txt is the svn version number for the source.
13 | Each jar file that is version dependendent is stamped with the svn version
14 | number.
15 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | > [!NOTE]
2 | > On 29 June 2023, Mobius Software LTD signed an agreement with Mavenir to assume development and support of the RestcommOne on prem products. For more details regarding open source / commercial differentiation, roadmap, licensing and other details please visit the [Mobius Website](https://www.mobius-software.com/telestaxannouncement).
3 |
4 |
5 | [](https://app.fossa.io/projects/git%2Bhttps%3A%2F%2Fgithub.com%2FRestComm%2Fjain-sip?ref=badge_shield)
6 |
7 |
8 | JAIN-SIP 1.2 Reference Implementation
9 | --------------------------------------
10 |
11 |
--------------------------------------------------------------------------------
/TODO.txt:
--------------------------------------------------------------------------------
1 |
2 | Notes for the next version:
3 |
4 | 1. Add AddressFactory.createAddress() ( no args ).
5 |
6 | 2. Intoduce AddressParametersHeader interface (SIP Servlets implementation support).
7 |
8 | 3. Respose.getStatusLine() returns the status line of the response ( useful
9 | for REFER NOTIFICATIONS ).
10 |
11 | Note that all the Extension classes (ending with Ext ) can be used as they will be included
12 | in the next JAIN-SIP API.
13 |
--------------------------------------------------------------------------------
/ant-build-config.properties:
--------------------------------------------------------------------------------
1 | javac.debug=on
2 | javac.source=1.5
3 | javac.target=1.5
4 | javac.deprecation=true
5 | javac.optimize=off
6 | javac.debuglevel=lines,vars,source
7 | log4j=lib/log4j-1.2.15.jar
8 | # JUNIT ONLY REQUIRED FOR TESTING. NOT REQUIRED FOR jain-sip RI
9 | junit=lib/junit-3.8.1.jar
10 | # dom.jar AND ant.jar ONLY REQUIRED FOR BUILDING ANT EXTENSION TASK. NOT REQUIRED FOR jain-SIP RI.
11 | jdom=ant-tasks/lib/jdom.jar
12 | ant=ant-tasks/lib/ant.jar
13 |
14 |
--------------------------------------------------------------------------------
/ant-tasks/lib/ant.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/ant-tasks/lib/ant.jar
--------------------------------------------------------------------------------
/ant-tasks/lib/jdom.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/ant-tasks/lib/jdom.jar
--------------------------------------------------------------------------------
/ant-tasks/lib/maven-repository-importer-1.2.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/ant-tasks/lib/maven-repository-importer-1.2.jar
--------------------------------------------------------------------------------
/contributing.txt:
--------------------------------------------------------------------------------
1 |
2 | Here are the conditions for contributing to the packages in this
3 | distribution:
4 |
5 | The packages that are prefixed with "gov.nist" are all in the public domain.
6 | To contribute to these packages you have to place your code in the public
7 | domain.
8 |
9 | The packages prefixed with "test" are in the public domain. To contribute
10 | to these packages you have to place your code in the public domain.
11 |
12 | The packages prefixed with "tools" are in the public domain. To contribute
13 | to the code in these packages you have to place your code in the
14 | public domain.
15 |
16 | You may contribute examples (i.e. packages prefixed with "examples") using
17 | a standard open source license (for example Apache, GPL, LGPL, BSD etc.)
18 | or place your code in the public domain.
19 |
20 | Please use the code template file codefmt.xml for any code submissions. This
21 | works with eclipse. If you are using some other IDE, make sure you follow
22 | these coding guidelines:
23 |
24 | 1. No tabs.
25 | 2. Braces follow the pattern of the existing code.
26 | 3. Use bean naming convention.
27 |
28 | Please dont use Java 6 specific features.
29 |
30 | Please contribute! Your contributions will be recognized.
31 |
32 | No proprietary code of any kind will be accepted into this project.
33 | When you contribute code to this project, it is implicit that you
34 | have read and understood the above conditions.
35 |
36 |
--------------------------------------------------------------------------------
/docs/back.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/docs/back.gif
--------------------------------------------------------------------------------
/docs/get_java_red_button.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/docs/get_java_red_button.gif
--------------------------------------------------------------------------------
/docs/javanet_button_170.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/docs/javanet_button_170.gif
--------------------------------------------------------------------------------
/docs/nist-sip.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/docs/nist-sip.gif
--------------------------------------------------------------------------------
/docs/tools/tracesviewer/images/back.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/docs/tools/tracesviewer/images/back.gif
--------------------------------------------------------------------------------
/docs/tools/tracesviewer/images/visualizer-pic.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/docs/tools/tracesviewer/images/visualizer-pic.jpg
--------------------------------------------------------------------------------
/docs/uml/jain-sip.xml.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/docs/uml/jain-sip.xml.zip
--------------------------------------------------------------------------------
/docs/uml/udp-request-processing-sequence-diagram-mark.txt:
--------------------------------------------------------------------------------
1 | custom_mark
2 | @startuml
3 | autonumber
4 | actor UAC
5 | boundary UDPMessageProcessor
6 | control UDPMessageChannel
7 | control NISTSIPMessageHandImpl
8 | control EventScanner
9 |
10 | legend left
11 | Handling incoming UDP request
12 | endlegend
13 | note right of UDPMessageProcessor #aqua
14 | NIST SIP abstraction that maps to SIPListener
15 | end note
16 | note right of NISTSIPMessageFactoryImpl #aqua
17 | Created on stack init
18 | end note
19 |
20 | UAC -> UDPMessageProcessor : INVITE
21 | create UDPMessageChannel
22 | UDPMessageProcessor -> UDPMessageChannel
23 | activate UDPMessageChannel
24 | UDPMessageChannel -> StringMsgParser : parseSIPMessage
25 | UDPMessageChannel -> SIPTransactionStack: nesSIPServerRequest
26 | activate SIPTransactionStack
27 | SIPTransactionStack -> SIPTransactionStack : createTransaction
28 | SIPTransactionStack -> NISTSIPMessageFactoryImpl : newSIPServerRequest
29 | create NISTSIPMessageHandImpl
30 | deactivate SIPTransactionStack
31 | UDPMessageChannel -> NISTSIPMessageHandImpl : processRequest
32 | activate NISTSIPMessageHandImpl
33 | NISTSIPMessageHandImpl -> SIPTransactionStack : getDialog
34 | NISTSIPMessageHandImpl -> EventScanner : deliverEvent
35 | activate EventScanner
36 | EventScanner -> SIPListener : processRequest
37 | deactivate EventScanner
38 | deactivate NISTSIPMessageHandImpl
39 | deactivate UDPMessageChannel
40 | @enduml
41 | custom_mark
--------------------------------------------------------------------------------
/docs/uml/udp-request-processing-sequence-diagram.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/docs/uml/udp-request-processing-sequence-diagram.jpg
--------------------------------------------------------------------------------
/docs/uml/udp-request-processing-sequence-diagram.txt:
--------------------------------------------------------------------------------
1 | @startuml
2 | !includeurl https://raw.githubusercontent.com/RestComm/design/master/telestax-style.plantuml!0
3 |
4 | autonumber
5 | actor UAC
6 | boundary UDPMessageProcessor
7 | control UDPMessageChannel
8 | control NISTSIPMessageHandImpl
9 | control EventScanner
10 |
11 | legend left
12 | Handling incoming UDP request
13 | endlegend
14 | note right of UDPMessageProcessor #aqua
15 | NIST SIP abstraction that maps to SIPListener
16 | end note
17 | note right of NISTSIPMessageFactoryImpl #aqua
18 | Created on stack init
19 | end note
20 |
21 | UAC -> UDPMessageProcessor : INVITE
22 | create UDPMessageChannel
23 | UDPMessageProcessor -> UDPMessageChannel
24 | activate UDPMessageChannel
25 | UDPMessageChannel -> StringMsgParser : parseSIPMessage
26 | UDPMessageChannel -> SIPTransactionStack: nesSIPServerRequest
27 | activate SIPTransactionStack
28 | SIPTransactionStack -> SIPTransactionStack : createTransaction
29 | SIPTransactionStack -> NISTSIPMessageFactoryImpl : newSIPServerRequest
30 | create NISTSIPMessageHandImpl
31 | deactivate SIPTransactionStack
32 | UDPMessageChannel -> NISTSIPMessageHandImpl : processRequest
33 | activate NISTSIPMessageHandImpl
34 | NISTSIPMessageHandImpl -> SIPTransactionStack : getDialog
35 | NISTSIPMessageHandImpl -> EventScanner : deliverEvent
36 | activate EventScanner
37 | EventScanner -> SIPListener : processRequest
38 | deactivate EventScanner
39 | deactivate NISTSIPMessageHandImpl
40 | deactivate UDPMessageChannel
41 | @enduml
--------------------------------------------------------------------------------
/docs/uncopyright.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | Conditions Of Use
4 |
5 |
6 | The software was developed by employees of the National Institute of
7 | Standards and Technology (NIST), an agency of the Federal Government.
8 | Pursuant to title 15 Untied States Code Section 105, works of NIST
9 | employees are not subject to copyright protection in the United States
10 | and are considered to be in the public domain. As a result, a formal
11 | license is not needed to use the software.
12 |
13 |
14 |
15 | The NIST-SIP software is provided by NIST as a service and is expressly
16 | provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED
17 | OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF
18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT
19 | AND DATA ACCURACY. NIST does not warrant or make any representations
20 | regarding the use of the software or the results thereof, including but
21 | not limited to the correctness, accuracy, reliability or usefulness of
22 | the software.
23 |
24 |
25 |
26 | Permission to use this software is contingent upon your acceptance
27 | of the terms of this agreement and upon your providing appropriate
28 | acknowledgments of NIST's ownership of the software.
29 |
30 |
31 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/how-to-run-the-tck.txt:
--------------------------------------------------------------------------------
1 |
2 | Here are instructions on how to configure and run the TCK
3 | ---------------------------------------------------------
4 | Pre-requisites: ant, junit and log4j.
5 |
6 | The TCK is run as an ant junit target from build.xml
7 |
8 | You need install the the ant junit extension.
9 | -- junit.jar file must be in Ant lib directory to work.
10 |
11 | Edit ant-build-config.properties and make sure the settings correspond
12 | to what you have installed.
13 |
14 | Edit tck.properties and set the path to your implementation there.
15 |
16 | To run the tck do as follows from a command prompt:
17 |
18 | ant runtck
19 |
20 | The TCK will take about 15 minutes to run and posts a running log on your
21 | console.
22 |
23 | You can look at the results of your run in test-reports/html/index.html
24 |
25 | To post a challenge to the tck : send mail to the user@jain-sip.dev.java.net
26 | mailing list
27 |
28 |
29 |
--------------------------------------------------------------------------------
/javax/sip/jain-sip-ri/1.2/jain-sip-ri-1.2.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/javax/sip/jain-sip-ri/1.2/jain-sip-ri-1.2.jar
--------------------------------------------------------------------------------
/javax/sip/jain-sip-ri/1.2/jain-sip-ri-1.2.jar.md5:
--------------------------------------------------------------------------------
1 | 1895bc16d687801507bc8e64a6c64d86
--------------------------------------------------------------------------------
/javax/sip/jain-sip-ri/1.2/jain-sip-ri-1.2.jar.sha1:
--------------------------------------------------------------------------------
1 | e562f7560e720493e7b45c7813b7e2ca56aed0b7
--------------------------------------------------------------------------------
/javax/sip/jain-sip-ri/1.2/jain-sip-ri-1.2.pom.md5:
--------------------------------------------------------------------------------
1 | 5ab12dc729aa101d5d5d34c376e806ef
--------------------------------------------------------------------------------
/javax/sip/jain-sip-ri/1.2/jain-sip-ri-1.2.pom.sha1:
--------------------------------------------------------------------------------
1 | ac4a859b0443f98bfce0fbf45c9d60fc8ca25cc2
--------------------------------------------------------------------------------
/javax/sip/jain-sip-ri/maven-metadata.xml:
--------------------------------------------------------------------------------
1 |
2 | javax.sip
3 | jain-sip-ri
4 | 1.2
5 |
6 |
7 | 1.2
8 |
9 | 20071114030833
10 |
11 |
--------------------------------------------------------------------------------
/javax/sip/jain-sip-ri/maven-metadata.xml.md5:
--------------------------------------------------------------------------------
1 | cda7147c90bef080f1d2a992b31b1172
--------------------------------------------------------------------------------
/javax/sip/jain-sip-ri/maven-metadata.xml.sha1:
--------------------------------------------------------------------------------
1 | 29609a3497d5ed7eda63a6eed8b7b5cd686a10b8
--------------------------------------------------------------------------------
/lib/README.txt:
--------------------------------------------------------------------------------
1 | The libraries in this directory are NOT necessary for building the RI.
2 |
3 | However, they are needed if you want to build some of the examples.
4 | They are not necessarily the latest versions -- please get them from the
5 | appropriate locations if you want to get the latest versions.
6 |
7 | jakarta-regexp - Used under the Apache software license (included). This is ONLY RELEVANT for examples.
8 |
9 | log4j - used under the Apache Software license (included). The logging
10 | support will be changed to used log4j but currently just writes to a
11 | file.
12 |
13 | junit - is used under the common public license.
14 | http://www.opensource.org/licenses/cpl.php
15 |
16 | sipxcommons.jar - this is used for generation of nice log files that are
17 | viewable using the sipx trace viewer tool.
18 |
19 |
--------------------------------------------------------------------------------
/lib/jakarta-regexp-1.3.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/lib/jakarta-regexp-1.3.jar
--------------------------------------------------------------------------------
/lib/junit-3.8.1.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/lib/junit-3.8.1.jar
--------------------------------------------------------------------------------
/lib/log4j-1.2.15.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/lib/log4j-1.2.15.jar
--------------------------------------------------------------------------------
/licenses/JSIP Spec License.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/licenses/JSIP Spec License.pdf
--------------------------------------------------------------------------------
/licenses/NIST-CONDITIONS-OF-USE.txt:
--------------------------------------------------------------------------------
1 | /*
2 | ***********************************************************************
3 | * The following applies to the packages "gov.nist", "test" and
4 | * "tools" and all subpackages thereof
5 | ***********************************************************************
6 | *
7 | * Conditions Of Use
8 | *
9 | * This software was developed by employees of the National Institute of
10 | * Standards and Technology (NIST), and others.
11 | * This software has been contributed to the public domain.
12 | * Pursuant to title 15 Untied States Code Section 105, works of NIST
13 | * employees are not subject to copyright protection in the United States
14 | * and are considered to be in the public domain.
15 | * As a result, a formal license is not needed to use this software.
16 | *
17 | * This software is provided "AS IS."
18 | * NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED
19 | * OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF
20 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT
21 | * AND DATA ACCURACY. NIST does not warrant or make any representations
22 | * regarding the use of the software or the results thereof, including but
23 | * not limited to the correctness, accuracy, reliability or usefulness of
24 | * this software.
25 | *
26 | *
27 | */
28 |
--------------------------------------------------------------------------------
/licenses/README.txt:
--------------------------------------------------------------------------------
1 |
2 | NIST-CONDITIONS-OF-USE.txt
3 | --------------------------
4 |
5 | Applies to the classes under the hierarchy "gov.nist" and under the "tools"
6 | and "test" hierarchy.
7 |
8 |
9 | JSIP Spec License.pdf
10 | ---------------------
11 |
12 | Applies to the classes under javax.sip hierarchy
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/log4j.properties:
--------------------------------------------------------------------------------
1 | log4j.rootLogger=INFO, A1
2 | log4j.appender.A1=org.apache.log4j.RollingFileAppender
3 | log4j.appender.A1.File=logs/debuglog.txt
4 | log4j.appender.A1.layout=org.apache.log4j.SimpleLayout
5 | log4j.appender.A2=org.apache.log4j.ConsoleAppender
6 | log4j.appender.A2.layout=org.apache.log4j.SimpleLayout
7 |
--------------------------------------------------------------------------------
/m2/README:
--------------------------------------------------------------------------------
1 | To deploy maven 2 artifacts to maven2-repository on java.net
2 | (Note: you shall request Maven2 Publisher role on this project),
3 | do the following
4 |
5 | Add the following lines in your settings.xml (between the and tags)
6 | maven2 file in the conf directory of your maven 2 installation directory :
7 |
8 | maven2-repository
9 | username
10 | password
11 |
12 |
13 | Replace username by your java.net id and the passwrod by your java password.
14 |
15 | open up a shell and move until your in the m2 directory of this jain-sip project and do
16 | mvn deploy
17 |
18 | The artifacts should be uploaded.
--------------------------------------------------------------------------------
/m2/jain-sip-ri/tck.properties:
--------------------------------------------------------------------------------
1 | javax.sip.tck.LOG_FILE_NAME="logs/debuglog.txt"
2 | javax.sip.tck.ABORT_ON_FAIL="true"
3 | javax.sip.tck.IMPLEMENTATION_PATH="gov.nist"
4 |
--------------------------------------------------------------------------------
/m2/jain-sip-testsuite/tck.properties:
--------------------------------------------------------------------------------
1 | javax.sip.tck.LOG_FILE_NAME="./target/logs/debuglog.txt"
2 | javax.sip.tck.ABORT_ON_FAIL="true"
3 | javax.sip.tck.IMPLEMENTATION_PATH="gov.nist"
4 |
--------------------------------------------------------------------------------
/manifest.tck:
--------------------------------------------------------------------------------
1 | Manifest-Version: 1.0
2 | Main-Class: test.tck.Tck
3 | Classpath: ./
4 |
--------------------------------------------------------------------------------
/manifest.viewer:
--------------------------------------------------------------------------------
1 | Manifest-Version: 1.0
2 | Main-Class: tools.tracesviewer.TracesViewer
3 | Classpath: ./
4 |
--------------------------------------------------------------------------------
/poms/api-pom.xml:
--------------------------------------------------------------------------------
1 |
2 | 4.0.0
3 | javax.sip
4 | jain-sip-api
5 | 1.2
6 | jar
7 | JAIN-SIP API
8 |
9 | https://jain-sip.dev.java.net/
10 |
11 |
12 | NIST
13 | http://www.nist.gov/
14 |
15 |
16 |
17 |
18 | PUBLIC DOMAIN
19 | repo
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/poms/ri-pom.xml:
--------------------------------------------------------------------------------
1 |
2 | 4.0.0
3 | javax.sip
4 | jain-sip-ri
5 | 1.2
6 | jar
7 | JAIN-SIP Refence Implementation
8 |
9 | https://jain-sip.dev.java.net/
10 |
11 |
12 | NIST
13 | http://www.nist.gov/
14 |
15 |
16 |
17 |
18 | PUBLIC DOMAIN
19 | repo
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/repo/javax.sip/poms/jain-sip-api-1.2.pom:
--------------------------------------------------------------------------------
1 |
2 | 4.0.0
3 | javax.sip
4 | jain-sip-api
5 | 1.2
6 | jar
7 | JAIN-SIP API
8 |
9 | https://jain-sip.dev.java.net/
10 |
11 |
12 | NIST
13 | http://www.nist.gov/
14 |
15 |
16 |
17 |
18 | PUBLIC DOMAIN
19 | repo
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/repo/javax.sip/poms/jain-sip-api-1.2.pom.md5:
--------------------------------------------------------------------------------
1 | bf9a9f63923374f5389d3f60bd22cef8
2 |
--------------------------------------------------------------------------------
/repo/javax.sip/poms/jain-sip-ri-1.2-SNAPSHOT.pom:
--------------------------------------------------------------------------------
1 |
2 | 4.0.0
3 | javax.sip
4 | jain-sip-ri
5 | 1.2-SNAPSHOT
6 | jar
7 | JAIN-SIP Refence Implementation
8 |
9 | https://jain-sip.dev.java.net/
10 |
11 |
12 | NIST
13 | http://www.nist.gov/
14 |
15 |
16 |
17 |
18 | PUBLIC DOMAIN
19 | repo
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/repo/javax.sip/poms/jain-sip-ri-1.2-SNAPSHOT.pom.md5:
--------------------------------------------------------------------------------
1 | 48f061929e61defe73ceb67cfb896c39
2 |
--------------------------------------------------------------------------------
/repo/javax.sip/poms/jain-sip-ri-1.2.pom:
--------------------------------------------------------------------------------
1 |
2 | 4.0.0
3 | javax.sip
4 | jain-sip-ri
5 | 1.2
6 | jar
7 | JAIN-SIP Refence Implementation
8 |
9 | https://jain-sip.dev.java.net/
10 |
11 |
12 | NIST
13 | http://www.nist.gov/
14 |
15 |
16 |
17 |
18 | PUBLIC DOMAIN
19 | repo
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/repo/javax.sip/poms/jain-sip-ri-1.2.pom.md5:
--------------------------------------------------------------------------------
1 | 1482a3721c4a9a62c81d8aee9394cb92
2 |
--------------------------------------------------------------------------------
/src/examples/android/simplecallsetup/README.txt:
--------------------------------------------------------------------------------
1 | This example is an android adaptation of the simple call setup example.
2 | To convert any example to android you simply put android prefix to the JAIN SIP packages.
3 |
4 | The program Shootist.java (named after a famous John Wayne movie),
5 | is a skeleton UAC.
6 |
7 | The program Shootme.java (named after no movie in particular) is a skeleton
8 | UAS.
9 |
10 | To run this example, you need the android build of JAIN-SIP in the classpath.
11 | You can take the android build from here https://jsip.ci.cloudbees.com/job/android-jsip/
12 |
13 | From the first one, type
14 |
15 | The shootist will send up an invite to the shootme and the victim (shootme) will respond
16 | like a UAC should (or it might even kick up its legs and die).
17 |
18 | To change the direction from which tbe BYE is sent, edit the Shootme.java file and change
19 | the global flag callerSendsBye.
20 |
21 | For illustrative purposes, this example turns debugging and loggin on. You
22 | should do so when you are developing your applications. You will
23 | see shootmelog.txt and shootistlog.txt appear in this directory.
24 | You can visualize the trace files using the ant target shootmelog
25 | and shootistlog.
26 |
--------------------------------------------------------------------------------
/src/examples/authorization/AccountManagerImpl.java:
--------------------------------------------------------------------------------
1 | package examples.authorization;
2 |
3 | import javax.sip.ClientTransaction;
4 |
5 | import gov.nist.javax.sip.clientauthutils.AccountManager;
6 | import gov.nist.javax.sip.clientauthutils.UserCredentials;
7 |
8 | public class AccountManagerImpl implements AccountManager {
9 |
10 |
11 | public UserCredentials getCredentials(ClientTransaction challengedTransaction, String realm) {
12 | return new UserCredentialsImpl("auth","nist.gov","pass");
13 | }
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/src/examples/authorization/UserCredentialsImpl.java:
--------------------------------------------------------------------------------
1 | package examples.authorization;
2 |
3 | import gov.nist.javax.sip.clientauthutils.UserCredentials;
4 |
5 | public class UserCredentialsImpl implements UserCredentials {
6 | private String userName;
7 | private String sipDomain;
8 | private String password;
9 |
10 | public UserCredentialsImpl(String userName, String sipDomain, String password) {
11 | this.userName = userName;
12 | this.sipDomain = sipDomain;
13 | this.password = password;
14 | }
15 |
16 |
17 | public String getPassword() {
18 | return password;
19 | }
20 |
21 |
22 | public String getSipDomain() {
23 | return sipDomain;
24 | }
25 |
26 |
27 | public String getUserName() {
28 |
29 | return userName;
30 | }
31 |
32 | }
33 |
--------------------------------------------------------------------------------
/src/examples/cancel/README.txt:
--------------------------------------------------------------------------------
1 |
2 | Illustrates how to cancel an INVITE.
3 |
4 |
5 | Shootist.java and Shootme.java are the UAC and UAS respectively.
6 | Focus your attention on these two files to understand the cancel
7 | processing pattern for JainSip.
8 |
9 | To run the example,
10 |
11 | Run ant shootme and ant shootist in two command prompts.
12 |
13 | You can examine the generated signaling trace using the traces viewer.
14 |
15 |
16 | -------------------------------------------------------------------
17 |
18 | AbstractCancelTest.java, TestCancel.java and TestDelayedCancel.java
19 | are Junit test wrappers for automated testing. You dont need
20 | to look at these to understand how the example works.
21 |
22 |
--------------------------------------------------------------------------------
/src/examples/cancel/TestCancel.java:
--------------------------------------------------------------------------------
1 | /**
2 | *
3 | */
4 | package examples.cancel;
5 |
6 | import test.tck.msgflow.callflows.AssertUntil;
7 |
8 | /**
9 | * @author M. Ranganathan
10 | *
11 | */
12 | public class TestCancel extends AbstractCancelTest {
13 |
14 | private static final int TIMEOUT = 5000;
15 | public TestCancel() {
16 | super();
17 | }
18 |
19 |
20 | public void testCancelNoDelay() throws Exception {
21 | Shootist.sendDelayedCancel = false;
22 | shootist.sendInvite();
23 | assertTrue(AssertUntil.assertUntil(shootist.getAssertion(), TIMEOUT));
24 | // Thread.sleep(5000);
25 | // shootist.checkState();
26 |
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/src/examples/cancel/TestDelayedCancel.java:
--------------------------------------------------------------------------------
1 | /**
2 | *
3 | */
4 | package examples.cancel;
5 |
6 | import test.tck.msgflow.callflows.AssertUntil;
7 |
8 | /**
9 | * @author M. Ranganathan
10 | *
11 | */
12 | public class TestDelayedCancel extends AbstractCancelTest {
13 |
14 | private static final int TIMEOUT = 2000;
15 | public TestDelayedCancel() {
16 | super();
17 | }
18 |
19 | public void testCancelDelay() throws Exception {
20 | Shootist.sendDelayedCancel = true;
21 | shootist.sendInvite();
22 | assertTrue(AssertUntil.assertUntil(shootist.getAssertion(), TIMEOUT));
23 | // Thread.sleep(2000);
24 | // shootist.checkState();
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/src/examples/forked/invite/README.txt:
--------------------------------------------------------------------------------
1 | This is in honor of the great "forking is just plain wrong" discussion thread
2 | in the sipping mailing list.
3 |
4 | This example illustrates how a client may deal with forked INVITE calls.
5 | In this case the client sends a request through a proxy server to two other clients
6 | These clients are modeled by two instances of Shootme.java.
7 | Note that the Shootist has to deal with two responses to the
8 | outgoing invite and has to pick one and assign a dialog to it. It issues a BYE
9 | on one of the Dialogs and ACKs the other one.
10 |
11 | To run :
12 |
13 | 1. Start the proxy using the proxy target
14 | 2. Start the uas using the shootme and shootme2 targets
15 | 3. Start the uac using the shootist target
16 |
17 |
--------------------------------------------------------------------------------
/src/examples/ims/README.txt:
--------------------------------------------------------------------------------
1 | IMS headers example.
2 |
3 | Based in examples.simplecallsetup
4 |
5 |
6 |
7 | The program Shootist.java (named after a famous John Wayne movie),
8 | is a skeleton UAC.
9 |
10 | The program Shootme.java (named after no movie in particular) is a skeleton
11 | UAS.
12 |
13 | To run this example, open up two windows.
14 |
15 | From the first one, type
16 |
17 | "ant shootme"
18 |
19 | and from the second one type
20 |
21 | "ant shootist".
22 |
23 | The shootist will send up an invite to the shootme and the victim (shootme) will respond
24 | like a UAC should (or it might even kick up its legs and die).
25 |
26 | To change the direction from which tbe BYE is sent, edit the Shootme.java file and change
27 | the global flag callerSendsBye.
28 |
29 | For illustrative purposes, this example turns debugging and loggin on. You
30 | should do so when you are developing your applications. You will
31 | see shootmelog.txt and shootistlog.txt appear in this directory.
32 | You can visualize the trace files using the ant target shootmelog
33 | and shootistlog.
34 |
35 | Disclaimer: NIST does not necessarily endorse John Wayne.
36 |
37 | Mail questions to mranga@nist.gov or nist-sip-dev@antd.nist.gov
38 |
--------------------------------------------------------------------------------
/src/examples/ims/TheShootist.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/examples/ims/TheShootist.jpg
--------------------------------------------------------------------------------
/src/examples/nistgoodies/README.txt:
--------------------------------------------------------------------------------
1 | The sub-packages of this package contain examples for features that are
2 | specific to the NIST implementation of JSIP (i.e. may not be available on
3 | other JSIP implementations). If you find some of these features useful,
4 | ask on the JAIN-SIP-INTEREST list and it is possible that there will
5 | be enough general interest in the feature that it may be considered for
6 | inclusion in a future release.
7 |
8 | For a full list of NIST-SIP only features supported by the implementation,
9 | please take a look at the javadoc for
10 |
11 | gov.nist.javax.sip.SipStackImpl
12 |
13 | You will see a number of additional properties for enabling specific
14 | features. If you have a specific feature to suggest, mail the users
15 | list.
16 |
17 | Caution : Use of these features may result in your application becoming
18 | unportable across different vendor implementations of the JSIP standard.
19 |
20 |
--------------------------------------------------------------------------------
/src/examples/nistgoodies/configlogger/LogRecordFactoryImpl.java:
--------------------------------------------------------------------------------
1 | package examples.nistgoodies.configlogger;
2 |
3 | import gov.nist.javax.sip.LogRecord;
4 | import gov.nist.javax.sip.LogRecordFactory;
5 |
6 | public class LogRecordFactoryImpl implements LogRecordFactory {
7 |
8 | public LogRecord createLogRecord(String message, String source,
9 | String destination, long timeStamp, boolean isSender,
10 | String firstLine, String tid, String callId, long timestampVal) {
11 |
12 | return new LogRecordImpl(message,source,destination,timeStamp,isSender,firstLine,tid,callId,timestampVal);
13 | }
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/src/examples/nistgoodies/configlogger/README.txt:
--------------------------------------------------------------------------------
1 | This example of a NIST only feature (not part of the JAIN-SIP standard)
2 | shows how you can register a log factory with the stack to configure
3 | logging. The log factory allows you to generate customized logging records
4 | that can record envioronment conditions into the logging stream. This
5 | facility is useful for logging, monitoring and debugging.
6 |
7 | The stack property gov.nist.javax.sip.LOG_FACTORY points to a class which
8 | SipStackImpl creates when it starts up. Each time a message is recieved
9 | by the stack or sent out by the stack, the registered log factory is
10 | called to generate a logging record.
11 |
12 | How to run it and what to look for
13 | ----------------------------------
14 |
15 | How to run it
16 | -------------
17 | Run this example from two command prompts using
18 |
19 | ant shootme
20 |
21 | from another command prompt
22 |
23 | ant shootist
24 |
25 | What to look at
26 | ---------------
27 |
28 | Then examine the log generated in shootistlog.txt
29 |
30 | Compare it with the custom log record LogRecordImpl.java
31 |
32 | Take a look at the configuration setup in Shootist.java
33 |
34 | Take a look at the code in LogFactoryImpl.java
35 |
36 |
37 |
--------------------------------------------------------------------------------
/src/examples/nistgoodies/match/README.txt:
--------------------------------------------------------------------------------
1 |
2 | These are NOT pure JAIN-SIP examples.
3 |
4 | These are included for those building test frameworks who may find
5 | a pattern matching facility to be of use.
6 |
7 | Ranga.
8 |
9 |
--------------------------------------------------------------------------------
/src/examples/nistgoodies/pluggablelogger/LogRecordFactoryImpl.java:
--------------------------------------------------------------------------------
1 | package examples.nistgoodies.pluggablelogger;
2 |
3 | import gov.nist.javax.sip.LogRecord;
4 | import gov.nist.javax.sip.LogRecordFactory;
5 |
6 | public class LogRecordFactoryImpl implements LogRecordFactory {
7 |
8 | public LogRecord createLogRecord(String message, String source,
9 | String destination, long timeStamp, boolean isSender,
10 | String firstLine, String tid, String callId, long timestampVal) {
11 |
12 | return new LogRecordImpl(message,source,destination,timeStamp,isSender,firstLine,tid,callId,timestampVal);
13 | }
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/src/examples/nistgoodies/pluggablelogger/README.txt:
--------------------------------------------------------------------------------
1 | This example of a NIST only feature (not part of the JAIN-SIP standard)
2 | shows how you can register a log factory with the stack to configure
3 | logging. The log factory allows you to generate customized logging records
4 | that can record envioronment conditions into the logging stream. This
5 | facility is useful for logging, monitoring and debugging.
6 |
7 | The stack property gov.nist.javax.sip.LOG_FACTORY points to a class which
8 | SipStackImpl creates when it starts up. Each time a message is recieved
9 | by the stack or sent out by the stack, the registered log factory is
10 | called to generate a logging record.
11 |
12 | How to run it and what to look for
13 | ----------------------------------
14 |
15 | How to run it
16 | -------------
17 | Run this example from two command prompts using
18 |
19 | ant shootme
20 |
21 | from another command prompt
22 |
23 | ant shootist
24 |
25 | What to look at
26 | ---------------
27 |
28 | Then examine the log generated in shootistlog.txt
29 |
30 | Compare it with the custom log record LogRecordImpl.java
31 |
32 | Take a look at the configuration setup in Shootist.java
33 |
34 | Take a look at the code in LogFactoryImpl.java
35 | Take a look at the code in StackLoggerImpl.java
36 | Take a look at the code in ServerLoggerImpl.java
37 |
38 | Thanks to Jean Deruelle for providing support for a pluggable logger.
39 |
40 |
41 |
--------------------------------------------------------------------------------
/src/examples/noautodialog/README.txt:
--------------------------------------------------------------------------------
1 |
2 | Illustrates the use of Dialog free operation. You would find this useful
3 | if you are building a proxy server ( where you dont want to keep dialog
4 | support).
5 |
6 | Note that the Dialog pointer extracted from the ServerTransaction is null.
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/src/examples/parser/README.txt:
--------------------------------------------------------------------------------
1 | This example shows you how to use the factory API to parse sip messages (requests and responses). JSIP can thus be used
2 | for parsing SIP Messsages that have been captured through other means (i.e. a sniffer or tunneled via HTTP ).
3 |
4 |
--------------------------------------------------------------------------------
/src/examples/reinvite/README.txt:
--------------------------------------------------------------------------------
1 | The program Shootist.java (named after a famous John Wayne movie),
2 | is a skeleton UAC.
3 |
4 | The program Shootme.java (named after no movie in particular) is a skeleton
5 | UAS.
6 |
7 | To run this example, open up two windows. From the first one, type "ant
8 | shootme" and from the second one type "ant shootist". The shootist will
9 | send up an invite to the shootme and the victim (shootme) will respond
10 | like a UAC should (or it might even kick up its legs and die).
11 |
12 | For illustrative purposes, this example turns debugging and loggin on. You
13 | should do so when you are developing your applications. You will
14 | see shootmelog.txt and shootistlog.txt appear in this directory.
15 | You can visualize the trace files using the ant target shootmelog
16 | shootistlog.
17 |
18 | Note that in this example, automatic dialog support is enabled and there is a re-invite
19 | that is issued from Shootme.
20 |
21 | Mail questions to mranga@nist.gov or nist-sip-dev@antd.nist.gov
22 |
--------------------------------------------------------------------------------
/src/examples/simplecallsetup/README.txt:
--------------------------------------------------------------------------------
1 | The program Shootist.java (named after a famous John Wayne movie),
2 | is a skeleton UAC.
3 |
4 | The program Shootme.java (named after no movie in particular) is a skeleton
5 | UAS.
6 |
7 | To run this example, open up two windows.
8 |
9 | From the first one, type
10 |
11 | "ant shootme"
12 |
13 | and from the second one type
14 |
15 | "ant shootist".
16 |
17 | The shootist will send up an invite to the shootme and the victim (shootme) will respond
18 | like a UAC should (or it might even kick up its legs and die).
19 |
20 | To change the direction from which tbe BYE is sent, edit the Shootme.java file and change
21 | the global flag callerSendsBye.
22 |
23 | For illustrative purposes, this example turns debugging and loggin on. You
24 | should do so when you are developing your applications. You will
25 | see shootmelog.txt and shootistlog.txt appear in this directory.
26 | You can visualize the trace files using the ant target shootmelog
27 | and shootistlog.
28 |
29 | Disclaimer: NIST does not necessarily endorse John Wayne.
30 |
31 | Mail questions to mranga@nist.gov or nist-sip-dev@antd.nist.gov
32 |
--------------------------------------------------------------------------------
/src/examples/simplecallsetup/TheShootist.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/examples/simplecallsetup/TheShootist.jpg
--------------------------------------------------------------------------------
/src/examples/tls/MyRouter.java:
--------------------------------------------------------------------------------
1 | package examples.tls;
2 | import javax.sip.*;
3 | import javax.sip.address.*;
4 | import javax.sip.message.*;
5 |
6 | import java.util.*;
7 |
8 | public class MyRouter implements Router {
9 | protected SipStack myStack;
10 | protected HopImpl defaultRoute;
11 |
12 | public MyRouter(SipStack sipStack, String nextHop) {
13 |
14 | this.myStack = sipStack;
15 | this.defaultRoute = new HopImpl(nextHop);
16 | }
17 |
18 | /** Always send requests to the default route location.
19 | */
20 | public ListIterator getNextHops(Request sipRequest) {
21 | LinkedList ll = null;
22 | if (defaultRoute != null) {
23 | if (ll == null)
24 | ll = new LinkedList();
25 | ll.add(defaultRoute);
26 | return ll.listIterator();
27 | } else
28 | return null;
29 | }
30 |
31 | public Hop getOutboundProxy() {
32 | return this.defaultRoute;
33 | }
34 |
35 | public Hop getNextHop(Request request) throws SipException {
36 | return this.defaultRoute;
37 | }
38 |
39 | }
40 |
--------------------------------------------------------------------------------
/src/examples/tls/README.txt:
--------------------------------------------------------------------------------
1 | ShootistTLS README
2 | ==================
3 |
4 | This example is provided to illustrate the usage of the TLS transport with
5 | JAIN-SIP. It it just the original Shootist example by M. Ranganathan, but
6 | featuring TLS transport. This is intended to serve as an example of how
7 | to write a SIP-over-TLS application with JAIN-SIP.
8 |
9 | To summarize, the key points for using JAIN-SIP with TLS are:
10 |
11 | - Create a ListeningPoint for TLS, just by specifying "tls" as the
12 | transport.
13 | - Create a SipProvider on the TLS ListeningPoint.
14 | - If your application is also using TCP transport, bear in mind that TCP and
15 | TLS cannot use the same port, since TLS is actually implemented over TCP.
16 | By default, the port for TCP is 5060 whereas the port for TLS is 5061.
17 | - If your application checks at any point for a valid transport string (UDP
18 | and/or TCP), remember to add also a check for TLS.
19 | - Be sure to supply a suitable security infrastructure to the JVM when using
20 | TLS. For example, you can use a keystore generated with Sun's "keytool"
21 | command. This example is bundled with a test keystore; for using it you must
22 | add the certificate inside it to your trusted certificates (again, using
23 | "keytool"), and the launch your application setting the following
24 | properties:
25 | - javax.net.ssl.keyStore=testKeyStore
26 | - javax.net.ssl.keyStorePassword=testPass
27 |
28 | If you have any questions, feel free to ask at nist-sip@antd.nist.gov
29 |
30 | -- Daniel J. Martinez Manzano.
31 |
--------------------------------------------------------------------------------
/src/examples/tls/testKeyStore:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/examples/tls/testKeyStore
--------------------------------------------------------------------------------
/src/examples/tls/testkeys:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/examples/tls/testkeys
--------------------------------------------------------------------------------
/src/examples/websocket/README.txt:
--------------------------------------------------------------------------------
1 | This is a Websocket B2BUA server
2 |
3 | To run this example, open up two windows.
4 |
5 | From the first one, type
6 |
7 | "ant b2bua"
8 |
9 | Now the server is ready and running. You can register two websocket phones into it
10 | and make a call between them.
11 |
12 | For illustrative purposes, this example turns debugging and logging on. You
13 | should do so when you are developing your applications.
--------------------------------------------------------------------------------
/src/examples/websocket/build.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/src/gov/nist/core/LogLevels.java:
--------------------------------------------------------------------------------
1 | package gov.nist.core;
2 |
3 | public interface LogLevels {
4 | /*
5 | * Each of these levels must be mapped internally to logically equivalent
6 | * logging levels in your logger.
7 | */
8 | public static final int TRACE_NONE = 0;
9 | public static final int TRACE_FATAL = 2;
10 | public static final int TRACE_ERROR = 4;
11 | public static final int TRACE_WARN = 8;
12 | public static final int TRACE_INFO = 16;
13 | public static final int TRACE_DEBUG = 32;
14 | public static final int TRACE_TRACE = 64;
15 | public static final int TRACE_MESSAGES = TRACE_INFO;
16 | public static final int TRACE_EXCEPTION = TRACE_ERROR;
17 |
18 | }
19 |
--------------------------------------------------------------------------------
/src/gov/nist/core/MultiMap.java:
--------------------------------------------------------------------------------
1 | package gov.nist.core;
2 |
3 | /*
4 | * Copyright 1999-2004 The Apache Software Foundation
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | import java.util.Map;
20 |
21 | /**
22 | * This is simply a Map with slightly different semantics.
23 | * Instead of returning an Object, it returns a Collection.
24 | * So for example, you can put( key, new Integer(1) );
25 | * and then a Object get( key ); will return you a Collection
26 | * instead of an Integer.
27 | * Thus, this is simply a tag interface.
28 | *
29 | * @since 2.0
30 | * @author Christopher Berry
31 | * @author James Strachan
32 | */
33 | public interface MultiMap extends Map {
34 |
35 | public Object removeKV( Object key, Object item );
36 |
37 | }
38 |
--------------------------------------------------------------------------------
/src/gov/nist/core/MultiValueMap.java:
--------------------------------------------------------------------------------
1 | package gov.nist.core;
2 |
3 | import java.io.Serializable;
4 | import java.util.List;
5 | import java.util.Map;
6 |
7 | public interface MultiValueMap extends Map>, Serializable {
8 | public Object removeKV( K key, V item );
9 | }
10 |
--------------------------------------------------------------------------------
/src/gov/nist/core/NamingThreadFactory.java:
--------------------------------------------------------------------------------
1 | package gov.nist.core;
2 |
3 | import java.util.concurrent.Executors;
4 | import java.util.concurrent.ThreadFactory;
5 | import java.util.concurrent.atomic.AtomicInteger;
6 |
7 | /**
8 | * Thread factory which names threads by "pool--thread-n".
9 | * This is a replacement for Executors.defaultThreadFactory() to be able to identify pools.
10 | * Optionally a delegate thread factory can be given which creates the Thread
11 | * object itself, if no delegate has been given, Executors.defaultThreadFactory is used.
12 | * @author Alerant
13 | *
14 | */
15 | public class NamingThreadFactory implements ThreadFactory {
16 | private ThreadFactory delegate;
17 | private String baseName;
18 | private AtomicInteger index;
19 |
20 | public NamingThreadFactory(String baseName) {
21 | this(baseName, null);
22 | }
23 |
24 | public NamingThreadFactory(String baseName, ThreadFactory delegate) {
25 | this.baseName = baseName;
26 | this.delegate = delegate;
27 | if (this.delegate == null) {
28 | this.delegate = Executors.defaultThreadFactory();
29 | }
30 | this.index = new AtomicInteger(1);
31 | }
32 |
33 | @Override
34 | public Thread newThread(Runnable r) {
35 | String name = "pool-" + baseName + "-thread-" + index.getAndIncrement();
36 | Thread ret = delegate.newThread(r);
37 | ret.setName(name);
38 | return ret;
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/src/gov/nist/core/net/package.html:
--------------------------------------------------------------------------------
1 |
2 | Contains the Network layer classes and interfaces. The network layer
3 | wraps the java.net. Socket classes and allows users low level monitoring
4 | and control over these objects. This feature was proposed by Mike Andrews
5 | .
6 |
7 |
--------------------------------------------------------------------------------
/src/gov/nist/core/package.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | Contains core classes that the rest of the implementation depends upon. These
4 | include classes for basic parser and lexer functionality and logging
5 | functionality.
6 |
7 |
--------------------------------------------------------------------------------
/src/gov/nist/javax/sdp/fields/package.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | Classes for SDP Fields.
4 |
5 |
--------------------------------------------------------------------------------
/src/gov/nist/javax/sdp/package.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | Preliminary
4 | implementation of the javax.sdp package (JSR 141 see JSR 141 )
5 |
6 |
--------------------------------------------------------------------------------
/src/gov/nist/javax/sip/ListeningPointExt.java:
--------------------------------------------------------------------------------
1 | package gov.nist.javax.sip;
2 |
3 | import java.io.IOException;
4 |
5 | import javax.sip.ListeningPoint;
6 | import javax.sip.header.ContactHeader;
7 | import javax.sip.header.ViaHeader;
8 |
9 | public interface ListeningPointExt extends ListeningPoint {
10 |
11 | /**
12 | * WebSocket Transport constant: WS
13 | */
14 | public static final String WS = "WS";
15 |
16 | /**
17 | * WebSocket secure Transport constant: WSS
18 | */
19 | public static final String WSS = "WSS";
20 |
21 | /**
22 | * Create a contact for this listening point.
23 | *
24 | * @return a contact header corresponding to this listening point.
25 | *
26 | * @since 2.0
27 | *
28 | */
29 |
30 | ContactHeader createContactHeader() ;
31 |
32 | /**
33 | * Send a heartbeat to the specified Ip address and port
34 | * via this listening point. This method can be used to send out a period
35 | * CR-LF for NAT keepalive.
36 | *
37 | * @since 2.0
38 | */
39 | public void sendHeartbeat(String ipAddress, int port) throws IOException ;
40 |
41 | /**
42 | * Create a Via header for this listening point.
43 | *
44 | * @return a via header corresponding to this listening point. Branch ID is set to NULL.
45 | *
46 | * @since 2.0
47 | */
48 | public ViaHeader createViaHeader();
49 |
50 |
51 | }
52 |
--------------------------------------------------------------------------------
/src/gov/nist/javax/sip/LogRecord.java:
--------------------------------------------------------------------------------
1 | package gov.nist.javax.sip;
2 |
3 | /**
4 | * The interface for a log record. The log records are generated by calling the
5 | * LogReocrdFactory instance that is registered with the stack.
6 | *
7 | * @author M. Ranganathan
8 | *
9 | */
10 | public interface LogRecord {
11 |
12 | public abstract boolean equals(Object other);
13 |
14 | /**
15 | * Get an XML String for this message
16 | */
17 |
18 | public abstract String toString();
19 |
20 | }
21 |
--------------------------------------------------------------------------------
/src/gov/nist/javax/sip/MDCTask.java:
--------------------------------------------------------------------------------
1 | package gov.nist.javax.sip;
2 |
3 | import java.util.Map;
4 |
5 | /**
6 | *
7 | * This interface allows to provide more MDC vars in addition to the affinity
8 | * object.
9 | *
10 | */
11 | public interface MDCTask extends ThreadAffinityTask{
12 | Map getMDCVars();
13 | }
14 |
--------------------------------------------------------------------------------
/src/gov/nist/javax/sip/RequestEventExt.java:
--------------------------------------------------------------------------------
1 | package gov.nist.javax.sip;
2 |
3 | import javax.sip.Dialog;
4 | import javax.sip.RequestEvent;
5 | import javax.sip.ServerTransaction;
6 | import javax.sip.message.Request;
7 |
8 |
9 | /**
10 | * Extension of the RequestEvent.
11 | *
12 | *
13 | */
14 |
15 |
16 | public class RequestEventExt extends RequestEvent {
17 | private String remoteIpAddress;
18 |
19 | private int remotePort;
20 |
21 | public RequestEventExt(Object source, ServerTransaction serverTransaction, Dialog dialog, Request request) {
22 | super(source,serverTransaction,dialog,request);
23 | }
24 |
25 | public void setRemoteIpAddress(String remoteIpAddress) {
26 | this.remoteIpAddress = remoteIpAddress;
27 | }
28 |
29 | public String getRemoteIpAddress() {
30 | return remoteIpAddress;
31 | }
32 |
33 | public void setRemotePort(int remotePort) {
34 | this.remotePort = remotePort;
35 | }
36 |
37 | public int getRemotePort() {
38 | return remotePort;
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/src/gov/nist/javax/sip/ServerTransactionExt.java:
--------------------------------------------------------------------------------
1 | package gov.nist.javax.sip;
2 |
3 | import javax.sip.ServerTransaction;
4 |
5 |
6 | public interface ServerTransactionExt extends ServerTransaction, TransactionExt {
7 | /**
8 | * Return the canceled Invite transaction corresponding to an
9 | * incoming CANCEL server transaction.
10 | *
11 | * @return -- the canceled Invite transaction.
12 | *
13 | */
14 | public ServerTransaction getCanceledInviteTransaction();
15 | }
16 |
--------------------------------------------------------------------------------
/src/gov/nist/javax/sip/ThreadAffinityIdentifier.java:
--------------------------------------------------------------------------------
1 | package gov.nist.javax.sip;
2 |
3 | /**
4 | * All tasks that requires to be under ConcurrenyControlMode have to extend
5 | * this interface so they can be assigned to proper thread.
6 | *
7 | * The object hash will be used by the thread pool to consistently assign all
8 | * tasks to the same thread.
9 | *
10 | * The afinnity object will be added to MDC vars automatically behind the scenes.
11 | *
12 | */
13 | public interface ThreadAffinityIdentifier {
14 | /**
15 | *
16 | * @return the object used to hash against the thread pool.
17 | */
18 | public Object getThreadHash();
19 | }
20 |
--------------------------------------------------------------------------------
/src/gov/nist/javax/sip/ThreadAffinityTask.java:
--------------------------------------------------------------------------------
1 | package gov.nist.javax.sip;
2 |
3 | /**
4 | * All tasks that requires to be under ConcurrenyControlMode have to extend
5 | * this interface so they can be assigned to proper thread.
6 | *
7 | * The object hash will be used by the thread pool to consistently assign all
8 | * tasks to the same thread.
9 | *
10 | * The afinnity object will be added to MDC vars automatically behind the scenes.
11 | *
12 | */
13 | public interface ThreadAffinityTask extends Runnable, ThreadAffinityIdentifier{
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/src/gov/nist/javax/sip/TlsSecurityPolicy.java:
--------------------------------------------------------------------------------
1 | package gov.nist.javax.sip;
2 |
3 | /**
4 | * An implementation of this interface can be registered with the sip stack using the
5 | * configuration property gov.nist.javax.sip.TLS_SECURITY_POLICY
6 | */
7 | public interface TlsSecurityPolicy {
8 |
9 | /**
10 | * Enforce any application-specific security policy for TLS clients.
11 | * Called when establishing an outgoing TLS connection.
12 | * @param transaction -- the transaction context for the connection
13 | * @throws SecurityException -- if the certificates extracted from the client transaction are not acceptable.
14 | */
15 |
16 | public void enforceTlsPolicy(ClientTransactionExt transaction) throws SecurityException;
17 |
18 |
19 | }
20 |
--------------------------------------------------------------------------------
/src/gov/nist/javax/sip/address/RouterExt.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Conditions Of Use
3 | *
4 | * This software was developed by employees of the National Institute of
5 | * Standards and Technology (NIST), an agency of the Federal Government.
6 | * Pursuant to title 15 Untied States Code Section 105, works of NIST
7 | * employees are not subject to copyright protection in the United States
8 | * and are considered to be in the public domain. As a result, a formal
9 | * license is not needed to use the software.
10 | *
11 | * This software is provided by NIST as a service and is expressly
12 | * provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED
13 | * OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF
14 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT
15 | * AND DATA ACCURACY. NIST does not warrant or make any representations
16 | * regarding the use of the software or the results thereof, including but
17 | * not limited to the correctness, accuracy, reliability or usefulness of
18 | * the software.
19 | *
20 | * Permission to use this software is contingent upon your acceptance
21 | * of the terms of this agreement
22 | *
23 | *
24 | */
25 |
26 | package gov.nist.javax.sip.address;
27 |
28 | import javax.sip.address.Hop;
29 | import javax.sip.address.Router;
30 |
31 | /**
32 | *
33 | */
34 | public interface RouterExt extends Router {
35 |
36 | /**
37 | * Record that a transaction failure occured for the given hop.
38 | *
39 | */
40 | public void transactionTimeout(Hop hop);
41 |
42 | }
43 |
--------------------------------------------------------------------------------
/src/gov/nist/javax/sip/address/SipURIExt.java:
--------------------------------------------------------------------------------
1 | package gov.nist.javax.sip.address;
2 |
3 | import javax.sip.address.SipURI;
4 |
5 | /**
6 | * URI Interface extensions that will be added to version 2.0 of the JSR 32 spec.
7 | *
8 | * @author mranga
9 | *
10 | * @since 2.0
11 | *
12 | */
13 | public interface SipURIExt extends SipURI {
14 |
15 | /**
16 | * Strip the headers that are tacked to the URI.
17 | *
18 | * @since 2.0
19 | */
20 | public void removeHeaders();
21 |
22 | /**
23 | * Strip a specific header tacked to the URI.
24 | *
25 | * @param headerName -- the name of the header.
26 | *
27 | * @since 2.0
28 | */
29 | public void removeHeader(String headerName);
30 |
31 | /**
32 | * Returns whether the gr
parameter is set.
33 | *
34 | * @since 2.0
35 | */
36 | public boolean hasGrParam();
37 |
38 | /**
39 | * Sets the gr
parameter.
40 | *
41 | * @param value -- the GRUU param value.
42 | *
43 | * @since 2.0
44 | */
45 | public void setGrParam(String value);
46 |
47 | /**
48 | * Returns whether the lr
parameter is set.
49 | *
50 | * @since 2.0
51 | */
52 | public boolean hasLrParam();
53 |
54 | /**
55 | * Sets the lr
parameter.
56 | *
57 | * @param value -- the lr param value.
58 | *
59 | * @since 2.0
60 | */
61 | public void setLrParam();
62 |
63 | }
64 |
--------------------------------------------------------------------------------
/src/gov/nist/javax/sip/address/package.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | Implementation of the address package of the JAIN SIP API.
4 |
5 |
--------------------------------------------------------------------------------
/src/gov/nist/javax/sip/clientauthutils/AccountManager.java:
--------------------------------------------------------------------------------
1 | package gov.nist.javax.sip.clientauthutils;
2 |
3 | import javax.sip.ClientTransaction;
4 |
5 | public interface AccountManager {
6 |
7 | /**
8 | * Returns the user credentials for a given SIP Domain.
9 | * You can implement any desired method (such as popping up a dialog for example )
10 | * to retrieve the credentials.
11 | *
12 | * @param challengedTransaction - the transaction that is being challenged.
13 | * @param realm - the realm that is being challenged for which a credential should be
14 | * returned.
15 | * @return -- the user credentials associated with the domain.
16 | */
17 |
18 | UserCredentials getCredentials(ClientTransaction challengedTransaction, String realm);
19 |
20 | }
21 |
--------------------------------------------------------------------------------
/src/gov/nist/javax/sip/clientauthutils/SecureAccountManager.java:
--------------------------------------------------------------------------------
1 | package gov.nist.javax.sip.clientauthutils;
2 |
3 | import javax.sip.ClientTransaction;
4 |
5 | public interface SecureAccountManager {
6 | /**
7 | * Returns the user credentials for a given SIP Domain.
8 | * You can implement any desired method (such as popping up a dialog for example )
9 | * to retrieve the credentials.
10 | *
11 | * @param challengedTransaction - the transaction that is being challenged.
12 | * @param realm - the realm that is being challenged for which a credential should be
13 | * returned.
14 | * @return -- the user credentials associated with the domain.
15 | */
16 |
17 | UserCredentialHash getCredentialHash(ClientTransaction challengedTransaction, String realm);
18 |
19 | }
20 |
--------------------------------------------------------------------------------
/src/gov/nist/javax/sip/clientauthutils/UserCredentialHash.java:
--------------------------------------------------------------------------------
1 | package gov.nist.javax.sip.clientauthutils;
2 |
3 | /**
4 | * Interface for those clients that only supply
5 | * hash(user:domain:password). This is more secure than simply supplying
6 | * password because the password cannot be extracted. Implementations
7 | * tend to prefer to store information in user accounts using such a
8 | * hash rather than plain text passwords because it offers better security.
9 | *
10 | */
11 | public interface UserCredentialHash {
12 |
13 | /**
14 | * Get the user name.
15 | *
16 | * @return userName
17 | */
18 | public String getUserName();
19 |
20 |
21 | /**
22 | * Get the SipDomain.
23 | *
24 | * @return the SIP Domain.
25 | */
26 | public String getSipDomain();
27 |
28 |
29 | /**
30 | * Get the MD5(userName:sipdomain:password)
31 | *
32 | * @return the MD5 hash of userName:sipDomain:password.
33 | */
34 | public String getHashUserDomainPassword();
35 |
36 | }
37 |
--------------------------------------------------------------------------------
/src/gov/nist/javax/sip/clientauthutils/UserCredentials.java:
--------------------------------------------------------------------------------
1 | package gov.nist.javax.sip.clientauthutils;
2 |
3 | /**
4 | * The class is used whenever user credentials for a particular realm (site
5 | * server or service) are necessary
6 | * @author Emil Ivov
7 | * @author M. Ranganathan
8 | * @version 1.0
9 | */
10 |
11 | public interface UserCredentials
12 | {
13 |
14 |
15 | /**
16 | * Returns the name of the user that these credentials relate to.
17 | * @return the user name.
18 | */
19 | public String getUserName();
20 |
21 |
22 | /**
23 | * Returns a password associated with this set of credentials.
24 | *
25 | * @return a password associated with this set of credentials.
26 | */
27 | public String getPassword();
28 |
29 |
30 | /**
31 | * Returns the SIP Domain for this username password combination.
32 | *
33 | * @return the sip domain
34 | */
35 | public String getSipDomain();
36 |
37 |
38 |
39 | }
40 |
41 |
42 |
--------------------------------------------------------------------------------
/src/gov/nist/javax/sip/clientauthutils/package.html:
--------------------------------------------------------------------------------
1 |
2 | This package contains a set of utilities for client side Authentication Challenge handling. It has been
3 | adapted from the SIP communicator project and generously dontated to the JAIN-SIP project
4 | It is not part of the standard JAIN-SIP implementation at this point but is being considered for
5 | addition as this is an operation that is commonly required by all SIP clients; it is hence a good capability
6 | to include in a library such as JAIN-SIP.
7 |
8 | Primary authors of this code are Emil Ivov with corrections from Jeroen van Bemmel.
9 |
10 |
--------------------------------------------------------------------------------
/src/gov/nist/javax/sip/header/AddressParameters.java:
--------------------------------------------------------------------------------
1 | package gov.nist.javax.sip.header;
2 |
3 | import java.util.Map;
4 | import java.util.Map.Entry;
5 |
6 | import javax.sip.address.Address;
7 | import javax.sip.header.Parameters;
8 |
9 | public interface AddressParameters extends Parameters {
10 |
11 | /**
12 | * get the Address field
13 | * @return the imbedded Address
14 | */
15 | public abstract Address getAddress();
16 |
17 | /**
18 | * set the Address field
19 | * @param address Address to set
20 | */
21 | public abstract void setAddress(Address address);
22 |
23 | /**
24 | * Get the parameters map.
25 | *
26 | */
27 | public abstract Map> getParameters();
28 |
29 |
30 | }
31 |
--------------------------------------------------------------------------------
/src/gov/nist/javax/sip/header/HeaderExt.java:
--------------------------------------------------------------------------------
1 | /*
2 | * JBoss, Home of Professional Open Source
3 | * This code has been contributed to the public domain by the author.
4 | *
5 | * This software is provided by NIST as a service and is expressly
6 | * provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED
7 | * OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF
8 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT
9 | * AND DATA ACCURACY. NIST does not warrant or make any representations
10 | * regarding the use of the software or the results thereof, including but
11 | * not limited to the correctness, accuracy, reliability or usefulness of
12 | * the software.
13 | *
14 | * Permission to use this software is contingent upon your acceptance
15 | * of the terms of this agreement.
16 | */
17 | package gov.nist.javax.sip.header;
18 |
19 | import javax.sip.header.Header;
20 |
21 | /**
22 | * Extensions to the Header interface supported by the implementation and
23 | * will be included in the next spec release.
24 | *
25 | * @author jean.deruelle@gmail.com
26 | *
27 | */
28 | public interface HeaderExt extends Header {
29 |
30 | /**
31 | * Gets the header value (i.e. what follows the name:) as a string
32 | * @return the header value (i.e. what follows the name:)
33 | * @since 2.0
34 | */
35 | public String getValue();
36 | }
37 |
--------------------------------------------------------------------------------
/src/gov/nist/javax/sip/header/SipRequestLine.java:
--------------------------------------------------------------------------------
1 | package gov.nist.javax.sip.header;
2 |
3 | import javax.sip.address.URI;
4 |
5 |
6 | /**
7 | * The SIP Request Line.
8 | *
9 | * @since 2.0
10 | */
11 | public interface SipRequestLine {
12 |
13 | /** get the Request-URI.
14 | *
15 | * @return the request URI
16 | */
17 | public abstract URI getUri();
18 |
19 | /**
20 | * Get the Method
21 | *
22 | * @return method string.
23 | */
24 | public abstract String getMethod();
25 |
26 | /**
27 | * Get the SIP version.
28 | *
29 | * @return String
30 | */
31 | public abstract String getSipVersion();
32 |
33 | /**
34 | * Set the URI.
35 | *
36 | * @param uri URI to set.
37 | */
38 | public abstract void setUri(URI uri);
39 |
40 | /**
41 | * Set the method member
42 | *
43 | * @param method String to set
44 | */
45 | public abstract void setMethod(String method);
46 |
47 | /**
48 | * Set the sipVersion member
49 | *
50 | * @param s String to set
51 | */
52 | public abstract void setSipVersion(String version);
53 |
54 | /**
55 | * Get the major verrsion number.
56 | *
57 | *@return String major version number
58 | */
59 | public abstract String getVersionMajor();
60 |
61 | /**
62 | * Get the minor version number.
63 | *
64 | *@return String minor version number
65 | *
66 | */
67 | public abstract String getVersionMinor();
68 |
69 | }
70 |
--------------------------------------------------------------------------------
/src/gov/nist/javax/sip/header/SipStatusLine.java:
--------------------------------------------------------------------------------
1 | package gov.nist.javax.sip.header;
2 |
3 | /**
4 | * The SIP Status line.
5 | *
6 | * @since 2.0
7 | */
8 | public interface SipStatusLine {
9 |
10 | /** get the Sip Version
11 | * @return SipVersion
12 | */
13 | public abstract String getSipVersion();
14 |
15 | /** get the Status Code
16 | * @return StatusCode
17 | */
18 | public abstract int getStatusCode();
19 |
20 | /** get the ReasonPhrase field
21 | * @return ReasonPhrase field
22 | */
23 | public abstract String getReasonPhrase();
24 |
25 | /**
26 | * Set the sipVersion member
27 | * @param sipVersion String to set
28 | */
29 | public abstract void setSipVersion(String sipVersion);
30 |
31 | /**
32 | * Set the statusCode member
33 | * @param statusCode int to set
34 | */
35 | public abstract void setStatusCode(int statusCode);
36 |
37 | /**
38 | * Set the reasonPhrase member
39 | * @param reasonPhrase String to set
40 | */
41 | public abstract void setReasonPhrase(String reasonPhrase);
42 |
43 | /**
44 | * Get the major version number.
45 | *@return String major version number
46 | */
47 | public abstract String getVersionMajor();
48 |
49 | /**
50 | * Get the minor version number.
51 | *@return String minor version number
52 | */
53 | public abstract String getVersionMinor();
54 |
55 | }
56 |
--------------------------------------------------------------------------------
/src/gov/nist/javax/sip/header/ViaHeaderExt.java:
--------------------------------------------------------------------------------
1 | /*
2 | * This code has been contributed by the authors to the public domain.
3 | */
4 | package gov.nist.javax.sip.header;
5 |
6 | import javax.sip.header.ViaHeader;
7 |
8 |
9 | /**
10 | * @author jean.deruelle@gmail.com
11 | *
12 | */
13 | public interface ViaHeaderExt extends ViaHeader {
14 | /**
15 | * Returns hostname:port as a string equivalent to the "sent-by" field
16 | * @return "sent-by" field
17 | * @since 2.0
18 | */
19 | public String getSentByField();
20 | /**
21 | * Returns transport to the "sent-protocol" field
22 | * @return "sent-protocol" field
23 | * @since 2.0
24 | */
25 | public String getSentProtocolField();
26 | }
27 |
--------------------------------------------------------------------------------
/src/gov/nist/javax/sip/header/extensions/MinSEHeader.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Conditions Of Use
3 | *
4 | * This software was developed by employees of the National Institute of
5 | * Standards and Technology (NIST), an agency of the Federal Government.
6 | * Pursuant to title 15 Untied States Code Section 105, works of NIST
7 | * employees are not subject to copyright protection in the United States
8 | * and are considered to be in the public domain. As a result, a formal
9 | * license is not needed to use the software.
10 | *
11 | * This software is provided by NIST as a service and is expressly
12 | * provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED
13 | * OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF
14 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT
15 | * AND DATA ACCURACY. NIST does not warrant or make any representations
16 | * regarding the use of the software or the results thereof, including but
17 | * not limited to the correctness, accuracy, reliability or usefulness of
18 | * the software.
19 | *
20 | * Permission to use this software is contingent upon your acceptance
21 | * of the terms of this agreement
22 | *
23 | * .
24 | *
25 | */
26 | package gov.nist.javax.sip.header.extensions;
27 |
28 | import javax.sip.header.Header;
29 | import javax.sip.header.Parameters;
30 |
31 | public interface MinSEHeader extends Parameters, Header {
32 |
33 | public final static String NAME = "Min-SE";
34 |
35 | }
36 |
37 |
--------------------------------------------------------------------------------
/src/gov/nist/javax/sip/header/ims/PAccessNetworkInfoList.java:
--------------------------------------------------------------------------------
1 | package gov.nist.javax.sip.header.ims;
2 |
3 | import gov.nist.javax.sip.header.SIPHeaderList;
4 |
5 | /**
6 | * A list of PAccessNetworkInfo headers (there can be multiple in a message).
7 | *
8 | * @author M. Hoan Luu hoan.h.luu@telestax.com
9 | *
10 | */
11 | public class PAccessNetworkInfoList extends SIPHeaderList {
12 |
13 | private static final long serialVersionUID = 6993762829214108619L;
14 |
15 | public PAccessNetworkInfoList() {
16 | super(PAccessNetworkInfo.class, PAccessNetworkInfoHeader.NAME);
17 | }
18 |
19 | @Override
20 | public Object clone() {
21 | PAccessNetworkInfoList retVal = new PAccessNetworkInfoList();
22 | return retVal.clonehlist(this.hlist);
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/src/gov/nist/javax/sip/header/ims/package.html:
--------------------------------------------------------------------------------
1 |
2 | NIST-SIP Specific support for IMS headers contributed by Jose Miguel
3 | Freitas (Aveiro University, Portugal) and Alexandre Miguel Silva
4 | Santos (PT Inovacau, Portugal). It is not part of the JAIN-SIP 1.2
5 | specification. Questions about the IMS Support in NIST-SIP 1.2 can be
6 | directed to Miguel Feitas or the NIST-SIP mailing
7 | list. To acccess these headers you have to cast the HeaderFactory to
8 | HeaderFactoryImpl. This package has been contributed to the public
9 | domain.
10 |
11 |
--------------------------------------------------------------------------------
/src/gov/nist/javax/sip/header/package.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Contains implementations of the SIP headers as defined in JAIN-SIP 1.2 and
5 | an implementation of the JAIN-SIP header factory.
6 |
7 |
8 |
--------------------------------------------------------------------------------
/src/gov/nist/javax/sip/message/Content.java:
--------------------------------------------------------------------------------
1 | package gov.nist.javax.sip.message;
2 |
3 | import java.util.Iterator;
4 |
5 | import javax.sip.header.ContentDispositionHeader;
6 | import javax.sip.header.ContentTypeHeader;
7 | import javax.sip.header.Header;
8 |
9 | public interface Content {
10 |
11 | public abstract void setContent(Object content);
12 |
13 | public abstract Object getContent();
14 |
15 | public abstract ContentTypeHeader getContentTypeHeader();
16 |
17 | public abstract ContentDispositionHeader getContentDispositionHeader();
18 |
19 | public abstract Iterator getExtensionHeaders();
20 |
21 | /**
22 | * The default packing method. This packs the content to be appended to the
23 | * sip message.
24 | *
25 | */
26 | public abstract String toString();
27 |
28 |
29 | }
30 |
--------------------------------------------------------------------------------
/src/gov/nist/javax/sip/message/MultipartMimeContent.java:
--------------------------------------------------------------------------------
1 | package gov.nist.javax.sip.message;
2 |
3 | import java.util.Iterator;
4 | import java.util.List;
5 |
6 | import javax.sip.header.ContentTypeHeader;
7 |
8 | public interface MultipartMimeContent {
9 |
10 | public abstract boolean add(Content content);
11 |
12 | /**
13 | * Return the Content type header to assign to the outgoing sip meassage.
14 | *
15 | * @return
16 | */
17 | public abstract ContentTypeHeader getContentTypeHeader();
18 |
19 | public abstract String toString();
20 |
21 | /**
22 | * Set the content by its type.
23 | *
24 | * @param content
25 | */
26 | public abstract void addContent( Content content);
27 |
28 | /**
29 | * Retrieve the list of Content that is part of this MultitypeMime content.
30 | *
31 | * @return - the content iterator. Returns an empty iterator if no content list present.
32 | */
33 | public Iterator getContents();
34 |
35 | /**
36 | * Get the number of Content parts.
37 | *
38 | * @return - the content parts.
39 | */
40 | public int getContentCount();
41 |
42 | }
43 |
--------------------------------------------------------------------------------
/src/gov/nist/javax/sip/message/RequestExt.java:
--------------------------------------------------------------------------------
1 | package gov.nist.javax.sip.message;
2 |
3 | import javax.sip.message.Request;
4 |
5 | /**
6 | * Extensions for the JAIN-SIP Request interface.
7 | */
8 | public interface RequestExt extends Request, MessageExt {
9 |
10 | }
11 |
--------------------------------------------------------------------------------
/src/gov/nist/javax/sip/message/ResponseExt.java:
--------------------------------------------------------------------------------
1 | package gov.nist.javax.sip.message;
2 |
3 | import javax.sip.message.Response;
4 |
5 | /**
6 | *Extension for the jain-sip Response interface. This is a convenience
7 | *interface (placeholder).
8 | */
9 | public interface ResponseExt extends Response, MessageExt {
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/src/gov/nist/javax/sip/message/package.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | Class definitions for SIP messages and message factory.
4 |
5 |
--------------------------------------------------------------------------------
/src/gov/nist/javax/sip/parser/ims/package.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | Parser for IMS headers. This code was contributed by
4 | Jose Miguel Freitas (PT Innovacau) and ALEXANDRE MIGUEL SILVA SANTOS
5 | to this project. This package
6 | has been contributed to the public domain.
7 |
8 |
--------------------------------------------------------------------------------
/src/gov/nist/javax/sip/parser/package.html:
--------------------------------------------------------------------------------
1 |
2 | Parsers for SIP Headers, URL's and addresses.
3 |
4 |
5 |
--------------------------------------------------------------------------------
/src/gov/nist/javax/sip/stack/ClientAuthType.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Conditions Of Use
3 | *
4 | * This software was developed by employees of the National Institute of
5 | * Standards and Technology (NIST), an agency of the Federal Government.
6 | * Pursuant to title 15 Untied States Code Section 105, works of NIST
7 | * employees are not subject to copyright protection in the United States
8 | * and are considered to be in the public domain. As a result, a formal
9 | * license is not needed to use the software.
10 | *
11 | * This software is provided by NIST as a service and is expressly
12 | * provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED
13 | * OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF
14 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT
15 | * AND DATA ACCURACY. NIST does not warrant or make any representations
16 | * regarding the use of the software or the results thereof, including but
17 | * not limited to the correctness, accuracy, reliability or usefulness of
18 | * the software.
19 | *
20 | * Permission to use this software is contingent upon your acceptance
21 | * of the terms of this agreement
22 | *
23 | * .
24 | *
25 | */
26 | package gov.nist.javax.sip.stack;
27 |
28 | /**
29 | * @author jean.deruelle@gmail.com
30 | *
31 | */
32 | public enum ClientAuthType {
33 | Enabled, Disabled, DisabledAll, Want, Default;
34 | }
35 |
--------------------------------------------------------------------------------
/src/gov/nist/javax/sip/stack/NIOMode.java:
--------------------------------------------------------------------------------
1 | package gov.nist.javax.sip.stack;
2 |
3 | public enum NIOMode {
4 | BLOCKING,NONBLOCKING
5 | }
6 |
--------------------------------------------------------------------------------
/src/gov/nist/javax/sip/stack/QueuedMessageDispatchBase.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Conditions Of Use
3 | *
4 | * This software was developed by employees of the National Institute of
5 | * Standards and Technology (NIST), an agency of the Federal Government.
6 | * Pursuant to title 15 Untied States Code Section 105, works of NIST
7 | * employees are not subject to copyright protection in the United States
8 | * and are considered to be in the public domain. As a result, a formal
9 | * license is not needed to use the software.
10 | *
11 | * This software is provided by NIST as a service and is expressly
12 | * provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED
13 | * OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF
14 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT
15 | * AND DATA ACCURACY. NIST does not warrant or make any representations
16 | * regarding the use of the software or the results thereof, including but
17 | * not limited to the correctness, accuracy, reliability or usefulness of
18 | * the software.
19 | *
20 | * Permission to use this software is contingent upon your acceptance
21 | * of the terms of this agreement
22 | *
23 | * .
24 | *
25 | */
26 | package gov.nist.javax.sip.stack;
27 |
28 | public interface QueuedMessageDispatchBase extends Runnable{
29 | long getReceptionTime();
30 | }
31 |
--------------------------------------------------------------------------------
/src/gov/nist/javax/sip/stack/RawMessageChannel.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Conditions Of Use
3 | *
4 | * This software was developed by employees of the National Institute of
5 | * Standards and Technology (NIST), an agency of the Federal Government.
6 | * Pursuant to title 15 Untied States Code Section 105, works of NIST
7 | * employees are not subject to copyright protection in the United States
8 | * and are considered to be in the public domain. As a result, a formal
9 | * license is not needed to use the software.
10 | *
11 | * This software is provided by NIST as a service and is expressly
12 | * provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED
13 | * OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF
14 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT
15 | * AND DATA ACCURACY. NIST does not warrant or make any representations
16 | * regarding the use of the software or the results thereof, including but
17 | * not limited to the correctness, accuracy, reliability or usefulness of
18 | * the software.
19 | *
20 | * Permission to use this software is contingent upon your acceptance
21 | * of the terms of this agreement
22 | *
23 | * .
24 | *
25 | */
26 | package gov.nist.javax.sip.stack;
27 |
28 | import gov.nist.javax.sip.message.SIPMessage;
29 |
30 | public interface RawMessageChannel {
31 |
32 | public abstract void processMessage(SIPMessage sipMessage) throws Exception ;
33 |
34 | }
35 |
--------------------------------------------------------------------------------
/src/gov/nist/javax/sip/stack/SIPDialogEventListener.java:
--------------------------------------------------------------------------------
1 | /*
2 | * This source code has been contributed to the public domain by Mobicents
3 | *
4 | * This software is provided by NIST as a service and is expressly
5 | * provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED
6 | * OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF
7 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT
8 | * AND DATA ACCURACY. NIST does not warrant or make any representations
9 | * regarding the use of the software or the results thereof, including but
10 | * not limited to the correctness, accuracy, reliability or usefulness of
11 | * the software.
12 | *
13 | * Permission to use this software is contingent upon your acceptance
14 | * of the terms of this agreement.
15 | */
16 | package gov.nist.javax.sip.stack;
17 |
18 | import java.util.EventListener;
19 |
20 | /**
21 | * Interface implemented by classes that want to be notified of asynchronous
22 | * dialog events.
23 | *
24 | * @author jean deruelle
25 | * @since 2.0
26 | */
27 | public interface SIPDialogEventListener extends EventListener {
28 |
29 | /**
30 | * Invoked when an error has ocurred with a dialog.
31 | *
32 | * @param dialogErrorEvent Error event.
33 | */
34 | public void dialogErrorEvent(SIPDialogErrorEvent dialogErrorEvent);
35 | }
36 |
--------------------------------------------------------------------------------
/src/gov/nist/javax/sip/stack/package.html:
--------------------------------------------------------------------------------
1 |
2 | This package implements the main protocol abstractions that are defined by the SIP RFC 3261.
3 | These include the following main ones:
4 |
5 | - SIPServerTransaction -- an implementation of the Server Transaction State Machine (Chapter 17 of RFC 3261).
6 |
- SIPClientTransaction -- an implementation of the Client Transction State Machine (Chapter 17 of RFC 3261).
7 |
- SIPDialog -- an implementation of the SIP Dialog ( Chapter 11 of RFC 3261 ).
8 |
9 |
10 | SIPTransactionStack is the container that holds references to these protocol objects.
11 |
12 |
13 |
--------------------------------------------------------------------------------
/src/javax/sdp/EMail.java:
--------------------------------------------------------------------------------
1 | /*
2 | * EMail.java
3 | *
4 | * Created on December 18, 2001, 4:56 PM
5 | */
6 |
7 | package javax.sdp;
8 |
9 | /** An EMail represents an e= field contained within a SessionDescription.
10 | *
11 | * Please refer to IETF RFC 2327 for a description of SDP.
12 | *
13 | * @author deruelle
14 | * @version 1.0
15 | */
16 | public interface EMail extends Field {
17 |
18 | /** Returns the value.
19 | */
20 | public String getValue() throws SdpParseException;
21 |
22 | /** Set the value.
23 | */
24 | public void setValue(String value) throws SdpException;
25 |
26 | }
27 |
28 |
--------------------------------------------------------------------------------
/src/javax/sdp/Field.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Field.java
3 | *
4 | * Created on December 18, 2001, 10:42 AM
5 | */
6 |
7 | package javax.sdp;
8 |
9 | import java.io.*;
10 |
11 | /** A Field represents a single line of information within a SDP
12 | * session description.
13 | *
14 | * @author deruelle
15 | * @version 1.0
16 | */
17 | public interface Field extends Serializable, Cloneable {
18 |
19 | /** Returns the type character for the field.
20 | * @return the type character for the field.
21 | */
22 | public char getTypeChar();
23 |
24 |
25 | /** Returns a clone of this field.
26 | * @return a clone of this field.
27 | */
28 | public Object clone();
29 |
30 | }
31 |
32 |
--------------------------------------------------------------------------------
/src/javax/sdp/Info.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Info.java
3 | *
4 | * Created on December 18, 2001, 5:12 PM
5 | */
6 |
7 | package javax.sdp;
8 |
9 | /**An Info represents the i= fields contained within either a MediaDescription
10 | * or a SessionDescription.
11 | *
12 | * Please refer to IETF RFC 2327 for a description of SDP.
13 | *
14 | * @author deruelle
15 | * @version 1.0
16 | */
17 | public interface Info extends Field {
18 |
19 | /** Returns the value.
20 | */
21 | public String getValue() throws SdpParseException;
22 |
23 | /** Set the value.
24 | */
25 | public void setValue(String value) throws SdpException;
26 |
27 | }
28 |
29 |
30 |
--------------------------------------------------------------------------------
/src/javax/sdp/Key.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Key.java
3 | *
4 | * Created on December 19, 2001, 10:10 AM
5 | */
6 |
7 | package javax.sdp;
8 |
9 | /** A Key represents the k= field contained within either a MediaDescription or a SessionDescription.
10 | *
11 | * Please refer to IETF RFC 2327 for a description of SDP.
12 | *
13 | * @author deruelle
14 | * @version 1.0
15 | */
16 | public interface Key extends Field {
17 |
18 | /** Returns the name of this attribute
19 | * @throws SdpParseException
20 | * @return the name of this attribute
21 | */
22 | public String getMethod()
23 | throws SdpParseException;
24 |
25 | /** Sets the id of this attribute.
26 | * @param name to set
27 | * @throws SdpException if the name is null
28 | */
29 | public void setMethod(String name)
30 | throws SdpException;
31 |
32 | /** Determines if this attribute has an associated value.
33 | * @throws SdpParseException
34 | * @return if this attribute has an associated value.
35 | */
36 | public boolean hasKey()
37 | throws SdpParseException;
38 |
39 | /** Returns the value of this attribute.
40 | * @throws SdpParseException
41 | * @return the value of this attribute
42 | */
43 | public String getKey()
44 | throws SdpParseException;
45 |
46 | /** Sets the value of this attribute.
47 | * @param key to set
48 | * @throws SdpException if key is null
49 | */
50 | public void setKey(String key)
51 | throws SdpException;
52 | }
53 |
54 |
--------------------------------------------------------------------------------
/src/javax/sdp/Phone.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Phone.java
3 | *
4 | * Created on December 20, 2001, 2:57 PM
5 | */
6 |
7 | package javax.sdp;
8 |
9 | /** A Phone represents a p= field contained within a SessionDescription.
10 | *
11 | * Please refer to IETF RFC 2327 for a description of SDP.
12 | *
13 | * @author deruelle
14 | * @version 1.0
15 | */
16 | public interface Phone extends Field {
17 |
18 | /** Returns the value.
19 | * @throws SdpParseException
20 | * @return the value.
21 | */
22 | public String getValue()
23 | throws SdpParseException;
24 |
25 | /** Sets the value.
26 | * @param value the - new information.
27 | * @throws SdpException if the value is null
28 | */
29 | public void setValue(String value)
30 | throws SdpException;
31 |
32 | }
33 |
34 |
--------------------------------------------------------------------------------
/src/javax/sdp/SessionName.java:
--------------------------------------------------------------------------------
1 | /*
2 | * SessionName.java
3 | *
4 | * Created on January 9, 2002, 10:46 AM
5 | */
6 |
7 | package javax.sdp;
8 |
9 | /** A SessionName represents the s= fields contained within a SessionDescription.
10 | *
11 | * Please refer to IETF RFC 2327 for a description of SDP.
12 | *
13 | * @author deruelle
14 | * @version 1.0
15 | */
16 | public interface SessionName extends Field {
17 |
18 |
19 | /** Returns the value.
20 | * @throws SdpParseException
21 | * @return the value
22 | */
23 | public String getValue()
24 | throws SdpParseException;
25 |
26 |
27 | /** Sets the value
28 | * @param value the - new information.
29 | * @throws SdpException if the value is null
30 | */
31 | public void setValue(String value)
32 | throws SdpException;
33 |
34 | }
35 |
--------------------------------------------------------------------------------
/src/javax/sdp/URI.java:
--------------------------------------------------------------------------------
1 | /*
2 | * URI.java
3 | *
4 | * Created on January 9, 2002, 11:26 AM
5 | */
6 |
7 | package javax.sdp;
8 |
9 | import java.net.*;
10 |
11 | /** An URI represents the u= field within a SessionDescription.
12 | *
13 | * Please refer to IETF RFC 2327 for a description of SDP.
14 | *
15 | * @author deruelle
16 | * @version 1.0
17 | */
18 | public interface URI extends Field {
19 |
20 | /** Returns the value.
21 | * @throws SdpParseException
22 | * @return the value
23 | */
24 | public URL get()
25 | throws SdpParseException;
26 |
27 | /** Sets the value.
28 | * @param value the new information
29 | * @throws SdpException if the parameter is null
30 | */
31 | public void set(URL value)
32 | throws SdpException;
33 |
34 | }
35 |
36 |
--------------------------------------------------------------------------------
/src/javax/sdp/Version.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Version.java
3 | *
4 | * Created on January 9, 2002, 11:29 AM
5 | */
6 |
7 | package javax.sdp;
8 |
9 | /** A Version field represents the v= fields contained within the SessionDescription.
10 | *
11 | * Please refer to IETF RFC 2327 for a description of SDP.
12 | *
13 | * @author deruelle
14 | * @version 1.0
15 | */
16 | public interface Version extends Field{
17 |
18 |
19 | /** Returns the version number.
20 | * @throws SdpParseException
21 | * @return int
22 | */
23 | public int getVersion()
24 | throws SdpParseException;
25 |
26 | /** Sets the version.
27 | * @param value the - new version value.
28 | * @throws SdpException if the value is <=0
29 | */
30 | public void setVersion(int value)
31 | throws SdpException;
32 | }
33 |
34 |
--------------------------------------------------------------------------------
/src/javax/sdp/package.html:
--------------------------------------------------------------------------------
1 |
2 | This is a preliminary version of the javax.sdp package based on the
3 | public review version
4 | JSR 141 .
5 | Warning: This specification is subject to change until the spec is finalized.
6 |
7 |
8 |
--------------------------------------------------------------------------------
/src/javax/sip/ClientTransaction.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/ClientTransaction.java
--------------------------------------------------------------------------------
/src/javax/sip/Dialog.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/Dialog.java
--------------------------------------------------------------------------------
/src/javax/sip/DialogDoesNotExistException.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/DialogDoesNotExistException.java
--------------------------------------------------------------------------------
/src/javax/sip/DialogState.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/DialogState.java
--------------------------------------------------------------------------------
/src/javax/sip/DialogTerminatedEvent.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/DialogTerminatedEvent.java
--------------------------------------------------------------------------------
/src/javax/sip/IOExceptionEvent.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/IOExceptionEvent.java
--------------------------------------------------------------------------------
/src/javax/sip/InvalidArgumentException.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/InvalidArgumentException.java
--------------------------------------------------------------------------------
/src/javax/sip/ListeningPoint.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/ListeningPoint.java
--------------------------------------------------------------------------------
/src/javax/sip/ObjectInUseException.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/ObjectInUseException.java
--------------------------------------------------------------------------------
/src/javax/sip/PeerUnavailableException.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/PeerUnavailableException.java
--------------------------------------------------------------------------------
/src/javax/sip/ProviderDoesNotExistException.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/ProviderDoesNotExistException.java
--------------------------------------------------------------------------------
/src/javax/sip/RequestEvent.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/RequestEvent.java
--------------------------------------------------------------------------------
/src/javax/sip/ResponseEvent.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/ResponseEvent.java
--------------------------------------------------------------------------------
/src/javax/sip/ServerTransaction.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/ServerTransaction.java
--------------------------------------------------------------------------------
/src/javax/sip/SipException.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/SipException.java
--------------------------------------------------------------------------------
/src/javax/sip/SipFactory.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/SipFactory.java
--------------------------------------------------------------------------------
/src/javax/sip/SipListener.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/SipListener.java
--------------------------------------------------------------------------------
/src/javax/sip/SipStack.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/SipStack.java
--------------------------------------------------------------------------------
/src/javax/sip/Timeout.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/Timeout.java
--------------------------------------------------------------------------------
/src/javax/sip/TimeoutEvent.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/TimeoutEvent.java
--------------------------------------------------------------------------------
/src/javax/sip/TransactionAlreadyExistsException.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/TransactionAlreadyExistsException.java
--------------------------------------------------------------------------------
/src/javax/sip/TransactionDoesNotExistException.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/TransactionDoesNotExistException.java
--------------------------------------------------------------------------------
/src/javax/sip/TransactionState.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/TransactionState.java
--------------------------------------------------------------------------------
/src/javax/sip/TransactionTerminatedEvent.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/TransactionTerminatedEvent.java
--------------------------------------------------------------------------------
/src/javax/sip/TransactionUnavailableException.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/TransactionUnavailableException.java
--------------------------------------------------------------------------------
/src/javax/sip/TransportAlreadySupportedException.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/TransportAlreadySupportedException.java
--------------------------------------------------------------------------------
/src/javax/sip/TransportNotSupportedException.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/TransportNotSupportedException.java
--------------------------------------------------------------------------------
/src/javax/sip/address/Address.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/address/Address.java
--------------------------------------------------------------------------------
/src/javax/sip/address/AddressFactory.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/address/AddressFactory.java
--------------------------------------------------------------------------------
/src/javax/sip/address/Hop.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/address/Hop.java
--------------------------------------------------------------------------------
/src/javax/sip/address/Router.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/address/Router.java
--------------------------------------------------------------------------------
/src/javax/sip/address/SipURI.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/address/SipURI.java
--------------------------------------------------------------------------------
/src/javax/sip/address/TelURL.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/address/TelURL.java
--------------------------------------------------------------------------------
/src/javax/sip/address/URI.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/address/URI.java
--------------------------------------------------------------------------------
/src/javax/sip/address/package.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | This package contains interfaces
9 | that represent the Addressing components of the SIP protocol. This package
10 | defines a generic URI interface that is extended by a SipURI compliant to
11 | RFC3261 and TelURL compliant to RFC 2806. Within SIP an address is
12 | typically a URI and an optional display name, these are encapsulated in the
13 | Address interface. This specification also defines a Router interface that
14 | can be queried to sending Requests on a specific route or via an outbound
15 | proxy and a Hop interface that describes one location in a specific route.
16 |
17 |
18 | Additionally this package contains a AddressFactory class that defines
19 | methods for creating new addressing attributes. The AddressFactory is a
20 | singleton object, which can be obtained from the {@link javax.sip.SipFactory}.
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/src/javax/sip/copyright.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Copyright
5 |
6 |
8 |
9 |
10 |
11 |
12 |
13 | Copyright
14 |
15 | Copyright © 2003 Sun Microsystems, Inc., 4150 Network Circle, Santa
16 | Clara, California 95054, U.S.A. All rights reserved.
17 |
18 | Copyright © 2005 BEA Systems, Inc., 2315 North First Street, San Jose,
19 | California 95131, U.S.A. All rights reserved.
20 |
21 | Unpublished - rights reserved under the Copyright Laws of the United States.
22 |
23 | Use is subject to license terms.
24 |
25 | This distribution may include materials developed by third parties.
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/src/javax/sip/header/AcceptEncodingHeader.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/header/AcceptEncodingHeader.java
--------------------------------------------------------------------------------
/src/javax/sip/header/AcceptHeader.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/header/AcceptHeader.java
--------------------------------------------------------------------------------
/src/javax/sip/header/AcceptLanguageHeader.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/header/AcceptLanguageHeader.java
--------------------------------------------------------------------------------
/src/javax/sip/header/AlertInfoHeader.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/header/AlertInfoHeader.java
--------------------------------------------------------------------------------
/src/javax/sip/header/AllowEventsHeader.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/header/AllowEventsHeader.java
--------------------------------------------------------------------------------
/src/javax/sip/header/AllowHeader.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/header/AllowHeader.java
--------------------------------------------------------------------------------
/src/javax/sip/header/AuthenticationInfoHeader.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/header/AuthenticationInfoHeader.java
--------------------------------------------------------------------------------
/src/javax/sip/header/AuthorizationHeader.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/header/AuthorizationHeader.java
--------------------------------------------------------------------------------
/src/javax/sip/header/CSeqHeader.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/header/CSeqHeader.java
--------------------------------------------------------------------------------
/src/javax/sip/header/CallInfoHeader.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/header/CallInfoHeader.java
--------------------------------------------------------------------------------
/src/javax/sip/header/ContactHeader.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/header/ContactHeader.java
--------------------------------------------------------------------------------
/src/javax/sip/header/ContentDispositionHeader.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/header/ContentDispositionHeader.java
--------------------------------------------------------------------------------
/src/javax/sip/header/ContentEncodingHeader.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/header/ContentEncodingHeader.java
--------------------------------------------------------------------------------
/src/javax/sip/header/ContentLanguageHeader.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/header/ContentLanguageHeader.java
--------------------------------------------------------------------------------
/src/javax/sip/header/ContentTypeHeader.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/header/ContentTypeHeader.java
--------------------------------------------------------------------------------
/src/javax/sip/header/DateHeader.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/header/DateHeader.java
--------------------------------------------------------------------------------
/src/javax/sip/header/Encoding.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/header/Encoding.java
--------------------------------------------------------------------------------
/src/javax/sip/header/ErrorInfoHeader.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/header/ErrorInfoHeader.java
--------------------------------------------------------------------------------
/src/javax/sip/header/EventHeader.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/header/EventHeader.java
--------------------------------------------------------------------------------
/src/javax/sip/header/ExpiresHeader.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/header/ExpiresHeader.java
--------------------------------------------------------------------------------
/src/javax/sip/header/ExtensionHeader.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/header/ExtensionHeader.java
--------------------------------------------------------------------------------
/src/javax/sip/header/FromHeader.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/header/FromHeader.java
--------------------------------------------------------------------------------
/src/javax/sip/header/Header.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/header/Header.java
--------------------------------------------------------------------------------
/src/javax/sip/header/HeaderAddress.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/header/HeaderAddress.java
--------------------------------------------------------------------------------
/src/javax/sip/header/HeaderFactory.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/header/HeaderFactory.java
--------------------------------------------------------------------------------
/src/javax/sip/header/InReplyToHeader.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/header/InReplyToHeader.java
--------------------------------------------------------------------------------
/src/javax/sip/header/MaxForwardsHeader.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/header/MaxForwardsHeader.java
--------------------------------------------------------------------------------
/src/javax/sip/header/MediaType.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/header/MediaType.java
--------------------------------------------------------------------------------
/src/javax/sip/header/MimeVersionHeader.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/header/MimeVersionHeader.java
--------------------------------------------------------------------------------
/src/javax/sip/header/MinExpiresHeader.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/header/MinExpiresHeader.java
--------------------------------------------------------------------------------
/src/javax/sip/header/OptionTag.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/header/OptionTag.java
--------------------------------------------------------------------------------
/src/javax/sip/header/OrganizationHeader.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/header/OrganizationHeader.java
--------------------------------------------------------------------------------
/src/javax/sip/header/Parameters.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/header/Parameters.java
--------------------------------------------------------------------------------
/src/javax/sip/header/PriorityHeader.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/header/PriorityHeader.java
--------------------------------------------------------------------------------
/src/javax/sip/header/ProxyAuthenticateHeader.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/header/ProxyAuthenticateHeader.java
--------------------------------------------------------------------------------
/src/javax/sip/header/ProxyAuthorizationHeader.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/header/ProxyAuthorizationHeader.java
--------------------------------------------------------------------------------
/src/javax/sip/header/ProxyRequireHeader.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/header/ProxyRequireHeader.java
--------------------------------------------------------------------------------
/src/javax/sip/header/RAckHeader.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/header/RAckHeader.java
--------------------------------------------------------------------------------
/src/javax/sip/header/RSeqHeader.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/header/RSeqHeader.java
--------------------------------------------------------------------------------
/src/javax/sip/header/ReasonHeader.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/header/ReasonHeader.java
--------------------------------------------------------------------------------
/src/javax/sip/header/RecordRouteHeader.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/header/RecordRouteHeader.java
--------------------------------------------------------------------------------
/src/javax/sip/header/ReferToHeader.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/header/ReferToHeader.java
--------------------------------------------------------------------------------
/src/javax/sip/header/ReplyToHeader.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/header/ReplyToHeader.java
--------------------------------------------------------------------------------
/src/javax/sip/header/RequireHeader.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/header/RequireHeader.java
--------------------------------------------------------------------------------
/src/javax/sip/header/RetryAfterHeader.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/header/RetryAfterHeader.java
--------------------------------------------------------------------------------
/src/javax/sip/header/RouteHeader.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/header/RouteHeader.java
--------------------------------------------------------------------------------
/src/javax/sip/header/SIPETagHeader.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/header/SIPETagHeader.java
--------------------------------------------------------------------------------
/src/javax/sip/header/SIPIfMatchHeader.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/header/SIPIfMatchHeader.java
--------------------------------------------------------------------------------
/src/javax/sip/header/ServerHeader.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/header/ServerHeader.java
--------------------------------------------------------------------------------
/src/javax/sip/header/SubjectHeader.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/header/SubjectHeader.java
--------------------------------------------------------------------------------
/src/javax/sip/header/SubscriptionStateHeader.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/header/SubscriptionStateHeader.java
--------------------------------------------------------------------------------
/src/javax/sip/header/SupportedHeader.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/header/SupportedHeader.java
--------------------------------------------------------------------------------
/src/javax/sip/header/TimeStampHeader.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/header/TimeStampHeader.java
--------------------------------------------------------------------------------
/src/javax/sip/header/ToHeader.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/header/ToHeader.java
--------------------------------------------------------------------------------
/src/javax/sip/header/TooManyHopsException.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/header/TooManyHopsException.java
--------------------------------------------------------------------------------
/src/javax/sip/header/UnsupportedHeader.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/header/UnsupportedHeader.java
--------------------------------------------------------------------------------
/src/javax/sip/header/UserAgentHeader.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/header/UserAgentHeader.java
--------------------------------------------------------------------------------
/src/javax/sip/header/ViaHeader.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/header/ViaHeader.java
--------------------------------------------------------------------------------
/src/javax/sip/header/WWWAuthenticateHeader.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/header/WWWAuthenticateHeader.java
--------------------------------------------------------------------------------
/src/javax/sip/header/WarningHeader.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/header/WarningHeader.java
--------------------------------------------------------------------------------
/src/javax/sip/message/Message.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/message/Message.java
--------------------------------------------------------------------------------
/src/javax/sip/message/MessageFactory.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/message/MessageFactory.java
--------------------------------------------------------------------------------
/src/javax/sip/message/Request.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/message/Request.java
--------------------------------------------------------------------------------
/src/javax/sip/message/Response.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/javax/sip/message/Response.java
--------------------------------------------------------------------------------
/src/performance/b2bua/run_uac_DIALOG.sh:
--------------------------------------------------------------------------------
1 | sipp 127.0.0.1:5060 -trace_err -sf uac_DIALOG.xml -i 127.0.0.1 -p 5050 -r 1 -m 1000000 -l 1000000
2 | #sipp 127.0.0.1:5060 -trace_err -sf uac_DIALOG.xml -i 127.0.0.1 -p 5050 -r 1 -m 1 -l 1000000
3 |
--------------------------------------------------------------------------------
/src/performance/b2bua/run_uas_DIALOG.sh:
--------------------------------------------------------------------------------
1 | sipp -trace_err -sf uas_DIALOG.xml -i 127.0.0.1 -p 5090 -r 1 -m 1000000 -l 1000000
2 |
--------------------------------------------------------------------------------
/src/performance/b2bua/test.properties:
--------------------------------------------------------------------------------
1 | #sip stack properties that are here and in specs are obligatory for stack
2 | gov.nist.javax.sip.LOG_MESSAGE_CONTENT=false
3 | gov.nist.javax.sip.TRACE_LEVEL=0
4 | gov.nist.javax.sip.DEBUG_LOG=
5 | gov.nist.javax.sip.SERVER_LOG=
6 | gov.nist.javax.sip.THREAD_POOL_SIZE=4
7 | javax.sip.AUTOMATIC_DIALOG_SUPPORT=off
8 | gov.nist.javax.sip.REENTRANT_LISTENER=true
9 | gov.nist.javax.sip.DELIVER_UNSOLICITED_NOTIFY=true
10 | gov.nist.javax.sip.RECEIVE_UDP_BUFFER_SIZE=65536
11 | gov.nist.javax.sip.SEND_UDP_BUFFER_SIZE=65536
12 | gov.nist.javax.sip.CONGESTION_CONTROL_ENABLED=false
13 | javax.sip.STACK_NAME=Mobicents
14 |
--------------------------------------------------------------------------------
/src/performance/uas/.ant-targets-build.xml:
--------------------------------------------------------------------------------
1 | clean
2 | shootme
3 | shootme-no-dialog
4 | shootme-no-dialog-no-tx
5 | shootmelog
6 |
--------------------------------------------------------------------------------
/src/performance/uas/README.txt:
--------------------------------------------------------------------------------
1 | The program Shootme.java (named after nothing) is a skeleton UAS.
2 |
3 | You need sipp to run this scenario. If you dont have sipp you could use
4 | the download-and-compile-sipp.sh shell script on Linux.
5 |
6 | To run this example, open up two windows.
7 |
8 | From the first one, type
9 |
10 | "ant shootme"
11 |
12 | and from the second one type
13 |
14 | "./performance_test.sh".
15 |
16 | If you are not using UNIX you must execute the sipp script manually
17 | or adjust the location of the sipp executable.
18 |
19 | The performance_test.sh script will start a sipp scenario to act as UAC and
20 | will send up an invite to the shootme and the victim (shootme) will respond
21 | like a UAC should (or it might even kick up its legs and die).
22 |
23 | For performance tests debugging is off.
24 |
25 | Disclaimer: NIST does not necessarily endorse John Wayne.
26 |
27 | Mail questions to mranga@nist.gov or nist-sip-dev@antd.nist.gov
28 |
--------------------------------------------------------------------------------
/src/performance/uas/download-and-compile-sipp.sh:
--------------------------------------------------------------------------------
1 | # Compile sipp
2 | wget -m -nd http://downloads.sourceforge.net/project/sipp/sipp/3.0/sipp-3.0.src.tar.gz?use_mirror=surfnet
3 | tar -xzf sipp-3.0.src.tar.gz
4 | cd sipp-3.0.src
5 |
6 | wget -m -nd http://ftp.gnu.org/pub/gnu/ncurses/ncurses-5.6.tar.gz
7 | tar -xzf ncurses-5.6.tar.gz
8 | cd ncurses-5.6
9 | ./configure > /dev/null
10 | make > /dev/null
11 | cd ..
12 | wget -m -nd http://people.redhat.com/lbarreir/hudson/call-setup-test/Makefile
13 | make > /dev/null
14 | mv -f sipp ..
15 | cd ..
16 | rm -fr sipp-3.0.src*
17 |
--------------------------------------------------------------------------------
/src/performance/uas/performance-test-timer.sh:
--------------------------------------------------------------------------------
1 | killall sipp
2 | rm *.log
3 | export TEST_IP=127.0.0.1
4 | echo "IP Address for the test is $TEST_IP"
5 |
6 | echo "Attempting to start sipp script";
7 | #sipp $TEST_IP:5080 -sf performance-uac-timer.xml -trace_err -i $TEST_IP -p 5055 -r 200 -m 10000000
8 | sipp $TEST_IP:5080 -sf performance-uac-timer.xml -trace_err -i $TEST_IP -p 5055 -r 500 -m 1
9 |
10 |
--------------------------------------------------------------------------------
/src/performance/uas/performance-test.sh:
--------------------------------------------------------------------------------
1 | killall sipp
2 | rm *.log
3 | export TEST_IP=127.0.0.1
4 | echo "IP Address for the test is $TEST_IP"
5 |
6 | echo "Attempting to start sipp script";
7 | sipp $TEST_IP:5080 -sf performance-uac.xml -trace_err -i $TEST_IP -p 5055 -r 200 -m 10000000
8 | #sipp $TEST_IP:5080 -sf performance-uac.xml -trace_err -i $TEST_IP -p 5055 -r 200 -m 1
9 |
10 |
--------------------------------------------------------------------------------
/src/test/load/concurrency/README.txt:
--------------------------------------------------------------------------------
1 |
2 | Test correct operation under load conditions.
3 | Runs 100 concurrent dialogs and make sure the dialogs are
4 | started and terminated properly.
5 |
6 | To run these tests:
7 |
8 | make shootme
9 | make shootist
10 |
--------------------------------------------------------------------------------
/src/test/load/concurrency/SelfTest.java:
--------------------------------------------------------------------------------
1 | package test.load.concurrency;
2 |
3 | import javax.sip.SipProvider;
4 |
5 | public class SelfTest {
6 |
7 |
8 | public static void main(String[] args) throws Exception {
9 | ProtocolObjects.init("shootist", true);
10 | if ( args.length == 0 ) Shootist.NDIALOGS = 10000;
11 | else Shootist.NDIALOGS = Integer.parseInt(args[0]);
12 | Shootist.addressFactory = ProtocolObjects.addressFactory;
13 | Shootist.messageFactory = ProtocolObjects.messageFactory;
14 | Shootist.headerFactory = ProtocolObjects.headerFactory;
15 | Shootist.sipStack = ProtocolObjects.sipStack;
16 | Shootist.transport = ProtocolObjects.transport;
17 | Shootist shootist = new Shootist();
18 | shootist.createProvider(shootist);
19 |
20 | ProtocolObjects.init("shootme", true);
21 | Shootme.addressFactory = ProtocolObjects.addressFactory;
22 | Shootme.messageFactory = ProtocolObjects.messageFactory;
23 | Shootme.headerFactory = ProtocolObjects.headerFactory;
24 | Shootme.sipStack = ProtocolObjects.sipStack;
25 | Shootme.transport = ProtocolObjects.transport;
26 | Shootme shootme = new Shootme();
27 | SipProvider sipProvider = shootme.createSipProvider();
28 | sipProvider.addSipListener(shootme);
29 |
30 | shootist.start = System.currentTimeMillis();
31 | for (int i = 0; i < Shootist.NDIALOGS; i++) {
32 | Thread.sleep(3);
33 | shootist.sendInvite();
34 | }
35 | }
36 |
37 | }
38 |
--------------------------------------------------------------------------------
/src/test/load/multidialog/README.txt:
--------------------------------------------------------------------------------
1 |
2 | This example illustrates interleaved concurrent calls launched by the UAC.
3 | The UAC can handle multiple dialogs concurrently. Neither the UAC nor the
4 | UAS is allowed to block in the listener. Note that the UAS starts a timer
5 | task to delay responding but does not sleep in the Listener to introduce
6 | this delay.
7 |
8 | Run it using the ant build.xml file
9 |
10 | make shootme
11 |
12 | make shootist
13 |
14 | From two command prompts.
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/src/test/load/subsnotify/SubsNotify.java:
--------------------------------------------------------------------------------
1 | package test.load.subsnotify;
2 |
3 | public class SubsNotify {
4 |
5 | /**
6 | * @param args
7 | */
8 | public static void main(String[] args) {
9 | Notifier notifier = new Notifier();
10 | Subscriber subscriber = new Subscriber();
11 | notifier.init();
12 | subscriber.init();
13 |
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/src/test/tck/README:
--------------------------------------------------------------------------------
1 | This is a work in progress. It is currently open to public review. Your
2 | comments are solicited.
3 |
4 | The TCK was written by
5 |
6 | M. Ranganathan (factory tests) and Emil Ivov (stack tests and GUI)
7 |
8 |
--------------------------------------------------------------------------------
/src/test/tck/TckInternalError.java:
--------------------------------------------------------------------------------
1 | package test.tck;
2 |
3 | /**
4 | * This class serves to wrap exceptions that were thrown during the testing
5 | * and that were not provoked by the tested implementaion.
6 | *
7 | * @author Emil Ivov
8 | * Network Research Team, Louis Pasteur University, Strasbourg, France
9 | * This code is in the public domain.
10 | * @version 1.0
11 | */
12 |
13 | public class TckInternalError extends Error
14 | {
15 |
16 | public TckInternalError(String message)
17 | {
18 | super(message);
19 | TestHarness.abortOnFail = true;
20 | }
21 |
22 | public TckInternalError(String message, Throwable cause)
23 | {
24 | super(message, cause);
25 | TestHarness.abortOnFail = true;
26 | }
27 |
28 | public TckInternalError(Throwable cause)
29 | {
30 | super(cause);
31 | TestHarness.abortOnFail = true;
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/src/test/tck/TiUnexpectedError.java:
--------------------------------------------------------------------------------
1 | package test.tck;
2 |
3 | /**
4 | * This class serves to wrap exceptions that were thrown by the Tested
5 | * Implementation and that do not reflect a test failure but rather
6 | * an error that prevented the TCK from performing a test.
7 | *
8 | * @author Emil Ivov
9 | * @version 1.0
10 | */
11 |
12 | public class TiUnexpectedError extends Error
13 | {
14 |
15 | public TiUnexpectedError(String message)
16 | {
17 | super(message);
18 | }
19 |
20 | public TiUnexpectedError(String message, Throwable cause)
21 | {
22 | super(message, cause);
23 | }
24 |
25 | public TiUnexpectedError(Throwable cause)
26 | {
27 | super(cause);
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/src/test/tck/factory/FactoryTestSuite.java:
--------------------------------------------------------------------------------
1 | package test.tck.factory;
2 |
3 | import junit.framework.*;
4 |
5 | /**
6 | * Title: TCK
7 | * Description: JAIN SIP 1.1 Technology Compatibility Kit
8 | * @author Emil Ivov
9 | * Network Research Team, Louis Pasteur University, Strasbourg, France
10 | * This code is in the public domain.
11 | * @version 1.0
12 | */
13 |
14 | public class FactoryTestSuite extends TestSuite {
15 |
16 |
17 | public FactoryTestSuite(String name) {
18 | super(name);
19 | addTestSuite(AddressFactoryTest.class);
20 | addTestSuite(HeaderFactoryTest.class);
21 | addTestSuite(MessageFactoryTest.class);
22 | }
23 |
24 | public static Test suite() {
25 | return new FactoryTestSuite("FactoryTestSuite");
26 | }
27 |
28 | }
29 |
--------------------------------------------------------------------------------
/src/test/tck/factory/MessageFactoryTest.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/test/tck/factory/MessageFactoryTest.java
--------------------------------------------------------------------------------
/src/test/tck/msgflow/callflows/AssertUntil.java:
--------------------------------------------------------------------------------
1 | package test.tck.msgflow.callflows;
2 |
3 | public class AssertUntil {
4 | private static final long POLLING_FREQ = 500;
5 | public static boolean assertUntil(TestAssertion assertion, long millis) throws InterruptedException{
6 | long timeout = 0;
7 | while (timeout < millis) {
8 | if (assertion.assertCondition()) {
9 | return true;
10 | }
11 | Thread.sleep(POLLING_FREQ);
12 | timeout = timeout + POLLING_FREQ;
13 | }
14 | return false;
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/test/tck/msgflow/callflows/TestAssertion.java:
--------------------------------------------------------------------------------
1 | package test.tck.msgflow.callflows;
2 |
3 |
4 | public interface TestAssertion {
5 | boolean assertCondition();
6 | }
7 |
--------------------------------------------------------------------------------
/src/test/tck/msgflow/callflows/forkedinvite/ForkedInviteTest.java:
--------------------------------------------------------------------------------
1 | package test.tck.msgflow.callflows.forkedinvite;
2 |
3 | public class ForkedInviteTest extends AbstractForkedInviteTestCase {
4 | boolean myFlag;
5 |
6 | public void setUp() {
7 | super.testedImplFlag = !myFlag;
8 | myFlag = !super.testedImplFlag;
9 | super.transport = "udp";
10 | super.setUp();
11 | }
12 |
13 | public void testForkedInvite() {
14 | this.shootist.sendInvite();
15 | }
16 |
17 |
18 |
19 | }
20 |
--------------------------------------------------------------------------------
/src/test/tck/msgflow/callflows/prack/TcpPrackTest.java:
--------------------------------------------------------------------------------
1 | package test.tck.msgflow.callflows.prack;
2 |
3 |
4 | public class TcpPrackTest extends UdpPrackTest {
5 | boolean myFlag;
6 |
7 | public void setUp() throws Exception {
8 | super.testedImplFlag = !myFlag;
9 | myFlag = !super.testedImplFlag;
10 | super.transport = "tcp";
11 | super.setUp();
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/src/test/tck/msgflow/callflows/prack/UdpPrackTest.java:
--------------------------------------------------------------------------------
1 | package test.tck.msgflow.callflows.prack;
2 |
3 | import test.tck.msgflow.callflows.prack.AbstractPrackTestCase;
4 |
5 | public class UdpPrackTest extends AbstractPrackTestCase {
6 | boolean myFlag;
7 | public void setUp() throws Exception {
8 | testedImplFlag = !myFlag;
9 | myFlag = !testedImplFlag;
10 | super.transport = "udp";
11 | super.setUp();
12 | }
13 |
14 | public void testPrack() {
15 | this.shootist.sendInvite();
16 |
17 | }
18 |
19 | public void testPrack2() {
20 | this.shootist.sendInvite();
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/test/tck/msgflow/callflows/recroute/TCPRecordRouteTest.java:
--------------------------------------------------------------------------------
1 | package test.tck.msgflow.callflows.recroute;
2 |
3 | public class TCPRecordRouteTest extends AbstractRecRouteTestCase {
4 | boolean myFlag;
5 |
6 | public void setUp() {
7 | super.testedImplFlag = !myFlag;
8 | myFlag = !super.testedImplFlag;
9 | super.transport = "tcp";
10 | super.setUp();
11 | }
12 |
13 | public void testRecordRoute() {
14 | this.shootist.sendInvite();
15 | }
16 |
17 |
18 |
19 | }
20 |
--------------------------------------------------------------------------------
/src/test/tck/msgflow/callflows/recroute/UDPRecordRouteTest.java:
--------------------------------------------------------------------------------
1 | package test.tck.msgflow.callflows.recroute;
2 |
3 | public class UDPRecordRouteTest extends AbstractRecRouteTestCase{
4 | boolean myFlag;
5 |
6 | public void setUp() {
7 | super.testedImplFlag = !myFlag;
8 | myFlag = !super.testedImplFlag;
9 | super.transport = "udp";
10 | super.setUp();
11 | }
12 |
13 | public void testRecordRoute() {
14 | this.shootist.sendInvite();
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/test/tck/msgflow/callflows/redirect/TcpRedirectTest.java:
--------------------------------------------------------------------------------
1 | package test.tck.msgflow.callflows.redirect;
2 |
3 | public class TcpRedirectTest extends AbstractRedirectTestCase {
4 | boolean myFlag;
5 |
6 | public void setUp() {
7 | super.testedImplFlag = !myFlag;
8 | myFlag = !super.testedImplFlag;
9 | super.transport = "tcp";
10 | super.setUp();
11 | }
12 | public void testRedirect() {
13 | this.shootist.sendInvite();
14 |
15 | }
16 |
17 | public void testRedirect2() {
18 | this.shootist.sendInvite();
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/src/test/tck/msgflow/callflows/redirect/UdpRedirectTest.java:
--------------------------------------------------------------------------------
1 | package test.tck.msgflow.callflows.redirect;
2 |
3 | public class UdpRedirectTest extends AbstractRedirectTestCase {
4 | boolean myFlag;
5 | public void setUp() {
6 | testedImplFlag = !myFlag;
7 | myFlag = !testedImplFlag;
8 | super.transport = "udp";
9 | super.setUp();
10 | }
11 | public void testRedirect() {
12 | this.shootist.sendInvite();
13 |
14 | }
15 |
16 | public void testRedirect2() {
17 | this.shootist.sendInvite();
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/src/test/tck/msgflow/callflows/refer/TcpReferTest.java:
--------------------------------------------------------------------------------
1 | package test.tck.msgflow.callflows.refer;
2 |
3 | public class TcpReferTest extends AbstractReferTestCase {
4 | boolean myFlag;
5 |
6 | public void setUp() throws Exception {
7 | // these flags determine
8 | // which SIP Stack (RI vs TI) is
9 | // Shootist and which one is Shootme
10 | // the following setup code flips the roles before each test is run
11 | testedImplFlag = !myFlag;
12 | myFlag = !testedImplFlag;
13 | super.transport = "tcp";
14 | super.setUp();
15 | }
16 | public void testRefer() {
17 | this.referrer.sendRefer();
18 | }
19 |
20 | public void testRefer2() {
21 | this.referrer.sendRefer();
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/test/tck/msgflow/callflows/refer/UdpReferTest.java:
--------------------------------------------------------------------------------
1 | package test.tck.msgflow.callflows.refer;
2 |
3 | public class UdpReferTest extends AbstractReferTestCase {
4 | boolean myFlag;
5 | public void setUp() throws Exception {
6 | // switch tested stack between the two tests
7 | testedImplFlag = !myFlag;
8 | myFlag = !testedImplFlag;
9 | super.transport = "udp";
10 | super.setUp();
11 | }
12 | public void testRefer() {
13 | super.transport = "udp";
14 | this.referrer.sendRefer();
15 | }
16 |
17 | public void testRefer2() {
18 | this.referrer.sendRefer();
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/src/test/tck/msgflow/callflows/router/TcpRouterTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Conditions Of Use
3 | *
4 | * This software was developed by employees of the National Institute of
5 | * Standards and Technology (NIST), and others.
6 | * This software is has been contributed to the public domain.
7 | * As a result, a formal license is not needed to use the software.
8 | *
9 | * This software is provided "AS IS."
10 | * NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED
11 | * OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF
12 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT
13 | * AND DATA ACCURACY. NIST does not warrant or make any representations
14 | * regarding the use of the software or the results thereof, including but
15 | * not limited to the correctness, accuracy, reliability or usefulness of
16 | * the software.
17 | *
18 | *
19 | */
20 | package test.tck.msgflow.callflows.router;
21 |
22 |
23 | public class TcpRouterTest extends UdpRouterTest {
24 | boolean myFlag;
25 |
26 | public void setUp() throws Exception {
27 | super.testedImplFlag = !myFlag;
28 | myFlag = !super.testedImplFlag;
29 | super.transport = "tcp";
30 | super.setUp();
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/src/test/tck/msgflow/callflows/router/UdpRouterTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Conditions Of Use
3 | *
4 | * This software was developed by employees of the National Institute of
5 | * Standards and Technology (NIST), and others.
6 | * This software is has been contributed to the public domain.
7 | * As a result, a formal license is not needed to use the software.
8 | *
9 | * This software is provided "AS IS."
10 | * NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED
11 | * OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF
12 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT
13 | * AND DATA ACCURACY. NIST does not warrant or make any representations
14 | * regarding the use of the software or the results thereof, including but
15 | * not limited to the correctness, accuracy, reliability or usefulness of
16 | * the software.
17 | *
18 | *
19 | */
20 | package test.tck.msgflow.callflows.router;
21 |
22 |
23 | public class UdpRouterTest extends AbstractRouterTestCase {
24 | //boolean myFlag;
25 | public void setUp() throws Exception {
26 | testedImplFlag = false;
27 | super.transport = "udp";
28 | super.setUp();
29 | }
30 |
31 | public void testTelUriInvite() {
32 | this.shootist.sendInvite();
33 |
34 | }
35 |
36 | /*public void testTelUriInvite2() {
37 | this.shootist.sendInvite();
38 | }*/
39 | }
40 |
--------------------------------------------------------------------------------
/src/test/tck/msgflow/callflows/subsnotify/TcpSubsnotifyTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Conditions Of Use
3 | *
4 | * This software was developed by employees of the National Institute of
5 | * Standards and Technology (NIST), and others.
6 | * This software is has been contributed to the public domain.
7 | * As a result, a formal license is not needed to use the software.
8 | *
9 | * This software is provided "AS IS."
10 | * NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED
11 | * OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF
12 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT
13 | * AND DATA ACCURACY. NIST does not warrant or make any representations
14 | * regarding the use of the software or the results thereof, including but
15 | * not limited to the correctness, accuracy, reliability or usefulness of
16 | * the software.
17 | *
18 | *
19 | */
20 | package test.tck.msgflow.callflows.subsnotify;
21 |
22 | /**
23 | * Test case for TCP transport.
24 | *
25 | * @author M. Ranganathan
26 | *
27 | */
28 | public class TcpSubsnotifyTest extends UdpSubsnotifyTest {
29 | boolean myFlag;
30 |
31 | public void setUp() throws Exception {
32 | super.testedImplFlag = !myFlag;
33 | myFlag = !super.testedImplFlag;
34 | super.transport = "tcp";
35 | super.setUp();
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/src/test/tck/msgflow/callflows/tls/testkeys:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/test/tck/msgflow/callflows/tls/testkeys
--------------------------------------------------------------------------------
/src/test/torture/ConfigurationSwitches.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Conditions Of Use
3 | *
4 | * This software was developed by employees of the National Institute of
5 | * Standards and Technology (NIST), and others.
6 | * This software is has been contributed to the public domain.
7 | * As a result, a formal license is not needed to use the software.
8 | *
9 | * This software is provided "AS IS."
10 | * NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED
11 | * OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF
12 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT
13 | * AND DATA ACCURACY. NIST does not warrant or make any representations
14 | * regarding the use of the software or the results thereof, including but
15 | * not limited to the correctness, accuracy, reliability or usefulness of
16 | * the software.
17 | *
18 | *
19 | */
20 | package test.torture;
21 |
22 | interface ConfigurationSwitches {
23 | public final static String OUTPUT_PARSED_STRUCTURE =
24 | "output-parsed-structures";
25 | public final static String DEBUG = "debug";
26 | public final static String TRUE = "true";
27 | public final static String TESTLOG = "testlog";
28 | public final static String ABORT_ON_FAIL = "abort-on-fail";
29 | public final static String TEST_JAIN = "test-jain";
30 | public final static String JAIN_TESTLOG = "jaintestlog";
31 | }
32 |
--------------------------------------------------------------------------------
/src/test/torture/README:
--------------------------------------------------------------------------------
1 | This is a set of torture test cases that will be expanded over time. The input
2 | to these test cases is an xml file called torture.xml.
3 |
4 | The input file (torture.xml) consists of both correct and erroneous
5 | SIP messages, URLs and headers. The erroneous SIP messages are expected
6 | to generate exceptions. The exceptions that they generate result in an
7 | exception handler being called (see Torture.java). The test engine tests
8 | to see whether exceptions were generated as expected and whether the right
9 | information was presented to the handler on exception. The format of
10 | the input xml file is self explanatory (see the comments in torture.xml).
11 |
12 | torture.xml contains the SIPPING torture test cases. The parser passes all
13 | the test cases.
14 |
15 | Thanks to Bruno Konik for entering the sipping torture test cases.
16 |
17 |
--------------------------------------------------------------------------------
/src/test/torture/TokenValues.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Conditions Of Use
3 | *
4 | * This software was developed by employees of the National Institute of
5 | * Standards and Technology (NIST), and others.
6 | * This software is has been contributed to the public domain.
7 | * As a result, a formal license is not needed to use the software.
8 | *
9 | * This software is provided "AS IS."
10 | * NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED
11 | * OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF
12 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT
13 | * AND DATA ACCURACY. NIST does not warrant or make any representations
14 | * regarding the use of the software or the results thereof, including but
15 | * not limited to the correctness, accuracy, reliability or usefulness of
16 | * the software.
17 | *
18 | *
19 | */
20 | package test.torture;
21 | public interface TokenValues {
22 | public final static String EQUALS = "=";
23 | public final static String SLASH = "/";
24 | public final static String LESS_THAN = "<";
25 | public final static String GREATER_THAN = ">";
26 | }
27 |
--------------------------------------------------------------------------------
/src/test/torture/TortureTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Conditions Of Use
3 | *
4 | * This software was developed by employees of the National Institute of
5 | * Standards and Technology (NIST), and others.
6 | * This software is has been contributed to the public domain.
7 | * As a result, a formal license is not needed to use the software.
8 | *
9 | * This software is provided "AS IS."
10 | * NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED
11 | * OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF
12 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT
13 | * AND DATA ACCURACY. NIST does not warrant or make any representations
14 | * regarding the use of the software or the results thereof, including but
15 | * not limited to the correctness, accuracy, reliability or usefulness of
16 | * the software.
17 | *
18 | *
19 | */
20 | package test.torture;
21 |
22 | import junit.framework.TestCase;
23 |
24 | public class TortureTest extends TestCase {
25 |
26 |
27 | public void setUp () {
28 |
29 | }
30 |
31 | public void testParser( ) throws Exception {
32 | Torture torture = new Torture();
33 |
34 | torture.doTests();
35 | if (torture.failureFlag) {
36 | fail(torture.failureReason);
37 | } else {
38 | System.out.println("Torture tests passed!");
39 | }
40 | }
41 |
42 | }
43 |
--------------------------------------------------------------------------------
/src/test/torture/torture.dtd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
12 |
14 |
15 |
16 |
17 |
18 |
19 |
22 |
23 |
--------------------------------------------------------------------------------
/src/test/unit/gov/nist/javax/sip/multipartmime/multipart-body.txt:
--------------------------------------------------------------------------------
1 | --boundary1
2 | Content-Type: application/sdp
3 |
4 | v=0
5 | o=IWSPM 2266426 2266426 IN IP4 10.92.9.164
6 | s=-
7 | c=IN IP4 10.92.9.164
8 | t=0 0
9 | m=audio 31956 RTP/AVP 0 8 18 101
10 | a=ptime:20
11 | a=rtpmap:101 telephone-event/8000
12 | a=fmtp:101 0-15
13 |
14 | --boundary1
15 | Content-Type: application/pidf+xml
16 | Content-ID: alice123@atlanta.example.com
17 |
18 |
19 |
24 |
25 | 2007-07-09T14:00:00Z
26 |
27 |
28 |
29 |
30 |
31 | 33.001111 -96.68142
32 |
33 |
34 |
35 |
36 | no
37 | 2007-07-27T18:00:00Z
38 |
39 | DHCP
40 | www.example.com
41 |
42 |
43 |
44 |
45 | --boundary1--
46 |
--------------------------------------------------------------------------------
/src/test/unit/gov/nist/javax/sip/parser/AcceptEncodingParserTest.java:
--------------------------------------------------------------------------------
1 |
2 | /*
3 | * Conditions Of Use
4 | *
5 | * This software was developed by employees of the National Institute of
6 | * Standards and Technology (NIST), and others.
7 | * This software is has been contributed to the public domain.
8 | * As a result, a formal license is not needed to use the software.
9 | *
10 | * This software is provided "AS IS."
11 | * NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED
12 | * OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF
13 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT
14 | * AND DATA ACCURACY. NIST does not warrant or make any representations
15 | * regarding the use of the software or the results thereof, including but
16 | * not limited to the correctness, accuracy, reliability or usefulness of
17 | * the software.
18 | *
19 | *
20 | */
21 | package test.unit.gov.nist.javax.sip.parser;
22 |
23 | import gov.nist.javax.sip.parser.*;
24 |
25 | public class AcceptEncodingParserTest extends ParserTestCase {
26 |
27 | public void testParser() {
28 | String data[] = { "Accept-Encoding: gzip \n"
29 | };
30 | super.testParser(AcceptEncodingParser.class,data);
31 | }
32 |
33 | }
34 |
35 |
--------------------------------------------------------------------------------
/src/test/unit/gov/nist/javax/sip/parser/AcceptLanguageParserTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Conditions Of Use
3 | *
4 | * This software was developed by employees of the National Institute of
5 | * Standards and Technology (NIST), and others.
6 | * This software is has been contributed to the public domain.
7 | * As a result, a formal license is not needed to use the software.
8 | *
9 | * This software is provided "AS IS."
10 | * NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED
11 | * OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF
12 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT
13 | * AND DATA ACCURACY. NIST does not warrant or make any representations
14 | * regarding the use of the software or the results thereof, including but
15 | * not limited to the correctness, accuracy, reliability or usefulness of
16 | * the software.
17 | *
18 | *
19 | */
20 | package test.unit.gov.nist.javax.sip.parser;
21 |
22 | import gov.nist.javax.sip.parser.*;
23 |
24 | public class AcceptLanguageParserTest extends ParserTestCase {
25 |
26 | public void testParser() {
27 | String data[] = { "Accept-Language: da \n",
28 | "Accept-Language: \n",
29 | "Accept-Language: ,\n",
30 | "Accept-Language: da, en-gb;q=0.8\n",
31 | "Accept-Language: *\n" };
32 | super.testParser(AcceptLanguageParser.class,data);
33 | }
34 |
35 | }
36 |
37 |
--------------------------------------------------------------------------------
/src/test/unit/gov/nist/javax/sip/parser/AcceptParserTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Conditions Of Use
3 | *
4 | * This software was developed by employees of the National Institute of
5 | * Standards and Technology (NIST), and others.
6 | * This software is has been contributed to the public domain.
7 | * As a result, a formal license is not needed to use the software.
8 | *
9 | * This software is provided "AS IS."
10 | * NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED
11 | * OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF
12 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT
13 | * AND DATA ACCURACY. NIST does not warrant or make any representations
14 | * regarding the use of the software or the results thereof, including but
15 | * not limited to the correctness, accuracy, reliability or usefulness of
16 | * the software.
17 | *
18 | *
19 | */
20 | package test.unit.gov.nist.javax.sip.parser;
21 |
22 | import gov.nist.javax.sip.parser.*;
23 |
24 | public class AcceptParserTest extends ParserTestCase {
25 |
26 | public void testParser() {
27 | String data[] = { "Accept: application/sdp \n",
28 | "Accept: application/sdp;level=1 \n"
29 | };
30 | super.testParser(AcceptParser.class,data);
31 | }
32 |
33 | }
34 |
35 |
--------------------------------------------------------------------------------
/src/test/unit/gov/nist/javax/sip/parser/AlertInfoParserTest.java:
--------------------------------------------------------------------------------
1 | package test.unit.gov.nist.javax.sip.parser;
2 |
3 | import gov.nist.javax.sip.parser.AlertInfoParser;
4 |
5 | public class AlertInfoParserTest extends ParserTestCase {
6 |
7 |
8 |
9 | public void testParser() {
10 | String r[] = {
11 | "Alert-Info: ;purpose=icon,"
12 | + " ;purpose=info\n",
13 | "Alert-Info: PolycomSpecialBug;param=blah\n",
14 | "Alert-Info: \n" };
15 | super.testParser(AlertInfoParser.class,r);
16 | }
17 |
18 |
19 |
20 | }
21 |
--------------------------------------------------------------------------------
/src/test/unit/gov/nist/javax/sip/parser/AllowEventsParserTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Conditions Of Use
3 | *
4 | * This software was developed by employees of the National Institute of
5 | * Standards and Technology (NIST), and others.
6 | * This software is has been contributed to the public domain.
7 | * As a result, a formal license is not needed to use the software.
8 | *
9 | * This software is provided "AS IS."
10 | * NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED
11 | * OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF
12 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT
13 | * AND DATA ACCURACY. NIST does not warrant or make any representations
14 | * regarding the use of the software or the results thereof, including but
15 | * not limited to the correctness, accuracy, reliability or usefulness of
16 | * the software.
17 | *
18 | *
19 | */
20 | /*
21 | * Created on Jul 25, 2004
22 | *
23 | *The Open SLEE project
24 | */
25 | package test.unit.gov.nist.javax.sip.parser;
26 |
27 | import gov.nist.javax.sip.parser.*;
28 |
29 | /**
30 | *
31 | */
32 | public class AllowEventsParserTest extends ParserTestCase {
33 |
34 |
35 |
36 | public void testParser() {
37 | String r[] = { "Allow-Events: pack1.pack2, pack3 , pack4\n",
38 | "Allow-Events: pack1\n" /* empty not allowed */ };
39 | super.testParser(AllowEventsParser.class,r);
40 | }
41 |
42 | }
43 |
--------------------------------------------------------------------------------
/src/test/unit/gov/nist/javax/sip/parser/AllowParserTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Conditions Of Use
3 | *
4 | * This software was developed by employees of the National Institute of
5 | * Standards and Technology (NIST), and others.
6 | * This software is has been contributed to the public domain.
7 | * As a result, a formal license is not needed to use the software.
8 | *
9 | * This software is provided "AS IS."
10 | * NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED
11 | * OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF
12 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT
13 | * AND DATA ACCURACY. NIST does not warrant or make any representations
14 | * regarding the use of the software or the results thereof, including but
15 | * not limited to the correctness, accuracy, reliability or usefulness of
16 | * the software.
17 | *
18 | *
19 | */
20 | /*
21 | * Created on Jul 25, 2004
22 | *
23 | *The Open SLEE project
24 | */
25 | package test.unit.gov.nist.javax.sip.parser;
26 | import gov.nist.javax.sip.parser.*;
27 |
28 | /**
29 | *
30 | */
31 | public class AllowParserTest extends ParserTestCase {
32 |
33 |
34 |
35 | public void testParser() {
36 |
37 | String r[] = {
38 | "Allow: INVITE, ACK, OPTIONS, CANCEL, BYE\n",
39 | "Allow: INVITE\n",
40 | "Allow:\n" };
41 | super.testParser(AllowParser.class,r);
42 |
43 | }
44 |
45 | }
46 |
--------------------------------------------------------------------------------
/src/test/unit/gov/nist/javax/sip/parser/CallInfoParserTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Conditions Of Use
3 | *
4 | * This software was developed by employees of the National Institute of
5 | * Standards and Technology (NIST), and others.
6 | * This software is has been contributed to the public domain.
7 | * As a result, a formal license is not needed to use the software.
8 | *
9 | * This software is provided "AS IS."
10 | * NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED
11 | * OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF
12 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT
13 | * AND DATA ACCURACY. NIST does not warrant or make any representations
14 | * regarding the use of the software or the results thereof, including but
15 | * not limited to the correctness, accuracy, reliability or usefulness of
16 | * the software.
17 | *
18 | *
19 | */
20 | /*
21 | * Created on Jul 26, 2004
22 | *
23 | *The Open SLEE project
24 | */
25 | package test.unit.gov.nist.javax.sip.parser;
26 | import gov.nist.javax.sip.parser.*;
27 |
28 |
29 | /**
30 | *
31 | */
32 | public class CallInfoParserTest extends ParserTestCase {
33 |
34 |
35 |
36 | public void testParser() {
37 | String r[] = {
38 | "Call-Info: ;purpose=icon,"
39 | + " ;purpose=info\n",
40 | "Call-Info: \n" };
41 | super.testParser(CallInfoParser.class,r);
42 | }
43 |
44 | }
45 |
--------------------------------------------------------------------------------
/src/test/unit/gov/nist/javax/sip/parser/ContentDispositionParserTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Conditions Of Use
3 | *
4 | * This software was developed by employees of the National Institute of
5 | * Standards and Technology (NIST), and others.
6 | * This software is has been contributed to the public domain.
7 | * As a result, a formal license is not needed to use the software.
8 | *
9 | * This software is provided "AS IS."
10 | * NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED
11 | * OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF
12 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT
13 | * AND DATA ACCURACY. NIST does not warrant or make any representations
14 | * regarding the use of the software or the results thereof, including but
15 | * not limited to the correctness, accuracy, reliability or usefulness of
16 | * the software.
17 | *
18 | *
19 | */
20 | /*
21 | * Created on Jul 27, 2004
22 | *
23 | *The Open SLEE project
24 | */
25 | package test.unit.gov.nist.javax.sip.parser;
26 | import gov.nist.javax.sip.parser.*;
27 |
28 |
29 | /**
30 | *
31 | */
32 | public class ContentDispositionParserTest extends ParserTestCase {
33 | public void testParser() {
34 |
35 | String r[] = {
36 | "Content-Disposition: session\n",
37 | "Content-Disposition: render;handling=hand;optional=opt \n"
38 | };
39 |
40 | super.testParser(ContentDispositionParser.class,r);
41 | }
42 |
43 | }
44 |
--------------------------------------------------------------------------------
/src/test/unit/gov/nist/javax/sip/parser/ContentEncodingParserTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Conditions Of Use
3 | *
4 | * This software was developed by employees of the National Institute of
5 | * Standards and Technology (NIST), and others.
6 | * This software is has been contributed to the public domain.
7 | * As a result, a formal license is not needed to use the software.
8 | *
9 | * This software is provided "AS IS."
10 | * NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED
11 | * OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF
12 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT
13 | * AND DATA ACCURACY. NIST does not warrant or make any representations
14 | * regarding the use of the software or the results thereof, including but
15 | * not limited to the correctness, accuracy, reliability or usefulness of
16 | * the software.
17 | *
18 | *
19 | */
20 | /*
21 | * Created on Jul 27, 2004
22 | *
23 | *The JAIN-SIP project.
24 | */
25 | package test.unit.gov.nist.javax.sip.parser;
26 |
27 | import gov.nist.javax.sip.parser.*;
28 |
29 | /**
30 | *
31 | */
32 | public class ContentEncodingParserTest extends ParserTestCase {
33 |
34 |
35 | public void testParser() {
36 | // TODO Auto-generated method stub
37 |
38 | String r[] = { "Content-Encoding: gzip \n",
39 | "Content-Encoding: gzip, tar \n" };
40 |
41 | super.testParser(ContentEncodingParser.class, r);
42 | }
43 | }
44 |
45 |
--------------------------------------------------------------------------------
/src/test/unit/gov/nist/javax/sip/parser/ContentLanguageParserTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Conditions Of Use
3 | *
4 | * This software was developed by employees of the National Institute of
5 | * Standards and Technology (NIST), and others.
6 | * This software is has been contributed to the public domain.
7 | * As a result, a formal license is not needed to use the software.
8 | *
9 | * This software is provided "AS IS."
10 | * NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED
11 | * OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF
12 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT
13 | * AND DATA ACCURACY. NIST does not warrant or make any representations
14 | * regarding the use of the software or the results thereof, including but
15 | * not limited to the correctness, accuracy, reliability or usefulness of
16 | * the software.
17 | *
18 | *
19 | */
20 | /*
21 | * Created on Jul 27, 2004
22 | *
23 | *The Open SLEE project
24 | */
25 | package test.unit.gov.nist.javax.sip.parser;
26 | import gov.nist.javax.sip.parser.*;
27 |
28 | /**
29 | *
30 | */
31 | public class ContentLanguageParserTest extends ParserTestCase {
32 |
33 | /*
34 | * (non-Javadoc)
35 | *
36 | * @see test.unit.gov.nist.javax.sip.parser.ParserTestCase#testParser()
37 | */
38 | public void testParser() {
39 |
40 | String r[] = { "Content-Language: fr \n",
41 | "Content-Language: fr , he \n" };
42 | super.testParser(ContentLanguageParser.class,r);
43 |
44 | }
45 | }
46 |
47 |
--------------------------------------------------------------------------------
/src/test/unit/gov/nist/javax/sip/parser/ContentLengthParserTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Conditions Of Use
3 | *
4 | * This software was developed by employees of the National Institute of
5 | * Standards and Technology (NIST), and others.
6 | * This software is has been contributed to the public domain.
7 | * As a result, a formal license is not needed to use the software.
8 | *
9 | * This software is provided "AS IS."
10 | * NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED
11 | * OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF
12 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT
13 | * AND DATA ACCURACY. NIST does not warrant or make any representations
14 | * regarding the use of the software or the results thereof, including but
15 | * not limited to the correctness, accuracy, reliability or usefulness of
16 | * the software.
17 | *
18 | *
19 | */
20 | /*
21 | * Created on Jul 27, 2004
22 | *
23 | *The Open SLEE project
24 | */
25 | package test.unit.gov.nist.javax.sip.parser;
26 | import gov.nist.javax.sip.parser.*;
27 |
28 | /**
29 | *
30 | */
31 | public class ContentLengthParserTest extends ParserTestCase {
32 |
33 | public void testParser(){
34 |
35 | String content[] = {
36 | "l: 345\n",
37 | "Content-Length: 3495\n",
38 | "Content-Length: 0 \n"
39 | };
40 |
41 | super.testParser(ContentLengthParser.class,content);
42 |
43 | }
44 |
45 | }
46 |
--------------------------------------------------------------------------------
/src/test/unit/gov/nist/javax/sip/parser/DateParserTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Conditions Of Use
3 | *
4 | * This software was developed by employees of the National Institute of
5 | * Standards and Technology (NIST), and others.
6 | * This software is has been contributed to the public domain.
7 | * As a result, a formal license is not needed to use the software.
8 | *
9 | * This software is provided "AS IS."
10 | * NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED
11 | * OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF
12 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT
13 | * AND DATA ACCURACY. NIST does not warrant or make any representations
14 | * regarding the use of the software or the results thereof, including but
15 | * not limited to the correctness, accuracy, reliability or usefulness of
16 | * the software.
17 | *
18 | *
19 | */
20 | /*
21 | * Created on Jul 28, 2004
22 | *
23 | *The Open SLEE project
24 | */
25 | package test.unit.gov.nist.javax.sip.parser;
26 | import gov.nist.javax.sip.parser.*;
27 |
28 |
29 | public class DateParserTest extends ParserTestCase {
30 |
31 |
32 | public void testParser() {
33 |
34 |
35 | String date[] = {
36 | "Date: Sun, 07 Jan 2001 19:05:06 GMT\n",
37 | "Date: Mon, 08 Jan 2001 19:05:06 GMT\n" };
38 |
39 | super.testParser(DateParser.class,date);
40 |
41 |
42 | }
43 |
44 | }
45 |
--------------------------------------------------------------------------------
/src/test/unit/gov/nist/javax/sip/parser/ErrorInfoParserTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Conditions Of Use
3 | *
4 | * This software was developed by employees of the National Institute of
5 | * Standards and Technology (NIST), and others.
6 | * This software is has been contributed to the public domain.
7 | * As a result, a formal license is not needed to use the software.
8 | *
9 | * This software is provided "AS IS."
10 | * NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED
11 | * OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF
12 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT
13 | * AND DATA ACCURACY. NIST does not warrant or make any representations
14 | * regarding the use of the software or the results thereof, including but
15 | * not limited to the correctness, accuracy, reliability or usefulness of
16 | * the software.
17 | *
18 | *
19 | */
20 | /*
21 | * Created on Jul 28, 2004
22 | *
23 | *The Open SIP project
24 | */
25 | package test.unit.gov.nist.javax.sip.parser;
26 |
27 | import gov.nist.javax.sip.parser.*;
28 |
29 |
30 | public class ErrorInfoParserTest extends ParserTestCase {
31 |
32 |
33 | public void testParser() {
34 | String r[] = {
35 | "Error-Info: \n",
36 | "Error-Info: \n" };
37 | super.testParser(ErrorInfoParser.class,r);
38 |
39 | }
40 |
41 | }
42 |
--------------------------------------------------------------------------------
/src/test/unit/gov/nist/javax/sip/parser/ExpiresParserTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Conditions Of Use
3 | *
4 | * This software was developed by employees of the National Institute of
5 | * Standards and Technology (NIST), and others.
6 | * This software is has been contributed to the public domain.
7 | * As a result, a formal license is not needed to use the software.
8 | *
9 | * This software is provided "AS IS."
10 | * NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED
11 | * OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF
12 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT
13 | * AND DATA ACCURACY. NIST does not warrant or make any representations
14 | * regarding the use of the software or the results thereof, including but
15 | * not limited to the correctness, accuracy, reliability or usefulness of
16 | * the software.
17 | *
18 | *
19 | */
20 | /*
21 | * Created on Jul 29, 2004
22 | *
23 | *The JAIN-SIP project
24 | */
25 | package test.unit.gov.nist.javax.sip.parser;
26 | import gov.nist.javax.sip.parser.*;
27 |
28 | /**
29 | *
30 | */
31 | public class ExpiresParserTest extends ParserTestCase {
32 |
33 | /* (non-Javadoc)
34 | * @see test.unit.gov.nist.javax.sip.parser.ParserTestCase#testParser()
35 | */
36 | public void testParser() {
37 |
38 | String expires[] = {
39 | "Expires: 1000\n" };
40 |
41 | super.testParser(ExpiresParser.class,expires);
42 |
43 | }
44 |
45 | }
46 |
47 |
--------------------------------------------------------------------------------
/src/test/unit/gov/nist/javax/sip/parser/HostNameParserTest.java:
--------------------------------------------------------------------------------
1 | package test.unit.gov.nist.javax.sip.parser;
2 |
3 | import gov.nist.core.HostNameParser;
4 | import gov.nist.core.HostPort;
5 |
6 | import java.text.ParseException;
7 |
8 | import junit.framework.TestCase;
9 |
10 | /**
11 | * @author sli
12 | *
13 | */
14 | public class HostNameParserTest extends TestCase {
15 |
16 | private final static String validHostNames[] = { "foo.bar.com:1234",
17 | "proxima.chaplin.bt.co.uk", "129.6.55.181:2345",
18 | "foo.bar.com: 1234", "foo.bar.com : 1234 ",
19 | // "[3ffe:33:0:0:202:2dff:fe32:c31c%4]",
20 | // "[3ffe:33:0:0:202:2dff:fe32:c31c%4:1234]"
21 | };
22 |
23 | private final static String invalidHostNames[] = { ":1234", };
24 |
25 | public void testHostNameParser() {
26 | for (int i = 0; i < validHostNames.length; i++) {
27 | try {
28 | String hostName = validHostNames[i];
29 | System.out.println("hostName=" + hostName);
30 | HostNameParser hnp = new HostNameParser(hostName);
31 | HostPort hp = hnp.hostPort(true);
32 | System.out.println("[" + hp.encode() + "]");
33 | } catch (ParseException ex) {
34 | fail(ex.getMessage());
35 | }
36 | }
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/src/test/unit/gov/nist/javax/sip/parser/MimeVersionParserTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Conditions Of Use
3 | *
4 | * This software was developed by employees of the National Institute of
5 | * Standards and Technology (NIST), and others.
6 | * This software is has been contributed to the public domain.
7 | * As a result, a formal license is not needed to use the software.
8 | *
9 | * This software is provided "AS IS."
10 | * NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED
11 | * OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF
12 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT
13 | * AND DATA ACCURACY. NIST does not warrant or make any representations
14 | * regarding the use of the software or the results thereof, including but
15 | * not limited to the correctness, accuracy, reliability or usefulness of
16 | * the software.
17 | *
18 | *
19 | */
20 | /*
21 | * Created on Jul 31, 2004
22 | *
23 | *The Open SIP project
24 | */
25 | package test.unit.gov.nist.javax.sip.parser;
26 |
27 | import gov.nist.javax.sip.parser.MimeVersionParser;
28 |
29 | /**
30 | *
31 | */
32 | public class MimeVersionParserTest extends ParserTestCase {
33 |
34 | /* (non-Javadoc)
35 | * @see test.unit.gov.nist.javax.sip.parser.ParserTestCase#testParser()
36 | */
37 | public void testParser() {
38 |
39 | String r[] = {
40 | "MIME-Version: 1.0 \n",
41 | "Mime-version: 2.5 \n"
42 | };
43 |
44 | super.testParser(MimeVersionParser.class,r);
45 |
46 | }
47 |
48 | }
49 |
--------------------------------------------------------------------------------
/src/test/unit/gov/nist/javax/sip/parser/MinExpiresParserTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Conditions Of Use
3 | *
4 | * This software was developed by employees of the National Institute of
5 | * Standards and Technology (NIST), and others.
6 | * This software is has been contributed to the public domain.
7 | * As a result, a formal license is not needed to use the software.
8 | *
9 | * This software is provided "AS IS."
10 | * NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED
11 | * OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF
12 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT
13 | * AND DATA ACCURACY. NIST does not warrant or make any representations
14 | * regarding the use of the software or the results thereof, including but
15 | * not limited to the correctness, accuracy, reliability or usefulness of
16 | * the software.
17 | *
18 | *
19 | */
20 | /*
21 | * Created on Jul 31, 2004
22 | *
23 | *The Open SIP project
24 | */
25 | package test.unit.gov.nist.javax.sip.parser;
26 |
27 | import gov.nist.javax.sip.parser.MinExpiresParser;
28 |
29 | /**
30 | *
31 | */
32 | public class MinExpiresParserTest extends ParserTestCase {
33 |
34 | /* (non-Javadoc)
35 | * @see test.unit.gov.nist.javax.sip.parser.ParserTestCase#testParser()
36 | */
37 | public void testParser() {
38 |
39 | String r[] = {
40 | "Min-Expires: 60 \n",
41 | "MIN-EXpIrEs: 90 \n"
42 | };
43 |
44 | super.testParser(MinExpiresParser.class,r);
45 |
46 | }
47 |
48 | }
49 |
--------------------------------------------------------------------------------
/src/test/unit/gov/nist/javax/sip/parser/OrganizationParserTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Conditions Of Use
3 | *
4 | * This software was developed by employees of the National Institute of
5 | * Standards and Technology (NIST), and others.
6 | * This software is has been contributed to the public domain.
7 | * As a result, a formal license is not needed to use the software.
8 | *
9 | * This software is provided "AS IS."
10 | * NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED
11 | * OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF
12 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT
13 | * AND DATA ACCURACY. NIST does not warrant or make any representations
14 | * regarding the use of the software or the results thereof, including but
15 | * not limited to the correctness, accuracy, reliability or usefulness of
16 | * the software.
17 | *
18 | *
19 | */
20 | /*
21 | * Created on Aug 10, 2004
22 | *
23 | *The Open SIP project
24 | */
25 | package test.unit.gov.nist.javax.sip.parser;
26 |
27 | import gov.nist.javax.sip.parser.OrganizationParser;
28 |
29 | /**
30 | *
31 | */
32 | public class OrganizationParserTest extends ParserTestCase {
33 | String o[] = {
34 | "Organization: Boxes by Bob\n"
35 | };
36 | /* (non-Javadoc)
37 | * @see test.unit.gov.nist.javax.sip.parser.ParserTestCase#testParser()
38 | */
39 | public void testParser() {
40 |
41 | super.testParser(OrganizationParser.class,o);
42 |
43 |
44 | }
45 |
46 | }
47 |
--------------------------------------------------------------------------------
/src/test/unit/gov/nist/javax/sip/parser/RecordRouteParserTest.java:
--------------------------------------------------------------------------------
1 | package test.unit.gov.nist.javax.sip.parser;
2 |
3 | import gov.nist.javax.sip.parser.RecordRouteParser;
4 | import gov.nist.javax.sip.parser.RouteParser;
5 |
6 | public class RecordRouteParserTest extends ParserTestCase {
7 |
8 | public void testParser() {
9 | // TODO Auto-generated method stub
10 | String rou[] = {
11 | "Record-Route: ,"+
12 | "\n",
13 |
14 | "Record-Route: \n",
15 |
16 | "Record-Route: \n",
18 |
19 | "Record-Route: ,"+
20 | "\n" ,
21 | "Record-Route: \n"
22 | };
23 |
24 |
25 | super.testParser(RecordRouteParser.class,rou);
26 | }
27 |
28 | }
29 |
30 |
--------------------------------------------------------------------------------
/src/test/unit/gov/nist/javax/sip/parser/RetryAfterParserTest.java:
--------------------------------------------------------------------------------
1 | package test.unit.gov.nist.javax.sip.parser;
2 |
3 | import gov.nist.javax.sip.header.RetryAfter;
4 | import gov.nist.javax.sip.parser.RetryAfterParser;
5 |
6 |
7 |
8 | public class RetryAfterParserTest extends ParserTestCase {
9 |
10 | @Override
11 | public void testParser() {
12 | // TODO Auto-generated method stub
13 | String rr[] = {
14 | "Retry-After: 18000;duration=3600\n",
15 | "Retry-After: 120;duration=3600;ra=oli\n",
16 | "Retry-After: 1220 (I'm in a meeting)\n",
17 | "Retry-After: 1230 (I'm in a meeting);fg=der;duration=23\n"
18 | };
19 |
20 | super.testParser(RetryAfterParser.class, rr);
21 | try {
22 | RetryAfter retryAfter = new RetryAfter();
23 | retryAfter.setRetryAfter(100);
24 | retryAfter.setDuration(10);
25 | retryAfter.setComment("foo");
26 | System.out.println(new RetryAfterParser(retryAfter.encode()).parse().toString());
27 | assertTrue( retryAfter.equals(new RetryAfterParser(retryAfter.encode()).parse()));
28 | } catch (Exception ex) {
29 | fail("Could not parse encoded header");
30 | }
31 |
32 | }
33 |
34 | }
35 |
--------------------------------------------------------------------------------
/src/test/unit/gov/nist/javax/sip/parser/SupportedParserTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Conditions Of Use
3 | *
4 | * This software was developed by employees of the National Institute of
5 | * Standards and Technology (NIST), and others.
6 | * This software is has been contributed to the public domain.
7 | * As a result, a formal license is not needed to use the software.
8 | *
9 | * This software is provided "AS IS."
10 | * NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED
11 | * OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF
12 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT
13 | * AND DATA ACCURACY. NIST does not warrant or make any representations
14 | * regarding the use of the software or the results thereof, including but
15 | * not limited to the correctness, accuracy, reliability or usefulness of
16 | * the software.
17 | *
18 | *
19 | */
20 | /*
21 | * Created on Jul 31, 2004
22 | *
23 | *The JAIN-SIP Project
24 | */
25 | package test.unit.gov.nist.javax.sip.parser;
26 |
27 | import gov.nist.javax.sip.parser.SupportedParser;
28 |
29 | /**
30 | *
31 | */
32 | public class SupportedParserTest extends ParserTestCase {
33 |
34 | /* (non-Javadoc)
35 | * @see test.unit.gov.nist.javax.sip.parser.ParserTestCase#testParser()
36 | */
37 | public void testParser() {
38 |
39 | String content[] = {
40 | "Supported: 100rel\n",
41 | "Supported:\n",
42 | "k:sessiontimer \n"
43 | };
44 |
45 | super.testParser(SupportedParser.class,content);
46 |
47 | }
48 |
49 | }
50 |
--------------------------------------------------------------------------------
/src/test/unit/gov/nist/javax/sip/parser/TimeStampParserTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Conditions Of Use
3 | *
4 | * This software was developed by employees of the National Institute of
5 | * Standards and Technology (NIST), and others.
6 | * This software is has been contributed to the public domain.
7 | * As a result, a formal license is not needed to use the software.
8 | *
9 | * This software is provided "AS IS."
10 | * NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED
11 | * OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF
12 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT
13 | * AND DATA ACCURACY. NIST does not warrant or make any representations
14 | * regarding the use of the software or the results thereof, including but
15 | * not limited to the correctness, accuracy, reliability or usefulness of
16 | * the software.
17 | *
18 | *
19 | */
20 | package test.unit.gov.nist.javax.sip.parser;
21 |
22 | import gov.nist.javax.sip.parser.TimeStampParser;
23 | import test.unit.gov.nist.javax.sip.parser.ParserTestCase;
24 | public class TimeStampParserTest extends ParserTestCase {
25 |
26 | public void testParser() {
27 | // TODO Auto-generated method stub
28 | String timeStamp[] = {
29 | "Timestamp: 54 \n",
30 | "Timestamp: 52.34 34.5 \n"
31 | };
32 | super.testParser(TimeStampParser.class, timeStamp);
33 |
34 |
35 | }
36 |
37 | }
38 |
--------------------------------------------------------------------------------
/src/test/unit/gov/nist/javax/sip/parser/extensions/JoinParserTest.java:
--------------------------------------------------------------------------------
1 | package test.unit.gov.nist.javax.sip.parser.extensions;
2 |
3 | import gov.nist.javax.sip.parser.extensions.JoinParser;
4 | import test.unit.gov.nist.javax.sip.parser.ParserTestCase;
5 |
6 | public class JoinParserTest extends ParserTestCase {
7 |
8 | public void testParser() {
9 | String to[] =
10 | { "Join: 12345th5z8z\n",
11 | "Join: 12345th5z8z;to-tag=tozght6-45;from-tag=fromzght789-337-2\n",
12 | };
13 |
14 | super.testParser(JoinParser.class,to);
15 |
16 |
17 | }
18 |
19 | }
20 |
--------------------------------------------------------------------------------
/src/test/unit/gov/nist/javax/sip/parser/extensions/MinSEParserTest.java:
--------------------------------------------------------------------------------
1 | package test.unit.gov.nist.javax.sip.parser.extensions;
2 |
3 |
4 | import gov.nist.javax.sip.parser.extensions.MinSEParser;
5 | import test.unit.gov.nist.javax.sip.parser.*;
6 |
7 | public class MinSEParserTest extends ParserTestCase {
8 |
9 | public void testParser() {
10 |
11 | String to[] =
12 | { "Min-SE: 30\n",
13 | "Min-SE: 45;some-param=somevalue\n",
14 | };
15 |
16 | super.testParser(MinSEParser.class,to);
17 |
18 | }
19 |
20 | }
21 |
--------------------------------------------------------------------------------
/src/test/unit/gov/nist/javax/sip/parser/extensions/ReferencesParserTest.java:
--------------------------------------------------------------------------------
1 | package test.unit.gov.nist.javax.sip.parser.extensions;
2 |
3 | import gov.nist.javax.sip.parser.extensions.ReferencesParser;
4 | import test.unit.gov.nist.javax.sip.parser.ParserTestCase;
5 |
6 | public class ReferencesParserTest extends ParserTestCase {
7 |
8 | @Override
9 | public void testParser() {
10 | // TODO Auto-generated method stub
11 | String to[] =
12 | { "References: LAXMGC0120100111203033001119@209.244.63.13.0\n",
13 | "References: 12345th5z8z;rel=chain;branch=z9hG4bK-XX-087cVNEsVKSG9mZd5CU399jNoQ\n",
14 | "References: 12345th5z8z;rel=chain;branch=z9hG4bK-XX-087cVNEsVKSG9mZd5CU399jNoQ;method=INVITE\n",
15 |
16 | };
17 |
18 | super.testParser(ReferencesParser.class,to);
19 | }
20 |
21 | }
22 |
--------------------------------------------------------------------------------
/src/test/unit/gov/nist/javax/sip/parser/extensions/ReferredByParserTest.java:
--------------------------------------------------------------------------------
1 | package test.unit.gov.nist.javax.sip.parser.extensions;
2 |
3 | import test.unit.gov.nist.javax.sip.parser.ParserTestCase;
4 | import gov.nist.javax.sip.parser.extensions.ReferredByParser;
5 |
6 | public class ReferredByParserTest extends ParserTestCase {
7 |
8 | public void testParser() {
9 |
10 | String to[] =
11 | { "Referred-By: \n",
13 | "Referred-By: ;tag=5617\n",
14 | "Referred-By: T. A. Watson \n",
15 | "Referred-By: LittleGuy \n",
16 | "Referred-By: sip:mranga@120.6.55.9\n",
17 | "Referred-By: sip:mranga@129.6.55.9 ; tag=696928473514.129.6.55.9\n" };
18 |
19 |
20 | super.testParser(ReferredByParser.class,to);
21 | }
22 |
23 | }
24 |
--------------------------------------------------------------------------------
/src/test/unit/gov/nist/javax/sip/parser/extensions/ReplacesParserTest.java:
--------------------------------------------------------------------------------
1 | package test.unit.gov.nist.javax.sip.parser.extensions;
2 |
3 | import test.unit.gov.nist.javax.sip.parser.ParserTestCase;
4 | import gov.nist.javax.sip.parser.extensions.ReplacesParser;
5 |
6 | public class ReplacesParserTest extends ParserTestCase {
7 |
8 | public void testParser() {
9 | String to[] =
10 | { "Replaces: 12345th5z8z\n",
11 | "Replaces: 12345th5z8z;to-tag=tozght6-45;from-tag=fromzght789-337-2\n",
12 | };
13 |
14 | super.testParser(ReplacesParser.class,to);
15 |
16 |
17 | }
18 |
19 | }
20 |
--------------------------------------------------------------------------------
/src/test/unit/gov/nist/javax/sip/parser/extensions/SessionExpiresParserTest.java:
--------------------------------------------------------------------------------
1 | package test.unit.gov.nist.javax.sip.parser.extensions;
2 |
3 | import test.unit.gov.nist.javax.sip.parser.ParserTestCase;
4 | import gov.nist.javax.sip.parser.extensions.SessionExpiresParser;
5 |
6 | public class SessionExpiresParserTest extends ParserTestCase {
7 |
8 | public void testParser() {
9 | String to[] =
10 | { "Session-Expires: 30\n",
11 | "Session-Expires: 45;refresher=uac\n",
12 | };
13 | super.testParser(SessionExpiresParser.class,to);
14 |
15 |
16 | }
17 |
18 | }
19 |
--------------------------------------------------------------------------------
/src/test/unit/gov/nist/javax/sip/parser/ims/PChargingVectorParserTest.java:
--------------------------------------------------------------------------------
1 | package test.unit.gov.nist.javax.sip.parser.ims;
2 |
3 | import gov.nist.javax.sip.parser.HeaderParser;
4 | import gov.nist.javax.sip.parser.ims.PChargingVectorParser;
5 | import test.unit.gov.nist.javax.sip.parser.ParserTestCase;
6 |
7 | public class PChargingVectorParserTest extends ParserTestCase {
8 |
9 | public void testParser() {
10 | String[] preferredID = {
11 | "P-Charging-Vector: icid-value=value1;orig-ioi=value2;icid-generated-at=value3\n",
12 |
13 | "P-Charging-Vector: icid-value=[2a02:ed0:1000:3033::249];orig-ioi=1223abc4;icid-generated-at=[2a02:ed0:1000:3033::250]\n",
14 |
15 | "P-Charging-Vector: icid-value=[2a02:ed0:1000:3033::249];orig-ioi=1223abc4;icid-generated-at=[2a02:ed0:1000:3033::250]"
16 |
17 | };
18 |
19 | super.testParser(PChargingVectorParser.class, preferredID);
20 | }
21 |
22 | public void testInvalidHeaderParam() {
23 |
24 | String preferredID = "P-Charging-Vector: icid-value=[2a02:ed0:1000:3033::249k];orig-ioi=1223abc4;icid-generated-at=[2a02:ed0:1000:3033::249]\n";
25 |
26 | try {
27 | HeaderParser hp = createParser(PChargingVectorParser.class, preferredID);
28 | hp.parse();
29 | fail("Header:"+ preferredID + "Invalid IPv6 parsing expected to fail");
30 |
31 | } catch (java.text.ParseException ex) {}
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/src/test/unit/gov/nist/javax/sip/stack/NonRfc3261ForkedInviteTest.java:
--------------------------------------------------------------------------------
1 | package test.unit.gov.nist.javax.sip.stack;
2 |
3 | import test.tck.msgflow.callflows.forkedinvite.AbstractForkedInviteTestCase;
4 | import junit.framework.TestCase;
5 |
6 | public class NonRfc3261ForkedInviteTest extends AbstractForkedInviteTestCase {
7 |
8 | boolean myFlag;
9 |
10 | public void setUp() {
11 | super.testedImplFlag = !myFlag;
12 | myFlag = !super.testedImplFlag;
13 | super.transport = "udp";
14 | super.setUp();
15 | }
16 | /**
17 | * Test forking in combination with one non-RFC3261 UAS
18 | */
19 | public void testForkedInviteNonRFC3261() {
20 | shootme.setNonRFC3261( true );
21 | this.shootist.sendInvite();
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/test/unit/gov/nist/javax/sip/stack/WebsocketHttpHandshakeTest.java:
--------------------------------------------------------------------------------
1 | package test.unit.gov.nist.javax.sip.stack;
2 |
3 | import gov.nist.javax.sip.stack.WebSocketHttpHandshake;
4 | import junit.framework.TestCase;
5 | /**
6 | *
7 | */
8 | public class WebsocketHttpHandshakeTest extends TestCase {
9 |
10 | public void testRegularDigest() throws Exception {
11 |
12 | String secWebSocketKey = "dGhlIHNhbXBsZSBub25jZQ==";
13 | String computed = WebSocketHttpHandshake.computeRev13Response(secWebSocketKey);
14 | assertEquals("s3pPLMBiTxaQ9kYGzzhZRbK+xOo=", computed);
15 |
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/src/test/unit/gov/nist/javax/sip/stack/acktransport/package.html:
--------------------------------------------------------------------------------
1 |
2 | Tests the following scenarios:
3 |
4 | Scenario 1
5 |
6 | - UAC has only TCP listening point.
7 |
- INVITE is sent by UAC to UAS via proxy that record routes the INVITE but does not set transport on RR.
8 |
- UAS sets contact header of UDP.
9 |
10 |
--------------------------------------------------------------------------------
/src/test/unit/gov/nist/javax/sip/stack/dialog/b2bua/reinvite/Operation.java:
--------------------------------------------------------------------------------
1 | package test.unit.gov.nist.javax.sip.stack.dialog.b2bua.reinvite;
2 |
3 | public enum Operation {
4 | FORWARD_INVITE,FORWARD_BYE,SEND_RE_INVITE;
5 |
6 | }
7 |
--------------------------------------------------------------------------------
/src/test/unit/gov/nist/javax/sip/stack/forkedinvite482/ForkedInviteTest.java:
--------------------------------------------------------------------------------
1 | package test.unit.gov.nist.javax.sip.stack.forkedinvite482;
2 |
3 | public class ForkedInviteTest extends AbstractForkedInviteTestCase {
4 | boolean myFlag;
5 |
6 | public void setUp() {
7 | super.testedImplFlag = !myFlag;
8 | myFlag = !super.testedImplFlag;
9 | super.transport = "udp";
10 | super.setUp();
11 | }
12 |
13 | public void testForkedInvite() {
14 | this.shootist.sendInvite();
15 | }
16 |
17 |
18 |
19 |
20 | }
21 |
--------------------------------------------------------------------------------
/src/test/unit/gov/nist/javax/sip/stack/forkedinvitedialogtimeout/package.html:
--------------------------------------------------------------------------------
1 |
2 | Tests for whether the DialogTimedOutEvent is delivered to the application under the following scenarios:
3 |
4 | Scenario 1
5 |
6 | INVITE is sent by UAC and forked through a forking proxy to a pair of UAS.
7 | One UAS returns OK. The UAC ACKs the OK and sends BYE.
8 | Another UAS returns OK. The UAC does not ACK the OK.
9 |
10 |
11 | Scenario 2
12 |
13 | - Inivte sent by UAC through forking proxy to two target UAS
14 | - One UAS returns RINGING and then OK
15 | - Another returns RINGING but no OK
16 |
17 |
--------------------------------------------------------------------------------
/src/test/unit/gov/nist/javax/sip/stack/reinvitechallenge/AccountManagerImpl.java:
--------------------------------------------------------------------------------
1 | package test.unit.gov.nist.javax.sip.stack.reinvitechallenge;
2 |
3 | import javax.sip.ClientTransaction;
4 |
5 |
6 |
7 | import gov.nist.javax.sip.clientauthutils.AccountManager;
8 | import gov.nist.javax.sip.clientauthutils.UserCredentials;
9 |
10 | public class AccountManagerImpl implements AccountManager {
11 |
12 |
13 | public UserCredentials getCredentials(
14 | ClientTransaction challengedTransaction, String realm) {
15 | return new UserCredentialsImpl();
16 | }
17 |
18 | }
19 |
--------------------------------------------------------------------------------
/src/test/unit/gov/nist/javax/sip/stack/reinvitechallenge/UserCredentialsImpl.java:
--------------------------------------------------------------------------------
1 | package test.unit.gov.nist.javax.sip.stack.reinvitechallenge;
2 |
3 | import gov.nist.javax.sip.clientauthutils.UserCredentials;
4 |
5 | public class UserCredentialsImpl implements UserCredentials {
6 |
7 | public String getPassword() {
8 | return "password";
9 | }
10 |
11 |
12 | public String getSipDomain() {
13 | return "127.0.0.1";
14 | }
15 |
16 |
17 | public String getUserName() {
18 | return "user";
19 | }
20 |
21 | }
22 |
--------------------------------------------------------------------------------
/src/test/unit/gov/nist/javax/sip/stack/subsnotify/SubscriberTimeoutAggressiveTest.java:
--------------------------------------------------------------------------------
1 | package test.unit.gov.nist.javax.sip.stack.subsnotify;
2 |
3 | import junit.framework.TestCase;
4 |
5 | public class SubscriberTimeoutAggressiveTest extends TestCase {
6 | Subscriber subscriber;
7 | Notifier notifier;
8 |
9 |
10 | public void setUp() throws Exception {
11 | subscriber = Subscriber.createSubcriber();
12 | notifier = Notifier.createNotifier();
13 | subscriber.setNotifierPort(notifier.getPort());
14 | notifier.setSubscriberPort(subscriber.getPort());
15 | }
16 |
17 |
18 | public void testSendSubscribe() {
19 | notifier.setHandleSubscribe(false);
20 | subscriber.sendSubscribe();
21 |
22 | }
23 |
24 | public void tearDown() throws Exception {
25 | Thread.sleep(50000);
26 | subscriber.tearDown();
27 | notifier.tearDown();
28 | }
29 |
30 | }
31 |
--------------------------------------------------------------------------------
/src/test/unit/gov/nist/javax/sip/stack/tls/MyRouter.java:
--------------------------------------------------------------------------------
1 | package test.unit.gov.nist.javax.sip.stack.tls;
2 | import javax.sip.*;
3 | import javax.sip.address.*;
4 | import javax.sip.message.*;
5 |
6 | import java.util.*;
7 |
8 | public class MyRouter implements Router {
9 | protected SipStack myStack;
10 | protected HopImpl defaultRoute;
11 |
12 | public MyRouter(SipStack sipStack, String nextHop) {
13 |
14 | this.myStack = sipStack;
15 | this.defaultRoute = new HopImpl(nextHop);
16 | }
17 |
18 | /** Always send requests to the default route location.
19 | */
20 | public ListIterator getNextHops(Request sipRequest) {
21 | LinkedList ll = null;
22 | if (defaultRoute != null) {
23 | if (ll == null)
24 | ll = new LinkedList();
25 | ll.add(defaultRoute);
26 | return ll.listIterator();
27 | } else
28 | return null;
29 | }
30 |
31 | public Hop getOutboundProxy() {
32 | return this.defaultRoute;
33 | }
34 |
35 | public Hop getNextHop(Request request) throws SipException {
36 | return this.defaultRoute;
37 | }
38 |
39 | }
40 |
--------------------------------------------------------------------------------
/src/test/unit/gov/nist/javax/sip/stack/tls/fookeys:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/test/unit/gov/nist/javax/sip/stack/tls/fookeys
--------------------------------------------------------------------------------
/src/test/unit/gov/nist/javax/sip/stack/tls/nopasaran.java:
--------------------------------------------------------------------------------
1 | package test.unit.gov.nist.javax.sip.stack.tls;
2 |
3 | import java.net.Socket;
4 |
5 | /**
6 | * To test http://java.net/jira/browse/JSIP-415
7 | * Run Shootme, run this class do a thread dump to make sure there is no thread leaks
8 | */
9 | public class nopasaran {
10 |
11 | public static void main(String args[]) throws Exception {
12 | Socket s = new Socket("127.0.0.1", 5071);
13 | s.getInputStream();
14 | System.out.println("you shall not pass! :)");
15 | Thread.sleep(99999999);
16 | }
17 | }
--------------------------------------------------------------------------------
/src/test/unit/gov/nist/javax/sip/stack/tls/testKeyStore:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/test/unit/gov/nist/javax/sip/stack/tls/testKeyStore
--------------------------------------------------------------------------------
/src/test/unit/gov/nist/javax/sip/stack/tls/testkeys:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/test/unit/gov/nist/javax/sip/stack/tls/testkeys
--------------------------------------------------------------------------------
/src/tools/sniffer/SniffMessageList.java:
--------------------------------------------------------------------------------
1 | package tools.sniffer;
2 |
3 | import java.util.*;
4 |
5 | /**
6 | *A list of Sniff messages. Each one corresponds to a call Id.
7 | * Acknowledgement:
8 | * This code was contributed by Tim Bardzil .
9 | * This code was completed as part of a class project in TLEN 5843
10 | * Singaling Protocols, taught by Professor Douglas C. Sicker, Ph.D. at
11 | * the University of Colorado, Boulder.
12 | * Minor modifications to the code were made by M. Ranganathan .
13 | *
14 | *@author Tim Bardzil
15 | */
16 | public class SniffMessageList extends ArrayList {
17 | protected static String fileName;
18 |
19 | public String getCallID() {
20 | SniffMessage temp = (SniffMessage) super.get(0);
21 | return temp.getCallID();
22 | }
23 |
24 | public String toXML() {
25 |
26 | String xmlMessages = new String();
27 | ListIterator i = super.listIterator();
28 | while (i.hasNext()) {
29 | xmlMessages += ((SniffMessage) i.next()).toXML();
30 | }
31 |
32 | return xmlMessages;
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/src/tools/tracesviewer/LogComparator.java:
--------------------------------------------------------------------------------
1 | /*******************************************************************************
2 | * Product of NIST/ITL Advanced Networking Technologies Division (ANTD). *
3 | *******************************************************************************/
4 | package tools.tracesviewer;
5 |
6 | import java.util.Comparator;
7 |
8 | /** A class that is used for comparing log records.
9 | *
10 | *@version 1.2
11 | *
12 | *@author M. Ranganathan
13 | *
14 | *
15 | *
16 | */
17 |
18 | class LogComparator implements Comparator {
19 | public int compare(Object obj1, Object obj2) {
20 | try {
21 | TracesMessage m1 = (TracesMessage) obj1;
22 | TracesMessage m2 = (TracesMessage) obj2;
23 | long ts1 = Long.parseLong(m1.getTime());
24 | long ts2 = Long.parseLong(m2.getTime());
25 | if ( m1.hashCode() == m2.hashCode()) {
26 | return 0;
27 | } else if (ts1 < ts2)
28 | return -1;
29 | else if (ts1 > ts2)
30 | return 1;
31 | else {
32 | // Bug fix contributed by Pierre Sandstr�m
33 | return m1 != m2 ? 1: 0;
34 | }
35 | } catch (NumberFormatException ex) {
36 | ex.printStackTrace();
37 | System.exit(2);
38 | return 0;
39 | }
40 | }
41 |
42 | public boolean equals(Object obj2) {
43 | return super.equals(obj2);
44 |
45 | }
46 |
47 | }
48 |
--------------------------------------------------------------------------------
/src/tools/tracesviewer/PercentLayoutConstraint.java:
--------------------------------------------------------------------------------
1 | package tools.tracesviewer;
2 |
3 | public class PercentLayoutConstraint {
4 | /**
5 | * Creates a Constraint Object.
6 | * @param x The X position of the top left corner of the component (0-100)
7 | * @param y The Y position of the top left corner of the component (0-100)
8 | * @param width The percentage width of the component (0-100)
9 | * @param height The percentage height of the component (0-100)
10 | */
11 | public PercentLayoutConstraint(
12 | double x,
13 | double y,
14 | double width,
15 | double height) {
16 | this.x = x;
17 | this.y = y;
18 | this.width = width;
19 | this.height = height;
20 | }
21 | double x, y, width, height;
22 | }
23 |
--------------------------------------------------------------------------------
/src/tools/tracesviewer/README.txt:
--------------------------------------------------------------------------------
1 | This directroy contains a viewer for viewing the signaling trace generated
2 | from the NIST SIP stack.
3 |
4 | Refer to ../../docs/tools/tracesviewer/README.html for more information on
5 | how to use the traces viewer.
6 |
7 | Author: Olivier Deruelle
8 |
--------------------------------------------------------------------------------
/src/tools/tracesviewer/TracesSession.java:
--------------------------------------------------------------------------------
1 | package tools.tracesviewer;
2 |
3 | import java.util.*;
4 | import java.io.*;
5 |
6 | public class TracesSession extends Vector implements Serializable {
7 |
8 | protected String logDescription = null;
9 | protected String name = null;
10 | protected String info = null;
11 |
12 | public TracesSession() {
13 | super();
14 | }
15 |
16 | public TracesSession(String name, String info) {
17 | this();
18 | this.name = name;
19 | this.info = info;
20 | }
21 |
22 | public void setName(String name) {
23 | this.name = name;
24 | }
25 |
26 | public String getName() {
27 | return name;
28 | }
29 |
30 | public void setInfo(String info) {
31 | this.info = info;
32 | }
33 |
34 | public String getInfo() {
35 | return info;
36 | }
37 |
38 | public void setLogDescription(String logDescription) {
39 | this.logDescription = logDescription;
40 | }
41 |
42 | public String getLogDescription() {
43 | return logDescription;
44 | }
45 | public TracesSession(MessageLogList messageLogList) {
46 | super();
47 | this.logDescription = messageLogList.description;
48 | Iterator it = messageLogList.iterator();
49 | while (it.hasNext()) {
50 | TracesMessage tracesMessage = (TracesMessage) it.next();
51 | super.add(tracesMessage);
52 | }
53 | }
54 | }
55 |
--------------------------------------------------------------------------------
/src/tools/tracesviewer/TracesSessions.java:
--------------------------------------------------------------------------------
1 | package tools.tracesviewer;
2 |
3 | import java.util.*;
4 | import java.io.*;
5 |
6 | public class TracesSessions extends Vector implements Serializable {
7 |
8 | protected String name = null;
9 |
10 | public TracesSessions() {
11 | super();
12 | }
13 |
14 | public void setName(String name) {
15 | this.name = name;
16 | }
17 |
18 | public String getName() {
19 | return name;
20 | }
21 |
22 | }
23 |
--------------------------------------------------------------------------------
/src/tools/tracesviewer/TracesSocket.java:
--------------------------------------------------------------------------------
1 | /*
2 | * TracesSocket.java
3 | *
4 | * Created on July 3, 2003, 2:59 PM
5 | */
6 | package tools.tracesviewer;
7 |
8 | import java.net.*;
9 | import java.io.*;
10 |
11 | /**
12 | *
13 | * @author deruelle
14 | */
15 | public class TracesSocket extends Thread {
16 |
17 | private String fileName;
18 | private String port;
19 | private InputStream is;
20 | private FileWriter fw;
21 |
22 | /** Creates a new instance of TracesSocket */
23 | public TracesSocket(String fileName, String port) throws Exception {
24 | this.fileName = fileName;
25 |
26 | this.port = port;
27 |
28 | System.out.println("Waiting for a connection on port: " + port);
29 | ServerSocket serverSocket =
30 | new ServerSocket(Integer.valueOf(port).intValue());
31 | Socket newsock = serverSocket.accept();
32 | is = newsock.getInputStream();
33 | fw = new FileWriter(fileName);
34 |
35 | }
36 |
37 | public void run() {
38 | try {
39 | while (true) {
40 | int i = is.read();
41 | fw.write(i);
42 | //System.out.print(i);
43 | }
44 | } catch (Exception e) {
45 | e.printStackTrace();
46 | }
47 | }
48 |
49 | }
50 |
--------------------------------------------------------------------------------
/src/tools/tracesviewer/images/back.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/tools/tracesviewer/images/back.gif
--------------------------------------------------------------------------------
/src/tools/tracesviewer/images/comp.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/tools/tracesviewer/images/comp.gif
--------------------------------------------------------------------------------
/src/tools/tracesviewer/images/faces.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/tools/tracesviewer/images/faces.jpg
--------------------------------------------------------------------------------
/src/tools/tracesviewer/images/nistBanner.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/src/tools/tracesviewer/images/nistBanner.jpg
--------------------------------------------------------------------------------
/src/tools/tracesviewer/runinit.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # Start the GUI traces viewer
4 | echo "java tools.tracesviewer.TracesViewer -[debug_file|server_file] fileName"
5 |
6 |
7 | echo $OS
8 |
9 | #if you are using 1.3
10 |
11 | # EXTRA_LIBS= ../../../lib/xerces/xerces.jar
12 |
13 | if test $OS = "Windows_NT" ; then
14 | java -classpath "../../../classes" tools.tracesviewer.TracesViewer $*
15 | else
16 | java -classpath "../../../classes" tools.tracesviewer.TracesViewer $*
17 | fi
18 |
--------------------------------------------------------------------------------
/tck.properties:
--------------------------------------------------------------------------------
1 | javax.sip.tck.LOG_FILE_NAME="logs/debuglog.txt"
2 | javax.sip.tck.ABORT_ON_FAIL="true"
3 | javax.sip.tck.IMPLEMENTATION_PATH="gov.nist"
4 |
--------------------------------------------------------------------------------
/www/images/genaker_voip_api_stability_testing_over_72hours_callee.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/www/images/genaker_voip_api_stability_testing_over_72hours_callee.jpg
--------------------------------------------------------------------------------
/www/images/genaker_voip_api_stability_testing_over_72hours_caller.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/www/images/genaker_voip_api_stability_testing_over_72hours_caller.jpg
--------------------------------------------------------------------------------
/www/images/logo_bea_tl.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/www/images/logo_bea_tl.gif
--------------------------------------------------------------------------------
/www/images/masthead_slogan.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/www/images/masthead_slogan.gif
--------------------------------------------------------------------------------
/www/images/nist-banner-bottom.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/www/images/nist-banner-bottom.jpg
--------------------------------------------------------------------------------
/www/images/stability-testing.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/www/images/stability-testing.jpg
--------------------------------------------------------------------------------
/www/images/sun_logo.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RestComm/jain-sip/69f8578a8cd1c6933179df1e1fca88581d561626/www/images/sun_logo.gif
--------------------------------------------------------------------------------
/www/performance.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | Stability Testing Results
4 |
5 |
6 |
7 |
8 | |
9 |
10 | |
11 | |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------