Pjlib on Symbian

GE
George Evi
Fri, Apr 3, 2009 9:37 PM

Hi Benny,

Thanks for your response.

I have another question. I try to understand the media transmission flow and
I'm blocked with the logic of application.

Here is the stack of application running on Nokia E61 (is generated with
Carbide v1.3):

Thread [Thread id: 363] (Suspended: Breakpoint hit.)

        5 pjmedia_delay_buf_put()

C:\Symbian\Carbide\voip-phone\SipPhone\pjmedia\src\pjmedia\delaybuf.c:266
0xf55c8ebc

        4 pjmedia_port_put_frame()

C:\Symbian\Carbide\voip-phone\SipPhone\pjmedia\src\pjmedia\port.c:85
0xf55ca9ac

        3 rec_cb()

C:\Symbian\Carbide\voip-phone\SipPhone\pjmedia\src\pjmedia\sound_port.c:139
0xf55cca2c

        2 CPjAudioInputEngine::MaiscBufferCopied()

C:\Symbian\Carbide\voip-phone\SipPhone\pjmedia\src\pjmedia-audiodev\symb_mda
_dev.cpp:464 0xf55df5f4

        1 Unknown (0xF52005A8)()  0xf52005a8       

We can see that the audio frame is captured by "MaiscBufferCopied()"
function which will run the callback function "rec_cb()" and finally the
audio frame arrive in the "delay buffer" passing through "put_frame"
function from Conference module (the application uses the Conference
bridge).

My question is when (or who) is reading the "delay buffer" (which contains
the audio frames received from microphone) and transmits the data to
transport layer?

Hope no bothers you to much,

George.

g.evi@sympatico.ca


From: pjsip-bounces@lists.pjsip.org [mailto:pjsip-bounces@lists.pjsip.org]
On Behalf Of Benny Prijono
Sent: Friday, April 03, 2009 8:03 AM
To: pjsip list
Subject: Re: [pjsip] Pjlib on Symbian

2009/4/2 George Evi george.evi@ctcinc.ca

Hi Benny,

I activate the log in my project (PJ_LOG()) and used the function
"log_call_dump()" to dump the statistics at the end of a call.

I got these statistics:

Great! We love logs and statistics! :)

--end msg--State changed from Null to Calling, event=TX_MSGTransaction
tsx0x732e8c state changed to Calling

[CONFIRMED] To: sip:5148403000@sip6.van.netvoice.ca
mailto:sip%3A5148403000@sip6.van.netvoice.ca ;tag=as5b69601c

Call time: 00h:01m:56s, 1st res in 3542 ms, conn in 5824ms

SRTP status: Not active Crypto-suite: (null)

#0 PCMU @8KHz, sendrecv, peer=64.34.49.82:19122

   RX pt=0, stat last update: 00h:00m:00.601s ago

      total 5.7Kpkt 924.8KB (1.15MB +IP hdr) @avg=62.3Kbps/77.9Kbps

      pkt loss=143 (2.4%), discrd=1 (0.0%), dup=0 (0.0%), reord=1 (0.0%)

            (msec)    min     avg     max     last    dev

      loss period:  20.000 178.750 940.000 100.000  63.638

      jitter     : -  0.001  11.737 579.000   0.750   8.775

   TX pt=0, ptime=20ms, stat last update: 00h:00m:03.680s ago

      total 5.7Kpkt 906.4KB (1.13MB +IP hdr) @avg 61.1Kbps/76.5Kbps

      pkt loss=2 (0.0%), dup=0 (0.0%), reorder=0 (0.0%)

            (msec)    min     avg     max     last    dev 

      loss period:  40.000  40.000  40.000  40.000   0.000

      jitter     : 193.000 193.000 193.000 193.000   0.000

  RTT msec       :  92.000 128.637 332.000 101.000  21.526

Processing incoming message: Response msg 200/BYE/cseq=18255
(rdata0x71e65c)RX 510 bytes Response msg 200/BYE/cseq=18255 (rdata0x71e65c)
from UDP 64.34.49.82:5060:

SIP/2.0 200 OK

I also read the "Understanding Media Flow" document and I have a (beginner)
question.

In the TX section we have a jitter line but in the Media Flow diagram there
is no Jitter Buffer for packet transmission, what represents this line?

We get these values from the RTCP report sent by the remote peer. If remote
peer doesn't support RTCP, we would not get these stats of course.

And also why in the same section the loss period and jitter buffer values
are the same for all statistics colons?

It's probably because it's only got one RTCP report? In this case then the
min/avg/max values would be the same, isn't it?

cheers
Benny

Thanks,

George.


From: pjsip-bounces@lists.pjsip.org [mailto:pjsip-bounces@lists.pjsip.org]
On Behalf Of Benny Prijono
Sent: Wednesday, March 25, 2009 3:56 AM

To: pjsip list
Subject: Re: [pjsip] Pjlib on Symbian

2009/3/24 George Evi george.evi@ctcinc.ca

Hi Benny,

I update my application with the latest version the "trunk pjproject- 1.1"
and continue to test on Nokia E61.

As you suggested I changed the codec priorities in a way that GSM had
highest priority (in function "pjsua_media_subsys_init" priority value =
PJMEDIA_CODEC_PRIO_NORMAL +4 (132)). The sound was acceptable on the caller
side but on the callee side continue to be stuttered, disrupted and
instable.

