dileep r | 1 Feb 12:15
Picon

Assertion failed: (strm), function interruptionListener, file ../src/pjmedia-audiodev/coreaudio_dev.c, line 770.

Hi All.

   I have been getting this assertion failure in PJSIP 
       Assertion failed: (strm), function interruptionListener, file ../src/pjmedia-audiodev/coreaudio_dev.c, line 770.
                                  , even though i'm not using the any PJSIP media files. I'm using PJSIP version 1.8 compiled for IOS 5
 

 Any one can help me on this?

Thanks in advance

Dileep
Gaurav iPhone | 1 Feb 12:13
Picon

How to set Env variables and Symb links to arm compiler in pjsip 1.12 for ios 5 compilation

Dear All,


I am integrating the g729 codec in pjsip 1.12 for ios 5.x by following the url:

http://www.piemontewireless.net/Compile_available_codecs_in_PJSip_with_iPhoneSDK312#In_build.mak.in





At this step I am getting confuse what will the below setting for iPhoneOS5.0 sdk below for iPhoneOS3.1.2.sdk

Env variables

export DEV=/Developer/Platforms/iPhoneOS.platform/Developer export SDK=${DEV}/SDKs/iPhoneOS3.1.2.sdk export PATH=${DEV}/usr/bin:${PATH} export CFLAGS="-O2 -arch armv6 -isysroot ${SDK}" export LDFLAGS="-O2 -arch armv6 -isysroot ${SDK}" export CPP="${DEV}/usr/bin/cpp"


I am providing these
export DEV=/Developer/Platforms/iPhoneOS.platform/Developerexport SDK=${DEV}/SDKs/iPhoneOS5.0.sdk
export PATH=${DEV}/usr/bin:${PATH}
export CFLAGS="-O2 -arch armv7 -isysroot ${SDK}" export LDFLAGS="-O2 -arch armv7 -isysroot ${SDK}" export CPP="${DEV}/usr/bin/cpp"



Symb links to arm compiler


cd ${DEV}/usr/bin ln -s arm-apple-darwin9-gcc-4.0.1 arm-apple-darwin9-gcc ln -s arm-apple-darwin9-g++-4.0.1 arm-apple-darwin9-g++ ln -s ranlib arm-apple-darwin9-ranlib
When I am providing these settings
cd ${DEV}/usr/binln -s arm-apple-darwin10-llvm-gcc-4.2 arm-apple-darwin10-llvm-gcc
ln -s arm-apple-darwin10-llvm-g++-4.2 arm-apple-darwin10-llvm-g++
ln -s ranlib arm-apple-darwin10-ranlib

./aconfigure --host=arm-apple-darwin10 --disable-floating-point $* --disable-speex-aec \
--disable-speex-codec --enable-g729-codec --disable-ssl


It's giving me errors like

aconfigure: WARNING: If you wanted to set the --build type, don't use --host.
    If a cross compiler is detected then cross compile mode will be used.
checking build system type... i386-apple-darwin10.8.0
checking host system type... arm-apple-darwin10.8.0
checking target system type... arm-apple-darwin10.8.0
checking for arm-apple-darwin10.8.0-gcc... no
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... yes
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for arm-apple-darwin10.8.0-g++... no
checking for arm-apple-darwin10.8.0-c++... no
checking for arm-apple-darwin10.8.0-gpp... no
checking for arm-apple-darwin10.8.0-aCC... no
checking for arm-apple-darwin10.8.0-CC... no
checking for arm-apple-darwin10.8.0-cxx... no
checking for arm-apple-darwin10.8.0-cc++... no
checking for arm-apple-darwin10.8.0-cl.exe... no
checking for arm-apple-darwin10.8.0-FCC... no
checking for arm-apple-darwin10.8.0-KCC... no
checking for arm-apple-darwin10.8.0-RCC... no
checking for arm-apple-darwin10.8.0-xlC_r... no
checking for arm-apple-darwin10.8.0-xlC... no
checking for g++... g++
aconfigure: WARNING: In the future, Autoconf will not detect cross-tools
whose name does not start with the host triplet.  If you think this
configuration is useful to you, please write to autoconf <at> gnu.org.
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking for pthread_create in -lpthread... yes
checking for puts in -lwsock32... no
checking for puts in -lws2_32... no
checking for puts in -lole32... no
checking for puts in -lwinmm... no
checking for puts in -lsocket... no
checking for puts in -lrt... no
checking for puts in -lnsl... no
checking for uuid_generate in -luuid... no
checking for uuid_generate in -luuid... (cached) no
Setting PJ_M_NAME to arm
checking memory alignment... 4 bytes (default)
checking how to run the C preprocessor... /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/cpp
aconfigure: error: C preprocessor "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/cpp" fails sanity check



