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 |
| 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 | SIP transport listener restart, |
| 40 | SIP transport shutdown, |
| 41 | contact update (re-registration process), and |
| 42 | calls hangup or retry (re-INVITE). |
| 43 | |
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. |
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. |