From 4461c7d50000e7de9b5d16dea3bfd86155897cd1 Mon Sep 17 00:00:00 2001 From: Benny Prijono Date: Sat, 25 Aug 2007 13:36:15 +0000 Subject: [PATCH] Implement ticket #336: custom presence status in NOTIFY/PUBLISH, supporting subset of RPID elements git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@1424 74dad513-b988-da41-8d7b-12977e46ad98 --- build.symbian/bld.inf | 4 +- build.symbian/pjsip_simple.mmp | 1 + build.symbian/pjsip_simpleU.def | 129 +-- build.symbian/pjsua_libU.def | 191 ++-- pjsip-apps/src/pjsua/pjsua_app.c | 104 ++- pjsip/build/Makefile | 2 +- pjsip/build/pjsip_simple.dsp | 10 + pjsip/build/pjsip_simple.vcproj | 8 + pjsip/build/wince-evc4/pjsip_simple_wince.vcp | 851 ++++++++++++++++++ pjsip/include/pjsip-simple/errno.h | 5 + pjsip/include/pjsip-simple/presence.h | 4 + pjsip/include/pjsip-simple/rpid.h | 148 +++ pjsip/include/pjsua-lib/pjsua.h | 40 +- pjsip/include/pjsua-lib/pjsua_internal.h | 6 + pjsip/src/pjsip-simple/errno.c | 1 + pjsip/src/pjsip-simple/presence.c | 11 + pjsip/src/pjsip-simple/presence_body.c | 8 + pjsip/src/pjsip-simple/rpid.c | 268 ++++++ pjsip/src/pjsua-lib/pjsua_acc.c | 30 +- pjsip/src/pjsua-lib/pjsua_pres.c | 27 +- 20 files changed, 1668 insertions(+), 180 deletions(-) create mode 100644 pjsip/include/pjsip-simple/rpid.h create mode 100644 pjsip/src/pjsip-simple/rpid.c diff --git a/build.symbian/bld.inf b/build.symbian/bld.inf index 76ef1182b..951468850 100644 --- a/build.symbian/bld.inf +++ b/build.symbian/bld.inf @@ -1,11 +1,11 @@ prj_platforms winscw //armv5 -//gcce +gcce prj_mmpfiles pjlib.mmp -pjlib_test.mmp +//pjlib_test.mmp pjlib_util.mmp pjnath.mmp pjsdp.mmp diff --git a/build.symbian/pjsip_simple.mmp b/build.symbian/pjsip_simple.mmp index fafbf8526..86822c6fa 100644 --- a/build.symbian/pjsip_simple.mmp +++ b/build.symbian/pjsip_simple.mmp @@ -41,6 +41,7 @@ SOURCE pidf.c SOURCE presence.c SOURCE presence_body.c SOURCE publishc.c +SOURCE rpid.c SOURCE xpidf.c SYSTEMINCLUDE ..\pjlib\include diff --git a/build.symbian/pjsip_simpleU.def b/build.symbian/pjsip_simpleU.def index c3548cf3e..7e417937b 100644 --- a/build.symbian/pjsip_simpleU.def +++ b/build.symbian/pjsip_simpleU.def @@ -28,66 +28,69 @@ EXPORTS pjpidf_tuple_set_id @ 27 NONAME pjpidf_tuple_set_timestamp @ 28 NONAME pjpidf_tuple_set_timestamp_np @ 29 NONAME - pjsip_allow_events_hdr_create @ 30 NONAME - pjsip_event_hdr_create @ 31 NONAME - pjsip_evsub_accept @ 32 NONAME - pjsip_evsub_create_uac @ 33 NONAME - pjsip_evsub_create_uas @ 34 NONAME - pjsip_evsub_current_notify @ 35 NONAME - pjsip_evsub_get_allow_events_hdr @ 36 NONAME - pjsip_evsub_get_mod_data @ 37 NONAME - pjsip_evsub_get_state @ 38 NONAME - pjsip_evsub_get_state_name @ 39 NONAME - pjsip_evsub_init_module @ 40 NONAME - pjsip_evsub_init_parser @ 41 NONAME - pjsip_evsub_initiate @ 42 NONAME - pjsip_evsub_instance @ 43 NONAME - pjsip_evsub_notify @ 44 NONAME - pjsip_evsub_register_pkg @ 45 NONAME - pjsip_evsub_send_request @ 46 NONAME - pjsip_evsub_set_mod_data @ 47 NONAME - pjsip_evsub_terminate @ 48 NONAME - pjsip_get_notify_method @ 49 NONAME - pjsip_get_subscribe_method @ 50 NONAME - pjsip_iscomposing_create_body @ 51 NONAME - pjsip_iscomposing_create_xml @ 52 NONAME - pjsip_iscomposing_parse @ 53 NONAME - pjsip_notify_method @ 54 NONAME - pjsip_pres_accept @ 55 NONAME - pjsip_pres_create_pidf @ 56 NONAME - pjsip_pres_create_uac @ 57 NONAME - pjsip_pres_create_uas @ 58 NONAME - pjsip_pres_create_xpidf @ 59 NONAME - pjsip_pres_current_notify @ 60 NONAME - pjsip_pres_get_status @ 61 NONAME - pjsip_pres_init_module @ 62 NONAME - pjsip_pres_initiate @ 63 NONAME - pjsip_pres_instance @ 64 NONAME - pjsip_pres_notify @ 65 NONAME - pjsip_pres_parse_pidf @ 66 NONAME - pjsip_pres_parse_xpidf @ 67 NONAME - pjsip_pres_send_request @ 68 NONAME - pjsip_pres_set_status @ 69 NONAME - pjsip_pres_terminate @ 70 NONAME - pjsip_publishc_create @ 71 NONAME - pjsip_publishc_destroy @ 72 NONAME - pjsip_publishc_get_pool @ 73 NONAME - pjsip_publishc_init @ 74 NONAME - pjsip_publishc_init_module @ 75 NONAME - pjsip_publishc_publish @ 76 NONAME - pjsip_publishc_send @ 77 NONAME - pjsip_publishc_set_credentials @ 78 NONAME - pjsip_publishc_set_route_set @ 79 NONAME - pjsip_publishc_unpublish @ 80 NONAME - pjsip_publishc_update_expires @ 81 NONAME - pjsip_sub_state_hdr_create @ 82 NONAME - pjsip_subscribe_method @ 83 NONAME - pjsip_tsx_get_evsub @ 84 NONAME - pjsipsimple_strerror @ 85 NONAME - pjxpidf_create @ 86 NONAME - pjxpidf_get_status @ 87 NONAME - pjxpidf_get_uri @ 88 NONAME - pjxpidf_parse @ 89 NONAME - pjxpidf_print @ 90 NONAME - pjxpidf_set_status @ 91 NONAME - pjxpidf_set_uri @ 92 NONAME + pjrpid_add_element @ 30 NONAME + pjrpid_element_dup @ 31 NONAME + pjrpid_get_element @ 32 NONAME + pjsip_allow_events_hdr_create @ 33 NONAME + pjsip_event_hdr_create @ 34 NONAME + pjsip_evsub_accept @ 35 NONAME + pjsip_evsub_create_uac @ 36 NONAME + pjsip_evsub_create_uas @ 37 NONAME + pjsip_evsub_current_notify @ 38 NONAME + pjsip_evsub_get_allow_events_hdr @ 39 NONAME + pjsip_evsub_get_mod_data @ 40 NONAME + pjsip_evsub_get_state @ 41 NONAME + pjsip_evsub_get_state_name @ 42 NONAME + pjsip_evsub_init_module @ 43 NONAME + pjsip_evsub_init_parser @ 44 NONAME + pjsip_evsub_initiate @ 45 NONAME + pjsip_evsub_instance @ 46 NONAME + pjsip_evsub_notify @ 47 NONAME + pjsip_evsub_register_pkg @ 48 NONAME + pjsip_evsub_send_request @ 49 NONAME + pjsip_evsub_set_mod_data @ 50 NONAME + pjsip_evsub_terminate @ 51 NONAME + pjsip_get_notify_method @ 52 NONAME + pjsip_get_subscribe_method @ 53 NONAME + pjsip_iscomposing_create_body @ 54 NONAME + pjsip_iscomposing_create_xml @ 55 NONAME + pjsip_iscomposing_parse @ 56 NONAME + pjsip_notify_method @ 57 NONAME + pjsip_pres_accept @ 58 NONAME + pjsip_pres_create_pidf @ 59 NONAME + pjsip_pres_create_uac @ 60 NONAME + pjsip_pres_create_uas @ 61 NONAME + pjsip_pres_create_xpidf @ 62 NONAME + pjsip_pres_current_notify @ 63 NONAME + pjsip_pres_get_status @ 64 NONAME + pjsip_pres_init_module @ 65 NONAME + pjsip_pres_initiate @ 66 NONAME + pjsip_pres_instance @ 67 NONAME + pjsip_pres_notify @ 68 NONAME + pjsip_pres_parse_pidf @ 69 NONAME + pjsip_pres_parse_xpidf @ 70 NONAME + pjsip_pres_send_request @ 71 NONAME + pjsip_pres_set_status @ 72 NONAME + pjsip_pres_terminate @ 73 NONAME + pjsip_publishc_create @ 74 NONAME + pjsip_publishc_destroy @ 75 NONAME + pjsip_publishc_get_pool @ 76 NONAME + pjsip_publishc_init @ 77 NONAME + pjsip_publishc_init_module @ 78 NONAME + pjsip_publishc_publish @ 79 NONAME + pjsip_publishc_send @ 80 NONAME + pjsip_publishc_set_credentials @ 81 NONAME + pjsip_publishc_set_route_set @ 82 NONAME + pjsip_publishc_unpublish @ 83 NONAME + pjsip_publishc_update_expires @ 84 NONAME + pjsip_sub_state_hdr_create @ 85 NONAME + pjsip_subscribe_method @ 86 NONAME + pjsip_tsx_get_evsub @ 87 NONAME + pjsipsimple_strerror @ 88 NONAME + pjxpidf_create @ 89 NONAME + pjxpidf_get_status @ 90 NONAME + pjxpidf_get_uri @ 91 NONAME + pjxpidf_parse @ 92 NONAME + pjxpidf_print @ 93 NONAME + pjxpidf_set_status @ 94 NONAME + pjxpidf_set_uri @ 95 NONAME diff --git a/build.symbian/pjsua_libU.def b/build.symbian/pjsua_libU.def index be8569d64..2769d655e 100644 --- a/build.symbian/pjsua_libU.def +++ b/build.symbian/pjsua_libU.def @@ -17,98 +17,99 @@ EXPORTS pjsua_acc_modify @ 16 NONAME pjsua_acc_set_default @ 17 NONAME pjsua_acc_set_online_status @ 18 NONAME - pjsua_acc_set_registration @ 19 NONAME - pjsua_acc_set_transport @ 20 NONAME - pjsua_buddy_add @ 21 NONAME - pjsua_buddy_config_default @ 22 NONAME - pjsua_buddy_del @ 23 NONAME - pjsua_buddy_get_info @ 24 NONAME - pjsua_buddy_is_valid @ 25 NONAME - pjsua_buddy_subscribe_pres @ 26 NONAME - pjsua_call_answer @ 27 NONAME - pjsua_call_dial_dtmf @ 28 NONAME - pjsua_call_dump @ 29 NONAME - pjsua_call_get_conf_port @ 30 NONAME - pjsua_call_get_count @ 31 NONAME - pjsua_call_get_info @ 32 NONAME - pjsua_call_get_max_count @ 33 NONAME - pjsua_call_get_user_data @ 34 NONAME - pjsua_call_hangup @ 35 NONAME - pjsua_call_hangup_all @ 36 NONAME - pjsua_call_has_media @ 37 NONAME - pjsua_call_is_active @ 38 NONAME - pjsua_call_make_call @ 39 NONAME - pjsua_call_reinvite @ 40 NONAME - pjsua_call_send_im @ 41 NONAME - pjsua_call_send_typing_ind @ 42 NONAME - pjsua_call_set_hold @ 43 NONAME - pjsua_call_set_user_data @ 44 NONAME - pjsua_call_xfer @ 45 NONAME - pjsua_call_xfer_replaces @ 46 NONAME - pjsua_codec_get_param @ 47 NONAME - pjsua_codec_set_param @ 48 NONAME - pjsua_codec_set_priority @ 49 NONAME - pjsua_conf_add_port @ 50 NONAME - pjsua_conf_adjust_rx_level @ 51 NONAME - pjsua_conf_adjust_tx_level @ 52 NONAME - pjsua_conf_connect @ 53 NONAME - pjsua_conf_disconnect @ 54 NONAME - pjsua_conf_get_active_ports @ 55 NONAME - pjsua_conf_get_max_ports @ 56 NONAME - pjsua_conf_get_port_info @ 57 NONAME - pjsua_conf_get_signal_level @ 58 NONAME - pjsua_conf_remove_port @ 59 NONAME - pjsua_config_default @ 60 NONAME - pjsua_config_dup @ 61 NONAME - pjsua_create @ 62 NONAME - pjsua_destroy @ 63 NONAME - pjsua_dump @ 64 NONAME - pjsua_enum_accs @ 65 NONAME - pjsua_enum_buddies @ 66 NONAME - pjsua_enum_calls @ 67 NONAME - pjsua_enum_codecs @ 68 NONAME - pjsua_enum_conf_ports @ 69 NONAME - pjsua_enum_snd_devs @ 70 NONAME - pjsua_enum_transports @ 71 NONAME - pjsua_get_buddy_count @ 72 NONAME - pjsua_get_ec_tail @ 73 NONAME - pjsua_get_pjmedia_endpt @ 74 NONAME - pjsua_get_pjsip_endpt @ 75 NONAME - pjsua_get_pool_factory @ 76 NONAME - pjsua_get_snd_dev @ 77 NONAME - pjsua_handle_events @ 78 NONAME - pjsua_im_send @ 79 NONAME - pjsua_im_typing @ 80 NONAME - pjsua_init @ 81 NONAME - pjsua_logging_config_default @ 82 NONAME - pjsua_logging_config_dup @ 83 NONAME - pjsua_media_config_default @ 84 NONAME - pjsua_media_transports_create @ 85 NONAME - pjsua_msg_data_init @ 86 NONAME - pjsua_perror @ 87 NONAME - pjsua_player_create @ 88 NONAME - pjsua_player_destroy @ 89 NONAME - pjsua_player_get_conf_port @ 90 NONAME - pjsua_player_get_port @ 91 NONAME - pjsua_player_set_pos @ 92 NONAME - pjsua_playlist_create @ 93 NONAME - pjsua_pool_create @ 94 NONAME - pjsua_pres_dump @ 95 NONAME - pjsua_reconfigure_logging @ 96 NONAME - pjsua_recorder_create @ 97 NONAME - pjsua_recorder_destroy @ 98 NONAME - pjsua_recorder_get_conf_port @ 99 NONAME - pjsua_recorder_get_port @ 100 NONAME - pjsua_set_ec @ 101 NONAME - pjsua_set_no_snd_dev @ 102 NONAME - pjsua_set_null_snd_dev @ 103 NONAME - pjsua_set_snd_dev @ 104 NONAME - pjsua_start @ 105 NONAME - pjsua_transport_close @ 106 NONAME - pjsua_transport_config_default @ 107 NONAME - pjsua_transport_config_dup @ 108 NONAME - pjsua_transport_create @ 109 NONAME - pjsua_transport_get_info @ 110 NONAME - pjsua_transport_register @ 111 NONAME - pjsua_transport_set_enable @ 112 NONAME - pjsua_verify_sip_url @ 113 NONAME + pjsua_acc_set_online_status2 @ 19 NONAME + pjsua_acc_set_registration @ 20 NONAME + pjsua_acc_set_transport @ 21 NONAME + pjsua_buddy_add @ 22 NONAME + pjsua_buddy_config_default @ 23 NONAME + pjsua_buddy_del @ 24 NONAME + pjsua_buddy_get_info @ 25 NONAME + pjsua_buddy_is_valid @ 26 NONAME + pjsua_buddy_subscribe_pres @ 27 NONAME + pjsua_call_answer @ 28 NONAME + pjsua_call_dial_dtmf @ 29 NONAME + pjsua_call_dump @ 30 NONAME + pjsua_call_get_conf_port @ 31 NONAME + pjsua_call_get_count @ 32 NONAME + pjsua_call_get_info @ 33 NONAME + pjsua_call_get_max_count @ 34 NONAME + pjsua_call_get_user_data @ 35 NONAME + pjsua_call_hangup @ 36 NONAME + pjsua_call_hangup_all @ 37 NONAME + pjsua_call_has_media @ 38 NONAME + pjsua_call_is_active @ 39 NONAME + pjsua_call_make_call @ 40 NONAME + pjsua_call_reinvite @ 41 NONAME + pjsua_call_send_im @ 42 NONAME + pjsua_call_send_typing_ind @ 43 NONAME + pjsua_call_set_hold @ 44 NONAME + pjsua_call_set_user_data @ 45 NONAME + pjsua_call_xfer @ 46 NONAME + pjsua_call_xfer_replaces @ 47 NONAME + pjsua_codec_get_param @ 48 NONAME + pjsua_codec_set_param @ 49 NONAME + pjsua_codec_set_priority @ 50 NONAME + pjsua_conf_add_port @ 51 NONAME + pjsua_conf_adjust_rx_level @ 52 NONAME + pjsua_conf_adjust_tx_level @ 53 NONAME + pjsua_conf_connect @ 54 NONAME + pjsua_conf_disconnect @ 55 NONAME + pjsua_conf_get_active_ports @ 56 NONAME + pjsua_conf_get_max_ports @ 57 NONAME + pjsua_conf_get_port_info @ 58 NONAME + pjsua_conf_get_signal_level @ 59 NONAME + pjsua_conf_remove_port @ 60 NONAME + pjsua_config_default @ 61 NONAME + pjsua_config_dup @ 62 NONAME + pjsua_create @ 63 NONAME + pjsua_destroy @ 64 NONAME + pjsua_dump @ 65 NONAME + pjsua_enum_accs @ 66 NONAME + pjsua_enum_buddies @ 67 NONAME + pjsua_enum_calls @ 68 NONAME + pjsua_enum_codecs @ 69 NONAME + pjsua_enum_conf_ports @ 70 NONAME + pjsua_enum_snd_devs @ 71 NONAME + pjsua_enum_transports @ 72 NONAME + pjsua_get_buddy_count @ 73 NONAME + pjsua_get_ec_tail @ 74 NONAME + pjsua_get_pjmedia_endpt @ 75 NONAME + pjsua_get_pjsip_endpt @ 76 NONAME + pjsua_get_pool_factory @ 77 NONAME + pjsua_get_snd_dev @ 78 NONAME + pjsua_handle_events @ 79 NONAME + pjsua_im_send @ 80 NONAME + pjsua_im_typing @ 81 NONAME + pjsua_init @ 82 NONAME + pjsua_logging_config_default @ 83 NONAME + pjsua_logging_config_dup @ 84 NONAME + pjsua_media_config_default @ 85 NONAME + pjsua_media_transports_create @ 86 NONAME + pjsua_msg_data_init @ 87 NONAME + pjsua_perror @ 88 NONAME + pjsua_player_create @ 89 NONAME + pjsua_player_destroy @ 90 NONAME + pjsua_player_get_conf_port @ 91 NONAME + pjsua_player_get_port @ 92 NONAME + pjsua_player_set_pos @ 93 NONAME + pjsua_playlist_create @ 94 NONAME + pjsua_pool_create @ 95 NONAME + pjsua_pres_dump @ 96 NONAME + pjsua_reconfigure_logging @ 97 NONAME + pjsua_recorder_create @ 98 NONAME + pjsua_recorder_destroy @ 99 NONAME + pjsua_recorder_get_conf_port @ 100 NONAME + pjsua_recorder_get_port @ 101 NONAME + pjsua_set_ec @ 102 NONAME + pjsua_set_no_snd_dev @ 103 NONAME + pjsua_set_null_snd_dev @ 104 NONAME + pjsua_set_snd_dev @ 105 NONAME + pjsua_start @ 106 NONAME + pjsua_transport_close @ 107 NONAME + pjsua_transport_config_default @ 108 NONAME + pjsua_transport_config_dup @ 109 NONAME + pjsua_transport_create @ 110 NONAME + pjsua_transport_get_info @ 111 NONAME + pjsua_transport_register @ 112 NONAME + pjsua_transport_set_enable @ 113 NONAME + pjsua_verify_sip_url @ 114 NONAME diff --git a/pjsip-apps/src/pjsua/pjsua_app.c b/pjsip-apps/src/pjsua/pjsua_app.c index 9947e1a51..c338159f1 100644 --- a/pjsip-apps/src/pjsua/pjsua_app.c +++ b/pjsip-apps/src/pjsua/pjsua_app.c @@ -1820,8 +1820,10 @@ static void print_buddy_list(void) if (pjsua_buddy_get_info(ids[i], &info) != PJ_SUCCESS) continue; - printf(" [%2d] <%7s> %.*s\n", - ids[i]+1, info.status_text.ptr, + printf(" [%2d] <%.*s> %.*s\n", + ids[i]+1, + (int)info.status_text.slen, + info.status_text.ptr, (int)info.uri.slen, info.uri.ptr); } @@ -1857,8 +1859,9 @@ static void print_acc_status(int acc_id) printf(" %c[%2d] %.*s: %s\n", (acc_id==current_acc?'*':' '), acc_id, (int)info.acc_uri.slen, info.acc_uri.ptr, buf); - printf(" Online status: %s\n", - (info.online_status ? "Online" : "Invisible")); + printf(" Online status: %.*s\n", + (int)info.online_status_text.slen, + info.online_status_text.ptr); } @@ -1887,11 +1890,11 @@ static void keystroke_help(void) puts("| | | |"); puts("| m Make new call | +b Add new buddy .| +a Add new accnt |"); puts("| M Make multiple calls | -b Delete buddy | -a Delete accnt. |"); - puts("| a Answer call | !b Modify buddy | !a Modify accnt. |"); - puts("| h Hangup call (ha=all) | i Send IM | rr (Re-)register |"); - puts("| H Hold call | s Subscribe presence | ru Unregister |"); - puts("| v re-inVite (release hold) | u Unsubscribe presence | > Cycle next ac.|"); - puts("| ] Select next dialog | t ToGgle Online status | < Cycle prev ac.|"); + puts("| a Answer call | i Send IM | !a Modify accnt. |"); + puts("| h Hangup call (ha=all) | s Subscribe presence | rr (Re-)register |"); + puts("| H Hold call | u Unsubscribe presence | ru Unregister |"); + puts("| v re-inVite (release hold) | t ToGgle Online status | > Cycle next ac.|"); + puts("| ] Select next dialog | T Set online status | < Cycle prev ac.|"); puts("| [ Select previous dialog +--------------------------+-------------------+"); puts("| x Xfer call | Media Commands: | Status & Config: |"); puts("| X Xfer with Replaces | | |"); @@ -2091,6 +2094,85 @@ static void send_request(char *cstr_method, const pj_str_t *dst_uri) } +/* + * Change extended online status. + */ +static void change_online_status(void) +{ + char menuin[32]; + pj_bool_t online_status; + pjrpid_element elem; + int i, choice; + + enum { + AVAILABLE, BUSY, OTP, IDLE, AWAY, BRB, OFFLINE, OPT_MAX + }; + + struct opt { + int id; + char *name; + } opts[] = { + { AVAILABLE, "Available" }, + { BUSY, "Busy"}, + { OTP, "On the phone"}, + { IDLE, "Idle"}, + { AWAY, "Away"}, + { BRB, "Be right back"}, + { OFFLINE, "Offline"} + }; + + printf("\n" + "Choices:\n"); + for (i=0; i= OPT_MAX) { + puts("Invalid selection"); + return; + } + + pj_bzero(&elem, sizeof(elem)); + elem.type = PJRPID_ELEMENT_TYPE_PERSON; + + online_status = PJ_TRUE; + + switch (choice) { + case AVAILABLE: + break; + case BUSY: + elem.activity = PJRPID_ACTIVITY_BUSY; + elem.note = pj_str("Busy"); + break; + case OTP: + elem.activity = PJRPID_ACTIVITY_BUSY; + elem.note = pj_str("On the phone"); + break; + case IDLE: + elem.activity = PJRPID_ACTIVITY_UNKNOWN; + elem.note = pj_str("Idle"); + break; + case AWAY: + elem.activity = PJRPID_ACTIVITY_AWAY; + elem.note = pj_str("Away"); + break; + case BRB: + elem.activity = PJRPID_ACTIVITY_UNKNOWN; + elem.note = pj_str("Be right back"); + break; + case OFFLINE: + online_status = PJ_FALSE; + break; + } + + pjsua_acc_set_online_status2(current_acc, online_status, &elem); +} + + /* * Main "user interface" loop. */ @@ -2802,6 +2884,10 @@ void console_app_main(const pj_str_t *uri_to_call) (acc_info.online_status?"online":"offline")); break; + case 'T': + change_online_status(); + break; + case 'c': switch (menuin[1]) { case 'l': diff --git a/pjsip/build/Makefile b/pjsip/build/Makefile index a9b242c00..849b2c379 100644 --- a/pjsip/build/Makefile +++ b/pjsip/build/Makefile @@ -62,7 +62,7 @@ export PJSIP_SIMPLE_SRCDIR = ../src/pjsip-simple export PJSIP_SIMPLE_OBJS += $(OS_OBJS) $(M_OBJS) $(CC_OBJS) $(HOST_OBJS) \ errno.o evsub.o evsub_msg.o iscomposing.o \ pidf.o presence.o presence_body.o publishc.o \ - xpidf.o + rpid.o xpidf.o export PJSIP_SIMPLE_CFLAGS += $(_CFLAGS) diff --git a/pjsip/build/pjsip_simple.dsp b/pjsip/build/pjsip_simple.dsp index 64cb98aa1..82554d7de 100644 --- a/pjsip/build/pjsip_simple.dsp +++ b/pjsip/build/pjsip_simple.dsp @@ -40,6 +40,7 @@ RSC=rc.exe # PROP Output_Dir "./output/pjsip-simple-i386-win32-vc6-release" # PROP Intermediate_Dir "./output/pjsip-simple-i386-win32-vc6-release" # PROP Target_Dir "" +F90=df.exe # ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c # ADD CPP /nologo /MD /W4 /GX /Zi /O2 /I "../include" /I "../../pjlib-util/include" /I "../../pjlib/include" /D "NDEBUG" /D PJ_WIN32=1 /D PJ_M_I386=1 /D "WIN32" /D "_MBCS" /D "_LIB" /YX /FD /c # ADD BASE RSC /l 0x409 /d "NDEBUG" @@ -63,6 +64,7 @@ LIB32=link.exe -lib # PROP Output_Dir "./output/pjsip-simple-i386-win32-vc6-debug" # PROP Intermediate_Dir "./output/pjsip-simple-i386-win32-vc6-debug" # PROP Target_Dir "" +F90=df.exe # ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c # ADD CPP /nologo /MTd /W4 /Gm /GX /ZI /Od /I "../include" /I "../../pjlib-util/include" /I "../../pjlib/include" /D "_DEBUG" /D PJ_WIN32=1 /D PJ_M_I386=1 /D "WIN32" /D "_MBCS" /D "_LIB" /FR /YX /FD /GZ /c # ADD BASE RSC /l 0x409 /d "_DEBUG" @@ -117,6 +119,10 @@ SOURCE="..\src\pjsip-simple\publishc.c" # End Source File # Begin Source File +SOURCE="..\src\pjsip-simple\rpid.c" +# End Source File +# Begin Source File + SOURCE="..\src\pjsip-simple\xpidf.c" # End Source File # End Group @@ -157,6 +163,10 @@ SOURCE="..\include\pjsip-simple\publish.h" # End Source File # Begin Source File +SOURCE="..\include\pjsip-simple\rpid.h" +# End Source File +# Begin Source File + SOURCE="..\include\pjsip-simple\types.h" # End Source File # Begin Source File diff --git a/pjsip/build/pjsip_simple.vcproj b/pjsip/build/pjsip_simple.vcproj index 3beea61d6..4ea63282c 100644 --- a/pjsip/build/pjsip_simple.vcproj +++ b/pjsip/build/pjsip_simple.vcproj @@ -349,6 +349,10 @@ /> + + @@ -408,6 +412,10 @@ RelativePath="..\include\pjsip-simple\publish.h" > + + diff --git a/pjsip/build/wince-evc4/pjsip_simple_wince.vcp b/pjsip/build/wince-evc4/pjsip_simple_wince.vcp index b09338318..1e37e1c1b 100644 --- a/pjsip/build/wince-evc4/pjsip_simple_wince.vcp +++ b/pjsip/build/wince-evc4/pjsip_simple_wince.vcp @@ -365,8 +365,12 @@ DEP_CPP_ERRNO=\ "..\..\..\pjlib\include\pj\array.h"\ "..\..\..\pjlib\include\pj\assert.h"\ "..\..\..\pjlib\include\pj\compat\assert.h"\ + "..\..\..\pjlib\include\pj\compat\cc_armcc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_codew.h"\ "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_gcce.h"\ "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_mwcc.h"\ "..\..\..\pjlib\include\pj\compat\ctype.h"\ "..\..\..\pjlib\include\pj\compat\errno.h"\ "..\..\..\pjlib\include\pj\compat\high_precision.h"\ @@ -378,10 +382,12 @@ DEP_CPP_ERRNO=\ "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ + "..\..\..\pjlib\include\pj\compat\os_symbian.h"\ "..\..\..\pjlib\include\pj\compat\os_win32.h"\ "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ "..\..\..\pjlib\include\pj\compat\setjmp.h"\ "..\..\..\pjlib\include\pj\compat\size_t.h"\ + "..\..\..\pjlib\include\pj\compat\stdarg.h"\ "..\..\..\pjlib\include\pj\compat\string.h"\ "..\..\..\pjlib\include\pj\config.h"\ "..\..\..\pjlib\include\pj\config_site.h"\ @@ -395,6 +401,7 @@ DEP_CPP_ERRNO=\ "..\..\..\pjlib\include\pj\guid.h"\ "..\..\..\pjlib\include\pj\hash.h"\ "..\..\..\pjlib\include\pj\ioqueue.h"\ + "..\..\..\pjlib\include\pj\ip_helper.h"\ "..\..\..\pjlib\include\pj\list.h"\ "..\..\..\pjlib\include\pj\list_i.h"\ "..\..\..\pjlib\include\pj\lock.h"\ @@ -402,6 +409,7 @@ DEP_CPP_ERRNO=\ "..\..\..\pjlib\include\pj\os.h"\ "..\..\..\pjlib\include\pj\pool.h"\ "..\..\..\pjlib\include\pj\pool_alt.h"\ + "..\..\..\pjlib\include\pj\pool_buf.h"\ "..\..\..\pjlib\include\pj\pool_i.h"\ "..\..\..\pjlib\include\pj\rand.h"\ "..\..\..\pjlib\include\pj\rbtree.h"\ @@ -819,15 +827,23 @@ DEP_CPP_EVSUB=\ !ELSEIF "$(CFG)" == "pjsip_simple_wince - Win32 (WCE emulator) Debug" DEP_CPP_EVSUB=\ + "..\..\..\pjlib-util\include\pjlib-util\config.h"\ + "..\..\..\pjlib-util\include\pjlib-util\dns.h"\ + "..\..\..\pjlib-util\include\pjlib-util\resolver.h"\ "..\..\..\pjlib-util\include\pjlib-util\scanner.h"\ "..\..\..\pjlib-util\include\pjlib-util\scanner_cis_bitwise.h"\ "..\..\..\pjlib-util\include\pjlib-util\scanner_cis_uint.h"\ + "..\..\..\pjlib-util\include\pjlib-util\types.h"\ "..\..\..\pjlib\include\pj\addr_resolv.h"\ "..\..\..\pjlib\include\pj\array.h"\ "..\..\..\pjlib\include\pj\assert.h"\ "..\..\..\pjlib\include\pj\compat\assert.h"\ + "..\..\..\pjlib\include\pj\compat\cc_armcc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_codew.h"\ "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_gcce.h"\ "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_mwcc.h"\ "..\..\..\pjlib\include\pj\compat\ctype.h"\ "..\..\..\pjlib\include\pj\compat\errno.h"\ "..\..\..\pjlib\include\pj\compat\high_precision.h"\ @@ -839,10 +855,12 @@ DEP_CPP_EVSUB=\ "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ + "..\..\..\pjlib\include\pj\compat\os_symbian.h"\ "..\..\..\pjlib\include\pj\compat\os_win32.h"\ "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ "..\..\..\pjlib\include\pj\compat\setjmp.h"\ "..\..\..\pjlib\include\pj\compat\size_t.h"\ + "..\..\..\pjlib\include\pj\compat\stdarg.h"\ "..\..\..\pjlib\include\pj\compat\string.h"\ "..\..\..\pjlib\include\pj\config.h"\ "..\..\..\pjlib\include\pj\config_site.h"\ @@ -856,6 +874,7 @@ DEP_CPP_EVSUB=\ "..\..\..\pjlib\include\pj\guid.h"\ "..\..\..\pjlib\include\pj\hash.h"\ "..\..\..\pjlib\include\pj\ioqueue.h"\ + "..\..\..\pjlib\include\pj\ip_helper.h"\ "..\..\..\pjlib\include\pj\list.h"\ "..\..\..\pjlib\include\pj\list_i.h"\ "..\..\..\pjlib\include\pj\lock.h"\ @@ -863,6 +882,7 @@ DEP_CPP_EVSUB=\ "..\..\..\pjlib\include\pj\os.h"\ "..\..\..\pjlib\include\pj\pool.h"\ "..\..\..\pjlib\include\pj\pool_alt.h"\ + "..\..\..\pjlib\include\pj\pool_buf.h"\ "..\..\..\pjlib\include\pj\pool_i.h"\ "..\..\..\pjlib\include\pj\rand.h"\ "..\..\..\pjlib\include\pj\rbtree.h"\ @@ -880,6 +900,7 @@ DEP_CPP_EVSUB=\ "..\..\include\pjsip-simple\types.h"\ "..\..\include\pjsip\sip_auth.h"\ "..\..\include\pjsip\sip_auth_msg.h"\ + "..\..\include\pjsip\sip_autoconf.h"\ "..\..\include\pjsip\sip_config.h"\ "..\..\include\pjsip\sip_dialog.h"\ "..\..\include\pjsip\sip_endpoint.h"\ @@ -1501,15 +1522,21 @@ DEP_CPP_EVSUB_=\ !ELSEIF "$(CFG)" == "pjsip_simple_wince - Win32 (WCE emulator) Debug" DEP_CPP_EVSUB_=\ + "..\..\..\pjlib-util\include\pjlib-util\config.h"\ "..\..\..\pjlib-util\include\pjlib-util\scanner.h"\ "..\..\..\pjlib-util\include\pjlib-util\scanner_cis_bitwise.h"\ "..\..\..\pjlib-util\include\pjlib-util\scanner_cis_uint.h"\ + "..\..\..\pjlib-util\include\pjlib-util\types.h"\ "..\..\..\pjlib\include\pj\addr_resolv.h"\ "..\..\..\pjlib\include\pj\array.h"\ "..\..\..\pjlib\include\pj\assert.h"\ "..\..\..\pjlib\include\pj\compat\assert.h"\ + "..\..\..\pjlib\include\pj\compat\cc_armcc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_codew.h"\ "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_gcce.h"\ "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_mwcc.h"\ "..\..\..\pjlib\include\pj\compat\ctype.h"\ "..\..\..\pjlib\include\pj\compat\errno.h"\ "..\..\..\pjlib\include\pj\compat\high_precision.h"\ @@ -1521,10 +1548,12 @@ DEP_CPP_EVSUB_=\ "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ + "..\..\..\pjlib\include\pj\compat\os_symbian.h"\ "..\..\..\pjlib\include\pj\compat\os_win32.h"\ "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ "..\..\..\pjlib\include\pj\compat\setjmp.h"\ "..\..\..\pjlib\include\pj\compat\size_t.h"\ + "..\..\..\pjlib\include\pj\compat\stdarg.h"\ "..\..\..\pjlib\include\pj\compat\string.h"\ "..\..\..\pjlib\include\pj\config.h"\ "..\..\..\pjlib\include\pj\config_site.h"\ @@ -1538,6 +1567,7 @@ DEP_CPP_EVSUB_=\ "..\..\..\pjlib\include\pj\guid.h"\ "..\..\..\pjlib\include\pj\hash.h"\ "..\..\..\pjlib\include\pj\ioqueue.h"\ + "..\..\..\pjlib\include\pj\ip_helper.h"\ "..\..\..\pjlib\include\pj\list.h"\ "..\..\..\pjlib\include\pj\list_i.h"\ "..\..\..\pjlib\include\pj\lock.h"\ @@ -1545,6 +1575,7 @@ DEP_CPP_EVSUB_=\ "..\..\..\pjlib\include\pj\os.h"\ "..\..\..\pjlib\include\pj\pool.h"\ "..\..\..\pjlib\include\pj\pool_alt.h"\ + "..\..\..\pjlib\include\pj\pool_buf.h"\ "..\..\..\pjlib\include\pj\pool_i.h"\ "..\..\..\pjlib\include\pj\rand.h"\ "..\..\..\pjlib\include\pj\rbtree.h"\ @@ -1558,6 +1589,7 @@ DEP_CPP_EVSUB_=\ "..\..\..\pjlib\include\pjlib.h"\ "..\..\include\pjsip-simple\evsub_msg.h"\ "..\..\include\pjsip\print_util.h"\ + "..\..\include\pjsip\sip_autoconf.h"\ "..\..\include\pjsip\sip_config.h"\ "..\..\include\pjsip\sip_msg.h"\ "..\..\include\pjsip\sip_parser.h"\ @@ -2013,17 +2045,23 @@ DEP_CPP_ISCOM=\ !ELSEIF "$(CFG)" == "pjsip_simple_wince - Win32 (WCE emulator) Debug" DEP_CPP_ISCOM=\ + "..\..\..\pjlib-util\include\pjlib-util\config.h"\ "..\..\..\pjlib-util\include\pjlib-util\errno.h"\ "..\..\..\pjlib-util\include\pjlib-util\scanner.h"\ "..\..\..\pjlib-util\include\pjlib-util\scanner_cis_bitwise.h"\ "..\..\..\pjlib-util\include\pjlib-util\scanner_cis_uint.h"\ + "..\..\..\pjlib-util\include\pjlib-util\types.h"\ "..\..\..\pjlib-util\include\pjlib-util\xml.h"\ "..\..\..\pjlib\include\pj\addr_resolv.h"\ "..\..\..\pjlib\include\pj\array.h"\ "..\..\..\pjlib\include\pj\assert.h"\ "..\..\..\pjlib\include\pj\compat\assert.h"\ + "..\..\..\pjlib\include\pj\compat\cc_armcc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_codew.h"\ "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_gcce.h"\ "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_mwcc.h"\ "..\..\..\pjlib\include\pj\compat\ctype.h"\ "..\..\..\pjlib\include\pj\compat\errno.h"\ "..\..\..\pjlib\include\pj\compat\high_precision.h"\ @@ -2035,10 +2073,12 @@ DEP_CPP_ISCOM=\ "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ + "..\..\..\pjlib\include\pj\compat\os_symbian.h"\ "..\..\..\pjlib\include\pj\compat\os_win32.h"\ "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ "..\..\..\pjlib\include\pj\compat\setjmp.h"\ "..\..\..\pjlib\include\pj\compat\size_t.h"\ + "..\..\..\pjlib\include\pj\compat\stdarg.h"\ "..\..\..\pjlib\include\pj\compat\string.h"\ "..\..\..\pjlib\include\pj\config.h"\ "..\..\..\pjlib\include\pj\config_site.h"\ @@ -2052,6 +2092,7 @@ DEP_CPP_ISCOM=\ "..\..\..\pjlib\include\pj\guid.h"\ "..\..\..\pjlib\include\pj\hash.h"\ "..\..\..\pjlib\include\pj\ioqueue.h"\ + "..\..\..\pjlib\include\pj\ip_helper.h"\ "..\..\..\pjlib\include\pj\list.h"\ "..\..\..\pjlib\include\pj\list_i.h"\ "..\..\..\pjlib\include\pj\lock.h"\ @@ -2059,6 +2100,7 @@ DEP_CPP_ISCOM=\ "..\..\..\pjlib\include\pj\os.h"\ "..\..\..\pjlib\include\pj\pool.h"\ "..\..\..\pjlib\include\pj\pool_alt.h"\ + "..\..\..\pjlib\include\pj\pool_buf.h"\ "..\..\..\pjlib\include\pj\pool_i.h"\ "..\..\..\pjlib\include\pj\rand.h"\ "..\..\..\pjlib\include\pj\rbtree.h"\ @@ -2073,6 +2115,7 @@ DEP_CPP_ISCOM=\ "..\..\include\pjsip-simple\errno.h"\ "..\..\include\pjsip-simple\iscomposing.h"\ "..\..\include\pjsip-simple\types.h"\ + "..\..\include\pjsip\sip_autoconf.h"\ "..\..\include\pjsip\sip_config.h"\ "..\..\include\pjsip\sip_errno.h"\ "..\..\include\pjsip\sip_msg.h"\ @@ -2549,8 +2592,12 @@ DEP_CPP_PIDF_=\ "..\..\..\pjlib\include\pj\array.h"\ "..\..\..\pjlib\include\pj\assert.h"\ "..\..\..\pjlib\include\pj\compat\assert.h"\ + "..\..\..\pjlib\include\pj\compat\cc_armcc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_codew.h"\ "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_gcce.h"\ "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_mwcc.h"\ "..\..\..\pjlib\include\pj\compat\ctype.h"\ "..\..\..\pjlib\include\pj\compat\errno.h"\ "..\..\..\pjlib\include\pj\compat\high_precision.h"\ @@ -2562,10 +2609,12 @@ DEP_CPP_PIDF_=\ "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ + "..\..\..\pjlib\include\pj\compat\os_symbian.h"\ "..\..\..\pjlib\include\pj\compat\os_win32.h"\ "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ "..\..\..\pjlib\include\pj\compat\setjmp.h"\ "..\..\..\pjlib\include\pj\compat\size_t.h"\ + "..\..\..\pjlib\include\pj\compat\stdarg.h"\ "..\..\..\pjlib\include\pj\compat\string.h"\ "..\..\..\pjlib\include\pj\config.h"\ "..\..\..\pjlib\include\pj\config_site.h"\ @@ -2579,6 +2628,7 @@ DEP_CPP_PIDF_=\ "..\..\..\pjlib\include\pj\guid.h"\ "..\..\..\pjlib\include\pj\hash.h"\ "..\..\..\pjlib\include\pj\ioqueue.h"\ + "..\..\..\pjlib\include\pj\ip_helper.h"\ "..\..\..\pjlib\include\pj\list.h"\ "..\..\..\pjlib\include\pj\list_i.h"\ "..\..\..\pjlib\include\pj\lock.h"\ @@ -2586,6 +2636,7 @@ DEP_CPP_PIDF_=\ "..\..\..\pjlib\include\pj\os.h"\ "..\..\..\pjlib\include\pj\pool.h"\ "..\..\..\pjlib\include\pj\pool_alt.h"\ + "..\..\..\pjlib\include\pj\pool_buf.h"\ "..\..\..\pjlib\include\pj\pool_i.h"\ "..\..\..\pjlib\include\pj\rand.h"\ "..\..\..\pjlib\include\pj\rbtree.h"\ @@ -2599,6 +2650,7 @@ DEP_CPP_PIDF_=\ "..\..\..\pjlib\include\pjlib.h"\ "..\..\include\pjsip-simple\pidf.h"\ "..\..\include\pjsip-simple\types.h"\ + "..\..\include\pjsip\sip_autoconf.h"\ "..\..\include\pjsip\sip_config.h"\ "..\..\include\pjsip\sip_types.h"\ @@ -3030,16 +3082,24 @@ DEP_CPP_PRESE=\ !ELSEIF "$(CFG)" == "pjsip_simple_wince - Win32 (WCE emulator) Debug" DEP_CPP_PRESE=\ + "..\..\..\pjlib-util\include\pjlib-util\config.h"\ + "..\..\..\pjlib-util\include\pjlib-util\dns.h"\ + "..\..\..\pjlib-util\include\pjlib-util\resolver.h"\ "..\..\..\pjlib-util\include\pjlib-util\scanner.h"\ "..\..\..\pjlib-util\include\pjlib-util\scanner_cis_bitwise.h"\ "..\..\..\pjlib-util\include\pjlib-util\scanner_cis_uint.h"\ + "..\..\..\pjlib-util\include\pjlib-util\types.h"\ "..\..\..\pjlib-util\include\pjlib-util\xml.h"\ "..\..\..\pjlib\include\pj\addr_resolv.h"\ "..\..\..\pjlib\include\pj\array.h"\ "..\..\..\pjlib\include\pj\assert.h"\ "..\..\..\pjlib\include\pj\compat\assert.h"\ + "..\..\..\pjlib\include\pj\compat\cc_armcc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_codew.h"\ "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_gcce.h"\ "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_mwcc.h"\ "..\..\..\pjlib\include\pj\compat\ctype.h"\ "..\..\..\pjlib\include\pj\compat\errno.h"\ "..\..\..\pjlib\include\pj\compat\high_precision.h"\ @@ -3051,10 +3111,12 @@ DEP_CPP_PRESE=\ "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ + "..\..\..\pjlib\include\pj\compat\os_symbian.h"\ "..\..\..\pjlib\include\pj\compat\os_win32.h"\ "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ "..\..\..\pjlib\include\pj\compat\setjmp.h"\ "..\..\..\pjlib\include\pj\compat\size_t.h"\ + "..\..\..\pjlib\include\pj\compat\stdarg.h"\ "..\..\..\pjlib\include\pj\compat\string.h"\ "..\..\..\pjlib\include\pj\config.h"\ "..\..\..\pjlib\include\pj\config_site.h"\ @@ -3068,6 +3130,7 @@ DEP_CPP_PRESE=\ "..\..\..\pjlib\include\pj\guid.h"\ "..\..\..\pjlib\include\pj\hash.h"\ "..\..\..\pjlib\include\pj\ioqueue.h"\ + "..\..\..\pjlib\include\pj\ip_helper.h"\ "..\..\..\pjlib\include\pj\list.h"\ "..\..\..\pjlib\include\pj\list_i.h"\ "..\..\..\pjlib\include\pj\lock.h"\ @@ -3075,6 +3138,7 @@ DEP_CPP_PRESE=\ "..\..\..\pjlib\include\pj\os.h"\ "..\..\..\pjlib\include\pj\pool.h"\ "..\..\..\pjlib\include\pj\pool_alt.h"\ + "..\..\..\pjlib\include\pj\pool_buf.h"\ "..\..\..\pjlib\include\pj\pool_i.h"\ "..\..\..\pjlib\include\pj\rand.h"\ "..\..\..\pjlib\include\pj\rbtree.h"\ @@ -3091,10 +3155,12 @@ DEP_CPP_PRESE=\ "..\..\include\pjsip-simple\evsub_msg.h"\ "..\..\include\pjsip-simple\pidf.h"\ "..\..\include\pjsip-simple\presence.h"\ + "..\..\include\pjsip-simple\rpid.h"\ "..\..\include\pjsip-simple\types.h"\ "..\..\include\pjsip-simple\xpidf.h"\ "..\..\include\pjsip\sip_auth.h"\ "..\..\include\pjsip\sip_auth_msg.h"\ + "..\..\include\pjsip\sip_autoconf.h"\ "..\..\include\pjsip\sip_config.h"\ "..\..\include\pjsip\sip_dialog.h"\ "..\..\include\pjsip\sip_endpoint.h"\ @@ -3749,16 +3815,22 @@ DEP_CPP_PRESEN=\ !ELSEIF "$(CFG)" == "pjsip_simple_wince - Win32 (WCE emulator) Debug" DEP_CPP_PRESEN=\ + "..\..\..\pjlib-util\include\pjlib-util\config.h"\ "..\..\..\pjlib-util\include\pjlib-util\scanner.h"\ "..\..\..\pjlib-util\include\pjlib-util\scanner_cis_bitwise.h"\ "..\..\..\pjlib-util\include\pjlib-util\scanner_cis_uint.h"\ + "..\..\..\pjlib-util\include\pjlib-util\types.h"\ "..\..\..\pjlib-util\include\pjlib-util\xml.h"\ "..\..\..\pjlib\include\pj\addr_resolv.h"\ "..\..\..\pjlib\include\pj\array.h"\ "..\..\..\pjlib\include\pj\assert.h"\ "..\..\..\pjlib\include\pj\compat\assert.h"\ + "..\..\..\pjlib\include\pj\compat\cc_armcc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_codew.h"\ "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_gcce.h"\ "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_mwcc.h"\ "..\..\..\pjlib\include\pj\compat\ctype.h"\ "..\..\..\pjlib\include\pj\compat\errno.h"\ "..\..\..\pjlib\include\pj\compat\high_precision.h"\ @@ -3770,10 +3842,12 @@ DEP_CPP_PRESEN=\ "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ + "..\..\..\pjlib\include\pj\compat\os_symbian.h"\ "..\..\..\pjlib\include\pj\compat\os_win32.h"\ "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ "..\..\..\pjlib\include\pj\compat\setjmp.h"\ "..\..\..\pjlib\include\pj\compat\size_t.h"\ + "..\..\..\pjlib\include\pj\compat\stdarg.h"\ "..\..\..\pjlib\include\pj\compat\string.h"\ "..\..\..\pjlib\include\pj\config.h"\ "..\..\..\pjlib\include\pj\config_site.h"\ @@ -3787,6 +3861,7 @@ DEP_CPP_PRESEN=\ "..\..\..\pjlib\include\pj\guid.h"\ "..\..\..\pjlib\include\pj\hash.h"\ "..\..\..\pjlib\include\pj\ioqueue.h"\ + "..\..\..\pjlib\include\pj\ip_helper.h"\ "..\..\..\pjlib\include\pj\list.h"\ "..\..\..\pjlib\include\pj\list_i.h"\ "..\..\..\pjlib\include\pj\lock.h"\ @@ -3794,6 +3869,7 @@ DEP_CPP_PRESEN=\ "..\..\..\pjlib\include\pj\os.h"\ "..\..\..\pjlib\include\pj\pool.h"\ "..\..\..\pjlib\include\pj\pool_alt.h"\ + "..\..\..\pjlib\include\pj\pool_buf.h"\ "..\..\..\pjlib\include\pj\pool_i.h"\ "..\..\..\pjlib\include\pj\rand.h"\ "..\..\..\pjlib\include\pj\rbtree.h"\ @@ -3809,8 +3885,10 @@ DEP_CPP_PRESEN=\ "..\..\include\pjsip-simple\evsub.h"\ "..\..\include\pjsip-simple\pidf.h"\ "..\..\include\pjsip-simple\presence.h"\ + "..\..\include\pjsip-simple\rpid.h"\ "..\..\include\pjsip-simple\types.h"\ "..\..\include\pjsip-simple\xpidf.h"\ + "..\..\include\pjsip\sip_autoconf.h"\ "..\..\include\pjsip\sip_config.h"\ "..\..\include\pjsip\sip_errno.h"\ "..\..\include\pjsip\sip_msg.h"\ @@ -4497,15 +4575,23 @@ DEP_CPP_PUBLI=\ !ELSEIF "$(CFG)" == "pjsip_simple_wince - Win32 (WCE emulator) Debug" DEP_CPP_PUBLI=\ + "..\..\..\pjlib-util\include\pjlib-util\config.h"\ + "..\..\..\pjlib-util\include\pjlib-util\dns.h"\ + "..\..\..\pjlib-util\include\pjlib-util\resolver.h"\ "..\..\..\pjlib-util\include\pjlib-util\scanner.h"\ "..\..\..\pjlib-util\include\pjlib-util\scanner_cis_bitwise.h"\ "..\..\..\pjlib-util\include\pjlib-util\scanner_cis_uint.h"\ + "..\..\..\pjlib-util\include\pjlib-util\types.h"\ "..\..\..\pjlib\include\pj\addr_resolv.h"\ "..\..\..\pjlib\include\pj\array.h"\ "..\..\..\pjlib\include\pj\assert.h"\ "..\..\..\pjlib\include\pj\compat\assert.h"\ + "..\..\..\pjlib\include\pj\compat\cc_armcc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_codew.h"\ "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_gcce.h"\ "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_mwcc.h"\ "..\..\..\pjlib\include\pj\compat\ctype.h"\ "..\..\..\pjlib\include\pj\compat\errno.h"\ "..\..\..\pjlib\include\pj\compat\high_precision.h"\ @@ -4517,10 +4603,12 @@ DEP_CPP_PUBLI=\ "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ + "..\..\..\pjlib\include\pj\compat\os_symbian.h"\ "..\..\..\pjlib\include\pj\compat\os_win32.h"\ "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ "..\..\..\pjlib\include\pj\compat\setjmp.h"\ "..\..\..\pjlib\include\pj\compat\size_t.h"\ + "..\..\..\pjlib\include\pj\compat\stdarg.h"\ "..\..\..\pjlib\include\pj\compat\string.h"\ "..\..\..\pjlib\include\pj\config.h"\ "..\..\..\pjlib\include\pj\config_site.h"\ @@ -4534,6 +4622,7 @@ DEP_CPP_PUBLI=\ "..\..\..\pjlib\include\pj\guid.h"\ "..\..\..\pjlib\include\pj\hash.h"\ "..\..\..\pjlib\include\pj\ioqueue.h"\ + "..\..\..\pjlib\include\pj\ip_helper.h"\ "..\..\..\pjlib\include\pj\list.h"\ "..\..\..\pjlib\include\pj\list_i.h"\ "..\..\..\pjlib\include\pj\lock.h"\ @@ -4541,6 +4630,7 @@ DEP_CPP_PUBLI=\ "..\..\..\pjlib\include\pj\os.h"\ "..\..\..\pjlib\include\pj\pool.h"\ "..\..\..\pjlib\include\pj\pool_alt.h"\ + "..\..\..\pjlib\include\pj\pool_buf.h"\ "..\..\..\pjlib\include\pj\pool_i.h"\ "..\..\..\pjlib\include\pj\rand.h"\ "..\..\..\pjlib\include\pj\rbtree.h"\ @@ -4555,6 +4645,7 @@ DEP_CPP_PUBLI=\ "..\..\include\pjsip-simple\publish.h"\ "..\..\include\pjsip\sip_auth.h"\ "..\..\include\pjsip\sip_auth_msg.h"\ + "..\..\include\pjsip\sip_autoconf.h"\ "..\..\include\pjsip\sip_config.h"\ "..\..\include\pjsip\sip_endpoint.h"\ "..\..\include\pjsip\sip_errno.h"\ @@ -5169,6 +5260,753 @@ DEP_CPP_PUBLI=\ "..\..\include\pjsip\sip_util.h"\ +!ENDIF + +# End Source File +# Begin Source File + +SOURCE="..\..\src\pjsip-simple\rpid.c" + +!IF "$(CFG)" == "pjsip_simple_wince - Win32 (WCE emulator) Release" + +DEP_CPP_RPID_=\ + "..\..\..\pjlib-util\include\pjlib-util\xml.h"\ + "..\..\..\pjlib\include\pj\addr_resolv.h"\ + "..\..\..\pjlib\include\pj\array.h"\ + "..\..\..\pjlib\include\pj\assert.h"\ + "..\..\..\pjlib\include\pj\compat\assert.h"\ + "..\..\..\pjlib\include\pj\compat\cc_armcc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_codew.h"\ + "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_gcce.h"\ + "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_mwcc.h"\ + "..\..\..\pjlib\include\pj\compat\ctype.h"\ + "..\..\..\pjlib\include\pj\compat\errno.h"\ + "..\..\..\pjlib\include\pj\compat\high_precision.h"\ + "..\..\..\pjlib\include\pj\compat\m_auto.h"\ + "..\..\..\pjlib\include\pj\compat\os_auto.h"\ + "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ + "..\..\..\pjlib\include\pj\compat\os_linux.h"\ + "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ + "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ + "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ + "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ + "..\..\..\pjlib\include\pj\compat\os_symbian.h"\ + "..\..\..\pjlib\include\pj\compat\os_win32.h"\ + "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ + "..\..\..\pjlib\include\pj\compat\setjmp.h"\ + "..\..\..\pjlib\include\pj\compat\size_t.h"\ + "..\..\..\pjlib\include\pj\compat\stdarg.h"\ + "..\..\..\pjlib\include\pj\compat\string.h"\ + "..\..\..\pjlib\include\pj\config.h"\ + "..\..\..\pjlib\include\pj\config_site.h"\ + "..\..\..\pjlib\include\pj\config_site_sample.h"\ + "..\..\..\pjlib\include\pj\ctype.h"\ + "..\..\..\pjlib\include\pj\errno.h"\ + "..\..\..\pjlib\include\pj\except.h"\ + "..\..\..\pjlib\include\pj\fifobuf.h"\ + "..\..\..\pjlib\include\pj\file_access.h"\ + "..\..\..\pjlib\include\pj\file_io.h"\ + "..\..\..\pjlib\include\pj\guid.h"\ + "..\..\..\pjlib\include\pj\hash.h"\ + "..\..\..\pjlib\include\pj\ioqueue.h"\ + "..\..\..\pjlib\include\pj\ip_helper.h"\ + "..\..\..\pjlib\include\pj\list.h"\ + "..\..\..\pjlib\include\pj\list_i.h"\ + "..\..\..\pjlib\include\pj\lock.h"\ + "..\..\..\pjlib\include\pj\log.h"\ + "..\..\..\pjlib\include\pj\os.h"\ + "..\..\..\pjlib\include\pj\pool.h"\ + "..\..\..\pjlib\include\pj\pool_alt.h"\ + "..\..\..\pjlib\include\pj\pool_buf.h"\ + "..\..\..\pjlib\include\pj\pool_i.h"\ + "..\..\..\pjlib\include\pj\rand.h"\ + "..\..\..\pjlib\include\pj\rbtree.h"\ + "..\..\..\pjlib\include\pj\sock.h"\ + "..\..\..\pjlib\include\pj\sock_select.h"\ + "..\..\..\pjlib\include\pj\string.h"\ + "..\..\..\pjlib\include\pj\string_i.h"\ + "..\..\..\pjlib\include\pj\timer.h"\ + "..\..\..\pjlib\include\pj\types.h"\ + "..\..\..\pjlib\include\pj\unicode.h"\ + "..\..\..\pjlib\include\pjlib.h"\ + "..\..\include\pjsip-simple\errno.h"\ + "..\..\include\pjsip-simple\pidf.h"\ + "..\..\include\pjsip-simple\rpid.h"\ + "..\..\include\pjsip-simple\types.h"\ + "..\..\include\pjsip\sip_autoconf.h"\ + "..\..\include\pjsip\sip_config.h"\ + "..\..\include\pjsip\sip_errno.h"\ + "..\..\include\pjsip\sip_types.h"\ + + +!ELSEIF "$(CFG)" == "pjsip_simple_wince - Win32 (WCE emulator) Debug" + +DEP_CPP_RPID_=\ + "..\..\..\pjlib-util\include\pjlib-util\xml.h"\ + "..\..\..\pjlib\include\pj\addr_resolv.h"\ + "..\..\..\pjlib\include\pj\array.h"\ + "..\..\..\pjlib\include\pj\assert.h"\ + "..\..\..\pjlib\include\pj\compat\assert.h"\ + "..\..\..\pjlib\include\pj\compat\cc_armcc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_codew.h"\ + "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_gcce.h"\ + "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_mwcc.h"\ + "..\..\..\pjlib\include\pj\compat\ctype.h"\ + "..\..\..\pjlib\include\pj\compat\errno.h"\ + "..\..\..\pjlib\include\pj\compat\high_precision.h"\ + "..\..\..\pjlib\include\pj\compat\m_auto.h"\ + "..\..\..\pjlib\include\pj\compat\os_auto.h"\ + "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ + "..\..\..\pjlib\include\pj\compat\os_linux.h"\ + "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ + "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ + "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ + "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ + "..\..\..\pjlib\include\pj\compat\os_symbian.h"\ + "..\..\..\pjlib\include\pj\compat\os_win32.h"\ + "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ + "..\..\..\pjlib\include\pj\compat\setjmp.h"\ + "..\..\..\pjlib\include\pj\compat\size_t.h"\ + "..\..\..\pjlib\include\pj\compat\stdarg.h"\ + "..\..\..\pjlib\include\pj\compat\string.h"\ + "..\..\..\pjlib\include\pj\config.h"\ + "..\..\..\pjlib\include\pj\config_site.h"\ + "..\..\..\pjlib\include\pj\config_site_sample.h"\ + "..\..\..\pjlib\include\pj\ctype.h"\ + "..\..\..\pjlib\include\pj\errno.h"\ + "..\..\..\pjlib\include\pj\except.h"\ + "..\..\..\pjlib\include\pj\fifobuf.h"\ + "..\..\..\pjlib\include\pj\file_access.h"\ + "..\..\..\pjlib\include\pj\file_io.h"\ + "..\..\..\pjlib\include\pj\guid.h"\ + "..\..\..\pjlib\include\pj\hash.h"\ + "..\..\..\pjlib\include\pj\ioqueue.h"\ + "..\..\..\pjlib\include\pj\ip_helper.h"\ + "..\..\..\pjlib\include\pj\list.h"\ + "..\..\..\pjlib\include\pj\list_i.h"\ + "..\..\..\pjlib\include\pj\lock.h"\ + "..\..\..\pjlib\include\pj\log.h"\ + "..\..\..\pjlib\include\pj\os.h"\ + "..\..\..\pjlib\include\pj\pool.h"\ + "..\..\..\pjlib\include\pj\pool_alt.h"\ + "..\..\..\pjlib\include\pj\pool_buf.h"\ + "..\..\..\pjlib\include\pj\pool_i.h"\ + "..\..\..\pjlib\include\pj\rand.h"\ + "..\..\..\pjlib\include\pj\rbtree.h"\ + "..\..\..\pjlib\include\pj\sock.h"\ + "..\..\..\pjlib\include\pj\sock_select.h"\ + "..\..\..\pjlib\include\pj\string.h"\ + "..\..\..\pjlib\include\pj\string_i.h"\ + "..\..\..\pjlib\include\pj\timer.h"\ + "..\..\..\pjlib\include\pj\types.h"\ + "..\..\..\pjlib\include\pj\unicode.h"\ + "..\..\..\pjlib\include\pjlib.h"\ + "..\..\include\pjsip-simple\errno.h"\ + "..\..\include\pjsip-simple\pidf.h"\ + "..\..\include\pjsip-simple\rpid.h"\ + "..\..\include\pjsip-simple\types.h"\ + "..\..\include\pjsip\sip_autoconf.h"\ + "..\..\include\pjsip\sip_config.h"\ + "..\..\include\pjsip\sip_errno.h"\ + "..\..\include\pjsip\sip_types.h"\ + + +!ELSEIF "$(CFG)" == "pjsip_simple_wince - Win32 (WCE ARMV4I) Release" + +DEP_CPP_RPID_=\ + "..\..\..\pjlib-util\include\pjlib-util\xml.h"\ + "..\..\..\pjlib\include\pj\addr_resolv.h"\ + "..\..\..\pjlib\include\pj\array.h"\ + "..\..\..\pjlib\include\pj\assert.h"\ + "..\..\..\pjlib\include\pj\compat\assert.h"\ + "..\..\..\pjlib\include\pj\compat\cc_armcc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_codew.h"\ + "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_gcce.h"\ + "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_mwcc.h"\ + "..\..\..\pjlib\include\pj\compat\ctype.h"\ + "..\..\..\pjlib\include\pj\compat\errno.h"\ + "..\..\..\pjlib\include\pj\compat\high_precision.h"\ + "..\..\..\pjlib\include\pj\compat\m_auto.h"\ + "..\..\..\pjlib\include\pj\compat\os_auto.h"\ + "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ + "..\..\..\pjlib\include\pj\compat\os_linux.h"\ + "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ + "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ + "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ + "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ + "..\..\..\pjlib\include\pj\compat\os_symbian.h"\ + "..\..\..\pjlib\include\pj\compat\os_win32.h"\ + "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ + "..\..\..\pjlib\include\pj\compat\setjmp.h"\ + "..\..\..\pjlib\include\pj\compat\size_t.h"\ + "..\..\..\pjlib\include\pj\compat\stdarg.h"\ + "..\..\..\pjlib\include\pj\compat\string.h"\ + "..\..\..\pjlib\include\pj\config.h"\ + "..\..\..\pjlib\include\pj\config_site.h"\ + "..\..\..\pjlib\include\pj\config_site_sample.h"\ + "..\..\..\pjlib\include\pj\ctype.h"\ + "..\..\..\pjlib\include\pj\errno.h"\ + "..\..\..\pjlib\include\pj\except.h"\ + "..\..\..\pjlib\include\pj\fifobuf.h"\ + "..\..\..\pjlib\include\pj\file_access.h"\ + "..\..\..\pjlib\include\pj\file_io.h"\ + "..\..\..\pjlib\include\pj\guid.h"\ + "..\..\..\pjlib\include\pj\hash.h"\ + "..\..\..\pjlib\include\pj\ioqueue.h"\ + "..\..\..\pjlib\include\pj\ip_helper.h"\ + "..\..\..\pjlib\include\pj\list.h"\ + "..\..\..\pjlib\include\pj\list_i.h"\ + "..\..\..\pjlib\include\pj\lock.h"\ + "..\..\..\pjlib\include\pj\log.h"\ + "..\..\..\pjlib\include\pj\os.h"\ + "..\..\..\pjlib\include\pj\pool.h"\ + "..\..\..\pjlib\include\pj\pool_alt.h"\ + "..\..\..\pjlib\include\pj\pool_buf.h"\ + "..\..\..\pjlib\include\pj\pool_i.h"\ + "..\..\..\pjlib\include\pj\rand.h"\ + "..\..\..\pjlib\include\pj\rbtree.h"\ + "..\..\..\pjlib\include\pj\sock.h"\ + "..\..\..\pjlib\include\pj\sock_select.h"\ + "..\..\..\pjlib\include\pj\string.h"\ + "..\..\..\pjlib\include\pj\string_i.h"\ + "..\..\..\pjlib\include\pj\timer.h"\ + "..\..\..\pjlib\include\pj\types.h"\ + "..\..\..\pjlib\include\pj\unicode.h"\ + "..\..\..\pjlib\include\pjlib.h"\ + "..\..\include\pjsip-simple\errno.h"\ + "..\..\include\pjsip-simple\pidf.h"\ + "..\..\include\pjsip-simple\rpid.h"\ + "..\..\include\pjsip-simple\types.h"\ + "..\..\include\pjsip\sip_autoconf.h"\ + "..\..\include\pjsip\sip_config.h"\ + "..\..\include\pjsip\sip_errno.h"\ + "..\..\include\pjsip\sip_types.h"\ + + +!ELSEIF "$(CFG)" == "pjsip_simple_wince - Win32 (WCE ARMV4I) Debug" + +DEP_CPP_RPID_=\ + "..\..\..\pjlib-util\include\pjlib-util\xml.h"\ + "..\..\..\pjlib\include\pj\addr_resolv.h"\ + "..\..\..\pjlib\include\pj\array.h"\ + "..\..\..\pjlib\include\pj\assert.h"\ + "..\..\..\pjlib\include\pj\compat\assert.h"\ + "..\..\..\pjlib\include\pj\compat\cc_armcc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_codew.h"\ + "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_gcce.h"\ + "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_mwcc.h"\ + "..\..\..\pjlib\include\pj\compat\ctype.h"\ + "..\..\..\pjlib\include\pj\compat\errno.h"\ + "..\..\..\pjlib\include\pj\compat\high_precision.h"\ + "..\..\..\pjlib\include\pj\compat\m_auto.h"\ + "..\..\..\pjlib\include\pj\compat\os_auto.h"\ + "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ + "..\..\..\pjlib\include\pj\compat\os_linux.h"\ + "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ + "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ + "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ + "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ + "..\..\..\pjlib\include\pj\compat\os_symbian.h"\ + "..\..\..\pjlib\include\pj\compat\os_win32.h"\ + "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ + "..\..\..\pjlib\include\pj\compat\setjmp.h"\ + "..\..\..\pjlib\include\pj\compat\size_t.h"\ + "..\..\..\pjlib\include\pj\compat\stdarg.h"\ + "..\..\..\pjlib\include\pj\compat\string.h"\ + "..\..\..\pjlib\include\pj\config.h"\ + "..\..\..\pjlib\include\pj\config_site.h"\ + "..\..\..\pjlib\include\pj\config_site_sample.h"\ + "..\..\..\pjlib\include\pj\ctype.h"\ + "..\..\..\pjlib\include\pj\errno.h"\ + "..\..\..\pjlib\include\pj\except.h"\ + "..\..\..\pjlib\include\pj\fifobuf.h"\ + "..\..\..\pjlib\include\pj\file_access.h"\ + "..\..\..\pjlib\include\pj\file_io.h"\ + "..\..\..\pjlib\include\pj\guid.h"\ + "..\..\..\pjlib\include\pj\hash.h"\ + "..\..\..\pjlib\include\pj\ioqueue.h"\ + "..\..\..\pjlib\include\pj\ip_helper.h"\ + "..\..\..\pjlib\include\pj\list.h"\ + "..\..\..\pjlib\include\pj\list_i.h"\ + "..\..\..\pjlib\include\pj\lock.h"\ + "..\..\..\pjlib\include\pj\log.h"\ + "..\..\..\pjlib\include\pj\os.h"\ + "..\..\..\pjlib\include\pj\pool.h"\ + "..\..\..\pjlib\include\pj\pool_alt.h"\ + "..\..\..\pjlib\include\pj\pool_buf.h"\ + "..\..\..\pjlib\include\pj\pool_i.h"\ + "..\..\..\pjlib\include\pj\rand.h"\ + "..\..\..\pjlib\include\pj\rbtree.h"\ + "..\..\..\pjlib\include\pj\sock.h"\ + "..\..\..\pjlib\include\pj\sock_select.h"\ + "..\..\..\pjlib\include\pj\string.h"\ + "..\..\..\pjlib\include\pj\string_i.h"\ + "..\..\..\pjlib\include\pj\timer.h"\ + "..\..\..\pjlib\include\pj\types.h"\ + "..\..\..\pjlib\include\pj\unicode.h"\ + "..\..\..\pjlib\include\pjlib.h"\ + "..\..\include\pjsip-simple\errno.h"\ + "..\..\include\pjsip-simple\pidf.h"\ + "..\..\include\pjsip-simple\rpid.h"\ + "..\..\include\pjsip-simple\types.h"\ + "..\..\include\pjsip\sip_autoconf.h"\ + "..\..\include\pjsip\sip_config.h"\ + "..\..\include\pjsip\sip_errno.h"\ + "..\..\include\pjsip\sip_types.h"\ + + +!ELSEIF "$(CFG)" == "pjsip_simple_wince - Win32 (WCE ARMV4) Release" + +DEP_CPP_RPID_=\ + "..\..\..\pjlib-util\include\pjlib-util\xml.h"\ + "..\..\..\pjlib\include\pj\addr_resolv.h"\ + "..\..\..\pjlib\include\pj\array.h"\ + "..\..\..\pjlib\include\pj\assert.h"\ + "..\..\..\pjlib\include\pj\compat\assert.h"\ + "..\..\..\pjlib\include\pj\compat\cc_armcc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_codew.h"\ + "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_gcce.h"\ + "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_mwcc.h"\ + "..\..\..\pjlib\include\pj\compat\ctype.h"\ + "..\..\..\pjlib\include\pj\compat\errno.h"\ + "..\..\..\pjlib\include\pj\compat\high_precision.h"\ + "..\..\..\pjlib\include\pj\compat\m_auto.h"\ + "..\..\..\pjlib\include\pj\compat\os_auto.h"\ + "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ + "..\..\..\pjlib\include\pj\compat\os_linux.h"\ + "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ + "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ + "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ + "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ + "..\..\..\pjlib\include\pj\compat\os_symbian.h"\ + "..\..\..\pjlib\include\pj\compat\os_win32.h"\ + "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ + "..\..\..\pjlib\include\pj\compat\setjmp.h"\ + "..\..\..\pjlib\include\pj\compat\size_t.h"\ + "..\..\..\pjlib\include\pj\compat\stdarg.h"\ + "..\..\..\pjlib\include\pj\compat\string.h"\ + "..\..\..\pjlib\include\pj\config.h"\ + "..\..\..\pjlib\include\pj\config_site.h"\ + "..\..\..\pjlib\include\pj\config_site_sample.h"\ + "..\..\..\pjlib\include\pj\ctype.h"\ + "..\..\..\pjlib\include\pj\errno.h"\ + "..\..\..\pjlib\include\pj\except.h"\ + "..\..\..\pjlib\include\pj\fifobuf.h"\ + "..\..\..\pjlib\include\pj\file_access.h"\ + "..\..\..\pjlib\include\pj\file_io.h"\ + "..\..\..\pjlib\include\pj\guid.h"\ + "..\..\..\pjlib\include\pj\hash.h"\ + "..\..\..\pjlib\include\pj\ioqueue.h"\ + "..\..\..\pjlib\include\pj\ip_helper.h"\ + "..\..\..\pjlib\include\pj\list.h"\ + "..\..\..\pjlib\include\pj\list_i.h"\ + "..\..\..\pjlib\include\pj\lock.h"\ + "..\..\..\pjlib\include\pj\log.h"\ + "..\..\..\pjlib\include\pj\os.h"\ + "..\..\..\pjlib\include\pj\pool.h"\ + "..\..\..\pjlib\include\pj\pool_alt.h"\ + "..\..\..\pjlib\include\pj\pool_buf.h"\ + "..\..\..\pjlib\include\pj\pool_i.h"\ + "..\..\..\pjlib\include\pj\rand.h"\ + "..\..\..\pjlib\include\pj\rbtree.h"\ + "..\..\..\pjlib\include\pj\sock.h"\ + "..\..\..\pjlib\include\pj\sock_select.h"\ + "..\..\..\pjlib\include\pj\string.h"\ + "..\..\..\pjlib\include\pj\string_i.h"\ + "..\..\..\pjlib\include\pj\timer.h"\ + "..\..\..\pjlib\include\pj\types.h"\ + "..\..\..\pjlib\include\pj\unicode.h"\ + "..\..\..\pjlib\include\pjlib.h"\ + "..\..\include\pjsip-simple\errno.h"\ + "..\..\include\pjsip-simple\pidf.h"\ + "..\..\include\pjsip-simple\rpid.h"\ + "..\..\include\pjsip-simple\types.h"\ + "..\..\include\pjsip\sip_autoconf.h"\ + "..\..\include\pjsip\sip_config.h"\ + "..\..\include\pjsip\sip_errno.h"\ + "..\..\include\pjsip\sip_types.h"\ + + +!ELSEIF "$(CFG)" == "pjsip_simple_wince - Win32 (WCE ARMV4) Debug" + +DEP_CPP_RPID_=\ + "..\..\..\pjlib-util\include\pjlib-util\xml.h"\ + "..\..\..\pjlib\include\pj\addr_resolv.h"\ + "..\..\..\pjlib\include\pj\array.h"\ + "..\..\..\pjlib\include\pj\assert.h"\ + "..\..\..\pjlib\include\pj\compat\assert.h"\ + "..\..\..\pjlib\include\pj\compat\cc_armcc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_codew.h"\ + "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_gcce.h"\ + "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_mwcc.h"\ + "..\..\..\pjlib\include\pj\compat\ctype.h"\ + "..\..\..\pjlib\include\pj\compat\errno.h"\ + "..\..\..\pjlib\include\pj\compat\high_precision.h"\ + "..\..\..\pjlib\include\pj\compat\m_auto.h"\ + "..\..\..\pjlib\include\pj\compat\os_auto.h"\ + "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ + "..\..\..\pjlib\include\pj\compat\os_linux.h"\ + "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ + "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ + "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ + "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ + "..\..\..\pjlib\include\pj\compat\os_symbian.h"\ + "..\..\..\pjlib\include\pj\compat\os_win32.h"\ + "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ + "..\..\..\pjlib\include\pj\compat\setjmp.h"\ + "..\..\..\pjlib\include\pj\compat\size_t.h"\ + "..\..\..\pjlib\include\pj\compat\stdarg.h"\ + "..\..\..\pjlib\include\pj\compat\string.h"\ + "..\..\..\pjlib\include\pj\config.h"\ + "..\..\..\pjlib\include\pj\config_site.h"\ + "..\..\..\pjlib\include\pj\config_site_sample.h"\ + "..\..\..\pjlib\include\pj\ctype.h"\ + "..\..\..\pjlib\include\pj\errno.h"\ + "..\..\..\pjlib\include\pj\except.h"\ + "..\..\..\pjlib\include\pj\fifobuf.h"\ + "..\..\..\pjlib\include\pj\file_access.h"\ + "..\..\..\pjlib\include\pj\file_io.h"\ + "..\..\..\pjlib\include\pj\guid.h"\ + "..\..\..\pjlib\include\pj\hash.h"\ + "..\..\..\pjlib\include\pj\ioqueue.h"\ + "..\..\..\pjlib\include\pj\ip_helper.h"\ + "..\..\..\pjlib\include\pj\list.h"\ + "..\..\..\pjlib\include\pj\list_i.h"\ + "..\..\..\pjlib\include\pj\lock.h"\ + "..\..\..\pjlib\include\pj\log.h"\ + "..\..\..\pjlib\include\pj\os.h"\ + "..\..\..\pjlib\include\pj\pool.h"\ + "..\..\..\pjlib\include\pj\pool_alt.h"\ + "..\..\..\pjlib\include\pj\pool_buf.h"\ + "..\..\..\pjlib\include\pj\pool_i.h"\ + "..\..\..\pjlib\include\pj\rand.h"\ + "..\..\..\pjlib\include\pj\rbtree.h"\ + "..\..\..\pjlib\include\pj\sock.h"\ + "..\..\..\pjlib\include\pj\sock_select.h"\ + "..\..\..\pjlib\include\pj\string.h"\ + "..\..\..\pjlib\include\pj\string_i.h"\ + "..\..\..\pjlib\include\pj\timer.h"\ + "..\..\..\pjlib\include\pj\types.h"\ + "..\..\..\pjlib\include\pj\unicode.h"\ + "..\..\..\pjlib\include\pjlib.h"\ + "..\..\include\pjsip-simple\errno.h"\ + "..\..\include\pjsip-simple\pidf.h"\ + "..\..\include\pjsip-simple\rpid.h"\ + "..\..\include\pjsip-simple\types.h"\ + "..\..\include\pjsip\sip_autoconf.h"\ + "..\..\include\pjsip\sip_config.h"\ + "..\..\include\pjsip\sip_errno.h"\ + "..\..\include\pjsip\sip_types.h"\ + + +!ELSEIF "$(CFG)" == "pjsip_simple_wince - Win32 (WCE ARMV4T) Release" + +DEP_CPP_RPID_=\ + "..\..\..\pjlib-util\include\pjlib-util\xml.h"\ + "..\..\..\pjlib\include\pj\addr_resolv.h"\ + "..\..\..\pjlib\include\pj\array.h"\ + "..\..\..\pjlib\include\pj\assert.h"\ + "..\..\..\pjlib\include\pj\compat\assert.h"\ + "..\..\..\pjlib\include\pj\compat\cc_armcc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_codew.h"\ + "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_gcce.h"\ + "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_mwcc.h"\ + "..\..\..\pjlib\include\pj\compat\ctype.h"\ + "..\..\..\pjlib\include\pj\compat\errno.h"\ + "..\..\..\pjlib\include\pj\compat\high_precision.h"\ + "..\..\..\pjlib\include\pj\compat\m_auto.h"\ + "..\..\..\pjlib\include\pj\compat\os_auto.h"\ + "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ + "..\..\..\pjlib\include\pj\compat\os_linux.h"\ + "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ + "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ + "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ + "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ + "..\..\..\pjlib\include\pj\compat\os_symbian.h"\ + "..\..\..\pjlib\include\pj\compat\os_win32.h"\ + "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ + "..\..\..\pjlib\include\pj\compat\setjmp.h"\ + "..\..\..\pjlib\include\pj\compat\size_t.h"\ + "..\..\..\pjlib\include\pj\compat\stdarg.h"\ + "..\..\..\pjlib\include\pj\compat\string.h"\ + "..\..\..\pjlib\include\pj\config.h"\ + "..\..\..\pjlib\include\pj\config_site.h"\ + "..\..\..\pjlib\include\pj\config_site_sample.h"\ + "..\..\..\pjlib\include\pj\ctype.h"\ + "..\..\..\pjlib\include\pj\errno.h"\ + "..\..\..\pjlib\include\pj\except.h"\ + "..\..\..\pjlib\include\pj\fifobuf.h"\ + "..\..\..\pjlib\include\pj\file_access.h"\ + "..\..\..\pjlib\include\pj\file_io.h"\ + "..\..\..\pjlib\include\pj\guid.h"\ + "..\..\..\pjlib\include\pj\hash.h"\ + "..\..\..\pjlib\include\pj\ioqueue.h"\ + "..\..\..\pjlib\include\pj\ip_helper.h"\ + "..\..\..\pjlib\include\pj\list.h"\ + "..\..\..\pjlib\include\pj\list_i.h"\ + "..\..\..\pjlib\include\pj\lock.h"\ + "..\..\..\pjlib\include\pj\log.h"\ + "..\..\..\pjlib\include\pj\os.h"\ + "..\..\..\pjlib\include\pj\pool.h"\ + "..\..\..\pjlib\include\pj\pool_alt.h"\ + "..\..\..\pjlib\include\pj\pool_buf.h"\ + "..\..\..\pjlib\include\pj\pool_i.h"\ + "..\..\..\pjlib\include\pj\rand.h"\ + "..\..\..\pjlib\include\pj\rbtree.h"\ + "..\..\..\pjlib\include\pj\sock.h"\ + "..\..\..\pjlib\include\pj\sock_select.h"\ + "..\..\..\pjlib\include\pj\string.h"\ + "..\..\..\pjlib\include\pj\string_i.h"\ + "..\..\..\pjlib\include\pj\timer.h"\ + "..\..\..\pjlib\include\pj\types.h"\ + "..\..\..\pjlib\include\pj\unicode.h"\ + "..\..\..\pjlib\include\pjlib.h"\ + "..\..\include\pjsip-simple\errno.h"\ + "..\..\include\pjsip-simple\pidf.h"\ + "..\..\include\pjsip-simple\rpid.h"\ + "..\..\include\pjsip-simple\types.h"\ + "..\..\include\pjsip\sip_autoconf.h"\ + "..\..\include\pjsip\sip_config.h"\ + "..\..\include\pjsip\sip_errno.h"\ + "..\..\include\pjsip\sip_types.h"\ + + +!ELSEIF "$(CFG)" == "pjsip_simple_wince - Win32 (WCE ARMV4T) Debug" + +DEP_CPP_RPID_=\ + "..\..\..\pjlib-util\include\pjlib-util\xml.h"\ + "..\..\..\pjlib\include\pj\addr_resolv.h"\ + "..\..\..\pjlib\include\pj\array.h"\ + "..\..\..\pjlib\include\pj\assert.h"\ + "..\..\..\pjlib\include\pj\compat\assert.h"\ + "..\..\..\pjlib\include\pj\compat\cc_armcc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_codew.h"\ + "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_gcce.h"\ + "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_mwcc.h"\ + "..\..\..\pjlib\include\pj\compat\ctype.h"\ + "..\..\..\pjlib\include\pj\compat\errno.h"\ + "..\..\..\pjlib\include\pj\compat\high_precision.h"\ + "..\..\..\pjlib\include\pj\compat\m_auto.h"\ + "..\..\..\pjlib\include\pj\compat\os_auto.h"\ + "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ + "..\..\..\pjlib\include\pj\compat\os_linux.h"\ + "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ + "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ + "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ + "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ + "..\..\..\pjlib\include\pj\compat\os_symbian.h"\ + "..\..\..\pjlib\include\pj\compat\os_win32.h"\ + "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ + "..\..\..\pjlib\include\pj\compat\setjmp.h"\ + "..\..\..\pjlib\include\pj\compat\size_t.h"\ + "..\..\..\pjlib\include\pj\compat\stdarg.h"\ + "..\..\..\pjlib\include\pj\compat\string.h"\ + "..\..\..\pjlib\include\pj\config.h"\ + "..\..\..\pjlib\include\pj\config_site.h"\ + "..\..\..\pjlib\include\pj\config_site_sample.h"\ + "..\..\..\pjlib\include\pj\ctype.h"\ + "..\..\..\pjlib\include\pj\errno.h"\ + "..\..\..\pjlib\include\pj\except.h"\ + "..\..\..\pjlib\include\pj\fifobuf.h"\ + "..\..\..\pjlib\include\pj\file_access.h"\ + "..\..\..\pjlib\include\pj\file_io.h"\ + "..\..\..\pjlib\include\pj\guid.h"\ + "..\..\..\pjlib\include\pj\hash.h"\ + "..\..\..\pjlib\include\pj\ioqueue.h"\ + "..\..\..\pjlib\include\pj\ip_helper.h"\ + "..\..\..\pjlib\include\pj\list.h"\ + "..\..\..\pjlib\include\pj\list_i.h"\ + "..\..\..\pjlib\include\pj\lock.h"\ + "..\..\..\pjlib\include\pj\log.h"\ + "..\..\..\pjlib\include\pj\os.h"\ + "..\..\..\pjlib\include\pj\pool.h"\ + "..\..\..\pjlib\include\pj\pool_alt.h"\ + "..\..\..\pjlib\include\pj\pool_buf.h"\ + "..\..\..\pjlib\include\pj\pool_i.h"\ + "..\..\..\pjlib\include\pj\rand.h"\ + "..\..\..\pjlib\include\pj\rbtree.h"\ + "..\..\..\pjlib\include\pj\sock.h"\ + "..\..\..\pjlib\include\pj\sock_select.h"\ + "..\..\..\pjlib\include\pj\string.h"\ + "..\..\..\pjlib\include\pj\string_i.h"\ + "..\..\..\pjlib\include\pj\timer.h"\ + "..\..\..\pjlib\include\pj\types.h"\ + "..\..\..\pjlib\include\pj\unicode.h"\ + "..\..\..\pjlib\include\pjlib.h"\ + "..\..\include\pjsip-simple\errno.h"\ + "..\..\include\pjsip-simple\pidf.h"\ + "..\..\include\pjsip-simple\rpid.h"\ + "..\..\include\pjsip-simple\types.h"\ + "..\..\include\pjsip\sip_autoconf.h"\ + "..\..\include\pjsip\sip_config.h"\ + "..\..\include\pjsip\sip_errno.h"\ + "..\..\include\pjsip\sip_types.h"\ + + +!ELSEIF "$(CFG)" == "pjsip_simple_wince - Win32 (WCE x86) Release" + +DEP_CPP_RPID_=\ + "..\..\..\pjlib-util\include\pjlib-util\xml.h"\ + "..\..\..\pjlib\include\pj\addr_resolv.h"\ + "..\..\..\pjlib\include\pj\array.h"\ + "..\..\..\pjlib\include\pj\assert.h"\ + "..\..\..\pjlib\include\pj\compat\assert.h"\ + "..\..\..\pjlib\include\pj\compat\cc_armcc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_codew.h"\ + "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_gcce.h"\ + "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_mwcc.h"\ + "..\..\..\pjlib\include\pj\compat\ctype.h"\ + "..\..\..\pjlib\include\pj\compat\errno.h"\ + "..\..\..\pjlib\include\pj\compat\high_precision.h"\ + "..\..\..\pjlib\include\pj\compat\m_auto.h"\ + "..\..\..\pjlib\include\pj\compat\os_auto.h"\ + "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ + "..\..\..\pjlib\include\pj\compat\os_linux.h"\ + "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ + "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ + "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ + "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ + "..\..\..\pjlib\include\pj\compat\os_symbian.h"\ + "..\..\..\pjlib\include\pj\compat\os_win32.h"\ + "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ + "..\..\..\pjlib\include\pj\compat\setjmp.h"\ + "..\..\..\pjlib\include\pj\compat\size_t.h"\ + "..\..\..\pjlib\include\pj\compat\stdarg.h"\ + "..\..\..\pjlib\include\pj\compat\string.h"\ + "..\..\..\pjlib\include\pj\config.h"\ + "..\..\..\pjlib\include\pj\config_site.h"\ + "..\..\..\pjlib\include\pj\config_site_sample.h"\ + "..\..\..\pjlib\include\pj\ctype.h"\ + "..\..\..\pjlib\include\pj\errno.h"\ + "..\..\..\pjlib\include\pj\except.h"\ + "..\..\..\pjlib\include\pj\fifobuf.h"\ + "..\..\..\pjlib\include\pj\file_access.h"\ + "..\..\..\pjlib\include\pj\file_io.h"\ + "..\..\..\pjlib\include\pj\guid.h"\ + "..\..\..\pjlib\include\pj\hash.h"\ + "..\..\..\pjlib\include\pj\ioqueue.h"\ + "..\..\..\pjlib\include\pj\ip_helper.h"\ + "..\..\..\pjlib\include\pj\list.h"\ + "..\..\..\pjlib\include\pj\list_i.h"\ + "..\..\..\pjlib\include\pj\lock.h"\ + "..\..\..\pjlib\include\pj\log.h"\ + "..\..\..\pjlib\include\pj\os.h"\ + "..\..\..\pjlib\include\pj\pool.h"\ + "..\..\..\pjlib\include\pj\pool_alt.h"\ + "..\..\..\pjlib\include\pj\pool_buf.h"\ + "..\..\..\pjlib\include\pj\pool_i.h"\ + "..\..\..\pjlib\include\pj\rand.h"\ + "..\..\..\pjlib\include\pj\rbtree.h"\ + "..\..\..\pjlib\include\pj\sock.h"\ + "..\..\..\pjlib\include\pj\sock_select.h"\ + "..\..\..\pjlib\include\pj\string.h"\ + "..\..\..\pjlib\include\pj\string_i.h"\ + "..\..\..\pjlib\include\pj\timer.h"\ + "..\..\..\pjlib\include\pj\types.h"\ + "..\..\..\pjlib\include\pj\unicode.h"\ + "..\..\..\pjlib\include\pjlib.h"\ + "..\..\include\pjsip-simple\errno.h"\ + "..\..\include\pjsip-simple\pidf.h"\ + "..\..\include\pjsip-simple\rpid.h"\ + "..\..\include\pjsip-simple\types.h"\ + "..\..\include\pjsip\sip_autoconf.h"\ + "..\..\include\pjsip\sip_config.h"\ + "..\..\include\pjsip\sip_errno.h"\ + "..\..\include\pjsip\sip_types.h"\ + + +!ELSEIF "$(CFG)" == "pjsip_simple_wince - Win32 (WCE x86) Debug" + +DEP_CPP_RPID_=\ + "..\..\..\pjlib-util\include\pjlib-util\xml.h"\ + "..\..\..\pjlib\include\pj\addr_resolv.h"\ + "..\..\..\pjlib\include\pj\array.h"\ + "..\..\..\pjlib\include\pj\assert.h"\ + "..\..\..\pjlib\include\pj\compat\assert.h"\ + "..\..\..\pjlib\include\pj\compat\cc_armcc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_codew.h"\ + "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_gcce.h"\ + "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_mwcc.h"\ + "..\..\..\pjlib\include\pj\compat\ctype.h"\ + "..\..\..\pjlib\include\pj\compat\errno.h"\ + "..\..\..\pjlib\include\pj\compat\high_precision.h"\ + "..\..\..\pjlib\include\pj\compat\m_auto.h"\ + "..\..\..\pjlib\include\pj\compat\os_auto.h"\ + "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ + "..\..\..\pjlib\include\pj\compat\os_linux.h"\ + "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ + "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ + "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ + "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ + "..\..\..\pjlib\include\pj\compat\os_symbian.h"\ + "..\..\..\pjlib\include\pj\compat\os_win32.h"\ + "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ + "..\..\..\pjlib\include\pj\compat\setjmp.h"\ + "..\..\..\pjlib\include\pj\compat\size_t.h"\ + "..\..\..\pjlib\include\pj\compat\stdarg.h"\ + "..\..\..\pjlib\include\pj\compat\string.h"\ + "..\..\..\pjlib\include\pj\config.h"\ + "..\..\..\pjlib\include\pj\config_site.h"\ + "..\..\..\pjlib\include\pj\config_site_sample.h"\ + "..\..\..\pjlib\include\pj\ctype.h"\ + "..\..\..\pjlib\include\pj\errno.h"\ + "..\..\..\pjlib\include\pj\except.h"\ + "..\..\..\pjlib\include\pj\fifobuf.h"\ + "..\..\..\pjlib\include\pj\file_access.h"\ + "..\..\..\pjlib\include\pj\file_io.h"\ + "..\..\..\pjlib\include\pj\guid.h"\ + "..\..\..\pjlib\include\pj\hash.h"\ + "..\..\..\pjlib\include\pj\ioqueue.h"\ + "..\..\..\pjlib\include\pj\ip_helper.h"\ + "..\..\..\pjlib\include\pj\list.h"\ + "..\..\..\pjlib\include\pj\list_i.h"\ + "..\..\..\pjlib\include\pj\lock.h"\ + "..\..\..\pjlib\include\pj\log.h"\ + "..\..\..\pjlib\include\pj\os.h"\ + "..\..\..\pjlib\include\pj\pool.h"\ + "..\..\..\pjlib\include\pj\pool_alt.h"\ + "..\..\..\pjlib\include\pj\pool_buf.h"\ + "..\..\..\pjlib\include\pj\pool_i.h"\ + "..\..\..\pjlib\include\pj\rand.h"\ + "..\..\..\pjlib\include\pj\rbtree.h"\ + "..\..\..\pjlib\include\pj\sock.h"\ + "..\..\..\pjlib\include\pj\sock_select.h"\ + "..\..\..\pjlib\include\pj\string.h"\ + "..\..\..\pjlib\include\pj\string_i.h"\ + "..\..\..\pjlib\include\pj\timer.h"\ + "..\..\..\pjlib\include\pj\types.h"\ + "..\..\..\pjlib\include\pj\unicode.h"\ + "..\..\..\pjlib\include\pjlib.h"\ + "..\..\include\pjsip-simple\errno.h"\ + "..\..\include\pjsip-simple\pidf.h"\ + "..\..\include\pjsip-simple\rpid.h"\ + "..\..\include\pjsip-simple\types.h"\ + "..\..\include\pjsip\sip_autoconf.h"\ + "..\..\include\pjsip\sip_config.h"\ + "..\..\include\pjsip\sip_errno.h"\ + "..\..\include\pjsip\sip_types.h"\ + + !ENDIF # End Source File @@ -5226,8 +6064,12 @@ DEP_CPP_XPIDF=\ "..\..\..\pjlib\include\pj\array.h"\ "..\..\..\pjlib\include\pj\assert.h"\ "..\..\..\pjlib\include\pj\compat\assert.h"\ + "..\..\..\pjlib\include\pj\compat\cc_armcc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_codew.h"\ "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_gcce.h"\ "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_mwcc.h"\ "..\..\..\pjlib\include\pj\compat\ctype.h"\ "..\..\..\pjlib\include\pj\compat\errno.h"\ "..\..\..\pjlib\include\pj\compat\high_precision.h"\ @@ -5239,10 +6081,12 @@ DEP_CPP_XPIDF=\ "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ + "..\..\..\pjlib\include\pj\compat\os_symbian.h"\ "..\..\..\pjlib\include\pj\compat\os_win32.h"\ "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ "..\..\..\pjlib\include\pj\compat\setjmp.h"\ "..\..\..\pjlib\include\pj\compat\size_t.h"\ + "..\..\..\pjlib\include\pj\compat\stdarg.h"\ "..\..\..\pjlib\include\pj\compat\string.h"\ "..\..\..\pjlib\include\pj\config.h"\ "..\..\..\pjlib\include\pj\config_site.h"\ @@ -5256,6 +6100,7 @@ DEP_CPP_XPIDF=\ "..\..\..\pjlib\include\pj\guid.h"\ "..\..\..\pjlib\include\pj\hash.h"\ "..\..\..\pjlib\include\pj\ioqueue.h"\ + "..\..\..\pjlib\include\pj\ip_helper.h"\ "..\..\..\pjlib\include\pj\list.h"\ "..\..\..\pjlib\include\pj\list_i.h"\ "..\..\..\pjlib\include\pj\lock.h"\ @@ -5263,6 +6108,7 @@ DEP_CPP_XPIDF=\ "..\..\..\pjlib\include\pj\os.h"\ "..\..\..\pjlib\include\pj\pool.h"\ "..\..\..\pjlib\include\pj\pool_alt.h"\ + "..\..\..\pjlib\include\pj\pool_buf.h"\ "..\..\..\pjlib\include\pj\pool_i.h"\ "..\..\..\pjlib\include\pj\rand.h"\ "..\..\..\pjlib\include\pj\rbtree.h"\ @@ -5276,6 +6122,7 @@ DEP_CPP_XPIDF=\ "..\..\..\pjlib\include\pjlib.h"\ "..\..\include\pjsip-simple\types.h"\ "..\..\include\pjsip-simple\xpidf.h"\ + "..\..\include\pjsip\sip_autoconf.h"\ "..\..\include\pjsip\sip_config.h"\ "..\..\include\pjsip\sip_types.h"\ @@ -5673,6 +6520,10 @@ SOURCE="..\..\include\pjsip-simple\publish.h" # End Source File # Begin Source File +SOURCE="..\..\include\pjsip-simple\rpid.h" +# End Source File +# Begin Source File + SOURCE="..\..\include\pjsip-simple\types.h" # End Source File # Begin Source File diff --git a/pjsip/include/pjsip-simple/errno.h b/pjsip/include/pjsip-simple/errno.h index ab3d4ec3b..7097bc620 100644 --- a/pjsip/include/pjsip-simple/errno.h +++ b/pjsip/include/pjsip-simple/errno.h @@ -77,6 +77,11 @@ PJ_BEGIN_DECL * Bad XPIDF Message */ #define PJSIP_SIMPLE_EBADXPIDF (PJSIP_SIMPLE_ERRNO_START+25) /*270025*/ +/** + * @hideinitializer + * Bad RPID Message + */ +#define PJSIP_SIMPLE_EBADRPID (PJSIP_SIMPLE_ERRNO_START+26) /*270026*/ /************************************************************ diff --git a/pjsip/include/pjsip-simple/presence.h b/pjsip/include/pjsip-simple/presence.h index fb505febd..e52ec9cd1 100644 --- a/pjsip/include/pjsip-simple/presence.h +++ b/pjsip/include/pjsip-simple/presence.h @@ -26,6 +26,7 @@ #include #include #include +#include PJ_BEGIN_DECL @@ -73,6 +74,7 @@ PJ_DECL(pjsip_module*) pjsip_pres_instance(void); */ #define PJSIP_PRES_STATUS_MAX_INFO 8 + /** * This structure describes presence status of a presentity. */ @@ -82,6 +84,8 @@ struct pjsip_pres_status struct { pj_bool_t basic_open; /**< Basic status/availability. */ + pjrpid_element rpid; /**< Optional RPID info. */ + pj_str_t id; /**< Tuple id. */ pj_str_t contact; /**< Optional contact address. */ diff --git a/pjsip/include/pjsip-simple/rpid.h b/pjsip/include/pjsip-simple/rpid.h new file mode 100644 index 000000000..2f090a934 --- /dev/null +++ b/pjsip/include/pjsip-simple/rpid.h @@ -0,0 +1,148 @@ +/* $Id$ */ +/* + * Copyright (C) 2003-2007 Benny Prijono + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ +#ifndef __PJSIP_SIMPLE_RPID_H__ +#define __PJSIP_SIMPLE_RPID_H__ + +/** + * @file rpid.h + * @brief RPID: Rich Presence Extensions to the PIDF (RFC 4480) + */ +#include +#include + +PJ_BEGIN_DECL + + +/** + * @defgroup PJSIP_SIMPLE_RPID RPID/Rich Presence Extensions to PIDF (RFC 4480) + * @ingroup PJSIP_SIMPLE + * @brief RPID/Rich Presence Extensions to PIDF (RFC 4480) + * @{ + * + * This file provides tools for managing subset of RPID elements into + * PIDF document. + */ + +/** + * This enumeration describes subset of standard activities as + * described by RFC 4880, RPID: Rich Presence Extensions to the + * Presence Information Data Format (PIDF). + */ +typedef enum pjrpid_activity +{ + /** Activity is unknown. The activity would then be conceived + * in the "note" field. + */ + PJRPID_ACTIVITY_UNKNOWN, + + /** The person is away */ + PJRPID_ACTIVITY_AWAY, + + /** The person is busy */ + PJRPID_ACTIVITY_BUSY + +} pjrpid_activity; + + +/** + * This enumeration describes types of RPID element. + */ +typedef enum pjrpid_element_type +{ + /** RPID element */ + PJRPID_ELEMENT_TYPE_PERSON + +} pjrpid_element_type; + + +/** + * This structure describes person information in RPID document. + */ +typedef struct pjrpid_element +{ + /** Element type. */ + pjrpid_element_type type; + + /** Optional id to set on the element. */ + pj_str_t id; + + /** Activity type. */ + pjrpid_activity activity; + + /** Optional text describing the person/element. */ + pj_str_t note; + +} pjrpid_element; + + +/** + * Duplicate RPID element. + * + * @param pool Pool. + * @param dst Destination structure. + * @param src Source structure. + */ +PJ_DECL(void) pjrpid_element_dup(pj_pool_t *pool, pjrpid_element *dst, + const pjrpid_element *src); + + +/** + * Add RPID element information into existing PIDF document. This will also + * add the appropriate XML namespace attributes into the presence's XML + * node, if the attributes are not already present, and also a element + * to the first element of the PIDF document. + * + * @param pres The PIDF presence document. + * @param pool Pool. + * @param options Currently unused, and must be zero. + * @param elem RPID element information to be added into the PIDF + * document. + * + * @return PJ_SUCCESS on success. + */ +PJ_DECL(pj_status_t) pjrpid_add_element(pjpidf_pres *pres, + pj_pool_t *pool, + unsigned options, + const pjrpid_element *elem); + +/** + * Get RPID element information from PIDF document, if any. + * + * @param pres The PIDF document containing RPID elements. + * @param pool Pool to duplicate the information. + * @param elem Structure to receive the element information. + * + * @return PJ_SUCCESS if the document does contain RPID element + * and the information has been parsed successfully. + */ +PJ_DECL(pj_status_t) pjrpid_get_element(const pjpidf_pres *pres, + pj_pool_t *pool, + pjrpid_element *elem); + + +/** + * @} + */ + + +PJ_END_DECL + + +#endif /* __PJSIP_SIMPLE_RPID_H__ */ + diff --git a/pjsip/include/pjsua-lib/pjsua.h b/pjsip/include/pjsua-lib/pjsua.h index d6af018d3..ad89a0372 100644 --- a/pjsip/include/pjsua-lib/pjsua.h +++ b/pjsip/include/pjsua-lib/pjsua.h @@ -1917,6 +1917,16 @@ typedef struct pjsua_acc_info */ pj_bool_t online_status; + /** + * Presence online status text. + */ + pj_str_t online_status_text; + + /** + * Extended RPID online status information. + */ + pjrpid_element rpid; + /** * Buffer that is used internally to store the status text. */ @@ -2080,7 +2090,10 @@ PJ_DECL(pj_status_t) pjsua_acc_modify(pjsua_acc_id acc_id, /** * Modify account's presence status to be advertised to remote/presence * subscribers. This would trigger the sending of outgoing NOTIFY request - * if there are server side presence subscription for this account. + * if there are server side presence subscription for this account, and/or + * outgoing PUBLISH if presence publication is enabled for this account. + * + * @see pjsua_acc_set_online_status2() * * @param acc_id The account ID. * @param is_online True of false. @@ -2095,6 +2108,24 @@ PJ_DECL(pj_status_t) pjsua_acc_modify(pjsua_acc_id acc_id, PJ_DECL(pj_status_t) pjsua_acc_set_online_status(pjsua_acc_id acc_id, pj_bool_t is_online); +/** + * Modify account's presence status to be advertised to remote/presence + * subscribers. This would trigger the sending of outgoing NOTIFY request + * if there are server side presence subscription for this account, and/or + * outgoing PUBLISH if presence publication is enabled for this account. + * + * @see pjsua_acc_set_online_status() + * + * @param acc_id The account ID. + * @param is_online True of false. + * @param pr Extended information in subset of RPID format + * which allows setting custom presence text. + * + * @return PJ_SUCCESS on success, or the appropriate error code. + */ +PJ_DECL(pj_status_t) pjsua_acc_set_online_status2(pjsua_acc_id acc_id, + pj_bool_t is_online, + const pjrpid_element *pr); /** * Update registration or perform unregistration. If registration is @@ -2987,10 +3018,15 @@ typedef struct pjsua_buddy_info */ pj_bool_t monitor_pres; + /** + * Extended RPID information about the person. + */ + pjrpid_element rpid; + /** * Internal buffer. */ - char buf_[256]; + char buf_[512]; } pjsua_buddy_info; diff --git a/pjsip/include/pjsua-lib/pjsua_internal.h b/pjsip/include/pjsua-lib/pjsua_internal.h index ca9ea6584..de6be5d30 100644 --- a/pjsip/include/pjsua-lib/pjsua_internal.h +++ b/pjsip/include/pjsua-lib/pjsua_internal.h @@ -95,6 +95,7 @@ typedef struct pjsua_acc pjsip_cred_info cred[PJSUA_ACC_MAX_PROXIES]; /**< Complete creds. */ pj_bool_t online_status; /**< Our online status. */ + pjrpid_element rpid; /**< RPID element information. */ pjsua_srv_pres pres_srv_list; /**< Server subscription list. */ pjsip_publishc *publish_sess; /**< Client publication session. */ pj_bool_t publish_state; /**< Last published online status */ @@ -319,6 +320,11 @@ pj_status_t pjsua_pres_start(void); */ void pjsua_pres_refresh(void); +/* + * Update server subscription (e.g. when our online status has changed) + */ +void pjsua_pres_update_acc(int acc_id, pj_bool_t force); + /* * Shutdown presence. */ diff --git a/pjsip/src/pjsip-simple/errno.c b/pjsip/src/pjsip-simple/errno.c index c224b0dbf..4248fdaf7 100644 --- a/pjsip/src/pjsip-simple/errno.c +++ b/pjsip/src/pjsip-simple/errno.c @@ -43,6 +43,7 @@ static const struct { PJSIP_SIMPLE_EBADCONTENT, "Bad Content-Type for presence" }, { PJSIP_SIMPLE_EBADPIDF, "Bad PIDF content for presence" }, { PJSIP_SIMPLE_EBADXPIDF, "Bad XPIDF content for presence" }, + { PJSIP_SIMPLE_EBADRPID, "Invalid or bad RPID document"}, /* isComposing errors. */ { PJSIP_SIMPLE_EBADISCOMPOSE, "Bad isComposing indication/XML message" }, diff --git a/pjsip/src/pjsip-simple/presence.c b/pjsip/src/pjsip-simple/presence.c index 88aa8d66e..bb5dcd52a 100644 --- a/pjsip/src/pjsip-simple/presence.c +++ b/pjsip/src/pjsip-simple/presence.c @@ -390,6 +390,17 @@ PJ_DEF(pj_status_t) pjsip_pres_set_status( pjsip_evsub *sub, pj_strdup(pres->dlg->pool, &pres->status.info[i].contact, &status->info[i].contact); + + /* Duplicate */ + pres->status.info[i].rpid.activity = + status->info[i].rpid.activity; + pj_strdup(pres->dlg->pool, + &pres->status.info[i].rpid.id, + &status->info[i].rpid.id); + pj_strdup(pres->dlg->pool, + &pres->status.info[i].rpid.note, + &status->info[i].rpid.note); + } pres->status.info_cnt = status->info_cnt; diff --git a/pjsip/src/pjsip-simple/presence_body.c b/pjsip/src/pjsip-simple/presence_body.c index c57e427a4..9f085d5e1 100644 --- a/pjsip/src/pjsip-simple/presence_body.c +++ b/pjsip/src/pjsip-simple/presence_body.c @@ -101,6 +101,11 @@ PJ_DEF(pj_status_t) pjsip_pres_create_pidf( pj_pool_t *pool, status->info[i].basic_open); } + /* Create (RPID) */ + if (status->info_cnt) { + pjrpid_add_element(pidf, pool, 0, &status->info[0].rpid); + } + body = PJ_POOL_ZALLOC_T(pool, pjsip_msg_body); body->data = pidf; body->content_type.type = STR_APPLICATION; @@ -196,6 +201,9 @@ PJ_DEF(pj_status_t) pjsip_pres_parse_pidf( pjsip_rx_data *rdata, pres_status->info_cnt++; } + /* Parse (RPID) */ + pjrpid_get_element(pidf, pool, &pres_status->info[0].rpid); + return PJ_SUCCESS; } diff --git a/pjsip/src/pjsip-simple/rpid.c b/pjsip/src/pjsip-simple/rpid.c new file mode 100644 index 000000000..fde939ba3 --- /dev/null +++ b/pjsip/src/pjsip-simple/rpid.c @@ -0,0 +1,268 @@ +/* $Id$ */ +/* + * Copyright (C) 2003-2007 Benny Prijono + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ +#include +#include +#include +#include +#include + + +static const pj_str_t DM_NAME = {"xmlns:dm", 8}; +static const pj_str_t DM_VAL = {"urn:ietf:params:xml:ns:pidf:data-model", 38}; +static const pj_str_t RPID_NAME = {"xmlns:rpid", 10}; +static const pj_str_t RPID_VAL = {"urn:ietf:params:xml:ns:pidf:rpid", 32}; + +static const pj_str_t DM_NOTE = {"dm:note", 7}; +static const pj_str_t DM_PERSON = {"dm:person", 9}; +static const pj_str_t ID = {"id", 2}; +static const pj_str_t NOTE = {"note", 4}; +static const pj_str_t RPID_ACTIVITIES = {"rpid:activities", 15}; +static const pj_str_t RPID_AWAY = {"rpid:away", 9}; +static const pj_str_t RPID_BUSY = {"rpid:busy", 9}; +static const pj_str_t RPID_UNKNOWN = {"rpid:unknown", 12}; + + +/* Duplicate RPID element */ +PJ_DEF(void) pjrpid_element_dup(pj_pool_t *pool, pjrpid_element *dst, + const pjrpid_element *src) +{ + pj_memcpy(dst, src, sizeof(pjrpid_element)); + pj_strdup(pool, &dst->id, &src->id); + pj_strdup(pool, &dst->note, &src->note); +} + + +/* Update RPID namespaces. */ +static void update_namespaces(pjpidf_pres *pres, + pj_pool_t *pool) +{ + /* Check if namespace is already present. */ + if (pj_xml_find_attr(pres, &DM_NAME, NULL) != NULL) + return; + + pj_xml_add_attr(pres, pj_xml_attr_new(pool, &DM_NAME, &DM_VAL)); + pj_xml_add_attr(pres, pj_xml_attr_new(pool, &RPID_NAME, &RPID_VAL)); +} + + +/* Comparison function to find node name substring */ +static pj_bool_t substring_match(const pj_xml_node *node, + const char *part_name, + int part_len) +{ + pj_str_t end_name; + + if (part_len < 1) + part_len = pj_ansi_strlen(part_name); + + if (node->name.slen < part_len) + return PJ_FALSE; + + end_name.ptr = node->name.ptr + (node->name.slen - part_len); + end_name.slen = part_len; + + return pj_strnicmp2(&end_name, part_name, part_len)==0; +} + +/* Util to find child node with the specified substring */ +static pj_xml_node *find_node(const pj_xml_node *parent, + const char *part_name) +{ + const pj_xml_node *node = parent->node_head.next, + *head = (pj_xml_node*) &parent->node_head; + int part_len = pj_ansi_strlen(part_name); + + while (node != head) { + if (substring_match(node, part_name, part_len)) + return (pj_xml_node*) node; + + node = node->next; + } + + return NULL; +} + +/* + * Add RPID element into existing PIDF document. + */ +PJ_DEF(pj_status_t) pjrpid_add_element(pjpidf_pres *pres, + pj_pool_t *pool, + unsigned options, + const pjrpid_element *elem) +{ + pj_xml_node *nd_person, *nd_activities, *nd_activity, *nd_note; + pj_xml_attr *attr; + + PJ_ASSERT_RETURN(pres && pool && options==0 && elem, PJ_EINVAL); + + PJ_UNUSED_ARG(options); + + /* Check if we need to add RPID information into the PIDF document. */ + if (elem->id.slen==0 && + elem->activity==PJRPID_ACTIVITY_UNKNOWN && + elem->note.slen==0) + { + /* No RPID information to be added. */ + return PJ_SUCCESS; + } + + /* Add to */ + if (elem->note.slen != 0) { + pj_xml_node *nd_tuple; + + nd_tuple = find_node(pres, "tuple"); + + if (nd_tuple) { + nd_note = pj_xml_node_new(pool, &NOTE); + pj_strdup(pool, &nd_note->content, &elem->note); + pj_xml_add_node(nd_tuple, nd_note); + nd_note = NULL; + } + } + + /* Update namespace */ + update_namespaces(pres, pool); + + /* Add */ + nd_person = pj_xml_node_new(pool, &DM_PERSON); + if (elem->id.slen != 0) { + attr = pj_xml_attr_new(pool, &ID, &elem->id); + } else { + pj_str_t person_id; + pj_create_unique_string(pool, &person_id); + attr = pj_xml_attr_new(pool, &ID, &person_id); + } + pj_xml_add_attr(nd_person, attr); + pj_xml_add_node(pres, nd_person); + + /* Add */ + nd_activities = pj_xml_node_new(pool, &RPID_ACTIVITIES); + pj_xml_add_node(nd_person, nd_activities); + + /* Add the activity */ + switch (elem->activity) { + case PJRPID_ACTIVITY_AWAY: + nd_activity = pj_xml_node_new(pool, &RPID_AWAY); + break; + case PJRPID_ACTIVITY_BUSY: + nd_activity = pj_xml_node_new(pool, &RPID_BUSY); + break; + case PJRPID_ACTIVITY_UNKNOWN: + default: + nd_activity = pj_xml_node_new(pool, &RPID_UNKNOWN); + break; + } + pj_xml_add_node(nd_activities, nd_activity); + + /* Add custom text if required. */ + if (elem->note.slen != 0) { + nd_note = pj_xml_node_new(pool, &DM_NOTE); + pj_strdup(pool, &nd_note->content, &elem->note); + pj_xml_add_node(nd_person, nd_note); + } + + /* Done */ + return PJ_SUCCESS; +} + + +/* Get element from PIDF element */ +static pj_status_t get_tuple_note(const pjpidf_pres *pres, + pj_pool_t *pool, + pjrpid_element *elem) +{ + const pj_xml_node *nd_tuple, *nd_note; + + nd_tuple = find_node(pres, "tuple"); + if (!nd_tuple) + return PJSIP_SIMPLE_EBADRPID; + + nd_note = find_node(pres, "note"); + if (nd_note) { + pj_strdup(pool, &elem->note, &nd_note->content); + return PJ_SUCCESS; + } + + return PJSIP_SIMPLE_EBADRPID; +} + +/* + * Get RPID element from PIDF document, if any. + */ +PJ_DEF(pj_status_t) pjrpid_get_element(const pjpidf_pres *pres, + pj_pool_t *pool, + pjrpid_element *elem) +{ + const pj_xml_node *nd_person, *nd_activities, *nd_note = NULL; + const pj_xml_attr *attr; + + /* Reset */ + pj_bzero(elem, sizeof(*elem)); + elem->activity = PJRPID_ACTIVITY_UNKNOWN; + + /* Find */ + nd_person = find_node(pres, "person"); + if (!nd_person) { + /* not found, try to get from */ + return get_tuple_note(pres, pool, elem); + } + + /* Get element id attribute */ + attr = pj_xml_find_attr((pj_xml_node*)nd_person, &ID, NULL); + if (attr) + pj_strdup(pool, &elem->id, &attr->value); + + /* Get */ + nd_activities = find_node(nd_person, "activities"); + if (nd_activities) { + const pj_xml_node *nd_activity; + + /* Try to get from */ + nd_note = find_node(nd_activities, "note"); + + /* Get the activity */ + nd_activity = nd_activities->node_head.next; + if (nd_activity == nd_note) + nd_activity = nd_activity->next; + + if (nd_activity != (pj_xml_node*) &nd_activities->node_head) { + if (substring_match(nd_activity, "busy", -1)) + elem->activity = PJRPID_ACTIVITY_BUSY; + else if (substring_match(nd_activity, "away", -1)) + elem->activity = PJRPID_ACTIVITY_AWAY; + else + elem->activity = PJRPID_ACTIVITY_UNKNOWN; + + } + } + + /* If is not found, get from */ + if (nd_note == NULL) + nd_note = find_node(nd_person, "note"); + + if (nd_note) { + pj_strdup(pool, &elem->note, &nd_note->content); + } else { + get_tuple_note(pres, pool, elem); + } + + return PJ_SUCCESS; +} + + diff --git a/pjsip/src/pjsua-lib/pjsua_acc.c b/pjsip/src/pjsua-lib/pjsua_acc.c index b92e3e51c..854f8cb4b 100644 --- a/pjsip/src/pjsua-lib/pjsua_acc.c +++ b/pjsip/src/pjsua-lib/pjsua_acc.c @@ -430,7 +430,26 @@ PJ_DEF(pj_status_t) pjsua_acc_set_online_status( pjsua_acc_id acc_id, PJ_ASSERT_RETURN(pjsua_var.acc[acc_id].valid, PJ_EINVALIDOP); pjsua_var.acc[acc_id].online_status = is_online; - pjsua_pres_refresh(); + pj_bzero(&pjsua_var.acc[acc_id].rpid, sizeof(pjrpid_element)); + pjsua_pres_update_acc(acc_id, PJ_FALSE); + return PJ_SUCCESS; +} + + +/* + * Set online status with extended information + */ +PJ_DEF(pj_status_t) pjsua_acc_set_online_status2( pjsua_acc_id acc_id, + pj_bool_t is_online, + const pjrpid_element *pr) +{ + PJ_ASSERT_RETURN(acc_id>=0 && acc_id<(int)PJ_ARRAY_SIZE(pjsua_var.acc), + PJ_EINVAL); + PJ_ASSERT_RETURN(pjsua_var.acc[acc_id].valid, PJ_EINVALIDOP); + + pjsua_var.acc[acc_id].online_status = is_online; + pjrpid_element_dup(pjsua_var.pool, &pjsua_var.acc[acc_id].rpid, pr); + pjsua_pres_update_acc(acc_id, PJ_TRUE); return PJ_SUCCESS; } @@ -689,7 +708,14 @@ PJ_DEF(pj_status_t) pjsua_acc_get_info( pjsua_acc_id acc_id, info->acc_uri = acc_cfg->id; info->has_registration = (acc->cfg.reg_uri.slen > 0); info->online_status = acc->online_status; - + pj_memcpy(&info->rpid, &acc->rpid, sizeof(pjrpid_element)); + if (info->rpid.note.slen) + info->online_status_text = info->rpid.note; + else if (info->online_status) + info->online_status_text = pj_str("Online"); + else + info->online_status_text = pj_str("Offline"); + if (acc->reg_last_err) { info->status = (pjsip_status_code) acc->reg_last_err; pj_strerror(acc->reg_last_err, info->buf_, sizeof(info->buf_)); diff --git a/pjsip/src/pjsua-lib/pjsua_pres.c b/pjsip/src/pjsua-lib/pjsua_pres.c index d5316959e..b544af69b 100644 --- a/pjsip/src/pjsua-lib/pjsua_pres.c +++ b/pjsip/src/pjsua-lib/pjsua_pres.c @@ -113,7 +113,15 @@ PJ_DEF(pj_status_t) pjsua_buddy_get_info( pjsua_buddy_id buddy_id, info->status_text = pj_str("?"); } else if (pjsua_var.buddy[buddy_id].status.info[0].basic_open) { info->status = PJSUA_BUDDY_STATUS_ONLINE; - info->status_text = pj_str("Online"); + + /* copy RPID information */ + info->rpid = buddy->status.info[0].rpid; + + if (info->rpid.note.slen) + info->status_text = info->rpid.note; + else + info->status_text = pj_str("Online"); + } else { info->status = PJSUA_BUDDY_STATUS_OFFLINE; info->status_text = pj_str("Offline"); @@ -652,6 +660,9 @@ static pj_status_t send_publish(int acc_id, pj_bool_t active) pres_status.info_cnt = 1; pres_status.info[0].basic_open = acc->online_status; pres_status.info[0].id = acc->cfg.pidf_tuple_id; + /* .. including RPID information */ + pj_memcpy(&pres_status.info[0].rpid, &acc->rpid, + sizeof(pjrpid_element)); /* Be careful not to send PIDF with presence entity ID containing * "<" character. @@ -821,8 +832,8 @@ void pjsua_pres_delete_acc(int acc_id) } -/* Refresh subscription (e.g. when our online status has changed) */ -static void refresh_server_subscription(int acc_id) +/* Update server subscription (e.g. when our online status has changed) */ +void pjsua_pres_update_acc(int acc_id, pj_bool_t force) { pjsua_acc *acc = &pjsua_var.acc[acc_id]; pjsua_acc_config *acc_cfg = &pjsua_var.acc[acc_id].cfg; @@ -836,8 +847,12 @@ static void refresh_server_subscription(int acc_id) pjsip_tx_data *tdata; pjsip_pres_get_status(uapres->sub, &pres_status); - if (pres_status.info[0].basic_open != acc->online_status) { + if (force || pres_status.info[0].basic_open != acc->online_status) { + pres_status.info[0].basic_open = acc->online_status; + pj_memcpy(&pres_status.info[0].rpid, &acc->rpid, + sizeof(pjrpid_element)); + pjsip_pres_set_status(uapres->sub, &pres_status); if (pjsip_pres_current_notify(uapres->sub, &tdata)==PJ_SUCCESS) { @@ -855,7 +870,7 @@ static void refresh_server_subscription(int acc_id) * send the first PUBLISH. */ if (acc_cfg->publish_enabled && acc->publish_sess) { - if (acc->publish_state != acc->online_status) { + if (force || acc->publish_state != acc->online_status) { send_publish(acc_id, PJ_TRUE); } } @@ -1251,7 +1266,7 @@ void pjsua_pres_refresh() for (i=0; i