zrtp_pbx.h File Reference

#include "zrtp_types.h"

Go to the source code of this file.

Functions

void zrtp_start_registration_stream (zrtp_stream_ctx_t *stream)
 Start ZRTP enrollment ritual on Server side This is the equivalent of zrtp_start_stream(). By calling zrtp_start_registration_stream() libzrtp prepares to engage in the enrollment ritual: send special flag in Confirm and prepare fo generating the MiTM secret. The user-space application will be notified about the status through the event system.
zrtp_status_t zrtp_secure_registration_stream (zrtp_stream_ctx_t *stream)
 Continue ZRTP enrollment ritual (from CLEAR state) on Server side. This is equivalent to zrtp_secure_stream() but with enrollment ritual. Use this function instead of zrtp_start_registration_stream() in case when "autosecure" option is disabled for some reason.
zrtp_status_t zrtp_register_with_trusted_mitm (zrtp_stream_ctx_t *stream)
 Confirms enrollment ritual on Client side Invocation of this function by event zrtp_event_t::ZRTP_EVENT_IS_CLIENT_ENROLLMENT confirms enrollment process; libzrtp generates special secret which will be used to "Sign" all futher calls with the trusted MiTM.
zrtp_status_t zrtp_resolve_mitm_call (zrtp_stream_ctx_t *stream1, zrtp_stream_ctx_t *stream2)
 Automatically handle ZRTP call in PBX environment This function may be called to handle ZRTP call between two ZRTP endpoints through PBX. As described in ID sec 8.3., there are several problems with ZRTP in PBX environment. zrtp_resolve_mitm_call() implements several steps to resolve such problems:
  • detect enrolled and non enrolled endpoint. If both sides are enrolled - one side for the SAS transfer will be chousen automatically;
  • start SAS transfer with the enrolled endpoint;
  • update flags and SAS rendering scheme if necessary. In other words: After switching to SECURE state, this is the one function which should be called to handle ZRTP call correctly. If you want to have more flexability in MiTM mode - resolve ambiguity manually using functions listed below.

zrtp_status_t zrtp_update_remote_options (zrtp_stream_ctx_t *stream, zrtp_sas_id_t transf_sas_scheme, zrtp_string8_t *transf_sas_value, uint8_t transf_ac_flag, uint8_t transf_d_flag)
 Updates remote-side SAS value and rendering scheme zrtp_update_remote_sas() initiates process of "SAS transferring" between trusted MiTM and user. It allows to change as SAS rendering scheme as a SAS value and related flags as well. It the MiTM needs to update just one of the parameters - the other one should be set to NULL. libzrtp informs about status of the SAS updating through zrtp_event_t::ZRTP_EVENT_REMOTE_SAS_UPDATED. Call this function in SECURE state only.
uint8_t zrtp_is_user_enrolled (zrtp_stream_ctx_t *stream)
 Check if user at the end of the stream stream is enrolled.
zrtp_stream_ctx_t * zrtp_choose_one_enrolled (zrtp_stream_ctx_t *stream1, zrtp_stream_ctx_t *stream2)
 Choose single enrolled stream from two enrolled This function may be used to resolve ambiguity with call transferring between two enrolled users.


This file is part of the documentation for Zfone.
Copyright ©  2006-2008 Philip R. Zimmermann. All rights reserved.
Generated on Mon November 10 2008 by doxygen 1.5.7-20060202. Written by Viktor Krikun, © 2006-2008