RTP recv() error messages

马克维
Wed, Sep 18, 2013 10:27 AM

I have meet the same problems, and I also have RTCP recv() error messages
too.

On Linux platform, I just configure PJSIP use "--enable-epoll" options, and
then the problem almost gone.
I only got one RTCP recv() error messages after I recompile it.

Hope it can help you.

-----邮件原件-----
发件人: pjsip [mailto:pjsip-bounces@lists.pjsip.org] 代表
pjsip-request@lists.pjsip.org
发送时间: 2013年8月26日 16:58
收件人: pjsip@lists.pjsip.org
主题: pjsip Digest, Vol 72, Issue 75

Send pjsip mailing list submissions to
pjsip@lists.pjsip.org

To subscribe or unsubscribe via the World Wide Web, visit
http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
or, via email, send a message with subject or body 'help' to
pjsip-request@lists.pjsip.org

You can reach the person managing the list at
pjsip-owner@lists.pjsip.org

When replying, please edit your Subject line so it is more specific than
"Re: Contents of pjsip digest..."

Today's Topics:

  1. Re: Receiving a lot of RTP recv() error messages (Paul Schmidt)

Message: 1
Date: Mon, 26 Aug 2013 10:58:08 +0200 (CEST)
From: "Paul Schmidt" 8flm6@gmx.de
To: "pjsip list" pjsip@lists.pjsip.org
Subject: Re: [pjsip] Receiving a lot of RTP recv() error messages
Message-ID:

trinity-b963a58c-7a40-4664-b6db-672a82fbc34d-1377507488060@3capp-gmx-bs28

Content-Type: text/plain; charset=UTF-8

Ok after some further testing, I'm getting much less of the ?
RTP recv() error: Resource temporarily unavailable [err:120011] ?
messages, when I run my application as root. For now this is ok, but I hope
I'll find a different solution than running the application with superuser
rights permanently.
?
regards
?
?

Gesendet:?Montag, 26. August 2013 um 10:20 Uhr Von:?"Paul Schmidt"
8flm6@gmx.de An:?"pjsip list" pjsip@lists.pjsip.org Betreff:?[pjsip]
Receiving a lot of RTP recv() error messages Hello, ?
I'm using PJSIPs conference bridge to mix media streams of IP telephones.
Right now the incoming RTP packets seem to be blocked by my application. The
following output is generated by PJSIP:
?

10:00:12.530???? resample.c? .resample created: high qualiy, large filter,
in/out rate=8000/44100 10:00:12.530???? resample.c? .resample created: high
qualiy, large filter, in/out rate=44100/8000
sss_confCallHandler.c[1158]:on_rx_request() >> Starting media stream to
peer!
10:00:12.530 strm0xb5f051fc? .Encoder stream started
10:00:12.530 strm0xb5f051fc? .Decoder stream started
sss_confCallHandler.c[1179]:on_rx_request() >> Peer connected to conference
10:00:12.546 strm0xb5f051fc !Start talksprut..
10:00:12.726 conference-ses !Remote RTP address switched to 192.168.0.4:5004
10:00:12.726 conference-ses? Remote RTCP address switched to predicted
address 192.168.0.4:5005
10:00:12.726 strm0xb5f051fc? RTP status: badpt=0, badssrc=0, dup=0,
outorder=0, probation=-1, restart=0
10:00:13.166 strm0xb5f051fc !VAD re-enabled
10:00:13.166 strm0xb5f051fc? Starting silence
10:00:13.746 strm0xb5f051fc !RTP recv() error: Resource temporarily
unavailable [err:120011]
10:00:14.226 strm0xb5f051fc? RTP recv() error: Resource temporarily
unavailable [err:120011]
10:00:14.886 strm0xb5f051fc !RTP recv() error: Resource temporarily
unavailable [err:120011]
10:00:15.906 strm0xb5f051fc !RTP recv() error: Resource temporarily
unavailable [err:120011]
10:00:16.926 strm0xb5f051fc !RTP recv() error: Resource temporarily
unavailable [err:120011]
10:00:17.066 strm0xb5f051fc !RTP recv() error: Resource temporarily
unavailable [err:120011] 10:00:17.146?? silencedet.c !Re-adjust threshold
(in silence)to 0
10:00:17.546 strm0xb5f051fc? Start talksprut..
10:00:17.565 strm0xb5f051fc? Starting silence
10:00:18.286 strm0xb5f051fc !RTP recv() error: Resource temporarily
unavailable [err:120011]
10:00:18.366 strm0xb5f051fc !RTP recv() error: Resource temporarily
unavailable [err:120011]
10:00:18.386 strm0xb5f051fc? RTP recv() error: Resource temporarily
unavailable [err:120011]
10:00:18.406 strm0xb5f051fc? RTP recv() error: Resource temporarily
unavailable [err:120011]
10:00:18.426 strm0xb5f051fc !RTP recv() error: Resource temporarily
unavailable [err:120011]

