[pjsip] Building errors under Linux (Semaphore, SRTP functions and -members)

Helmut Wolf HelmutWolf1 at gmx.de
Mon Feb 18 08:37:30 EST 2008


Hi Benny,

Ups. No, I have only called "make clean" and then "make".

Thank you for the quick answer!

Best regards,
Helmut


-----Ursprüngliche Nachricht-----
Von: pjsip-bounces at lists.pjsip.org [mailto:pjsip-bounces at lists.pjsip.org] Im Auftrag von Benny Prijono
Gesendet: Montag, 18. Februar 2008 13:19
An: pjsip list
Betreff: Re: [pjsip] Building errors under Linux (Semaphore,SRTP functions and -members)

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
>

_______________________________________________
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





More information about the pjsip mailing list