#include #include #define CALLER 1 void send_message (nua_t *nua); void event_callback(nua_event_t event, int status, char const *phrase, nua_t *nua, nua_magic_t *magic, nua_handle_t *nh, nua_hmagic_t *hmagic, sip_t const *sip, tagi_t tags[]); int main (int argc, char *argv[]) { su_root_t *root; nua_t *nua; /* Initialize Sofia-SIP library and create event loop */ su_init (); root = su_root_create (NULL); /* Create a user agent instance. Caller and callee should bind to different * address to avoid conflicts. The stack will call the 'event_callback()' * callback when events such as succesful registration to network, * an incoming call, etc, occur. */ nua = nua_create(root, /* Event loop */ event_callback, /* Callback for processing events */ NULL, /* Additional data to pass to callback */ NUTAG_URL("sip:0.0.0.0:5062"), /* Address to bind to */ TAG_END()); /* Last tag should always finish the sequence */ send_message (nua); /* Run event loop */ su_root_run (root); /* Destroy allocated resources */ nua_destroy (nua); su_root_destroy (root); su_deinit (); return 0; } /* This callback will be called by SIP stack to * process incoming events */ void event_callback(nua_event_t event, int status, char const *phrase, nua_t *nua, nua_magic_t *magic, nua_handle_t *nh, nua_hmagic_t *hmagic, sip_t const *sip, tagi_t tags[]) { printf ("Hello world!\n" "I have received an event %s status %d %s\n", nua_event_name (event), status, phrase); } /* Create a communication handle, send MESSAGE with it and destroy it */ void send_message (nua_t *nua) { nua_handle_t *handle; handle = nua_handle(nua, NULL, SIPTAG_TO_STR("sip:0871737978@212.27.52.5:5060"), TAG_END()); nua_register(handle,SIPTAG_FROM_STR("sip:0871737978@212.27.52.5:5060"), NUTAG_REGISTRAR("sip:212.27.52.5:5060"),TAG_NULL()); nua_handle_destroy (handle); }