This goes on for as long as the session is active. Did anyone ever had a
similar problem?
If yes is there something I might miss at initialization time of the stream
object or the conference bridge?

Regards
?


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

pjsip mailing list
pjsip@lists.pjsip.org
http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org[http://lists.p
jsip.org/mailman/listinfo/pjsip_lists.pjsip.org]


Subject: Digest Footer


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


End of pjsip Digest, Vol 72, Issue 75


I have meet the same problems, and I also have RTCP recv() error messages too. On Linux platform, I just configure PJSIP use "--enable-epoll" options, and then the problem almost gone. I only got one RTCP recv() error messages after I recompile it. Hope it can help you. -----邮件原件----- 发件人: pjsip [mailto:pjsip-bounces@lists.pjsip.org] 代表 pjsip-request@lists.pjsip.org 发送时间: 2013年8月26日 16:58 收件人: pjsip@lists.pjsip.org 主题: pjsip Digest, Vol 72, Issue 75 Send pjsip mailing list submissions to pjsip@lists.pjsip.org To subscribe or unsubscribe via the World Wide Web, visit http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org or, via email, send a message with subject or body 'help' to pjsip-request@lists.pjsip.org You can reach the person managing the list at pjsip-owner@lists.pjsip.org When replying, please edit your Subject line so it is more specific than "Re: Contents of pjsip digest..." Today's Topics: 1. Re: Receiving a lot of RTP recv() error messages (Paul Schmidt) ---------------------------------------------------------------------- Message: 1 Date: Mon, 26 Aug 2013 10:58:08 +0200 (CEST) From: "Paul Schmidt" <8flm6@gmx.de> To: "pjsip list" <pjsip@lists.pjsip.org> Subject: Re: [pjsip] Receiving a lot of RTP recv() error messages Message-ID: <trinity-b963a58c-7a40-4664-b6db-672a82fbc34d-1377507488060@3capp-gmx-bs28> Content-Type: text/plain; charset=UTF-8 Ok after some further testing, I'm getting much less of the ? RTP recv() error: Resource temporarily unavailable [err:120011] ? messages, when I run my application as root. For now this is ok, but I hope I'll find a different solution than running the application with superuser rights permanently. ? regards ? ? Gesendet:?Montag, 26. August 2013 um 10:20 Uhr Von:?"Paul Schmidt" <8flm6@gmx.de> An:?"pjsip list" <pjsip@lists.pjsip.org> Betreff:?[pjsip] Receiving a lot of RTP recv() error messages Hello, ? I'm using PJSIPs conference bridge to mix media streams of IP telephones. Right now the incoming RTP packets seem to be blocked by my application. The following output is generated by PJSIP: ? 10:00:12.530???? resample.c? .resample created: high qualiy, large filter, in/out rate=8000/44100 10:00:12.530???? resample.c? .resample created: high qualiy, large filter, in/out rate=44100/8000 sss_confCallHandler.c[1158]:on_rx_request() >> Starting media stream to peer! 10:00:12.530 strm0xb5f051fc? .Encoder stream started 10:00:12.530 strm0xb5f051fc? .Decoder stream started sss_confCallHandler.c[1179]:on_rx_request() >> Peer connected to conference 10:00:12.546 strm0xb5f051fc !Start talksprut.. 10:00:12.726 conference-ses !Remote RTP address switched to 192.168.0.4:5004 10:00:12.726 conference-ses? Remote RTCP address switched to predicted address 192.168.0.4:5005 10:00:12.726 strm0xb5f051fc? RTP status: badpt=0, badssrc=0, dup=0, outorder=0, probation=-1, restart=0 10:00:13.166 strm0xb5f051fc !VAD re-enabled 10:00:13.166 strm0xb5f051fc? Starting silence 10:00:13.746 strm0xb5f051fc !RTP recv() error: Resource temporarily unavailable [err:120011] 10:00:14.226 strm0xb5f051fc? RTP recv() error: Resource temporarily unavailable [err:120011] 10:00:14.886 strm0xb5f051fc !RTP recv() error: Resource temporarily unavailable [err:120011] 10:00:15.906 strm0xb5f051fc !RTP recv() error: Resource temporarily unavailable [err:120011] 10:00:16.926 strm0xb5f051fc !RTP recv() error: Resource temporarily unavailable [err:120011] 10:00:17.066 strm0xb5f051fc !RTP recv() error: Resource temporarily unavailable [err:120011] 10:00:17.146?? silencedet.c !Re-adjust threshold (in silence)to 0 10:00:17.546 strm0xb5f051fc? Start talksprut.. 10:00:17.565 strm0xb5f051fc? Starting silence 10:00:18.286 strm0xb5f051fc !RTP recv() error: Resource temporarily unavailable [err:120011] 10:00:18.366 strm0xb5f051fc !RTP recv() error: Resource temporarily unavailable [err:120011] 10:00:18.386 strm0xb5f051fc? RTP recv() error: Resource temporarily unavailable [err:120011] 10:00:18.406 strm0xb5f051fc? RTP recv() error: Resource temporarily unavailable [err:120011] 10:00:18.426 strm0xb5f051fc !RTP recv() error: Resource temporarily unavailable [err:120011] This goes on for as long as the session is active. Did anyone ever had a similar problem? If yes is there something I might miss at initialization time of the stream object or the conference bridge? Regards ? _______________________________________________ Visit our blog: http://blog.pjsip.org pjsip mailing list pjsip@lists.pjsip.org http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org[http://lists.p jsip.org/mailman/listinfo/pjsip_lists.pjsip.org] ------------------------------ Subject: Digest Footer _______________________________________________ pjsip mailing list pjsip@lists.pjsip.org http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org ------------------------------ End of pjsip Digest, Vol 72, Issue 75 *************************************
OV
Oleksii Vynogradov
Thu, Sep 19, 2013 6:56 AM