Please help me ! I will be greatly thankfull.



Thanks & Regards

Gaurav Bhaskar

Gaurav iPhone | 1 Feb 12:28
Picon

Re: Assertion failed: (strm), function interruptionListener, file ../src/pjmedia-audiodev/coreaudio_dev.c, line 770.

Hello Dileep,


PJSIP 1.8 does not support ios 5.

you need to use pjsip 1.12.

On Wed, Feb 1, 2012 at 4:45 PM, dileep r <dileep0206 <at> gmail.com> wrote:
Hi All.
   I have been getting this assertion failure in PJSIP 
       Assertion failed: (strm), function interruptionListener, file ../src/pjmedia-audiodev/coreaudio_dev.c, line 770.
                                  , even though i'm not using the any PJSIP media files. I'm using PJSIP version 1.8 compiled for IOS 5
 

 Any one can help me on this?

Thanks in advance

Dileep

_______________________________________________
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


Alain Totouom | 2 Feb 12:01
Picon
Picon

Re: Mapped ports using STUN in pjsua seems to be same as original ports

Hi Sundar,

On 31-Jan-12 09:56, Sundar Subramaniyan wrote:
> Hi all,
>
> The question is about the pjsua application, used with STUN (using host
> stun.pjsip.org)
>
> The public IP address reported is correct, however the mapped ports look
> the same as their original source ports. i.e. 5060 (SIP UDP port), and
> 4000-4007 (RTP/RTCP ports)
> It seemed to be valid to me initially since some home routers may perform
> address translation alone.
> But I checked if these ports are open from online port scanners, and they
> seem to be closed from the outside.
>
> I've tried the application behind two different routers configured with
> NAT. The behavior seems to be same. I didn't get a different port mapped to
> the source ports.
> The NAT types detected were "port restricted" and "restricted" when using
> different routers.
>
> I've only used the --stun-srv option without TURN/ICE.
>
> Is there any configuration I need to do to get the mapped ports apart from
> specifying stun-srv?
>

both routers do have *full cone NAT*, thus will try to map the same 
internal ip:port to the same external ip:port.

The online port scanner fails because of the underlying *restricted 
cone* and *Port Restricted Cone* NAT. Both are full cone NAT with 
additional restrictions. May be you wanna check RFC #3489.

To get the mapped port apart, run two different instances of pjsua 
behind the same router ;o)

Cheers,
Alain

> Thanks in advance,
> Sundar

--

-- 
                             ""
                           (o)(o)
                 _____o00o__(__)__o00o_____
3072D/146D10DE 2011-09-29    Alain Totouom  <totouom <at> gmx.de>
PGP Fingerprint 39A4F092 FFA7C746 CC305CB0 69091911 146D10DE

Artur Wincenciak | 2 Feb 12:09
Picon

Recording of a conversation in another thread - why does it work this way?

Hello.
I create a *. wav file recording of the conversation. I use Pjsip code in version 1.0. The project I compile to DLL, and issuance of the method provide by __declspec (dllexport). These methods it calls later in C #. The above described solution downloaded from http://sites.google.com/site/sipekvoip/sipeksdk.

Today I added the method by which I start recording conversations. Below is the code for the recording.

When calling the method start recording I get an exception: "attempted to read or write protected memory. This is an indication That Often other memory is corrupt." The problem disappears when I start recording, in another thread.

WHY?



/*******************************************************************************/
/******************** TEO VINCENT RECORDING ************************************/
/*******************************************************************************/
struct RecordingCallData
{
    pjsua_call_id       m_callId;
    //pj_str_t            m_recFile;
    pjsua_recorder_id    m_recId;
    pjsua_conf_port_id    m_recPort;
    pjsua_conf_port_id    m_confSlot;
    pj_bool_t            m_inUse;
};

static struct RecordingCalls
{
    struct RecordingCallData        m_arrRec[32];
} s_recordingCalls;