Hi George,

In that case, I would probably suggest to try to use different peer for the
testing (pjsua running on desktop would be a good candidate :) ). And make
sure the audio doesn't get routed through the server or otherwise this
wouldn't make any difference. You can call directly to the device's IP
address to make sure.

Also I tried the others codecs (iLBC, Speex/8000 and Speex/16000) in the
same way but didn't see any improvements.

iLBC and Speex/16000 is definitely out of question. Speex/8000 is probably
bang on the processing capability, so use it with care (e.g. only use
release mode), and probably is not good for troubleshooting problems like
this. And of course there is G.711, definitely a good candidate to try.

cheers
Benny

Do you have any suggestions or ideas?

We don't want to use Nokia APS (Audio proxy Server) for the moment, because
it needs a publisher ID.

Thank you,

George.


From: pjsip-bounces@lists.pjsip.org [mailto:pjsip-bounces@lists.pjsip.org]
On Behalf Of Benny Prijono
Sent: Friday, March 20, 2009 2:32 AM

To: pjsip list
Subject: Re: [pjsip] Pjlib on Symbian

2009/3/19 George Evi george.evi@ctcinc.ca

Hi Benny,

Thanks for your response.

The flow of sound is disrupted on both sides (caller and callee voice
reception). You can hear the sound but the words are not completed and on
the callee side the voice is metalique  (like a robot speech). The latest
tests I made were done with Nokia E61 (S60 3rd edition -mr) connected Wi-Fi
and I expected to see some improvements but voice stilled disrupted.

I'm using iLBC as codec (1st priority) and UDP transport.

Aha, that's probably the reason. iLBC is heavy, I don't think the device has
enough processing power to run it [2]. Try with GSM or Speex.

Alternatively, consider using APS-Direct [1], available in pjsip version 1.1
now downloadable from the website. APS-Direct uses handset's native codec
and it supports iLBC, AMR, G.729, and G.711.

cheers
Benny

[1] http://trac.pjsip.org/repos/wiki/Nokia_APS_VAS_Direct
[2] http://trac.pjsip.org/repos/wiki/PJMEDIA-MIPS


Visit our blog: http://blog.pjsip.org

pjsip mailing list
pjsip@lists.pjsip.org
http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org


Visit our blog: http://blog.pjsip.org

pjsip mailing list
pjsip@lists.pjsip.org
http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org

