├── .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 | [![FOSSA Status](https://app.fossa.io/api/projects/git%2Bhttps%3A%2F%2Fgithub.com%2FRestComm%2Fjain-sip.svg?type=shield)](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 | --------------------------------------------------------------------------------