Opened 17 years ago

Closed 16 years ago

Last modified 16 years ago

#452 closed enhancement (fixed)

SRTP development

Reported by: bennylp Owned by: nanang
Priority: normal Milestone: release-0.9.0
Component: common Version: users_nanang
Keywords: Cc:
Backport to 1.x milestone: Backported:


Change History (22)

comment:1 Changed 17 years ago by bennylp

  • Owner changed from bennylp to nanang

comment:2 Changed 17 years ago by nanang

  • Status changed from new to assigned

In r1697 imported libsrtp library to third_party directory.

comment:3 Changed 17 years ago by nanang

In r1698:

  • Add directory srtp to third_party/build directory
  • Add libsrtp project & integrate it to pjproject vs8 solution
  • Add transport_srtp.h & .c
  • Modify project dependencies to include libsrtp
  • Modify Samples-vc.mak, add libsrtp as third party library
  • Modify transport interface
  • Modify transport_ice & transport_udp to accomodate new transport interface
  • Modify other files that uses transport

comment:4 Changed 17 years ago by bennylp

In r1699:

  • Added Visual Studion 6 project
  • Changed config.h to compile in VS6
  • Removed invalid reference to config files in VS8 project

comment:5 Changed 17 years ago by nanang

In r1700:

  • change libsrtp on rand_source.c to disable rand_s which causing breakpoint assert
  • change pjsua_media.c:
    • allow RTP/SAVP transport
    • set srtp transport creation option to 0 (prev:auto destroy underlying transport is enabled)
  • new pjmedia errno:

PJMEDIA_SRTP_ESDPREQSECTP: Secure transport required in SDP media descriptor.
PJMEDIA_SRTP_ESDPAMBIGUEANS: SDP contains ambigue answer.

  • transport_srtp:
    • updating log & error code
    • bug fix: release pool after destroying other objects

comment:6 Changed 17 years ago by nanang

In r1701:
put a note about disabling the 'rand_s' block in libsrtp file rand_source.c:111,
it causes assertion on vs8.

comment:7 Changed 17 years ago by bennylp

In r1702:

  • changed SRTP API according to test document specification
  • added media_create() callback with media_index.

comment:8 Changed 17 years ago by bennylp


  • Added PJSIP_ESESSIONINSECURE error code in sip_errno to require that secure session shall be used


  • updated ICE media transport's media_create() to consider the media index when updating SDP


  • SRTP transport is now created and destroyed on every call (ie. it's not reused)
  • Added use_srtp option in pjsua_account_config to control SRTP usage (e.g. disabled, optional, or mandatory)
  • Added srtp_secure_signaling option in pjsua_account_config to control whether SRTP requires secure signaling

comment:9 Changed 17 years ago by nanang

Updated errno.h & .c to accomodate SRTP Transport & libsrtp error code

comment:10 Changed 17 years ago by nanang


  • implemented new flow based on new SRTP transport interface and data structure
  • applied 3 SRTP operation mode: DISABLED, OPTIONAL, MANDATORY
  • applied new error codes

comment:11 Changed 17 years ago by nanang

r1712: changed libsrtp error string resolver

comment:12 Changed 17 years ago by nanang

changed transport_srtp.c: (re)applied setting close member transport & added more validation checks

comment:13 Changed 17 years ago by bennylp

In r1718:

  • Added and updated Makefiles for SRTP (tested on OSX)
  • SRTP's config.h renamed to srtp_config.h since it conflicts with speex's config.h
  • Updated few libsrtp files to use srtp_config.h instead
  • Fixed const warnings in pjsua_call.c
  • Fixed compilation error in streamutil.c
  • Fixed compilation warning about duplicate declaration of pjmedia_sdp_session in pjmedia/transport.h

comment:14 Changed 17 years ago by bennylp

In r1719:

  • Updated VS6/VS8 project to use srtp_config.h
  • Added srtp_err.c to integrate libsrtp logging to pjlib logging
  • Updated VS6/VS8/Makefile files for above
  • Updated PJSUA-LIB to always instantiate SRTP transport
  • Fixed bug in pjsua_app.c with regard to --use-srtp option handling

comment:15 Changed 17 years ago by nanang

Added fields use_srtp and srtp_secure_signaling to pjsua_config as lookup fields for pjsua_acc_config_default.

comment:16 Changed 17 years ago by nanang

bugs fixed in transport_srtp.c:

  • default crypto-suites in pjmedia_srtp_setting_default without crypto 'NULL'
  • problem in bypass SRTP mechanism

comment:17 Changed 17 years ago by nanang

In r1722:

  • Bug fixed in mandatory mode, change local media sdp transport from RTP/AVP to RTP/SAVP
  • Bug fixed for setting libsrtp flags (no encrypt, no auth)
  • Changed log level & messages
  • Put some more comments

comment:18 Changed 17 years ago by nanang

In r1723:

  • Applied preprocessor PJMEDIA_HAS_SRTP in PJMEDIA & PJSUA.

comment:19 Changed 17 years ago by nanang

r1724: Bug fixed in remote crypto variable to be compared to local offers in media_start.

comment:20 Changed 16 years ago by nanang

In r1726:

  • added part to test specific key, only for testing purpose
  • replaced pool instance for parsing SDP and generating key (from suplied pool param of media_create/start to internal srtp pool)
  • bug fixed in send rtcp callback
  • changed mutex type from null mutex to recursive mutex
  • changed srtp transport destroy: using mutex and reordering step.

comment:21 Changed 16 years ago by bennylp

  • Resolution set to fixed
  • Status changed from assigned to closed

Moved to TRUNK!

comment:22 Changed 16 years ago by bennylp

See ticket #61 for integration of this branch to trunk.

Note: See TracTickets for help on using tickets.