Hi Benny, Thanks for your response. I have another question. I try to understand the media transmission flow and I'm blocked with the logic of application. Here is the stack of application running on Nokia E61 (is generated with Carbide v1.3): Thread [Thread id: 363] (Suspended: Breakpoint hit.) 5 pjmedia_delay_buf_put() C:\Symbian\Carbide\voip-phone\SipPhone\pjmedia\src\pjmedia\delaybuf.c:266 0xf55c8ebc 4 pjmedia_port_put_frame() C:\Symbian\Carbide\voip-phone\SipPhone\pjmedia\src\pjmedia\port.c:85 0xf55ca9ac 3 rec_cb() C:\Symbian\Carbide\voip-phone\SipPhone\pjmedia\src\pjmedia\sound_port.c:139 0xf55cca2c 2 CPjAudioInputEngine::MaiscBufferCopied() C:\Symbian\Carbide\voip-phone\SipPhone\pjmedia\src\pjmedia-audiodev\symb_mda _dev.cpp:464 0xf55df5f4 1 Unknown (0xF52005A8)() 0xf52005a8 We can see that the audio frame is captured by "MaiscBufferCopied()" function which will run the callback function "rec_cb()" and finally the audio frame arrive in the "delay buffer" passing through "put_frame" function from Conference module (the application uses the Conference bridge). My question is when (or who) is reading the "delay buffer" (which contains the audio frames received from microphone) and transmits the data to transport layer? Hope no bothers you to much, George. g.evi@sympatico.ca _____ From: pjsip-bounces@lists.pjsip.org [mailto:pjsip-bounces@lists.pjsip.org] On Behalf Of Benny Prijono Sent: Friday, April 03, 2009 8:03 AM To: pjsip list Subject: Re: [pjsip] Pjlib on Symbian 2009/4/2 George Evi <george.evi@ctcinc.ca> Hi Benny, I activate the log in my project (PJ_LOG()) and used the function "log_call_dump()" to dump the statistics at the end of a call. I got these statistics: Great! We love logs and statistics! :) --end msg--State changed from Null to Calling, event=TX_MSGTransaction tsx0x732e8c state changed to Calling [CONFIRMED] To: sip:5148403000@sip6.van.netvoice.ca <mailto:sip%3A5148403000@sip6.van.netvoice.ca> ;tag=as5b69601c Call time: 00h:01m:56s, 1st res in 3542 ms, conn in 5824ms SRTP status: Not active Crypto-suite: (null) #0 PCMU @8KHz, sendrecv, peer=64.34.49.82:19122 RX pt=0, stat last update: 00h:00m:00.601s ago total 5.7Kpkt 924.8KB (1.15MB +IP hdr) @avg=62.3Kbps/77.9Kbps pkt loss=143 (2.4%), discrd=1 (0.0%), dup=0 (0.0%), reord=1 (0.0%) (msec) min avg max last dev loss period: 20.000 178.750 940.000 100.000 63.638 jitter : - 0.001 11.737 579.000 0.750 8.775 TX pt=0, ptime=20ms, stat last update: 00h:00m:03.680s ago total 5.7Kpkt 906.4KB (1.13MB +IP hdr) @avg 61.1Kbps/76.5Kbps pkt loss=2 (0.0%), dup=0 (0.0%), reorder=0 (0.0%) (msec) min avg max last dev loss period: 40.000 40.000 40.000 40.000 0.000 jitter : 193.000 193.000 193.000 193.000 0.000 RTT msec : 92.000 128.637 332.000 101.000 21.526 Processing incoming message: Response msg 200/BYE/cseq=18255 (rdata0x71e65c)RX 510 bytes Response msg 200/BYE/cseq=18255 (rdata0x71e65c) from UDP 64.34.49.82:5060: SIP/2.0 200 OK I also read the "Understanding Media Flow" document and I have a (beginner) question. In the TX section we have a jitter line but in the Media Flow diagram there is no Jitter Buffer for packet transmission, what represents this line? We get these values from the RTCP report sent by the remote peer. If remote peer doesn't support RTCP, we would not get these stats of course. And also why in the same section the loss period and jitter buffer values are the same for all statistics colons? It's probably because it's only got one RTCP report? In this case then the min/avg/max values would be the same, isn't it? cheers Benny Thanks, George. _____ From: pjsip-bounces@lists.pjsip.org [mailto:pjsip-bounces@lists.pjsip.org] On Behalf Of Benny Prijono Sent: Wednesday, March 25, 2009 3:56 AM To: pjsip list Subject: Re: [pjsip] Pjlib on Symbian 2009/3/24 George Evi <george.evi@ctcinc.ca> Hi Benny, I update my application with the latest version the "trunk pjproject- 1.1" and continue to test on Nokia E61. As you suggested I changed the codec priorities in a way that GSM had highest priority (in function "pjsua_media_subsys_init" priority value = PJMEDIA_CODEC_PRIO_NORMAL +4 (132)). The sound was acceptable on the caller side but on the callee side continue to be stuttered, disrupted and instable. Hi George, In that case, I would probably suggest to try to use different peer for the testing (pjsua running on desktop would be a good candidate :) ). And make sure the audio doesn't get routed through the server or otherwise this wouldn't make any difference. You can call directly to the device's IP address to make sure. Also I tried the others codecs (iLBC, Speex/8000 and Speex/16000) in the same way but didn't see any improvements. iLBC and Speex/16000 is definitely out of question. Speex/8000 is probably bang on the processing capability, so use it with care (e.g. only use release mode), and probably is not good for troubleshooting problems like this. And of course there is G.711, definitely a good candidate to try. cheers Benny Do you have any suggestions or ideas? We don't want to use Nokia APS (Audio proxy Server) for the moment, because it needs a publisher ID. Thank you, George. _____ From: pjsip-bounces@lists.pjsip.org [mailto:pjsip-bounces@lists.pjsip.org] On Behalf Of Benny Prijono Sent: Friday, March 20, 2009 2:32 AM To: pjsip list Subject: Re: [pjsip] Pjlib on Symbian 2009/3/19 George Evi <george.evi@ctcinc.ca> Hi Benny, Thanks for your response. The flow of sound is disrupted on both sides (caller and callee voice reception). You can hear the sound but the words are not completed and on the callee side the voice is metalique (like a robot speech). The latest tests I made were done with Nokia E61 (S60 3rd edition -mr) connected Wi-Fi and I expected to see some improvements but voice stilled disrupted. I'm using iLBC as codec (1st priority) and UDP transport. Aha, that's probably the reason. iLBC is heavy, I don't think the device has enough processing power to run it [2]. Try with GSM or Speex. Alternatively, consider using APS-Direct [1], available in pjsip version 1.1 now downloadable from the website. APS-Direct uses handset's native codec and it supports iLBC, AMR, G.729, and G.711. cheers Benny [1] http://trac.pjsip.org/repos/wiki/Nokia_APS_VAS_Direct [2] http://trac.pjsip.org/repos/wiki/PJMEDIA-MIPS _______________________________________________ Visit our blog: http://blog.pjsip.org pjsip mailing list pjsip@lists.pjsip.org http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org _______________________________________________ Visit our blog: http://blog.pjsip.org pjsip mailing list pjsip@lists.pjsip.org http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
BP
Benny Prijono
Mon, Apr 6, 2009 11:47 AM

On Fri, Apr 3, 2009 at 10:37 PM, George Evi george.evi@ctcinc.ca wrote:

Hi Benny,

Thanks for your response.

I have another question. I try to understand the media transmission flow
and I’m blocked with the logic of application.

Here is the stack of application running on Nokia E61 (is generated with
Carbide v1.3):

Thread [Thread id: 363] (Suspended: Breakpoint hit.)

         5 pjmedia_delay_buf_put()

C:\Symbian\Carbide\voip-phone\SipPhone\pjmedia\src\pjmedia\delaybuf.c:266
0xf55c8ebc

         4 pjmedia_port_put_frame()

C:\Symbian\Carbide\voip-phone\SipPhone\pjmedia\src\pjmedia\port.c:85
0xf55ca9ac

         3 rec_cb()

C:\Symbian\Carbide\voip-phone\SipPhone\pjmedia\src\pjmedia\sound_port.c:139
0xf55cca2c

         2 CPjAudioInputEngine::MaiscBufferCopied()