static void PrintMessageAboutRecordingCall(int a_recordIndex)
{
    PJ_LOG(3,(THIS_FILE, "[i=%d] InUse=%d CallId=%d RecFile=__ ConfSlot=%d RecId=%d RecPort=%d"
                ,a_recordIndex
                ,s_recordingCalls.m_arrRec[a_recordIndex].m_inUse
                ,s_recordingCalls.m_arrRec[a_recordIndex].m_callId
                //,s_recordingCalls.m_arrRec[a_recordIndex].m_recFile
                ,s_recordingCalls.m_arrRec[a_recordIndex].m_confSlot
                ,s_recordingCalls.m_arrRec[a_recordIndex].m_recId
                ,s_recordingCalls.m_arrRec[a_recordIndex].m_recPort));
}

static void PrintAllRecordingCallsArrayInfo()
{
    int i;
    PJ_LOG(3,(THIS_FILE, "PrintAllRecordingCallsArrayInfo"));
    for(i = 0; i < 32; i++)
        PrintMessageAboutRecordingCall(i);
}

static void CleanRecordingOneCallInArray(int a_recordIndex)
{
    s_recordingCalls.m_arrRec[a_recordIndex].m_inUse = PJ_FALSE;
    s_recordingCalls.m_arrRec[a_recordIndex].m_callId = -100;
    //s_recordingCalls.m_arrRec[a_recordIndex].m_recFile = "";
    s_recordingCalls.m_arrRec[a_recordIndex].m_confSlot = -100;
    s_recordingCalls.m_arrRec[a_recordIndex].m_recId = -100;
    s_recordingCalls.m_arrRec[a_recordIndex].m_recPort = -100;
}

static void CleanRecordingCallsArray()
{
    unsigned i;
    for(i = 0; i < 32; i++)
        CleanRecordingOneCallInArray(i);
}

void StartRecording(pjsua_call_id a_callID, pj_str_t a_fileName, pj_bool_t a_isRecFromSlot, pj_bool_t a_isRecFormMicrophone)
{
    unsigned freeItemIndex;
    pj_bool_t isFindEmptyPlace;
    pjsua_call_info callInfo;
    pj_status_t status;
   
    freeItemIndex = -1;

    PJ_LOG(3,(THIS_FILE, "StartRecording(CallID=%d FileName=%s IsRecFromSlot=%d IsRecFromMicrophone=%d)", a_callID, a_fileName, a_isRecFromSlot, a_isRecFormMicrophone));
   
    status = pjsua_call_get_info(a_callID, &callInfo);
    if (status != PJ_SUCCESS)
    {
        PJ_LOG(3,(THIS_FILE, "Blad w metodzie pjsua_call_get_info(..) i nagrywania NIE BEDZIE"));
        return;
    }
   
    {
        unsigned i;
        // Odszukanie pierwszego wolnego mijesca w tablicy gdzie będzie można przechować info połączeniu
        for(i = 0; i < 32; i++)
            if(s_recordingCalls.m_arrRec[i].m_inUse == PJ_FALSE)
            {
                freeItemIndex = i;
                PJ_LOG(3,(THIS_FILE, "Pierwsze wolne miejsce w tablicy info o nagraniach to = %d", freeItemIndex));
                break;
            }
    }
   
    if(freeItemIndex == -1)
    {
        PJ_LOG(3,(THIS_FILE, "Brak miejsca w tablic s_recordingCalls.m_arrRec i nagrywania NIE BEDZIE"));
        return;
    }
   
    s_recordingCalls.m_arrRec[freeItemIndex].m_inUse = PJ_TRUE;
    s_recordingCalls.m_arrRec[freeItemIndex].m_callId = a_callID;
    //s_recordingCalls.m_arrRec[freeItemIndex].m_recFile = a_fileName;
    s_recordingCalls.m_arrRec[freeItemIndex].m_confSlot = callInfo.conf_slot;
           
    status = pjsua_recorder_create(&a_fileName, 0, NULL, 0, 0, &s_recordingCalls.m_arrRec[freeItemIndex].m_recId);
    if (status != PJ_SUCCESS)
    {
        CleanRecordingOneCallInArray(freeItemIndex);
        PJ_LOG(3,(THIS_FILE, "Blad w metodzie pjsua_recorder_create(..) i nagrywania NIE BEDZIE"));
        return;
    }
       
    s_recordingCalls.m_arrRec[freeItemIndex].m_recPort = pjsua_recorder_get_conf_port(s_recordingCalls.m_arrRec[freeItemIndex].m_recId);
           
    PJ_LOG(3,(THIS_FILE, "ROZPOCZETE nagranie"));
    PrintMessageAboutRecordingCall(freeItemIndex);
               
    // Dokladam porty z ktorych bedzie nagrywany dzwiek
    if(s_recordingCalls.m_arrRec[freeItemIndex].m_recPort != PJSUA_INVALID_ID)
    {
        if (a_isRecFromSlot == PJ_TRUE)
        {
            status = pjsua_conf_connect(s_recordingCalls.m_arrRec[freeItemIndex].m_confSlot, s_recordingCalls.m_arrRec[freeItemIndex].m_recPort); //rtp to pliku
            if (status != PJ_SUCCESS)
            {
                CleanRecordingOneCallInArray(freeItemIndex);
                PJ_LOG(3,(THIS_FILE, "Blad w metodzie pjsua_conf_connect(rtp -> file.wav) i nagrywania NIE BEDZIE"));
                return;
            }
        }
        else
        {
            PJ_LOG(3,(THIS_FILE, "NIE BEDZIE NAGRYWANE Z SLOTA"));
            PrintMessageAboutRecordingCall(freeItemIndex);
        }
               
        if (a_isRecFormMicrophone == PJ_TRUE)
        {
            status = pjsua_conf_connect(0, s_recordingCalls.m_arrRec[freeItemIndex].m_recPort); //microphone to pliku
            if (status != PJ_SUCCESS)
            {
                CleanRecordingOneCallInArray(freeItemIndex);
                PJ_LOG(3,(THIS_FILE, "Blad w metodzie pjsua_conf_connect(microphone -> file.wav) i nagrywania NIE BEDZIE"));
                return;
            }
        }
        else
        {
            PJ_LOG(3,(THIS_FILE, "NIE BEDZIE NAGRYWANE Z MIKROFONA"));
            PrintMessageAboutRecordingCall(freeItemIndex);
        }
    }
   
    PrintAllRecordingCallsArrayInfo();
}

