注册失败后如何更改默认时间延迟300秒(Pjsua 2 Android)重试注册



注册失败后,如何更改默认的pjsua2重新注册。目前已设置为300秒。我希望在注册失败后将重试注册设置为大约60秒。

我查阅了文件。。。但有些我无法在示例android pjsua2应用程序上实现它们。

unsigned timeoutSec注册的可选间隔,以秒为单位。

如果值为零,将使用默认间隔(PJSUA_REG_INTERVAL,300秒(。

unsigned retryIntervalSec指定自动注册重试的间隔注册失败(包括运输问题(时第二

设置为0可禁用自动重新注册。请注意,如果由于传输失败而发生注册重试,第一次重试将在firstRetryIntervalSec秒后完成。而且请注意,间隔会稍微随机化几秒钟(在reg_retry_random_interval中指定(以避开所有客户端同时重新注册。

另请参阅firstRetryIntervalSec和randomRetryIntervalSec设置。

默认值:PJSUA_REG_RETRY_INTERVAL

链接:https://www.pjsip.org/docs/book-latest/html/reference.html

为什么无法实现此功能?当你试图这样做的时候,出了什么问题?

事实上,你已经回答了自己。您应该找到AccountRegConfig对象的初始化,并设置retryIntervalSec属性的值。

AccountRegConfig regCfg = accCfg.getRegConfig();
regCfg.setRegistrarUri("sip:pjsip.org");
regCfg.setRetryIntervalSec(60);
account = app.addAcc(accCfg);

如果这不起作用,你看到了什么不端行为?

您可以使用以下代码,并根据需要读取注释和设置值。

accCfg = new AccountConfig();
/*
* Specify interval of auto registration retry upon registration failure 
(including
* caused by transport problem), in second. Set to 0 to disable auto re- 
registration.
* Note that if the registration retry occurs because of transport 
failure, the first
* retry will be done after reg_first_retry_interval seconds instead. Also 
note that
* the interval will be randomized slightly by some seconds (specified in 
reg_retry_
* random_interval) to avoid all clients re-registering at the same time.
* */
accCfg.getRegConfig().setFirstRetryIntervalSec(3);
accCfg.getRegConfig().setRetryIntervalSec(10);
/*
* This specifies maximum randomized value to be added/subtracted to/from 
the
* registration retry interval specified in reg_retry_interval and
* reg_first_retry_interval, in second. This is useful to avoid all 
clients
* re-registering at the same time. For example, if the registration retry 
interval
* is set to 100 seconds and this is set to 10 seconds, the actual 
registration retry
* interval will be in the range of 90 to 110 seconds.
*/
accCfg.getRegConfig().setRandomRetryIntervalSec(7);
/*
* Optional interval for registration, in seconds. If the value is zero, 
default
* interval will be used (PJSUA_REG_INTERVAL, 300 seconds).
*/
accCfg.getRegConfig().setTimeoutSec(65);
/*
* Specify the number of seconds to refresh the client registration before 
the
* registration expires.
* Default: PJSIP_REGISTER_CLIENT_DELAY_BEFORE_REFRESH, 5 seconds
*/
accCfg.getRegConfig().setDelayBeforeRefreshSec(10);

相关内容

  • 没有找到相关文章

最新更新