diff --git a/build.symbian/bld.inf b/build.symbian/bld.inf index 42edf83d2..76ef1182b 100644 --- a/build.symbian/bld.inf +++ b/build.symbian/bld.inf @@ -1,7 +1,7 @@ prj_platforms winscw //armv5 -gcce +//gcce prj_mmpfiles pjlib.mmp @@ -13,8 +13,6 @@ pjmedia.mmp pjsip.mmp pjsip_simple.mmp pjsip_ua.mmp -pjlib_test.mmp -sipstateless.mmp pjsua_lib.mmp null_audio.mmp symbian_ua.mmp diff --git a/build.symbian/makedef.sh b/build.symbian/makedef.sh index 1fe8c49b9..67629c61b 100644 --- a/build.symbian/makedef.sh +++ b/build.symbian/makedef.sh @@ -13,16 +13,23 @@ else exit 1 fi -TARGET=`grep -w TARGET $MMP | awk '{print $2}' | awk -F '.' '{print $1}' | head -1` +TARGET=`grep -w '^TARGET' $MMP | awk '{print $2}' | awk -F '.' '{print $1}' | head -1` DEFFILE="${TARGET}U.def" -SOURCES=`grep -w SOURCE $MMP | awk '{print $2}' | tr '\\\\' '/'` -SOURCEPATH=`grep -w SOURCEPATH $MMP | tr '\\\\' '/' | awk '{print $2}'` -INCPATH=`grep INCLUDE $MMP | awk '{print $2}' | grep pj | tr '\\\\' '/'` +SOURCES=`grep -w '^SOURCE' $MMP | awk '{print $2}' | tr '\\\\' '/'` +SOURCEPATH=`grep -w '^SOURCEPATH' $MMP | tr '\\\\' '/' | awk '{print $2}'` +INCPATH=`grep 'INCLUDE' $MMP | awk '{print $2}' | grep pj | tr '\\\\' '/'` INCLUDE="" for INC in $INCPATH; do INCLUDE=`echo $INCLUDE -I$INC` done +#-- debug -- +#echo TARGET=$TARGET +#echo SOURCES=$SOURCES +#echo SOURCEPATH=$SOURCEPATH +#echo INCLUDE=$INCLUDE +#-- end -- + echo > tmpnames.def diff --git a/build.symbian/null_audio.mmp b/build.symbian/null_audio.mmp index 55bc20de6..9676335a9 100644 --- a/build.symbian/null_audio.mmp +++ b/build.symbian/null_audio.mmp @@ -1,8 +1,25 @@ +#if defined(EKA2) + +TARGET null_audio.dll +TARGETTYPE dll +UID 0x1000008d 0xA0004294 + +CAPABILITY None +LIBRARY pjlib.lib charconv.lib euser.lib estlib.lib +MACRO PJ_DLL +MACRO PJ_EXPORTING + +DEFFILE .\null_audio.def + +#else + TARGET null_audio.lib TARGETTYPE lib UID 0x100039CE 0x10004299 VENDORID 0x70000001 +#endif + SOURCEPATH ..\pjmedia\src\pjmedia OPTION CW -lang c++ diff --git a/build.symbian/null_audioU.def b/build.symbian/null_audioU.def new file mode 100644 index 000000000..883d5d836 --- /dev/null +++ b/build.symbian/null_audioU.def @@ -0,0 +1,12 @@ +EXPORTS + pjmedia_snd_deinit @ 1 NONAME + pjmedia_snd_get_dev_count @ 2 NONAME + pjmedia_snd_get_dev_info @ 3 NONAME + pjmedia_snd_init @ 4 NONAME + pjmedia_snd_open @ 5 NONAME + pjmedia_snd_open_player @ 6 NONAME + pjmedia_snd_open_rec @ 7 NONAME + pjmedia_snd_stream_close @ 8 NONAME + pjmedia_snd_stream_get_info @ 9 NONAME + pjmedia_snd_stream_start @ 10 NONAME + pjmedia_snd_stream_stop @ 11 NONAME diff --git a/build.symbian/pjlibU.def b/build.symbian/pjlibU.def index 45439ca9e..40d0a32fc 100644 --- a/build.symbian/pjlibU.def +++ b/build.symbian/pjlibU.def @@ -4,289 +4,293 @@ EXPORTS PJ_FD_ISSET @ 3 NONAME PJ_FD_SET @ 4 NONAME PJ_FD_ZERO @ 5 NONAME - PJ_VERSION @ 6 NONAME - pj_AF_INET @ 7 NONAME - pj_AF_INET6 @ 8 NONAME - pj_AF_IRDA @ 9 NONAME - pj_AF_PACKET @ 10 NONAME - pj_AF_UNIX @ 11 NONAME - pj_IPTOS_LOWDELAY @ 12 NONAME - pj_IPTOS_MINCOST @ 13 NONAME - pj_IPTOS_RELIABILITY @ 14 NONAME - pj_IPTOS_THROUGHPUT @ 15 NONAME - pj_IP_TOS @ 16 NONAME - pj_MSG_DONTROUTE @ 17 NONAME - pj_MSG_OOB @ 18 NONAME - pj_MSG_PEEK @ 19 NONAME - pj_SOCK_DGRAM @ 20 NONAME - pj_SOCK_RAW @ 21 NONAME - pj_SOCK_RDM @ 22 NONAME - pj_SOCK_STREAM @ 23 NONAME - pj_SOL_IP @ 24 NONAME - pj_SOL_IPV6 @ 25 NONAME - pj_SOL_SOCKET @ 26 NONAME - pj_SOL_TCP @ 27 NONAME - pj_SOL_UDP @ 28 NONAME - pj_SO_RCVBUF @ 29 NONAME - pj_SO_SNDBUF @ 30 NONAME - pj_SO_TYPE @ 31 NONAME - pj_ansi_to_unicode @ 32 NONAME - pj_array_erase @ 33 NONAME - pj_array_find @ 34 NONAME - pj_array_insert @ 35 NONAME - pj_atexit @ 36 NONAME - pj_atomic_add @ 37 NONAME - pj_atomic_add_and_get @ 38 NONAME - pj_atomic_create @ 39 NONAME - pj_atomic_dec @ 40 NONAME - pj_atomic_dec_and_get @ 41 NONAME - pj_atomic_destroy @ 42 NONAME - pj_atomic_get @ 43 NONAME - pj_atomic_inc @ 44 NONAME - pj_atomic_inc_and_get @ 45 NONAME - pj_atomic_set @ 46 NONAME - pj_caching_pool_destroy @ 47 NONAME - pj_caching_pool_init @ 48 NONAME - pj_create_random_string @ 49 NONAME - pj_create_unique_string @ 50 NONAME - pj_dump_config @ 51 NONAME - pj_elapsed_cycle @ 52 NONAME - pj_elapsed_msec @ 53 NONAME - pj_elapsed_nanosec @ 54 NONAME - pj_elapsed_time @ 55 NONAME - pj_elapsed_usec @ 56 NONAME - pj_enter_critical_section @ 57 NONAME - pj_enum_ip_interface @ 58 NONAME - pj_enum_ip_route @ 59 NONAME - pj_exception_id_alloc @ 60 NONAME - pj_exception_id_free @ 61 NONAME - pj_exception_id_name @ 62 NONAME - pj_fifobuf_alloc @ 63 NONAME - pj_fifobuf_free @ 64 NONAME - pj_fifobuf_init @ 65 NONAME - pj_fifobuf_max_size @ 66 NONAME - pj_fifobuf_unalloc @ 67 NONAME - pj_file_close @ 68 NONAME - pj_file_delete @ 69 NONAME - pj_file_exists @ 70 NONAME - pj_file_flush @ 71 NONAME - pj_file_getpos @ 72 NONAME - pj_file_getstat @ 73 NONAME - pj_file_move @ 74 NONAME - pj_file_open @ 75 NONAME - pj_file_read @ 76 NONAME - pj_file_setpos @ 77 NONAME - pj_file_size @ 78 NONAME - pj_file_write @ 79 NONAME - pj_generate_unique_string @ 80 NONAME - pj_get_netos_error @ 81 NONAME - pj_get_os_error @ 82 NONAME - pj_get_timestamp @ 83 NONAME - pj_get_timestamp_freq @ 84 NONAME - pj_get_version @ 85 NONAME - pj_gethostaddr @ 86 NONAME - pj_gethostbyname @ 87 NONAME - pj_gethostip @ 88 NONAME - pj_gethostname @ 89 NONAME - pj_getpid @ 90 NONAME - pj_gettimeofday @ 91 NONAME - pj_hash_calc @ 92 NONAME - pj_hash_calc_tolower @ 93 NONAME - pj_hash_count @ 94 NONAME - pj_hash_create @ 95 NONAME - pj_hash_first @ 96 NONAME - pj_hash_get @ 97 NONAME - pj_hash_next @ 98 NONAME - pj_hash_set @ 99 NONAME - pj_hash_set_np @ 100 NONAME - pj_hash_this @ 101 NONAME - pj_htonl @ 102 NONAME - pj_htons @ 103 NONAME - pj_inet_addr @ 104 NONAME - pj_inet_addr2 @ 105 NONAME - pj_inet_aton @ 106 NONAME - pj_inet_ntoa @ 107 NONAME - pj_init @ 108 NONAME - pj_ioqueue_accept @ 109 NONAME - pj_ioqueue_connect @ 110 NONAME - pj_ioqueue_create @ 111 NONAME - pj_ioqueue_destroy @ 112 NONAME - pj_ioqueue_get_user_data @ 113 NONAME - pj_ioqueue_is_pending @ 114 NONAME - pj_ioqueue_name @ 115 NONAME - pj_ioqueue_op_key_init @ 116 NONAME - pj_ioqueue_poll @ 117 NONAME - pj_ioqueue_post_completion @ 118 NONAME - pj_ioqueue_recv @ 119 NONAME - pj_ioqueue_recvfrom @ 120 NONAME - pj_ioqueue_register_sock @ 121 NONAME - pj_ioqueue_send @ 122 NONAME - pj_ioqueue_sendto @ 123 NONAME - pj_ioqueue_set_lock @ 124 NONAME - pj_ioqueue_set_user_data @ 125 NONAME - pj_ioqueue_unregister @ 126 NONAME - pj_leave_critical_section @ 127 NONAME - pj_list_erase @ 128 NONAME - pj_list_find_node @ 129 NONAME - pj_list_insert_after @ 130 NONAME - pj_list_insert_before @ 131 NONAME - pj_list_insert_nodes_after @ 132 NONAME - pj_list_insert_nodes_before @ 133 NONAME - pj_list_merge_first @ 134 NONAME - pj_list_merge_last @ 135 NONAME - pj_list_search @ 136 NONAME - pj_list_size @ 137 NONAME - pj_lock_acquire @ 138 NONAME - pj_lock_create_null_mutex @ 139 NONAME - pj_lock_create_recursive_mutex @ 140 NONAME - pj_lock_create_semaphore @ 141 NONAME - pj_lock_create_simple_mutex @ 142 NONAME - pj_lock_destroy @ 143 NONAME - pj_lock_release @ 144 NONAME - pj_lock_tryacquire @ 145 NONAME - pj_log @ 146 NONAME - pj_log_1 @ 147 NONAME - pj_log_2 @ 148 NONAME - pj_log_3 @ 149 NONAME - pj_log_4 @ 150 NONAME - pj_log_5 @ 151 NONAME - pj_log_get_decor @ 152 NONAME - pj_log_get_level @ 153 NONAME - pj_log_get_log_func @ 154 NONAME - pj_log_set_decor @ 155 NONAME - pj_log_set_level @ 156 NONAME - pj_log_set_log_func @ 157 NONAME - pj_log_write @ 158 NONAME - pj_mutex_create @ 159 NONAME - pj_mutex_create_recursive @ 160 NONAME - pj_mutex_create_simple @ 161 NONAME - pj_mutex_destroy @ 162 NONAME - pj_mutex_lock @ 163 NONAME - pj_mutex_trylock @ 164 NONAME - pj_mutex_unlock @ 165 NONAME - pj_ntohl @ 166 NONAME - pj_ntohs @ 167 NONAME - pj_pool_alloc @ 168 NONAME - pj_pool_alloc_from_block @ 169 NONAME - pj_pool_allocate_find @ 170 NONAME - pj_pool_calloc @ 171 NONAME - pj_pool_create @ 172 NONAME - pj_pool_create_int @ 173 NONAME - pj_pool_create_on_buf @ 174 NONAME - pj_pool_destroy_int @ 175 NONAME - pj_pool_factory_default_policy @ 176 NONAME - pj_pool_factory_get_default_policy @ 177 NONAME - pj_pool_get_capacity @ 178 NONAME - pj_pool_get_used_size @ 179 NONAME - pj_pool_getobjname @ 180 NONAME - pj_pool_init_int @ 181 NONAME - pj_pool_release @ 182 NONAME - pj_pool_reset @ 183 NONAME - pj_rand @ 184 NONAME - pj_rbtree_erase @ 185 NONAME - pj_rbtree_find @ 186 NONAME - pj_rbtree_first @ 187 NONAME - pj_rbtree_init @ 188 NONAME - pj_rbtree_insert @ 189 NONAME - pj_rbtree_last @ 190 NONAME - pj_rbtree_max_height @ 191 NONAME - pj_rbtree_min_height @ 192 NONAME - pj_rbtree_next @ 193 NONAME - pj_rbtree_prev @ 194 NONAME - pj_register_strerror @ 195 NONAME - pj_rwmutex_create @ 196 NONAME - pj_rwmutex_destroy @ 197 NONAME - pj_rwmutex_lock_read @ 198 NONAME - pj_rwmutex_lock_write @ 199 NONAME - pj_rwmutex_unlock_read @ 200 NONAME - pj_rwmutex_unlock_write @ 201 NONAME - pj_sem_create @ 202 NONAME - pj_sem_destroy @ 203 NONAME - pj_sem_post @ 204 NONAME - pj_sem_trywait @ 205 NONAME - pj_sem_wait @ 206 NONAME - pj_set_netos_error @ 207 NONAME - pj_set_os_error @ 208 NONAME - pj_shutdown @ 209 NONAME - pj_sock_accept @ 210 NONAME - pj_sock_bind @ 211 NONAME - pj_sock_bind_in @ 212 NONAME - pj_sock_close @ 213 NONAME - pj_sock_connect @ 214 NONAME - pj_sock_getpeername @ 215 NONAME - pj_sock_getsockname @ 216 NONAME - pj_sock_getsockopt @ 217 NONAME - pj_sock_listen @ 218 NONAME - pj_sock_recv @ 219 NONAME - pj_sock_recvfrom @ 220 NONAME - pj_sock_select @ 221 NONAME - pj_sock_send @ 222 NONAME - pj_sock_sendto @ 223 NONAME - pj_sock_setsockopt @ 224 NONAME - pj_sock_shutdown @ 225 NONAME - pj_sock_socket @ 226 NONAME - pj_sockaddr_in_init @ 227 NONAME - pj_sockaddr_in_set_str_addr @ 228 NONAME - pj_srand @ 229 NONAME - pj_str @ 230 NONAME - pj_strassign @ 231 NONAME - pj_strcat @ 232 NONAME - pj_strcat2 @ 233 NONAME - pj_strcmp @ 234 NONAME - pj_strcmp2 @ 235 NONAME - pj_strcpy @ 236 NONAME - pj_strcpy2 @ 237 NONAME - pj_strdup @ 238 NONAME - pj_strdup2 @ 239 NONAME - pj_strdup2_with_null @ 240 NONAME - pj_strdup3 @ 241 NONAME - pj_strdup_with_null @ 242 NONAME - pj_strerror @ 243 NONAME - pj_stricmp @ 244 NONAME - pj_stricmp2 @ 245 NONAME - pj_strltrim @ 246 NONAME - pj_strncmp @ 247 NONAME - pj_strncmp2 @ 248 NONAME - pj_strncpy @ 249 NONAME - pj_strncpy_with_null @ 250 NONAME - pj_strnicmp @ 251 NONAME - pj_strnicmp2 @ 252 NONAME - pj_strrtrim @ 253 NONAME - pj_strtoul @ 254 NONAME - pj_strtoul2 @ 255 NONAME - pj_strtrim @ 256 NONAME - pj_symbianos_poll @ 257 NONAME - pj_thread_create @ 258 NONAME - pj_thread_destroy @ 259 NONAME - pj_thread_get_name @ 260 NONAME - pj_thread_join @ 261 NONAME - pj_thread_local_alloc @ 262 NONAME - pj_thread_local_free @ 263 NONAME - pj_thread_local_get @ 264 NONAME - pj_thread_local_set @ 265 NONAME - pj_thread_register @ 266 NONAME - pj_thread_resume @ 267 NONAME - pj_thread_sleep @ 268 NONAME - pj_thread_this @ 269 NONAME - pj_time_decode @ 270 NONAME - pj_time_encode @ 271 NONAME - pj_time_gmt_to_local @ 272 NONAME - pj_time_local_to_gmt @ 273 NONAME - pj_time_val_normalize @ 274 NONAME - pj_timer_entry_init @ 275 NONAME - pj_timer_heap_cancel @ 276 NONAME - pj_timer_heap_count @ 277 NONAME - pj_timer_heap_create @ 278 NONAME - pj_timer_heap_destroy @ 279 NONAME - pj_timer_heap_earliest_time @ 280 NONAME - pj_timer_heap_mem_size @ 281 NONAME - pj_timer_heap_poll @ 282 NONAME - pj_timer_heap_schedule @ 283 NONAME - pj_timer_heap_set_lock @ 284 NONAME - pj_timer_heap_set_max_timed_out_per_poll @ 285 NONAME - pj_unicode_to_ansi @ 286 NONAME - pj_utoa @ 287 NONAME - pj_utoa_pad @ 288 NONAME - platform_strerror @ 289 NONAME - snprintf @ 290 NONAME - vsnprintf @ 291 NONAME + PJ_GUID_STRING_LENGTH @ 6 NONAME + PJ_NO_MEMORY_EXCEPTION @ 7 NONAME + PJ_VERSION @ 8 NONAME + pj_AF_INET @ 9 NONAME + pj_AF_INET6 @ 10 NONAME + pj_AF_IRDA @ 11 NONAME + pj_AF_PACKET @ 12 NONAME + pj_AF_UNIX @ 13 NONAME + pj_GUID_STRING_LENGTH @ 14 NONAME + pj_IPTOS_LOWDELAY @ 15 NONAME + pj_IPTOS_MINCOST @ 16 NONAME + pj_IPTOS_RELIABILITY @ 17 NONAME + pj_IPTOS_THROUGHPUT @ 18 NONAME + pj_IP_TOS @ 19 NONAME + pj_MSG_DONTROUTE @ 20 NONAME + pj_MSG_OOB @ 21 NONAME + pj_MSG_PEEK @ 22 NONAME + pj_NO_MEMORY_EXCEPTION @ 23 NONAME + pj_SOCK_DGRAM @ 24 NONAME + pj_SOCK_RAW @ 25 NONAME + pj_SOCK_RDM @ 26 NONAME + pj_SOCK_STREAM @ 27 NONAME + pj_SOL_IP @ 28 NONAME + pj_SOL_IPV6 @ 29 NONAME + pj_SOL_SOCKET @ 30 NONAME + pj_SOL_TCP @ 31 NONAME + pj_SOL_UDP @ 32 NONAME + pj_SO_RCVBUF @ 33 NONAME + pj_SO_SNDBUF @ 34 NONAME + pj_SO_TYPE @ 35 NONAME + pj_ansi_to_unicode @ 36 NONAME + pj_array_erase @ 37 NONAME + pj_array_find @ 38 NONAME + pj_array_insert @ 39 NONAME + pj_atexit @ 40 NONAME + pj_atomic_add @ 41 NONAME + pj_atomic_add_and_get @ 42 NONAME + pj_atomic_create @ 43 NONAME + pj_atomic_dec @ 44 NONAME + pj_atomic_dec_and_get @ 45 NONAME + pj_atomic_destroy @ 46 NONAME + pj_atomic_get @ 47 NONAME + pj_atomic_inc @ 48 NONAME + pj_atomic_inc_and_get @ 49 NONAME + pj_atomic_set @ 50 NONAME + pj_caching_pool_destroy @ 51 NONAME + pj_caching_pool_init @ 52 NONAME + pj_create_random_string @ 53 NONAME + pj_create_unique_string @ 54 NONAME + pj_dump_config @ 55 NONAME + pj_elapsed_cycle @ 56 NONAME + pj_elapsed_msec @ 57 NONAME + pj_elapsed_nanosec @ 58 NONAME + pj_elapsed_time @ 59 NONAME + pj_elapsed_usec @ 60 NONAME + pj_enter_critical_section @ 61 NONAME + pj_enum_ip_interface @ 62 NONAME + pj_enum_ip_route @ 63 NONAME + pj_exception_id_alloc @ 64 NONAME + pj_exception_id_free @ 65 NONAME + pj_exception_id_name @ 66 NONAME + pj_fifobuf_alloc @ 67 NONAME + pj_fifobuf_free @ 68 NONAME + pj_fifobuf_init @ 69 NONAME + pj_fifobuf_max_size @ 70 NONAME + pj_fifobuf_unalloc @ 71 NONAME + pj_file_close @ 72 NONAME + pj_file_delete @ 73 NONAME + pj_file_exists @ 74 NONAME + pj_file_flush @ 75 NONAME + pj_file_getpos @ 76 NONAME + pj_file_getstat @ 77 NONAME + pj_file_move @ 78 NONAME + pj_file_open @ 79 NONAME + pj_file_read @ 80 NONAME + pj_file_setpos @ 81 NONAME + pj_file_size @ 82 NONAME + pj_file_write @ 83 NONAME + pj_generate_unique_string @ 84 NONAME + pj_get_netos_error @ 85 NONAME + pj_get_os_error @ 86 NONAME + pj_get_timestamp @ 87 NONAME + pj_get_timestamp_freq @ 88 NONAME + pj_get_version @ 89 NONAME + pj_gethostaddr @ 90 NONAME + pj_gethostbyname @ 91 NONAME + pj_gethostip @ 92 NONAME + pj_gethostname @ 93 NONAME + pj_getpid @ 94 NONAME + pj_gettimeofday @ 95 NONAME + pj_hash_calc @ 96 NONAME + pj_hash_calc_tolower @ 97 NONAME + pj_hash_count @ 98 NONAME + pj_hash_create @ 99 NONAME + pj_hash_first @ 100 NONAME + pj_hash_get @ 101 NONAME + pj_hash_next @ 102 NONAME + pj_hash_set @ 103 NONAME + pj_hash_set_np @ 104 NONAME + pj_hash_this @ 105 NONAME + pj_htonl @ 106 NONAME + pj_htons @ 107 NONAME + pj_inet_addr @ 108 NONAME + pj_inet_addr2 @ 109 NONAME + pj_inet_aton @ 110 NONAME + pj_inet_ntoa @ 111 NONAME + pj_init @ 112 NONAME + pj_ioqueue_accept @ 113 NONAME + pj_ioqueue_connect @ 114 NONAME + pj_ioqueue_create @ 115 NONAME + pj_ioqueue_destroy @ 116 NONAME + pj_ioqueue_get_user_data @ 117 NONAME + pj_ioqueue_is_pending @ 118 NONAME + pj_ioqueue_name @ 119 NONAME + pj_ioqueue_op_key_init @ 120 NONAME + pj_ioqueue_poll @ 121 NONAME + pj_ioqueue_post_completion @ 122 NONAME + pj_ioqueue_recv @ 123 NONAME + pj_ioqueue_recvfrom @ 124 NONAME + pj_ioqueue_register_sock @ 125 NONAME + pj_ioqueue_send @ 126 NONAME + pj_ioqueue_sendto @ 127 NONAME + pj_ioqueue_set_lock @ 128 NONAME + pj_ioqueue_set_user_data @ 129 NONAME + pj_ioqueue_unregister @ 130 NONAME + pj_leave_critical_section @ 131 NONAME + pj_list_erase @ 132 NONAME + pj_list_find_node @ 133 NONAME + pj_list_insert_after @ 134 NONAME + pj_list_insert_before @ 135 NONAME + pj_list_insert_nodes_after @ 136 NONAME + pj_list_insert_nodes_before @ 137 NONAME + pj_list_merge_first @ 138 NONAME + pj_list_merge_last @ 139 NONAME + pj_list_search @ 140 NONAME + pj_list_size @ 141 NONAME + pj_lock_acquire @ 142 NONAME + pj_lock_create_null_mutex @ 143 NONAME + pj_lock_create_recursive_mutex @ 144 NONAME + pj_lock_create_semaphore @ 145 NONAME + pj_lock_create_simple_mutex @ 146 NONAME + pj_lock_destroy @ 147 NONAME + pj_lock_release @ 148 NONAME + pj_lock_tryacquire @ 149 NONAME + pj_log @ 150 NONAME + pj_log_1 @ 151 NONAME + pj_log_2 @ 152 NONAME + pj_log_3 @ 153 NONAME + pj_log_4 @ 154 NONAME + pj_log_5 @ 155 NONAME + pj_log_get_decor @ 156 NONAME + pj_log_get_level @ 157 NONAME + pj_log_get_log_func @ 158 NONAME + pj_log_set_decor @ 159 NONAME + pj_log_set_level @ 160 NONAME + pj_log_set_log_func @ 161 NONAME + pj_log_write @ 162 NONAME + pj_mutex_create @ 163 NONAME + pj_mutex_create_recursive @ 164 NONAME + pj_mutex_create_simple @ 165 NONAME + pj_mutex_destroy @ 166 NONAME + pj_mutex_lock @ 167 NONAME + pj_mutex_trylock @ 168 NONAME + pj_mutex_unlock @ 169 NONAME + pj_ntohl @ 170 NONAME + pj_ntohs @ 171 NONAME + pj_pool_alloc @ 172 NONAME + pj_pool_alloc_from_block @ 173 NONAME + pj_pool_allocate_find @ 174 NONAME + pj_pool_calloc @ 175 NONAME + pj_pool_create @ 176 NONAME + pj_pool_create_int @ 177 NONAME + pj_pool_create_on_buf @ 178 NONAME + pj_pool_destroy_int @ 179 NONAME + pj_pool_factory_default_policy @ 180 NONAME + pj_pool_factory_get_default_policy @ 181 NONAME + pj_pool_get_capacity @ 182 NONAME + pj_pool_get_used_size @ 183 NONAME + pj_pool_getobjname @ 184 NONAME + pj_pool_init_int @ 185 NONAME + pj_pool_release @ 186 NONAME + pj_pool_reset @ 187 NONAME + pj_rand @ 188 NONAME + pj_rbtree_erase @ 189 NONAME + pj_rbtree_find @ 190 NONAME + pj_rbtree_first @ 191 NONAME + pj_rbtree_init @ 192 NONAME + pj_rbtree_insert @ 193 NONAME + pj_rbtree_last @ 194 NONAME + pj_rbtree_max_height @ 195 NONAME + pj_rbtree_min_height @ 196 NONAME + pj_rbtree_next @ 197 NONAME + pj_rbtree_prev @ 198 NONAME + pj_register_strerror @ 199 NONAME + pj_rwmutex_create @ 200 NONAME + pj_rwmutex_destroy @ 201 NONAME + pj_rwmutex_lock_read @ 202 NONAME + pj_rwmutex_lock_write @ 203 NONAME + pj_rwmutex_unlock_read @ 204 NONAME + pj_rwmutex_unlock_write @ 205 NONAME + pj_sem_create @ 206 NONAME + pj_sem_destroy @ 207 NONAME + pj_sem_post @ 208 NONAME + pj_sem_trywait @ 209 NONAME + pj_sem_wait @ 210 NONAME + pj_set_netos_error @ 211 NONAME + pj_set_os_error @ 212 NONAME + pj_shutdown @ 213 NONAME + pj_sock_accept @ 214 NONAME + pj_sock_bind @ 215 NONAME + pj_sock_bind_in @ 216 NONAME + pj_sock_close @ 217 NONAME + pj_sock_connect @ 218 NONAME + pj_sock_getpeername @ 219 NONAME + pj_sock_getsockname @ 220 NONAME + pj_sock_getsockopt @ 221 NONAME + pj_sock_listen @ 222 NONAME + pj_sock_recv @ 223 NONAME + pj_sock_recvfrom @ 224 NONAME + pj_sock_select @ 225 NONAME + pj_sock_send @ 226 NONAME + pj_sock_sendto @ 227 NONAME + pj_sock_setsockopt @ 228 NONAME + pj_sock_shutdown @ 229 NONAME + pj_sock_socket @ 230 NONAME + pj_sockaddr_in_init @ 231 NONAME + pj_sockaddr_in_set_str_addr @ 232 NONAME + pj_srand @ 233 NONAME + pj_str @ 234 NONAME + pj_strassign @ 235 NONAME + pj_strcat @ 236 NONAME + pj_strcat2 @ 237 NONAME + pj_strcmp @ 238 NONAME + pj_strcmp2 @ 239 NONAME + pj_strcpy @ 240 NONAME + pj_strcpy2 @ 241 NONAME + pj_strdup @ 242 NONAME + pj_strdup2 @ 243 NONAME + pj_strdup2_with_null @ 244 NONAME + pj_strdup3 @ 245 NONAME + pj_strdup_with_null @ 246 NONAME + pj_strerror @ 247 NONAME + pj_stricmp @ 248 NONAME + pj_stricmp2 @ 249 NONAME + pj_strltrim @ 250 NONAME + pj_strncmp @ 251 NONAME + pj_strncmp2 @ 252 NONAME + pj_strncpy @ 253 NONAME + pj_strncpy_with_null @ 254 NONAME + pj_strnicmp @ 255 NONAME + pj_strnicmp2 @ 256 NONAME + pj_strrtrim @ 257 NONAME + pj_strtoul @ 258 NONAME + pj_strtoul2 @ 259 NONAME + pj_strtrim @ 260 NONAME + pj_symbianos_poll @ 261 NONAME + pj_thread_create @ 262 NONAME + pj_thread_destroy @ 263 NONAME + pj_thread_get_name @ 264 NONAME + pj_thread_join @ 265 NONAME + pj_thread_local_alloc @ 266 NONAME + pj_thread_local_free @ 267 NONAME + pj_thread_local_get @ 268 NONAME + pj_thread_local_set @ 269 NONAME + pj_thread_register @ 270 NONAME + pj_thread_resume @ 271 NONAME + pj_thread_sleep @ 272 NONAME + pj_thread_this @ 273 NONAME + pj_time_decode @ 274 NONAME + pj_time_encode @ 275 NONAME + pj_time_gmt_to_local @ 276 NONAME + pj_time_local_to_gmt @ 277 NONAME + pj_time_val_normalize @ 278 NONAME + pj_timer_entry_init @ 279 NONAME + pj_timer_heap_cancel @ 280 NONAME + pj_timer_heap_count @ 281 NONAME + pj_timer_heap_create @ 282 NONAME + pj_timer_heap_destroy @ 283 NONAME + pj_timer_heap_earliest_time @ 284 NONAME + pj_timer_heap_mem_size @ 285 NONAME + pj_timer_heap_poll @ 286 NONAME + pj_timer_heap_schedule @ 287 NONAME + pj_timer_heap_set_lock @ 288 NONAME + pj_timer_heap_set_max_timed_out_per_poll @ 289 NONAME + pj_unicode_to_ansi @ 290 NONAME + pj_utoa @ 291 NONAME + pj_utoa_pad @ 292 NONAME + platform_strerror @ 293 NONAME + snprintf @ 294 NONAME + vsnprintf @ 295 NONAME diff --git a/build.symbian/pjmedia.mmp b/build.symbian/pjmedia.mmp index 4534a45ef..a8bab26f8 100644 --- a/build.symbian/pjmedia.mmp +++ b/build.symbian/pjmedia.mmp @@ -1,8 +1,24 @@ +#if defined(EKA2) + +TARGET pjmedia.dll +TARGETTYPE dll +UID 0x1000008d 0xA0004295 +CAPABILITY None +LIBRARY null_audio.lib pjsdp.lib pjnath.lib pjlib_util.lib pjlib.lib esock.lib insock.lib charconv.lib euser.lib estlib.lib +MACRO PJ_DLL +MACRO PJ_EXPORTING + +DEFFILE .\pjmedia.def + +#else + TARGET pjmedia.lib TARGETTYPE lib UID 0x100039CE 0x10004299 VENDORID 0x70000001 +#endif + SOURCEPATH ..\pjmedia\src\pjmedia //OPTION CW -lang c++ @@ -37,10 +53,7 @@ SOURCE resample_port.c SOURCE resample_resample.c SOURCE rtcp.c SOURCE rtp.c -//SDP files are in pjsdp.mmp -//SOURCE sdp.c -//SOURCE sdp_cmp.c -//SOURCE sdp_neg.c +//SDP files are in pjsdp.mmp: sdp.c, sdp_cmp.c, sdp_neg.c SOURCE session.c SOURCE silencedet.c SOURCE sound_port.c @@ -76,5 +89,4 @@ SYSTEMINCLUDE \epoc32\include SYSTEMINCLUDE \epoc32\include\libc //SYSTEMINCLUDE \epoc32\include\mmf\plugin -CAPABILITY None diff --git a/build.symbian/pjmediaU.def b/build.symbian/pjmediaU.def new file mode 100644 index 000000000..df314c5e9 --- /dev/null +++ b/build.symbian/pjmediaU.def @@ -0,0 +1,186 @@ +EXPORTS + echo_supp_cancel_echo @ 1 NONAME + echo_supp_capture @ 2 NONAME + echo_supp_create @ 3 NONAME + echo_supp_destroy @ 4 NONAME + echo_supp_playback @ 5 NONAME + pjmedia_bidirectional_port_create @ 6 NONAME + pjmedia_calc_avg_signal @ 7 NONAME + pjmedia_clock_create @ 8 NONAME + pjmedia_clock_destroy @ 9 NONAME + pjmedia_clock_start @ 10 NONAME + pjmedia_clock_stop @ 11 NONAME + pjmedia_clock_wait @ 12 NONAME + pjmedia_codec_g711_deinit @ 13 NONAME + pjmedia_codec_g711_init @ 14 NONAME + pjmedia_codec_info_to_id @ 15 NONAME + pjmedia_codec_mgr_alloc_codec @ 16 NONAME + pjmedia_codec_mgr_dealloc_codec @ 17 NONAME + pjmedia_codec_mgr_enum_codecs @ 18 NONAME + pjmedia_codec_mgr_find_codecs_by_id @ 19 NONAME + pjmedia_codec_mgr_get_codec_info @ 20 NONAME + pjmedia_codec_mgr_get_default_param @ 21 NONAME + pjmedia_codec_mgr_init @ 22 NONAME + pjmedia_codec_mgr_register_factory @ 23 NONAME + pjmedia_codec_mgr_set_codec_priority @ 24 NONAME + pjmedia_codec_mgr_unregister_factory @ 25 NONAME + pjmedia_conf_add_passive_port @ 26 NONAME + pjmedia_conf_add_port @ 27 NONAME + pjmedia_conf_adjust_rx_level @ 28 NONAME + pjmedia_conf_adjust_tx_level @ 29 NONAME + pjmedia_conf_configure_port @ 30 NONAME + pjmedia_conf_connect_port @ 31 NONAME + pjmedia_conf_create @ 32 NONAME + pjmedia_conf_destroy @ 33 NONAME + pjmedia_conf_disconnect_port @ 34 NONAME + pjmedia_conf_enum_ports @ 35 NONAME + pjmedia_conf_get_connect_count @ 36 NONAME + pjmedia_conf_get_master_port @ 37 NONAME + pjmedia_conf_get_port_count @ 38 NONAME + pjmedia_conf_get_port_info @ 39 NONAME + pjmedia_conf_get_ports_info @ 40 NONAME + pjmedia_conf_get_signal_level @ 41 NONAME + pjmedia_conf_remove_port @ 42 NONAME + pjmedia_conf_set_port0_name @ 43 NONAME + pjmedia_echo_cancel @ 44 NONAME + pjmedia_echo_capture @ 45 NONAME + pjmedia_echo_create @ 46 NONAME + pjmedia_echo_destroy @ 47 NONAME + pjmedia_echo_playback @ 48 NONAME + pjmedia_echo_port_create @ 49 NONAME + pjmedia_endpt_create @ 50 NONAME + pjmedia_endpt_create_pool @ 51 NONAME + pjmedia_endpt_create_sdp @ 52 NONAME + pjmedia_endpt_destroy @ 53 NONAME + pjmedia_endpt_dump @ 54 NONAME + pjmedia_endpt_get_codec_mgr @ 55 NONAME + pjmedia_endpt_get_ioqueue @ 56 NONAME + pjmedia_ice_create @ 57 NONAME + pjmedia_ice_destroy @ 58 NONAME + pjmedia_ice_get_comp @ 59 NONAME + pjmedia_ice_get_init_status @ 60 NONAME + pjmedia_ice_init_ice @ 61 NONAME + pjmedia_ice_modify_sdp @ 62 NONAME + pjmedia_ice_start_ice @ 63 NONAME + pjmedia_ice_start_init @ 64 NONAME + pjmedia_ice_stop_ice @ 65 NONAME + pjmedia_jbuf_create @ 66 NONAME + pjmedia_jbuf_destroy @ 67 NONAME + pjmedia_jbuf_get_frame @ 68 NONAME + pjmedia_jbuf_get_state @ 69 NONAME + pjmedia_jbuf_put_frame @ 70 NONAME + pjmedia_jbuf_reset @ 71 NONAME + pjmedia_jbuf_set_adaptive @ 72 NONAME + pjmedia_jbuf_set_fixed @ 73 NONAME + pjmedia_master_port_create @ 74 NONAME + pjmedia_master_port_destroy @ 75 NONAME + pjmedia_master_port_get_dport @ 76 NONAME + pjmedia_master_port_get_uport @ 77 NONAME + pjmedia_master_port_set_dport @ 78 NONAME + pjmedia_master_port_set_uport @ 79 NONAME + pjmedia_master_port_start @ 80 NONAME + pjmedia_master_port_stop @ 81 NONAME + pjmedia_mem_capture_create @ 82 NONAME + pjmedia_mem_capture_get_size @ 83 NONAME + pjmedia_mem_capture_set_eof_cb @ 84 NONAME + pjmedia_mem_player_create @ 85 NONAME + pjmedia_mem_player_set_eof_cb @ 86 NONAME + pjmedia_null_port_create @ 87 NONAME + pjmedia_plc_create @ 88 NONAME + pjmedia_plc_generate @ 89 NONAME + pjmedia_plc_save @ 90 NONAME + pjmedia_port_destroy @ 91 NONAME + pjmedia_port_get_frame @ 92 NONAME + pjmedia_port_info_init @ 93 NONAME + pjmedia_port_put_frame @ 94 NONAME + pjmedia_resample_create @ 95 NONAME + pjmedia_resample_destroy @ 96 NONAME + pjmedia_resample_get_input_size @ 97 NONAME + pjmedia_resample_port_create @ 98 NONAME + pjmedia_resample_run @ 99 NONAME + pjmedia_rtcp_build_rtcp @ 100 NONAME + pjmedia_rtcp_fini @ 101 NONAME + pjmedia_rtcp_get_ntp_time @ 102 NONAME + pjmedia_rtcp_init @ 103 NONAME + pjmedia_rtcp_rx_rtcp @ 104 NONAME + pjmedia_rtcp_rx_rtp @ 105 NONAME + pjmedia_rtcp_tx_rtp @ 106 NONAME + pjmedia_rtp_decode_rtp @ 107 NONAME + pjmedia_rtp_encode_rtp @ 108 NONAME + pjmedia_rtp_session_init @ 109 NONAME + pjmedia_rtp_session_update @ 110 NONAME + pjmedia_session_check_dtmf @ 111 NONAME + pjmedia_session_create @ 112 NONAME + pjmedia_session_destroy @ 113 NONAME + pjmedia_session_dial_dtmf @ 114 NONAME + pjmedia_session_enum_streams @ 115 NONAME + pjmedia_session_get_dtmf @ 116 NONAME + pjmedia_session_get_info @ 117 NONAME + pjmedia_session_get_port @ 118 NONAME + pjmedia_session_get_stream_stat @ 119 NONAME + pjmedia_session_info_from_sdp @ 120 NONAME + pjmedia_session_pause @ 121 NONAME + pjmedia_session_pause_stream @ 122 NONAME + pjmedia_session_resume @ 123 NONAME + pjmedia_session_resume_stream @ 124 NONAME + pjmedia_session_set_dtmf_callback @ 125 NONAME + pjmedia_silence_det_apply @ 126 NONAME + pjmedia_silence_det_create @ 127 NONAME + pjmedia_silence_det_detect @ 128 NONAME + pjmedia_silence_det_disable @ 129 NONAME + pjmedia_silence_det_set_adaptive @ 130 NONAME + pjmedia_silence_det_set_fixed @ 131 NONAME + pjmedia_silence_det_set_name @ 132 NONAME + pjmedia_silence_det_set_params @ 133 NONAME + pjmedia_snd_port_connect @ 134 NONAME + pjmedia_snd_port_create @ 135 NONAME + pjmedia_snd_port_create_player @ 136 NONAME + pjmedia_snd_port_create_rec @ 137 NONAME + pjmedia_snd_port_destroy @ 138 NONAME + pjmedia_snd_port_disconnect @ 139 NONAME + pjmedia_snd_port_get_ec_tail @ 140 NONAME + pjmedia_snd_port_get_port @ 141 NONAME + pjmedia_snd_port_get_snd_stream @ 142 NONAME + pjmedia_snd_port_set_ec @ 143 NONAME + pjmedia_splitcomb_create @ 144 NONAME + pjmedia_splitcomb_create_rev_channel @ 145 NONAME + pjmedia_splitcomb_set_channel @ 146 NONAME + pjmedia_stream_check_dtmf @ 147 NONAME + pjmedia_stream_create @ 148 NONAME + pjmedia_stream_destroy @ 149 NONAME + pjmedia_stream_dial_dtmf @ 150 NONAME + pjmedia_stream_get_dtmf @ 151 NONAME + pjmedia_stream_get_port @ 152 NONAME + pjmedia_stream_get_stat @ 153 NONAME + pjmedia_stream_get_transport @ 154 NONAME + pjmedia_stream_info_from_sdp @ 155 NONAME + pjmedia_stream_pause @ 156 NONAME + pjmedia_stream_resume @ 157 NONAME + pjmedia_stream_set_dtmf_callback @ 158 NONAME + pjmedia_stream_start @ 159 NONAME + pjmedia_strerror @ 160 NONAME + pjmedia_tonegen_create @ 161 NONAME + pjmedia_tonegen_create2 @ 162 NONAME + pjmedia_tonegen_get_digit_map @ 163 NONAME + pjmedia_tonegen_is_busy @ 164 NONAME + pjmedia_tonegen_play @ 165 NONAME + pjmedia_tonegen_play_digits @ 166 NONAME + pjmedia_tonegen_set_digit_map @ 167 NONAME + pjmedia_tonegen_stop @ 168 NONAME + pjmedia_transport_udp_attach @ 169 NONAME + pjmedia_transport_udp_close @ 170 NONAME + pjmedia_transport_udp_create @ 171 NONAME + pjmedia_transport_udp_create2 @ 172 NONAME + pjmedia_transport_udp_get_info @ 173 NONAME + pjmedia_transport_udp_simulate_lost @ 174 NONAME + pjmedia_wav_player_port_create @ 175 NONAME + pjmedia_wav_player_port_get_pos @ 176 NONAME + pjmedia_wav_player_port_set_pos @ 177 NONAME + pjmedia_wav_player_set_eof_cb @ 178 NONAME + pjmedia_wav_playlist_create @ 179 NONAME + pjmedia_wav_playlist_set_eof_cb @ 180 NONAME + pjmedia_wav_writer_port_create @ 181 NONAME + pjmedia_wav_writer_port_get_pos @ 182 NONAME + pjmedia_wav_writer_port_set_cb @ 183 NONAME + pjmedia_wave_hdr_file_to_host @ 184 NONAME + pjmedia_wave_hdr_host_to_file @ 185 NONAME diff --git a/build.symbian/pjproject.cww b/build.symbian/pjproject.cww index 445369f73..bf5fb9354 100644 --- a/build.symbian/pjproject.cww +++ b/build.symbian/pjproject.cww @@ -54,7 +54,7 @@ 0 59420 1.000000 - 294 + 274 4294967294 4294967294 @@ -79,7 +79,7 @@ 0 59420 1.000000 - 294 + 274 4294967294 4294967294 @@ -104,132 +104,7 @@ 0 59420 1.000000 - 294 - - 4294967294 - 4294967294 - - - - - -1 - 0 - pjmedia.mcp - - 0 - 0 - - - 347 - 128 - - - 1 - 0 - 0 - 59420 - 1.000000 - 294 - - 4294967294 - 4294967294 - - - - - -1 - 0 - pjsip.mcp - - 0 - 0 - - - 347 - 128 - - - 1 - 0 - 0 - 59420 - 1.000000 - 294 - - 4294967294 - 4294967294 - - - - - -1 - 0 - pjsip_ua.mcp - - 548 - 123 - - - 400 - 372 - - - 1 - 0 - 0 - 59420 - 1.000000 - 294 - - 4294967294 - 4294967294 - - - - - -1 - 0 - pjsip_simple.mcp - - 0 - 0 - - - 347 - 128 - - - 1 - 0 - 0 - 59420 - 1.000000 - 294 - - 4294967294 - 4294967294 - - - - - -1 - 0 - pjsua_lib.mcp - - 634 - 231 - - - 347 - 128 - - - 1 - 0 - 0 - 59420 - 1.000000 - 294 + 274 4294967294 4294967294 @@ -254,7 +129,157 @@ 0 59420 1.000000 - 294 + 274 + + 4294967294 + 4294967294 + + + + + -1 + 0 + pjmedia.mcp + + 0 + 0 + + + 347 + 128 + + + 1 + 0 + 0 + 59420 + 1.000000 + 274 + + 4294967294 + 4294967294 + + + + + -1 + 0 + pjsdp.mcp + + 0 + 0 + + + 347 + 128 + + + 1 + 0 + 0 + 59420 + 1.000000 + 274 + + 4294967294 + 4294967294 + + + + + -1 + 0 + pjsip.mcp + + 0 + 0 + + + 347 + 128 + + + 1 + 0 + 0 + 59420 + 1.000000 + 274 + + 4294967294 + 4294967294 + + + + + -1 + 0 + pjsip_simple.mcp + + 0 + 0 + + + 347 + 128 + + + 1 + 0 + 0 + 59420 + 1.000000 + 274 + + 4294967294 + 4294967294 + + + + + -1 + 0 + pjsip_ua.mcp + + 548 + 123 + + + 400 + 372 + + + 1 + 0 + 0 + 59420 + 1.000000 + 274 + + 4294967294 + 4294967294 + + + + + -1 + 0 + pjsua_lib.mcp + + 634 + 231 + + + 347 + 128 + + + 1 + 0 + 0 + 59420 + 1.000000 + 274 4294967294 4294967294 @@ -279,83 +304,11 @@ 0 59420 1.000000 - 294 + 274 4294967294 4294967294 - - -2147483648 - 36 - - 4 - 23 - - - 534 - 921 - - - 0 - - - - - - - - - - - - - -2147483648 - 20 - - 4 - 23 - - - 1008 - 2142 - - - 0 - - - - - - - - - - - - - -2147483648 - 23 - - 6 - 81 - - - 566 - 477 - - - 0 - - - - - - - - - - - diff --git a/build.symbian/pjsdp.mmp b/build.symbian/pjsdp.mmp index 3ff46f1a8..3d5e4d573 100644 --- a/build.symbian/pjsdp.mmp +++ b/build.symbian/pjsdp.mmp @@ -1,8 +1,23 @@ +#if defined(EKA2) +TARGET pjsdp.dll +TARGETTYPE dll +UID 0x1000008d 0xA0004296 +CAPABILITY None +LIBRARY pjlib_util.lib pjlib.lib charconv.lib euser.lib estlib.lib +MACRO PJ_DLL +MACRO PJ_EXPORTING + +DEFFILE .\pjsdp.def + +#else + TARGET pjsdp.lib TARGETTYPE lib UID 0x100039CE 0x10004299 VENDORID 0x70000001 +#endif + SOURCEPATH ..\pjmedia\src\pjmedia OPTION CW -lang c++ diff --git a/build.symbian/pjsdpU.def b/build.symbian/pjsdpU.def new file mode 100644 index 000000000..569193d01 --- /dev/null +++ b/build.symbian/pjsdpU.def @@ -0,0 +1,45 @@ +EXPORTS + pjmedia_sdp_attr_add @ 1 NONAME + pjmedia_sdp_attr_clone @ 2 NONAME + pjmedia_sdp_attr_create @ 3 NONAME + pjmedia_sdp_attr_find @ 4 NONAME + pjmedia_sdp_attr_find2 @ 5 NONAME + pjmedia_sdp_attr_get_fmtp @ 6 NONAME + pjmedia_sdp_attr_get_rtcp @ 7 NONAME + pjmedia_sdp_attr_get_rtpmap @ 8 NONAME + pjmedia_sdp_attr_remove @ 9 NONAME + pjmedia_sdp_attr_remove_all @ 10 NONAME + pjmedia_sdp_attr_to_rtpmap @ 11 NONAME + pjmedia_sdp_conn_clone @ 12 NONAME + pjmedia_sdp_media_add_attr @ 13 NONAME + pjmedia_sdp_media_clone @ 14 NONAME + pjmedia_sdp_media_cmp @ 15 NONAME + pjmedia_sdp_media_find_attr @ 16 NONAME + pjmedia_sdp_media_find_attr2 @ 17 NONAME + pjmedia_sdp_media_remove_all_attr @ 18 NONAME + pjmedia_sdp_media_remove_attr @ 19 NONAME + pjmedia_sdp_neg_cancel_offer @ 20 NONAME + pjmedia_sdp_neg_create_w_local_offer @ 21 NONAME + pjmedia_sdp_neg_create_w_remote_offer @ 22 NONAME + pjmedia_sdp_neg_get_active_local @ 23 NONAME + pjmedia_sdp_neg_get_active_remote @ 24 NONAME + pjmedia_sdp_neg_get_neg_local @ 25 NONAME + pjmedia_sdp_neg_get_neg_remote @ 26 NONAME + pjmedia_sdp_neg_get_state @ 27 NONAME + pjmedia_sdp_neg_has_local_answer @ 28 NONAME + pjmedia_sdp_neg_modify_local_offer @ 29 NONAME + pjmedia_sdp_neg_negotiate @ 30 NONAME + pjmedia_sdp_neg_send_local_offer @ 31 NONAME + pjmedia_sdp_neg_set_local_answer @ 32 NONAME + pjmedia_sdp_neg_set_prefer_remote_codec_order @ 33 NONAME + pjmedia_sdp_neg_set_remote_answer @ 34 NONAME + pjmedia_sdp_neg_set_remote_offer @ 35 NONAME + pjmedia_sdp_neg_state_str @ 36 NONAME + pjmedia_sdp_neg_was_answer_remote @ 37 NONAME + pjmedia_sdp_parse @ 38 NONAME + pjmedia_sdp_print @ 39 NONAME + pjmedia_sdp_rtpmap_to_attr @ 40 NONAME + pjmedia_sdp_session_clone @ 41 NONAME + pjmedia_sdp_session_cmp @ 42 NONAME + pjmedia_sdp_validate @ 43 NONAME + pjmedia_strerror @ 44 NONAME diff --git a/build.symbian/pjsip.mmp b/build.symbian/pjsip.mmp index cabb74be9..efaf9bd53 100644 --- a/build.symbian/pjsip.mmp +++ b/build.symbian/pjsip.mmp @@ -1,8 +1,26 @@ +#if defined(EKA2) + +TARGET pjsip.dll +TARGETTYPE dll + +UID 0x1000008d 0xA0004293 + +CAPABILITY None +LIBRARY pjsdp.lib pjlib_util.lib pjlib.lib esock.lib insock.lib charconv.lib euser.lib estlib.lib +MACRO PJ_DLL +MACRO PJ_EXPORTING + +DEFFILE .\pjsip.def + +#else + TARGET pjsip.lib TARGETTYPE lib UID 0x100039CE 0x10004299 VENDORID 0x70000001 +#endif + SOURCEPATH ..\pjsip\src\pjsip MACRO PJ_M_I386=1 @@ -43,5 +61,4 @@ SYSTEMINCLUDE ..\pjsip\include SYSTEMINCLUDE \epoc32\include SYSTEMINCLUDE \epoc32\include\libc -CAPABILITY None diff --git a/build.symbian/pjsipU.def b/build.symbian/pjsipU.def new file mode 100644 index 000000000..57b0ecab5 --- /dev/null +++ b/build.symbian/pjsipU.def @@ -0,0 +1,269 @@ +EXPORTS + pjsip_accept_hdr_create @ 1 NONAME + pjsip_accept_hdr_init @ 2 NONAME + pjsip_ack_method @ 3 NONAME + pjsip_allow_hdr_create @ 4 NONAME + pjsip_allow_hdr_init @ 5 NONAME + pjsip_auth_clt_clone @ 6 NONAME + pjsip_auth_clt_init @ 7 NONAME + pjsip_auth_clt_init_req @ 8 NONAME + pjsip_auth_clt_reinit_req @ 9 NONAME + pjsip_auth_clt_set_credentials @ 10 NONAME + pjsip_auth_deinit_parser @ 11 NONAME + pjsip_auth_init_parser @ 12 NONAME + pjsip_auth_srv_challenge @ 13 NONAME + pjsip_auth_srv_init @ 14 NONAME + pjsip_auth_srv_verify @ 15 NONAME + pjsip_authorization_hdr_create @ 16 NONAME + pjsip_bye_method @ 17 NONAME + pjsip_calculate_branch_id @ 18 NONAME + pjsip_cancel_method @ 19 NONAME + pjsip_cid_hdr_create @ 20 NONAME + pjsip_cid_hdr_init @ 21 NONAME + pjsip_clen_hdr_create @ 22 NONAME + pjsip_clen_hdr_init @ 23 NONAME + pjsip_clone_text_data @ 24 NONAME + pjsip_concat_param_imp @ 25 NONAME + pjsip_contact_hdr_create @ 26 NONAME + pjsip_contact_hdr_init @ 27 NONAME + pjsip_cseq_hdr_create @ 28 NONAME + pjsip_cseq_hdr_init @ 29 NONAME + pjsip_ctype_hdr_create @ 30 NONAME + pjsip_ctype_hdr_init @ 31 NONAME + pjsip_dlg_add_usage @ 32 NONAME + pjsip_dlg_create_request @ 33 NONAME + pjsip_dlg_create_response @ 34 NONAME + pjsip_dlg_create_uac @ 35 NONAME + pjsip_dlg_create_uas @ 36 NONAME + pjsip_dlg_dec_lock @ 37 NONAME + pjsip_dlg_dec_session @ 38 NONAME + pjsip_dlg_fork @ 39 NONAME + pjsip_dlg_get_mod_data @ 40 NONAME + pjsip_dlg_inc_lock @ 41 NONAME + pjsip_dlg_inc_session @ 42 NONAME + pjsip_dlg_modify_response @ 43 NONAME + pjsip_dlg_respond @ 44 NONAME + pjsip_dlg_send_request @ 45 NONAME + pjsip_dlg_send_response @ 46 NONAME + pjsip_dlg_set_mod_data @ 47 NONAME + pjsip_dlg_set_route_set @ 48 NONAME + pjsip_dlg_set_transport @ 49 NONAME + pjsip_dlg_terminate @ 50 NONAME + pjsip_dlg_try_inc_lock @ 51 NONAME + pjsip_endpt_acquire_transport @ 52 NONAME + pjsip_endpt_add_capability @ 53 NONAME + pjsip_endpt_cancel_timer @ 54 NONAME + pjsip_endpt_create @ 55 NONAME + pjsip_endpt_create_ack @ 56 NONAME + pjsip_endpt_create_cancel @ 57 NONAME + pjsip_endpt_create_pool @ 58 NONAME + pjsip_endpt_create_request @ 59 NONAME + pjsip_endpt_create_request_from_hdr @ 60 NONAME + pjsip_endpt_create_request_fwd @ 61 NONAME + pjsip_endpt_create_resolver @ 62 NONAME + pjsip_endpt_create_response @ 63 NONAME + pjsip_endpt_create_response_fwd @ 64 NONAME + pjsip_endpt_create_tdata @ 65 NONAME + pjsip_endpt_destroy @ 66 NONAME + pjsip_endpt_dump @ 67 NONAME + pjsip_endpt_get_capability @ 68 NONAME + pjsip_endpt_get_ioqueue @ 69 NONAME + pjsip_endpt_get_request_headers @ 70 NONAME + pjsip_endpt_get_resolver @ 71 NONAME + pjsip_endpt_get_timer_heap @ 72 NONAME + pjsip_endpt_get_tpmgr @ 73 NONAME + pjsip_endpt_handle_events @ 74 NONAME + pjsip_endpt_handle_events2 @ 75 NONAME + pjsip_endpt_has_capability @ 76 NONAME + pjsip_endpt_log_error @ 77 NONAME + pjsip_endpt_name @ 78 NONAME + pjsip_endpt_register_module @ 79 NONAME + pjsip_endpt_release_pool @ 80 NONAME + pjsip_endpt_resolve @ 81 NONAME + pjsip_endpt_respond @ 82 NONAME + pjsip_endpt_respond_stateless @ 83 NONAME + pjsip_endpt_schedule_timer @ 84 NONAME + pjsip_endpt_send_raw @ 85 NONAME + pjsip_endpt_send_raw_to_uri @ 86 NONAME + pjsip_endpt_send_request @ 87 NONAME + pjsip_endpt_send_request_stateless @ 88 NONAME + pjsip_endpt_send_response @ 89 NONAME + pjsip_endpt_send_response2 @ 90 NONAME + pjsip_endpt_set_resolver @ 91 NONAME + pjsip_endpt_unregister_module @ 92 NONAME + pjsip_event_str @ 93 NONAME + pjsip_expires_hdr_create @ 94 NONAME + pjsip_expires_hdr_init @ 95 NONAME + pjsip_find_msg @ 96 NONAME + pjsip_from_hdr_create @ 97 NONAME + pjsip_from_hdr_init @ 98 NONAME + pjsip_fromto_hdr_set_from @ 99 NONAME + pjsip_fromto_hdr_set_to @ 100 NONAME + pjsip_generic_array_hdr_create @ 101 NONAME + pjsip_generic_array_hdr_init @ 102 NONAME + pjsip_generic_int_hdr_create @ 103 NONAME + pjsip_generic_int_hdr_init @ 104 NONAME + pjsip_generic_string_hdr_create @ 105 NONAME + pjsip_generic_string_hdr_init @ 106 NONAME + pjsip_generic_string_hdr_init2 @ 107 NONAME + pjsip_get_ack_method @ 108 NONAME + pjsip_get_bye_method @ 109 NONAME + pjsip_get_cancel_method @ 110 NONAME + pjsip_get_invite_method @ 111 NONAME + pjsip_get_options_method @ 112 NONAME + pjsip_get_register_method @ 113 NONAME + pjsip_get_request_dest @ 114 NONAME + pjsip_get_response_addr @ 115 NONAME + pjsip_get_status_text @ 116 NONAME + pjsip_hdr_clone @ 117 NONAME + pjsip_hdr_print_on @ 118 NONAME + pjsip_hdr_shallow_clone @ 119 NONAME + pjsip_invite_method @ 120 NONAME + pjsip_loop_set_delay @ 121 NONAME + pjsip_loop_set_discard @ 122 NONAME + pjsip_loop_set_failure @ 123 NONAME + pjsip_loop_set_recv_delay @ 124 NONAME + pjsip_loop_set_send_callback_delay @ 125 NONAME + pjsip_loop_start @ 126 NONAME + pjsip_max_fwd_hdr_create @ 127 NONAME + pjsip_max_fwd_hdr_init @ 128 NONAME + pjsip_method_cmp @ 129 NONAME + pjsip_method_copy @ 130 NONAME + pjsip_method_creates_dialog @ 131 NONAME + pjsip_method_init @ 132 NONAME + pjsip_method_init_np @ 133 NONAME + pjsip_method_set @ 134 NONAME + pjsip_min_expires_hdr_create @ 135 NONAME + pjsip_min_expires_hdr_init @ 136 NONAME + pjsip_msg_body_clone @ 137 NONAME + pjsip_msg_body_copy @ 138 NONAME + pjsip_msg_body_create @ 139 NONAME + pjsip_msg_clone @ 140 NONAME + pjsip_msg_create @ 141 NONAME + pjsip_msg_find_hdr @ 142 NONAME + pjsip_msg_find_hdr_by_name @ 143 NONAME + pjsip_msg_find_remove_hdr @ 144 NONAME + pjsip_msg_print @ 145 NONAME + pjsip_name_addr_assign @ 146 NONAME + pjsip_name_addr_create @ 147 NONAME + pjsip_name_addr_init @ 148 NONAME + pjsip_options_method @ 149 NONAME + pjsip_param_cfind @ 150 NONAME + pjsip_param_clone @ 151 NONAME + pjsip_param_find @ 152 NONAME + pjsip_param_print_on @ 153 NONAME + pjsip_param_shallow_clone @ 154 NONAME + pjsip_parse_end_hdr_imp @ 155 NONAME + pjsip_parse_hdr @ 156 NONAME + pjsip_parse_msg @ 157 NONAME + pjsip_parse_param_imp @ 158 NONAME + pjsip_parse_rdata @ 159 NONAME + pjsip_parse_status_line @ 160 NONAME + pjsip_parse_uri @ 161 NONAME + pjsip_parse_uri_param_imp @ 162 NONAME + pjsip_parser_const @ 163 NONAME + pjsip_print_text_body @ 164 NONAME + pjsip_process_route_set @ 165 NONAME + pjsip_proxy_authenticate_hdr_create @ 166 NONAME + pjsip_proxy_authorization_hdr_create @ 167 NONAME + pjsip_rdata_get_dlg @ 168 NONAME + pjsip_rdata_get_tsx @ 169 NONAME + pjsip_register_hdr_parser @ 170 NONAME + pjsip_register_method @ 171 NONAME + pjsip_register_uri_parser @ 172 NONAME + pjsip_require_hdr_create @ 173 NONAME + pjsip_require_hdr_init @ 174 NONAME + pjsip_resolve @ 175 NONAME + pjsip_resolver_create @ 176 NONAME + pjsip_resolver_destroy @ 177 NONAME + pjsip_resolver_get_resolver @ 178 NONAME + pjsip_resolver_set_resolver @ 179 NONAME + pjsip_retry_after_hdr_create @ 180 NONAME + pjsip_retry_after_hdr_init @ 181 NONAME + pjsip_role_name @ 182 NONAME + pjsip_route_hdr_create @ 183 NONAME + pjsip_route_hdr_init @ 184 NONAME + pjsip_routing_hdr_set_route @ 185 NONAME + pjsip_routing_hdr_set_rr @ 186 NONAME + pjsip_rr_hdr_create @ 187 NONAME + pjsip_rr_hdr_init @ 188 NONAME + pjsip_rx_data_get_info @ 189 NONAME + pjsip_sip_uri_assign @ 190 NONAME + pjsip_sip_uri_create @ 191 NONAME + pjsip_sip_uri_init @ 192 NONAME + pjsip_sip_uri_set_secure @ 193 NONAME + pjsip_strerror @ 194 NONAME + pjsip_supported_hdr_create @ 195 NONAME + pjsip_supported_hdr_init @ 196 NONAME + pjsip_tcp_transport_start @ 197 NONAME + pjsip_tcp_transport_start2 @ 198 NONAME + pjsip_tel_nb_cmp @ 199 NONAME + pjsip_tel_uri_create @ 200 NONAME + pjsip_to_hdr_create @ 201 NONAME + pjsip_to_hdr_init @ 202 NONAME + pjsip_tpmgr_acquire_transport @ 203 NONAME + pjsip_tpmgr_create @ 204 NONAME + pjsip_tpmgr_destroy @ 205 NONAME + pjsip_tpmgr_dump_transports @ 206 NONAME + pjsip_tpmgr_find_local_addr @ 207 NONAME + pjsip_tpmgr_get_transport_count @ 208 NONAME + pjsip_tpmgr_receive_packet @ 209 NONAME + pjsip_tpmgr_register_tpfactory @ 210 NONAME + pjsip_tpmgr_send_raw @ 211 NONAME + pjsip_tpmgr_unregister_tpfactory @ 212 NONAME + pjsip_tpselector_add_ref @ 213 NONAME + pjsip_tpselector_dec_ref @ 214 NONAME + pjsip_transport_add_ref @ 215 NONAME + pjsip_transport_dec_ref @ 216 NONAME + pjsip_transport_destroy @ 217 NONAME + pjsip_transport_get_default_port_for_type @ 218 NONAME + pjsip_transport_get_flag_from_type @ 219 NONAME + pjsip_transport_get_type_from_flag @ 220 NONAME + pjsip_transport_get_type_from_name @ 221 NONAME + pjsip_transport_get_type_name @ 222 NONAME + pjsip_transport_register @ 223 NONAME + pjsip_transport_register_type @ 224 NONAME + pjsip_transport_send @ 225 NONAME + pjsip_transport_shutdown @ 226 NONAME + pjsip_tsx_create_key @ 227 NONAME + pjsip_tsx_create_uac @ 228 NONAME + pjsip_tsx_create_uas @ 229 NONAME + pjsip_tsx_get_dlg @ 230 NONAME + pjsip_tsx_layer_destroy @ 231 NONAME + pjsip_tsx_layer_dump @ 232 NONAME + pjsip_tsx_layer_find_tsx @ 233 NONAME + pjsip_tsx_layer_init_module @ 234 NONAME + pjsip_tsx_layer_instance @ 235 NONAME + pjsip_tsx_recv_msg @ 236 NONAME + pjsip_tsx_send_msg @ 237 NONAME + pjsip_tsx_set_transport @ 238 NONAME + pjsip_tsx_state_str @ 239 NONAME + pjsip_tsx_stop_retransmit @ 240 NONAME + pjsip_tsx_terminate @ 241 NONAME + pjsip_tx_data_add_ref @ 242 NONAME + pjsip_tx_data_create @ 243 NONAME + pjsip_tx_data_dec_ref @ 244 NONAME + pjsip_tx_data_get_info @ 245 NONAME + pjsip_tx_data_invalidate_msg @ 246 NONAME + pjsip_tx_data_is_valid @ 247 NONAME + pjsip_tx_data_set_transport @ 248 NONAME + pjsip_ua_destroy @ 249 NONAME + pjsip_ua_dump @ 250 NONAME + pjsip_ua_find_dialog @ 251 NONAME + pjsip_ua_get_endpt @ 252 NONAME + pjsip_ua_init_module @ 253 NONAME + pjsip_ua_instance @ 254 NONAME + pjsip_ua_register_dlg @ 255 NONAME + pjsip_ua_unregister_dlg @ 256 NONAME + pjsip_udp_transport_attach @ 257 NONAME + pjsip_udp_transport_get_socket @ 258 NONAME + pjsip_udp_transport_pause @ 259 NONAME + pjsip_udp_transport_restart @ 260 NONAME + pjsip_udp_transport_start @ 261 NONAME + pjsip_unsupported_hdr_create @ 262 NONAME + pjsip_unsupported_hdr_init @ 263 NONAME + pjsip_via_hdr_create @ 264 NONAME + pjsip_via_hdr_init @ 265 NONAME + pjsip_warning_hdr_create @ 266 NONAME + pjsip_warning_hdr_create_from_status @ 267 NONAME + pjsip_www_authenticate_hdr_create @ 268 NONAME diff --git a/build.symbian/pjsip_simple.mmp b/build.symbian/pjsip_simple.mmp index f77c5b45d..fafbf8526 100644 --- a/build.symbian/pjsip_simple.mmp +++ b/build.symbian/pjsip_simple.mmp @@ -1,8 +1,26 @@ +#if defined(EKA2) + +TARGET pjsip_simple.dll +TARGETTYPE dll + +UID 0x1000008d 0xA0004292 + +CAPABILITY None +LIBRARY pjsip.lib pjsdp.lib pjlib_util.lib pjlib.lib esock.lib insock.lib charconv.lib euser.lib estlib.lib +MACRO PJ_DLL +MACRO PJ_EXPORTING + +DEFFILE .\pjsip_simple.def + +#else + TARGET pjsip_simple.lib TARGETTYPE lib UID 0x100039CE 0x10004299 VENDORID 0x70000001 +#endif + SOURCEPATH ..\pjsip\src\pjsip-simple MACRO PJ_M_I386=1 @@ -32,5 +50,3 @@ SYSTEMINCLUDE ..\pjsip\include SYSTEMINCLUDE \epoc32\include SYSTEMINCLUDE \epoc32\include\libc -CAPABILITY None - diff --git a/build.symbian/pjsip_simpleU.def b/build.symbian/pjsip_simpleU.def new file mode 100644 index 000000000..c3548cf3e --- /dev/null +++ b/build.symbian/pjsip_simpleU.def @@ -0,0 +1,93 @@ +EXPORTS + pjpidf_create @ 1 NONAME + pjpidf_parse @ 2 NONAME + pjpidf_pres_add_note @ 3 NONAME + pjpidf_pres_add_tuple @ 4 NONAME + pjpidf_pres_construct @ 5 NONAME + pjpidf_pres_find_tuple @ 6 NONAME + pjpidf_pres_get_first_note @ 7 NONAME + pjpidf_pres_get_first_tuple @ 8 NONAME + pjpidf_pres_get_next_note @ 9 NONAME + pjpidf_pres_get_next_tuple @ 10 NONAME + pjpidf_pres_remove_tuple @ 11 NONAME + pjpidf_print @ 12 NONAME + pjpidf_status_construct @ 13 NONAME + pjpidf_status_is_basic_open @ 14 NONAME + pjpidf_status_set_basic_open @ 15 NONAME + pjpidf_tuple_add_note @ 16 NONAME + pjpidf_tuple_construct @ 17 NONAME + pjpidf_tuple_get_contact @ 18 NONAME + pjpidf_tuple_get_contact_prio @ 19 NONAME + pjpidf_tuple_get_first_note @ 20 NONAME + pjpidf_tuple_get_id @ 21 NONAME + pjpidf_tuple_get_next_note @ 22 NONAME + pjpidf_tuple_get_status @ 23 NONAME + pjpidf_tuple_get_timestamp @ 24 NONAME + pjpidf_tuple_set_contact @ 25 NONAME + pjpidf_tuple_set_contact_prio @ 26 NONAME + 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 diff --git a/build.symbian/pjsip_ua.mmp b/build.symbian/pjsip_ua.mmp index 08ab24521..3dde4c571 100644 --- a/build.symbian/pjsip_ua.mmp +++ b/build.symbian/pjsip_ua.mmp @@ -1,8 +1,26 @@ +#if defined(EKA2) + +TARGET pjsip_ua.dll +TARGETTYPE dll + +UID 0x1000008d 0xA0004291 + +CAPABILITY None +LIBRARY pjsip_simple.lib pjsip.lib pjsdp.lib pjlib_util.lib pjlib.lib esock.lib insock.lib charconv.lib euser.lib estlib.lib +MACRO PJ_DLL +MACRO PJ_EXPORTING + +DEFFILE .\pjsip_ua.def + +#else + TARGET pjsip_ua.lib TARGETTYPE lib UID 0x100039CE 0x10004299 VENDORID 0x70000001 +#endif + SOURCEPATH ..\pjsip\src\pjsip-ua MACRO PJ_M_I386=1 @@ -26,5 +44,4 @@ SYSTEMINCLUDE ..\pjmedia\include SYSTEMINCLUDE \epoc32\include SYSTEMINCLUDE \epoc32\include\libc -CAPABILITY None diff --git a/build.symbian/pjsip_uaU.def b/build.symbian/pjsip_uaU.def new file mode 100644 index 000000000..9b7edcc86 --- /dev/null +++ b/build.symbian/pjsip_uaU.def @@ -0,0 +1,46 @@ +EXPORTS + pjsip_create_sdp_body @ 1 NONAME + pjsip_dlg_get_inv_session @ 2 NONAME + pjsip_get_refer_method @ 3 NONAME + pjsip_inv_answer @ 4 NONAME + pjsip_inv_create_uac @ 5 NONAME + pjsip_inv_create_uas @ 6 NONAME + pjsip_inv_end_session @ 7 NONAME + pjsip_inv_initial_answer @ 8 NONAME + pjsip_inv_invite @ 9 NONAME + pjsip_inv_reinvite @ 10 NONAME + pjsip_inv_send_msg @ 11 NONAME + pjsip_inv_set_sdp_answer @ 12 NONAME + pjsip_inv_state_name @ 13 NONAME + pjsip_inv_terminate @ 14 NONAME + pjsip_inv_update @ 15 NONAME + pjsip_inv_usage_init @ 16 NONAME + pjsip_inv_usage_instance @ 17 NONAME + pjsip_inv_verify_request @ 18 NONAME + pjsip_refer_method @ 19 NONAME + pjsip_regc_add_headers @ 20 NONAME + pjsip_regc_create @ 21 NONAME + pjsip_regc_destroy @ 22 NONAME + pjsip_regc_get_info @ 23 NONAME + pjsip_regc_get_pool @ 24 NONAME + pjsip_regc_init @ 25 NONAME + pjsip_regc_register @ 26 NONAME + pjsip_regc_send @ 27 NONAME + pjsip_regc_set_credentials @ 28 NONAME + pjsip_regc_set_route_set @ 29 NONAME + pjsip_regc_set_transport @ 30 NONAME + pjsip_regc_unregister @ 31 NONAME + pjsip_regc_unregister_all @ 32 NONAME + pjsip_regc_update_contact @ 33 NONAME + pjsip_regc_update_expires @ 34 NONAME + pjsip_replaces_hdr_create @ 35 NONAME + pjsip_replaces_init_module @ 36 NONAME + pjsip_replaces_verify_request @ 37 NONAME + pjsip_xfer_accept @ 38 NONAME + pjsip_xfer_create_uac @ 39 NONAME + pjsip_xfer_create_uas @ 40 NONAME + pjsip_xfer_current_notify @ 41 NONAME + pjsip_xfer_init_module @ 42 NONAME + pjsip_xfer_initiate @ 43 NONAME + pjsip_xfer_notify @ 44 NONAME + pjsip_xfer_send_request @ 45 NONAME diff --git a/build.symbian/pjsua_lib.mmp b/build.symbian/pjsua_lib.mmp index 6dc316cc3..97bc38f5f 100644 --- a/build.symbian/pjsua_lib.mmp +++ b/build.symbian/pjsua_lib.mmp @@ -1,8 +1,26 @@ +#if defined(EKA2) + +TARGET pjsua_lib.dll +TARGETTYPE dll + +UID 0x1000008d 0xA0004290 + +CAPABILITY None +LIBRARY pjsip_ua.lib pjsip_simple.lib pjsip.lib pjmedia.lib null_audio.lib pjsdp.lib pjnath.lib pjlib_util.lib pjlib.lib esock.lib insock.lib charconv.lib euser.lib estlib.lib +MACRO PJ_DLL +MACRO PJ_EXPORTING + +DEFFILE .\pjsua_lib.def + +#else + TARGET pjsua_lib.lib TARGETTYPE lib UID 0x100039CE 0x10004299 VENDORID 0x70000001 +#endif + SOURCEPATH ..\pjsip\src\pjsua-lib MACRO PJ_M_I386=1 @@ -28,5 +46,4 @@ SYSTEMINCLUDE ..\pjsip\include SYSTEMINCLUDE \epoc32\include SYSTEMINCLUDE \epoc32\include\libc -CAPABILITY None diff --git a/build.symbian/pjsua_libU.def b/build.symbian/pjsua_libU.def new file mode 100644 index 000000000..be8569d64 --- /dev/null +++ b/build.symbian/pjsua_libU.def @@ -0,0 +1,114 @@ +EXPORTS + pjsip_cred_dup @ 1 NONAME + pjsua_acc_add @ 2 NONAME + pjsua_acc_add_local @ 3 NONAME + pjsua_acc_config_default @ 4 NONAME + pjsua_acc_create_request @ 5 NONAME + pjsua_acc_create_uac_contact @ 6 NONAME + pjsua_acc_create_uas_contact @ 7 NONAME + pjsua_acc_del @ 8 NONAME + pjsua_acc_enum_info @ 9 NONAME + pjsua_acc_find_for_incoming @ 10 NONAME + pjsua_acc_find_for_outgoing @ 11 NONAME + pjsua_acc_get_count @ 12 NONAME + pjsua_acc_get_default @ 13 NONAME + pjsua_acc_get_info @ 14 NONAME + pjsua_acc_is_valid @ 15 NONAME + 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 diff --git a/build.symbian/symbian_ua.mmp b/build.symbian/symbian_ua.mmp index 46075da95..ee243f230 100644 --- a/build.symbian/symbian_ua.mmp +++ b/build.symbian/symbian_ua.mmp @@ -7,6 +7,7 @@ SOURCEPATH ..\pjsip-apps\src\symbian_ua MACRO PJ_M_I386=1 MACRO PJ_SYMBIAN=1 +MACRO PJ_DLL=1 // Test files @@ -25,6 +26,6 @@ SYSTEMINCLUDE \epoc32\include SYSTEMINCLUDE \epoc32\include\libc LIBRARY esock.lib insock.lib charconv.lib euser.lib estlib.lib eexe.lib -STATICLIBRARY null_audio.lib pjsua_lib.lib pjsip_ua.lib pjsip_simple.lib pjsip.lib pjsdp.lib pjmedia.lib pjnath.lib pjlib_util.lib pjlib.lib ecrt0.lib +LIBRARY null_audio.lib pjsua_lib.lib pjsip_ua.lib pjsip_simple.lib pjsip.lib pjsdp.lib pjmedia.lib pjnath.lib pjlib_util.lib pjlib.lib ecrt0.lib CAPABILITY None diff --git a/pjlib/include/pj/guid.h b/pjlib/include/pj/guid.h index 3eea11a30..a437646f0 100644 --- a/pjlib/include/pj/guid.h +++ b/pjlib/include/pj/guid.h @@ -55,8 +55,16 @@ PJ_BEGIN_DECL * * Regardless of the actual length of the GUID, it will not exceed * PJ_GUID_MAX_LENGTH characters. + * + * @see pj_GUID_STRING_LENGTH() + * @see PJ_GUID_MAX_LENGTH */ -extern const unsigned PJ_GUID_STRING_LENGTH; +PJ_DECL_DATA(const unsigned) PJ_GUID_STRING_LENGTH; + +/** + * Get #PJ_GUID_STRING_LENGTH constant. + */ +PJ_DECL(unsigned) pj_GUID_STRING_LENGTH(); /** * PJ_GUID_MAX_LENGTH specifies the maximum length of GUID string, diff --git a/pjlib/include/pj/pool.h b/pjlib/include/pj/pool.h index 5cb6aaf81..d12076fdd 100644 --- a/pjlib/include/pj/pool.h +++ b/pjlib/include/pj/pool.h @@ -614,8 +614,15 @@ typedef struct pj_pool_factory_policy /** * This constant denotes the exception number that will be thrown by default * memory factory policy when memory allocation fails. + * + * @see pj_NO_MEMORY_EXCEPTION() */ -extern int PJ_NO_MEMORY_EXCEPTION; +PJ_DECL_DATA(int) PJ_NO_MEMORY_EXCEPTION; + +/** + * Get #PJ_NO_MEMORY_EXCEPTION constant. + */ +PJ_DECL(int) pj_NO_MEMORY_EXCEPTION(); /** * This global variable points to default memory pool factory policy. diff --git a/pjlib/src/pj/guid_simple.c b/pjlib/src/pj/guid_simple.c index fecdd78f0..0f3d08534 100644 --- a/pjlib/src/pj/guid_simple.c +++ b/pjlib/src/pj/guid_simple.c @@ -21,7 +21,12 @@ #include #include -const unsigned PJ_GUID_STRING_LENGTH=20; +PJ_DEF_DATA(const unsigned) PJ_GUID_STRING_LENGTH=20; + +PJ_DEF(unsigned) pj_GUID_STRING_LENGTH() +{ + return PJ_GUID_STRING_LENGTH; +} static void init_mac_address(unsigned char mac_addr[16]) { diff --git a/pjlib/src/pj/guid_uuid.c b/pjlib/src/pj/guid_uuid.c index c4b46a5d0..c0d71f4b1 100644 --- a/pjlib/src/pj/guid_uuid.c +++ b/pjlib/src/pj/guid_uuid.c @@ -24,7 +24,12 @@ #include -const unsigned PJ_GUID_STRING_LENGTH=36; +PJ_DEF_DATA(const unsigned) PJ_GUID_STRING_LENGTH=36; + +PJ_DEF(unsigned) pj_GUID_STRING_LENGTH() +{ + return PJ_GUID_STRING_LENGTH; +} PJ_DEF(pj_str_t*) pj_generate_unique_string(pj_str_t *str) { diff --git a/pjlib/src/pj/guid_win32.c b/pjlib/src/pj/guid_win32.c index 41d3c5c24..1f1450519 100644 --- a/pjlib/src/pj/guid_win32.c +++ b/pjlib/src/pj/guid_win32.c @@ -24,7 +24,12 @@ #include -const unsigned PJ_GUID_STRING_LENGTH=32; +PJ_DEF_DATA(const unsigned) PJ_GUID_STRING_LENGTH=32; + +PJ_DEF(unsigned) pj_GUID_STRING_LENGTH() +{ + return PJ_GUID_STRING_LENGTH; +} PJ_INLINE(void) hex2digit(unsigned value, char *p) { diff --git a/pjlib/src/pj/os_symbian.h b/pjlib/src/pj/os_symbian.h index abfa7f049..512640a2f 100644 --- a/pjlib/src/pj/os_symbian.h +++ b/pjlib/src/pj/os_symbian.h @@ -25,9 +25,9 @@ #include #include #include -#include +#include #include -#include +#include #include #include diff --git a/pjlib/src/pj/pool.c b/pjlib/src/pj/pool.c index 9f47892df..26fd6bbec 100644 --- a/pjlib/src/pj/pool.c +++ b/pjlib/src/pj/pool.c @@ -32,7 +32,12 @@ #define LOG(expr) PJ_LOG(6,expr) -int PJ_NO_MEMORY_EXCEPTION; +PJ_DEF_DATA(int) PJ_NO_MEMORY_EXCEPTION; + +PJ_DEF(int) pj_NO_MEMORY_EXCEPTION() +{ + return PJ_NO_MEMORY_EXCEPTION; +} /* * Create new block. diff --git a/pjmedia/include/pjmedia/errno.h b/pjmedia/include/pjmedia/errno.h index 332d1e404..3b1f7cd33 100644 --- a/pjmedia/include/pjmedia/errno.h +++ b/pjmedia/include/pjmedia/errno.h @@ -521,6 +521,23 @@ PJ_BEGIN_DECL #define PJMEDIA_ESNDINSAMPLEFMT (PJMEDIA_ERRNO_START+203) /* 220203 */ +/** + * Get error message for the specified error code. Note that this + * function is only able to decode PJMEDIA specific error code. + * Application should use pj_strerror(), which should be able to + * decode all error codes belonging to all subsystems (e.g. pjlib, + * pjmedia, pjsip, etc). + * + * @param status The error code. + * @param buffer The buffer where to put the error message. + * @param bufsize Size of the buffer. + * + * @return The error message as NULL terminated string, + * wrapped with pj_str_t. + */ +PJ_DECL(pj_str_t) pjmedia_strerror( pj_status_t status, char *buffer, + pj_size_t bufsize); + PJ_END_DECL diff --git a/pjmedia/include/pjmedia/rtcp.h b/pjmedia/include/pjmedia/rtcp.h index 5d34e5f6f..b680d0ea4 100644 --- a/pjmedia/include/pjmedia/rtcp.h +++ b/pjmedia/include/pjmedia/rtcp.h @@ -309,8 +309,8 @@ PJ_DECL(void) pjmedia_rtcp_init( pjmedia_rtcp_session *session, * * @return PJ_SUCCESS on success. */ -PJ_DEF(pj_status_t) pjmedia_rtcp_get_ntp_time(const pjmedia_rtcp_session *sess, - pjmedia_rtcp_ntp_rec *ntp); +PJ_DECL(pj_status_t) pjmedia_rtcp_get_ntp_time(const pjmedia_rtcp_session *sess, + pjmedia_rtcp_ntp_rec *ntp); /** diff --git a/pjmedia/src/pjmedia/alaw_ulaw.c b/pjmedia/src/pjmedia/alaw_ulaw.c index 5fd97479b..7bb5c77f2 100644 --- a/pjmedia/src/pjmedia/alaw_ulaw.c +++ b/pjmedia/src/pjmedia/alaw_ulaw.c @@ -116,8 +116,7 @@ search( * For further information see John C. Bellamy's Digital Telephony, 1982, * John Wiley & Sons, pps 98-111 and 472-476. */ -PJ_DEF(pj_uint8_t) -pjmedia_linear2alaw( +PJ_DEF(pj_uint8_t) pjmedia_linear2alaw( int pcm_val) /* 2's complement (16-bit range) */ { int mask; @@ -152,8 +151,7 @@ pjmedia_linear2alaw( * alaw2linear() - Convert an A-law value to 16-bit linear PCM * */ -PJ_DEF(int) -pjmedia_alaw2linear( +PJ_DEF(int) pjmedia_alaw2linear( unsigned a_val) { int t; @@ -208,8 +206,7 @@ pjmedia_alaw2linear( * For further information see John C. Bellamy's Digital Telephony, 1982, * John Wiley & Sons, pps 98-111 and 472-476. */ -PJ_DECL(unsigned char) -pjmedia_linear2ulaw( +PJ_DEF(unsigned char) pjmedia_linear2ulaw( int pcm_val) /* 2's complement (16-bit range) */ { int mask; @@ -250,8 +247,7 @@ pjmedia_linear2ulaw( * Note that this function expects to be passed the complement of the * original code word. This is in keeping with ISDN conventions. */ -PJ_DEF(int) -pjmedia_ulaw2linear( +PJ_DEF(int) pjmedia_ulaw2linear( unsigned char u_val) { int t; @@ -276,8 +272,7 @@ pjmedia_ulaw2linear( } /* A-law to u-law conversion */ -PJ_DEF(unsigned char) -pjmedia_alaw2ulaw( +PJ_DEF(unsigned char) pjmedia_alaw2ulaw( unsigned char aval) { aval &= 0xff; @@ -286,8 +281,7 @@ pjmedia_alaw2ulaw( } /* u-law to A-law conversion */ -PJ_DEF(unsigned char) -pjmedia_ulaw2alaw( +PJ_DEF(unsigned char) pjmedia_ulaw2alaw( unsigned char uval) { uval &= 0xff; diff --git a/pjmedia/src/pjmedia/codec.c b/pjmedia/src/pjmedia/codec.c index 12ff4c024..4e5ea2a42 100644 --- a/pjmedia/src/pjmedia/codec.c +++ b/pjmedia/src/pjmedia/codec.c @@ -50,8 +50,7 @@ PJ_DEF(pj_status_t) pjmedia_codec_mgr_init (pjmedia_codec_mgr *mgr) /* * Register a codec factory. */ -PJ_DEF(pj_status_t) -pjmedia_codec_mgr_register_factory( pjmedia_codec_mgr *mgr, +PJ_DEF(pj_status_t) pjmedia_codec_mgr_register_factory( pjmedia_codec_mgr *mgr, pjmedia_codec_factory *factory) { pjmedia_codec_info info[PJMEDIA_CODEC_MGR_MAX_CODECS]; @@ -100,9 +99,9 @@ pjmedia_codec_mgr_register_factory( pjmedia_codec_mgr *mgr, /* * Unregister a codec factory. */ -PJ_DEF(pj_status_t) -pjmedia_codec_mgr_unregister_factory(pjmedia_codec_mgr *mgr, - pjmedia_codec_factory *factory) +PJ_DEF(pj_status_t) pjmedia_codec_mgr_unregister_factory( + pjmedia_codec_mgr *mgr, + pjmedia_codec_factory *factory) { unsigned i; PJ_ASSERT_RETURN(mgr && factory, PJ_EINVAL); @@ -139,8 +138,7 @@ pjmedia_codec_mgr_unregister_factory(pjmedia_codec_mgr *mgr, /* * Enum all codecs. */ -PJ_DEF(pj_status_t) -pjmedia_codec_mgr_enum_codecs(pjmedia_codec_mgr *mgr, +PJ_DEF(pj_status_t) pjmedia_codec_mgr_enum_codecs(pjmedia_codec_mgr *mgr, unsigned *count, pjmedia_codec_info codecs[], unsigned *prio) @@ -170,8 +168,7 @@ pjmedia_codec_mgr_enum_codecs(pjmedia_codec_mgr *mgr, /* * Get codec info for static payload type. */ -PJ_DEF(pj_status_t) -pjmedia_codec_mgr_get_codec_info( pjmedia_codec_mgr *mgr, +PJ_DEF(pj_status_t) pjmedia_codec_mgr_get_codec_info( pjmedia_codec_mgr *mgr, unsigned pt, const pjmedia_codec_info **p_info) { @@ -222,8 +219,7 @@ PJ_DEF(char*) pjmedia_codec_info_to_id( const pjmedia_codec_info *info, * "L16" is specified, then it will find "L16/8000/1", "L16/16000/1", * and so on, up to the maximum count specified in the argument. */ -PJ_DEF(pj_status_t) -pjmedia_codec_mgr_find_codecs_by_id( pjmedia_codec_mgr *mgr, +PJ_DEF(pj_status_t) pjmedia_codec_mgr_find_codecs_by_id( pjmedia_codec_mgr *mgr, const pj_str_t *codec_id, unsigned *count, const pjmedia_codec_info *p_info[], @@ -306,10 +302,10 @@ static void sort_codecs(pjmedia_codec_mgr *mgr) * are found with the same codec_id prefix, then the function sets the * priorities of all those codecs. */ -PJ_DEF(pj_status_t) -pjmedia_codec_mgr_set_codec_priority(pjmedia_codec_mgr *mgr, - const pj_str_t *codec_id, - pj_uint8_t prio) +PJ_DEF(pj_status_t) pjmedia_codec_mgr_set_codec_priority( + pjmedia_codec_mgr *mgr, + const pj_str_t *codec_id, + pj_uint8_t prio) { unsigned i, found = 0; diff --git a/pjmedia/src/pjmedia/conference.c b/pjmedia/src/pjmedia/conference.c index 74bdafcd1..7dd1fa318 100644 --- a/pjmedia/src/pjmedia/conference.c +++ b/pjmedia/src/pjmedia/conference.c @@ -818,7 +818,7 @@ PJ_DEF(pj_status_t) pjmedia_conf_add_passive_port( pjmedia_conf *conf, /* * Change TX and RX settings for the port. */ -PJ_DECL(pj_status_t) pjmedia_conf_configure_port( pjmedia_conf *conf, +PJ_DEF(pj_status_t) pjmedia_conf_configure_port( pjmedia_conf *conf, unsigned slot, pjmedia_port_op tx, pjmedia_port_op rx) @@ -979,7 +979,7 @@ PJ_DEF(unsigned) pjmedia_conf_get_port_count(pjmedia_conf *conf) /* * Get total number of ports connections currently set up in the bridge. */ -PJ_DECL(unsigned) pjmedia_conf_get_connect_count(pjmedia_conf *conf) +PJ_DEF(unsigned) pjmedia_conf_get_connect_count(pjmedia_conf *conf) { return conf->connect_cnt; } diff --git a/pjmedia/src/pjmedia/echo_common.c b/pjmedia/src/pjmedia/echo_common.c index 079333b48..568a606e8 100644 --- a/pjmedia/src/pjmedia/echo_common.c +++ b/pjmedia/src/pjmedia/echo_common.c @@ -21,7 +21,7 @@ #include #include #include - +#include "echo_internal.h" typedef struct ec_operations ec_operations; @@ -55,29 +55,6 @@ struct ec_operations }; - -/* - * Simple echo suppressor - */ -PJ_DECL(pj_status_t) echo_supp_create(pj_pool_t *pool, - unsigned clock_rate, - unsigned samples_per_frame, - unsigned tail_ms, - unsigned latency_ms, - unsigned options, - void **p_state ); -PJ_DECL(pj_status_t) echo_supp_destroy(void *state); -PJ_DECL(pj_status_t) echo_supp_playback(void *state, - pj_int16_t *play_frm ); -PJ_DECL(pj_status_t) echo_supp_capture(void *state, - pj_int16_t *rec_frm, - unsigned options ); -PJ_DECL(pj_status_t) echo_supp_cancel_echo(void *state, - pj_int16_t *rec_frm, - const pj_int16_t *play_frm, - unsigned options, - void *reserved ); - static struct ec_operations echo_supp_op = { &echo_supp_create, @@ -93,25 +70,6 @@ static struct ec_operations echo_supp_op = * Speex AEC prototypes */ #if defined(PJMEDIA_HAS_SPEEX_AEC) && PJMEDIA_HAS_SPEEX_AEC!=0 -PJ_DECL(pj_status_t) speex_aec_create(pj_pool_t *pool, - unsigned clock_rate, - unsigned samples_per_frame, - unsigned tail_ms, - unsigned latency_ms, - unsigned options, - void **p_state ); -PJ_DECL(pj_status_t) speex_aec_destroy(void *state ); -PJ_DECL(pj_status_t) speex_aec_playback(void *state, - pj_int16_t *play_frm ); -PJ_DECL(pj_status_t) speex_aec_capture(void *state, - pj_int16_t *rec_frm, - unsigned options ); -PJ_DECL(pj_status_t) speex_aec_cancel_echo(void *state, - pj_int16_t *rec_frm, - const pj_int16_t *play_frm, - unsigned options, - void *reserved ); - static struct ec_operations aec_op = { &speex_aec_create, diff --git a/pjmedia/src/pjmedia/echo_internal.h b/pjmedia/src/pjmedia/echo_internal.h new file mode 100644 index 000000000..e134f864f --- /dev/null +++ b/pjmedia/src/pjmedia/echo_internal.h @@ -0,0 +1,71 @@ +/* $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 __PJMEDIA_ECHO_INTERNAL_H__ +#define __PJMEDIA_ECHO_INTERNAL_H__ + +#include + +PJ_BEGIN_DECL + +/* + * Simple echo suppressor + */ +PJ_DECL(pj_status_t) echo_supp_create(pj_pool_t *pool, + unsigned clock_rate, + unsigned samples_per_frame, + unsigned tail_ms, + unsigned latency_ms, + unsigned options, + void **p_state ); +PJ_DECL(pj_status_t) echo_supp_destroy(void *state); +PJ_DECL(pj_status_t) echo_supp_playback(void *state, + pj_int16_t *play_frm ); +PJ_DECL(pj_status_t) echo_supp_capture(void *state, + pj_int16_t *rec_frm, + unsigned options ); +PJ_DECL(pj_status_t) echo_supp_cancel_echo(void *state, + pj_int16_t *rec_frm, + const pj_int16_t *play_frm, + unsigned options, + void *reserved ); + +PJ_DECL(pj_status_t) speex_aec_create(pj_pool_t *pool, + unsigned clock_rate, + unsigned samples_per_frame, + unsigned tail_ms, + unsigned latency_ms, + unsigned options, + void **p_state ); +PJ_DECL(pj_status_t) speex_aec_destroy(void *state ); +PJ_DECL(pj_status_t) speex_aec_playback(void *state, + pj_int16_t *play_frm ); +PJ_DECL(pj_status_t) speex_aec_capture(void *state, + pj_int16_t *rec_frm, + unsigned options ); +PJ_DECL(pj_status_t) speex_aec_cancel_echo(void *state, + pj_int16_t *rec_frm, + const pj_int16_t *play_frm, + unsigned options, + void *reserved ); + + +PJ_END_DECL + +#endif + diff --git a/pjmedia/src/pjmedia/echo_speex.c b/pjmedia/src/pjmedia/echo_speex.c index daf19d421..3e0d4812d 100644 --- a/pjmedia/src/pjmedia/echo_speex.c +++ b/pjmedia/src/pjmedia/echo_speex.c @@ -28,6 +28,7 @@ #include #include +#include "echo_internal.h" #define THIS_FILE "echo_speex.c" #define BUF_COUNT 16 @@ -226,29 +227,6 @@ PJ_DEF(pj_status_t) pjmedia_frame_queue_get( pjmedia_frame_queue *fq, return PJ_SUCCESS; } -/* - * Prototypes - */ -PJ_DECL(pj_status_t) speex_aec_create(pj_pool_t *pool, - unsigned clock_rate, - unsigned samples_per_frame, - unsigned tail_ms, - unsigned latency_ms, - unsigned options, - void **p_state ); -PJ_DECL(pj_status_t) speex_aec_destroy(void *state ); -PJ_DECL(pj_status_t) speex_aec_playback(void *state, - pj_int16_t *play_frm ); -PJ_DECL(pj_status_t) speex_aec_capture(void *state, - pj_int16_t *rec_frm, - unsigned options ); -PJ_DECL(pj_status_t) speex_aec_cancel_echo(void *state, - pj_int16_t *rec_frm, - const pj_int16_t *play_frm, - unsigned options, - void *reserved ); - - enum { TS_FLAG_PLAY = 1, diff --git a/pjmedia/src/pjmedia/echo_suppress.c b/pjmedia/src/pjmedia/echo_suppress.c index 93a3cba28..3f5c0ef4e 100644 --- a/pjmedia/src/pjmedia/echo_suppress.c +++ b/pjmedia/src/pjmedia/echo_suppress.c @@ -25,6 +25,7 @@ #include #include +#include "echo_internal.h" #define THIS_FILE "echo_suppress.c" @@ -43,30 +44,6 @@ typedef struct echo_supp -/* - * Prototypes. - */ -PJ_DECL(pj_status_t) echo_supp_create(pj_pool_t *pool, - unsigned clock_rate, - unsigned samples_per_frame, - unsigned tail_ms, - unsigned latency_ms, - unsigned options, - void **p_state ); -PJ_DECL(pj_status_t) echo_supp_destroy(void *state); -PJ_DECL(pj_status_t) echo_supp_playback(void *state, - pj_int16_t *play_frm ); -PJ_DECL(pj_status_t) echo_supp_capture(void *state, - pj_int16_t *rec_frm, - unsigned options ); -PJ_DECL(pj_status_t) echo_supp_cancel_echo(void *state, - pj_int16_t *rec_frm, - const pj_int16_t *play_frm, - unsigned options, - void *reserved ); - - - /* * Create. */ diff --git a/pjmedia/src/pjmedia/endpoint.c b/pjmedia/src/pjmedia/endpoint.c index 5848c4a39..d9296f1c8 100644 --- a/pjmedia/src/pjmedia/endpoint.c +++ b/pjmedia/src/pjmedia/endpoint.c @@ -50,25 +50,6 @@ pj_bool_t pjmedia_add_rtpmap_for_static_pt = PJMEDIA_ADD_RTPMAP_FOR_STATIC_PT; -/** - * Defined in pjmedia/errno.c - * - * Get error message for the specified error code. Note that this - * function is only able to decode PJMEDIA specific error code. - * Application should use pj_strerror(), which should be able to - * decode all error codes belonging to all subsystems (e.g. pjlib, - * pjmedia, pjsip, etc). - * - * @param status The error code. - * @param buffer The buffer where to put the error message. - * @param bufsize Size of the buffer. - * - * @return The error message as NULL terminated string, - * wrapped with pj_str_t. - */ -PJ_DECL(pj_str_t) pjmedia_strerror( pj_status_t status, char *buffer, - pj_size_t bufsize); - /* Worker thread proc. */ static int PJ_THREAD_FUNC worker_proc(void*); diff --git a/pjmedia/src/pjmedia/g711.c b/pjmedia/src/pjmedia/g711.c index b2c08199d..3997da5c9 100644 --- a/pjmedia/src/pjmedia/g711.c +++ b/pjmedia/src/pjmedia/g711.c @@ -42,10 +42,6 @@ #define FRAME_SIZE (8000 * PTIME / 1000) /* 80 bytes */ #define SAMPLES_PER_FRAME (8000 * PTIME / 1000) /* 80 samples */ -/* These are the only public functions exported to applications */ -PJ_DECL(pj_status_t) g711_init_factory (pjmedia_codec_factory *factory, - pj_pool_t *pool); - /* Prototypes for G711 factory */ static pj_status_t g711_test_alloc( pjmedia_codec_factory *factory, const pjmedia_codec_info *id ); diff --git a/pjmedia/src/pjmedia/mem_capture.c b/pjmedia/src/pjmedia/mem_capture.c index 074f377f0..1a73e0d04 100644 --- a/pjmedia/src/pjmedia/mem_capture.c +++ b/pjmedia/src/pjmedia/mem_capture.c @@ -51,7 +51,7 @@ static pj_status_t rec_get_frame(pjmedia_port *this_port, static pj_status_t rec_on_destroy(pjmedia_port *this_port); -PJ_DECL(pj_status_t) pjmedia_mem_capture_create(pj_pool_t *pool, +PJ_DEF(pj_status_t) pjmedia_mem_capture_create( pj_pool_t *pool, void *buffer, pj_size_t size, unsigned clock_rate, @@ -104,8 +104,7 @@ PJ_DECL(pj_status_t) pjmedia_mem_capture_create(pj_pool_t *pool, * Register a callback to be called when the file reading has reached the * end of buffer. */ -PJ_DEF(pj_status_t) -pjmedia_mem_capture_set_eof_cb( pjmedia_port *port, +PJ_DEF(pj_status_t) pjmedia_mem_capture_set_eof_cb( pjmedia_port *port, void *user_data, pj_status_t (*cb)(pjmedia_port *port, void *usr_data)) diff --git a/pjmedia/src/pjmedia/mem_player.c b/pjmedia/src/pjmedia/mem_player.c index 95add9a5f..678391c05 100644 --- a/pjmedia/src/pjmedia/mem_player.c +++ b/pjmedia/src/pjmedia/mem_player.c @@ -105,8 +105,7 @@ PJ_DEF(pj_status_t) pjmedia_mem_player_create( pj_pool_t *pool, * Register a callback to be called when the file reading has reached the * end of buffer. */ -PJ_DEF(pj_status_t) -pjmedia_mem_player_set_eof_cb( pjmedia_port *port, +PJ_DEF(pj_status_t) pjmedia_mem_player_set_eof_cb( pjmedia_port *port, void *user_data, pj_status_t (*cb)(pjmedia_port *port, void *usr_data)) diff --git a/pjmedia/src/pjmedia/sdp.c b/pjmedia/src/pjmedia/sdp.c index 25d86835c..be6f8025f 100644 --- a/pjmedia/src/pjmedia/sdp.c +++ b/pjmedia/src/pjmedia/sdp.c @@ -131,11 +131,10 @@ PJ_DEF(pjmedia_sdp_attr*) pjmedia_sdp_attr_clone(pj_pool_t *pool, return attr; } -PJ_DEF(pjmedia_sdp_attr*) -pjmedia_sdp_attr_find (unsigned count, - pjmedia_sdp_attr *const attr_array[], - const pj_str_t *name, - const pj_str_t *c_fmt) +PJ_DEF(pjmedia_sdp_attr*) pjmedia_sdp_attr_find (unsigned count, + pjmedia_sdp_attr *const attr_array[], + const pj_str_t *name, + const pj_str_t *c_fmt) { unsigned i; unsigned c_pt = 0xFFFF; @@ -158,11 +157,10 @@ pjmedia_sdp_attr_find (unsigned count, return NULL; } -PJ_DEF(pjmedia_sdp_attr*) -pjmedia_sdp_attr_find2(unsigned count, - pjmedia_sdp_attr *const attr_array[], - const char *c_name, - const pj_str_t *c_fmt) +PJ_DEF(pjmedia_sdp_attr*) pjmedia_sdp_attr_find2(unsigned count, + pjmedia_sdp_attr *const attr_array[], + const char *c_name, + const pj_str_t *c_fmt) { pj_str_t name; @@ -615,9 +613,9 @@ PJ_DEF(pjmedia_sdp_media*) pjmedia_sdp_media_clone( return m; } -PJ_DEF(pjmedia_sdp_attr*) -pjmedia_sdp_media_find_attr(const pjmedia_sdp_media *m, - const pj_str_t *name, const pj_str_t *fmt) +PJ_DEF(pjmedia_sdp_attr*) pjmedia_sdp_media_find_attr( + const pjmedia_sdp_media *m, + const pj_str_t *name, const pj_str_t *fmt) { PJ_ASSERT_RETURN(m && name, NULL); return pjmedia_sdp_attr_find(m->attr_count, m->attr, name, fmt); @@ -625,9 +623,9 @@ pjmedia_sdp_media_find_attr(const pjmedia_sdp_media *m, -PJ_DEF(pjmedia_sdp_attr*) -pjmedia_sdp_media_find_attr2(const pjmedia_sdp_media *m, - const char *name, const pj_str_t *fmt) +PJ_DEF(pjmedia_sdp_attr*) pjmedia_sdp_media_find_attr2( + const pjmedia_sdp_media *m, + const char *name, const pj_str_t *fmt) { PJ_ASSERT_RETURN(m && name, NULL); return pjmedia_sdp_attr_find2(m->attr_count, m->attr, name, fmt); @@ -640,16 +638,14 @@ PJ_DEF(pj_status_t) pjmedia_sdp_media_add_attr( pjmedia_sdp_media *m, return pjmedia_sdp_attr_add(&m->attr_count, m->attr, attr); } -PJ_DEF(unsigned) -pjmedia_sdp_media_remove_all_attr(pjmedia_sdp_media *m, - const char *name) +PJ_DEF(unsigned) pjmedia_sdp_media_remove_all_attr(pjmedia_sdp_media *m, + const char *name) { return pjmedia_sdp_attr_remove_all(&m->attr_count, m->attr, name); } -PJ_DEF(pj_status_t) -pjmedia_sdp_media_remove_attr(pjmedia_sdp_media *m, - pjmedia_sdp_attr *attr) +PJ_DEF(pj_status_t) pjmedia_sdp_media_remove_attr(pjmedia_sdp_media *m, + pjmedia_sdp_attr *attr) { return pjmedia_sdp_attr_remove(&m->attr_count, m->attr, attr); } @@ -1128,9 +1124,8 @@ PJ_DEF(int) pjmedia_sdp_print( const pjmedia_sdp_session *desc, /* * Clone session */ -PJ_DEF(pjmedia_sdp_session*) -pjmedia_sdp_session_clone( pj_pool_t *pool, - const pjmedia_sdp_session *rhs) +PJ_DEF(pjmedia_sdp_session*) pjmedia_sdp_session_clone( pj_pool_t *pool, + const pjmedia_sdp_session *rhs) { pjmedia_sdp_session *sess; unsigned i; diff --git a/pjmedia/src/pjmedia/sdp_neg.c b/pjmedia/src/pjmedia/sdp_neg.c index f24dc41eb..12c0f49c8 100644 --- a/pjmedia/src/pjmedia/sdp_neg.c +++ b/pjmedia/src/pjmedia/sdp_neg.c @@ -66,8 +66,7 @@ PJ_DEF(const char*) pjmedia_sdp_neg_state_str(pjmedia_sdp_neg_state state) /* * Create with local offer. */ -PJ_DEF(pj_status_t) -pjmedia_sdp_neg_create_w_local_offer( pj_pool_t *pool, +PJ_DEF(pj_status_t) pjmedia_sdp_neg_create_w_local_offer( pj_pool_t *pool, const pjmedia_sdp_session *local, pjmedia_sdp_neg **p_neg) { @@ -98,8 +97,7 @@ pjmedia_sdp_neg_create_w_local_offer( pj_pool_t *pool, /* * Create with remote offer and initial local offer/answer. */ -PJ_DEF(pj_status_t) -pjmedia_sdp_neg_create_w_remote_offer(pj_pool_t *pool, +PJ_DEF(pj_status_t) pjmedia_sdp_neg_create_w_remote_offer(pj_pool_t *pool, const pjmedia_sdp_session *initial, const pjmedia_sdp_session *remote, pjmedia_sdp_neg **p_neg) @@ -147,9 +145,9 @@ pjmedia_sdp_neg_create_w_remote_offer(pj_pool_t *pool, /* * Set codec order preference. */ -PJ_DEF(pj_status_t) -pjmedia_sdp_neg_set_prefer_remote_codec_order(pjmedia_sdp_neg *neg, - pj_bool_t prefer_remote) +PJ_DEF(pj_status_t) pjmedia_sdp_neg_set_prefer_remote_codec_order( + pjmedia_sdp_neg *neg, + pj_bool_t prefer_remote) { PJ_ASSERT_RETURN(neg, PJ_EINVAL); neg->prefer_remote_codec_order = prefer_remote; @@ -160,8 +158,7 @@ pjmedia_sdp_neg_set_prefer_remote_codec_order(pjmedia_sdp_neg *neg, /* * Get SDP negotiator state. */ -PJ_DEF(pjmedia_sdp_neg_state) -pjmedia_sdp_neg_get_state( pjmedia_sdp_neg *neg ) +PJ_DEF(pjmedia_sdp_neg_state) pjmedia_sdp_neg_get_state( pjmedia_sdp_neg *neg ) { /* Check arguments are valid. */ PJ_ASSERT_RETURN(neg != NULL, PJMEDIA_SDP_NEG_STATE_NULL); @@ -169,9 +166,8 @@ pjmedia_sdp_neg_get_state( pjmedia_sdp_neg *neg ) } -PJ_DEF(pj_status_t) -pjmedia_sdp_neg_get_active_local( pjmedia_sdp_neg *neg, - const pjmedia_sdp_session **local) +PJ_DEF(pj_status_t) pjmedia_sdp_neg_get_active_local( pjmedia_sdp_neg *neg, + const pjmedia_sdp_session **local) { PJ_ASSERT_RETURN(neg && local, PJ_EINVAL); PJ_ASSERT_RETURN(neg->active_local_sdp, PJMEDIA_SDPNEG_ENOACTIVE); @@ -181,8 +177,7 @@ pjmedia_sdp_neg_get_active_local( pjmedia_sdp_neg *neg, } -PJ_DEF(pj_status_t) -pjmedia_sdp_neg_get_active_remote( pjmedia_sdp_neg *neg, +PJ_DEF(pj_status_t) pjmedia_sdp_neg_get_active_remote( pjmedia_sdp_neg *neg, const pjmedia_sdp_session **remote) { PJ_ASSERT_RETURN(neg && remote, PJ_EINVAL); @@ -193,8 +188,7 @@ pjmedia_sdp_neg_get_active_remote( pjmedia_sdp_neg *neg, } -PJ_DEF(pj_bool_t) -pjmedia_sdp_neg_was_answer_remote(pjmedia_sdp_neg *neg) +PJ_DEF(pj_bool_t) pjmedia_sdp_neg_was_answer_remote(pjmedia_sdp_neg *neg) { PJ_ASSERT_RETURN(neg, PJ_FALSE); @@ -202,8 +196,7 @@ pjmedia_sdp_neg_was_answer_remote(pjmedia_sdp_neg *neg) } -PJ_DEF(pj_status_t) -pjmedia_sdp_neg_get_neg_remote( pjmedia_sdp_neg *neg, +PJ_DEF(pj_status_t) pjmedia_sdp_neg_get_neg_remote( pjmedia_sdp_neg *neg, const pjmedia_sdp_session **remote) { PJ_ASSERT_RETURN(neg && remote, PJ_EINVAL); @@ -213,8 +206,7 @@ pjmedia_sdp_neg_get_neg_remote( pjmedia_sdp_neg *neg, return PJ_SUCCESS; } -PJ_DEF(pj_status_t) -pjmedia_sdp_neg_get_neg_local( pjmedia_sdp_neg *neg, +PJ_DEF(pj_status_t) pjmedia_sdp_neg_get_neg_local( pjmedia_sdp_neg *neg, const pjmedia_sdp_session **local) { PJ_ASSERT_RETURN(neg && local, PJ_EINVAL); @@ -228,8 +220,7 @@ pjmedia_sdp_neg_get_neg_local( pjmedia_sdp_neg *neg, /* * Modify local SDP and wait for remote answer. */ -PJ_DEF(pj_status_t) -pjmedia_sdp_neg_modify_local_offer( pj_pool_t *pool, +PJ_DEF(pj_status_t) pjmedia_sdp_neg_modify_local_offer( pj_pool_t *pool, pjmedia_sdp_neg *neg, const pjmedia_sdp_session *local) { @@ -249,8 +240,7 @@ pjmedia_sdp_neg_modify_local_offer( pj_pool_t *pool, } -PJ_DEF(pj_status_t) -pjmedia_sdp_neg_send_local_offer( pj_pool_t *pool, +PJ_DEF(pj_status_t) pjmedia_sdp_neg_send_local_offer( pj_pool_t *pool, pjmedia_sdp_neg *neg, const pjmedia_sdp_session **offer) { @@ -285,8 +275,7 @@ pjmedia_sdp_neg_send_local_offer( pj_pool_t *pool, } -PJ_DEF(pj_status_t) -pjmedia_sdp_neg_set_remote_answer( pj_pool_t *pool, +PJ_DEF(pj_status_t) pjmedia_sdp_neg_set_remote_answer( pj_pool_t *pool, pjmedia_sdp_neg *neg, const pjmedia_sdp_session *remote) { @@ -308,8 +297,7 @@ pjmedia_sdp_neg_set_remote_answer( pj_pool_t *pool, return PJ_SUCCESS; } -PJ_DEF(pj_status_t) -pjmedia_sdp_neg_set_remote_offer( pj_pool_t *pool, +PJ_DEF(pj_status_t) pjmedia_sdp_neg_set_remote_offer( pj_pool_t *pool, pjmedia_sdp_neg *neg, const pjmedia_sdp_session *remote) { @@ -330,8 +318,7 @@ pjmedia_sdp_neg_set_remote_offer( pj_pool_t *pool, return PJ_SUCCESS; } -PJ_DEF(pj_status_t) -pjmedia_sdp_neg_set_local_answer( pj_pool_t *pool, +PJ_DEF(pj_status_t) pjmedia_sdp_neg_set_local_answer( pj_pool_t *pool, pjmedia_sdp_neg *neg, const pjmedia_sdp_session *local) { diff --git a/pjmedia/src/pjmedia/session.c b/pjmedia/src/pjmedia/session.c index 72e55a99f..ae7215484 100644 --- a/pjmedia/src/pjmedia/session.c +++ b/pjmedia/src/pjmedia/session.c @@ -478,8 +478,7 @@ PJ_DEF(pj_status_t) pjmedia_stream_info_from_sdp( /* * Initialize session info from SDP session descriptors. */ -PJ_DEF(pj_status_t) -pjmedia_session_info_from_sdp( pj_pool_t *pool, +PJ_DEF(pj_status_t) pjmedia_session_info_from_sdp( pj_pool_t *pool, pjmedia_endpt *endpt, unsigned max_streams, pjmedia_session_info *si, @@ -760,8 +759,7 @@ PJ_DEF(pj_status_t) pjmedia_session_get_dtmf( pjmedia_session *session, /* * Install DTMF callback. */ -PJ_DEF(pj_status_t) -pjmedia_session_set_dtmf_callback(pjmedia_session *session, +PJ_DEF(pj_status_t) pjmedia_session_set_dtmf_callback(pjmedia_session *session, unsigned index, void (*cb)(pjmedia_stream*, void *user_data, diff --git a/pjmedia/src/pjmedia/splitcomb.c b/pjmedia/src/pjmedia/splitcomb.c index a3d8e05fb..cf729d017 100644 --- a/pjmedia/src/pjmedia/splitcomb.c +++ b/pjmedia/src/pjmedia/splitcomb.c @@ -216,8 +216,7 @@ PJ_DEF(pj_status_t) pjmedia_splitcomb_set_channel( pjmedia_port *splitcomb, /* * Create reverse phase port for the specified channel. */ -PJ_DEF(pj_status_t) -pjmedia_splitcomb_create_rev_channel( pj_pool_t *pool, +PJ_DEF(pj_status_t) pjmedia_splitcomb_create_rev_channel( pj_pool_t *pool, pjmedia_port *splitcomb, unsigned ch_num, unsigned options, diff --git a/pjmedia/src/pjmedia/transport_udp.c b/pjmedia/src/pjmedia/transport_udp.c index e5192598a..6b1e265d7 100644 --- a/pjmedia/src/pjmedia/transport_udp.c +++ b/pjmedia/src/pjmedia/transport_udp.c @@ -324,8 +324,7 @@ on_error: /* * Get media socket info. */ -PJ_DEF(pj_status_t) -pjmedia_transport_udp_get_info( pjmedia_transport *tp, +PJ_DEF(pj_status_t) pjmedia_transport_udp_get_info( pjmedia_transport *tp, pjmedia_transport_udp_info *inf) { return transport_get_info(tp, &inf->skinfo); diff --git a/pjmedia/src/pjmedia/wav_player.c b/pjmedia/src/pjmedia/wav_player.c index c7e81d090..225f1e587 100644 --- a/pjmedia/src/pjmedia/wav_player.c +++ b/pjmedia/src/pjmedia/wav_player.c @@ -455,8 +455,7 @@ PJ_DEF(pj_ssize_t) pjmedia_wav_player_port_get_pos( pjmedia_port *port ) * Register a callback to be called when the file reading has reached the * end of file. */ -PJ_DEF(pj_status_t) -pjmedia_wav_player_set_eof_cb( pjmedia_port *port, +PJ_DEF(pj_status_t) pjmedia_wav_player_set_eof_cb( pjmedia_port *port, void *user_data, pj_status_t (*cb)(pjmedia_port *port, void *usr_data)) diff --git a/pjmedia/src/pjmedia/wav_playlist.c b/pjmedia/src/pjmedia/wav_playlist.c index d5882c8ad..a192cef19 100644 --- a/pjmedia/src/pjmedia/wav_playlist.c +++ b/pjmedia/src/pjmedia/wav_playlist.c @@ -538,8 +538,7 @@ on_error: * Register a callback to be called when the file reading has reached the * end of the last file. */ -PJ_DEF(pj_status_t) -pjmedia_wav_playlist_set_eof_cb(pjmedia_port *port, +PJ_DEF(pj_status_t) pjmedia_wav_playlist_set_eof_cb(pjmedia_port *port, void *user_data, pj_status_t (*cb)(pjmedia_port *port, void *usr_data)) diff --git a/pjmedia/src/pjmedia/wav_writer.c b/pjmedia/src/pjmedia/wav_writer.c index 89eb3471c..eee72cf29 100644 --- a/pjmedia/src/pjmedia/wav_writer.c +++ b/pjmedia/src/pjmedia/wav_writer.c @@ -194,8 +194,7 @@ PJ_DEF(pj_ssize_t) pjmedia_wav_writer_port_get_pos( pjmedia_port *port ) /* * Register callback. */ -PJ_DEF(pj_status_t) -pjmedia_wav_writer_port_set_cb( pjmedia_port *port, +PJ_DEF(pj_status_t) pjmedia_wav_writer_port_set_cb( pjmedia_port *port, pj_size_t pos, void *user_data, pj_status_t (*cb)(pjmedia_port *port, diff --git a/pjnath/include/pjnath/stun_msg.h b/pjnath/include/pjnath/stun_msg.h index 553a3afaa..f977e8ebe 100644 --- a/pjnath/include/pjnath/stun_msg.h +++ b/pjnath/include/pjnath/stun_msg.h @@ -1417,7 +1417,7 @@ PJ_DECL(pj_status_t) pj_stun_msg_add_uint_attr(pj_pool_t *pool, * * @return PJ_SUCCESS on success or the appropriate error code. */ -PJ_DEF(pj_status_t) pj_stun_uint64_attr_create(pj_pool_t *pool, +PJ_DECL(pj_status_t) pj_stun_uint64_attr_create(pj_pool_t *pool, int attr_type, const pj_timestamp *value, pj_stun_uint64_attr **p_attr); diff --git a/pjsip-apps/src/samples/pjsip-perf.c b/pjsip-apps/src/samples/pjsip-perf.c index 7d46bb96d..456e2d0fa 100644 --- a/pjsip-apps/src/samples/pjsip-perf.c +++ b/pjsip-apps/src/samples/pjsip-perf.c @@ -1196,7 +1196,7 @@ static pj_status_t init_options(int argc, char *argv[]) app.local_port = 5060; app.thread_count = 1; app.client.job_count = DEFAULT_COUNT; - app.client.method = pjsip_options_method; + app.client.method = *pjsip_get_options_method(); app.client.job_window = c = JOB_WINDOW; app.client.timeout = 60; app.log_level = 3; diff --git a/pjsip-apps/src/samples/stateful_proxy.c b/pjsip-apps/src/samples/stateful_proxy.c index d83ec91c0..695f53203 100644 --- a/pjsip-apps/src/samples/stateful_proxy.c +++ b/pjsip-apps/src/samples/stateful_proxy.c @@ -251,7 +251,7 @@ static pj_bool_t proxy_on_rx_request( pjsip_rx_data *rdata ) /* Find the UAS INVITE transaction */ pjsip_tsx_create_key(rdata->tp_info.pool, &key, PJSIP_UAS_ROLE, - &pjsip_invite_method, rdata); + pjsip_get_invite_method(), rdata); invite_uas = pjsip_tsx_layer_find_tsx(&key, PJ_TRUE); if (!invite_uas) { /* Invite transaction not found, respond CANCEL with 481 */ diff --git a/pjsip-apps/src/symbian_ua/ua.cpp b/pjsip-apps/src/symbian_ua/ua.cpp index f3f9b7008..c75432bca 100644 --- a/pjsip-apps/src/symbian_ua/ua.cpp +++ b/pjsip-apps/src/symbian_ua/ua.cpp @@ -438,12 +438,12 @@ static void PrintMenu() PJ_LOG(3, (THIS_FILE, "\n\n" "Menu:\n" " d Dump states\n" - " D Dump all states (detail)\n" + " D Dump states detail\n" " P Dump pool factory\n" - " m Make call to " SIP_DST_URI "\n" + " m Call " SIP_DST_URI "\n" " a Answer call\n" " h Hangup all calls\n" - " s Subscribe to " SIP_DST_URI "\n" + " s Subscribe " SIP_DST_URI "\n" " S Unsubscribe presence\n" " o Set account online\n" " O Set account offline\n" @@ -467,7 +467,7 @@ void ConsoleUI::RunL() break; case 'p': case 'P': - pj_pool_factory_dump(&pjsua_var.cp.factory, PJ_TRUE); + pj_pool_factory_dump(pjsua_get_pool_factory(), PJ_TRUE); break; case 'm': if (g_call_id != PJSUA_INVALID_ID) { diff --git a/pjsip/include/pjsip-simple/errno.h b/pjsip/include/pjsip-simple/errno.h index 911333c89..ab3d4ec3b 100644 --- a/pjsip/include/pjsip-simple/errno.h +++ b/pjsip/include/pjsip-simple/errno.h @@ -19,9 +19,10 @@ #ifndef __PJSIP_SIMPLE_ERRNO_H__ #define __PJSIP_SIMPLE_ERRNO_H__ - #include +PJ_BEGIN_DECL + /** * Start of error code relative to PJ_ERRNO_START_USER. */ @@ -87,6 +88,25 @@ */ #define PJSIP_SIMPLE_EBADISCOMPOSE (PJSIP_SIMPLE_ERRNO_START+40) /*270040*/ +/** + * Get error message for the specified error code. Note that this + * function is only able to decode PJSIP-SIMPLE specific error code. + * Application should use pj_strerror(), which should be able to + * decode all error codes belonging to all subsystems (e.g. pjlib, + * pjmedia, pjsip, etc). + * + * @param status The error code. + * @param buffer The buffer where to put the error message. + * @param bufsize Size of the buffer. + * + * @return The error message as NULL terminated string, + * wrapped with pj_str_t. + */ +PJ_DECL(pj_str_t) pjsipsimple_strerror(pj_status_t status, + char *buffer, pj_size_t bufsize); + + +PJ_END_DECL #endif /* __PJSIP_SIMPLE_ERRNO_H__ */ diff --git a/pjsip/include/pjsip-simple/evsub.h b/pjsip/include/pjsip-simple/evsub.h index 3f67590b5..1c3ee97cd 100644 --- a/pjsip/include/pjsip-simple/evsub.h +++ b/pjsip/include/pjsip-simple/evsub.h @@ -201,16 +201,25 @@ struct pjsip_evsub_user typedef struct pjsip_evsub_user pjsip_evsub_user; +/** + * SUBSCRIBE method constant. @see pjsip_get_subscribe_method() + */ +PJ_DECL_DATA(const pjsip_method) pjsip_subscribe_method; + +/** + * NOTIFY method constant. @see pjsip_get_notify_method() + */ +PJ_DECL_DATA(const pjsip_method) pjsip_notify_method; + /** * SUBSCRIBE method constant. */ -extern const pjsip_method pjsip_subscribe_method; +PJ_DECL(const pjsip_method*) pjsip_get_subscribe_method(); /** * NOTIFY method constant. */ -extern const pjsip_method pjsip_notify_method; - +PJ_DECL(const pjsip_method*) pjsip_get_notify_method(); /** diff --git a/pjsip/include/pjsip-simple/evsub_msg.h b/pjsip/include/pjsip-simple/evsub_msg.h index a27e07aae..f1c3f4b7d 100644 --- a/pjsip/include/pjsip-simple/evsub_msg.h +++ b/pjsip/include/pjsip-simple/evsub_msg.h @@ -104,7 +104,7 @@ PJ_DECL(pjsip_sub_state_hdr*) pjsip_sub_state_hdr_create(pj_pool_t *pool); /** * Initialize parser for event notify module. */ -PJ_DEF(void) pjsip_evsub_init_parser(void); +PJ_DECL(void) pjsip_evsub_init_parser(void); PJ_END_DECL diff --git a/pjsip/include/pjsip-ua/sip_xfer.h b/pjsip/include/pjsip-ua/sip_xfer.h index cbc3a7de7..2ad9324e4 100644 --- a/pjsip/include/pjsip-ua/sip_xfer.h +++ b/pjsip/include/pjsip-ua/sip_xfer.h @@ -61,10 +61,11 @@ PJ_BEGIN_DECL -/** - * Declaration for REFER method constant. - */ -extern const pjsip_method pjsip_refer_method; +/** Declaration for REFER method constant. */ +PJ_DECL_DATA(const pjsip_method) pjsip_refer_method; + +/** Get REFER method constant */ +PJ_DECL(const pjsip_method*) pjsip_get_refer_method(); /** diff --git a/pjsip/include/pjsip/sip_config.h b/pjsip/include/pjsip/sip_config.h index c591e0dbd..846c2a57b 100644 --- a/pjsip/include/pjsip/sip_config.h +++ b/pjsip/include/pjsip/sip_config.h @@ -467,9 +467,9 @@ #define PJSIP_POOL_INC_USER_AGENT 1024 /* Message/URL related constants. */ -#define PJSIP_MAX_CALL_ID_LEN PJ_GUID_STRING_LENGTH -#define PJSIP_MAX_TAG_LEN PJ_GUID_STRING_LENGTH -#define PJSIP_MAX_BRANCH_LEN (PJSIP_RFC3261_BRANCH_LEN + PJ_GUID_STRING_LENGTH + 2) +#define PJSIP_MAX_CALL_ID_LEN pj_GUID_STRING_LENGTH() +#define PJSIP_MAX_TAG_LEN pj_GUID_STRING_LENGTH() +#define PJSIP_MAX_BRANCH_LEN (PJSIP_RFC3261_BRANCH_LEN + pj_GUID_STRING_LENGTH() + 2) #define PJSIP_MAX_HNAME_LEN 64 /* Dialog related constants. */ diff --git a/pjsip/include/pjsip/sip_dialog.h b/pjsip/include/pjsip/sip_dialog.h index 00768ffd7..626ec08ba 100644 --- a/pjsip/include/pjsip/sip_dialog.h +++ b/pjsip/include/pjsip/sip_dialog.h @@ -86,6 +86,7 @@ typedef enum pjsip_dialog_state PJSIP_DIALOG_STATE_ESTABLISHED } pjsip_dialog_state; + /** * This structure describes the dialog structure. Application MUST NOT * try to SET the values here directly, but instead it MUST use the @@ -126,6 +127,7 @@ struct pjsip_dialog pjsip_role_e role; /**< Initial role. */ pj_bool_t uac_has_2xx;/**< UAC has received 2xx response? */ pj_bool_t secure; /**< Use secure transport? */ + pj_bool_t add_allow; /**< Add Allow header in requests? */ pjsip_cid_hdr *call_id; /**< Call-ID header. */ pjsip_route_hdr route_set; /**< Route set. */ pjsip_auth_clt_sess auth_sess; /**< Client authentication session. */ diff --git a/pjsip/include/pjsip/sip_errno.h b/pjsip/include/pjsip/sip_errno.h index 11823c9ae..0e5ae2f12 100644 --- a/pjsip/include/pjsip/sip_errno.h +++ b/pjsip/include/pjsip/sip_errno.h @@ -487,6 +487,22 @@ PJ_BEGIN_DECL #define PJSIP_TLS_ETIMEDOUT (PJSIP_ERRNO_START_PJSIP+172) /* 171172 */ +/** + * Get error message for the specified error code. Note that this + * function is only able to decode PJSIP specific error code. + * Application should use pj_strerror(), which should be able to + * decode all error codes belonging to all subsystems (e.g. pjlib, + * pjmedia, pjsip, etc). + * + * @param status The error code. + * @param buffer The buffer where to put the error message. + * @param bufsize Size of the buffer. + * + * @return The error message as NULL terminated string, + * wrapped with pj_str_t. + */ +PJ_DECL(pj_str_t) pjsip_strerror(pj_status_t status, + char *buffer, pj_size_t bufsize); PJ_END_DECL @@ -497,3 +513,4 @@ PJ_END_DECL */ #endif /* __PJSIP_SIP_ERRNO_H__ */ + diff --git a/pjsip/include/pjsip/sip_event.h b/pjsip/include/pjsip/sip_event.h index 0df0c044b..e4b27ca15 100644 --- a/pjsip/include/pjsip/sip_event.h +++ b/pjsip/include/pjsip/sip_event.h @@ -218,7 +218,7 @@ struct pjsip_event * @param e the event ID. * @note defined in sip_util.c */ -PJ_DEF(const char *) pjsip_event_str(pjsip_event_id_e e); +PJ_DECL(const char *) pjsip_event_str(pjsip_event_id_e e); /** * @} diff --git a/pjsip/include/pjsip/sip_msg.h b/pjsip/include/pjsip/sip_msg.h index 7a303521e..906c4a5fb 100644 --- a/pjsip/include/pjsip/sip_msg.h +++ b/pjsip/include/pjsip/sip_msg.h @@ -84,13 +84,44 @@ struct pjsip_method /* * For convenience, standard method structures are defined in the library. */ -extern const pjsip_method pjsip_invite_method; /**< INVITE structure. */ -extern const pjsip_method pjsip_cancel_method; /**< CANCEL structure. */ -extern const pjsip_method pjsip_ack_method; /**< ACK structure. */ -extern const pjsip_method pjsip_bye_method; /**< BYE structure. */ -extern const pjsip_method pjsip_register_method; /**< REGISTER structure.*/ -extern const pjsip_method pjsip_options_method; /**< OPTIONS structure. */ +/** INVITE method constant. @see pjsip_get_invite_method() */ +PJ_DECL_DATA(const pjsip_method) pjsip_invite_method; +/** CANCEL method constant. @see pjsip_get_cancel_method() */ +PJ_DECL_DATA(const pjsip_method) pjsip_cancel_method; + +/** ACK method constant. @see pjsip_get_ack_method() */ +PJ_DECL_DATA(const pjsip_method) pjsip_ack_method; + +/** BYE method constant. @see pjsip_get_bye_method() */ +PJ_DECL_DATA(const pjsip_method) pjsip_bye_method; + +/** REGISTER method constant. @see pjsip_get_register_method() */ +PJ_DECL_DATA(const pjsip_method) pjsip_register_method; + +/** OPTIONS method constant. @see pjsip_get_options_method() */ +PJ_DECL_DATA(const pjsip_method) pjsip_options_method; + +/* + * Accessor functions for standard SIP methods. + */ +/** Get INVITE method constant. */ +PJ_DECL(const pjsip_method*) pjsip_get_invite_method(void); +/** Get CANCEL method constant. */ +PJ_DECL(const pjsip_method*) pjsip_get_cancel_method(void); +/** Get ACK method constant. */ +PJ_DECL(const pjsip_method*) pjsip_get_ack_method(void); +/** Get BYE method constant. */ +PJ_DECL(const pjsip_method*) pjsip_get_bye_method(void); +/** Get REGISTER method constant.*/ +PJ_DECL(const pjsip_method*) pjsip_get_register_method(void); +/** Get OPTIONS method constant. */ +PJ_DECL(const pjsip_method*) pjsip_get_options_method(void); + + +/* + * Accessor functions + */ /** * Initialize the method structure from a string. diff --git a/pjsip/include/pjsip/sip_parser.h b/pjsip/include/pjsip/sip_parser.h index ef8277fbd..804aed1c1 100644 --- a/pjsip/include/pjsip/sip_parser.h +++ b/pjsip/include/pjsip/sip_parser.h @@ -315,51 +315,64 @@ PJ_DECL(pj_status_t) pjsip_parse_headers( pj_pool_t *pool, */ -/* - * Various specification used in parsing, exported here as extern for other - * parsers. +/** + * Parser constants. @see pjsip_parser_const() */ -extern pj_cis_t - pjsip_HOST_SPEC, /**< For scanning host part. */ - pjsip_DIGIT_SPEC, /**< Decimal digits */ - pjsip_ALPHA_SPEC, /**< Alpha (A-Z, a-z) */ - pjsip_ALNUM_SPEC, /**< Decimal + Alpha. */ - pjsip_TOKEN_SPEC, /**< Token. */ - pjsip_TOKEN_SPEC_ESC, /**< Token without '%' character */ - pjsip_HEX_SPEC, /**< Hexadecimal digits. */ - pjsip_PARAM_CHAR_SPEC, /**< For scanning pname (or pvalue when it's - not quoted.) in URI */ - pjsip_PARAM_CHAR_SPEC_ESC, /**< Variant without the escape ('%') char */ - pjsip_HDR_CHAR_SPEC, /**< Chars in hname/havalue in URL. */ - pjsip_HDR_CHAR_SPEC_ESC, /**< Variant without the escape ('%') char */ - pjsip_PROBE_USER_HOST_SPEC, /**< Hostname characters. */ - pjsip_PASSWD_SPEC, /**< Password. */ - pjsip_PASSWD_SPEC_ESC, /**< Variant without the escape ('%') char */ - pjsip_USER_SPEC, /**< User */ - pjsip_USER_SPEC_ESC, /**< Variant without the escape ('%') char */ - pjsip_NOT_NEWLINE, /**< For eating up header, basicly any chars - except newlines or zero. */ - pjsip_NOT_COMMA_OR_NEWLINE, /**< Array elements. */ - pjsip_DISPLAY_SPEC; /**< Used when searching for display name. */ +typedef struct pjsip_parser_const_t +{ + const pj_str_t pjsip_USER_STR; /**< "user" string constant. */ + const pj_str_t pjsip_METHOD_STR; /**< "method" string constant */ + const pj_str_t pjsip_TRANSPORT_STR; /**< "transport" string const. */ + const pj_str_t pjsip_MADDR_STR; /**< "maddr" string const. */ + const pj_str_t pjsip_LR_STR; /**< "lr" string const. */ + const pj_str_t pjsip_SIP_STR; /**< "sip" string constant. */ + const pj_str_t pjsip_SIPS_STR; /**< "sips" string constant. */ + const pj_str_t pjsip_TEL_STR; /**< "tel" string constant. */ + const pj_str_t pjsip_BRANCH_STR; /**< "branch" string constant. */ + const pj_str_t pjsip_TTL_STR; /**< "ttl" string constant. */ + const pj_str_t pjsip_RECEIVED_STR; /**< "received" string const. */ + const pj_str_t pjsip_Q_STR; /**< "q" string constant. */ + const pj_str_t pjsip_EXPIRES_STR; /**< "expires" string constant. */ + const pj_str_t pjsip_TAG_STR; /**< "tag" string constant. */ + const pj_str_t pjsip_RPORT_STR; /**< "rport" string const. */ -/* - * Various string constants. + pj_cis_t pjsip_HOST_SPEC; /**< For scanning host part. */ + pj_cis_t pjsip_DIGIT_SPEC; /**< Decimal digits */ + pj_cis_t pjsip_ALPHA_SPEC; /**< Alpha (A-Z, a-z) */ + pj_cis_t pjsip_ALNUM_SPEC; /**< Decimal + Alpha. */ + pj_cis_t pjsip_TOKEN_SPEC; /**< Token. */ + pj_cis_t pjsip_TOKEN_SPEC_ESC; /**< Token without '%' character */ + pj_cis_t pjsip_HEX_SPEC; /**< Hexadecimal digits. */ + pj_cis_t pjsip_PARAM_CHAR_SPEC; /**< For scanning pname (or pvalue + when it's not quoted.) in URI */ + pj_cis_t pjsip_PARAM_CHAR_SPEC_ESC; /**< Variant without the escape ('%') + char */ + pj_cis_t pjsip_HDR_CHAR_SPEC; /**< Chars in hname/havalue in URL. */ + pj_cis_t pjsip_HDR_CHAR_SPEC_ESC; /**< Variant without the escape ('%') + char */ + pj_cis_t pjsip_PROBE_USER_HOST_SPEC;/**< Hostname characters. */ + pj_cis_t pjsip_PASSWD_SPEC; /**< Password. */ + pj_cis_t pjsip_PASSWD_SPEC_ESC; /**< Variant without the escape ('%') + char */ + pj_cis_t pjsip_USER_SPEC; /**< User */ + pj_cis_t pjsip_USER_SPEC_ESC; /**< Variant without the escape ('%') + char */ + pj_cis_t pjsip_USER_SPEC_LENIENT; /**< User, with additional '#' char */ + pj_cis_t pjsip_USER_SPEC_LENIENT_ESC;/**< pjsip_USER_SPEC_ESC with '#' */ + pj_cis_t pjsip_NOT_NEWLINE; /**< For eating up header, basically + any chars except newlines or + zero. */ + pj_cis_t pjsip_NOT_COMMA_OR_NEWLINE;/**< Array elements. */ + pj_cis_t pjsip_DISPLAY_SPEC; /**< Used when searching for display + name. */ + +} pjsip_parser_const_t; + + +/** + * Get parser constants. */ -extern const pj_str_t pjsip_USER_STR, /**< "user" string constant. */ - pjsip_METHOD_STR, /**< "method" string constant */ - pjsip_TRANSPORT_STR, /**< "transport" string const. */ - pjsip_MADDR_STR, /**< "maddr" string const. */ - pjsip_LR_STR, /**< "lr" string const. */ - pjsip_SIP_STR, /**< "sip" string constant. */ - pjsip_SIPS_STR, /**< "sips" string constant. */ - pjsip_TEL_STR, /**< "tel" string constant. */ - pjsip_BRANCH_STR, /**< "branch" string constant. */ - pjsip_TTL_STR, /**< "ttl" string constant. */ - pjsip_RECEIVED_STR, /**< "received" string const. */ - pjsip_Q_STR, /**< "q" string constant. */ - pjsip_EXPIRES_STR, /**< "expires" string constant. */ - pjsip_TAG_STR, /**< "tag" string constant. */ - pjsip_RPORT_STR; /**< "rport" string const. */ +PJ_DECL(const pjsip_parser_const_t*) pjsip_parser_const(void); /* @@ -371,17 +384,18 @@ enum }; /* Parse parameter in header (matching the character as token) */ -void pjsip_parse_param_imp( pj_scanner *scanner, pj_pool_t *pool, - pj_str_t *pname, pj_str_t *pvalue, - unsigned opt); +PJ_DECL(void) pjsip_parse_param_imp(pj_scanner *scanner, pj_pool_t *pool, + pj_str_t *pname, pj_str_t *pvalue, + unsigned opt); /* Parse parameter in URL (matching the character as paramchar) */ -void pjsip_parse_uri_param_imp( pj_scanner *scanner, pj_pool_t *pool, - pj_str_t *pname, pj_str_t *pvalue, - unsigned opt); -void pjsip_concat_param_imp( pj_str_t *param, pj_pool_t *pool, - const pj_str_t *pname, const pj_str_t *pvalue, - int sepchar); -void pjsip_parse_end_hdr_imp ( pj_scanner *scanner ); +PJ_DECL(void) pjsip_parse_uri_param_imp(pj_scanner *scanner, pj_pool_t *pool, + pj_str_t *pname, pj_str_t *pvalue, + unsigned opt); +PJ_DECL(void) pjsip_concat_param_imp(pj_str_t *param, pj_pool_t *pool, + const pj_str_t *pname, + const pj_str_t *pvalue, + int sepchar); +PJ_DECL(void) pjsip_parse_end_hdr_imp ( pj_scanner *scanner ); PJ_END_DECL diff --git a/pjsip/include/pjsip/sip_ua_layer.h b/pjsip/include/pjsip/sip_ua_layer.h index e08d73960..67d3e6442 100644 --- a/pjsip/include/pjsip/sip_ua_layer.h +++ b/pjsip/include/pjsip/sip_ua_layer.h @@ -114,7 +114,7 @@ PJ_DECL(pj_status_t) pjsip_ua_destroy(void); * * @param detail If non-zero, list of dialogs will be printed. */ -PJ_DEF(void) pjsip_ua_dump(pj_bool_t detail); +PJ_DECL(void) pjsip_ua_dump(pj_bool_t detail); /** * Get the endpoint instance of a user agent module. diff --git a/pjsip/include/pjsua-lib/pjsua.h b/pjsip/include/pjsua-lib/pjsua.h index 78f8b1bd9..737932475 100644 --- a/pjsip/include/pjsua-lib/pjsua.h +++ b/pjsip/include/pjsua-lib/pjsua.h @@ -474,16 +474,8 @@ typedef struct pjsua_logging_config logging_cfg = py_pjsua.logging_config_default() * \endcode */ -PJ_INLINE(void) pjsua_logging_config_default(pjsua_logging_config *cfg) -{ - pj_bzero(cfg, sizeof(*cfg)); +PJ_DECL(void) pjsua_logging_config_default(pjsua_logging_config *cfg); - cfg->msg_logging = PJ_TRUE; - cfg->level = 5; - cfg->console_level = 4; - cfg->decor = PJ_LOG_HAS_SENDER | PJ_LOG_HAS_TIME | - PJ_LOG_HAS_MICRO_SEC | PJ_LOG_HAS_NEWLINE; -} /** * Use this function to duplicate logging config. @@ -496,14 +488,9 @@ PJ_INLINE(void) pjsua_logging_config_default(pjsua_logging_config *cfg) * Not available (for now). Ideally we should be able to just assign * one config to another, but this has not been tested. */ -PJ_INLINE(void) pjsua_logging_config_dup(pj_pool_t *pool, - pjsua_logging_config *dst, - const pjsua_logging_config *src) -{ - pj_memcpy(dst, src, sizeof(*src)); - pj_strdup_with_null(pool, &dst->log_filename, &src->log_filename); -} - +PJ_DECL(void) pjsua_logging_config_dup(pj_pool_t *pool, + pjsua_logging_config *dst, + const pjsua_logging_config *src); /** @@ -1015,13 +1002,7 @@ typedef struct pjsua_config * \endcode */ -PJ_INLINE(void) pjsua_config_default(pjsua_config *cfg) -{ - pj_bzero(cfg, sizeof(*cfg)); - - cfg->max_calls = 4; - cfg->thread_cnt = 1; -} +PJ_DECL(void) pjsua_config_default(pjsua_config *cfg); /** @@ -1035,16 +1016,9 @@ PJ_INLINE(void) pjsua_config_default(pjsua_config *cfg) * Not applicable (for now). Probably we could just assign one credential * variable to another, but this has not been tested. */ -PJ_INLINE(void) pjsip_cred_dup( pj_pool_t *pool, - pjsip_cred_info *dst, - const pjsip_cred_info *src) -{ - pj_strdup_with_null(pool, &dst->realm, &src->realm); - pj_strdup_with_null(pool, &dst->scheme, &src->scheme); - pj_strdup_with_null(pool, &dst->username, &src->username); - pj_strdup_with_null(pool, &dst->data, &src->data); - -} +PJ_DECL(void) pjsip_cred_dup( pj_pool_t *pool, + pjsip_cred_info *dst, + const pjsip_cred_info *src); /** @@ -1054,29 +1028,9 @@ PJ_INLINE(void) pjsip_cred_dup( pj_pool_t *pool, * @param dst Destination config. * @param src Source config. */ -PJ_INLINE(void) pjsua_config_dup(pj_pool_t *pool, - pjsua_config *dst, - const pjsua_config *src) -{ - unsigned i; - - pj_memcpy(dst, src, sizeof(*src)); - - for (i=0; ioutbound_proxy_cnt; ++i) { - pj_strdup_with_null(pool, &dst->outbound_proxy[i], - &src->outbound_proxy[i]); - } - - for (i=0; icred_count; ++i) { - pjsip_cred_dup(pool, &dst->cred_info[i], &src->cred_info[i]); - } - - pj_strdup_with_null(pool, &dst->user_agent, &src->user_agent); - pj_strdup_with_null(pool, &dst->stun_domain, &src->stun_domain); - pj_strdup_with_null(pool, &dst->stun_host, &src->stun_host); - pj_strdup_with_null(pool, &dst->stun_relay_host, &src->stun_relay_host); -} - +PJ_DECL(void) pjsua_config_dup(pj_pool_t *pool, + pjsua_config *dst, + const pjsua_config *src); /** @@ -1137,12 +1091,7 @@ typedef struct pjsua_msg_data msg_data = py_pjsua.msg_data_init() * \endcode */ -PJ_INLINE(void) pjsua_msg_data_init(pjsua_msg_data *msg_data) -{ - pj_bzero(msg_data, sizeof(*msg_data)); - pj_list_init(&msg_data->hdr_list); -} - +PJ_DECL(void) pjsua_msg_data_init(pjsua_msg_data *msg_data); /** @@ -1485,11 +1434,7 @@ typedef struct pjsua_transport_config transport_cfg = py_pjsua.transport_config_default() * \endcode */ -PJ_INLINE(void) pjsua_transport_config_default(pjsua_transport_config *cfg) -{ - pj_bzero(cfg, sizeof(*cfg)); - pjsip_tls_setting_default(&cfg->tls_setting); -} +PJ_DECL(void) pjsua_transport_config_default(pjsua_transport_config *cfg); /** @@ -1503,14 +1448,9 @@ PJ_INLINE(void) pjsua_transport_config_default(pjsua_transport_config *cfg) * Not applicable. One should be able to just copy one variable instance * to another in Python. */ -PJ_INLINE(void) pjsua_transport_config_dup(pj_pool_t *pool, - pjsua_transport_config *dst, - const pjsua_transport_config *src) -{ - PJ_UNUSED_ARG(pool); - pj_memcpy(dst, src, sizeof(*src)); -} - +PJ_DECL(void) pjsua_transport_config_dup(pj_pool_t *pool, + pjsua_transport_config *dst, + const pjsua_transport_config *src); /** @@ -1916,14 +1856,7 @@ typedef struct pjsua_acc_config acc_cfg = py_pjsua.acc_config_default() * \endcode */ -PJ_INLINE(void) pjsua_acc_config_default(pjsua_acc_config *cfg) -{ - pj_bzero(cfg, sizeof(*cfg)); - - cfg->reg_timeout = PJSUA_REG_INTERVAL; - cfg->transport_id = PJSUA_INVALID_ID; -} - +PJ_DECL(void) pjsua_acc_config_default(pjsua_acc_config *cfg); /** @@ -3064,10 +2997,7 @@ typedef struct pjsua_buddy_info buddy_cfg = py_pjsua.buddy_config_default() * \endcode */ -PJ_INLINE(void) pjsua_buddy_config_default(pjsua_buddy_config *cfg) -{ - pj_bzero(cfg, sizeof(*cfg)); -} +PJ_DECL(void) pjsua_buddy_config_default(pjsua_buddy_config *cfg); /** @@ -3555,20 +3485,7 @@ struct pjsua_media_config media_cfg = py_pjsua.media_config_default() * \endcode */ -PJ_INLINE(void) pjsua_media_config_default(pjsua_media_config *cfg) -{ - pj_bzero(cfg, sizeof(*cfg)); - - cfg->clock_rate = PJSUA_DEFAULT_CLOCK_RATE; - cfg->max_media_ports = 32; - cfg->has_ioqueue = PJ_TRUE; - cfg->thread_cnt = 1; - cfg->quality = PJSUA_DEFAULT_CODEC_QUALITY; - cfg->ilbc_mode = PJSUA_DEFAULT_ILBC_MODE; - cfg->ec_tail_len = PJSUA_DEFAULT_EC_TAIL_LEN; - cfg->jb_init = cfg->jb_min_pre = cfg->jb_max_pre = cfg->jb_max = -1; -} - +PJ_DECL(void) pjsua_media_config_default(pjsua_media_config *cfg); /** diff --git a/pjsip/src/pjsip-simple/evsub.c b/pjsip/src/pjsip-simple/evsub.c index 61a268d76..b3ef031fc 100644 --- a/pjsip/src/pjsip-simple/evsub.c +++ b/pjsip/src/pjsip-simple/evsub.c @@ -49,18 +49,35 @@ enum PJSIP_NOTIFY_METHOD = PJSIP_OTHER_METHOD }; -const pjsip_method pjsip_subscribe_method = +PJ_DEF_DATA(const pjsip_method) pjsip_subscribe_method = { (pjsip_method_e) PJSIP_SUBSCRIBE_METHOD, { "SUBSCRIBE", 9 } }; -const pjsip_method pjsip_notify_method = +PJ_DEF_DATA(const pjsip_method) pjsip_notify_method = { (pjsip_method_e) PJSIP_NOTIFY_METHOD, { "NOTIFY", 6 } }; +/** + * SUBSCRIBE method constant. + */ +PJ_DEF(const pjsip_method*) pjsip_get_subscribe_method() +{ + return &pjsip_subscribe_method; +} + +/** + * NOTIFY method constant. + */ +PJ_DEF(const pjsip_method*) pjsip_get_notify_method() +{ + return &pjsip_notify_method; +} + + /* * Static prototypes. */ @@ -1112,8 +1129,8 @@ PJ_DEF(pj_status_t) pjsip_evsub_notify( pjsip_evsub *sub, pjsip_dlg_inc_lock(sub->dlg); /* Create NOTIFY request */ - status = pjsip_dlg_create_request( sub->dlg, &pjsip_notify_method, -1, - &tdata); + status = pjsip_dlg_create_request( sub->dlg, pjsip_get_notify_method(), + -1, &tdata); if (status != PJ_SUCCESS) goto on_return; diff --git a/pjsip/src/pjsip-simple/evsub_msg.c b/pjsip/src/pjsip-simple/evsub_msg.c index 467345d9f..19058b15c 100644 --- a/pjsip/src/pjsip-simple/evsub_msg.c +++ b/pjsip/src/pjsip-simple/evsub_msg.c @@ -61,6 +61,7 @@ static int pjsip_event_hdr_print( pjsip_event_hdr *hdr, char *p = buf; char *endbuf = buf+size; int printed; + const pjsip_parser_const_t *pc = pjsip_parser_const(); copy_advance(p, hdr->name); *p++ = ':'; @@ -70,8 +71,8 @@ static int pjsip_event_hdr_print( pjsip_event_hdr *hdr, copy_advance_pair(p, ";id=", 4, hdr->id_param); printed = pjsip_param_print_on(&hdr->other_param, p, endbuf-p, - &pjsip_TOKEN_SPEC, - &pjsip_TOKEN_SPEC, ';'); + &pc->pjsip_TOKEN_SPEC, + &pc->pjsip_TOKEN_SPEC, ';'); if (printed < 0) return printed; @@ -159,6 +160,7 @@ static int pjsip_sub_state_hdr_print(pjsip_sub_state_hdr *hdr, char *p = buf; char *endbuf = buf+size; int printed; + const pjsip_parser_const_t *pc = pjsip_parser_const(); copy_advance(p, hdr->name); *p++ = ':'; @@ -180,8 +182,8 @@ static int pjsip_sub_state_hdr_print(pjsip_sub_state_hdr *hdr, } printed = pjsip_param_print_on( &hdr->other_param, p, endbuf-p, - &pjsip_TOKEN_SPEC, - &pjsip_TOKEN_SPEC, + &pc->pjsip_TOKEN_SPEC, + &pc->pjsip_TOKEN_SPEC, ';'); if (printed < 0) return printed; @@ -222,8 +224,9 @@ static pjsip_hdr *parse_hdr_event(pjsip_parse_ctx *ctx) { pjsip_event_hdr *hdr = pjsip_event_hdr_create(ctx->pool); const pj_str_t id_param = { "id", 2 }; + const pjsip_parser_const_t *pc = pjsip_parser_const(); - pj_scan_get(ctx->scanner, &pjsip_TOKEN_SPEC, &hdr->event_type); + pj_scan_get(ctx->scanner, &pc->pjsip_TOKEN_SPEC, &hdr->event_type); while (*ctx->scanner->curptr == ';') { pj_str_t pname, pvalue; @@ -253,7 +256,9 @@ static pjsip_hdr* parse_hdr_sub_state( pjsip_parse_ctx *ctx ) const pj_str_t reason = { "reason", 6 }, expires = { "expires", 7 }, retry_after = { "retry-after", 11 }; - pj_scan_get(ctx->scanner, &pjsip_TOKEN_SPEC, &hdr->sub_state); + const pjsip_parser_const_t *pc = pjsip_parser_const(); + + pj_scan_get(ctx->scanner, &pc->pjsip_TOKEN_SPEC, &hdr->sub_state); while (*ctx->scanner->curptr == ';') { pj_str_t pname, pvalue; diff --git a/pjsip/src/pjsip-ua/sip_inv.c b/pjsip/src/pjsip-ua/sip_inv.c index 1ff497b02..9f5617636 100644 --- a/pjsip/src/pjsip-ua/sip_inv.c +++ b/pjsip/src/pjsip-ua/sip_inv.c @@ -113,9 +113,6 @@ struct tsx_inv_data pj_bool_t sdp_done; }; -/* Config */ -extern pj_bool_t pjsip_include_allow_hdr_in_dlg; - /* * Module load() */ @@ -223,7 +220,7 @@ static pj_status_t inv_send_ack(pjsip_inv_session *inv, pjsip_rx_data *rdata) PJ_LOG(5,(inv->obj_name, "Received %s, sending ACK", pjsip_rx_data_get_info(rdata))); - status = pjsip_dlg_create_request(inv->dlg, &pjsip_ack_method, + status = pjsip_dlg_create_request(inv->dlg, pjsip_get_ack_method(), rdata->msg_info.cseq->cseq, &tdata); if (status != PJ_SUCCESS) { /* Better luck next time */ @@ -1108,7 +1105,7 @@ PJ_DEF(pj_status_t) pjsip_inv_invite( pjsip_inv_session *inv, pjsip_dlg_inc_lock(inv->dlg); /* Create the INVITE request. */ - status = pjsip_dlg_create_request(inv->dlg, &pjsip_invite_method, -1, + status = pjsip_dlg_create_request(inv->dlg, pjsip_get_invite_method(), -1, &tdata); if (status != PJ_SUCCESS) goto on_return; @@ -1155,7 +1152,7 @@ PJ_DEF(pj_status_t) pjsip_inv_invite( pjsip_inv_session *inv, } /* Add Allow header. */ - if (pjsip_include_allow_hdr_in_dlg) { + if (inv->dlg->add_allow) { hdr = pjsip_endpt_get_capability(inv->dlg->endpt, PJSIP_H_ALLOW, NULL); if (hdr) { pjsip_msg_add_hdr(tdata->msg, (pjsip_hdr*) @@ -1597,8 +1594,8 @@ PJ_DEF(pj_status_t) pjsip_inv_end_session( pjsip_inv_session *inv, case PJSIP_INV_STATE_CONNECTING: case PJSIP_INV_STATE_CONFIRMED: /* For established dialog, send BYE */ - status = pjsip_dlg_create_request(inv->dlg, &pjsip_bye_method, -1, - &tdata); + status = pjsip_dlg_create_request(inv->dlg, pjsip_get_bye_method(), + -1, &tdata); break; case PJSIP_INV_STATE_DISCONNECTED: @@ -1792,7 +1789,7 @@ static void inv_respond_incoming_cancel(pjsip_inv_session *inv, /* See if we have matching INVITE server transaction: */ pjsip_tsx_create_key(rdata->tp_info.pool, &key, PJSIP_ROLE_UAS, - &pjsip_invite_method, rdata); + pjsip_get_invite_method(), rdata); invite_tsx = pjsip_tsx_layer_find_tsx(&key, PJ_TRUE); if (invite_tsx == NULL) { diff --git a/pjsip/src/pjsip-ua/sip_reg.c b/pjsip/src/pjsip-ua/sip_reg.c index 6a5c3c2ff..c04fe07e4 100644 --- a/pjsip/src/pjsip-ua/sip_reg.c +++ b/pjsip/src/pjsip-ua/sip_reg.c @@ -366,7 +366,7 @@ static pj_status_t create_request(pjsip_regc *regc, /* Create the request. */ status = pjsip_endpt_create_request_from_hdr( regc->endpt, - &pjsip_register_method, + pjsip_get_register_method(), regc->srv_url, regc->from_hdr, regc->to_hdr, diff --git a/pjsip/src/pjsip-ua/sip_replaces.c b/pjsip/src/pjsip-ua/sip_replaces.c index 284c2828c..9b2339423 100644 --- a/pjsip/src/pjsip-ua/sip_replaces.c +++ b/pjsip/src/pjsip-ua/sip_replaces.c @@ -68,6 +68,7 @@ static int replaces_hdr_print( pjsip_replaces_hdr *hdr, char *p = buf; char *endbuf = buf+size; int printed; + const pjsip_parser_const_t *pc = pjsip_parser_const(); copy_advance(p, hdr->name); *p++ = ':'; @@ -83,8 +84,8 @@ static int replaces_hdr_print( pjsip_replaces_hdr *hdr, } printed = pjsip_param_print_on(&hdr->other_param, p, endbuf-p, - &pjsip_TOKEN_SPEC, - &pjsip_TOKEN_SPEC, ';'); + &pc->pjsip_TOKEN_SPEC, + &pc->pjsip_TOKEN_SPEC, ';'); if (printed < 0) return printed; diff --git a/pjsip/src/pjsip-ua/sip_xfer.c b/pjsip/src/pjsip-ua/sip_xfer.c index a4c466296..b9c41e884 100644 --- a/pjsip/src/pjsip-ua/sip_xfer.c +++ b/pjsip/src/pjsip-ua/sip_xfer.c @@ -57,11 +57,15 @@ enum PJSIP_REFER_METHOD = PJSIP_OTHER_METHOD }; -const pjsip_method pjsip_refer_method = { +PJ_DEF_DATA(const pjsip_method) pjsip_refer_method = { (pjsip_method_e) PJSIP_REFER_METHOD, { "REFER", 5} }; +PJ_DEF(const pjsip_method*) pjsip_get_refer_method() +{ + return &pjsip_refer_method; +} /* * String constants @@ -144,7 +148,8 @@ PJ_DEF(pj_status_t) pjsip_xfer_init_module(pjsip_endpoint *endpt) return status; status = pjsip_endpt_add_capability( endpt, &mod_xfer, PJSIP_H_ALLOW, - NULL, 1, &pjsip_refer_method.name); + NULL, 1, + &pjsip_get_refer_method()->name); if (status != PJ_SUCCESS) return status; @@ -223,7 +228,7 @@ PJ_DEF(pj_status_t) pjsip_xfer_create_uas( pjsip_dialog *dlg, /* Check that request is REFER */ PJ_ASSERT_RETURN(pjsip_method_cmp(&rdata->msg_info.msg->line.req.method, - &pjsip_refer_method)==0, + pjsip_get_refer_method())==0, PJSIP_ENOTREFER); /* Lock dialog */ @@ -298,7 +303,7 @@ PJ_DEF(pj_status_t) pjsip_xfer_initiate( pjsip_evsub *sub, pjsip_dlg_inc_lock(xfer->dlg); /* Create basic REFER request */ - status = pjsip_evsub_initiate(sub, &pjsip_refer_method, -1, + status = pjsip_evsub_initiate(sub, pjsip_get_refer_method(), -1, &tdata); if (status != PJ_SUCCESS) goto on_return; diff --git a/pjsip/src/pjsip/sip_auth_msg.c b/pjsip/src/pjsip/sip_auth_msg.c index 7b6cbc20e..5cb785271 100644 --- a/pjsip/src/pjsip/sip_auth_msg.c +++ b/pjsip/src/pjsip/sip_auth_msg.c @@ -67,6 +67,7 @@ static int print_digest_credential(pjsip_digest_credential *cred, char *buf, pj_ int printed; char *startbuf = buf; char *endbuf = buf + size; + const pjsip_parser_const_t *pc = pjsip_parser_const(); copy_advance_pair_quote_cond(buf, "username=", 9, cred->username, '"', '"'); copy_advance_pair_quote_cond(buf, ", realm=", 8, cred->realm, '"', '"'); @@ -83,8 +84,8 @@ static int print_digest_credential(pjsip_digest_credential *cred, char *buf, pj_ copy_advance_pair(buf, ", nc=", 5, cred->nc); printed = pjsip_param_print_on(&cred->other_param, buf, endbuf-buf, - &pjsip_TOKEN_SPEC, - &pjsip_TOKEN_SPEC, ','); + &pc->pjsip_TOKEN_SPEC, + &pc->pjsip_TOKEN_SPEC, ','); if (printed < 0) return -1; buf += printed; @@ -228,6 +229,7 @@ static int print_digest_challenge( pjsip_digest_challenge *chal, int printed; char *startbuf = buf; char *endbuf = buf + size; + const pjsip_parser_const_t *pc = pjsip_parser_const(); copy_advance_pair_quote_cond(buf, " realm=", 7, chal->realm, '"', '"'); copy_advance_pair_quote_cond(buf, ",domain=", 8, chal->domain, '"', '"'); @@ -241,8 +243,8 @@ static int print_digest_challenge( pjsip_digest_challenge *chal, copy_advance_pair_quote_cond(buf, ",qop=", 5, chal->qop, '"', '"'); printed = pjsip_param_print_on(&chal->other_param, buf, endbuf-buf, - &pjsip_TOKEN_SPEC, - &pjsip_TOKEN_SPEC, ','); + &pc->pjsip_TOKEN_SPEC, + &pc->pjsip_TOKEN_SPEC, ','); if (printed < 0) return -1; buf += printed; diff --git a/pjsip/src/pjsip/sip_auth_parser.c b/pjsip/src/pjsip/sip_auth_parser.c index fca1a41af..a9ffea6a2 100644 --- a/pjsip/src/pjsip/sip_auth_parser.c +++ b/pjsip/src/pjsip/sip_auth_parser.c @@ -195,12 +195,14 @@ static void parse_pgp_challenge( pj_scanner *scanner, pj_pool_t *pool, static void int_parse_hdr_authorization( pj_scanner *scanner, pj_pool_t *pool, pjsip_authorization_hdr *hdr) { + const pjsip_parser_const_t *pc = pjsip_parser_const(); + if (*scanner->curptr == '"') { pj_scan_get_quote(scanner, '"', '"', &hdr->scheme); hdr->scheme.ptr++; hdr->scheme.slen -= 2; } else { - pj_scan_get(scanner, &pjsip_TOKEN_SPEC, &hdr->scheme); + pj_scan_get(scanner, &pc->pjsip_TOKEN_SPEC, &hdr->scheme); } if (!pj_stricmp(&hdr->scheme, &pjsip_DIGEST_STR)) { @@ -221,12 +223,14 @@ static void int_parse_hdr_authorization( pj_scanner *scanner, pj_pool_t *pool, static void int_parse_hdr_authenticate( pj_scanner *scanner, pj_pool_t *pool, pjsip_www_authenticate_hdr *hdr) { + const pjsip_parser_const_t *pc = pjsip_parser_const(); + if (*scanner->curptr == '"') { pj_scan_get_quote(scanner, '"', '"', &hdr->scheme); hdr->scheme.ptr++; hdr->scheme.slen -= 2; } else { - pj_scan_get(scanner, &pjsip_TOKEN_SPEC, &hdr->scheme); + pj_scan_get(scanner, &pc->pjsip_TOKEN_SPEC, &hdr->scheme); } if (!pj_stricmp(&hdr->scheme, &pjsip_DIGEST_STR)) { diff --git a/pjsip/src/pjsip/sip_dialog.c b/pjsip/src/pjsip/sip_dialog.c index 326696a22..1295508bd 100644 --- a/pjsip/src/pjsip/sip_dialog.c +++ b/pjsip/src/pjsip/sip_dialog.c @@ -81,6 +81,7 @@ static pj_status_t create_dialog( pjsip_user_agent *ua, dlg->ua = ua; dlg->endpt = endpt; dlg->state = PJSIP_DIALOG_STATE_NULL; + dlg->add_allow = pjsip_include_allow_hdr_in_dlg; pj_list_init(&dlg->inv_hdr); @@ -1200,7 +1201,7 @@ static void dlg_beautify_response(pjsip_dialog *dlg, } /* Add Allow header in 2xx and 405 response. */ - if (((st_class==2 && pjsip_include_allow_hdr_in_dlg) + if (((st_class==2 && dlg->add_allow) || st_code==405) && pjsip_msg_find_hdr(tdata->msg, PJSIP_H_ALLOW, NULL)==NULL) { diff --git a/pjsip/src/pjsip/sip_endpoint.c b/pjsip/src/pjsip/sip_endpoint.c index 859c47d11..ef279a89e 100644 --- a/pjsip/src/pjsip/sip_endpoint.c +++ b/pjsip/src/pjsip/sip_endpoint.c @@ -34,7 +34,7 @@ #include #include -#define PJSIP_EX_NO_MEMORY PJ_NO_MEMORY_EXCEPTION +#define PJSIP_EX_NO_MEMORY pj_NO_MEMORY_EXCEPTION() #define THIS_FILE "sip_endpoint.c" #define MAX_METHODS 32 @@ -117,24 +117,6 @@ pj_status_t pjsip_tel_uri_subsys_init(void); /* Specifies whether error subsystem has been registered to pjlib. */ static int error_subsys_initialized; -/** - * Defined in sip_errno.c - * - * Get error message for the specified error code. This can only get - * PJSIP specific error message. To get all types of error message, - * use pj_strerror() instead. - * - * @param status The error code. - * @param buffer The buffer where to put the error message. - * @param bufsize Size of the buffer. - * - * @return The error message as NULL terminated string, - * wrapped with pj_str_t. - */ -PJ_DECL(pj_str_t) pjsip_strerror( pj_status_t status, char *buffer, - pj_size_t bufsize); - - /* * This is the global handler for memory allocation failure, for pools that * are created by the endpoint (by default, all pools ARE allocated by diff --git a/pjsip/src/pjsip/sip_msg.c b/pjsip/src/pjsip/sip_msg.c index eb5348f95..869cb59d3 100644 --- a/pjsip/src/pjsip/sip_msg.c +++ b/pjsip/src/pjsip/sip_msg.c @@ -24,13 +24,61 @@ #include #include -const pjsip_method - pjsip_invite_method = { PJSIP_INVITE_METHOD, { "INVITE",6 } }, - pjsip_cancel_method = { PJSIP_CANCEL_METHOD, { "CANCEL",6 } }, - pjsip_ack_method = { PJSIP_ACK_METHOD, { "ACK",3} }, - pjsip_bye_method = { PJSIP_BYE_METHOD, { "BYE",3} }, - pjsip_register_method = { PJSIP_REGISTER_METHOD, { "REGISTER",8} }, - pjsip_options_method = { PJSIP_OPTIONS_METHOD, { "OPTIONS",7} }; +PJ_DEF_DATA(const pjsip_method) pjsip_invite_method = + { PJSIP_INVITE_METHOD, { "INVITE",6 }}; + +PJ_DEF_DATA(const pjsip_method) pjsip_cancel_method = + { PJSIP_CANCEL_METHOD, { "CANCEL",6 }}; + +PJ_DEF_DATA(const pjsip_method) pjsip_ack_method = + { PJSIP_ACK_METHOD, { "ACK",3}}; + +PJ_DEF_DATA(const pjsip_method) pjsip_bye_method = + { PJSIP_BYE_METHOD, { "BYE",3}}; + +PJ_DEF_DATA(const pjsip_method) pjsip_register_method = + { PJSIP_REGISTER_METHOD, { "REGISTER", 8}}; + +PJ_DEF_DATA(const pjsip_method) pjsip_options_method = + { PJSIP_OPTIONS_METHOD, { "OPTIONS",7}}; + + +/** INVITE method constant. */ +PJ_DEF(const pjsip_method*) pjsip_get_invite_method(void) +{ + return &pjsip_invite_method; +} + +/** CANCEL method constant. */ +PJ_DEF(const pjsip_method*) pjsip_get_cancel_method(void) +{ + return &pjsip_cancel_method; +} + +/** ACK method constant. */ +PJ_DEF(const pjsip_method*) pjsip_get_ack_method(void) +{ + return &pjsip_ack_method; +} + +/** BYE method constant. */ +PJ_DEF(const pjsip_method*) pjsip_get_bye_method(void) +{ + return &pjsip_bye_method; +} + +/** REGISTER method constant.*/ +PJ_DEF(const pjsip_method*) pjsip_get_register_method(void) +{ + return &pjsip_register_method; +} + +/** OPTIONS method constant. */ +PJ_DEF(const pjsip_method*) pjsip_get_options_method(void) +{ + return &pjsip_options_method; +} + static const pj_str_t *method_names[] = { @@ -565,11 +613,10 @@ PJ_DEF(void) pjsip_generic_string_hdr_init2(pjsip_generic_string_hdr *hdr, } -PJ_DEF(pjsip_generic_string_hdr*) -pjsip_generic_string_hdr_init( pj_pool_t *pool, - void *mem, - const pj_str_t *hnames, - const pj_str_t *hvalue) +PJ_DEF(pjsip_generic_string_hdr*) pjsip_generic_string_hdr_init(pj_pool_t *pool, + void *mem, + const pj_str_t *hnames, + const pj_str_t *hvalue) { pjsip_generic_string_hdr *hdr = (pjsip_generic_string_hdr*) mem; pj_str_t dup_hname, dup_hval; @@ -590,8 +637,7 @@ pjsip_generic_string_hdr_init( pj_pool_t *pool, return hdr; } -PJ_DEF(pjsip_generic_string_hdr*) -pjsip_generic_string_hdr_create( pj_pool_t *pool, +PJ_DEF(pjsip_generic_string_hdr*) pjsip_generic_string_hdr_create(pj_pool_t *pool, const pj_str_t *hnames, const pj_str_t *hvalue) { @@ -1055,6 +1101,7 @@ static int pjsip_contact_hdr_print( pjsip_contact_hdr *hdr, char *buf, pj_size_t size) { const pj_str_t *hname = pjsip_use_compact_form? &hdr->sname : &hdr->name; + const pjsip_parser_const_t *pc = pjsip_parser_const(); if (hdr->star) { char *p = buf; @@ -1109,7 +1156,8 @@ static int pjsip_contact_hdr_print( pjsip_contact_hdr *hdr, char *buf, } printed = pjsip_param_print_on(&hdr->other_param, buf, endbuf-buf, - &pjsip_TOKEN_SPEC, &pjsip_TOKEN_SPEC, + &pc->pjsip_TOKEN_SPEC, + &pc->pjsip_TOKEN_SPEC, ';'); if (printed < 0) return printed; @@ -1346,6 +1394,7 @@ static int pjsip_fromto_hdr_print( pjsip_fromto_hdr *hdr, char *startbuf = buf; char *endbuf = buf + size; const pj_str_t *hname = pjsip_use_compact_form? &hdr->sname : &hdr->name; + const pjsip_parser_const_t *pc = pjsip_parser_const(); copy_advance(buf, (*hname)); *buf++ = ':'; @@ -1361,8 +1410,8 @@ static int pjsip_fromto_hdr_print( pjsip_fromto_hdr *hdr, copy_advance_pair(buf, ";tag=", 5, hdr->tag); printed = pjsip_param_print_on(&hdr->other_param, buf, endbuf-buf, - &pjsip_TOKEN_SPEC, - &pjsip_TOKEN_SPEC, ';'); + &pc->pjsip_TOKEN_SPEC, + &pc->pjsip_TOKEN_SPEC, ';'); if (printed < 0) return -1; buf += printed; @@ -1524,6 +1573,7 @@ static int pjsip_routing_hdr_print( pjsip_routing_hdr *hdr, int printed; char *startbuf = buf; char *endbuf = buf + size; + const pjsip_parser_const_t *pc = pjsip_parser_const(); /* Route and Record-Route don't compact forms */ copy_advance(buf, hdr->name); @@ -1537,8 +1587,8 @@ static int pjsip_routing_hdr_print( pjsip_routing_hdr *hdr, buf += printed; printed = pjsip_param_print_on(&hdr->other_param, buf, endbuf-buf, - &pjsip_TOKEN_SPEC, - &pjsip_TOKEN_SPEC, ';'); + &pc->pjsip_TOKEN_SPEC, + &pc->pjsip_TOKEN_SPEC, ';'); if (printed < 0) return -1; buf += printed; @@ -1704,6 +1754,7 @@ static int pjsip_via_hdr_print( pjsip_via_hdr *hdr, char *endbuf = buf + size; pj_str_t sip_ver = { "SIP/2.0/", 8 }; const pj_str_t *hname = pjsip_use_compact_form? &hdr->sname : &hdr->name; + const pjsip_parser_const_t *pc = pjsip_parser_const(); if ((pj_ssize_t)size < hname->slen + sip_ver.slen + hdr->transport.slen + hdr->sent_by.host.slen + 12) @@ -1757,8 +1808,8 @@ static int pjsip_via_hdr_print( pjsip_via_hdr *hdr, copy_advance_pair(buf, ";branch=", 8, hdr->branch_param); printed = pjsip_param_print_on(&hdr->other_param, buf, endbuf-buf, - &pjsip_TOKEN_SPEC, - &pjsip_TOKEN_SPEC, ';'); + &pc->pjsip_TOKEN_SPEC, + &pc->pjsip_TOKEN_SPEC, ';'); if (printed < 0) return -1; buf += printed; @@ -1813,10 +1864,9 @@ PJ_DEF(pjsip_warning_hdr*) pjsip_warning_hdr_create( pj_pool_t *pool, return pjsip_generic_string_hdr_create(pool, &str_warning, &hvalue); } -PJ_DEF(pjsip_warning_hdr*) -pjsip_warning_hdr_create_from_status( pj_pool_t *pool, - const pj_str_t *host, - pj_status_t status) +PJ_DEF(pjsip_warning_hdr*) pjsip_warning_hdr_create_from_status(pj_pool_t *pool, + const pj_str_t *host, + pj_status_t status) { char errbuf[PJ_ERR_MSG_SIZE]; pj_str_t text; diff --git a/pjsip/src/pjsip/sip_parser.c b/pjsip/src/pjsip/sip_parser.c index 6c322428b..9a0edcfaa 100644 --- a/pjsip/src/pjsip/sip_parser.c +++ b/pjsip/src/pjsip/sip_parser.c @@ -87,50 +87,29 @@ static unsigned uri_handler_count; */ int PJSIP_SYN_ERR_EXCEPTION; -const pj_str_t pjsip_USER_STR = { "user", 4}; -const pj_str_t pjsip_METHOD_STR = { "method", 6}; -const pj_str_t pjsip_TRANSPORT_STR = { "transport", 9}; -const pj_str_t pjsip_MADDR_STR = { "maddr", 5 }; -const pj_str_t pjsip_LR_STR = { "lr", 2 }; -const pj_str_t pjsip_SIP_STR = { "sip", 3 }; -const pj_str_t pjsip_SIPS_STR = { "sips", 4 }; -const pj_str_t pjsip_TEL_STR = { "tel", 3 }; -const pj_str_t pjsip_BRANCH_STR = { "branch", 6 }; -const pj_str_t pjsip_TTL_STR = { "ttl", 3 }; -const pj_str_t pjsip_RECEIVED_STR = { "received", 8 }; -const pj_str_t pjsip_Q_STR = { "q", 1 }; -const pj_str_t pjsip_EXPIRES_STR = { "expires", 7 }; -const pj_str_t pjsip_TAG_STR = { "tag", 3 }; -const pj_str_t pjsip_RPORT_STR = { "rport", 5}; +/* Parser constants */ +static pjsip_parser_const_t pconst = +{ + { "user", 4}, /* pjsip_USER_STR */ + { "method", 6}, /* pjsip_METHOD_STR */ + { "transport", 9}, /* pjsip_TRANSPORT_STR */ + { "maddr", 5 }, /* pjsip_MADDR_STR */ + { "lr", 2 }, /* pjsip_LR_STR */ + { "sip", 3 }, /* pjsip_SIP_STR */ + { "sips", 4 }, /* pjsip_SIPS_STR */ + { "tel", 3 }, /* pjsip_TEL_STR */ + { "branch", 6 }, /* pjsip_BRANCH_STR */ + { "ttl", 3 }, /* pjsip_TTL_STR */ + { "received", 8 }, /* pjsip_RECEIVED_STR */ + { "q", 1 }, /* pjsip_Q_STR */ + { "expires", 7 }, /* pjsip_EXPIRES_STR */ + { "tag", 3 }, /* pjsip_TAG_STR */ + { "rport", 5} /* pjsip_RPORT_STR */ +}; /* Character Input Specification buffer. */ static pj_cis_buf_t cis_buf; -/* Character Input Specifications. */ -pj_cis_t pjsip_HOST_SPEC, /* For scanning host part. */ - pjsip_DIGIT_SPEC, /* Decimal digits */ - pjsip_ALPHA_SPEC, /* Alpha (A-Z, a-z) */ - pjsip_ALNUM_SPEC, /* Decimal + Alpha. */ - pjsip_TOKEN_SPEC, /* Token. */ - pjsip_TOKEN_SPEC_ESC, /* Token without '%' character */ - pjsip_HEX_SPEC, /* Hexadecimal digits. */ - pjsip_PARAM_CHAR_SPEC, /* For scanning pname (or pvalue when - * it's not quoted.) */ - pjsip_PARAM_CHAR_SPEC_ESC, /* The variant without escaped char */ - pjsip_HDR_CHAR_SPEC, /* Chars in hname or hvalue */ - pjsip_HDR_CHAR_SPEC_ESC, /* Variant without escaped char */ - pjsip_PROBE_USER_HOST_SPEC, /* Hostname characters. */ - pjsip_PASSWD_SPEC, /* Password. */ - pjsip_PASSWD_SPEC_ESC, /* Variant without escaped char */ - pjsip_USER_SPEC, /* User */ - pjsip_USER_SPEC_ESC, /* Variant without escaped char */ - pjsip_USER_SPEC_LENIENT, /* User, with additional '#' char */ - pjsip_USER_SPEC_LENIENT_ESC, - pjsip_NOT_COMMA_OR_NEWLINE, /* Array separator. */ - pjsip_NOT_NEWLINE, /* For eating up header.*/ - pjsip_DISPLAY_SPEC; /* Used when searching for display name - * in URL. */ - /* * Forward decl. @@ -243,10 +222,17 @@ static void on_syntax_error(pj_scanner *scanner) PJ_THROW(PJSIP_SYN_ERR_EXCEPTION); } +/* Get parser constants. */ +PJ_DEF(const pjsip_parser_const_t*) pjsip_parser_const(void) +{ + return &pconst; +} + /* Concatenate unrecognized params into single string. */ -void pjsip_concat_param_imp( pj_str_t *param, pj_pool_t *pool, - const pj_str_t *pname, const pj_str_t *pvalue, - int sepchar) +PJ_DEF(void) pjsip_concat_param_imp(pj_str_t *param, pj_pool_t *pool, + const pj_str_t *pname, + const pj_str_t *pvalue, + int sepchar) { char *new_param, *p; int len; @@ -300,94 +286,94 @@ static pj_status_t init_parser() pj_cis_buf_init(&cis_buf); - status = pj_cis_init(&cis_buf, &pjsip_DIGIT_SPEC); + status = pj_cis_init(&cis_buf, &pconst.pjsip_DIGIT_SPEC); PJ_ASSERT_RETURN(status == PJ_SUCCESS, status); - pj_cis_add_num(&pjsip_DIGIT_SPEC); + pj_cis_add_num(&pconst.pjsip_DIGIT_SPEC); - status = pj_cis_init(&cis_buf, &pjsip_ALPHA_SPEC); + status = pj_cis_init(&cis_buf, &pconst.pjsip_ALPHA_SPEC); PJ_ASSERT_RETURN(status == PJ_SUCCESS, status); - pj_cis_add_alpha( &pjsip_ALPHA_SPEC ); + pj_cis_add_alpha( &pconst.pjsip_ALPHA_SPEC ); - status = pj_cis_init(&cis_buf, &pjsip_ALNUM_SPEC); + status = pj_cis_init(&cis_buf, &pconst.pjsip_ALNUM_SPEC); PJ_ASSERT_RETURN(status == PJ_SUCCESS, status); - pj_cis_add_alpha( &pjsip_ALNUM_SPEC ); - pj_cis_add_num( &pjsip_ALNUM_SPEC ); + pj_cis_add_alpha( &pconst.pjsip_ALNUM_SPEC ); + pj_cis_add_num( &pconst.pjsip_ALNUM_SPEC ); - status = pj_cis_init(&cis_buf, &pjsip_NOT_NEWLINE); + status = pj_cis_init(&cis_buf, &pconst.pjsip_NOT_NEWLINE); PJ_ASSERT_RETURN(status == PJ_SUCCESS, status); - pj_cis_add_str(&pjsip_NOT_NEWLINE, "\r\n"); - pj_cis_invert(&pjsip_NOT_NEWLINE); + pj_cis_add_str(&pconst.pjsip_NOT_NEWLINE, "\r\n"); + pj_cis_invert(&pconst.pjsip_NOT_NEWLINE); - status = pj_cis_init(&cis_buf, &pjsip_NOT_COMMA_OR_NEWLINE); + status = pj_cis_init(&cis_buf, &pconst.pjsip_NOT_COMMA_OR_NEWLINE); PJ_ASSERT_RETURN(status == PJ_SUCCESS, status); - pj_cis_add_str( &pjsip_NOT_COMMA_OR_NEWLINE, ",\r\n"); - pj_cis_invert(&pjsip_NOT_COMMA_OR_NEWLINE); + pj_cis_add_str( &pconst.pjsip_NOT_COMMA_OR_NEWLINE, ",\r\n"); + pj_cis_invert(&pconst.pjsip_NOT_COMMA_OR_NEWLINE); - status = pj_cis_dup(&pjsip_TOKEN_SPEC, &pjsip_ALNUM_SPEC); + status = pj_cis_dup(&pconst.pjsip_TOKEN_SPEC, &pconst.pjsip_ALNUM_SPEC); PJ_ASSERT_RETURN(status == PJ_SUCCESS, status); - pj_cis_add_str( &pjsip_TOKEN_SPEC, TOKEN); + pj_cis_add_str( &pconst.pjsip_TOKEN_SPEC, TOKEN); - status = pj_cis_dup(&pjsip_TOKEN_SPEC_ESC, &pjsip_TOKEN_SPEC); + status = pj_cis_dup(&pconst.pjsip_TOKEN_SPEC_ESC, &pconst.pjsip_TOKEN_SPEC); PJ_ASSERT_RETURN(status == PJ_SUCCESS, status); - pj_cis_del_str(&pjsip_TOKEN_SPEC_ESC, "%"); + pj_cis_del_str(&pconst.pjsip_TOKEN_SPEC_ESC, "%"); - status = pj_cis_dup(&pjsip_HOST_SPEC, &pjsip_ALNUM_SPEC); + status = pj_cis_dup(&pconst.pjsip_HOST_SPEC, &pconst.pjsip_ALNUM_SPEC); PJ_ASSERT_RETURN(status == PJ_SUCCESS, status); - pj_cis_add_str( &pjsip_HOST_SPEC, HOST); + pj_cis_add_str( &pconst.pjsip_HOST_SPEC, HOST); - status = pj_cis_dup(&pjsip_HEX_SPEC, &pjsip_DIGIT_SPEC); + status = pj_cis_dup(&pconst.pjsip_HEX_SPEC, &pconst.pjsip_DIGIT_SPEC); PJ_ASSERT_RETURN(status == PJ_SUCCESS, status); - pj_cis_add_str( &pjsip_HEX_SPEC, HEX_DIGIT); + pj_cis_add_str( &pconst.pjsip_HEX_SPEC, HEX_DIGIT); - status = pj_cis_dup(&pjsip_PARAM_CHAR_SPEC, &pjsip_ALNUM_SPEC); + status = pj_cis_dup(&pconst.pjsip_PARAM_CHAR_SPEC, &pconst.pjsip_ALNUM_SPEC); PJ_ASSERT_RETURN(status == PJ_SUCCESS, status); - pj_cis_add_str(&pjsip_PARAM_CHAR_SPEC, PARAM_CHAR); + pj_cis_add_str(&pconst.pjsip_PARAM_CHAR_SPEC, PARAM_CHAR); - status = pj_cis_dup(&pjsip_PARAM_CHAR_SPEC_ESC, &pjsip_PARAM_CHAR_SPEC); + status = pj_cis_dup(&pconst.pjsip_PARAM_CHAR_SPEC_ESC, &pconst.pjsip_PARAM_CHAR_SPEC); PJ_ASSERT_RETURN(status == PJ_SUCCESS, status); - pj_cis_del_str(&pjsip_PARAM_CHAR_SPEC_ESC, ESCAPED); + pj_cis_del_str(&pconst.pjsip_PARAM_CHAR_SPEC_ESC, ESCAPED); - status = pj_cis_dup(&pjsip_HDR_CHAR_SPEC, &pjsip_ALNUM_SPEC); + status = pj_cis_dup(&pconst.pjsip_HDR_CHAR_SPEC, &pconst.pjsip_ALNUM_SPEC); PJ_ASSERT_RETURN(status == PJ_SUCCESS, status); - pj_cis_add_str(&pjsip_HDR_CHAR_SPEC, HDR_CHAR); + pj_cis_add_str(&pconst.pjsip_HDR_CHAR_SPEC, HDR_CHAR); - status = pj_cis_dup(&pjsip_HDR_CHAR_SPEC_ESC, &pjsip_HDR_CHAR_SPEC); + status = pj_cis_dup(&pconst.pjsip_HDR_CHAR_SPEC_ESC, &pconst.pjsip_HDR_CHAR_SPEC); PJ_ASSERT_RETURN(status == PJ_SUCCESS, status); - pj_cis_del_str(&pjsip_HDR_CHAR_SPEC_ESC, ESCAPED); + pj_cis_del_str(&pconst.pjsip_HDR_CHAR_SPEC_ESC, ESCAPED); - status = pj_cis_dup(&pjsip_USER_SPEC, &pjsip_ALNUM_SPEC); + status = pj_cis_dup(&pconst.pjsip_USER_SPEC, &pconst.pjsip_ALNUM_SPEC); PJ_ASSERT_RETURN(status == PJ_SUCCESS, status); - pj_cis_add_str( &pjsip_USER_SPEC, UNRESERVED ESCAPED USER_UNRESERVED ); + pj_cis_add_str( &pconst.pjsip_USER_SPEC, UNRESERVED ESCAPED USER_UNRESERVED ); - status = pj_cis_dup(&pjsip_USER_SPEC_ESC, &pjsip_USER_SPEC); + status = pj_cis_dup(&pconst.pjsip_USER_SPEC_ESC, &pconst.pjsip_USER_SPEC); PJ_ASSERT_RETURN(status == PJ_SUCCESS, status); - pj_cis_del_str( &pjsip_USER_SPEC_ESC, ESCAPED); + pj_cis_del_str( &pconst.pjsip_USER_SPEC_ESC, ESCAPED); - status = pj_cis_dup(&pjsip_USER_SPEC_LENIENT, &pjsip_USER_SPEC); + status = pj_cis_dup(&pconst.pjsip_USER_SPEC_LENIENT, &pconst.pjsip_USER_SPEC); PJ_ASSERT_RETURN(status == PJ_SUCCESS, status); - pj_cis_add_str(&pjsip_USER_SPEC_LENIENT, "#"); + pj_cis_add_str(&pconst.pjsip_USER_SPEC_LENIENT, "#"); - status = pj_cis_dup(&pjsip_USER_SPEC_LENIENT_ESC, &pjsip_USER_SPEC_ESC); + status = pj_cis_dup(&pconst.pjsip_USER_SPEC_LENIENT_ESC, &pconst.pjsip_USER_SPEC_ESC); PJ_ASSERT_RETURN(status == PJ_SUCCESS, status); - pj_cis_add_str(&pjsip_USER_SPEC_LENIENT_ESC, "#"); + pj_cis_add_str(&pconst.pjsip_USER_SPEC_LENIENT_ESC, "#"); - status = pj_cis_dup(&pjsip_PASSWD_SPEC, &pjsip_ALNUM_SPEC); + status = pj_cis_dup(&pconst.pjsip_PASSWD_SPEC, &pconst.pjsip_ALNUM_SPEC); PJ_ASSERT_RETURN(status == PJ_SUCCESS, status); - pj_cis_add_str( &pjsip_PASSWD_SPEC, UNRESERVED ESCAPED PASS); + pj_cis_add_str( &pconst.pjsip_PASSWD_SPEC, UNRESERVED ESCAPED PASS); - status = pj_cis_dup(&pjsip_PASSWD_SPEC_ESC, &pjsip_PASSWD_SPEC); + status = pj_cis_dup(&pconst.pjsip_PASSWD_SPEC_ESC, &pconst.pjsip_PASSWD_SPEC); PJ_ASSERT_RETURN(status == PJ_SUCCESS, status); - pj_cis_del_str( &pjsip_PASSWD_SPEC_ESC, ESCAPED); + pj_cis_del_str( &pconst.pjsip_PASSWD_SPEC_ESC, ESCAPED); - status = pj_cis_init(&cis_buf, &pjsip_PROBE_USER_HOST_SPEC); + status = pj_cis_init(&cis_buf, &pconst.pjsip_PROBE_USER_HOST_SPEC); PJ_ASSERT_RETURN(status == PJ_SUCCESS, status); - pj_cis_add_str( &pjsip_PROBE_USER_HOST_SPEC, "@ \n>"); - pj_cis_invert( &pjsip_PROBE_USER_HOST_SPEC ); + pj_cis_add_str( &pconst.pjsip_PROBE_USER_HOST_SPEC, "@ \n>"); + pj_cis_invert( &pconst.pjsip_PROBE_USER_HOST_SPEC ); - status = pj_cis_init(&cis_buf, &pjsip_DISPLAY_SPEC); + status = pj_cis_init(&cis_buf, &pconst.pjsip_DISPLAY_SPEC); PJ_ASSERT_RETURN(status == PJ_SUCCESS, status); - pj_cis_add_str( &pjsip_DISPLAY_SPEC, ":\r\n<"); - pj_cis_invert(&pjsip_DISPLAY_SPEC); + pj_cis_add_str( &pconst.pjsip_DISPLAY_SPEC, ":\r\n<"); + pj_cis_invert(&pconst.pjsip_DISPLAY_SPEC); /* * Register URI parsers. @@ -817,7 +803,7 @@ PJ_DEF(pj_bool_t) pjsip_find_msg( const char *buf, pj_size_t size, } /* Get number */ - pj_scan_get(&scanner, &pjsip_DIGIT_SPEC, &str_clen); + pj_scan_get(&scanner, &pconst.pjsip_DIGIT_SPEC, &str_clen); /* Get newline. */ pj_scan_get_newline(&scanner); @@ -959,7 +945,7 @@ parse_headers: hname.slen = 0; /* Get hname. */ - pj_scan_get( scanner, &pjsip_TOKEN_SPEC, &hname); + pj_scan_get( scanner, &pconst.pjsip_TOKEN_SPEC, &hname); if (pj_scan_get_char( scanner ) != ':') { PJ_THROW(PJSIP_SYN_ERR_EXCEPTION); } @@ -1109,22 +1095,22 @@ static void parse_param_imp( pj_scanner *scanner, pj_pool_t *pool, } /* Parse parameter (pname ["=" pvalue]) using token. */ -void pjsip_parse_param_imp( pj_scanner *scanner, pj_pool_t *pool, - pj_str_t *pname, pj_str_t *pvalue, - unsigned option) +PJ_DEF(void) pjsip_parse_param_imp(pj_scanner *scanner, pj_pool_t *pool, + pj_str_t *pname, pj_str_t *pvalue, + unsigned option) { - parse_param_imp(scanner, pool, pname, pvalue, &pjsip_TOKEN_SPEC, - &pjsip_TOKEN_SPEC_ESC, option); + parse_param_imp(scanner, pool, pname, pvalue, &pconst.pjsip_TOKEN_SPEC, + &pconst.pjsip_TOKEN_SPEC_ESC, option); } /* Parse parameter (pname ["=" pvalue]) using paramchar. */ -void pjsip_parse_uri_param_imp(pj_scanner *scanner, pj_pool_t *pool, - pj_str_t *pname, pj_str_t *pvalue, - unsigned option) +PJ_DEF(void) pjsip_parse_uri_param_imp( pj_scanner *scanner, pj_pool_t *pool, + pj_str_t *pname, pj_str_t *pvalue, + unsigned option) { - parse_param_imp(scanner, pool, pname, pvalue, &pjsip_PARAM_CHAR_SPEC, - &pjsip_PARAM_CHAR_SPEC_ESC, option); + parse_param_imp(scanner,pool, pname, pvalue, &pconst.pjsip_PARAM_CHAR_SPEC, + &pconst.pjsip_PARAM_CHAR_SPEC_ESC, option); } @@ -1162,8 +1148,8 @@ static void int_parse_hparam( pj_scanner *scanner, pj_pool_t *pool, pj_scan_get_char(scanner); /* hname */ - parser_get_and_unescape(scanner, pool, &pjsip_HDR_CHAR_SPEC, - &pjsip_HDR_CHAR_SPEC_ESC, hname); + parser_get_and_unescape(scanner, pool, &pconst.pjsip_HDR_CHAR_SPEC, + &pconst.pjsip_HDR_CHAR_SPEC_ESC, hname); /* Init hvalue */ hvalue->ptr = NULL; @@ -1173,10 +1159,10 @@ static void int_parse_hparam( pj_scanner *scanner, pj_pool_t *pool, if (*scanner->curptr == '=') { pj_scan_get_char(scanner); if (!pj_scan_is_eof(scanner) && - pj_cis_match(&pjsip_HDR_CHAR_SPEC, *scanner->curptr)) + pj_cis_match(&pconst.pjsip_HDR_CHAR_SPEC, *scanner->curptr)) { - parser_get_and_unescape(scanner, pool, &pjsip_HDR_CHAR_SPEC, - &pjsip_HDR_CHAR_SPEC_ESC, hvalue); + parser_get_and_unescape(scanner, pool, &pconst.pjsip_HDR_CHAR_SPEC, + &pconst.pjsip_HDR_CHAR_SPEC_ESC, hvalue); } } } @@ -1185,12 +1171,12 @@ static void int_parse_hparam( pj_scanner *scanner, pj_pool_t *pool, static void int_parse_uri_host_port( pj_scanner *scanner, pj_str_t *host, int *p_port) { - pj_scan_get( scanner, &pjsip_HOST_SPEC, host); + pj_scan_get( scanner, &pconst.pjsip_HOST_SPEC, host); /* RFC3261 section 19.1.2: host don't need to be unescaped */ if (*scanner->curptr == ':') { pj_str_t port; pj_scan_get_char(scanner); - pj_scan_get(scanner, &pjsip_DIGIT_SPEC, &port); + pj_scan_get(scanner, &pconst.pjsip_DIGIT_SPEC, &port); *p_port = pj_strtoul(&port); } else { *p_port = 0; @@ -1206,7 +1192,7 @@ static int int_is_next_user(pj_scanner *scanner) /* Find character '@'. If this character exist, then the token * must be a username. */ - if (pj_scan_peek( scanner, &pjsip_PROBE_USER_HOST_SPEC, &dummy) == '@') + if (pj_scan_peek( scanner, &pconst.pjsip_PROBE_USER_HOST_SPEC, &dummy) == '@') is_user = 1; else is_user = 0; @@ -1218,13 +1204,13 @@ static int int_is_next_user(pj_scanner *scanner) static void int_parse_user_pass( pj_scanner *scanner, pj_pool_t *pool, pj_str_t *user, pj_str_t *pass) { - parser_get_and_unescape(scanner, pool, &pjsip_USER_SPEC_LENIENT, - &pjsip_USER_SPEC_LENIENT_ESC, user); + parser_get_and_unescape(scanner, pool, &pconst.pjsip_USER_SPEC_LENIENT, + &pconst.pjsip_USER_SPEC_LENIENT_ESC, user); if ( *scanner->curptr == ':') { pj_scan_get_char( scanner ); - parser_get_and_unescape(scanner, pool, &pjsip_PASSWD_SPEC, - &pjsip_PASSWD_SPEC_ESC, pass); + parser_get_and_unescape(scanner, pool, &pconst.pjsip_PASSWD_SPEC, + &pconst.pjsip_PASSWD_SPEC_ESC, pass); } else { pass->ptr = NULL; pass->slen = 0; @@ -1251,7 +1237,7 @@ static pjsip_uri *int_parse_uri_or_name_addr( pj_scanner *scanner, pj_pool_t *po pj_str_t scheme; int next_ch; - next_ch = pj_scan_peek( scanner, &pjsip_DISPLAY_SPEC, &scheme); + next_ch = pj_scan_peek( scanner, &pconst.pjsip_DISPLAY_SPEC, &scheme); if (next_ch==':') { pjsip_parse_uri_func *func = find_uri_handler(&scheme); @@ -1304,7 +1290,7 @@ static pjsip_uri *int_parse_uri(pj_scanner *scanner, pj_pool_t *pool, pjsip_parse_uri_func *func; /* Get scheme. */ - colon = pj_scan_peek(scanner, &pjsip_TOKEN_SPEC, &scheme); + colon = pj_scan_peek(scanner, &pconst.pjsip_TOKEN_SPEC, &scheme); if (colon != ':') { PJ_THROW(PJSIP_SYN_ERR_EXCEPTION); } @@ -1337,16 +1323,16 @@ static void* int_parse_sip_url( pj_scanner *scanner, int skip_ws = scanner->skip_ws; scanner->skip_ws = 0; - pj_scan_get(scanner, &pjsip_TOKEN_SPEC, &scheme); + pj_scan_get(scanner, &pconst.pjsip_TOKEN_SPEC, &scheme); colon = pj_scan_get_char(scanner); if (colon != ':') { PJ_THROW(PJSIP_SYN_ERR_EXCEPTION); } - if (parser_stricmp(scheme, pjsip_SIP_STR)==0) { + if (parser_stricmp(scheme, pconst.pjsip_SIP_STR)==0) { url = pjsip_sip_uri_create(pool, 0); - } else if (parser_stricmp(scheme, pjsip_SIPS_STR)==0) { + } else if (parser_stricmp(scheme, pconst.pjsip_SIPS_STR)==0) { url = pjsip_sip_uri_create(pool, 1); } else { @@ -1372,22 +1358,22 @@ static void* int_parse_sip_url( pj_scanner *scanner, int_parse_uri_param( scanner, pool, &pname, &pvalue, 0); - if (!parser_stricmp(pname, pjsip_USER_STR) && pvalue.slen) { + if (!parser_stricmp(pname, pconst.pjsip_USER_STR) && pvalue.slen) { url->user_param = pvalue; - } else if (!parser_stricmp(pname, pjsip_METHOD_STR) && pvalue.slen) { + } else if (!parser_stricmp(pname, pconst.pjsip_METHOD_STR) && pvalue.slen) { url->method_param = pvalue; - } else if (!parser_stricmp(pname,pjsip_TRANSPORT_STR) && pvalue.slen) { + } else if (!parser_stricmp(pname, pconst.pjsip_TRANSPORT_STR) && pvalue.slen) { url->transport_param = pvalue; - } else if (!parser_stricmp(pname, pjsip_TTL_STR) && pvalue.slen) { + } else if (!parser_stricmp(pname, pconst.pjsip_TTL_STR) && pvalue.slen) { url->ttl_param = pj_strtoul(&pvalue); - } else if (!parser_stricmp(pname, pjsip_MADDR_STR) && pvalue.slen) { + } else if (!parser_stricmp(pname, pconst.pjsip_MADDR_STR) && pvalue.slen) { url->maddr_param = pvalue; - } else if (!parser_stricmp(pname, pjsip_LR_STR)) { + } else if (!parser_stricmp(pname, pconst.pjsip_LR_STR)) { url->lr_param = 1; } else { @@ -1438,7 +1424,7 @@ static pjsip_name_addr *int_parse_name_addr( pj_scanner *scanner, * We're only interested in display name, because SIP URL * will be parser later. */ - next = pj_scan_peek(scanner, &pjsip_DISPLAY_SPEC, &dummy); + next = pj_scan_peek(scanner, &pconst.pjsip_DISPLAY_SPEC, &dummy); if (next == '<') { /* Ok, this is what we're looking for, a display name. */ pj_scan_get_until_ch( scanner, '<', &name_addr->display); @@ -1469,7 +1455,7 @@ static void int_parse_req_line( pj_scanner *scanner, pj_pool_t *pool, { pj_str_t token; - pj_scan_get( scanner, &pjsip_TOKEN_SPEC, &token); + pj_scan_get( scanner, &pconst.pjsip_TOKEN_SPEC, &token); pjsip_method_init_np( &req_line->method, &token); req_line->uri = int_parse_uri(scanner, pool, PJ_TRUE); @@ -1489,9 +1475,9 @@ static void int_parse_status_line( pj_scanner *scanner, PJ_THROW(PJSIP_SYN_ERR_EXCEPTION); pj_scan_advance_n( scanner, 7, 1); - pj_scan_get( scanner, &pjsip_DIGIT_SPEC, &token); + pj_scan_get( scanner, &pconst.pjsip_DIGIT_SPEC, &token); status_line->code = pj_strtoul(&token); - pj_scan_get( scanner, &pjsip_NOT_NEWLINE, &status_line->reason); + pj_scan_get( scanner, &pconst.pjsip_NOT_NEWLINE, &status_line->reason); pj_scan_get_newline( scanner ); } @@ -1538,7 +1524,7 @@ static void parse_hdr_end( pj_scanner *scanner ) } /* Parse ending of header. */ -void pjsip_parse_end_hdr_imp( pj_scanner *scanner ) +PJ_DEF(void) pjsip_parse_end_hdr_imp( pj_scanner *scanner ) { parse_hdr_end(scanner); } @@ -1556,12 +1542,12 @@ static void parse_generic_array_hdr( pjsip_generic_array_hdr *hdr, goto end; } - pj_scan_get( scanner, &pjsip_NOT_COMMA_OR_NEWLINE, &hdr->values[0]); + pj_scan_get( scanner, &pconst.pjsip_NOT_COMMA_OR_NEWLINE, &hdr->values[0]); hdr->count++; while (*scanner->curptr == ',') { pj_scan_get_char(scanner); - pj_scan_get( scanner, &pjsip_NOT_COMMA_OR_NEWLINE, + pj_scan_get( scanner, &pconst.pjsip_NOT_COMMA_OR_NEWLINE, &hdr->values[hdr->count]); hdr->count++; @@ -1577,8 +1563,8 @@ end: static void parse_generic_string_hdr( pjsip_generic_string_hdr *hdr, pj_scanner *scanner ) { - if (pj_cis_match(&pjsip_NOT_NEWLINE, *scanner->curptr)) - pj_scan_get( scanner, &pjsip_NOT_NEWLINE, &hdr->hvalue); + if (pj_cis_match(&pconst.pjsip_NOT_NEWLINE, *scanner->curptr)) + pj_scan_get( scanner, &pconst.pjsip_NOT_NEWLINE, &hdr->hvalue); else hdr->hvalue.slen = 0; @@ -1590,7 +1576,7 @@ static void parse_generic_int_hdr( pjsip_generic_int_hdr *hdr, pj_scanner *scanner ) { pj_str_t tmp; - pj_scan_get( scanner, &pjsip_DIGIT_SPEC, &tmp); + pj_scan_get( scanner, &pconst.pjsip_DIGIT_SPEC, &tmp); hdr->ivalue = pj_strtoul(&tmp); parse_hdr_end(scanner); } @@ -1616,7 +1602,7 @@ static pjsip_hdr* parse_hdr_allow(pjsip_parse_ctx *ctx) static pjsip_hdr* parse_hdr_call_id(pjsip_parse_ctx *ctx) { pjsip_cid_hdr *hdr = pjsip_cid_hdr_create(ctx->pool); - pj_scan_get( ctx->scanner, &pjsip_NOT_NEWLINE, &hdr->id); + pj_scan_get( ctx->scanner, &pconst.pjsip_NOT_NEWLINE, &hdr->id); parse_hdr_end(ctx->scanner); if (ctx->rdata) @@ -1634,7 +1620,7 @@ static void int_parse_contact_param( pjsip_contact_hdr *hdr, pj_str_t pname, pvalue; int_parse_param( scanner, pool, &pname, &pvalue, 0); - if (!parser_stricmp(pname, pjsip_Q_STR) && pvalue.slen) { + if (!parser_stricmp(pname, pconst.pjsip_Q_STR) && pvalue.slen) { char *dot_pos = (char*) pj_memchr(pvalue.ptr, '.', pvalue.slen); if (!dot_pos) { hdr->q1000 = pj_strtoul(&pvalue); @@ -1643,7 +1629,7 @@ static void int_parse_contact_param( pjsip_contact_hdr *hdr, pvalue.ptr = dot_pos + 1; hdr->q1000 = pj_strtoul_mindigit(&pvalue, 3); } - } else if (!parser_stricmp(pname, pjsip_EXPIRES_STR) && pvalue.slen) { + } else if (!parser_stricmp(pname, pconst.pjsip_EXPIRES_STR) && pvalue.slen) { hdr->expires = pj_strtoul(&pvalue); } else { @@ -1700,7 +1686,7 @@ static pjsip_hdr* parse_hdr_content_len( pjsip_parse_ctx *ctx ) pjsip_clen_hdr *hdr; hdr = pjsip_clen_hdr_create(ctx->pool); - pj_scan_get(ctx->scanner, &pjsip_DIGIT_SPEC, &digit); + pj_scan_get(ctx->scanner, &pconst.pjsip_DIGIT_SPEC, &digit); hdr->len = pj_strtoul(&digit); parse_hdr_end(ctx->scanner); @@ -1719,9 +1705,9 @@ static pjsip_hdr* parse_hdr_content_type( pjsip_parse_ctx *ctx ) hdr = pjsip_ctype_hdr_create(ctx->pool); /* Parse media type and subtype. */ - pj_scan_get(scanner, &pjsip_TOKEN_SPEC, &hdr->media.type); + pj_scan_get(scanner, &pconst.pjsip_TOKEN_SPEC, &hdr->media.type); pj_scan_get_char(scanner); - pj_scan_get(scanner, &pjsip_TOKEN_SPEC, &hdr->media.subtype); + pj_scan_get(scanner, &pconst.pjsip_TOKEN_SPEC, &hdr->media.subtype); /* Parse media parameters */ while (*scanner->curptr == ';') { @@ -1745,10 +1731,10 @@ static pjsip_hdr* parse_hdr_cseq( pjsip_parse_ctx *ctx ) pjsip_cseq_hdr *hdr; hdr = pjsip_cseq_hdr_create(ctx->pool); - pj_scan_get( ctx->scanner, &pjsip_DIGIT_SPEC, &cseq); + pj_scan_get( ctx->scanner, &pconst.pjsip_DIGIT_SPEC, &cseq); hdr->cseq = pj_strtoul(&cseq); - pj_scan_get( ctx->scanner, &pjsip_TOKEN_SPEC, &method); + pj_scan_get( ctx->scanner, &pconst.pjsip_TOKEN_SPEC, &method); pjsip_method_init_np(&hdr->method, &method); parse_hdr_end( ctx->scanner ); @@ -1781,7 +1767,7 @@ static void parse_hdr_fromto( pj_scanner *scanner, int_parse_param( scanner, pool, &pname, &pvalue, 0); - if (!parser_stricmp(pname, pjsip_TAG_STR)) { + if (!parser_stricmp(pname, pconst.pjsip_TAG_STR)) { hdr->tag = pvalue; } else { @@ -1865,19 +1851,19 @@ static void int_parse_via_param( pjsip_via_hdr *hdr, pj_scanner *scanner, int_parse_param( scanner, pool, &pname, &pvalue, 0); - if (!parser_stricmp(pname, pjsip_BRANCH_STR) && pvalue.slen) { + if (!parser_stricmp(pname, pconst.pjsip_BRANCH_STR) && pvalue.slen) { hdr->branch_param = pvalue; - } else if (!parser_stricmp(pname, pjsip_TTL_STR) && pvalue.slen) { + } else if (!parser_stricmp(pname, pconst.pjsip_TTL_STR) && pvalue.slen) { hdr->ttl_param = pj_strtoul(&pvalue); - } else if (!parser_stricmp(pname, pjsip_MADDR_STR) && pvalue.slen) { + } else if (!parser_stricmp(pname, pconst.pjsip_MADDR_STR) && pvalue.slen) { hdr->maddr_param = pvalue; - } else if (!parser_stricmp(pname, pjsip_RECEIVED_STR) && pvalue.slen) { + } else if (!parser_stricmp(pname, pconst.pjsip_RECEIVED_STR) && pvalue.slen) { hdr->recvd_param = pvalue; - } else if (!parser_stricmp(pname, pjsip_RPORT_STR)) { + } else if (!parser_stricmp(pname, pconst.pjsip_RPORT_STR)) { if (pvalue.slen) hdr->rport_param = pj_strtoul(&pvalue); else @@ -2003,13 +1989,13 @@ static pjsip_hdr* parse_hdr_via( pjsip_parse_ctx *ctx ) pj_scan_advance_n( scanner, 8, 1); - pj_scan_get( scanner, &pjsip_TOKEN_SPEC, &hdr->transport); - pj_scan_get( scanner, &pjsip_HOST_SPEC, &hdr->sent_by.host); + pj_scan_get( scanner, &pconst.pjsip_TOKEN_SPEC, &hdr->transport); + pj_scan_get( scanner, &pconst.pjsip_HOST_SPEC, &hdr->sent_by.host); if (*scanner->curptr==':') { pj_str_t digit; pj_scan_get_char(scanner); - pj_scan_get(scanner, &pjsip_DIGIT_SPEC, &digit); + pj_scan_get(scanner, &pconst.pjsip_DIGIT_SPEC, &digit); hdr->sent_by.port = pj_strtoul(&digit); } diff --git a/pjsip/src/pjsip/sip_tel_uri.c b/pjsip/src/pjsip/sip_tel_uri.c index f55eba796..ea1435d92 100644 --- a/pjsip/src/pjsip/sip_tel_uri.c +++ b/pjsip/src/pjsip/sip_tel_uri.c @@ -105,7 +105,7 @@ PJ_DEF(pjsip_tel_uri*) pjsip_tel_uri_create(pj_pool_t *pool) static const pj_str_t *tel_uri_get_scheme( const pjsip_tel_uri *uri ) { PJ_UNUSED_ARG(uri); - return &pjsip_TEL_STR; + return &pjsip_parser_const()->pjsip_TEL_STR; } static void *tel_uri_get_uri( pjsip_tel_uri *uri ) @@ -182,11 +182,12 @@ static pj_ssize_t tel_uri_print( pjsip_uri_context_e context, int printed; char *startbuf = buf; char *endbuf = buf+size; + const pjsip_parser_const_t *pc = pjsip_parser_const(); PJ_UNUSED_ARG(context); /* Print scheme. */ - copy_advance(buf, pjsip_TEL_STR); + copy_advance(buf, pc->pjsip_TEL_STR); *buf++ = ':'; /* Print number. */ @@ -370,14 +371,15 @@ static void* tel_uri_parse( pj_scanner *scanner, pj_pool_t *pool, pjsip_tel_uri *uri; pj_str_t token; int skip_ws = scanner->skip_ws; + const pjsip_parser_const_t *pc = pjsip_parser_const(); scanner->skip_ws = 0; /* Parse scheme. */ - pj_scan_get(scanner, &pjsip_TOKEN_SPEC, &token); + pj_scan_get(scanner, &pc->pjsip_TOKEN_SPEC, &token); if (pj_scan_get_char(scanner) != ':') PJ_THROW(PJSIP_SYN_ERR_EXCEPTION); - if (pj_stricmp_alnum(&token, &pjsip_TEL_STR) != 0) + if (pj_stricmp_alnum(&token, &pc->pjsip_TEL_STR) != 0) PJ_THROW(PJSIP_SYN_ERR_EXCEPTION); /* Create URI */ @@ -394,21 +396,22 @@ static void* tel_uri_parse( pj_scanner *scanner, pj_pool_t *pool, /* Get all parameters. */ if (parse_params && *scanner->curptr==';') { pj_str_t pname, pvalue; + const pjsip_parser_const_t *pc = pjsip_parser_const(); do { /* Eat the ';' separator. */ pj_scan_get_char(scanner); /* Get pname. */ - pj_scan_get(scanner, &pjsip_PARAM_CHAR_SPEC, &pname); + pj_scan_get(scanner, &pc->pjsip_PARAM_CHAR_SPEC, &pname); if (*scanner->curptr == '=') { pj_scan_get_char(scanner); # if defined(PJSIP_UNESCAPE_IN_PLACE) && PJSIP_UNESCAPE_IN_PLACE!=0 - pj_scan_get_unescape( scanner, - &pjsip_TEL_PARSING_PVALUE_SPEC_ESC, - &pvalue); + pj_scan_get_unescape(scanner, + &pjsip_TEL_PARSING_PVALUE_SPEC_ESC, + &pvalue); # else pj_scan_get(scanner, &pjsip_TEL_PARSING_PVALUE_SPEC, &pvalue); diff --git a/pjsip/src/pjsip/sip_transport.c b/pjsip/src/pjsip/sip_transport.c index 8f5dabb15..5f6679aa9 100644 --- a/pjsip/src/pjsip/sip_transport.c +++ b/pjsip/src/pjsip/sip_transport.c @@ -113,7 +113,7 @@ struct transport_names_t /* * Register new transport type to PJSIP. */ -PJ_DECL(pj_status_t) pjsip_transport_register_type(unsigned tp_flag, +PJ_DEF(pj_status_t) pjsip_transport_register_type( unsigned tp_flag, const char *tp_name, int def_port, int *p_tp_type) @@ -149,8 +149,7 @@ PJ_DECL(pj_status_t) pjsip_transport_register_type(unsigned tp_flag, /* * Get transport type from name. */ -PJ_DEF(pjsip_transport_type_e) -pjsip_transport_get_type_from_name(const pj_str_t *name) +PJ_DEF(pjsip_transport_type_e) pjsip_transport_get_type_from_name(const pj_str_t *name) { unsigned i; @@ -178,8 +177,7 @@ pjsip_transport_get_type_from_name(const pj_str_t *name) /* * Get the transport type for the specified flags. */ -PJ_DEF(pjsip_transport_type_e) -pjsip_transport_get_type_from_flag(unsigned flag) +PJ_DEF(pjsip_transport_type_e) pjsip_transport_get_type_from_flag(unsigned flag) { unsigned i; @@ -200,8 +198,7 @@ pjsip_transport_get_type_from_flag(unsigned flag) return PJSIP_TRANSPORT_UNSPECIFIED; } -PJ_DEF(unsigned) -pjsip_transport_get_flag_from_type( pjsip_transport_type_e type ) +PJ_DEF(unsigned) pjsip_transport_get_flag_from_type(pjsip_transport_type_e type) { /* Sanity check. * Check that transport_names[] are indexed on transport type. @@ -219,8 +216,7 @@ pjsip_transport_get_flag_from_type( pjsip_transport_type_e type ) /* * Get the default SIP port number for the specified type. */ -PJ_DEF(int) -pjsip_transport_get_default_port_for_type(pjsip_transport_type_e type) +PJ_DEF(int) pjsip_transport_get_default_port_for_type(pjsip_transport_type_e type) { /* Sanity check. * Check that transport_names[] are indexed on transport type. diff --git a/pjsip/src/pjsip/sip_ua_layer.c b/pjsip/src/pjsip/sip_ua_layer.c index cff581337..c345b0119 100644 --- a/pjsip/src/pjsip/sip_ua_layer.c +++ b/pjsip/src/pjsip/sip_ua_layer.c @@ -236,6 +236,7 @@ PJ_DEF(pj_status_t) pjsip_ua_destroy(void) /* * Create key to identify dialog set. */ +/* PJ_DEF(void) pjsip_ua_create_dlg_set_key( pj_pool_t *pool, pj_str_t *set_key, const pj_str_t *call_id, @@ -252,6 +253,7 @@ PJ_DEF(void) pjsip_ua_create_dlg_set_key( pj_pool_t *pool, pj_memcpy(set_key->ptr + call_id->slen + 1, local_tag->ptr, local_tag->slen); } +*/ /* * Acquire one dlg_set node to be put in the hash table. @@ -511,7 +513,7 @@ static struct dlg_set *find_dlg_set_for_msg( pjsip_rx_data *rdata ) role = PJSIP_ROLE_UAC; pjsip_tsx_create_key(rdata->tp_info.pool, &key, role, - &pjsip_invite_method, rdata); + pjsip_get_invite_method(), rdata); /* Lookup the INVITE transaction */ tsx = pjsip_tsx_layer_find_tsx(&key, PJ_TRUE); diff --git a/pjsip/src/pjsip/sip_uri.c b/pjsip/src/pjsip/sip_uri.c index c224090c9..e22776abf 100644 --- a/pjsip/src/pjsip/sip_uri.c +++ b/pjsip/src/pjsip/sip_uri.c @@ -243,6 +243,7 @@ static pj_ssize_t pjsip_url_print( pjsip_uri_context_e context, char *startbuf = buf; char *endbuf = buf+size; const pj_str_t *scheme; + const pjsip_parser_const_t *pc = pjsip_parser_const(); *buf = '\0'; @@ -253,10 +254,10 @@ static pj_ssize_t pjsip_url_print( pjsip_uri_context_e context, /* Print "user:password@", if any. */ if (url->user.slen) { - copy_advance_escape(buf, url->user, pjsip_USER_SPEC); + copy_advance_escape(buf, url->user, pc->pjsip_USER_SPEC); if (url->passwd.slen) { *buf++ = ':'; - copy_advance_escape(buf, url->passwd, pjsip_PASSWD_SPEC); + copy_advance_escape(buf, url->passwd, pc->pjsip_PASSWD_SPEC); } *buf++ = '@'; @@ -289,13 +290,13 @@ static pj_ssize_t pjsip_url_print( pjsip_uri_context_e context, /* Method param is only allowed in external/other context. */ if (context == PJSIP_URI_IN_OTHER) { copy_advance_pair_escape(buf, ";method=", 8, url->method_param, - pjsip_PARAM_CHAR_SPEC); + pc->pjsip_PARAM_CHAR_SPEC); } /* Transport is not allowed in From/To header. */ if (context != PJSIP_URI_IN_FROMTO_HDR) { copy_advance_pair_escape(buf, ";transport=", 11, url->transport_param, - pjsip_PARAM_CHAR_SPEC); + pc->pjsip_PARAM_CHAR_SPEC); } /* TTL param is not allowed in From, To, Route, and Record-Route header. */ @@ -312,7 +313,7 @@ static pj_ssize_t pjsip_url_print( pjsip_uri_context_e context, /* maddr param is not allowed in From and To header. */ if (context != PJSIP_URI_IN_FROMTO_HDR) { copy_advance_pair_escape(buf, ";maddr=", 7, url->maddr_param, - pjsip_PARAM_CHAR_SPEC); + pc->pjsip_PARAM_CHAR_SPEC); } /* lr param is not allowed in From, To, and Contact header. */ @@ -327,8 +328,8 @@ static pj_ssize_t pjsip_url_print( pjsip_uri_context_e context, /* Other param. */ printed = pjsip_param_print_on(&url->other_param, buf, endbuf-buf, - &pjsip_PARAM_CHAR_SPEC, - &pjsip_PARAM_CHAR_SPEC, ';'); + &pc->pjsip_PARAM_CHAR_SPEC, + &pc->pjsip_PARAM_CHAR_SPEC, ';'); if (printed < 0) return -1; buf += printed; @@ -340,8 +341,8 @@ static pj_ssize_t pjsip_url_print( pjsip_uri_context_e context, */ if (context == PJSIP_URI_IN_CONTACT_HDR || context == PJSIP_URI_IN_OTHER) { printed = pjsip_param_print_on(&url->header_param, buf, endbuf-buf, - &pjsip_HDR_CHAR_SPEC, - &pjsip_HDR_CHAR_SPEC, '?'); + &pc->pjsip_HDR_CHAR_SPEC, + &pc->pjsip_HDR_CHAR_SPEC, '?'); if (printed < 0) return -1; buf += printed; diff --git a/pjsip/src/pjsip/sip_util.c b/pjsip/src/pjsip/sip_util.c index 6b74d0c5f..c48ff865d 100644 --- a/pjsip/src/pjsip/sip_util.c +++ b/pjsip/src/pjsip/sip_util.c @@ -261,8 +261,7 @@ on_error: return status; } -PJ_DEF(pj_status_t) -pjsip_endpt_create_request_from_hdr( pjsip_endpoint *endpt, +PJ_DEF(pj_status_t) pjsip_endpt_create_request_from_hdr( pjsip_endpoint *endpt, const pjsip_method *method, const pjsip_uri *param_target, const pjsip_from_hdr *param_from, @@ -484,7 +483,7 @@ PJ_DEF(pj_status_t) pjsip_endpt_create_ack( pjsip_endpoint *endpt, /* Create new request message from the headers. */ status = pjsip_endpt_create_request_from_hdr(endpt, - &pjsip_ack_method, + pjsip_get_ack_method(), tdata->msg->line.req.uri, from_hdr, to_hdr, NULL, cid_hdr, @@ -575,7 +574,7 @@ PJ_DEF(pj_status_t) pjsip_endpt_create_cancel( pjsip_endpoint *endpt, /* Create new request message from the headers. */ status = pjsip_endpt_create_request_from_hdr(endpt, - &pjsip_cancel_method, + pjsip_get_cancel_method(), req_tdata->msg->line.req.uri, from_hdr, to_hdr, NULL, cid_hdr, @@ -992,8 +991,7 @@ stateless_send_resolver_callback( pj_status_t status, * - establish transport (#pjsip_endpt_acquire_transport) * - send the message (#pjsip_transport_send) */ -PJ_DEF(pj_status_t) -pjsip_endpt_send_request_stateless(pjsip_endpoint *endpt, +PJ_DEF(pj_status_t) pjsip_endpt_send_request_stateless(pjsip_endpoint *endpt, pjsip_tx_data *tdata, void *token, pjsip_send_callback cb) diff --git a/pjsip/src/pjsua-lib/pjsua_call.c b/pjsip/src/pjsua-lib/pjsua_call.c index d1042da9a..935eaf512 100644 --- a/pjsip/src/pjsua-lib/pjsua_call.c +++ b/pjsip/src/pjsua-lib/pjsua_call.c @@ -2771,7 +2771,7 @@ static void pjsua_call_on_tsx_state_changed(pjsip_inv_session *inv, if (tsx->role==PJSIP_ROLE_UAS && tsx->state==PJSIP_TSX_STATE_TRYING && - pjsip_method_cmp(&tsx->method, &pjsip_refer_method)==0) + pjsip_method_cmp(&tsx->method, pjsip_get_refer_method())==0) { /* * Incoming REFER request. diff --git a/pjsip/src/pjsua-lib/pjsua_core.c b/pjsip/src/pjsua-lib/pjsua_core.c index f2d18dc36..61d49c399 100644 --- a/pjsip/src/pjsua-lib/pjsua_core.c +++ b/pjsip/src/pjsua-lib/pjsua_core.c @@ -54,6 +54,113 @@ static void init_data() } +PJ_DEF(void) pjsua_logging_config_default(pjsua_logging_config *cfg) +{ + pj_bzero(cfg, sizeof(*cfg)); + + cfg->msg_logging = PJ_TRUE; + cfg->level = 5; + cfg->console_level = 4; + cfg->decor = PJ_LOG_HAS_SENDER | PJ_LOG_HAS_TIME | + PJ_LOG_HAS_MICRO_SEC | PJ_LOG_HAS_NEWLINE; +} + +PJ_DEF(void) pjsua_logging_config_dup(pj_pool_t *pool, + pjsua_logging_config *dst, + const pjsua_logging_config *src) +{ + pj_memcpy(dst, src, sizeof(*src)); + pj_strdup_with_null(pool, &dst->log_filename, &src->log_filename); +} + +PJ_DEF(void) pjsua_config_default(pjsua_config *cfg) +{ + pj_bzero(cfg, sizeof(*cfg)); + + cfg->max_calls = 4; + cfg->thread_cnt = 1; +} + +PJ_DEF(void) pjsip_cred_dup( pj_pool_t *pool, + pjsip_cred_info *dst, + const pjsip_cred_info *src) +{ + pj_strdup_with_null(pool, &dst->realm, &src->realm); + pj_strdup_with_null(pool, &dst->scheme, &src->scheme); + pj_strdup_with_null(pool, &dst->username, &src->username); + pj_strdup_with_null(pool, &dst->data, &src->data); +} + +PJ_DEF(void) pjsua_config_dup(pj_pool_t *pool, + pjsua_config *dst, + const pjsua_config *src) +{ + unsigned i; + + pj_memcpy(dst, src, sizeof(*src)); + + for (i=0; ioutbound_proxy_cnt; ++i) { + pj_strdup_with_null(pool, &dst->outbound_proxy[i], + &src->outbound_proxy[i]); + } + + for (i=0; icred_count; ++i) { + pjsip_cred_dup(pool, &dst->cred_info[i], &src->cred_info[i]); + } + + pj_strdup_with_null(pool, &dst->user_agent, &src->user_agent); + pj_strdup_with_null(pool, &dst->stun_domain, &src->stun_domain); + pj_strdup_with_null(pool, &dst->stun_host, &src->stun_host); + pj_strdup_with_null(pool, &dst->stun_relay_host, &src->stun_relay_host); +} + +PJ_DEF(void) pjsua_msg_data_init(pjsua_msg_data *msg_data) +{ + pj_bzero(msg_data, sizeof(*msg_data)); + pj_list_init(&msg_data->hdr_list); +} + +PJ_DEF(void) pjsua_transport_config_default(pjsua_transport_config *cfg) +{ + pj_bzero(cfg, sizeof(*cfg)); + pjsip_tls_setting_default(&cfg->tls_setting); +} + +PJ_DEF(void) pjsua_transport_config_dup(pj_pool_t *pool, + pjsua_transport_config *dst, + const pjsua_transport_config *src) +{ + PJ_UNUSED_ARG(pool); + pj_memcpy(dst, src, sizeof(*src)); +} + +PJ_DEF(void) pjsua_acc_config_default(pjsua_acc_config *cfg) +{ + pj_bzero(cfg, sizeof(*cfg)); + + cfg->reg_timeout = PJSUA_REG_INTERVAL; + cfg->transport_id = PJSUA_INVALID_ID; +} + +PJ_DEF(void) pjsua_buddy_config_default(pjsua_buddy_config *cfg) +{ + pj_bzero(cfg, sizeof(*cfg)); +} + +PJ_DEF(void) pjsua_media_config_default(pjsua_media_config *cfg) +{ + pj_bzero(cfg, sizeof(*cfg)); + + cfg->clock_rate = PJSUA_DEFAULT_CLOCK_RATE; + cfg->max_media_ports = 32; + cfg->has_ioqueue = PJ_TRUE; + cfg->thread_cnt = 1; + cfg->quality = PJSUA_DEFAULT_CODEC_QUALITY; + cfg->ilbc_mode = PJSUA_DEFAULT_ILBC_MODE; + cfg->ec_tail_len = PJSUA_DEFAULT_EC_TAIL_LEN; + cfg->jb_init = cfg->jb_min_pre = cfg->jb_max_pre = cfg->jb_max = -1; +} + /***************************************************************************** * This is a very simple PJSIP module, whose sole purpose is to display @@ -148,7 +255,7 @@ static pj_bool_t options_on_rx_request(pjsip_rx_data *rdata) /* Only want to handle OPTIONS requests */ if (pjsip_method_cmp(&rdata->msg_info.msg->line.req.method, - &pjsip_options_method) != 0) + pjsip_get_options_method()) != 0) { return PJ_FALSE; } diff --git a/pjsip/src/pjsua-lib/pjsua_media.c b/pjsip/src/pjsua-lib/pjsua_media.c index 6f646fb8b..8700bd592 100644 --- a/pjsip/src/pjsua-lib/pjsua_media.c +++ b/pjsip/src/pjsua-lib/pjsua_media.c @@ -625,8 +625,8 @@ on_error: * Create UDP media transports for all the calls. This function creates * one UDP media transport for each call. */ -PJ_DEF(pj_status_t) -pjsua_media_transports_create(const pjsua_transport_config *app_cfg) +PJ_DEF(pj_status_t) pjsua_media_transports_create( + const pjsua_transport_config *app_cfg) { pjsua_transport_config cfg; unsigned i; @@ -1112,7 +1112,7 @@ static char* get_basename(const char *path, unsigned len) if (len==0) return p; - for (--p; p!=path && *p!='/' && *p!='\\'; --p); + for (--p; p!=path && *p!='/' && *p!='\\'; ) --p; return (p==path) ? p : p+1; } diff --git a/pjsip/src/pjsua-lib/pjsua_pres.c b/pjsip/src/pjsua-lib/pjsua_pres.c index 5a90cb1d9..963db29ce 100644 --- a/pjsip/src/pjsua-lib/pjsua_pres.c +++ b/pjsip/src/pjsua-lib/pjsua_pres.c @@ -459,7 +459,7 @@ static pj_bool_t pres_on_rx_request(pjsip_rx_data *rdata) pjsip_evsub_state ev_state; pj_status_t status; - if (pjsip_method_cmp(req_method, &pjsip_subscribe_method) != 0) + if (pjsip_method_cmp(req_method, pjsip_get_subscribe_method()) != 0) return PJ_FALSE; /* Incoming SUBSCRIBE: */ @@ -926,7 +926,7 @@ static void pjsua_evsub_on_tsx_state(pjsip_evsub *sub, if (tsx->status_code/100 != 2 || tsx->role != PJSIP_UAC_ROLE || event->type != PJSIP_EVENT_RX_MSG || - pjsip_method_cmp(&tsx->method, &pjsip_subscribe_method)!=0) + pjsip_method_cmp(&tsx->method, pjsip_get_subscribe_method())!=0) { PJSUA_UNLOCK(); return;