On 2/18/08, Helmut Wolf <HelmutWolf1 at gmx.de> wrote: > Hi Benny, > > Thank you for fixing the bug! After SVN update I can't build pjsip project under Linux (Windows works fine): > > 1) Unknown type sem_t. > > I have found different defines for Semaphore: > > The define in /pjlib/include/pj/config.h:598 is: > #ifndef PJ_HAS_SEMAPHORE > #define PJ_HAS_SEMAPHORE 1 > #endif > > But the usage in /pjlib/src/pj/os_core_unix.c:37 is: > #if defined(PJ_HAS_SEMAPHORE_H) && PJ_HAS_SEMAPHORE_H != 0 > # include <semaphore.h> > #endif > > In source file I have replaced PJ_HAS_SEMAPHORE_H with PJ_HAS_SEMAPHORE and it works. > Simple question first, have you re-run the configure script? I've fixed the SRTP build error below in r1802, thanks! cheers, -benny > > 2) Missing reference to some srtp functions in transport_srtp.c > > I have defined PJMEDIA_HAS_SRTP to 0 in config_site. With this define I got another errors (Windows and Linux) which I have fixed > with adding > > #if defined(PJMEDIA_HAS_SRTP) && (PJMEDIA_HAS_SRTP != 0) > ... > #endif > > I have added this on the following code blocks: > > ### pjsua_app.c ### > > Line 1326: > > /* SRTP */ > if (app_config.cfg.use_srtp != PJSUA_DEFAULT_USE_SRTP) { > pj_ansi_sprintf(line, "--use-srtp %d\n", > app_config.cfg.use_srtp); > pj_strcat2(&cfg, line); > } > if (app_config.cfg.srtp_secure_signaling != > PJSUA_DEFAULT_SRTP_SECURE_SIGNALING) > { > pj_ansi_sprintf(line, "--srtp-secure %d\n", > app_config.cfg.srtp_secure_signaling); > pj_strcat2(&cfg, line); > } > > ### pcaputil.c:248 ### > > /* Create SRTP transport is needed */ > if (srtp_crypto->slen) { > pjmedia_srtp_crypto crypto; > > pj_bzero(&crypto, sizeof(crypto)); > crypto.key = *srtp_key; > crypto.name = *srtp_crypto; > T( pjmedia_transport_srtp_create(app.mept, NULL, NULL, &app.srtp) ); > T( pjmedia_transport_srtp_start(app.srtp, &crypto, &crypto) ); > } > > > ### pcaputil.c:157 ### > > /* Decrypt SRTP */ > if (app.srtp) { > int len = sz; > status = pjmedia_transport_srtp_decrypt_pkt(app.srtp, PJ_TRUE, > buf, &len); > if (status != PJ_SUCCESS) { > char errmsg[PJ_ERR_MSG_SIZE]; > pj_strerror(status, errmsg, sizeof(errmsg)); > printf("SRTP packet decryption failed, skipping packet: %s\n", > errmsg); > continue; > } > sz = len; > > /* Decode RTP packet again */ > status = pjmedia_rtp_decode_rtp(&app.rtp_sess, buf, sz, &r, > &p, payload_size); > if (status != PJ_SUCCESS) { > char errmsg[PJ_ERR_MSG_SIZE]; > pj_strerror(status, errmsg, sizeof(errmsg)); > printf("Not RTP packet, skipping packet: %s\n", errmsg); > continue; > } > } > > Now building project on Windows and Linux works fine. > > Best regards, > Helmut > > > > > _______________________________________________ > Visit our blog: http://blog.pjsip.org > > pjsip mailing list > pjsip at lists.pjsip.org > http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org >