void StopRecording(pjsua_call_id a_callID)
{
    int findItemIndex;
    pj_status_t status;
   
    findItemIndex = -1;
   
    {
        unsigned i;
        for(i = 0; i < 32; i++)
            if(s_recordingCalls.m_arrRec[i].m_inUse == PJ_TRUE && s_recordingCalls.m_arrRec[i].m_callId == a_callID)
            {
                findItemIndex = i;
                PJ_LOG(3,(THIS_FILE, "Znalazlem info o nagraniu na pozycji = %d", findItemIndex));
                break;
            }
    }
   
    if(findItemIndex == -1)
    {
        PJ_LOG(3,(THIS_FILE, "Nie znalazlem nagrania - nie mozna go zakonczyc wiec."));
    }
    else
    {
        PJ_LOG(3,(THIS_FILE, "Znalazlem nagranie by ZAKONCZYC"));
        PrintMessageAboutRecordingCall(findItemIndex);
        status = pjsua_recorder_destroy(s_recordingCalls.m_arrRec[findItemIndex].m_recId);
        if (status != PJ_SUCCESS)
        {
                PJ_LOG(3,(THIS_FILE, "Blad w metodzie pjsua_recorder_destroy(..)"));
                return;
        }
        CleanRecordingOneCallInArray(findItemIndex);
    }
   
    PrintAllRecordingCallsArrayInfo();
}
int dll_startRecording(int a_sessionId, char* a_fileName, bool a_recFromRtp, bool a_recFormMicrophone)
{
    StartRecording(a_sessionId, pj_str(a_fileName), a_recFromRtp, a_recFormMicrophone);
    return 123456;
}

int dll_stopRecording(int a_sessionId)
{
    StopRecording(a_sessionId);
    return 654321;
}




Pozdrawiam:
Artur Wincenciak
dileep r | 2 Feb 13:31
Picon

Re: Assertion failed: (strm), function interruptionListener, file ../src/pjmedia-audiodev/coreaudio_dev.c, line 770.