C:\Symbian\Carbide\voip-phone\SipPhone\pjmedia\src\pjmedia-audiodev\symb_mda_dev.cpp:464
0xf55df5f4

         1 Unknown (0xF52005A8)()  0xf52005a8

We can see that the audio frame is captured by “MaiscBufferCopied()”
function which will run the callback function “rec_cb()” and finally the
audio frame arrive in the “delay buffer” passing through “put_frame”
function from Conference module (the application uses the Conference
bridge).

My question is when (or who) is reading the “delay buffer” (which contains
the audio frames received from microphone) and transmits the data to
transport layer?

That will be done by the audio device's playback callback, which will call
get_frame() of the conference.c, and subsequently pjmedia_delay_buf_get().

cheers
Benny

On Fri, Apr 3, 2009 at 10:37 PM, George Evi <george.evi@ctcinc.ca> wrote: > Hi Benny, > > > > Thanks for your response. > > I have another question. I try to understand the media transmission flow > and I’m blocked with the logic of application. > > Here is the stack of application running on Nokia E61 (is generated with > Carbide v1.3): > > > > Thread [Thread id: 363] (Suspended: Breakpoint hit.) > > 5 pjmedia_delay_buf_put() > C:\Symbian\Carbide\voip-phone\SipPhone\pjmedia\src\pjmedia\delaybuf.c:266 > 0xf55c8ebc > > 4 pjmedia_port_put_frame() > C:\Symbian\Carbide\voip-phone\SipPhone\pjmedia\src\pjmedia\port.c:85 > 0xf55ca9ac > > 3 rec_cb() > C:\Symbian\Carbide\voip-phone\SipPhone\pjmedia\src\pjmedia\sound_port.c:139 > 0xf55cca2c > > 2 CPjAudioInputEngine::MaiscBufferCopied() > C:\Symbian\Carbide\voip-phone\SipPhone\pjmedia\src\pjmedia-audiodev\symb_mda_dev.cpp:464 > 0xf55df5f4 > > 1 Unknown (0xF52005A8)() 0xf52005a8 > > > > We can see that the audio frame is captured by “MaiscBufferCopied()” > function which will run the callback function “rec_cb()” and finally the > audio frame arrive in the “delay buffer” passing through “put_frame” > function from Conference module (the application uses the Conference > bridge). > > My question is when (or who) is reading the “delay buffer” (which contains > the audio frames received from microphone) and transmits the data to > transport layer? > > That will be done by the audio device's playback callback, which will call get_frame() of the conference.c, and subsequently pjmedia_delay_buf_get(). cheers Benny
GE
George Evi
Thu, Apr 9, 2009 1:45 PM

Hi Benny,

I have a question about the codec selection process.

Now the Speex/16000 has the highest priority (is set in the code like that)
but when I run the application only G711 is used.

I could verify this using the debug version and put a breakpoint in
"spx_codec_encode" function the application never stops there.

It seems that only G711 codec is used. Is this because of the SIP server?

The media line 'm' from the SDP how is managed (or negotiated) by the pjsip
module?

I do my tests with a phone Nokia E61 which is connected with Wi-Fi.

Can I ask you on what Nokia (or Symbian) phones the library was tested (may
be E61 is not a good candidate)?

Thank you,

George.

Hi Benny,

I update my application with the latest version the "trunk pjproject- 1.1"
and continue to test on Nokia E61.

As you suggested I changed the codec priorities in a way that GSM had
highest priority (in function "pjsua_media_subsys_init" priority value =
PJMEDIA_CODEC_PRIO_NORMAL +4 (132)). The sound was acceptable on the caller
side but on the callee side continue to be stuttered, disrupted and
instable.

Hi George,

In that case, I would probably suggest to try to use different peer for the
testing (pjsua running on desktop would be a good candidate :) ). And make
sure the audio doesn't get routed through the server or otherwise this
wouldn't make any difference. You can call directly to the device's IP
address to make sure.

Also I tried the others codecs (iLBC, Speex/8000 and Speex/16000) in the
same way but didn't see any improvements.

iLBC and Speex/16000 is definitely out of question. Speex/8000 is probably
bang on the processing capability, so use it with care (e.g. only use
release mode), and probably is not good for troubleshooting problems like
this. And of course there is G.711, definitely a good candidate to try.

cheers
Benny

Do you have any suggestions or ideas?

We don't want to use Nokia APS (Audio proxy Server) for the moment, because
it needs a publisher ID.

Thank you,

George.


From: pjsip-bounces@lists.pjsip.org [mailto:pjsip-bounces@lists.pjsip.org]
On Behalf Of Benny Prijono
Sent: Friday, March 20, 2009 2:32 AM

To: pjsip list
Subject: Re: [pjsip] Pjlib on Symbian

2009/3/19 George Evi george.evi@ctcinc.ca

Hi Benny,

Thanks for your response.

The flow of sound is disrupted on both sides (caller and callee voice
reception). You can hear the sound but the words are not completed and on
the callee side the voice is metalique  (like a robot speech). The latest
tests I made were done with Nokia E61 (S60 3rd edition -mr) connected Wi-Fi
and I expected to see some improvements but voice stilled disrupted.

I'm using iLBC as codec (1st priority) and UDP transport.

