unable to reINVITE call when call is ringing

BV
Bob Voorneveld
Tue, Jan 10, 2017 7:16 PM

Hi all,

I'm stuck on updating the call when there is a network change and when the call is 180 RINGING.

This is what's happening:

 19 18:39:17.969198    4.944294       iPhone         Server        SIP/SDP  1121   Request: INVITE sip:225@sipproxy.voipgrid.nl | 
 22 18:39:17.969839    4.944935       Server        iPhone         SIP      424    Status: 100 Trying | 
 25 18:39:17.970483    4.945579       Server        iPhone         SIP      595    Status: 407 Proxy Authentication Required | 
 27 18:39:17.970755    4.945851       iPhone         Server        SIP      500    Request: ACK sip:225@sipproxy.voipgrid.nl | 
 29 18:39:17.971140    4.946236       iPhone         Server        SIP/SDP  1331   Request: INVITE sip:225@sipproxy.voipgrid.nl | 
 33 18:39:18.989949    5.965045       Server        iPhone         SIP      868    Status: 180 Ringing | 

Now I force a network change, which will trigger a unregister and register

 57 18:39:24.863085    11.838181      iPhone         Server        SIP      701    Request: REGISTER sip:sipproxy.voipgrid.nl;transport=tcp  (remove 1 binding) | 
 59 18:39:24.864190    11.839286      Server        iPhone         SIP      587    Status: 401 Unauthorized | 
 61 18:39:24.867623    11.842719      iPhone         Server        SIP      915    Request: REGISTER sip:sipproxy.voipgrid.nl;transport=tcp  (remove 1 binding) | 
 62 18:39:24.868169    11.843265      Server        iPhone         SIP      473    Status: 200 OK  (0 bindings) | 
 64 18:39:24.869229    11.844325      iPhone         Server        SIP      801    Request: REGISTER sip:sipproxy.voipgrid.nl;transport=tcp  (1 binding) | 
 65 18:39:24.870765    11.845861      Server        iPhone         SIP      588    Status: 401 Unauthorized | 
 67 18:39:24.872639    11.847735      iPhone         Server        SIP      1017   Request: REGISTER sip:sipproxy.voipgrid.nl;transport=tcp  (1 binding) | 
 68 18:39:24.873235    11.848331      Server        iPhone         SIP      601    Status: 200 OK  (1 binding) | 

At this stage I want to reinvite the call:

pjsua_call_reinvite((pjsua_call_id)self.callId, PJSUA_CALL_UPDATE_CONTACT, NULL);

This is my log output:

pjsua_call.c  .....Unable to reinvite because another media operation is in progress

I can find in the source why this isn't happening, this was added in this changeset:
https://trac.pjsip.org/repos/changeset/4750/pjproject https://trac.pjsip.org/repos/changeset/4750/pjproject

So my provisional media count is bigger than my media count. Quick look at the call info, this is what I found in the call_info:

media_cnt = 0

prov_media_cnt = 1

The prov_media array has at the first index a type PJMEDIA_TYPE_AUDIO that is not in de media_cnt.

I'm not aware that I activated something somewhere in the process. Could someone explain where this difference is coming from?

Greets,

Bob

This is the branch I'm working on:
https://github.com/VoIPGRID/VialerSIPLib/tree/feature/fix-reinvite https://github.com/VoIPGRID/VialerSIPLib/tree/feature/fix-reinvite

Hi all, I'm stuck on updating the call when there is a network change and when the call is 180 RINGING. This is what's happening: 19 18:39:17.969198 4.944294 iPhone Server SIP/SDP 1121 Request: INVITE sip:225@sipproxy.voipgrid.nl | 22 18:39:17.969839 4.944935 Server iPhone SIP 424 Status: 100 Trying | 25 18:39:17.970483 4.945579 Server iPhone SIP 595 Status: 407 Proxy Authentication Required | 27 18:39:17.970755 4.945851 iPhone Server SIP 500 Request: ACK sip:225@sipproxy.voipgrid.nl | 29 18:39:17.971140 4.946236 iPhone Server SIP/SDP 1331 Request: INVITE sip:225@sipproxy.voipgrid.nl | 33 18:39:18.989949 5.965045 Server iPhone SIP 868 Status: 180 Ringing | Now I force a network change, which will trigger a unregister and register 57 18:39:24.863085 11.838181 iPhone Server SIP 701 Request: REGISTER sip:sipproxy.voipgrid.nl;transport=tcp (remove 1 binding) | 59 18:39:24.864190 11.839286 Server iPhone SIP 587 Status: 401 Unauthorized | 61 18:39:24.867623 11.842719 iPhone Server SIP 915 Request: REGISTER sip:sipproxy.voipgrid.nl;transport=tcp (remove 1 binding) | 62 18:39:24.868169 11.843265 Server iPhone SIP 473 Status: 200 OK (0 bindings) | 64 18:39:24.869229 11.844325 iPhone Server SIP 801 Request: REGISTER sip:sipproxy.voipgrid.nl;transport=tcp (1 binding) | 65 18:39:24.870765 11.845861 Server iPhone SIP 588 Status: 401 Unauthorized | 67 18:39:24.872639 11.847735 iPhone Server SIP 1017 Request: REGISTER sip:sipproxy.voipgrid.nl;transport=tcp (1 binding) | 68 18:39:24.873235 11.848331 Server iPhone SIP 601 Status: 200 OK (1 binding) | At this stage I want to reinvite the call: pjsua_call_reinvite((pjsua_call_id)self.callId, PJSUA_CALL_UPDATE_CONTACT, NULL); This is my log output: pjsua_call.c .....Unable to reinvite because another media operation is in progress I can find in the source why this isn't happening, this was added in this changeset: https://trac.pjsip.org/repos/changeset/4750/pjproject <https://trac.pjsip.org/repos/changeset/4750/pjproject> So my provisional media count is bigger than my media count. Quick look at the call info, this is what I found in the call_info: media_cnt = 0 prov_media_cnt = 1 The prov_media array has at the first index a type PJMEDIA_TYPE_AUDIO that is not in de media_cnt. I'm not aware that I activated something somewhere in the process. Could someone explain where this difference is coming from? Greets, Bob This is the branch I'm working on: https://github.com/VoIPGRID/VialerSIPLib/tree/feature/fix-reinvite <https://github.com/VoIPGRID/VialerSIPLib/tree/feature/fix-reinvite>