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:
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
Hi
For some reason i need implement own protocol to change all sip/rtp packets. Can you suggest me a right way?
Alex
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,
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
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