void testEndpointDescriptor_PublicUdp_defaultPort() { NatTraversalRules natRules; UtlString rulesFile(TEST_DATA_DIR "/NatTraversalAgent/nattraversalrules1.xml"); CPPUNIT_ASSERT( natRules.loadRules( rulesFile ) == OS_SUCCESS ); Url publicContactUri( "<sip:[email protected];x-sipX-nonat>" ); EndpointDescriptor endpointDescriptor( publicContactUri, natRules ); CPPUNIT_ASSERT( endpointDescriptor.getLocationCode() == PUBLIC ); TransportData publicTransport = endpointDescriptor.getPublicTransportAddress(); CPPUNIT_ASSERT( publicTransport.getAddress() == "47.135.162.161" ); CPPUNIT_ASSERT( publicTransport.getPort() == 5060 ); CPPUNIT_ASSERT( publicTransport.getTransportProtocol() == "udp" ); TransportData privateTransport = endpointDescriptor.getNativeTransportAddress(); CPPUNIT_ASSERT( privateTransport.getAddress() == "47.135.162.161" ); CPPUNIT_ASSERT( privateTransport.getPort() == 5060 ); CPPUNIT_ASSERT( privateTransport.getTransportProtocol() == "udp" ); CPPUNIT_ASSERT( publicTransport.isEqual( privateTransport ) ); }
void testEndpointDescriptor_UnknownTcpOutsideLocalPrivateNetwork() { NatTraversalRules natRules; UtlString rulesFile(TEST_DATA_DIR "/NatTraversalAgent/nattraversalrules1.xml"); CPPUNIT_ASSERT( natRules.loadRules( rulesFile ) == OS_SUCCESS ); // pick an IP address that is outside the local topology according to // the NatTraversalRules prescribed by /NatTraversalAgent/nattraversalrules1.xml Url unknownContactUri( "<sip:[email protected]:6060;transport=tcp>" ); EndpointDescriptor endpointDescriptor( unknownContactUri, natRules ); CPPUNIT_ASSERT( endpointDescriptor.getLocationCode() == UNKNOWN ); TransportData publicTransport = endpointDescriptor.getPublicTransportAddress(); CPPUNIT_ASSERT( publicTransport.getAddress() == UNKNOWN_IP_ADDRESS_STRING ); CPPUNIT_ASSERT( publicTransport.getPort() == UNKNOWN_PORT_NUMBER ); CPPUNIT_ASSERT( publicTransport.getTransportProtocol() == UNKNOWN_TRANSPORT_STRING ); TransportData privateTransport = endpointDescriptor.getNativeTransportAddress(); CPPUNIT_ASSERT( privateTransport.getAddress() == "55.10.10.11" ); CPPUNIT_ASSERT( privateTransport.getPort() == 6060 ); CPPUNIT_ASSERT( privateTransport.getTransportProtocol() == "tcp" ); CPPUNIT_ASSERT( !publicTransport.isEqual( privateTransport ) ); }
void testEndpointDescriptor_LocalNATedTcp() { NatTraversalRules natRules; UtlString rulesFile(TEST_DATA_DIR "/NatTraversalAgent/nattraversalrules1.xml"); CPPUNIT_ASSERT( natRules.loadRules( rulesFile ) == OS_SUCCESS ); // pick an IP address that is part of the local topology according to // the NatTraversalRules prescribed by /NatTraversalAgent/nattraversalrules1.xml Url localNATedContactUri( "<sip:[email protected]:6060;transport=tcp;x-sipX-nonat>" ); EndpointDescriptor endpointDescriptor( localNATedContactUri, natRules ); CPPUNIT_ASSERT( endpointDescriptor.getLocationCode() == LOCAL_NATED ); TransportData publicTransport = endpointDescriptor.getPublicTransportAddress(); CPPUNIT_ASSERT( publicTransport.getAddress() == "10.10.10.10" ); CPPUNIT_ASSERT( publicTransport.getPort() == 6060 ); CPPUNIT_ASSERT( publicTransport.getTransportProtocol() == "tcp" ); TransportData privateTransport = endpointDescriptor.getNativeTransportAddress(); CPPUNIT_ASSERT( privateTransport.getAddress() == "10.10.10.10" ); CPPUNIT_ASSERT( privateTransport.getPort() == 6060 ); CPPUNIT_ASSERT( privateTransport.getTransportProtocol() == "tcp" ); CPPUNIT_ASSERT( publicTransport.isEqual( privateTransport ) ); }
void NatMaintainer::sendKeepAliveToExternalKeepAliveList( void ) { OsLock lock( mExternalKeepAliveListMutex ); UtlSListIterator iter( mExternalKeepAliveList ); TransportData* pTransportToKeepAlive; while( ( pTransportToKeepAlive = (TransportData*)iter() ) ) { sendKeepAliveToEndpoint( pTransportToKeepAlive->getAddress(), pTransportToKeepAlive->getPort() ); } }
void testTransportDataSetGet() { TransportData transportData; transportData.setAddress( "47.10.10.10" ); transportData.setPort( 6666 ); transportData.setTransportProtocol( "tcp" ); CPPUNIT_ASSERT( transportData.getAddress() == "47.10.10.10" ); CPPUNIT_ASSERT( transportData.getPort() == 6666 ); CPPUNIT_ASSERT( transportData.getTransportProtocol() == "tcp" ); }
void testEndpointDescriptor_RemoteNATedTcp() { NatTraversalRules natRules; UtlString rulesFile(TEST_DATA_DIR "/NatTraversalAgent/nattraversalrules1.xml"); CPPUNIT_ASSERT( natRules.loadRules( rulesFile ) == OS_SUCCESS ); Url remoteNATedContactUri( "<sip:[email protected]:6060;transport=tcp;x-sipX-pubcontact=47.135.162.145%3A10491%3Btransport%3Dtcp>" ); EndpointDescriptor endpointDescriptor( remoteNATedContactUri, natRules ); CPPUNIT_ASSERT( endpointDescriptor.getLocationCode() == REMOTE_NATED ); TransportData publicTransport = endpointDescriptor.getPublicTransportAddress(); CPPUNIT_ASSERT( publicTransport.getAddress() == "47.135.162.145" ); CPPUNIT_ASSERT( publicTransport.getPort() == 10491 ); CPPUNIT_ASSERT( publicTransport.getTransportProtocol() == "tcp" ); TransportData privateTransport = endpointDescriptor.getNativeTransportAddress(); CPPUNIT_ASSERT( privateTransport.getAddress() == "192.168.1.11" ); CPPUNIT_ASSERT( privateTransport.getPort() == 6060 ); CPPUNIT_ASSERT( privateTransport.getTransportProtocol() == "tcp" ); CPPUNIT_ASSERT( !publicTransport.isEqual( privateTransport ) ); }