Aha, that's probably the reason. iLBC is heavy, I don't think the device has
enough processing power to run it [2]. Try with GSM or Speex.

Alternatively, consider using APS-Direct [1], available in pjsip version 1.1
now downloadable from the website. APS-Direct uses handset's native codec
and it supports iLBC, AMR, G.729, and G.711.

cheers
Benny

[1] http://trac.pjsip.org/repos/wiki/Nokia_APS_VAS_Direct
[2] http://trac.pjsip.org/repos/wiki/PJMEDIA-MIPS


Visit our blog: http://blog.pjsip.org

pjsip mailing list
pjsip@lists.pjsip.org
http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org

Hi Benny, I have a question about the codec selection process. Now the Speex/16000 has the highest priority (is set in the code like that) but when I run the application only G711 is used. I could verify this using the debug version and put a breakpoint in "spx_codec_encode" function the application never stops there. It seems that only G711 codec is used. Is this because of the SIP server? The media line 'm' from the SDP how is managed (or negotiated) by the pjsip module? I do my tests with a phone Nokia E61 which is connected with Wi-Fi. Can I ask you on what Nokia (or Symbian) phones the library was tested (may be E61 is not a good candidate)? Thank you, George. Hi Benny, I update my application with the latest version the "trunk pjproject- 1.1" and continue to test on Nokia E61. As you suggested I changed the codec priorities in a way that GSM had highest priority (in function "pjsua_media_subsys_init" priority value = PJMEDIA_CODEC_PRIO_NORMAL +4 (132)). The sound was acceptable on the caller side but on the callee side continue to be stuttered, disrupted and instable. Hi George, In that case, I would probably suggest to try to use different peer for the testing (pjsua running on desktop would be a good candidate :) ). And make sure the audio doesn't get routed through the server or otherwise this wouldn't make any difference. You can call directly to the device's IP address to make sure. Also I tried the others codecs (iLBC, Speex/8000 and Speex/16000) in the same way but didn't see any improvements. iLBC and Speex/16000 is definitely out of question. Speex/8000 is probably bang on the processing capability, so use it with care (e.g. only use release mode), and probably is not good for troubleshooting problems like this. And of course there is G.711, definitely a good candidate to try. cheers Benny Do you have any suggestions or ideas? We don't want to use Nokia APS (Audio proxy Server) for the moment, because it needs a publisher ID. Thank you, George. _____ From: pjsip-bounces@lists.pjsip.org [mailto:pjsip-bounces@lists.pjsip.org] On Behalf Of Benny Prijono Sent: Friday, March 20, 2009 2:32 AM To: pjsip list Subject: Re: [pjsip] Pjlib on Symbian 2009/3/19 George Evi <george.evi@ctcinc.ca> Hi Benny, Thanks for your response. The flow of sound is disrupted on both sides (caller and callee voice reception). You can hear the sound but the words are not completed and on the callee side the voice is metalique (like a robot speech). The latest tests I made were done with Nokia E61 (S60 3rd edition -mr) connected Wi-Fi and I expected to see some improvements but voice stilled disrupted. I'm using iLBC as codec (1st priority) and UDP transport. Aha, that's probably the reason. iLBC is heavy, I don't think the device has enough processing power to run it [2]. Try with GSM or Speex. Alternatively, consider using APS-Direct [1], available in pjsip version 1.1 now downloadable from the website. APS-Direct uses handset's native codec and it supports iLBC, AMR, G.729, and G.711. cheers Benny [1] http://trac.pjsip.org/repos/wiki/Nokia_APS_VAS_Direct [2] http://trac.pjsip.org/repos/wiki/PJMEDIA-MIPS _______________________________________________ Visit our blog: http://blog.pjsip.org pjsip mailing list pjsip@lists.pjsip.org http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
GE
George Evi
Tue, Apr 21, 2009 10:26 PM

Hi,

I have a question about the codec selection during an "INVITE" request.

I want to use the iLBC codec and to do that I set a higher priority.

I activate the log in the library and below there are traces of an INVITE
request:

  •      client:
    

INVITE/cseq=31666 (tdta0x73a678) to UDP 64.34.49.82:5060:

INVITE sip:5145294251@sip6.van.netvoice.ca SIP/2.0

Via: SIP/2.0/UDP
192.168.2.102:5060;rport;branch=z9hG4bKPjj5ATg0Ya9xVW0d2vTtMyPdYlvpmDk7P6

Max-Forwards: 70

From:
sip:nv2.ctci01.a@sip6.van.netvoice.ca;tag=Ah5zdhyiX0myLzxhYAH776mnSQZlZDOZ

To: sip:5145294251@sip6.van.netvoice.ca

Contact: sip:nv2.ctci01.a@69.159.242.205:1292;transport=UDP

Call-ID: JLjItY2mS8Mwkw1bAzF12M6iic4G40vO

CSeq: 31666 INVITE

Allow: PRACK, INVITE, ACK, BYE, CANCEL, UPDATE, SUBSCRIBE, NOTIFY, REFER,
MESSAGE, OPTIONS

Supported: replaces, 100rel, norefersub

Proxy-Authorization: Digest username="nv2.ctci01.a",
realm="sip6.van.netvoice.ca", nonce="764e2ef9",
uri="sip:5145294251@sip6.van.netvoice.ca",
response="51a4f7de3b8993973a30d1e0e4f387ee", algorithm=MD5

