如何解决注册失败后,如何更改默认延时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);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。