注册失败后,如何更改默认的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);