Content-Type: application/sdp

Content-Length:  349

v=0

o=- 3448991582 3448991582 IN IP4 192.168.2.102

s=pjmedia

c=IN IP4 192.168.2.102

t=0 0

a=X-nat:0

m=audio 4000 RTP/AVP 117 3 0 8 101

a=rtcp:4001 IN IP4 192.168.2.102

a=rtpmap:117 iLBC/8000

a=fmtp:117 mode=30

a=rtpmap:3 GSM/8000

a=rtpmap:0 PCMU/8000

a=rtpmap:8 PCMA/8000

a=sendrecv

a=rtpmap:101 telephone-event/8000

a=fmtp:101 0-15

--end msg--State changed from Null to Calling, event=TX_MSGTransaction

  •      server response:
    

SIP/2.0 200 OK

Via: SIP/2.0/UDP
192.168.2.102:5060;branch=z9hG4bKPjj5ATg0Ya9xVW0d2vTtMyPdYlvpmDk7P6;received
=69.159.242.205;rport=1292

From:
sip:nv2.ctci01.a@sip6.van.netvoice.ca;tag=Ah5zdhyiX0myLzxhYAH776mnSQZlZDOZ

To: sip:5145294251@sip6.van.netvoice.ca;tag=as367c40fa

Call-ID: JLjItY2mS8Mwkw1bAzF12M6iic4G40vO

CSeq: 31666 INVITE

User-Agent: Asterisk PBX

Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY

Supported: replaces

Contact: sip:5145294251@64.34.49.82

Content-Type: application/sdp

Content-Length: 307

v=0

o=root 2719 2720 IN IP4 64.34.49.82

s=session

c=IN IP4 64.34.49.82

t=0 0

m=audio 17636 RTP/AVP 0 3 117 101

a=rtpmap:0 PCMU/8000

a=rtpmap:3 GSM/8000

a=rtpmap:117 iLBC/8000

a=fmtp:117 mode=30

a=rtpmap:101 telephone-event/8000

a=fmtp:101 0-16

a=silenceSupp:off - - - -

a=ptime:20

a=sendrecv

--end msg--Incoming Response msg 200/INVITE/cseq=31666 (rdata0x71d734) in
state

As we can see the client propose in media session iLBC codec in the 1st
position as expected.

The proxy server responds with its list of codecs with PCMU 1st position.

My question is why the application takes all the time the proxy server 1st
position codec (in our case PCMU)?

  •      there is a trace where we can find the selected codec:
    

--end msg--Incoming Response msg 183/INVITE/cseq=31666 (rdata0x71d734) in
state ProceedingState changed from Proceeding to Proceeding,
event=RX_MSGReceived Response msg 183/INVITE/cseq=31666
(rdata0x71d734)Route-set updatedTransaction tsx0x74170c state changed to
ProceedingCall 0 state=EARLYGot SDP answer in Response msg
183/INVITE/cseq=31666 (rdata0x71d734)SDP negotiation done, status=0Call 0:
remote NAT type is 0 (Unknown)VAD temporarily
disabledpjmedia_rtp_session_init: ses=0x744714, default_pt=0,
ssrc=0x675eed34pjmedia_rtp_session_init: ses=0x744d38, default_pt=0,
ssrc=0x675eed34Stream strm0x742f14 createdEncoder stream startedDecoder
stream startedMedia updates, stream #0: PCMU (sendrecv)Port 1
(sip:5145294251@sip6.van.netvoice.ca) transmitting to port 0 (Symbian
Audio)Port 0 (Symbian Audio) transmitting to port 1
(sip:5145294251@sip6.van.netvoice.ca)- clock -Underflow, buf_cnt=0, will
generate 1 frameread_port sip:5145294251@sip6.van.netvoice.ca: count=320
get_frame, count=160Jitter buffer empty (prefetch=0)  rx buffer size is now
160  get_frame, count=160  rx buffer size is now 320write_port
sip:5145294251@sip6.van.netvoice.ca: count=160put_frame
sip:5145294251@sip6.van.netvoice.ca, count=160Start talksprut.. tx_buf count
now is 160write_port sip:5145294251@sip6.van.netvoice.ca: count=160put_frame
.

Thank you,

George.