Thanks Gaurav,

     I was able to compile PJSIP1.8 for IOS5 and use PJSIP functionality , but i see only this assertion failure. Do you think  using PJSIP 1.12 will fix the issue?

Thanks
Dileep

On Wed, Feb 1, 2012 at 3:28 AM, Gaurav iPhone <gauraviphone05 <at> gmail.com> wrote:
Hello Dileep,


PJSIP 1.8 does not support ios 5.

you need to use pjsip 1.12.

On Wed, Feb 1, 2012 at 4:45 PM, dileep r <dileep0206 <at> gmail.com> wrote:
Hi All.
   I have been getting this assertion failure in PJSIP 
       Assertion failed: (strm), function interruptionListener, file ../src/pjmedia-audiodev/coreaudio_dev.c, line 770.
                                  , even though i'm not using the any PJSIP media files. I'm using PJSIP version 1.8 compiled for IOS 5
 

 Any one can help me on this?

Thanks in advance

Dileep

_______________________________________________
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


Alain Totouom | 2 Feb 14:17
Picon
Picon

Re: How to use a different port number for voip traffic

Hi Fadi,

if your proxy wishes to remain on the path of requests within the 
established dialog, configure it to *record-route*.
It wants/loves traffic, it'll sure get some ;o)

Cheers,
Alain