Hi
For some reason i need implement own protocol to change all sip/rtp packets. Can you suggest me a right way?
Alex

Hi For some reason i need implement own protocol to change all sip/rtp packets. Can you suggest me a right way? Alex
VP
varun pratapsingh
Thu, Sep 19, 2013 8:13 AM

Hi Alex,

Then why dont you write your own stack like pjsip from scratch as
completely changig SIP and RTP changes all the pjsip.

Regards
Varun

On 9/19/13, Oleksii Vynogradov alex@ixcglobal.com wrote:

Hi
For some reason i need implement own protocol to change all sip/rtp packets.
Can you suggest me a right way?
Alex


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 Alex, Then why dont you write your own stack like pjsip from scratch as completely changig SIP and RTP changes all the pjsip. Regards Varun On 9/19/13, Oleksii Vynogradov <alex@ixcglobal.com> wrote: > Hi > For some reason i need implement own protocol to change all sip/rtp packets. > Can you suggest me a right way? > Alex > _______________________________________________ > Visit our blog: http://blog.pjsip.org > > pjsip mailing list > pjsip@lists.pjsip.org > http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org >
DA
Dan Arrhenius
Thu, Sep 19, 2013 8:51 AM

Hi,
for the SIP signaling I think you should be able to accomplish this with
implementing a pjsip module in which you modify the messages when they
are received and sent. Have a look at pjsip_endpt_register_module().
For the RTP traffic you can implement your own media transport that uses
one of the existing media transports as a slave transport and then do
your own modifications on the RX/TX packets. Have a look at
http://www.pjsip.org/docs/latest/pjmedia/docs/html/group__PJMEDIA__TRANSPORT.htm

