howto2_registration

Langue: en

Autres versions - même langue

Version: 324312 (ubuntu - 08/07/09)

Section: 3 (Bibliothèques de fonctions)

NAME

How-To send or update registrations. - eXosip2 offers a flexible API to help you to register one or several identities.

Initiate a registration

To start a registration, you need to build a default REGISTER request bby providing several mandatory headers

 
   osip_message_t *reg = NULL;
   int id;
   int i;
 
   eXosip_lock ();
   id = eXosip_register_build_initial_register (identity, registrar, NULL,
                                                1800, &reg);
   if (id < 0)
     {
       eXosip_unlock ();
       return -1;
     }
 
   osip_message_set_supported (reg, '100rel');
   osip_message_set_supported(reg, 'path');
 
   i = eXosip_register_send_register (id, reg);
   eXosip_unlock ();
   return i;
 
 

The returned element of eXosip_register_build_initial_register is the registration identifier that you can use to update your registration. In future events about this registration, you'll see that registration identifier when applicable.

Update a registration

You just need to reuse the registration identifier:

 
   int i;
 
   eXosip_lock ();
   i = eXosip_register_build_register (id, 1800, &reg);
   if (i < 0)
     {
       eXosip_unlock ();
       return -1;
     }
 
   eXosip_register_send_register (id, reg);
   eXosip_unlock ();
 

Note: The above code also shows that the stack is sometimes able to build and send a default SIP messages with only one API call

Closing the registration

A softphone should delete its registration on the SIP server when terminating. To do so, you have to send a REGISTER request with the expires header set to value '0'.

The same code as for updating a registration is used with 0 instead of 1800 for the expiration delay.