libeXosip2
3.1.0
|
eXosip2 offers a flexible API to help you to register one or several identities.
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, ®); 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.
You just need to reuse the registration identifier:
int i;
eXosip_lock (); i = eXosip_register_build_register (id, 1800, ®); 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
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.