├── VoiceChat_Client
├── build.xml
├── manifest.mf
├── nbproject
│ ├── build-impl.xml
│ ├── genfiles.properties
│ ├── private
│ │ ├── config.properties
│ │ ├── private.properties
│ │ └── private.xml
│ ├── project.properties
│ └── project.xml
└── src
│ ├── AudioChannel.java
│ ├── Client.java
│ ├── ErrorMessage.java
│ ├── GUI.form
│ ├── GUI.java
│ ├── Message.java
│ ├── MicThread.java
│ ├── SoundPacket.java
│ └── Utils.java
└── VoiceChat_Server
├── build.xml
├── lib
├── META-INF
│ ├── MANIFEST.MF
│ └── maven
│ │ └── org.teleal
│ │ └── teleal-common
│ │ ├── pom.properties
│ │ └── pom.xml
├── cling-core-1.0.5.jar
├── cling-support-1.0.5.jar
├── com
│ └── sun
│ │ └── tools
│ │ └── javadoc
│ │ └── PublicMessager.class
├── org
│ └── teleal
│ │ └── common
│ │ ├── http
│ │ ├── CacheControl.class
│ │ ├── Headers.class
│ │ ├── HttpFetch$1.class
│ │ ├── HttpFetch$2.class
│ │ ├── HttpFetch$3.class
│ │ ├── HttpFetch$RepresentationFactory.class
│ │ ├── HttpFetch.class
│ │ ├── Query.class
│ │ ├── Representation.class
│ │ └── RequestInfo.class
│ │ ├── io
│ │ ├── IO$FileFinder.class
│ │ └── IO.class
│ │ ├── jdoc
│ │ ├── EasyDoclet$LogWriter.class
│ │ └── EasyDoclet.class
│ │ ├── logging
│ │ ├── LoggingUtil.class
│ │ ├── SystemOutLoggingHandler$SimpleFormatter.class
│ │ └── SystemOutLoggingHandler.class
│ │ ├── mock
│ │ └── http
│ │ │ ├── DelegatingServletInputStream.class
│ │ │ ├── DelegatingServletOutputStream.class
│ │ │ ├── HeaderValueHolder.class
│ │ │ ├── IteratorEnumeration.class
│ │ │ ├── MockHttpServletRequest$1.class
│ │ │ ├── MockHttpServletRequest.class
│ │ │ ├── MockHttpServletResponse$ResponsePrintWriter.class
│ │ │ ├── MockHttpServletResponse$ResponseServletOutputStream.class
│ │ │ ├── MockHttpServletResponse.class
│ │ │ ├── MockHttpSession.class
│ │ │ ├── MockRequestDispatcher.class
│ │ │ └── MockServletContext.class
│ │ ├── schemas
│ │ ├── xhtml1-strict.xsd
│ │ └── xml.xsd
│ │ ├── statemachine
│ │ ├── StateMachine.class
│ │ ├── StateMachineBuilder.class
│ │ ├── StateMachineInvocationHandler.class
│ │ ├── States.class
│ │ └── TransitionException.class
│ │ ├── swingfwk
│ │ ├── AbstractController.class
│ │ ├── ActionButton$1.class
│ │ ├── ActionButton.class
│ │ ├── Application.class
│ │ ├── BeanTableModel.class
│ │ ├── ClosableTabbedPane$CloseTabIcon.class
│ │ ├── ClosableTabbedPane$CloseableMetalTabbedPaneUI.class
│ │ ├── ClosableTabbedPane$CloseableTabbedPaneUI.class
│ │ ├── ClosableTabbedPane.class
│ │ ├── ClosableTabbedPaneListener.class
│ │ ├── Controller.class
│ │ ├── DefaultAction.class
│ │ ├── DefaultEvent.class
│ │ ├── DefaultEventListener.class
│ │ ├── Event.class
│ │ ├── EventListener.class
│ │ ├── Form.class
│ │ ├── JPopupMenuButton$1.class
│ │ ├── JPopupMenuButton.class
│ │ ├── Node.class
│ │ ├── NodeTreeModel.class
│ │ └── logging
│ │ │ ├── LogCategory$Group.class
│ │ │ ├── LogCategory$LoggerLevel.class
│ │ │ ├── LogCategory.class
│ │ │ ├── LogCategorySelector$1.class
│ │ │ ├── LogCategorySelector$2.class
│ │ │ ├── LogCategorySelector$3.class
│ │ │ ├── LogCategorySelector.class
│ │ │ ├── LogController$1.class
│ │ │ ├── LogController$2.class
│ │ │ ├── LogController$3.class
│ │ │ ├── LogController$4.class
│ │ │ ├── LogController$5.class
│ │ │ ├── LogController$6.class
│ │ │ ├── LogController$7.class
│ │ │ ├── LogController$8.class
│ │ │ ├── LogController$9.class
│ │ │ ├── LogController$Expiration.class
│ │ │ ├── LogController.class
│ │ │ ├── LogMessage.class
│ │ │ ├── LogTableCellRenderer.class
│ │ │ ├── LogTableModel.class
│ │ │ ├── LoggingHandler.class
│ │ │ └── img
│ │ │ ├── configure.png
│ │ │ ├── copyclipboard.png
│ │ │ ├── debug.png
│ │ │ ├── info.png
│ │ │ ├── pause.png
│ │ │ ├── removetext.png
│ │ │ ├── trace.png
│ │ │ ├── viewtext.png
│ │ │ └── warn.png
│ │ ├── xhtml
│ │ ├── Anchor.class
│ │ ├── Body.class
│ │ ├── Head$1.class
│ │ ├── Head$2.class
│ │ ├── Head.class
│ │ ├── Href.class
│ │ ├── Link.class
│ │ ├── Meta.class
│ │ ├── Option.class
│ │ ├── Root$1.class
│ │ ├── Root$2.class
│ │ ├── Root.class
│ │ ├── XHTML$ATTR.class
│ │ ├── XHTML$ELEMENT.class
│ │ ├── XHTML.class
│ │ ├── XHTMLElement$1.class
│ │ ├── XHTMLElement$2.class
│ │ ├── XHTMLElement.class
│ │ ├── XHTMLParser$1.class
│ │ ├── XHTMLParser$2.class
│ │ └── XHTMLParser.class
│ │ └── xml
│ │ ├── CatalogResourceResolver$Input.class
│ │ ├── CatalogResourceResolver.class
│ │ ├── DOM.class
│ │ ├── DOMElement$ArrayBuilder.class
│ │ ├── DOMElement$Builder.class
│ │ ├── DOMElement.class
│ │ ├── DOMParser$1.class
│ │ ├── DOMParser$2.class
│ │ ├── DOMParser$NodeVisitor.class
│ │ ├── DOMParser.class
│ │ ├── NamespaceContextMap.class
│ │ ├── ParserException.class
│ │ ├── SAXParser$1.class
│ │ ├── SAXParser$Handler.class
│ │ ├── SAXParser$SimpleErrorHandler.class
│ │ └── SAXParser.class
└── teleal-common-1.0.13.jar
├── manifest.mf
├── nbproject
├── build-impl.xml
├── genfiles.properties
├── private
│ ├── config.properties
│ ├── private.properties
│ └── private.xml
├── project.properties
└── project.xml
└── src
├── ClientConnection.java
├── ErrorMessage.java
├── GUI.form
├── GUI.java
├── Log.java
├── Message.java
├── Server.java
├── SoundPacket.java
├── Utils.java
└── org
└── teleal
├── cling
├── DefaultUpnpServiceConfiguration.java
├── Main.java
├── UpnpService.java
├── UpnpServiceConfiguration.java
├── UpnpServiceImpl.java
├── binding
│ ├── LocalServiceBinder.java
│ ├── LocalServiceBindingException.java
│ ├── annotations
│ │ ├── AnnotationActionBinder.java
│ │ ├── AnnotationLocalServiceBinder.java
│ │ ├── AnnotationStateVariableBinder.java
│ │ ├── UpnpAction.java
│ │ ├── UpnpInputArgument.java
│ │ ├── UpnpOutputArgument.java
│ │ ├── UpnpService.java
│ │ ├── UpnpServiceId.java
│ │ ├── UpnpServiceType.java
│ │ ├── UpnpStateVariable.java
│ │ └── UpnpStateVariables.java
│ ├── staging
│ │ ├── MutableAction.java
│ │ ├── MutableActionArgument.java
│ │ ├── MutableAllowedValueRange.java
│ │ ├── MutableDevice.java
│ │ ├── MutableIcon.java
│ │ ├── MutableService.java
│ │ ├── MutableStateVariable.java
│ │ └── MutableUDAVersion.java
│ └── xml
│ │ ├── Descriptor.java
│ │ ├── DescriptorBindingException.java
│ │ ├── DeviceDescriptorBinder.java
│ │ ├── ServiceDescriptorBinder.java
│ │ ├── UDA10DeviceDescriptorBinderImpl.java
│ │ ├── UDA10DeviceDescriptorBinderSAXImpl.java
│ │ ├── UDA10ServiceDescriptorBinderImpl.java
│ │ ├── UDA10ServiceDescriptorBinderSAXImpl.java
│ │ └── schema
│ │ ├── backup.txt
│ │ ├── uda10-device.xsd
│ │ ├── uda10-service.xsd
│ │ ├── uda11-device.xsd
│ │ └── uda11-service.xsd
├── controlpoint
│ ├── ActionCallback.java
│ ├── ControlPoint.java
│ ├── ControlPointImpl.java
│ └── SubscriptionCallback.java
├── mock
│ └── MockUpnpService.java
├── model
│ ├── Command.java
│ ├── Constants.java
│ ├── DefaultServiceManager.java
│ ├── ExpirationDetails.java
│ ├── Location.java
│ ├── ModelUtil.java
│ ├── Namespace.java
│ ├── NetworkAddress.java
│ ├── ServerClientTokens.java
│ ├── ServiceManager.java
│ ├── ServiceReference.java
│ ├── Validatable.java
│ ├── ValidationError.java
│ ├── ValidationException.java
│ ├── VariableValue.java
│ ├── XMLUtil.java
│ ├── action
│ │ ├── AbstractActionExecutor.java
│ │ ├── ActionArgumentValue.java
│ │ ├── ActionException.java
│ │ ├── ActionExecutor.java
│ │ ├── ActionInvocation.java
│ │ ├── MethodActionExecutor.java
│ │ └── QueryStateVariableExecutor.java
│ ├── gena
│ │ ├── CancelReason.java
│ │ ├── GENASubscription.java
│ │ ├── LocalGENASubscription.java
│ │ └── RemoteGENASubscription.java
│ ├── message
│ │ ├── IncomingDatagramMessage.java
│ │ ├── OutgoingDatagramMessage.java
│ │ ├── StreamRequestMessage.java
│ │ ├── StreamResponseMessage.java
│ │ ├── UpnpHeaders.java
│ │ ├── UpnpMessage.java
│ │ ├── UpnpOperation.java
│ │ ├── UpnpRequest.java
│ │ ├── UpnpResponse.java
│ │ ├── control
│ │ │ ├── ActionMessage.java
│ │ │ ├── ActionRequestMessage.java
│ │ │ ├── ActionResponseMessage.java
│ │ │ ├── IncomingActionRequestMessage.java
│ │ │ ├── IncomingActionResponseMessage.java
│ │ │ ├── OutgoingActionRequestMessage.java
│ │ │ └── OutgoingActionResponseMessage.java
│ │ ├── discovery
│ │ │ ├── IncomingNotificationRequest.java
│ │ │ ├── IncomingSearchRequest.java
│ │ │ ├── IncomingSearchResponse.java
│ │ │ ├── OutgoingNotificationRequest.java
│ │ │ ├── OutgoingNotificationRequestDeviceType.java
│ │ │ ├── OutgoingNotificationRequestRootDevice.java
│ │ │ ├── OutgoingNotificationRequestServiceType.java
│ │ │ ├── OutgoingNotificationRequestUDN.java
│ │ │ ├── OutgoingSearchRequest.java
│ │ │ ├── OutgoingSearchResponse.java
│ │ │ ├── OutgoingSearchResponseDeviceType.java
│ │ │ ├── OutgoingSearchResponseRootDevice.java
│ │ │ ├── OutgoingSearchResponseRootDeviceUDN.java
│ │ │ ├── OutgoingSearchResponseServiceType.java
│ │ │ └── OutgoingSearchResponseUDN.java
│ │ ├── gena
│ │ │ ├── IncomingEventRequestMessage.java
│ │ │ ├── IncomingSubscribeRequestMessage.java
│ │ │ ├── IncomingSubscribeResponseMessage.java
│ │ │ ├── IncomingUnsubscribeRequestMessage.java
│ │ │ ├── OutgoingEventRequestMessage.java
│ │ │ ├── OutgoingEventResponseMessage.java
│ │ │ ├── OutgoingRenewalRequestMessage.java
│ │ │ ├── OutgoingSubscribeRequestMessage.java
│ │ │ ├── OutgoingSubscribeResponseMessage.java
│ │ │ └── OutgoingUnsubscribeRequestMessage.java
│ │ └── header
│ │ │ ├── CallbackHeader.java
│ │ │ ├── ContentTypeHeader.java
│ │ │ ├── DeviceTypeHeader.java
│ │ │ ├── DeviceUSNHeader.java
│ │ │ ├── EXTHeader.java
│ │ │ ├── EventSequenceHeader.java
│ │ │ ├── HostHeader.java
│ │ │ ├── InterfaceMacHeader.java
│ │ │ ├── InvalidHeaderException.java
│ │ │ ├── LocationHeader.java
│ │ │ ├── MANHeader.java
│ │ │ ├── MXHeader.java
│ │ │ ├── MaxAgeHeader.java
│ │ │ ├── NTEventHeader.java
│ │ │ ├── NTSHeader.java
│ │ │ ├── RootDeviceHeader.java
│ │ │ ├── STAllHeader.java
│ │ │ ├── ServerHeader.java
│ │ │ ├── ServiceTypeHeader.java
│ │ │ ├── ServiceUSNHeader.java
│ │ │ ├── SoapActionHeader.java
│ │ │ ├── SubscriptionIdHeader.java
│ │ │ ├── TimeoutHeader.java
│ │ │ ├── UDADeviceTypeHeader.java
│ │ │ ├── UDAServiceTypeHeader.java
│ │ │ ├── UDNHeader.java
│ │ │ ├── USNRootDeviceHeader.java
│ │ │ ├── UpnpHeader.java
│ │ │ └── UserAgentHeader.java
│ ├── meta
│ │ ├── Action.java
│ │ ├── ActionArgument.java
│ │ ├── Device.java
│ │ ├── DeviceDetails.java
│ │ ├── DeviceIdentity.java
│ │ ├── Icon.java
│ │ ├── LocalDevice.java
│ │ ├── LocalService.java
│ │ ├── ManufacturerDetails.java
│ │ ├── ModelDetails.java
│ │ ├── QueryStateVariableAction.java
│ │ ├── RemoteDevice.java
│ │ ├── RemoteDeviceIdentity.java
│ │ ├── RemoteService.java
│ │ ├── Service.java
│ │ ├── StateVariable.java
│ │ ├── StateVariableAllowedValueRange.java
│ │ ├── StateVariableEventDetails.java
│ │ ├── StateVariableTypeDetails.java
│ │ └── UDAVersion.java
│ ├── profile
│ │ ├── ControlPointInfo.java
│ │ ├── DeviceDetailsProvider.java
│ │ └── HeaderDeviceDetailsProvider.java
│ ├── resource
│ │ ├── DeviceDescriptorResource.java
│ │ ├── IconResource.java
│ │ ├── Resource.java
│ │ ├── ServiceControlResource.java
│ │ ├── ServiceDescriptorResource.java
│ │ ├── ServiceEventCallbackResource.java
│ │ └── ServiceEventSubscriptionResource.java
│ ├── state
│ │ ├── FieldStateVariableAccessor.java
│ │ ├── GetterStateVariableAccessor.java
│ │ ├── StateVariableAccessor.java
│ │ └── StateVariableValue.java
│ └── types
│ │ ├── AbstractDatatype.java
│ │ ├── Base64Datatype.java
│ │ ├── BinHexDatatype.java
│ │ ├── BooleanDatatype.java
│ │ ├── CharacterDatatype.java
│ │ ├── CustomDatatype.java
│ │ ├── DLNACaps.java
│ │ ├── DLNADoc.java
│ │ ├── Datatype.java
│ │ ├── DateTimeDatatype.java
│ │ ├── DeviceType.java
│ │ ├── DoubleDatatype.java
│ │ ├── ErrorCode.java
│ │ ├── FloatDatatype.java
│ │ ├── HostPort.java
│ │ ├── IntegerDatatype.java
│ │ ├── InvalidValueException.java
│ │ ├── NamedDeviceType.java
│ │ ├── NamedServiceType.java
│ │ ├── NotificationSubtype.java
│ │ ├── ServiceId.java
│ │ ├── ServiceType.java
│ │ ├── ShortDatatype.java
│ │ ├── SoapActionType.java
│ │ ├── StringDatatype.java
│ │ ├── UDADeviceType.java
│ │ ├── UDAServiceId.java
│ │ ├── UDAServiceType.java
│ │ ├── UDN.java
│ │ ├── URIDatatype.java
│ │ ├── UnsignedIntegerFourBytes.java
│ │ ├── UnsignedIntegerFourBytesDatatype.java
│ │ ├── UnsignedIntegerOneByte.java
│ │ ├── UnsignedIntegerOneByteDatatype.java
│ │ ├── UnsignedIntegerTwoBytes.java
│ │ ├── UnsignedIntegerTwoBytesDatatype.java
│ │ ├── UnsignedVariableInteger.java
│ │ └── csv
│ │ ├── CSV.java
│ │ ├── CSVBoolean.java
│ │ ├── CSVBytes.java
│ │ ├── CSVCharacter.java
│ │ ├── CSVDate.java
│ │ ├── CSVDouble.java
│ │ ├── CSVFloat.java
│ │ ├── CSVInteger.java
│ │ ├── CSVShort.java
│ │ ├── CSVString.java
│ │ ├── CSVURI.java
│ │ ├── CSVUnsignedIntegerFourBytes.java
│ │ ├── CSVUnsignedIntegerOneByte.java
│ │ └── CSVUnsignedIntegerTwoBytes.java
├── protocol
│ ├── ProtocolCreationException.java
│ ├── ProtocolFactory.java
│ ├── ProtocolFactoryImpl.java
│ ├── ReceivingAsync.java
│ ├── ReceivingSync.java
│ ├── RetrieveRemoteDescriptors.java
│ ├── SendingAsync.java
│ ├── SendingSync.java
│ ├── async
│ │ ├── ReceivingNotification.java
│ │ ├── ReceivingSearch.java
│ │ ├── ReceivingSearchResponse.java
│ │ ├── SendingNotification.java
│ │ ├── SendingNotificationAlive.java
│ │ ├── SendingNotificationByebye.java
│ │ └── SendingSearch.java
│ └── sync
│ │ ├── ReceivingAction.java
│ │ ├── ReceivingEvent.java
│ │ ├── ReceivingRetrieval.java
│ │ ├── ReceivingSubscribe.java
│ │ ├── ReceivingUnsubscribe.java
│ │ ├── SendingAction.java
│ │ ├── SendingEvent.java
│ │ ├── SendingRenewal.java
│ │ ├── SendingSubscribe.java
│ │ └── SendingUnsubscribe.java
├── registry
│ ├── DefaultRegistryListener.java
│ ├── LocalItems.java
│ ├── RegistrationException.java
│ ├── Registry.java
│ ├── RegistryImpl.java
│ ├── RegistryItem.java
│ ├── RegistryItems.java
│ ├── RegistryListener.java
│ ├── RegistryMaintainer.java
│ └── RemoteItems.java
├── support
│ ├── avtransport
│ │ ├── AVTransportErrorCode.java
│ │ ├── AVTransportException.java
│ │ ├── AbstractAVTransportService.java
│ │ ├── callback
│ │ │ ├── GetCurrentTransportActions.java
│ │ │ ├── GetDeviceCapabilities.java
│ │ │ ├── GetMediaInfo.java
│ │ │ ├── GetPositionInfo.java
│ │ │ ├── GetTransportInfo.java
│ │ │ ├── Pause.java
│ │ │ ├── Play.java
│ │ │ ├── Seek.java
│ │ │ ├── SetAVTransportURI.java
│ │ │ └── Stop.java
│ │ ├── impl
│ │ │ ├── AVTransportService.java
│ │ │ ├── AVTransportStateMachine.java
│ │ │ └── state
│ │ │ │ ├── AbstractState.java
│ │ │ │ ├── NoMediaPresent.java
│ │ │ │ ├── PausedPlay.java
│ │ │ │ ├── Playing.java
│ │ │ │ └── Stopped.java
│ │ ├── lastchange
│ │ │ ├── AVTransportLastChangeParser.java
│ │ │ └── AVTransportVariable.java
│ │ └── metadata-1.0-avt.xsd
│ ├── connectionmanager
│ │ ├── AbstractPeeringConnectionManagerService.java
│ │ ├── ConnectionManagerErrorCode.java
│ │ ├── ConnectionManagerException.java
│ │ ├── ConnectionManagerService.java
│ │ └── callback
│ │ │ ├── ConnectionComplete.java
│ │ │ ├── GetCurrentConnectionInfo.java
│ │ │ ├── GetProtocolInfo.java
│ │ │ └── PrepareForConnection.java
│ ├── contentdirectory
│ │ ├── AbstractContentDirectoryService.java
│ │ ├── ContentDirectoryErrorCode.java
│ │ ├── ContentDirectoryException.java
│ │ ├── DIDLParser.java
│ │ ├── callback
│ │ │ └── Browse.java
│ │ ├── descriptor
│ │ │ ├── dc-elements-1.1.xsd
│ │ │ ├── didl-lite-1.0.xsd
│ │ │ └── upnp-cds-1.0.xsd
│ │ └── ui
│ │ │ ├── ContentBrowseActionCallback.java
│ │ │ ├── ContentBrowseActionCallbackCreator.java
│ │ │ ├── ContentTree.java
│ │ │ ├── ContentTreeCellRenderer.java
│ │ │ └── ContentTreeExpandListener.java
│ ├── igd
│ │ ├── PortMappingListener.java
│ │ └── callback
│ │ │ ├── GetExternalIP.java
│ │ │ ├── GetStatusInfo.java
│ │ │ ├── PortMappingAdd.java
│ │ │ └── PortMappingDelete.java
│ ├── lastchange
│ │ ├── Event.java
│ │ ├── EventedValue.java
│ │ ├── EventedValueEnum.java
│ │ ├── EventedValueEnumArray.java
│ │ ├── EventedValueShort.java
│ │ ├── EventedValueString.java
│ │ ├── EventedValueURI.java
│ │ ├── EventedValueUnsignedIntegerFourBytes.java
│ │ ├── EventedValueUnsignedIntegerTwoBytes.java
│ │ ├── InstanceID.java
│ │ ├── LastChange.java
│ │ └── LastChangeParser.java
│ ├── messagebox
│ │ ├── AddMessage.java
│ │ ├── RemoveMessage.java
│ │ ├── model
│ │ │ ├── DateTime.java
│ │ │ ├── ElementAppender.java
│ │ │ ├── Message.java
│ │ │ ├── MessageIncomingCall.java
│ │ │ ├── MessageSMS.java
│ │ │ ├── MessageScheduleReminder.java
│ │ │ └── NumberName.java
│ │ └── parser
│ │ │ ├── MessageDOM.java
│ │ │ ├── MessageDOMParser.java
│ │ │ └── MessageElement.java
│ ├── model
│ │ ├── AVTransport.java
│ │ ├── BrowseFlag.java
│ │ ├── BrowseResult.java
│ │ ├── Channel.java
│ │ ├── Connection.java
│ │ ├── ConnectionInfo.java
│ │ ├── DIDLAttribute.java
│ │ ├── DIDLContent.java
│ │ ├── DIDLObject.java
│ │ ├── DescMeta.java
│ │ ├── DeviceCapabilities.java
│ │ ├── MediaInfo.java
│ │ ├── Person.java
│ │ ├── PersonWithRole.java
│ │ ├── PlayMode.java
│ │ ├── PortMapping.java
│ │ ├── PositionInfo.java
│ │ ├── PresetName.java
│ │ ├── Protocol.java
│ │ ├── ProtocolInfo.java
│ │ ├── ProtocolInfos.java
│ │ ├── RecordMediumWriteStatus.java
│ │ ├── RecordQualityMode.java
│ │ ├── Res.java
│ │ ├── SeekMode.java
│ │ ├── SortCriterion.java
│ │ ├── StorageMedium.java
│ │ ├── TransportAction.java
│ │ ├── TransportInfo.java
│ │ ├── TransportSettings.java
│ │ ├── TransportState.java
│ │ ├── TransportStatus.java
│ │ ├── VolumeDBRange.java
│ │ ├── WriteStatus.java
│ │ ├── container
│ │ │ ├── Album.java
│ │ │ ├── Container.java
│ │ │ ├── GenreContainer.java
│ │ │ ├── MovieGenre.java
│ │ │ ├── MusicAlbum.java
│ │ │ ├── MusicArtist.java
│ │ │ ├── MusicGenre.java
│ │ │ ├── PersonContainer.java
│ │ │ ├── PhotoAlbum.java
│ │ │ ├── PlaylistContainer.java
│ │ │ ├── StorageFolder.java
│ │ │ ├── StorageSystem.java
│ │ │ └── StorageVolume.java
│ │ └── item
│ │ │ ├── AudioBook.java
│ │ │ ├── AudioBroadcast.java
│ │ │ ├── AudioItem.java
│ │ │ ├── ImageItem.java
│ │ │ ├── Item.java
│ │ │ ├── Movie.java
│ │ │ ├── MusicTrack.java
│ │ │ ├── MusicVideoClip.java
│ │ │ ├── Photo.java
│ │ │ ├── PlaylistItem.java
│ │ │ ├── TextItem.java
│ │ │ ├── VideoBroadcast.java
│ │ │ └── VideoItem.java
│ ├── renderingcontrol
│ │ ├── AbstractAudioRenderingControl.java
│ │ ├── RenderingControlErrorCode.java
│ │ ├── RenderingControlException.java
│ │ ├── callback
│ │ │ ├── GetMute.java
│ │ │ ├── GetVolume.java
│ │ │ ├── SetMute.java
│ │ │ └── SetVolume.java
│ │ ├── lastchange
│ │ │ ├── ChannelMute.java
│ │ │ ├── ChannelVolume.java
│ │ │ ├── ChannelVolumeDB.java
│ │ │ ├── EventedValueChannelMute.java
│ │ │ ├── EventedValueChannelVolume.java
│ │ │ ├── EventedValueChannelVolumeDB.java
│ │ │ ├── RenderingControlLastChangeParser.java
│ │ │ └── RenderingControlVariable.java
│ │ └── metadata-1.0-rcs.xsd
│ ├── shared
│ │ ├── AWTExceptionHandler.java
│ │ ├── AbstractMap.java
│ │ ├── LogCategories.java
│ │ ├── MainController.java
│ │ ├── PlatformApple.java
│ │ ├── TextExpandDialog.java
│ │ └── TextExpandEvent.java
│ └── xmicrosoft
│ │ └── AbstractMediaReceiverRegistrarService.java
└── transport
│ ├── Router.java
│ ├── RouterImpl.java
│ ├── SwitchableRouter.java
│ ├── SwitchableRouterImpl.java
│ ├── impl
│ ├── DatagramIOConfigurationImpl.java
│ ├── DatagramIOImpl.java
│ ├── DatagramProcessorImpl.java
│ ├── GENAEventProcessorImpl.java
│ ├── HttpExchangeUpnpStream.java
│ ├── MulticastReceiverConfigurationImpl.java
│ ├── MulticastReceiverImpl.java
│ ├── NetworkAddressFactoryImpl.java
│ ├── SOAPActionProcessorImpl.java
│ ├── StreamClientConfigurationImpl.java
│ ├── StreamClientImpl.java
│ ├── StreamServerConfigurationImpl.java
│ ├── StreamServerImpl.java
│ └── apache
│ │ ├── StreamClientConfigurationImpl.java
│ │ └── StreamServerConfigurationImpl.java
│ └── spi
│ ├── DatagramIO.java
│ ├── DatagramIOConfiguration.java
│ ├── DatagramProcessor.java
│ ├── GENAEventProcessor.java
│ ├── InitializationException.java
│ ├── MulticastReceiver.java
│ ├── MulticastReceiverConfiguration.java
│ ├── NetworkAddressFactory.java
│ ├── SOAPActionProcessor.java
│ ├── StreamClient.java
│ ├── StreamClientConfiguration.java
│ ├── StreamServer.java
│ ├── StreamServerConfiguration.java
│ ├── UnsupportedDataException.java
│ └── UpnpStream.java
└── common
├── http
├── CacheControl.java
├── Headers.java
├── HttpFetch.java
├── Query.java
└── Representation.java
├── jdoc
├── EasyDoclet$LogWriter.class
├── EasyDoclet.class
└── org
│ └── teleal
│ └── common
│ └── io
│ └── IO.java
├── logging
├── LoggingUtil.java
└── SystemOutLoggingHandler.java
├── mock
└── http
│ ├── DelegatingServletInputStream.class
│ ├── DelegatingServletOutputStream.class
│ ├── HeaderValueHolder.class
│ ├── IteratorEnumeration.class
│ ├── MockHttpServletRequest$1.class
│ ├── MockHttpServletRequest.class
│ ├── MockHttpServletResponse$ResponsePrintWriter.class
│ ├── MockHttpServletResponse$ResponseServletOutputStream.class
│ ├── MockHttpServletResponse.class
│ ├── MockHttpSession.class
│ ├── MockRequestDispatcher.class
│ └── MockServletContext.class
├── schemas
├── xhtml1-strict.xsd
└── xml.xsd
├── statemachine
├── StateMachine.java
├── StateMachineBuilder.java
├── StateMachineInvocationHandler.java
├── States.java
└── TransitionException.java
├── swingfwk
├── AbstractController.java
├── ActionButton.java
├── Application.java
├── BeanTableModel.java
├── ClosableTabbedPane.java
├── ClosableTabbedPaneListener.java
├── Controller.java
├── DefaultAction.java
├── DefaultEvent.java
├── DefaultEventListener.java
├── Event.java
├── EventListener.java
├── Form.java
├── JPopupMenuButton.java
├── Node.java
├── NodeTreeModel.java
└── logging
│ ├── LogCategory.java
│ ├── LogCategorySelector.java
│ ├── LogController.java
│ ├── LogMessage.java
│ ├── LogTableCellRenderer.java
│ ├── LogTableModel.java
│ └── LoggingHandler.java
├── util
├── Base64Coder.java
├── ByteArray.java
├── Exceptions.java
├── Gfx.java
├── HexBin.java
├── MD5Crypt.java
├── MimeType.java
├── OS.java
├── Pager.java
├── Reflections.java
├── Text.java
├── Threads.java
└── URIUtil.java
├── xhtml
├── Anchor.class
├── Body.class
├── Head$1.class
├── Head$2.class
├── Head.class
├── Href.class
├── Link.class
├── Meta.class
├── Option.class
├── Root$1.class
├── Root$2.class
├── Root.class
├── XHTML$ATTR.class
├── XHTML$ELEMENT.class
├── XHTML.class
├── XHTMLElement$1.class
├── XHTMLElement$2.class
├── XHTMLElement.class
├── XHTMLParser$1.class
├── XHTMLParser$2.class
└── XHTMLParser.class
└── xml
├── CatalogResourceResolver.java
├── DOM.java
├── DOMElement.java
├── DOMParser.java
├── NamespaceContextMap.java
├── ParserException.java
└── SAXParser.java
/VoiceChat_Client/manifest.mf:
--------------------------------------------------------------------------------
1 | Manifest-Version: 1.0
2 | X-COMMENT: Main-Class will be added automatically by build
3 |
4 |
--------------------------------------------------------------------------------
/VoiceChat_Client/nbproject/genfiles.properties:
--------------------------------------------------------------------------------
1 | build.xml.data.CRC32=5993f29c
2 | build.xml.script.CRC32=927b53c1
3 | build.xml.stylesheet.CRC32=8064a381@1.74.1.48
4 | # This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
5 | # Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
6 | nbproject/build-impl.xml.data.CRC32=5993f29c
7 | nbproject/build-impl.xml.script.CRC32=c244b950
8 | nbproject/build-impl.xml.stylesheet.CRC32=876e7a8f@1.74.1.48
9 |
--------------------------------------------------------------------------------
/VoiceChat_Client/nbproject/private/config.properties:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kumarbusem/Java-Voice-Chat/cda1af9e438caea8d4339a6d01422e4cc8b15d85/VoiceChat_Client/nbproject/private/config.properties
--------------------------------------------------------------------------------
/VoiceChat_Client/nbproject/private/private.properties:
--------------------------------------------------------------------------------
1 | compile.on.save=true
2 | do.depend=false
3 | do.jar=true
4 | javac.debug=true
5 | javadoc.preview=true
6 | user.properties.file=C:\\Users\\busem\\AppData\\Roaming\\NetBeans\\8.0\\build.properties
7 |
--------------------------------------------------------------------------------
/VoiceChat_Client/nbproject/private/private.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | file:/D:/Boom%20Messenger/voice/voice%20git/VoiceChat_Client/src/GUI.java
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/VoiceChat_Client/nbproject/project.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | org.netbeans.modules.java.j2seproject
4 |
5 |
6 | Voice_Call_Client
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/VoiceChat_Client/src/ErrorMessage.java:
--------------------------------------------------------------------------------
1 |
2 | import javax.swing.JOptionPane;
3 |
4 | /*
5 | * To change this template, choose Tools | Templates
6 | * and open the template in the editor.
7 | */
8 |
9 | /**
10 | *
11 | *
12 | */
13 | public class ErrorMessage {
14 | public static void main(String args[]){
15 | JOptionPane.showMessageDialog(new JOptionPane(),"This is a library, not a program.\nPlease run VoiceChat_Server or VoiceChat_Client");
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/VoiceChat_Client/src/Message.java:
--------------------------------------------------------------------------------
1 |
2 | import java.io.Serializable;
3 |
4 | /*
5 | * To change this template, choose Tools | Templates
6 | * and open the template in the editor.
7 | */
8 |
9 | /**
10 | * container for any type of object to be sent
11 | *
12 | */
13 | public class Message implements Serializable{
14 | private long chId; //-1 means from client to server, otherwise chId generated by the server
15 | private long timestamp, //-1 means from client to server, otherwise timeStamp of the moment when the server receives the message
16 | ttl=2000; //2 seconds TTL
17 | private final Object data; //can carry any type of object. in this program, i used a sound packet, but it could be a string, a chunk of video, ...
18 |
19 |
20 | public Message(long chId, long timestamp, Object data) {
21 | this.chId = chId;
22 | this.timestamp = timestamp;
23 | this.data = data;
24 | }
25 |
26 | public void setTimestamp(long timestamp) {
27 | this.timestamp = timestamp;
28 | }
29 |
30 | public long getChId() {
31 | return chId;
32 | }
33 |
34 | public Object getData() {
35 | return data;
36 | }
37 |
38 | public long getTimestamp() {
39 | return timestamp;
40 | }
41 |
42 | public long getTtl() {
43 | return ttl;
44 | }
45 | public void setTtl(long ttl) {
46 | this.ttl = ttl;
47 | }
48 |
49 | public void setChId(long chId) {
50 | this.chId = chId;
51 | }
52 |
53 | }
54 |
--------------------------------------------------------------------------------
/VoiceChat_Client/src/SoundPacket.java:
--------------------------------------------------------------------------------
1 |
2 | import java.io.Serializable;
3 | import javax.sound.sampled.AudioFormat;
4 |
5 | /*
6 | * To change this template, choose Tools | Templates
7 | * and open the template in the editor.
8 | */
9 |
10 | /**
11 | * some sound
12 | *
13 | */
14 | public class SoundPacket implements Serializable{
15 | public static AudioFormat defaultFormat=new AudioFormat(11025f, 8, 1, true, true); //11.025khz, 8bit, mono, signed, big endian (changes nothing in 8 bit) ~8kb/s
16 | public static int defaultDataLenght=900; //send 1000 samples/packet by default
17 | private byte[] data; //actual data. if null, comfort noise will be played
18 |
19 | public SoundPacket(byte[] data) {
20 | this.data = data;
21 | }
22 |
23 | public byte[] getData() {
24 | return data;
25 | }
26 |
27 | }
28 |
--------------------------------------------------------------------------------
/VoiceChat_Client/src/Utils.java:
--------------------------------------------------------------------------------
1 |
2 | import java.io.BufferedReader;
3 | import java.io.InputStreamReader;
4 | import java.net.InetAddress;
5 | import java.net.URL;
6 | import java.net.UnknownHostException;
7 |
8 |
9 |
10 | /*
11 | * To change this template, choose Tools | Templates
12 | * and open the template in the editor.
13 | */
14 |
15 | /**
16 | * contains some static methods used here and there in the code
17 | *
18 | */
19 | public class Utils {
20 | public static void sleep(int ms){
21 | try {Thread.sleep(ms);} catch (InterruptedException ex) {}
22 | }
23 | public static String getExternalIP(){
24 | try {
25 | URL myIp=new URL("http://checkip.dyndns.org/");
26 | BufferedReader in=new BufferedReader(new InputStreamReader(myIp.openStream()));
27 | String s=in.readLine();
28 | return s.substring(s.lastIndexOf(":")+2,s.lastIndexOf("