File tree Expand file tree Collapse file tree 2 files changed +24
-15
lines changed Expand file tree Collapse file tree 2 files changed +24
-15
lines changed Original file line number Diff line number Diff line change @@ -3281,19 +3281,19 @@ class RTCSession extends EventManager implements Owner {
32813281
32823282 // I'm the refresher.
32833283 if (_sessionTimers.refresher) {
3284- _sessionTimers.timer = setTimeout (() {
3285- if (_state == RtcSessionState .terminated) {
3286- return ;
3287- }
3288-
3289- logger.d ('runSessionTimer() | sending session refresh request' );
3290-
3291- if (_sessionTimers.refreshMethod == SipMethod . UPDATE ) {
3292- _sendUpdate ();
3293- } else {
3294- _sendReinvite ();
3295- }
3296- }, expires ! * 500 ); // Half the given interval (as the RFC states).
3284+ final int delayMs = expires ! * 500 ;
3285+ _sessionTimers.timer = Timer . periodic (
3286+ Duration (milliseconds : delayMs),
3287+ (_) {
3288+ if (_state == RtcSessionState .terminated) return ;
3289+ logger.d ('runSessionTimer() | sending session refresh request with expires=$ expires , delayMs=$ delayMs ' );
3290+ if (_sessionTimers.refreshMethod == SipMethod . UPDATE ) {
3291+ _sendUpdate ();
3292+ } else {
3293+ _sendReinvite ();
3294+ }
3295+ },
3296+ );
32973297 }
32983298 // I'm not the refresher.
32993299 else {
Original file line number Diff line number Diff line change @@ -182,7 +182,7 @@ class SIPUAHelper extends EventManager {
182182 _settings.session_timers = uaSettings.sessionTimers;
183183 _settings.ice_gathering_timeout = uaSettings.iceGatheringTimeout;
184184 _settings.session_timers_refresh_method =
185- uaSettings.sessionTimersRefreshMethod ;
185+ uaSettings.sessionTimersRefreshMethodEnum ;
186186 _settings.instance_id = uaSettings.instanceId;
187187 _settings.registrar_server = uaSettings.registrarServer;
188188 _settings.contact_uri = uaSettings.contact_uri != null
@@ -921,5 +921,14 @@ class UaSettings {
921921 /// Controls which kind of messages are to be sent to keep a SIP session
922922 /// alive.
923923 /// Defaults to "UPDATE"
924- DartSIP_C .SipMethod sessionTimersRefreshMethod = DartSIP_C .SipMethod .UPDATE ;
924+ String sessionTimersRefreshMethod = 'UPDATE' ;
925+ DartSIP_C .SipMethod get sessionTimersRefreshMethodEnum {
926+ switch (sessionTimersRefreshMethod.toUpperCase ()) {
927+ case 'INVITE' :
928+ return DartSIP_C .SipMethod .INVITE ;
929+ case 'UPDATE' :
930+ default :
931+ return DartSIP_C .SipMethod .UPDATE ;
932+ }
933+ }
925934}
You can’t perform that action at this time.
0 commit comments