On 31-Jan-12 16:11, Fadi Chehimi wrote:
> Hello again
>
> I am resending this email hoping that someone will be able to help.
>
> Cheers
> Fadi
>
>
> On Thu, Jan 19, 2012 at 11:43 AM, Fadi Chehimi<fchehimi <at> localphone.com>wrote:
>
>> Thanks Johan for this
>> I am now getting closer to the solution.
>> Now I the INVITES routed through the port I am after, but for some
>> reason ACK and BYE are routed through 5060 still. Not sure if I have
>> to manually edit port for these commands as well. I have attached here
>> some of the consol logs:
>>
>>
>> PJSIP initialization..
>> ..
>>   11:29:55.533   pjsua_core.c  SIP UDP socket reachable at
>> 10.15.20.147:12345
>> ...
>> ...
>> INVITE sip:9198542 <at> domainname.com SIP/2.0
>> Via: SIP/2.0/UDP
>> 10.15.20.147:12345;rport;branch=z9hG4bKPjm6ezkf5cgXbSZQA.3oc4JTABzqlfaTCj
>> Max-Forwards: 70
>> From: "FadiTest CheTest"
>> <sip:8932153 <at> domainname.com>;tag=0S4PJkPDy8oOArXzTNchLLQ8X19bCPaJ
>> To: sip:9198542 <at> domainname.com
>> Contact: "FadiTest CheTest"<sip:8932153 <at> 10.15.20.147:12345;ob>
>> Call-ID: bLCNgGoNpAq89tUEs7IMoS7LzmwMOGml
>> CSeq: 23363 INVITE
>> Route:<sip:gateway.domainname.com:12345;lr>
>> Allow: PRACK, INVITE, ACK, BYE, CANCEL, UPDATE, SUBSCRIBE, NOTIFY,
>> REFER, MESSAGE, OPTIONS
>> Supported: replaces, 100rel, timer, norefersub
>> Session-Expires: 1800
>> Min-SE: 300
>> User-Agent: domainname
>> Content-Type: application/sdp
>> Content-Length:   426
>> ...
>> ...
>>
>> --end msg--
>>   11:30:48.831 os_core_unix.c  Info: possibly re-registering existing thread
>>   11:30:48.834 callhandling.m  Call 0 state changed to CALLING
>> 2012-01-19 11:30:48.839 domainname2[4887:6f03] run loop
>>   11:30:49.330   pjsua_core.c  TX 1215 bytes Request msg
>> INVITE/cseq=23363 (tdta0xbb9200) to UDP 108.59.2.137:12345:
>> INVITE sip:9198542 <at> domainname.com SIP/2.0
>> Via: SIP/2.0/UDP
>> 10.15.20.147:12345;rport;branch=z9hG4bKPjm6ezkf5cgXbSZQA.3oc4JTABzqlfaTCj
>> Max-Forwards: 70
>> From: "FadiTest CheTest"
>> <sip:8932153 <at> domainname.com>;tag=0S4PJkPDy8oOArXzTNchLLQ8X19bCPaJ
>> To: sip:9198542 <at> domainname.com
>> Contact: "FadiTest CheTest"<sip:8932153 <at> 10.15.20.147:12345;ob>
>> Call-ID: bLCNgGoNpAq89tUEs7IMoS7LzmwMOGml
>> CSeq: 23363 INVITE
>> Route:<sip:gateway.domainname.com:12345;lr>
>> Allow: PRACK, INVITE, ACK, BYE, CANCEL, UPDATE, SUBSCRIBE, NOTIFY,
>> REFER, MESSAGE, OPTIONS
>> Supported: replaces, 100rel, timer, norefersub
>> Session-Expires: 1800
>> Min-SE: 300
>> User-Agent: domainname Sip, iPhone App v1.1.1
>> X-LP-GeoLocation: LONDON, gb
>> X-LP-Connection-Type: Wi-Fi
>> Content-Type: application/sdp
>> Content-Length:   426
>> ...
>> ...
>>
>> --end msg--
>>   11:30:52.464   pjsua_core.c  TX 444 bytes Request msg ACK/cseq=23363
>> (tdta0xbb5a00) to UDP 108.59.2.137:12345:
>> ACK sip:9198542 <at> domainname.com SIP/2.0
>> Via: SIP/2.0/UDP
>> 10.15.20.147:12345;rport;branch=z9hG4bKPjm6ezkf5cgXbSZQA.3oc4JTABzqlfaTCj
>> Max-Forwards: 70
>> From: "FadiTest CheTest"
>> <sip:8932153 <at> domainname.com>;tag=0S4PJkPDy8oOArXzTNchLLQ8X19bCPaJ
>> To: sip:9198542 <at> domainname.com;tag=4fdf1f17ba0fc0dcebac7ca3eba0e50d.dc1d
>> Call-ID: bLCNgGoNpAq89tUEs7IMoS7LzmwMOGml
>> CSeq: 23363 ACK
>> Route:<sip:gateway.domainname.com:12345;lr>
>> Content-Length:  0
>> ..
>> ..
>>
>> --end msg--
>>   11:30:52.482 callhandling.m  Call 0 state changed to CALLING
>>   11:30:52.666   pjsua_core.c  RX 400 bytes Response msg
>> 100/INVITE/cseq=23364 (rdata0xb7f014) from UDP 108.59.2.137:12345:
>> SIP/2.0 100 Giving a try
>> Via: SIP/2.0/UDP
>> 10.15.20.147:12345
>> ;received=188.39.51.2;rport=12345;branch=z9hG4bKPjAPy4b7DDpAGVeJ-Yg51x9xEXyeVttlXo
>> From: "FadiTest CheTest"
>> <sip:8932153 <at> domainname.com>;tag=0S4PJkPDy8oOArXzTNchLLQ8X19bCPaJ
>> To: sip:9198542 <at> domainname.com
>> Call-ID: bLCNgGoNpAq89tUEs7IMoS7LzmwMOGml
>> CSeq: 23364 INVITE
>> Server: OpenSIPS (1.7.1-notls (x86_64/linux))
>> Content-Length: 0
>> ...
>> ...
>>
>> --end msg--
>>   11:30:52.974   conference.c  Port 3 (ringback) transmitting to port 0
>> (iPhone IO device)
>>   11:30:52.974 callhandling.m  Call 0 state changed to EARLY (180 Ringing)
>>   11:30:57.869    udp0xb7de00  Remote RTP address switched to
>> 95.211.119.213:15278
>>   11:30:57.869    udp0xb7de00  Remote RTCP address switched to
>> 95.211.119.213:15279
>>   11:30:59.040   pjsua_core.c  RX 1137 bytes Response msg
>> 200/INVITE/cseq=23364 (rdata0xb7f014) from UDP 108.59.2.137:12345:
>> SIP/2.0 200 OK
>> Via: SIP/2.0/UDP
>> 10.15.20.147:12345;rport;branch=z9hG4bKPjAPy4b7DDpAGVeJ-Yg51x9xEXyeVttlXo
>> From: "FadiTest CheTest"
>> <sip:8932153 <at> domainname.com>;tag=0S4PJkPDy8oOArXzTNchLLQ8X19bCPaJ
>> To: sip:9198542 <at> domainname.com;tag=9e4a4ZyK11XUa
>> Call-ID: bLCNgGoNpAq89tUEs7IMoS7LzmwMOGml
>> CSeq: 23364 INVITE
>> Contact:<sip:108.59.2.137:5060;did=de1.b746f8e6>    <======== THIS
>> HERE SHOULD BE 12345
>> User-Agent: FreeSWITCH-mod_sofia/1.0.head-git-c64f475 2011-01-18 14-36-30
>> -0500
>> Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, UPDATE, INFO,
>> REGISTER, REFER, NOTIFY
>> Require: timer
>> Supported: timer, precondition, path, replaces
>> Allow-Events: talk, hold, refer
>> Session-Expires: 1800;refresher=uac
>> Min-SE: 300
>> Content-Type: application/sdp
>> Content-Disposition: session
>> Content-Length: 272
>> Remote-Party-ID: "Outbound Call"
>> <sip:9198542 <at> 95.211.119.213>;party=calling;privacy=off;screen=no
>> ...
>> ...
>>
>> --end msg--
>>   11:30:59.055 callhandling.m  Call 0 state changed to CONNECTING
>> [Switching to thread 13315]
>>   11:30:59.598   strm0xbc31b4  VAD temporarily disabled
>>   11:30:59.601   strm0xbc31b4  Encoder stream started
>>   11:30:59.601   strm0xbc31b4  Decoder stream started
>>   11:30:59.609  pjsua_media.c  Media updates, stream #0: iLBC (sendrecv)
>>   11:30:59.611   conference.c  Port 3 (ringback) stop transmitting to
>> port 0 (iPhone IO device)
>>   11:30:59.613   conference.c  Port 4 (sip:9198542 <at> domainname.com)
>> transmitting to port 0 (iPhone IO device)
>>   11:30:59.613   conference.c  Port 0 (iPhone IO device) transmitting
>> to port 4 (sip:9198542 <at> domainname.com)
>>   11:30:59.615   pjsua_core.c  TX 386 bytes Request msg ACK/cseq=23364
>> (tdta0xede000) to UDP 108.59.2.137:5060:<======== THIS HERE SHOULD
>> BE 12345
>> ACK sip:108.59.2.137:5060;did=de1.b746f8e6 SIP/2.0
>> Via: SIP/2.0/UDP
>> 10.15.20.147:12345;rport;branch=z9hG4bKPjZNZiwUuuXAkSHBRRtjWNjIz2kRQ2tWH4
>> Max-Forwards: 70
>> From: "FadiTest CheTest"
>> <sip:8932153 <at> domainname.com>;tag=0S4PJkPDy8oOArXzTNchLLQ8X19bCPaJ
>> To: sip:9198542 <at> domainname.com;tag=9e4a4ZyK11XUa
>> Call-ID: bLCNgGoNpAq89tUEs7IMoS7LzmwMOGml
>> CSeq: 23364 ACK
>> Content-Length:  0
>>
>>
>> --end msg--
>>   11:30:59.618 callhandling.m  Call 0 state changed to CONFIRMED
>>   11:30:59.676   Master/sound  Underflow, buf_cnt=0, will generate 1 frame
>>   11:31:00.260   strm0xbc31b4  VAD re-enabled
>>   11:31:05.303   conference.c  Port 0 (iPhone IO device) stop
>> transmitting to port 4 (sip:9198542 <at> domainname.com)
>>   11:31:05.303   conference.c  Port 2
>>
>> (/var/mobile/Applications/4E314999-EBC0-41E9-9587-136EE83AF2BB/domainname2.app/hang-up.wav)
>> transmitting to port 4 (sip:9198542 <at> domainname.com)
>>   11:31:06.304   conference.c  Port 2
>>
>> (/var/mobile/Applications/4E314999-EBC0-41E9-9587-136EE83AF2BB/domainname2.app/hang-up.wav)
>> stop transmitting to port 4 (sip:9198542 <at> domainname.com)
>>   11:31:06.304   conference.c  Port 0 (iPhone IO device) transmitting
>> to port 4 (sip:9198542 <at> domainname.com)
>>   11:31:06.305   pjsua_core.c  TX 433 bytes Request msg BYE/cseq=23365
>> (tdta0xee6000) to UDP 108.59.2.137:5060:<======== THIS HERE SHOULD
>> BE 12345
>> BYE sip:108.59.2.137:5060;did=de1.b746f8e6 SIP/2.0
>> Via: SIP/2.0/UDP
>> 10.15.20.147:12345;rport;branch=z9hG4bKPj.oGON31LnBSH9GNcVLHPJe4so5fG3LzD
>> Max-Forwards: 70
>> From: "FadiTest CheTest"
>> <sip:8932153 <at> domainname.com>;tag=0S4PJkPDy8oOArXzTNchLLQ8X19bCPaJ
>> To: sip:9198542 <at> domainname.com;tag=9e4a4ZyK11XUa
>> Call-ID: bLCNgGoNpAq89tUEs7IMoS7LzmwMOGml
>> CSeq: 23365 BYE
>> User-Agent: domainname Sip, iPhone App v1.1.1
>> Content-Length:  0
>> ...
>> ...
>>
>>
>>
>>> sipProxy = sip:ip:port in the pjsua config?
>>>
>>> BR
>>>
>>> Johan
>>>

