123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- /*
- * libZRTP SDK library, implements the ZRTP secure VoIP protocol.
- * Copyright (c) 2006-2009 Philip R. Zimmermann. All rights reserved.
- * Contact: http://philzimmermann.com
- * For licensing and other legal details, see the file zrtp_legal.c.
- *
- * Viktor Krykun <v.krikun at zfoneproject.com>
- */
- #include "zrtp.h"
- /** libzrtp test elements identifier */
- typedef uint32_t zrtp_test_id_t;
- /** Defines constant for unknown test element identifier */
- #define ZRTP_TEST_UNKNOWN_ID 0
- /** Default lengths for libzrtp test string buffers */
- #define ZRTP_TEST_STR_LEN 128
- /** libzrtp test endpoint configuration */
- typedef struct {
- zrtp_config_t zrtp; /** libzrtp global configuration parameters */
- unsigned generate_traffic; /** switch On to emulate RTP/RTCP traffic generation. Off by default. */
- } zrtp_test_endpoint_cfg_t;
- /** ZRTP test session parameters*/
- typedef struct {
- zrtp_profile_t zrtp; /** libzrtp session parameters */
- unsigned streams_count; /** number of zrtp streams to be attached to the session */
- zrtp_signaling_role_t role; /** signaling role, default is ZRTP_SIGNALING_ROLE_UNKNOWN */
- unsigned is_enrollment; /** true if enrollment session should be created */
- } zrtp_test_session_cfg_t;
- /** ZRTP test stream info */
- typedef struct {
- zrtp_stream_info_t zrtp; /** libzrtp stream info */
- unsigned zrtp_events_queueu[128]; /** list of received zrtp events*/
- unsigned zrtp_events_count; /** number of received events */
- } zrtp_test_stream_info_t;
- /** ZRTP test session state snapshot */
- typedef struct {
- zrtp_session_info_t zrtp; /** libzrtp session info*/
- zrtp_test_stream_info_t streams[ZRTP_MAX_STREAMS_PER_SESSION]; /** array of attached streams info */
- unsigned streams_count; /** number streams attached to the session */
- } zrtp_test_session_info_t;
- /** *ZRTP test channel state */
- typedef struct {
- zrtp_test_stream_info_t left; /** one-leg zrtp stream */
- zrtp_test_stream_info_t right; /** second-leg zrtp stream */
- unsigned char is_secure; /** enabled when both streams in the channel are secure */
- } zrtp_test_channel_info_t;
- /**
- * Initialize zrtp test endpoint configuration with default values
- * @param cfg - endpoint config to initialize
- */
- void zrtp_test_endpoint_config_defaults(zrtp_test_endpoint_cfg_t *cfg);
- /**
- * ZRTP test endpoint constructor
- * One endpoint is created, it starts processing threads and ready to emulate ZRTP exchange.
- *
- * @param cfg - endpoint configuration
- * @param name - endpoint name for debug purposes and cache naming, e.h "Alice", "Bob".
- * @param id - just created endpoint identifier will be placed here
- *
- * @return zrtp_status_ok on success or some of zrtp_status_t error codes on failure
- */
- zrtp_status_t zrtp_test_endpoint_create(zrtp_test_endpoint_cfg_t *cfg,
- const char *name,
- zrtp_test_id_t *id);
- /**
- * ZRTP test endpoint destructor
- * zrtp_test_endpoint_destroy() stops processing threads and release all
- * recurses allocated in zrtp_test_endpoint_create().
- *
- * @param id - endpoint identifier
- * @return zrtp_status_ok on success or some of zrtp_status_t error codes on failure
- */
- zrtp_status_t zrtp_test_endpoint_destroy(zrtp_test_id_t id);
- /**
- * Enables test session config with default values
- * @param cfg - session config for initialization
- */
- void zrtp_test_session_config_defaults(zrtp_test_session_cfg_t *cfg);
- /**
- * Create zrtp test session
- *
- * @param endpoint - test endpoint creating endpoint should belong to
- * @param cfg - session parameters
- * @param id - created session identifier will be placed here
- * @return zrtp_status_ok on success or some of zrtp_status_t error codes on failure
- */
- zrtp_status_t zrtp_test_session_create(zrtp_test_id_t endpoint,
- zrtp_test_session_cfg_t *cfg,
- zrtp_test_id_t *id);
- zrtp_status_t zrtp_test_session_destroy(zrtp_test_id_t id);
- zrtp_status_t zrtp_test_session_get(zrtp_test_id_t id, zrtp_test_session_info_t *info);
- /**
- * Get stream Id by it's index in zrtp session
- *
- * @param session_id - zrtp test session id where needed stream should be taken
- * @param idx - stream index
- * @return found stream id, or ZRTP_TEST_UNKNOWN_ID if idex is out of stream array range
- */
- zrtp_test_id_t zrtp_test_session_get_stream_by_idx(zrtp_test_id_t session_id, unsigned idx);
- zrtp_status_t zrtp_test_stream_get(zrtp_test_id_t id, zrtp_test_stream_info_t *info);
- zrtp_status_t zrtp_test_channel_create(zrtp_test_id_t left_stream, zrtp_test_id_t right_stream, zrtp_test_id_t *id);
- zrtp_status_t zrtp_test_channel_create2(zrtp_test_id_t left_session, zrtp_test_id_t right_session, unsigned stream_idx, zrtp_test_id_t *id);
- zrtp_status_t zrtp_test_channel_destroy(zrtp_test_id_t id);
- zrtp_status_t zrtp_test_channel_start(zrtp_test_id_t id);
- zrtp_status_t zrtp_test_channel_get(zrtp_test_id_t id, zrtp_test_channel_info_t *info);
- zrtp_stream_t *zrtp_stream_for_test_stream(zrtp_test_id_t stream_id);
- unsigned zrtp_stream_did_event_receive(zrtp_test_id_t stream_id, unsigned event);
|