Hi, I have a question about the codec selection during an "INVITE" request. I want to use the iLBC codec and to do that I set a higher priority. I activate the log in the library and below there are traces of an INVITE request: - client: INVITE/cseq=31666 (tdta0x73a678) to UDP 64.34.49.82:5060: INVITE sip:5145294251@sip6.van.netvoice.ca SIP/2.0 Via: SIP/2.0/UDP 192.168.2.102:5060;rport;branch=z9hG4bKPjj5ATg0Ya9xVW0d2vTtMyPdYlvpmDk7P6 Max-Forwards: 70 From: sip:nv2.ctci01.a@sip6.van.netvoice.ca;tag=Ah5zdhyiX0myLzxhYAH776mnSQZlZDOZ To: sip:5145294251@sip6.van.netvoice.ca Contact: <sip:nv2.ctci01.a@69.159.242.205:1292;transport=UDP> Call-ID: JLjItY2mS8Mwkw1bAzF12M6iic4G40vO CSeq: 31666 INVITE Allow: PRACK, INVITE, ACK, BYE, CANCEL, UPDATE, SUBSCRIBE, NOTIFY, REFER, MESSAGE, OPTIONS Supported: replaces, 100rel, norefersub Proxy-Authorization: Digest username="nv2.ctci01.a", realm="sip6.van.netvoice.ca", nonce="764e2ef9", uri="sip:5145294251@sip6.van.netvoice.ca", response="51a4f7de3b8993973a30d1e0e4f387ee", algorithm=MD5 Content-Type: application/sdp Content-Length: 349 v=0 o=- 3448991582 3448991582 IN IP4 192.168.2.102 s=pjmedia c=IN IP4 192.168.2.102 t=0 0 a=X-nat:0 m=audio 4000 RTP/AVP 117 3 0 8 101 a=rtcp:4001 IN IP4 192.168.2.102 a=rtpmap:117 iLBC/8000 a=fmtp:117 mode=30 a=rtpmap:3 GSM/8000 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=sendrecv a=rtpmap:101 telephone-event/8000 a=fmtp:101 0-15 --end msg--State changed from Null to Calling, event=TX_MSGTransaction - server response: SIP/2.0 200 OK Via: SIP/2.0/UDP 192.168.2.102:5060;branch=z9hG4bKPjj5ATg0Ya9xVW0d2vTtMyPdYlvpmDk7P6;received =69.159.242.205;rport=1292 From: sip:nv2.ctci01.a@sip6.van.netvoice.ca;tag=Ah5zdhyiX0myLzxhYAH776mnSQZlZDOZ To: sip:5145294251@sip6.van.netvoice.ca;tag=as367c40fa Call-ID: JLjItY2mS8Mwkw1bAzF12M6iic4G40vO CSeq: 31666 INVITE User-Agent: Asterisk PBX Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY Supported: replaces Contact: <sip:5145294251@64.34.49.82> Content-Type: application/sdp Content-Length: 307 v=0 o=root 2719 2720 IN IP4 64.34.49.82 s=session c=IN IP4 64.34.49.82 t=0 0 m=audio 17636 RTP/AVP 0 3 117 101 a=rtpmap:0 PCMU/8000 a=rtpmap:3 GSM/8000 a=rtpmap:117 iLBC/8000 a=fmtp:117 mode=30 a=rtpmap:101 telephone-event/8000 a=fmtp:101 0-16 a=silenceSupp:off - - - - a=ptime:20 a=sendrecv --end msg--Incoming Response msg 200/INVITE/cseq=31666 (rdata0x71d734) in state As we can see the client propose in media session iLBC codec in the 1st position as expected. The proxy server responds with its list of codecs with PCMU 1st position. My question is why the application takes all the time the proxy server 1st position codec (in our case PCMU)? - there is a trace where we can find the selected codec: --end msg--Incoming Response msg 183/INVITE/cseq=31666 (rdata0x71d734) in state ProceedingState changed from Proceeding to Proceeding, event=RX_MSGReceived Response msg 183/INVITE/cseq=31666 (rdata0x71d734)Route-set updatedTransaction tsx0x74170c state changed to ProceedingCall 0 state=EARLYGot SDP answer in Response msg 183/INVITE/cseq=31666 (rdata0x71d734)SDP negotiation done, status=0Call 0: remote NAT type is 0 (Unknown)VAD temporarily disabledpjmedia_rtp_session_init: ses=0x744714, default_pt=0, ssrc=0x675eed34pjmedia_rtp_session_init: ses=0x744d38, default_pt=0, ssrc=0x675eed34Stream strm0x742f14 createdEncoder stream startedDecoder stream startedMedia updates, stream #0: PCMU (sendrecv)Port 1 (sip:5145294251@sip6.van.netvoice.ca) transmitting to port 0 (Symbian Audio)Port 0 (Symbian Audio) transmitting to port 1 (sip:5145294251@sip6.van.netvoice.ca)- clock -Underflow, buf_cnt=0, will generate 1 frameread_port sip:5145294251@sip6.van.netvoice.ca: count=320 get_frame, count=160Jitter buffer empty (prefetch=0) rx buffer size is now 160 get_frame, count=160 rx buffer size is now 320write_port sip:5145294251@sip6.van.netvoice.ca: count=160put_frame sip:5145294251@sip6.van.netvoice.ca, count=160Start talksprut.. tx_buf count now is 160write_port sip:5145294251@sip6.van.netvoice.ca: count=160put_frame . Thank you, George.
GE
George Evi
Wed, Apr 22, 2009 6:43 PM

Hi,

Using one codec, application crashes.

For example I want to use only iLBC codec and I have deactivated (put in
comments "PJMEDIA_HAS_SPEEX_CODEC"," PJMEDIA_HAS_GSM_CODEC" .,) all the
other codecs.

When running (on Nokia E61) the application crashes.

Does anybody had this problem before?

Thanks,

George.

Hi, Using one codec, application crashes. For example I want to use only iLBC codec and I have deactivated (put in comments "PJMEDIA_HAS_SPEEX_CODEC"," PJMEDIA_HAS_GSM_CODEC" .,) all the other codecs. When running (on Nokia E61) the application crashes. Does anybody had this problem before? Thanks, George.
GE
George Evi
Thu, Apr 23, 2009 6:26 PM

Hi,

Using one codec, application crashes.

