Example #1
0
static OrtpZrtpContext* createUserData(ZrtpContext *context) {
	OrtpZrtpContext *userData=ortp_new0(OrtpZrtpContext,1);
	userData->zrtpContext=context;
	userData->timerWillTriggerAt=0;
	userData->last_recv_zrtp_seq_number=0;
	userData->last_sent_zrtp_seq_number=rand()+1; // INT_MAX+1 (signed)

	userData->srtpRecv=NULL;
	userData->srtpSend=NULL;
	ortp_mutex_init(&userData->mutex,NULL);

	memset(&userData->zrtp_cb,0,sizeof(userData->zrtp_cb));
	userData->zrtp_cb.zrtp_activateTimer=&ozrtp_activateTimer;
	userData->zrtp_cb.zrtp_cancelTimer=&ozrtp_cancelTimer;
	userData->zrtp_cb.zrtp_handleGoClear=&ozrtp_handleGoClear;
	userData->zrtp_cb.zrtp_rtpSecretsOn=&ozrtp_rtpSecretsOn;
	userData->zrtp_cb.zrtp_sendDataZRTP=&ozrtp_sendDataZRTP;
	userData->zrtp_cb.zrtp_sendInfo=&ozrtp_sendInfo;
	userData->zrtp_cb.zrtp_srtpSecretsOff=&ozrtp_srtpSecretsOff;
	userData->zrtp_cb.zrtp_srtpSecretsReady=&ozrtp_srtpSecretsReady;
	userData->zrtp_cb.zrtp_synchEnter=&ozrtp_synchEnter;
	userData->zrtp_cb.zrtp_synchLeave=&ozrtp_synchLeave;
	userData->zrtp_cb.zrtp_zrtpNegotiationFailed=&ozrtp_zrtpNegotiationFailed;
	userData->zrtp_cb.zrtp_zrtpNotSuppOther=&ozrtp_zrtpNotSuppOther;

	return userData;
}
Example #2
0
/**
 * Creates a pair of Secure-RTP/Secure-RTCP RtpTransport's.
 * oRTP relies on libsrtp (see http://srtp.sf.net ) for secure RTP encryption.
 * This function creates a RtpTransport object to be used to the RtpSession using
 * rtp_session_set_transport().
 * @srtp: the srtp_t session to be used
 * 
**/
int srtp_transport_new(srtp_t srtp, RtpTransport **rtpt, RtpTransport **rtcpt ){
	if (rtpt) {
		(*rtpt)=ortp_new0(RtpTransport,1);
		(*rtpt)->data=srtp;
		(*rtpt)->t_getsocket=srtp_getsocket;
		(*rtpt)->t_sendto=srtp_sendto;
		(*rtpt)->t_recvfrom=srtp_recvfrom;
	}
	if (rtcpt) {
		(*rtcpt)=ortp_new0(RtpTransport,1);
		(*rtcpt)->data=srtp;
		(*rtcpt)->t_getsocket=srtcp_getsocket;
		(*rtcpt)->t_sendto=srtcp_sendto;
		(*rtcpt)->t_recvfrom=srtcp_recvfrom;
	}
	return 0;
}
PayloadType *payload_type_clone(PayloadType *payload)
{
	PayloadType *newpayload=(PayloadType *)ortp_new0(PayloadType,1);
	memcpy(newpayload,payload,sizeof(PayloadType));
	newpayload->mime_type=ortp_strdup(payload->mime_type);
	if (payload->recv_fmtp!=NULL) {
		newpayload->recv_fmtp=ortp_strdup(payload->recv_fmtp);
	}
	if (payload->send_fmtp!=NULL){
		newpayload->send_fmtp=ortp_strdup(payload->send_fmtp);
	}
	newpayload->flags|=PAYLOAD_TYPE_ALLOCATED;
	return newpayload;
}
Example #4
0
RtpProfile * rtp_profile_new(const char *name)
{
    RtpProfile *prof=(RtpProfile*)ortp_new0(RtpProfile,1);
    rtp_profile_set_name(prof,name);
    return prof;
}
PayloadType *payload_type_new()
{
	PayloadType *newpayload=(PayloadType *)ortp_new0(PayloadType,1);
	newpayload->flags|=PAYLOAD_TYPE_ALLOCATED;
	return newpayload;
}
OList *o_list_new(void *data){
	OList *new_elem=(OList*)ortp_new0(OList,1);
	new_elem->data=data;
	return new_elem;
}