Changeset 1535


Ignore:
Timestamp:
Oct 31, 2007 10:54:53 AM (17 years ago)
Author:
bennylp
Message:

Ticket #406: New PJSUA API to update buddy's presence subscription

Location:
pjproject/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/build.symbian/pjsua_libU.def

    r1533 r1535  
    2626        pjsua_buddy_is_valid                     @ 25 NONAME 
    2727        pjsua_buddy_subscribe_pres               @ 26 NONAME 
    28         pjsua_call_answer                        @ 27 NONAME 
    29         pjsua_call_dial_dtmf                     @ 28 NONAME 
    30         pjsua_call_dump                          @ 29 NONAME 
    31         pjsua_call_get_conf_port                 @ 30 NONAME 
    32         pjsua_call_get_count                     @ 31 NONAME 
    33         pjsua_call_get_info                      @ 32 NONAME 
    34         pjsua_call_get_max_count                 @ 33 NONAME 
    35         pjsua_call_get_rem_nat_type              @ 34 NONAME 
    36         pjsua_call_get_user_data                 @ 35 NONAME 
    37         pjsua_call_hangup                        @ 36 NONAME 
    38         pjsua_call_hangup_all                    @ 37 NONAME 
    39         pjsua_call_has_media                     @ 38 NONAME 
    40         pjsua_call_is_active                     @ 39 NONAME 
    41         pjsua_call_make_call                     @ 40 NONAME 
    42         pjsua_call_reinvite                      @ 41 NONAME 
    43         pjsua_call_send_im                       @ 42 NONAME 
    44         pjsua_call_send_request                  @ 43 NONAME 
    45         pjsua_call_send_typing_ind               @ 44 NONAME 
    46         pjsua_call_set_hold                      @ 45 NONAME 
    47         pjsua_call_set_user_data                 @ 46 NONAME 
    48         pjsua_call_update                        @ 47 NONAME 
    49         pjsua_call_xfer                          @ 48 NONAME 
    50         pjsua_call_xfer_replaces                 @ 49 NONAME 
    51         pjsua_codec_get_param                    @ 50 NONAME 
    52         pjsua_codec_set_param                    @ 51 NONAME 
    53         pjsua_codec_set_priority                 @ 52 NONAME 
    54         pjsua_conf_add_port                      @ 53 NONAME 
    55         pjsua_conf_adjust_rx_level               @ 54 NONAME 
    56         pjsua_conf_adjust_tx_level               @ 55 NONAME 
    57         pjsua_conf_connect                       @ 56 NONAME 
    58         pjsua_conf_disconnect                    @ 57 NONAME 
    59         pjsua_conf_get_active_ports              @ 58 NONAME 
    60         pjsua_conf_get_max_ports                 @ 59 NONAME 
    61         pjsua_conf_get_port_info                 @ 60 NONAME 
    62         pjsua_conf_get_signal_level              @ 61 NONAME 
    63         pjsua_conf_remove_port                   @ 62 NONAME 
    64         pjsua_config_default                     @ 63 NONAME 
    65         pjsua_config_dup                         @ 64 NONAME 
    66         pjsua_create                             @ 65 NONAME 
    67         pjsua_destroy                            @ 66 NONAME 
    68         pjsua_detect_nat_type                    @ 67 NONAME 
    69         pjsua_dump                               @ 68 NONAME 
    70         pjsua_enum_accs                          @ 69 NONAME 
    71         pjsua_enum_buddies                       @ 70 NONAME 
    72         pjsua_enum_calls                         @ 71 NONAME 
    73         pjsua_enum_codecs                        @ 72 NONAME 
    74         pjsua_enum_conf_ports                    @ 73 NONAME 
    75         pjsua_enum_snd_devs                      @ 74 NONAME 
    76         pjsua_enum_transports                    @ 75 NONAME 
    77         pjsua_get_buddy_count                    @ 76 NONAME 
    78         pjsua_get_ec_tail                        @ 77 NONAME 
    79         pjsua_get_nat_type                       @ 78 NONAME 
    80         pjsua_get_pjmedia_endpt                  @ 79 NONAME 
    81         pjsua_get_pjsip_endpt                    @ 80 NONAME 
    82         pjsua_get_pool_factory                   @ 81 NONAME 
    83         pjsua_get_snd_dev                        @ 82 NONAME 
    84         pjsua_get_var                            @ 83 NONAME 
    85         pjsua_handle_events                      @ 84 NONAME 
    86         pjsua_im_send                            @ 85 NONAME 
    87         pjsua_im_typing                          @ 86 NONAME 
    88         pjsua_init                               @ 87 NONAME 
    89         pjsua_logging_config_default             @ 88 NONAME 
    90         pjsua_logging_config_dup                 @ 89 NONAME 
    91         pjsua_media_config_default               @ 90 NONAME 
    92         pjsua_media_transports_create            @ 91 NONAME 
    93         pjsua_msg_data_init                      @ 92 NONAME 
    94         pjsua_perror                             @ 93 NONAME 
    95         pjsua_player_create                      @ 94 NONAME 
    96         pjsua_player_destroy                     @ 95 NONAME 
    97         pjsua_player_get_conf_port               @ 96 NONAME 
    98         pjsua_player_get_port                    @ 97 NONAME 
    99         pjsua_player_set_pos                     @ 98 NONAME 
    100         pjsua_playlist_create                    @ 99 NONAME 
    101         pjsua_pool_create                        @ 100 NONAME 
    102         pjsua_pres_dump                          @ 101 NONAME 
    103         pjsua_reconfigure_logging                @ 102 NONAME 
    104         pjsua_recorder_create                    @ 103 NONAME 
    105         pjsua_recorder_destroy                   @ 104 NONAME 
    106         pjsua_recorder_get_conf_port             @ 105 NONAME 
    107         pjsua_recorder_get_port                  @ 106 NONAME 
    108         pjsua_set_ec                             @ 107 NONAME 
    109         pjsua_set_no_snd_dev                     @ 108 NONAME 
    110         pjsua_set_null_snd_dev                   @ 109 NONAME 
    111         pjsua_set_snd_dev                        @ 110 NONAME 
    112         pjsua_start                              @ 111 NONAME 
    113         pjsua_transport_close                    @ 112 NONAME 
    114         pjsua_transport_config_default           @ 113 NONAME 
    115         pjsua_transport_config_dup               @ 114 NONAME 
    116         pjsua_transport_create                   @ 115 NONAME 
    117         pjsua_transport_get_info                 @ 116 NONAME 
    118         pjsua_transport_register                 @ 117 NONAME 
    119         pjsua_transport_set_enable               @ 118 NONAME 
    120         pjsua_verify_sip_url                     @ 119 NONAME 
     28        pjsua_buddy_update_pres                  @ 27 NONAME 
     29        pjsua_call_answer                        @ 28 NONAME 
     30        pjsua_call_dial_dtmf                     @ 29 NONAME 
     31        pjsua_call_dump                          @ 30 NONAME 
     32        pjsua_call_get_conf_port                 @ 31 NONAME 
     33        pjsua_call_get_count                     @ 32 NONAME 
     34        pjsua_call_get_info                      @ 33 NONAME 
     35        pjsua_call_get_max_count                 @ 34 NONAME 
     36        pjsua_call_get_rem_nat_type              @ 35 NONAME 
     37        pjsua_call_get_user_data                 @ 36 NONAME 
     38        pjsua_call_hangup                        @ 37 NONAME 
     39        pjsua_call_hangup_all                    @ 38 NONAME 
     40        pjsua_call_has_media                     @ 39 NONAME 
     41        pjsua_call_is_active                     @ 40 NONAME 
     42        pjsua_call_make_call                     @ 41 NONAME 
     43        pjsua_call_reinvite                      @ 42 NONAME 
     44        pjsua_call_send_im                       @ 43 NONAME 
     45        pjsua_call_send_request                  @ 44 NONAME 
     46        pjsua_call_send_typing_ind               @ 45 NONAME 
     47        pjsua_call_set_hold                      @ 46 NONAME 
     48        pjsua_call_set_user_data                 @ 47 NONAME 
     49        pjsua_call_update                        @ 48 NONAME 
     50        pjsua_call_xfer                          @ 49 NONAME 
     51        pjsua_call_xfer_replaces                 @ 50 NONAME 
     52        pjsua_codec_get_param                    @ 51 NONAME 
     53        pjsua_codec_set_param                    @ 52 NONAME 
     54        pjsua_codec_set_priority                 @ 53 NONAME 
     55        pjsua_conf_add_port                      @ 54 NONAME 
     56        pjsua_conf_adjust_rx_level               @ 55 NONAME 
     57        pjsua_conf_adjust_tx_level               @ 56 NONAME 
     58        pjsua_conf_connect                       @ 57 NONAME 
     59        pjsua_conf_disconnect                    @ 58 NONAME 
     60        pjsua_conf_get_active_ports              @ 59 NONAME 
     61        pjsua_conf_get_max_ports                 @ 60 NONAME 
     62        pjsua_conf_get_port_info                 @ 61 NONAME 
     63        pjsua_conf_get_signal_level              @ 62 NONAME 
     64        pjsua_conf_remove_port                   @ 63 NONAME 
     65        pjsua_config_default                     @ 64 NONAME 
     66        pjsua_config_dup                         @ 65 NONAME 
     67        pjsua_create                             @ 66 NONAME 
     68        pjsua_destroy                            @ 67 NONAME 
     69        pjsua_detect_nat_type                    @ 68 NONAME 
     70        pjsua_dump                               @ 69 NONAME 
     71        pjsua_enum_accs                          @ 70 NONAME 
     72        pjsua_enum_buddies                       @ 71 NONAME 
     73        pjsua_enum_calls                         @ 72 NONAME 
     74        pjsua_enum_codecs                        @ 73 NONAME 
     75        pjsua_enum_conf_ports                    @ 74 NONAME 
     76        pjsua_enum_snd_devs                      @ 75 NONAME 
     77        pjsua_enum_transports                    @ 76 NONAME 
     78        pjsua_get_buddy_count                    @ 77 NONAME 
     79        pjsua_get_ec_tail                        @ 78 NONAME 
     80        pjsua_get_nat_type                       @ 79 NONAME 
     81        pjsua_get_pjmedia_endpt                  @ 80 NONAME 
     82        pjsua_get_pjsip_endpt                    @ 81 NONAME 
     83        pjsua_get_pool_factory                   @ 82 NONAME 
     84        pjsua_get_snd_dev                        @ 83 NONAME 
     85        pjsua_get_var                            @ 84 NONAME 
     86        pjsua_handle_events                      @ 85 NONAME 
     87        pjsua_im_send                            @ 86 NONAME 
     88        pjsua_im_typing                          @ 87 NONAME 
     89        pjsua_init                               @ 88 NONAME 
     90        pjsua_logging_config_default             @ 89 NONAME 
     91        pjsua_logging_config_dup                 @ 90 NONAME 
     92        pjsua_media_config_default               @ 91 NONAME 
     93        pjsua_media_transports_create            @ 92 NONAME 
     94        pjsua_msg_data_init                      @ 93 NONAME 
     95        pjsua_perror                             @ 94 NONAME 
     96        pjsua_player_create                      @ 95 NONAME 
     97        pjsua_player_destroy                     @ 96 NONAME 
     98        pjsua_player_get_conf_port               @ 97 NONAME 
     99        pjsua_player_get_port                    @ 98 NONAME 
     100        pjsua_player_set_pos                     @ 99 NONAME 
     101        pjsua_playlist_create                    @ 100 NONAME 
     102        pjsua_pool_create                        @ 101 NONAME 
     103        pjsua_pres_dump                          @ 102 NONAME 
     104        pjsua_reconfigure_logging                @ 103 NONAME 
     105        pjsua_recorder_create                    @ 104 NONAME 
     106        pjsua_recorder_destroy                   @ 105 NONAME 
     107        pjsua_recorder_get_conf_port             @ 106 NONAME 
     108        pjsua_recorder_get_port                  @ 107 NONAME 
     109        pjsua_set_ec                             @ 108 NONAME 
     110        pjsua_set_no_snd_dev                     @ 109 NONAME 
     111        pjsua_set_null_snd_dev                   @ 110 NONAME 
     112        pjsua_set_snd_dev                        @ 111 NONAME 
     113        pjsua_start                              @ 112 NONAME 
     114        pjsua_transport_close                    @ 113 NONAME 
     115        pjsua_transport_config_default           @ 114 NONAME 
     116        pjsua_transport_config_dup               @ 115 NONAME 
     117        pjsua_transport_create                   @ 116 NONAME 
     118        pjsua_transport_get_info                 @ 117 NONAME 
     119        pjsua_transport_register                 @ 118 NONAME 
     120        pjsua_transport_set_enable               @ 119 NONAME 
     121        pjsua_verify_sip_url                     @ 120 NONAME 
  • pjproject/trunk/pjsip/include/pjsua-lib/pjsua.h

    r1534 r1535  
    33353335 
    33363336/** 
     3337 * Update the presence information for the buddy. Although the library 
     3338 * periodically refreshes the presence subscription for all buddies, some 
     3339 * application may want to refresh the buddy's presence subscription 
     3340 * immediately, and in this case it can use this function to accomplish 
     3341 * this. 
     3342 * 
     3343 * Note that the buddy's presence subscription will only be initiated 
     3344 * if presence monitoring is enabled for the buddy. See  
     3345 * #pjsua_buddy_subscribe_pres() for more info. Also if presence subscription 
     3346 * for the buddy is already active, this function will not do anything. 
     3347 * 
     3348 * Once the presence subscription is activated successfully for the buddy, 
     3349 * application will be notified about the buddy's presence status in the 
     3350 * on_buddy_state() callback. 
     3351 * 
     3352 * @param buddy_id      Buddy identification. 
     3353 * 
     3354 * @return              PJ_SUCCESS on success, or the appropriate error code. 
     3355 */ 
     3356PJ_DECL(pj_status_t) pjsua_buddy_update_pres(pjsua_buddy_id buddy_id); 
     3357 
     3358 
     3359/** 
    33373360 * Dump presence subscriptions to log. 
    33383361 * 
  • pjproject/trunk/pjsip/src/pjsua-lib/pjsua_pres.c

    r1534 r1535  
    312312 
    313313/* 
     314 * Update buddy's presence. 
     315 */ 
     316PJ_DEF(pj_status_t) pjsua_buddy_update_pres(pjsua_buddy_id buddy_id) 
     317{ 
     318    pjsua_buddy *buddy; 
     319 
     320    PJ_ASSERT_RETURN(buddy_id>=0 &&  
     321                        buddy_id<(int)PJ_ARRAY_SIZE(pjsua_var.buddy), 
     322                     PJ_EINVAL); 
     323 
     324    PJSUA_LOCK(); 
     325 
     326    buddy = &pjsua_var.buddy[buddy_id]; 
     327 
     328    /* Return error if buddy's presence monitoring is not enabled */ 
     329    if (!buddy->monitor) { 
     330        PJSUA_UNLOCK(); 
     331        return PJ_EINVALIDOP; 
     332    } 
     333 
     334    /* Ignore if presence is already active for the buddy */ 
     335    if (buddy->sub) { 
     336        PJSUA_UNLOCK(); 
     337        return PJ_SUCCESS; 
     338    } 
     339 
     340    /* Initiate presence subscription */ 
     341    subscribe_buddy_presence(buddy_id); 
     342 
     343    PJSUA_UNLOCK(); 
     344 
     345    return PJ_SUCCESS; 
     346} 
     347 
     348 
     349/* 
    314350 * Dump presence subscriptions to log file. 
    315351 */ 
Note: See TracChangeset for help on using the changeset viewer.