OrtpZrtpContext* ortp_zrtp_multistream_new(OrtpZrtpContext* activeContext, RtpSession *s, OrtpZrtpParams *params) { int32_t length; char *multiparams=NULL; int i=0; if (!zrtp_isMultiStreamAvailable(activeContext->zrtpContext)) { ortp_warning("could't add stream: mutlistream not supported by peer"); } if (zrtp_isMultiStream(activeContext->zrtpContext)) { ortp_fatal("Error: should derive multistream from DH or preshared modes only"); } multiparams=zrtp_getMultiStrParams(activeContext->zrtpContext, &length); ortp_message("ZRTP multiparams length is %d", length); for (;i<length;i++) { ortp_message("%d", multiparams[i]); } ortp_message("Initializing ZRTP context"); ZrtpContext *context = zrtp_CreateWrapper(); OrtpZrtpContext *userData=createUserData(context); userData->session=s; ortp_zrtp_configure(context); zrtp_initializeZrtpEngine(context, &userData->zrtp_cb, userAgentStr, params->zid_file, userData, 0); ortp_message("setting zrtp_setMultiStrParams"); zrtp_setMultiStrParams(context,multiparams,length); return ortp_zrtp_configure_context(userData,s,params); }
OrtpZrtpContext* ortp_zrtp_context_new(RtpSession *s, OrtpZrtpParams *params){ ZrtpContext *context = zrtp_CreateWrapper(); OrtpZrtpContext *userData=createUserData(context); userData->session=s; ortp_zrtp_configure(context); ortp_message("Initialized ZRTP context"); zrtp_initializeZrtpEngine(context, &userData->zrtp_cb, userAgentStr, params->zid_file, userData, 0); return ortp_zrtp_configure_context(userData,s,params); }
PJ_DECL(pj_status_t) pjmedia_transport_zrtp_initialize(pjmedia_transport *tp, const char *zidFilename, pj_bool_t autoEnable) { struct tp_zrtp *zrtp = (struct tp_zrtp*)tp; PJ_ASSERT_RETURN(tp, PJ_EINVAL); zrtp_initializeZrtpEngine(zrtp->zrtpCtx, &c_callbacks, zrtp->clientIdString, zidFilename, zrtp, zrtp->mitmMode); zrtp->enableZrtp = autoEnable; return PJ_SUCCESS; }