Changes between Version 2 and Version 3 of IPAddressChange-2.7


Ignore:
Timestamp:
Sep 30, 2019 8:41:33 AM (12 months ago)
Author:
nanang
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • IPAddressChange-2.7

    v2 v3  
    3636 
    3737== Notes and limitations == 
    38 To monitor the progress of IP change handling, application can use on_ip_change_progress() callback. The callback will notify application of these events: 
    39 restart SIP transport listener 
    40 shutdown SIP transport 
    41 update contact (re-registration process) 
    42 hangup calls 
    43 re-INVITE calls 
     38To monitor the progress of IP change handling, application can use {{{on_ip_change_progress()}}} callback. The callback will notify application of these events: 
     39SIP transport listener restart, 
     40SIP transport shutdown, 
     41contact update (re-registration process), and 
     42calls hangup or retry (re-INVITE). 
     43 
    4444Related to maintaining a call during IP change, there are some scenarios that are currently not implemented by IP change mechanism, so application needs to handle manually: 
    4545If IP change occurs during SDP negotiation (and it is not completed yet, so there cannot be another SDP offer), updating such call needs to be done in two steps: 
    46 1. Update Contact header, so remote endpoint can send its SDP answer to our new contact address, i.e: use UPDATE without SDP offer ({{{PJSUA_CALL_NO_SDP_OFFER}}} flag). Note that, not every endpoint supports UPDATE. Contact is used by remote to  
    47    resolve target before sending new requests. If proxy is used, then you can probably skip this. 
    48 2. Update local media transport after SDP answer is received, by sending UPDATE/re-INVITE with {{{PJSUA_CALL_REINIT_MEDIA}}} flag. 
     46 1. Update Contact header, so remote endpoint can send its SDP answer to our new contact address, i.e: use UPDATE without SDP offer ({{{PJSUA_CALL_NO_SDP_OFFER}}} flag). Note that, not every endpoint supports UPDATE. Contact is used by remote to resolve target before sending new requests. If proxy is used, then you can probably skip this. 
     47 2. Update local media transport after SDP answer is received, by sending UPDATE/re-INVITE with {{{PJSUA_CALL_REINIT_MEDIA}}} flag. 
    4948 
    5049If IP change occurs before a call is established, there are two possible cases: 
    51 Dialog is not yet created, since response with To tag is not received yet. The call needs to be cleared and reported to application via {{{on_call_state().}}} 
    52 Dialog is created, (1xx response with To tag is received). 
    53  - SDP nego is done, then update Contact and SDP is needed using re-INVITE or UPDATE. 
    54  - SDP nego is not done, see the steps above. 
    55  
    56  
     50 - Dialog is not yet created, since response with To tag is not received yet. The call needs to be cleared and reported to application via {{{on_call_state()}}}. 
     51 - Dialog is created (1xx response with To tag is received): 
     52   - SDP nego is done, then update Contact and SDP is needed using re-INVITE or UPDATE. 
     53   - SDP nego is not done, see the steps above. 
    5754 
    5855