RTP Timeout Detection

PG
Piewald Georg
Thu, May 18, 2017 12:27 PM

Hi,
I need to implement a mechanism to shut down a SIP session, when no RTP packets are received for a given time. I found two email discussions about exactly this question:

http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/2012-March/014274.html
http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/2016-August/019465.html

To quote part of the answers:

Periodically calling pjmedia_session_get_stream_stat(...). As a response you
get a pjmedia_rtcp_stat struct from where you can get the last received RTP
sequence number.

It sounds very reasonable to me (just that from pjsua I'd use pjsua_call_get_stream_stat instead, which would output the same structure). However, trying to implement it, I noticed that the returned structure pjmedia_rtcp_stat has only a member about the last transmitted sequence number (rtp_tx_last_seq), but nothing about the last received sequence number. Did I overlook something? Where can I find the last received sequence number or timestamp?

Thanks and BR,
Georg

Hi, I need to implement a mechanism to shut down a SIP session, when no RTP packets are received for a given time. I found two email discussions about exactly this question: http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/2012-March/014274.html http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/2016-August/019465.html To quote part of the answers: > Periodically calling pjmedia_session_get_stream_stat(...). As a response you > get a pjmedia_rtcp_stat struct from where you can get the last received RTP > sequence number. It sounds very reasonable to me (just that from pjsua I'd use pjsua_call_get_stream_stat instead, which would output the same structure). However, trying to implement it, I noticed that the returned structure pjmedia_rtcp_stat has only a member about the last *transmitted* sequence number (rtp_tx_last_seq), but nothing about the last *received* sequence number. Did I overlook something? Where can I find the last received sequence number or timestamp? Thanks and BR, Georg
JL
JOHAN LANTZ
Thu, May 18, 2017 12:54 PM

Inside pjmedia_rtcp_stat that you already have you can find the pjmedia_rtcp_stream_stat struct for rx. In that struct you can see how many packets you have received. If you do not receive any packets during N seconds, you can probably assume your rtp stream has been cut.

/Johan


From: pjsip pjsip-bounces@lists.pjsip.org on behalf of Piewald Georg gpi@mission-embedded.com
Sent: Thursday, May 18, 2017 2:27 PM
To: pjsip list
Subject: [pjsip] RTP Timeout Detection

Hi,

I need to implement a mechanism to shut down a SIP session, when no RTP packets are received for a given time. I found two email discussions about exactly this question:

http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/2012-March/014274.html

http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/2016-August/019465.html

To quote part of the answers:

Periodically calling pjmedia_session_get_stream_stat(...). As a response you

get a pjmedia_rtcp_stat struct from where you can get the last received RTP

sequence number.

It sounds very reasonable to me (just that from pjsua I’d use pjsua_call_get_stream_stat instead, which would output the same structure). However, trying to implement it, I noticed that the returned structure pjmedia_rtcp_stat has only a member about the last transmitted sequence number (rtp_tx_last_seq), but nothing about the last received sequence number. Did I overlook something? Where can I find the last received sequence number or timestamp?

Thanks and BR,

Georg


Este mensaje y sus adjuntos se dirigen exclusivamente a su destinatario, puede contener información privilegiada o confidencial y es para uso exclusivo de la persona o entidad de destino. Si no es usted. el destinatario indicado, queda notificado de que la lectura, utilización, divulgación y/o copia sin autorización puede estar prohibida en virtud de la legislación vigente. Si ha recibido este mensaje por error, le rogamos que nos lo comunique inmediatamente por esta misma vía y proceda a su destrucción.

The information contained in this transmission is privileged and confidential information intended only for the use of the individual or entity named above. If the reader of this message is not the intended recipient, you are hereby notified that any dissemination, distribution or copying of this communication is strictly prohibited. If you have received this transmission in error, do not read it. Please immediately reply to the sender that you have received this communication in error and then delete it.

Esta mensagem e seus anexos se dirigem exclusivamente ao seu destinatário, pode conter informação privilegiada ou confidencial e é para uso exclusivo da pessoa ou entidade de destino. Se não é vossa senhoria o destinatário indicado, fica notificado de que a leitura, utilização, divulgação e/ou cópia sem autorização pode estar proibida em virtude da legislação vigente. Se recebeu esta mensagem por erro, rogamos-lhe que nos o comunique imediatamente por esta mesma via e proceda a sua destruição

Inside pjmedia_rtcp_stat that you already have you can find the pjmedia_rtcp_stream_stat struct for rx. In that struct you can see how many packets you have received. If you do not receive any packets during N seconds, you can probably assume your rtp stream has been cut. /Johan ________________________________ From: pjsip <pjsip-bounces@lists.pjsip.org> on behalf of Piewald Georg <gpi@mission-embedded.com> Sent: Thursday, May 18, 2017 2:27 PM To: pjsip list Subject: [pjsip] RTP Timeout Detection Hi, I need to implement a mechanism to shut down a SIP session, when no RTP packets are received for a given time. I found two email discussions about exactly this question: http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/2012-March/014274.html http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/2016-August/019465.html To quote part of the answers: > Periodically calling pjmedia_session_get_stream_stat(...). As a response you > get a pjmedia_rtcp_stat struct from where you can get the last received RTP > sequence number. It sounds very reasonable to me (just that from pjsua I’d use pjsua_call_get_stream_stat instead, which would output the same structure). However, trying to implement it, I noticed that the returned structure pjmedia_rtcp_stat has only a member about the last *transmitted* sequence number (rtp_tx_last_seq), but nothing about the last *received* sequence number. Did I overlook something? Where can I find the last received sequence number or timestamp? Thanks and BR, Georg ________________________________ Este mensaje y sus adjuntos se dirigen exclusivamente a su destinatario, puede contener información privilegiada o confidencial y es para uso exclusivo de la persona o entidad de destino. Si no es usted. el destinatario indicado, queda notificado de que la lectura, utilización, divulgación y/o copia sin autorización puede estar prohibida en virtud de la legislación vigente. Si ha recibido este mensaje por error, le rogamos que nos lo comunique inmediatamente por esta misma vía y proceda a su destrucción. The information contained in this transmission is privileged and confidential information intended only for the use of the individual or entity named above. If the reader of this message is not the intended recipient, you are hereby notified that any dissemination, distribution or copying of this communication is strictly prohibited. If you have received this transmission in error, do not read it. Please immediately reply to the sender that you have received this communication in error and then delete it. Esta mensagem e seus anexos se dirigem exclusivamente ao seu destinatário, pode conter informação privilegiada ou confidencial e é para uso exclusivo da pessoa ou entidade de destino. Se não é vossa senhoria o destinatário indicado, fica notificado de que a leitura, utilização, divulgação e/ou cópia sem autorização pode estar proibida em virtude da legislação vigente. Se recebeu esta mensagem por erro, rogamos-lhe que nos o comunique imediatamente por esta mesma via e proceda a sua destruição
PG
Piewald Georg
Thu, May 18, 2017 3:37 PM

Hi,
Thanks a lot, I was too focused on sequence numbers and timestamps...
BR Georg

From: pjsip [mailto:pjsip-bounces@lists.pjsip.org] On Behalf Of JOHAN LANTZ
Sent: Thursday, May 18, 2017 14:55
To: pjsip list pjsip@lists.pjsip.org
Subject: Re: [pjsip] RTP Timeout Detection

Inside pjmedia_rtcp_stat that you already have you can find the pjmedia_rtcp_stream_stat struct for rx. In that struct you can see how many packets you have received. If you do not receive any packets during N seconds, you can probably assume your rtp stream has been cut.

/Johan


From: pjsip <pjsip-bounces@lists.pjsip.orgmailto:pjsip-bounces@lists.pjsip.org> on behalf of Piewald Georg <gpi@mission-embedded.commailto:gpi@mission-embedded.com>
Sent: Thursday, May 18, 2017 2:27 PM
To: pjsip list
Subject: [pjsip] RTP Timeout Detection

Hi,

I need to implement a mechanism to shut down a SIP session, when no RTP packets are received for a given time. I found two email discussions about exactly this question:

http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/2012-March/014274.html

http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/2016-August/019465.html

To quote part of the answers:

Periodically calling pjmedia_session_get_stream_stat(...). As a response you

get a pjmedia_rtcp_stat struct from where you can get the last received RTP

sequence number.

It sounds very reasonable to me (just that from pjsua I'd use pjsua_call_get_stream_stat instead, which would output the same structure). However, trying to implement it, I noticed that the returned structure pjmedia_rtcp_stat has only a member about the last transmitted sequence number (rtp_tx_last_seq), but nothing about the last received sequence number. Did I overlook something? Where can I find the last received sequence number or timestamp?

Thanks and BR,

Georg


Este mensaje y sus adjuntos se dirigen exclusivamente a su destinatario, puede contener información privilegiada o confidencial y es para uso exclusivo de la persona o entidad de destino. Si no es usted. el destinatario indicado, queda notificado de que la lectura, utilización, divulgación y/o copia sin autorización puede estar prohibida en virtud de la legislación vigente. Si ha recibido este mensaje por error, le rogamos que nos lo comunique inmediatamente por esta misma vía y proceda a su destrucción.

The information contained in this transmission is privileged and confidential information intended only for the use of the individual or entity named above. If the reader of this message is not the intended recipient, you are hereby notified that any dissemination, distribution or copying of this communication is strictly prohibited. If you have received this transmission in error, do not read it. Please immediately reply to the sender that you have received this communication in error and then delete it.

Esta mensagem e seus anexos se dirigem exclusivamente ao seu destinatário, pode conter informação privilegiada ou confidencial e é para uso exclusivo da pessoa ou entidade de destino. Se não é vossa senhoria o destinatário indicado, fica notificado de que a leitura, utilização, divulgação e/ou cópia sem autorização pode estar proibida em virtude da legislação vigente. Se recebeu esta mensagem por erro, rogamos-lhe que nos o comunique imediatamente por esta mesma via e proceda a sua destruição

Hi, Thanks a lot, I was too focused on sequence numbers and timestamps... BR Georg From: pjsip [mailto:pjsip-bounces@lists.pjsip.org] On Behalf Of JOHAN LANTZ Sent: Thursday, May 18, 2017 14:55 To: pjsip list <pjsip@lists.pjsip.org> Subject: Re: [pjsip] RTP Timeout Detection Inside pjmedia_rtcp_stat that you already have you can find the pjmedia_rtcp_stream_stat struct for rx. In that struct you can see how many packets you have received. If you do not receive any packets during N seconds, you can probably assume your rtp stream has been cut. /Johan ________________________________ From: pjsip <pjsip-bounces@lists.pjsip.org<mailto:pjsip-bounces@lists.pjsip.org>> on behalf of Piewald Georg <gpi@mission-embedded.com<mailto:gpi@mission-embedded.com>> Sent: Thursday, May 18, 2017 2:27 PM To: pjsip list Subject: [pjsip] RTP Timeout Detection Hi, I need to implement a mechanism to shut down a SIP session, when no RTP packets are received for a given time. I found two email discussions about exactly this question: http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/2012-March/014274.html http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/2016-August/019465.html To quote part of the answers: > Periodically calling pjmedia_session_get_stream_stat(...). As a response you > get a pjmedia_rtcp_stat struct from where you can get the last received RTP > sequence number. It sounds very reasonable to me (just that from pjsua I'd use pjsua_call_get_stream_stat instead, which would output the same structure). However, trying to implement it, I noticed that the returned structure pjmedia_rtcp_stat has only a member about the last *transmitted* sequence number (rtp_tx_last_seq), but nothing about the last *received* sequence number. Did I overlook something? Where can I find the last received sequence number or timestamp? Thanks and BR, Georg ________________________________ Este mensaje y sus adjuntos se dirigen exclusivamente a su destinatario, puede contener información privilegiada o confidencial y es para uso exclusivo de la persona o entidad de destino. Si no es usted. el destinatario indicado, queda notificado de que la lectura, utilización, divulgación y/o copia sin autorización puede estar prohibida en virtud de la legislación vigente. Si ha recibido este mensaje por error, le rogamos que nos lo comunique inmediatamente por esta misma vía y proceda a su destrucción. The information contained in this transmission is privileged and confidential information intended only for the use of the individual or entity named above. If the reader of this message is not the intended recipient, you are hereby notified that any dissemination, distribution or copying of this communication is strictly prohibited. If you have received this transmission in error, do not read it. Please immediately reply to the sender that you have received this communication in error and then delete it. Esta mensagem e seus anexos se dirigem exclusivamente ao seu destinatário, pode conter informação privilegiada ou confidencial e é para uso exclusivo da pessoa ou entidade de destino. Se não é vossa senhoria o destinatário indicado, fica notificado de que a leitura, utilização, divulgação e/ou cópia sem autorização pode estar proibida em virtude da legislação vigente. Se recebeu esta mensagem por erro, rogamos-lhe que nos o comunique imediatamente por esta mesma via e proceda a sua destruição