Skip to content

Commit 7f17633

Browse files
authored
chore: allow ka_cfg to be modifiable through the callback on_stream_p… (#4470)
1 parent 04aea0e commit 7f17633

File tree

6 files changed

+33
-3
lines changed

6 files changed

+33
-3
lines changed

pjsip/include/pjsua-lib/pjsua.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1311,7 +1311,7 @@ typedef struct pjsua_callback
13111311
* (as opposed to on_stream_created() and on_stream_created2() which are
13121312
* called *after* the session has been created). The application may change
13131313
* some stream info parameter values, i.e: jb_init, jb_min_pre, jb_max_pre,
1314-
* jb_max, use_ka, rtcp_sdes_bye_disabled, jb_discard_algo (audio),
1314+
* jb_max, use_ka, ka_cfg, rtcp_sdes_bye_disabled, jb_discard_algo (audio),
13151315
* rx_event_pt (audio), codec_param->enc_fmt (video).
13161316
*
13171317
* @param call_id Call identification.

pjsip/include/pjsua2/call.hpp

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -689,6 +689,21 @@ struct StreamInfo
689689
* enabled?
690690
*/
691691
bool useKa;
692+
693+
/**
694+
* Number of keepalive messages to be sent
695+
*/
696+
unsigned startCountKa;
697+
698+
/**
699+
* Keepalive interval after the stream is created.
700+
*/
701+
unsigned startIntervalKa;
702+
703+
/**
704+
* Keepalive sending interval.
705+
*/
706+
unsigned intervalKa;
692707
#endif
693708

694709
/**
@@ -2003,8 +2018,8 @@ class Call
20032018
* (as opposed to onStreamCreated(), which is called *after* the session
20042019
* has been created). The application may change
20052020
* some stream info parameter values, i.e: jbInit, jbMinPre, jbMaxPre,
2006-
* jbMax, useKa, rtcpSdesByeDisabled, jbDiscardAlgo (audio),
2007-
* vidCodecParam.encFmt (video).
2021+
* jbMax, useKa, startCountKa, startIntervalKa, intervalKa,
2022+
* rtcpSdesByeDisabled, jbDiscardAlgo (audio), vidCodecParam.encFmt (video).
20082023
*
20092024
* @param prm Callback parameter.
20102025
*/

pjsip/src/pjsua-lib/pjsua_aud.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -664,6 +664,8 @@ pj_status_t pjsua_aud_channel_update(pjsua_call_media *call_med,
664664
si->jb_discard_algo = prm.stream_info.info.aud.jb_discard_algo;
665665
#if defined(PJMEDIA_STREAM_ENABLE_KA) && (PJMEDIA_STREAM_ENABLE_KA != 0)
666666
si->use_ka = prm.stream_info.info.aud.use_ka;
667+
668+
si->ka_cfg = prm.stream_info.info.aud.ka_cfg;
667669
#endif
668670
si->rtcp_sdes_bye_disabled = prm.stream_info.info.aud.rtcp_sdes_bye_disabled;
669671
si->rx_event_pt = prm.stream_info.info.aud.rx_event_pt;

pjsip/src/pjsua-lib/pjsua_txt.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -220,6 +220,8 @@ pj_status_t pjsua_txt_channel_update(pjsua_call_media *call_med,
220220
si->jb_discard_algo = prm.stream_info.info.aud.jb_discard_algo;
221221
#if defined(PJMEDIA_STREAM_ENABLE_KA) && (PJMEDIA_STREAM_ENABLE_KA != 0)
222222
si->use_ka = prm.stream_info.info.aud.use_ka;
223+
224+
si->ka_cfg = prm.stream_info.info.aud.ka_cfg;
223225
#endif
224226
si->rtcp_sdes_bye_disabled =
225227
prm.stream_info.info.aud.rtcp_sdes_bye_disabled;

pjsip/src/pjsua-lib/pjsua_vid.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1216,6 +1216,8 @@ pj_status_t pjsua_vid_channel_update(pjsua_call_media *call_med,
12161216
si->jb_max = prm.stream_info.info.vid.jb_max;
12171217
#if defined(PJMEDIA_STREAM_ENABLE_KA) && (PJMEDIA_STREAM_ENABLE_KA != 0)
12181218
si->use_ka = prm.stream_info.info.vid.use_ka;
1219+
1220+
si->ka_cfg = prm.stream_info.info.vid.ka_cfg;
12191221
#endif
12201222
si->rtcp_sdes_bye_disabled = prm.stream_info.info.vid.rtcp_sdes_bye_disabled;
12211223
si->codec_param->enc_fmt = prm.stream_info.info.vid.codec_param->enc_fmt;

pjsip/src/pjsua2/call.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -370,6 +370,9 @@ void StreamInfo::fromPj(const pjsua_stream_info &info)
370370
jbDiscardAlgo = info.info.aud.jb_discard_algo;
371371
#if defined(PJMEDIA_STREAM_ENABLE_KA) && (PJMEDIA_STREAM_ENABLE_KA != 0)
372372
useKa = PJ2BOOL(info.info.aud.use_ka);
373+
startCountKa = info.info.aud.ka_cfg.start_count;
374+
startIntervalKa = info.info.aud.ka_cfg.start_interval;
375+
intervalKa = info.info.aud.ka_cfg.ka_interval;
373376
#endif
374377
rtcpSdesByeDisabled = PJ2BOOL(info.info.aud.rtcp_sdes_bye_disabled);
375378
} else if (type == PJMEDIA_TYPE_VIDEO) {
@@ -391,6 +394,9 @@ void StreamInfo::fromPj(const pjsua_stream_info &info)
391394
jbDiscardAlgo = PJMEDIA_JB_DISCARD_NONE;
392395
#if defined(PJMEDIA_STREAM_ENABLE_KA) && (PJMEDIA_STREAM_ENABLE_KA != 0)
393396
useKa = PJ2BOOL(info.info.vid.use_ka);
397+
startCountKa = info.info.vid.ka_cfg.start_count;
398+
startIntervalKa = info.info.vid.ka_cfg.start_interval;
399+
intervalKa = info.info.vid.ka_cfg.ka_interval;
394400
#endif
395401
rtcpSdesByeDisabled = PJ2BOOL(info.info.vid.rtcp_sdes_bye_disabled);
396402
} else if (type == PJMEDIA_TYPE_TEXT) {
@@ -411,6 +417,9 @@ void StreamInfo::fromPj(const pjsua_stream_info &info)
411417
jbDiscardAlgo = PJMEDIA_JB_DISCARD_NONE;
412418
#if defined(PJMEDIA_STREAM_ENABLE_KA) && (PJMEDIA_STREAM_ENABLE_KA != 0)
413419
useKa = PJ2BOOL(info.info.txt.use_ka);
420+
startCountKa = info.info.txt.ka_cfg.start_count;
421+
startIntervalKa = info.info.txt.ka_cfg.start_interval;
422+
intervalKa = info.info.txt.ka_cfg.ka_interval;
414423
#endif
415424
rtcpSdesByeDisabled = PJ2BOOL(info.info.txt.rtcp_sdes_bye_disabled);
416425
}

0 commit comments

Comments
 (0)