PJSIP媒体错误

时间:2016-02-01 11:07:11

标签: c audio raspberry-pi pjsip

我正在使用Raspberry Pi和PJSIP Softphone库,我有一个Raspberry,一切正常,一个总是抛出错误。声音设备是正确配置的USB耳机,意味着我可以通过aplay path/to/file播放声音。

我刚刚通过按钮开始通话:

if ( button[1] ) { 
    digitalWrite( GPIO_LED_CALL3_AKTIVE, HIGH );
    while ( GPIO_Read( GPIO_BTN_CALL3 ) );
    dest_uri = pj_str( "sip:6001@" SIP_DOMAIN );
    call_init = 1;
}   
/* Initiate Call if call_init was set */
if ( call_init ) { 
    call_init = 0;
    printf ( "\n=============   Call to %s   =============\n",dest_uri );
    int status = pjsua_call_make_call( acc_id, &dest_uri, 0, NULL, NULL, NULL );
    delay ( 1000 );
}

抛出的错误如下所示

Expression 'SetApproximateSampleRate( pcm, hwParams, sr )' failed in 'src/../../../portaudio/src/hostapi/alsa/pa_linux_alsa.c', line: 1294
Expression 'PaAlsaStreamComponent_InitialConfigure( &self->capture, inParams, self->primeBuffers, hwParamsCapture, &realSr )' failed in 'src/../../../portaudio/src/hostapi/alsa/pa_linux_alsa.c', line: 1870
Expression 'PaAlsaStream_Configure( stream, inputParameters, outputParameters, sampleRate, framesPerBuffer, &inputLatency, &outputLatency, &hostBufferSizeMode )' failed in 'src/../../../portaudio/src/hostapi/alsa/pa_linux_alsa.c', line: 1994
Expression 'SetApproximateSampleRate( pcm, hwParams, sr )' failed in 'src/../../../portaudio/src/hostapi/alsa/pa_linux_alsa.c', line: 1294
Expression 'PaAlsaStreamComponent_InitialConfigure( &self->capture, inParams, self->primeBuffers, hwParamsCapture, &realSr )' failed in 'src/../../../portaudio/src/hostapi/alsa/pa_linux_alsa.c', line: 1870
Expression 'PaAlsaStream_Configure( stream, inputParameters, outputParameters, sampleRate, framesPerBuffer, &inputLatency, &outputLatency, &hostBufferSizeMode )' failed in 'src/../../../portaudio/src/hostapi/alsa/pa_linux_alsa.c', line: 1994

我得到一个短暂的音频输出,在1或2秒后停止。

我按照以下内容构建了PJSIP:

    sudo su

    apt−get install build−essential automake autoconf libtool \
       libasound2−dev libpulse−dev libssl−dev libsamplerate0−dev \
       libcommoncpp2−dev libccrtp−dev libzrtpcpp−dev libdbus−1−dev \
       libdbus−c++−dev libyaml−dev libpcre3-dev libgsm1−dev \ 
       libspeex−dev libspeexdsp−dev libcelt−dev
        cd /home/pi
        wget http://www.pjsip.org/release/2.4.5/pjproject−2.4.5.tar.bz2 
        tar xvjf pjproject −2.4.5.tar.bz2
        cd pjproject−2.4.5.tar.bz2
        ./configure && make dep && make

据我所知,它现在是一个编程错误,因为代码可以在一个设备上运行。那么是音频未命中配置还是构建错误的pjsip?也许我忘了包裹或某事?

如果您需要有关代码的更多信息,我可以为您提供更多信息。谢谢你的时间。

编辑:

我的播放方法如下:

static void ringback_start( pjsua_call_id call_id ) {
    print_Debug_Info( "*** Starting ringback to out_call ***\n" );
    pj_str_t fname = pj_str( "Sounds/Freizeichen3.wav" );
    pjsua_player_create( &fname, 0, &cm.player_id );
    pjsua_conf_connect( pjsua_player_get_conf_port( cm.player_id ), 0 );
}

static void ringback_stop( pjsua_call_id call_id ) {
    print_Debug_Info( "*** Stopping ringback to out_call ***\n" );
    pjsua_conf_disconnect( pjsua_player_get_conf_port( cm.player_id ), 0 );
    pjsua_player_destroy( cm.player_id );
}

我有一种感觉,这可能会产生错误,因为我甚至在建立呼叫之前就会收到错误。

0 个答案:

没有答案