Good luck!
Dan

On 9/19/13 8:56 AM, Oleksii Vynogradov wrote:

Hi
For some reason i need implement own protocol to change all sip/rtp packets. Can you suggest me a right way?
Alex


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, for the SIP signaling I think you should be able to accomplish this with implementing a pjsip module in which you modify the messages when they are received and sent. Have a look at pjsip_endpt_register_module(). For the RTP traffic you can implement your own media transport that uses one of the existing media transports as a slave transport and then do your own modifications on the RX/TX packets. Have a look at http://www.pjsip.org/docs/latest/pjmedia/docs/html/group__PJMEDIA__TRANSPORT.htm Good luck! Dan On 9/19/13 8:56 AM, Oleksii Vynogradov wrote: > Hi > For some reason i need implement own protocol to change all sip/rtp packets. Can you suggest me a right way? > Alex > _______________________________________________ > Visit our blog: http://blog.pjsip.org > > pjsip mailing list > pjsip@lists.pjsip.org > http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
OV
Oleksii Vynogradov
Thu, Sep 19, 2013 9:59 AM

Hi
for module, looks like good proposition, but:

status = pjsip_endpt_register_module(pjsua_get_pjsip_endpt(),
                                     &mod_default_handler);
if (status != PJ_SUCCESS)
    return status;

/* The module instance. /
static pjsip_module mod_default_handler =
{
NULL, NULL, /
prev, next. /
{ "mod-default-handler", 19 }, /
Name. /
-1, /
Id /
PJSIP_MOD_PRIORITY_APPLICATION+99, /
Priority         /
NULL, /
load() /
NULL, /
start() /
NULL, /
stop() /
NULL, /
unload() /
&default_mod_on_rx_request, /
on_rx_request() /
NULL, /
on_rx_response() /
NULL, /
on_tx_request. /
NULL, /
on_tx_response() /
NULL, /
on_tsx_state() */

};

static pj_bool_t default_mod_on_rx_request(pjsip_rx_data *rdata)
{
PJ_LOG(1,(THIS_FILE,  "default_mod_on_rx_request"));
}

show nothing on console. I call pjsip_endpt_register_module
after pjsua_init of course.
May u suggest a code snippet?
Alex

Sep 19, 2013, в 11:51 AM, Dan Arrhenius dan@keystream.se написал(а):

Hi,
for the SIP signaling I think you should be able to accomplish this with implementing a pjsip module in which you modify the messages when they are received and sent. Have a look at pjsip_endpt_register_module().
For the RTP traffic you can implement your own media transport that uses one of the existing media transports as a slave transport and then do your own modifications on the RX/TX packets. Have a look at http://www.pjsip.org/docs/latest/pjmedia/docs/html/group__PJMEDIA__TRANSPORT.htm

Good luck!
Dan

On 9/19/13 8:56 AM, Oleksii Vynogradov wrote:

Hi
For some reason i need implement own protocol to change all sip/rtp packets. Can you suggest me a right way?
Alex


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 for module, looks like good proposition, but: status = pjsip_endpt_register_module(pjsua_get_pjsip_endpt(), &mod_default_handler); if (status != PJ_SUCCESS) return status; /* The module instance. */ static pjsip_module mod_default_handler = { NULL, NULL, /* prev, next. */ { "mod-default-handler", 19 }, /* Name. */ -1, /* Id */ PJSIP_MOD_PRIORITY_APPLICATION+99, /* Priority */ NULL, /* load() */ NULL, /* start() */ NULL, /* stop() */ NULL, /* unload() */ &default_mod_on_rx_request, /* on_rx_request() */ NULL, /* on_rx_response() */ NULL, /* on_tx_request. */ NULL, /* on_tx_response() */ NULL, /* on_tsx_state() */ }; static pj_bool_t default_mod_on_rx_request(pjsip_rx_data *rdata) { PJ_LOG(1,(THIS_FILE, "default_mod_on_rx_request")); } show nothing on console. I call pjsip_endpt_register_module after pjsua_init of course. May u suggest a code snippet? Alex Sep 19, 2013, в 11:51 AM, Dan Arrhenius <dan@keystream.se> написал(а): > Hi, > for the SIP signaling I think you should be able to accomplish this with implementing a pjsip module in which you modify the messages when they are received and sent. Have a look at pjsip_endpt_register_module(). > For the RTP traffic you can implement your own media transport that uses one of the existing media transports as a slave transport and then do your own modifications on the RX/TX packets. Have a look at http://www.pjsip.org/docs/latest/pjmedia/docs/html/group__PJMEDIA__TRANSPORT.htm > > Good luck! > Dan > > On 9/19/13 8:56 AM, Oleksii Vynogradov wrote: >> Hi >> For some reason i need implement own protocol to change all sip/rtp packets. Can you suggest me a right way? >> Alex >> _______________________________________________ >> 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
OV
Oleksii Vynogradov
Thu, Sep 19, 2013 11:29 AM