--

-- 
                             ""
                           (o)(o)
                 _____o00o__(__)__o00o_____
3072D/146D10DE 2011-09-29    Alain Totouom  <totouom <at> gmx.de>
PGP Fingerprint 39A4F092 FFA7C746 CC305CB0 69091911 146D10DE

Spencer MacDonald | 2 Feb 20:59
Picon

Where does PJSIP Expect opencore-amr to be?

Hi,


I have built opencore-amr for iOS and it has installed the binary in /usr/local/lib but it seems like PJSIP doesn't look there.

The following gets logged in the console:

checking for OpenCORE AMR-NB installations.. checking opencore-amrnb/interf_enc.h usability... no checking opencore-amrnb/interf_enc.h presence... no checking for opencore-amrnb/interf_enc.h... no checking for Encoder_Interface_init in -lopencore-amrnb... no
At first I thought it was my PATH but even update that didn't fix it:

/usr/local/include:/usr/local/lib:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/local/git/bin

Any advice?

Spencer

Jonathan Martin | 2 Feb 21:09

Hold call in pjsip 2.0 beta

Hi,
 
I am using the pjsip 2.0 beta library on Windows (built with Visual Studio 2008).  Video calling between two PCs on the local LAN works great.  However, when I hold a call (‘H’ in pjsua), the video and audio stop on the side that held the call but the other side continues to receive audio and video.  I would expect audio/video to stop on both sides until the call is resumed with the ‘v’ command.  Here’s the sanitized config file I’m passing to pjsua:
 
