Dear all,
I try to write a simple VoIP application with the function to make a call.
However, I do not know how to put the correct input parameters for nua_invite()
method.
I used something like this:
nua_invite(op, NUTAG_URL (url), SOATAG_ADDRESS('0.0.0.0:8000'),
NUTAG_EARLY_MEDIA (1), TAG_END ());
but it did not work. (the complete code is attached below)
Anyone can give me some hints on how to put the parameters?
Thanks!
BR, Xing
/**** the complete code
****************************************************************************//*
include all the header files ....*/ #include <sofia-sip/su_wait.h>#include
<sofia-sip/sip.h>#include <sofia-sip/sip_header.h>#include
<sofia-sip/tport.h>#include <sofia-sip/nua.h> #define
SOFSIP_USE_GLIB_EVENT_LOOP 1 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[]); typedef struct cli_s
{su_home_t cli_home[1]; /* memory home */su_root_t *cli_root; /* Pointer to
application root object */nua_t *cli_nua; /* Pointer to nua stack object */}
cli_t ; static cli_t cli[1] = {{{{sizeof(cli)}}}}; int sipinit(void){ /* step:
initialize glib and gstreamer */#if HAVE_GLIBg_type_init(); #if HAVE_GST{guint
major, minor, micro, nano;gst_init (NULL, NULL);gst_version (&major, &minor,
µ, &nano);g_message ("This program is linked against GStreamer
%d.%d.%d\n", major, minor, micro);}#endif#endif
su_home_init(cli->cli_home);su_init();cli->cli_root =su_root_create(cli); if
(cli->cli_root != NULL){ cli->cli_nua =
nua_create(cli->cli_root,event_callback, cli,NUTAG_URL("sip:0.0.0.0:5060"),
TAG_END());} return 0;} /* set up a call */int makecall(char const *name,
url_string_t const *url){nua_handle_t *op;sip_to_t *to; op =
su_zalloc(cli->cli_home, (sizeof (nua_handle_t *)));if (op==NULL) { printf("can
not create operation context information\n");return 0;} /*Destination address
*/to = sip_to_create(NULL,url);if (!to) return 0; to->a_display=name; op =
nua_handle(cli->cli_nua, NULL, SIPTAG_TO(to), TAG_END());printf (" create
operation handle: OK\n"); if (op==NULL){ printf ("can not access operation
handle\n");return 0;} nua_invite(op, NUTAG_URL
(url),SOATAG_ADDRESS("0.0.0.0:8000"),NUTAG_EARLY_MEDIA (1), TAG_END ()); printf
("make call: OK\n"); return (int) op;} int runsipmainloop(void){ if
(cli->cli_nua !=NULL){printf("entering main loop for processing of
messages\n");su_root_run(cli->cli_root);printf ("entered main loop");}return
0;} int
sipcleanup(void){nua_destroy(cli->cli_nua);su_root_destroy(cli->cli_root);cli->cli_root=NULL;su_home_deinit(cli->cli_home);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[]){ switch (event){case nua_i_invite:printf("invitation has
been sent"); break; case nua_i_active:printf("receive invitation"); break; case
nua_r_invite:printf("responseinvitation"); break; default:printf("unkown
event"); }} int main(){sipinit();makecall("star03",
URL_STRING_MAKE("sip:136.222.222.64"));runsipmainloop();sipcleanup();return 0;}
_________________________________________________________________
Keep your kids safer online with Windows Live Family Safety.
http://www.windowslive.com/family_safety/overview.html?ocid=TXT_TAGLM_WL_family_safety_072008
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Sofia-sip-devel mailing list
Sofia-sip-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sofia-sip-devel