For example I want to use only iLBC codec and I have deactivated (put in
comments "PJMEDIA_HAS_SPEEX_CODEC"," PJMEDIA_HAS_GSM_CODEC" .,) all the
other codecs.

My goal was to use a more performant codec as PCMU.

When running (on Nokia E61) the application crashes.

I debug the application with Carbide v1.3 and I have now the call stack when
the program has crashed:

SipPhone.exe [Process ID: 615] (Suspended)

        Thread [Thread id: 616] (Suspended: Signal 'Exception 0'

received. Description: A data abort exception has occurred..)

                    13 Unknown (0xF80F572C)()  0xf80f572c      

                    12 iCBSearch()

C:\Symbian\Carbide\voip-phone\SipPhone\third_party\ilbc\iCBSearch.c:62
0xf553ec20

                    11 iLBC_encode()

C:\Symbian\Carbide\voip-phone\SipPhone\third_party\ilbc\iLBC_encode.c:252
0xf55349a4

                    10 ilbc_codec_encode()

C:\Symbian\Carbide\voip-phone\SipPhone\pjmedia\src\pjmedia-codec\ilbc.c:593
0xf5531b8c

                    9 put_frame_imp()

C:\Symbian\Carbide\voip-phone\SipPhone\pjmedia\src\pjmedia\stream.c:913
0xf554b664

                    8 put_frame()

C:\Symbian\Carbide\voip-phone\SipPhone\pjmedia\src\pjmedia\stream.c:1116
0xf554b830

                    7 pjmedia_port_put_frame()

C:\Symbian\Carbide\voip-phone\SipPhone\pjmedia\src\pjmedia\port.c:85
0xf5547be8

                    6 write_port()

C:\Symbian\Carbide\voip-phone\SipPhone\pjmedia\src\pjmedia\conference.c:1673
0xf5544354

                    5 get_frame()

C:\Symbian\Carbide\voip-phone\SipPhone\pjmedia\src\pjmedia\conference.c:1895
0xf55447bc

                    4 pjmedia_port_get_frame()

C:\Symbian\Carbide\voip-phone\SipPhone\pjmedia\src\pjmedia\port.c:68
0xf5547b84

                    3 play_cb()

C:\Symbian\Carbide\voip-phone\SipPhone\pjmedia\src\pjmedia\sound_port.c:77
0xf5549b30

                    2 CPjAudioOutputEngine::MaoscBufferCopied()

C:\Symbian\Carbide\voip-phone\SipPhone\pjmedia\src\pjmedia-audiodev\symb_mda
_dev.cpp:741 0xf555d500

                    1 Unknown (0xF524375C)()  0xf524375c       

As we can see it crashes inside the iLBC_encode() function.

Did anybody have this problem before?

Thanks,

George.

Hi, Using one codec, application crashes. For example I want to use only iLBC codec and I have deactivated (put in comments "PJMEDIA_HAS_SPEEX_CODEC"," PJMEDIA_HAS_GSM_CODEC" .,) all the other codecs. My goal was to use a more performant codec as PCMU. When running (on Nokia E61) the application crashes. I debug the application with Carbide v1.3 and I have now the call stack when the program has crashed: SipPhone.exe [Process ID: 615] (Suspended) Thread [Thread id: 616] (Suspended: Signal 'Exception 0' received. Description: A data abort exception has occurred..) 13 Unknown (0xF80F572C)() 0xf80f572c 12 iCBSearch() C:\Symbian\Carbide\voip-phone\SipPhone\third_party\ilbc\iCBSearch.c:62 0xf553ec20 11 iLBC_encode() C:\Symbian\Carbide\voip-phone\SipPhone\third_party\ilbc\iLBC_encode.c:252 0xf55349a4 10 ilbc_codec_encode() C:\Symbian\Carbide\voip-phone\SipPhone\pjmedia\src\pjmedia-codec\ilbc.c:593 0xf5531b8c 9 put_frame_imp() C:\Symbian\Carbide\voip-phone\SipPhone\pjmedia\src\pjmedia\stream.c:913 0xf554b664 8 put_frame() C:\Symbian\Carbide\voip-phone\SipPhone\pjmedia\src\pjmedia\stream.c:1116 0xf554b830 7 pjmedia_port_put_frame() C:\Symbian\Carbide\voip-phone\SipPhone\pjmedia\src\pjmedia\port.c:85 0xf5547be8 6 write_port() C:\Symbian\Carbide\voip-phone\SipPhone\pjmedia\src\pjmedia\conference.c:1673 0xf5544354 5 get_frame() C:\Symbian\Carbide\voip-phone\SipPhone\pjmedia\src\pjmedia\conference.c:1895 0xf55447bc 4 pjmedia_port_get_frame() C:\Symbian\Carbide\voip-phone\SipPhone\pjmedia\src\pjmedia\port.c:68 0xf5547b84 3 play_cb() C:\Symbian\Carbide\voip-phone\SipPhone\pjmedia\src\pjmedia\sound_port.c:77 0xf5549b30 2 CPjAudioOutputEngine::MaoscBufferCopied() C:\Symbian\Carbide\voip-phone\SipPhone\pjmedia\src\pjmedia-audiodev\symb_mda _dev.cpp:741 0xf555d500 1 Unknown (0xF524375C)() 0xf524375c As we can see it crashes inside the iLBC_encode() function. Did anybody have this problem before? Thanks, George.