mirror of
https://gitlab.linphone.org/BC/public/linphone-iphone.git
synced 2026-01-18 03:28:07 +00:00
implement automatic retry in case of "Interval too brief" for registers.
This commit is contained in:
parent
e933e1eae1
commit
400b71a140
2 changed files with 17 additions and 1 deletions
|
|
@ -1769,6 +1769,22 @@ static bool_t registration_failure(Sal *sal, eXosip_event_t *ev){
|
|||
case 407:
|
||||
return process_authentication(sal,ev);
|
||||
break;
|
||||
case 423: /*interval too brief*/
|
||||
{/*retry with greater interval */
|
||||
osip_header_t *h=NULL;
|
||||
osip_message_t *msg=NULL;
|
||||
osip_message_header_get_byname(ev->response,"min-expires",0,&h);
|
||||
if (h && h->hvalue && h->hvalue[0]!='\0'){
|
||||
int val=atoi(h->hvalue);
|
||||
if (val>op->expires)
|
||||
op->expires=val;
|
||||
}else op->expires*=2;
|
||||
eXosip_lock();
|
||||
eXosip_register_build_register(op->rid,op->expires,&msg);
|
||||
eXosip_register_send_register(op->rid,msg);
|
||||
eXosip_unlock();
|
||||
}
|
||||
break;
|
||||
case 606: /*Not acceptable, workaround for proxies that don't like private addresses
|
||||
in vias, such as ekiga.net
|
||||
On the opposite, freephonie.net bugs when via are masqueraded.
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
Subproject commit 340acff0001e92d1f126b484d100e1c1d0746b34
|
||||
Subproject commit 83459cfa169478fc563b606fb141b60fa07ab861
|
||||
Loading…
Add table
Reference in a new issue