Oh yes, I did try the register too, thanks. I need to clarify few things coz all I have is the source code(pjproject-1.3) and my laptop to work with it. But I had to make sure that this script works fine, if somebody else is gonna use to make a call ( with proper sip provider ) Guess with source compiled properly, I can use DOS prompt to run my executable and call. I had another script written where I included the fn pjsua_invite(buf, &inv), but when I compile I get error: undefined reference pjsua_invite. Thought I'm missing some library, so included the pjsua_invite.c file in C:\pjproject-1.3\pjsip\src\pjsua-lib. and also included this below part in: (C:\pjproject-1.3\pjsip\include\pjsua-lib) ** PJSUA instance. */ extern struct pjsua pjsua; /***************************************************************************** * PJSUA Invite session API (defined in pjsua_inv.c). */ /** * Make outgoing call. */ pj_status_t pjsua_invite(const char *cstr_dest_uri, pjsip_inv_session **p_inv); /** * Handle incoming invite request. */ pj_bool_t pjsua_inv_on_incoming(pjsip_rx_data *rdata); /** * Callback to be called by session when invite session's state has changed. */ void pjsua_inv_on_state_changed(pjsip_inv_session *inv, pjsip_event *e); /** * Callback to be called by session when outgoing dialog has forked. * This function will create a forked dialog. */ void pjsua_inv_on_new_session(pjsip_inv_session *inv, pjsip_event *e); /** * Callback to be called when SDP offer/answer negotiation has just completed * in the session. This function will start/update media if negotiation * has succeeded. */ void pjsua_inv_on_media_update(pjsip_inv_session *inv, pj_status_t status); /***************************************************************************** * User Interface API. * * The UI API specifies functions that will be called by pjsua upon * occurence of various events. */ /** * Notify UI when invite state has changed. */ void pjsua_ui_inv_on_state_changed(pjsip_inv_session *inv, pjsip_event *e); But still I'm getting the same error. Not sure what I'm missing here? Thanks! 2009/9/11 Paulo Rog?rio Panhoto <paulo at voicetechnology.com.br> > pjsua_simple.c is self documented: > > /** > * simple_pjsua.c > * > * This is a very simple but fully featured SIP user agent, with the > * following capabilities: > * - SIP registration > * - Making and receiving call > * - Audio/media to sound device. > * > * Usage: > * - To make outgoing call, start simple_pjsua with the URL of remote > * destination to contact. > * E.g.: > * simpleua sip:user at remote > * > * - Incoming calls will automatically be answered with 200. > * > * This program will quit once it has completed a single call. > */ > > Also, if you want simple_pjsua to register, you'll need to change this > values and recompile it: > > #define SIP_DOMAIN "example.com" > #define SIP_USER "alice" > #define SIP_PASSWD "secret" > > Seems like the sample itself is counting on translating "example.com" as > the DNS to your registrar/proxy. > > And yes, you're right about the 'h' key. > > > 2009/9/11 Rachel Baskaran <rachelbaskaran at gmail.com> > >> Thanks that did help! >> >> But when I press 'h' it says, APP Call 0 state=DISCONNECTED. so this means >> I talk to the user (sip:user at example.com <sip%3Auser at example.com> ) and >> when I press 'h' it terminates the call to the user I dialed right? >> >> Will I able to do the same if I place a phone number ( >> 418-345-6789 at sipprovider.com )? >> Provided I have a proper dial plan and SIP PROXY to handle the call. >> >> Or do I need to write any separate script to do the dialing to a number? >> >> >> Thanks! >> >> 2009/9/11 Paulo Rog?rio Panhoto <paulo at voicetechnology.com.br> >> >>> perhaps the fatal exception comes from the uninitialized uri variable. >>> >>> Anyway, this is how I found that line in the source: >>> if (argc > 1) { >>> pj_str_t uri = pj_str(argv[1]); >>> status = pjsua_call_make_call(acc_id, &uri, 0, NULL, NULL, NULL); >>> if (status != PJ_SUCCESS) error_exit("Error making call", status); >>> } >>> >>> >>> 2009/9/11 Rachel Baskaran <rachelbaskaran at gmail.com> >>> >>>> Alright, it showed me error undeclared in URI in below line >>>> pj_str_t uri=pj_str(URI); >>>> so I changed to >>>> pj_str_t uri; >>>> >>>> And entered my exe folder(pjsip-apps/bin/rach/i686-pc-mingw32) >>>> simple_pjsua sip:rachel at example.com <sip%3Arachel at example.com> -> >>>> Enter >>>> >>>> It registered but a fatal error was displayed: >>>> pjsua_acc.c Registration sent >>>> pjsua_media.c Opening sound device >>>> except.c !!! FATAL: unhandled exception PJLIB/no memory >>>> Assertion failed: handler != ((void *)0), file ...src/pj/except.c, line >>>> 50. >>>> >>>> >>>> If run the script like simple_pjsua.c ->Enter >>>> >>>> It runs the header for few mins and displays, SIP registration failed >>>> timeout. Since I'm testing just typed sip:user at example.com<sip%3Auser at example.com>-> Enter, it just displayed the options 'h' hangup the calls and 'q' to >>>> quit. >>>> >>>> Am I building it in right way, if YES, Why do I get that FATAL error? >>>> >>>> Thanks! >>>> >>>> >>>> 2009/9/11 Paulo Rog?rio Panhoto <paulo at voicetechnology.com.br> >>>> >>>> argv[1] is the first argument you pass to a program in command line. >>>>> i.e. simple_ua.exe sip:user at example.org <sip%3Auser at example.org> >>>>> >>>>> 2009/9/11 Rachel Baskaran <rachelbaskaran at gmail.com> >>>>> >>>>>> Hey, >>>>>> >>>>>> I'm trying to edit the simple_pjsua.c to call a specified URL using >>>>>> pjsua_call_make_call. The proram compiled successfully and registers too, >>>>>> but doesn't call the URL since I didn't know where or how to define my >>>>>> destination URL in main fn() >>>>>> >>>>>> int main(int argc,char *argv[]) >>>>>> { >>>>>> pjsua_acc_id acc_id; >>>>>> pj_status_t status; >>>>>> >>>>>> >>>>>> >>>>>> status = pjsua_create(); >>>>>> if(status != PJ_SUCCESS) error_exit("Error in pjsua_create()", >>>>>> status); >>>>>> >>>>>> >>>>>> if(argc > 1) >>>>>> { >>>>>> status = pjsua_verify_sip_url(argv[1]); >>>>>> if(status != PJ_SUCCESS) error_exit("Invalid URL in argv", status); >>>>>> } >>>>>> >>>>>> /* Init pjsua */ >>>>>> { >>>>>> >>>>>> pjsua_config cfg; >>>>>> pjsua_logging_config log_cfg; >>>>>> >>>>>> >>>>>> pjsua_config_default(&cfg); >>>>>> cfg.cb.on_incoming_call = &on_incoming_call; >>>>>> cfg.cb.on_call_media_state = &on_call_media_state; >>>>>> cfg.cb.on_call_state = &on_call_state; >>>>>> >>>>>> >>>>>> >>>>>> pjsua_logging_config_default(&log_cfg); >>>>>> log_cfg.console_level = 4; >>>>>> >>>>>> >>>>>> status = pjsua_init(&cfg, &log_cfg, NULL); >>>>>> if(status != PJ_SUCCESS) error_exit("Error in pjsua_init()", status); >>>>>> } >>>>>> >>>>>> >>>>>> >>>>>> /* add UDP transport */ >>>>>> { >>>>>> >>>>>> pjsua_transport_config cfg; >>>>>> pjsua_transport_config_default(&cfg); >>>>>> cfg.port = 5060; >>>>>> status = pjsua_transport_create(PJSIP_TRANSPORT_UDP, &cfg, NULL); >>>>>> if(status != PJ_SUCCESS) error_exit("Error creating transport", >>>>>> status); >>>>>> } >>>>>> /* start pjsua */ >>>>>> >>>>>> status = pjsua_start(); >>>>>> if(status != PJ_SUCCESS) error_exit("Error starting pjsua", status); >>>>>> >>>>>> /* Register to SIP server creating an account */ >>>>>> >>>>>> { >>>>>> pjsua_acc_config cfg; >>>>>> >>>>>> >>>>>> pjsua_acc_config_default(&cfg); >>>>>> cfg.id = pj_str("sip:" SIP_USER "@" SIP_DOMAIN); >>>>>> cfg.reg_uri = pj_str("sip:" SIP_DOMAIN); >>>>>> cfg.cred_count = 1; >>>>>> cfg.cred_info[0].realm = pj_str(SIP_DOMAIN); >>>>>> cfg.cred_info[0].scheme = pj_str("digest"); >>>>>> cfg.cred_info[0].username = pj_str(SIP_USER); >>>>>> cfg.cred_info[0].data_type = PJSIP_CRED_DATA_PLAIN_PASSWD; >>>>>> cfg.cred_info[0].data = pj_str(SIP_PASSWD); >>>>>> >>>>>> status = pjsua_acc_add(&cfg, PJ_TRUE, &acc_id); >>>>>> if(status != PJ_SUCCESS) error_exit("Error adding account", status); >>>>>> } >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> if(argc > 1) >>>>>> { >>>>>> >>>>>> pj_str_t uri=pj_str(URI); >>>>>> >>>>>> status = pjsua_call_make_call(acc_id, &uri, 0, NULL, NULL, NULL); >>>>>> if(status != PJ_SUCCESS) error_exit("Error making call", status); >>>>>> } >>>>>> >>>>>> Any help would be great! >>>>>> >>>>>> Rachel >>>>>> >>>>>> _______________________________________________ >>>>>> Visit our blog: http://blog.pjsip.org >>>>>> >>>>>> pjsip mailing list >>>>>> pjsip at lists.pjsip.org >>>>>> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org >>>>>> >>>>>> >>>>> >>>>> _______________________________________________ >>>>> Visit our blog: http://blog.pjsip.org >>>>> >>>>> pjsip mailing list >>>>> pjsip at lists.pjsip.org >>>>> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org >>>>> >>>>> >>>> >>>> _______________________________________________ >>>> Visit our blog: http://blog.pjsip.org >>>> >>>> pjsip mailing list >>>> pjsip at lists.pjsip.org >>>> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org >>>> >>>> >>> >>> _______________________________________________ >>> Visit our blog: http://blog.pjsip.org >>> >>> pjsip mailing list >>> pjsip at lists.pjsip.org >>> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org >>> >>> >> >> _______________________________________________ >> Visit our blog: http://blog.pjsip.org >> >> pjsip mailing list >> pjsip at lists.pjsip.org >> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org >> >> > > _______________________________________________ > Visit our blog: http://blog.pjsip.org > > pjsip mailing list > pjsip at lists.pjsip.org > http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org > > -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/attachments/20090914/4689e3ed/attachment.html>