Dan i'm little confusing for you proposition to using module.
Before sending signalling packet on_tx_request gives me  pjsip_tx_data *tdata structure. Inside there i find only one member, which i think i can using    pjsip_msg *msg;
but there is i can change body only, but not headers.
Simply enumeration:
const pjsip_hdr *h;
unsigned cnt = 0;
h = tdata->msg->hdr.next;
while (h != &tdata->msg->hdr) {
++cnt;
h = h->next;
PJ_LOG(1,(THIS_FILE, "proxy_on_tx_request  hsrc.name->%s hsrc.sname->%s", h->name.ptr,h->sname.ptr));
}

Show me only header attrubutes, but not values inside.
I didn't find possibility to change final sip message there, all buffers (pjsip_buffer) empty there.
Thank you for u future helps,
Alex.

Sep 19, 2013, в 11:51 AM, Dan Arrhenius dan@keystream.se написал(а):

Hi,
for the SIP signaling I think you should be able to accomplish this with implementing a pjsip module in which you modify the messages when they are received and sent. Have a look at pjsip_endpt_register_module().
For the RTP traffic you can implement your own media transport that uses one of the existing media transports as a slave transport and then do your own modifications on the RX/TX packets. Have a look at http://www.pjsip.org/docs/latest/pjmedia/docs/html/group__PJMEDIA__TRANSPORT.htm

Good luck!
Dan

On 9/19/13 8:56 AM, Oleksii Vynogradov wrote:

Hi
For some reason i need implement own protocol to change all sip/rtp packets. Can you suggest me a right way?
Alex


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

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

Dan i'm little confusing for you proposition to using module. Before sending signalling packet on_tx_request gives me pjsip_tx_data *tdata structure. Inside there i find only one member, which i think i can using pjsip_msg *msg; but there is i can change body only, but not headers. Simply enumeration: const pjsip_hdr *h; unsigned cnt = 0; h = tdata->msg->hdr.next; while (h != &tdata->msg->hdr) { ++cnt; h = h->next; PJ_LOG(1,(THIS_FILE, "proxy_on_tx_request hsrc.name->%s hsrc.sname->%s", h->name.ptr,h->sname.ptr)); } Show me only header attrubutes, but not values inside. I didn't find possibility to change final sip message there, all buffers (pjsip_buffer) empty there. Thank you for u future helps, Alex. Sep 19, 2013, в 11:51 AM, Dan Arrhenius <dan@keystream.se> написал(а): > Hi, > for the SIP signaling I think you should be able to accomplish this with implementing a pjsip module in which you modify the messages when they are received and sent. Have a look at pjsip_endpt_register_module(). > For the RTP traffic you can implement your own media transport that uses one of the existing media transports as a slave transport and then do your own modifications on the RX/TX packets. Have a look at http://www.pjsip.org/docs/latest/pjmedia/docs/html/group__PJMEDIA__TRANSPORT.htm > > Good luck! > Dan > > On 9/19/13 8:56 AM, Oleksii Vynogradov wrote: >> Hi >> For some reason i need implement own protocol to change all sip/rtp packets. Can you suggest me a right way? >> Alex >> _______________________________________________ >> 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