int doTest() { // should be valid? //RTPSession tx(); ExtZrtpSession tx(/*pattern.getSsrc(),*/ pattern.getSenderAddress(), pattern.getSenderPort()); // config.clear(); // config.setStandardConfig(); config.addAlgo(PubKeyAlgorithm, zrtpPubKeys.getByName("DH2k")); config.addAlgo(PubKeyAlgorithm, zrtpPubKeys.getByName("EC38")); config.addAlgo(PubKeyAlgorithm, zrtpPubKeys.getByName("EC25")); config.addAlgo(HashAlgorithm, zrtpHashes.getByName("S384")); // config.addAlgo(CipherAlgorithm, zrtpSymCiphers.getByName("2FS3")); // config.addAlgo(CipherAlgorithm, zrtpSymCiphers.getByName("AES3")); config.addAlgo(SasType, zrtpSasTypes.getByName("B256")); tx.initialize("test_t.zid", true, &config); // At this point the Hello hash is available. See ZRTP specification // chapter 9.1 for further information when an how to use the Hello // hash. int numSupportedVersion = tx.getNumberSupportedVersions(); cout << "TX Hello hash 0: " << tx.getHelloHash(0) << endl; cout << "TX Hello hash 0 length: " << tx.getHelloHash(0).length() << endl; if (numSupportedVersion > 1) { cout << "TX Hello hash 1: " << tx.getHelloHash(1) << endl; cout << "TX Hello hash 1 length: " << tx.getHelloHash(1).length() << endl; } tx.setUserCallback(new MyUserCallback(&tx)); tx.setSchedulingTimeout(10000); tx.setExpireTimeout(1000000); tx.startRunning(); tx.setPayloadFormat(StaticPayloadFormat(sptPCMU)); if (!tx.addDestination(pattern.getReceiverAddress(), pattern.getReceiverPort()) ) { return 1; } tx.startZrtp(); // 2 packets per second (packet duration of 500ms) uint32 period = 500; uint16 inc = tx.getCurrentRTPClockRate()/2; TimerPort::setTimer(period); uint32 i; for (i = 0; i < pattern.getPacketsNumber(); i++ ) { tx.putData(i*inc, pattern.getPacketData(i), pattern.getPacketSize(i)); cout << "Sent some data: " << i << endl; Thread::sleep(TimerPort::getTimer()); TimerPort::incTimer(period); } tx.putData(i*inc, (unsigned char*)"exit", 5); Thread::sleep(TimerPort::getTimer()); return 0; }
int doTest() { // should be valid? //RTPSession tx(); // Initialize with local address and Local port is detination port +2 - keep RTP/RTCP port pairs ExtZrtpSession tx(pattern.getSsrc(), pattern.getSenderAddress(), pattern.getSenderPort()); tx.initialize("test_t.zid"); tx.setSchedulingTimeout(10000); tx.setExpireTimeout(1000000); tx.startRunning(); tx.setPayloadFormat(StaticPayloadFormat(sptPCMU)); if (!tx.addDestination(pattern.getReceiverAddress(), pattern.getReceiverPort()) ) { return 1; } tx.startZrtp(); // 2 packets per second (packet duration of 500ms) uint32 period = 500; uint16 inc = tx.getCurrentRTPClockRate()/2; TimerPort::setTimer(period); uint32 i; for (i = 0; i < pattern.getPacketsNumber(); i++ ) { tx.putData(i*inc, pattern.getPacketData(i), pattern.getPacketSize(i)); cout << "Sent some data: " << i << endl; Thread::sleep(TimerPort::getTimer()); TimerPort::incTimer(period); } tx.putData(i*inc, (unsigned char*)"exit", 5); Thread::sleep(200); return 0; }
int doTest() { ExtZrtpSession rx(pattern.getSsrc()+1, pattern.getReceiverAddress(), pattern.getReceiverPort()); rx.initialize("test_r.zid"); rx.setSchedulingTimeout(10000); rx.setExpireTimeout(1000000); rx.startRunning(); rx.setPayloadFormat(StaticPayloadFormat(sptPCMU)); // arbitrary number of loops to provide time to start transmitter if (!rx.addDestination(pattern.getSenderAddress(), pattern.getSenderPort()) ) { return 1; } rx.startZrtp(); for ( int i = 0; i < 5000 ; i++ ) { const AppDataUnit* adu; while ( (adu = rx.getData(rx.getFirstTimestamp())) ) { cerr << "got some data: " << adu->getData() << endl; if (*adu->getData() == 'e') { delete adu; return 0; } delete adu; } Thread::sleep(70); } return 0; }
int doTest() { // should be valid? //RTPSession tx(); ExtZrtpSession tx(pattern.getSsrc(), pattern.getSenderAddress(), pattern.getSenderPort()); // SymmetricZRTPSession tx(pattern.getSsrc(), InetHostAddress("localhost")); tx.setSchedulingTimeout(10000); tx.setExpireTimeout(1000000); tx.startRunning(); tx.setPayloadFormat(StaticPayloadFormat(sptPCMU)); // We are sender: if (!tx.addDestination(pattern.getReceiverAddress(), pattern.getReceiverPort()) ) { return 1; } // 2 packets per second (packet duration of 500ms) uint32 period = 500; uint16 inc = tx.getCurrentRTPClockRate()/2; TimerPort::setTimer(period); uint32 i; for (i = 0; i < pattern.getPacketsNumber(); i++ ) { tx.putData(i*inc, pattern.getPacketData(i), pattern.getPacketSize(i)); cout << "Sent some data: " << i << endl; Thread::sleep(TimerPort::getTimer()); TimerPort::incTimer(period); } tx.putData(i*inc, (unsigned char*)"exit", 5); Thread::sleep(TimerPort::getTimer()); return 0; }
int doTest() { ExtZrtpSession rx( /*pattern.getSsrc()+1,*/ pattern.getReceiverAddress(), pattern.getReceiverPort()); rx.initialize("test_r.zid"); // At this point the Hello hash is available. See ZRTP specification // chapter 9.1 for further information when an how to use the Hello // hash. int numSupportedVersion = rx.getNumberSupportedVersions(); cout << "RX Hello hash 0: " << rx.getHelloHash(0) << endl; cout << "RX Hello hash 0 length: " << rx.getHelloHash(0).length() << endl; if (numSupportedVersion > 1) { cout << "RX Hello hash 1: " << rx.getHelloHash(1) << endl; cout << "RX Hello hash 1 length: " << rx.getHelloHash(1).length() << endl; } rx.setUserCallback(new MyUserCallback(&rx)); rx.setSchedulingTimeout(10000); rx.setExpireTimeout(1000000); rx.startRunning(); rx.setPayloadFormat(StaticPayloadFormat(sptPCMU)); // arbitrary number of loops to provide time to start transmitter if (!rx.addDestination(pattern.getSenderAddress(), pattern.getSenderPort()) ) { return 1; } rx.startZrtp(); for ( int i = 0; i < 5000 ; i++ ) { const AppDataUnit* adu; while ( (adu = rx.getData(rx.getFirstTimestamp())) ) { cerr << "got some data: " << adu->getData() << endl; if (*adu->getData() == 'e') { delete adu; return 0; } delete adu; } Thread::sleep(500); } return 0; }