--no-color
--use-srtp=2
--srtp-secure=0
--registrar=sip:myserver.com
--id=sip:jdmartin <at> myserver.com
--realm=*
--username=username
--password=password
--use-tls
--no-vad
--use-ice
--use-turn
--turn-srv=myserver.com:3478
--turn-user=turnuser
--turn-passwd=turnpassword
--auto-answer=200
--video
 
I also tried disabling ICE and TURN.  The result is the same, the recipient of the ‘hold call’ action continues to receive audio and video.  Is this a bug or am I doing something incorrectly in my use of pjsua?
 
Regards,
--Jonathan
 
Dan Arrhenius | 2 Feb 21:09
Picon

Re: Where does PJSIP Expect opencore-amr to be?

Hi,

try to set CFLAGS and LDFLAGS when running the configure script, like
this:

CFLAGS="-I<path_to_installed_opencore>/include"
LDFLAGS="-L<path_to_installed_opencore>/lib" ./configure-iphone

Regards,
Dan

On Thu, 2012-02-02 at 19:59 +0000, Spencer MacDonald wrote:
> Hi,
> 
> 
> I have built opencore-amr for iOS and it has installed the binary
> in /usr/local/lib but it seems like PJSIP doesn't look there.
> 
> 
> The following gets logged in the console:
> 
> 
> checking for OpenCORE AMR-NB installations..
> checking opencore-amrnb/interf_enc.h usability... no
> checking opencore-amrnb/interf_enc.h presence... no
> checking for opencore-amrnb/interf_enc.h... no
> checking for Encoder_Interface_init in -lopencore-amrnb... no
> 
> At first I thought it was my PATH but even update that didn't fix it:
> 
> 
> /usr/local/include:/usr/local/lib:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/local/git/bin
> 
> 
> Any advice?
> 
> 
> Spencer
> 
> 
> _______________________________________________
> 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


Gmane