Continue work on ticket #354: changed pjlib-util and pjnath libraries to .DSO (DLL) in Symbian

git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@1410 74dad513-b988-da41-8d7b-12977e46ad98
diff --git a/build.symbian/makedef.sh b/build.symbian/makedef.sh
index 46d85b6..1fe8c49 100644
--- a/build.symbian/makedef.sh
+++ b/build.symbian/makedef.sh
@@ -52,5 +52,5 @@
 

 

 echo

-echo "Done. Total $i symbols exported."

+echo "Done. Total $i symbols exported in $DEFFILE."

 

diff --git a/build.symbian/pjlibU.def b/build.symbian/pjlibU.def
index 6af41e2..45439ca 100644
--- a/build.symbian/pjlibU.def
+++ b/build.symbian/pjlibU.def
@@ -4,287 +4,289 @@
 	PJ_FD_ISSET                              @ 3 NONAME
 	PJ_FD_SET                                @ 4 NONAME
 	PJ_FD_ZERO                               @ 5 NONAME
-	pj_AF_INET                               @ 6 NONAME
-	pj_AF_INET6                              @ 7 NONAME
-	pj_AF_IRDA                               @ 8 NONAME
-	pj_AF_PACKET                             @ 9 NONAME
-	pj_AF_UNIX                               @ 10 NONAME
-	pj_IPTOS_LOWDELAY                        @ 11 NONAME
-	pj_IPTOS_MINCOST                         @ 12 NONAME
-	pj_IPTOS_RELIABILITY                     @ 13 NONAME
-	pj_IPTOS_THROUGHPUT                      @ 14 NONAME
-	pj_IP_TOS                                @ 15 NONAME
-	pj_MSG_DONTROUTE                         @ 16 NONAME
-	pj_MSG_OOB                               @ 17 NONAME
-	pj_MSG_PEEK                              @ 18 NONAME
-	pj_SOCK_DGRAM                            @ 19 NONAME
-	pj_SOCK_RAW                              @ 20 NONAME
-	pj_SOCK_RDM                              @ 21 NONAME
-	pj_SOCK_STREAM                           @ 22 NONAME
-	pj_SOL_IP                                @ 23 NONAME
-	pj_SOL_IPV6                              @ 24 NONAME
-	pj_SOL_SOCKET                            @ 25 NONAME
-	pj_SOL_TCP                               @ 26 NONAME
-	pj_SOL_UDP                               @ 27 NONAME
-	pj_SO_RCVBUF                             @ 28 NONAME
-	pj_SO_SNDBUF                             @ 29 NONAME
-	pj_SO_TYPE                               @ 30 NONAME
-	pj_ansi_to_unicode                       @ 31 NONAME
-	pj_array_erase                           @ 32 NONAME
-	pj_array_find                            @ 33 NONAME
-	pj_array_insert                          @ 34 NONAME
-	pj_atexit                                @ 35 NONAME
-	pj_atomic_add                            @ 36 NONAME
-	pj_atomic_add_and_get                    @ 37 NONAME
-	pj_atomic_create                         @ 38 NONAME
-	pj_atomic_dec                            @ 39 NONAME
-	pj_atomic_dec_and_get                    @ 40 NONAME
-	pj_atomic_destroy                        @ 41 NONAME
-	pj_atomic_get                            @ 42 NONAME
-	pj_atomic_inc                            @ 43 NONAME
-	pj_atomic_inc_and_get                    @ 44 NONAME
-	pj_atomic_set                            @ 45 NONAME
-	pj_caching_pool_destroy                  @ 46 NONAME
-	pj_caching_pool_init                     @ 47 NONAME
-	pj_create_random_string                  @ 48 NONAME
-	pj_create_unique_string                  @ 49 NONAME
-	pj_dump_config                           @ 50 NONAME
-	pj_elapsed_cycle                         @ 51 NONAME
-	pj_elapsed_msec                          @ 52 NONAME
-	pj_elapsed_nanosec                       @ 53 NONAME
-	pj_elapsed_time                          @ 54 NONAME
-	pj_elapsed_usec                          @ 55 NONAME
-	pj_enter_critical_section                @ 56 NONAME
-	pj_enum_ip_interface                     @ 57 NONAME
-	pj_enum_ip_route                         @ 58 NONAME
-	pj_exception_id_alloc                    @ 59 NONAME
-	pj_exception_id_free                     @ 60 NONAME
-	pj_exception_id_name                     @ 61 NONAME
-	pj_fifobuf_alloc                         @ 62 NONAME
-	pj_fifobuf_free                          @ 63 NONAME
-	pj_fifobuf_init                          @ 64 NONAME
-	pj_fifobuf_max_size                      @ 65 NONAME
-	pj_fifobuf_unalloc                       @ 66 NONAME
-	pj_file_close                            @ 67 NONAME
-	pj_file_delete                           @ 68 NONAME
-	pj_file_exists                           @ 69 NONAME
-	pj_file_flush                            @ 70 NONAME
-	pj_file_getpos                           @ 71 NONAME
-	pj_file_getstat                          @ 72 NONAME
-	pj_file_move                             @ 73 NONAME
-	pj_file_open                             @ 74 NONAME
-	pj_file_read                             @ 75 NONAME
-	pj_file_setpos                           @ 76 NONAME
-	pj_file_size                             @ 77 NONAME
-	pj_file_write                            @ 78 NONAME
-	pj_generate_unique_string                @ 79 NONAME
-	pj_get_netos_error                       @ 80 NONAME
-	pj_get_os_error                          @ 81 NONAME
-	pj_get_timestamp                         @ 82 NONAME
-	pj_get_timestamp_freq                    @ 83 NONAME
-	pj_gethostaddr                           @ 84 NONAME
-	pj_gethostbyname                         @ 85 NONAME
-	pj_gethostip                             @ 86 NONAME
-	pj_gethostname                           @ 87 NONAME
-	pj_getpid                                @ 88 NONAME
-	pj_gettimeofday                          @ 89 NONAME
-	pj_hash_calc                             @ 90 NONAME
-	pj_hash_calc_tolower                     @ 91 NONAME
-	pj_hash_count                            @ 92 NONAME
-	pj_hash_create                           @ 93 NONAME
-	pj_hash_first                            @ 94 NONAME
-	pj_hash_get                              @ 95 NONAME
-	pj_hash_next                             @ 96 NONAME
-	pj_hash_set                              @ 97 NONAME
-	pj_hash_set_np                           @ 98 NONAME
-	pj_hash_this                             @ 99 NONAME
-	pj_htonl                                 @ 100 NONAME
-	pj_htons                                 @ 101 NONAME
-	pj_inet_addr                             @ 102 NONAME
-	pj_inet_addr2                            @ 103 NONAME
-	pj_inet_aton                             @ 104 NONAME
-	pj_inet_ntoa                             @ 105 NONAME
-	pj_init                                  @ 106 NONAME
-	pj_ioqueue_accept                        @ 107 NONAME
-	pj_ioqueue_connect                       @ 108 NONAME
-	pj_ioqueue_create                        @ 109 NONAME
-	pj_ioqueue_destroy                       @ 110 NONAME
-	pj_ioqueue_get_user_data                 @ 111 NONAME
-	pj_ioqueue_is_pending                    @ 112 NONAME
-	pj_ioqueue_name                          @ 113 NONAME
-	pj_ioqueue_op_key_init                   @ 114 NONAME
-	pj_ioqueue_poll                          @ 115 NONAME
-	pj_ioqueue_post_completion               @ 116 NONAME
-	pj_ioqueue_recv                          @ 117 NONAME
-	pj_ioqueue_recvfrom                      @ 118 NONAME
-	pj_ioqueue_register_sock                 @ 119 NONAME
-	pj_ioqueue_send                          @ 120 NONAME
-	pj_ioqueue_sendto                        @ 121 NONAME
-	pj_ioqueue_set_lock                      @ 122 NONAME
-	pj_ioqueue_set_user_data                 @ 123 NONAME
-	pj_ioqueue_unregister                    @ 124 NONAME
-	pj_leave_critical_section                @ 125 NONAME
-	pj_list_erase                            @ 126 NONAME
-	pj_list_find_node                        @ 127 NONAME
-	pj_list_insert_after                     @ 128 NONAME
-	pj_list_insert_before                    @ 129 NONAME
-	pj_list_insert_nodes_after               @ 130 NONAME
-	pj_list_insert_nodes_before              @ 131 NONAME
-	pj_list_merge_first                      @ 132 NONAME
-	pj_list_merge_last                       @ 133 NONAME
-	pj_list_search                           @ 134 NONAME
-	pj_list_size                             @ 135 NONAME
-	pj_lock_acquire                          @ 136 NONAME
-	pj_lock_create_null_mutex                @ 137 NONAME
-	pj_lock_create_recursive_mutex           @ 138 NONAME
-	pj_lock_create_semaphore                 @ 139 NONAME
-	pj_lock_create_simple_mutex              @ 140 NONAME
-	pj_lock_destroy                          @ 141 NONAME
-	pj_lock_release                          @ 142 NONAME
-	pj_lock_tryacquire                       @ 143 NONAME
-	pj_log                                   @ 144 NONAME
-	pj_log_1                                 @ 145 NONAME
-	pj_log_2                                 @ 146 NONAME
-	pj_log_3                                 @ 147 NONAME
-	pj_log_4                                 @ 148 NONAME
-	pj_log_5                                 @ 149 NONAME
-	pj_log_get_decor                         @ 150 NONAME
-	pj_log_get_level                         @ 151 NONAME
-	pj_log_get_log_func                      @ 152 NONAME
-	pj_log_set_decor                         @ 153 NONAME
-	pj_log_set_level                         @ 154 NONAME
-	pj_log_set_log_func                      @ 155 NONAME
-	pj_log_write                             @ 156 NONAME
-	pj_mutex_create                          @ 157 NONAME
-	pj_mutex_create_recursive                @ 158 NONAME
-	pj_mutex_create_simple                   @ 159 NONAME
-	pj_mutex_destroy                         @ 160 NONAME
-	pj_mutex_lock                            @ 161 NONAME
-	pj_mutex_trylock                         @ 162 NONAME
-	pj_mutex_unlock                          @ 163 NONAME
-	pj_ntohl                                 @ 164 NONAME
-	pj_ntohs                                 @ 165 NONAME
-	pj_pool_alloc                            @ 166 NONAME
-	pj_pool_alloc_from_block                 @ 167 NONAME
-	pj_pool_allocate_find                    @ 168 NONAME
-	pj_pool_calloc                           @ 169 NONAME
-	pj_pool_create                           @ 170 NONAME
-	pj_pool_create_int                       @ 171 NONAME
-	pj_pool_create_on_buf                    @ 172 NONAME
-	pj_pool_destroy_int                      @ 173 NONAME
-	pj_pool_factory_default_policy           @ 174 NONAME
-	pj_pool_factory_get_default_policy       @ 175 NONAME
-	pj_pool_get_capacity                     @ 176 NONAME
-	pj_pool_get_used_size                    @ 177 NONAME
-	pj_pool_getobjname                       @ 178 NONAME
-	pj_pool_init_int                         @ 179 NONAME
-	pj_pool_release                          @ 180 NONAME
-	pj_pool_reset                            @ 181 NONAME
-	pj_rand                                  @ 182 NONAME
-	pj_rbtree_erase                          @ 183 NONAME
-	pj_rbtree_find                           @ 184 NONAME
-	pj_rbtree_first                          @ 185 NONAME
-	pj_rbtree_init                           @ 186 NONAME
-	pj_rbtree_insert                         @ 187 NONAME
-	pj_rbtree_last                           @ 188 NONAME
-	pj_rbtree_max_height                     @ 189 NONAME
-	pj_rbtree_min_height                     @ 190 NONAME
-	pj_rbtree_next                           @ 191 NONAME
-	pj_rbtree_prev                           @ 192 NONAME
-	pj_register_strerror                     @ 193 NONAME
-	pj_rwmutex_create                        @ 194 NONAME
-	pj_rwmutex_destroy                       @ 195 NONAME
-	pj_rwmutex_lock_read                     @ 196 NONAME
-	pj_rwmutex_lock_write                    @ 197 NONAME
-	pj_rwmutex_unlock_read                   @ 198 NONAME
-	pj_rwmutex_unlock_write                  @ 199 NONAME
-	pj_sem_create                            @ 200 NONAME
-	pj_sem_destroy                           @ 201 NONAME
-	pj_sem_post                              @ 202 NONAME
-	pj_sem_trywait                           @ 203 NONAME
-	pj_sem_wait                              @ 204 NONAME
-	pj_set_netos_error                       @ 205 NONAME
-	pj_set_os_error                          @ 206 NONAME
-	pj_shutdown                              @ 207 NONAME
-	pj_sock_accept                           @ 208 NONAME
-	pj_sock_bind                             @ 209 NONAME
-	pj_sock_bind_in                          @ 210 NONAME
-	pj_sock_close                            @ 211 NONAME
-	pj_sock_connect                          @ 212 NONAME
-	pj_sock_getpeername                      @ 213 NONAME
-	pj_sock_getsockname                      @ 214 NONAME
-	pj_sock_getsockopt                       @ 215 NONAME
-	pj_sock_listen                           @ 216 NONAME
-	pj_sock_recv                             @ 217 NONAME
-	pj_sock_recvfrom                         @ 218 NONAME
-	pj_sock_select                           @ 219 NONAME
-	pj_sock_send                             @ 220 NONAME
-	pj_sock_sendto                           @ 221 NONAME
-	pj_sock_setsockopt                       @ 222 NONAME
-	pj_sock_shutdown                         @ 223 NONAME
-	pj_sock_socket                           @ 224 NONAME
-	pj_sockaddr_in_init                      @ 225 NONAME
-	pj_sockaddr_in_set_str_addr              @ 226 NONAME
-	pj_srand                                 @ 227 NONAME
-	pj_str                                   @ 228 NONAME
-	pj_strassign                             @ 229 NONAME
-	pj_strcat                                @ 230 NONAME
-	pj_strcat2                               @ 231 NONAME
-	pj_strcmp                                @ 232 NONAME
-	pj_strcmp2                               @ 233 NONAME
-	pj_strcpy                                @ 234 NONAME
-	pj_strcpy2                               @ 235 NONAME
-	pj_strdup                                @ 236 NONAME
-	pj_strdup2                               @ 237 NONAME
-	pj_strdup2_with_null                     @ 238 NONAME
-	pj_strdup3                               @ 239 NONAME
-	pj_strdup_with_null                      @ 240 NONAME
-	pj_strerror                              @ 241 NONAME
-	pj_stricmp                               @ 242 NONAME
-	pj_stricmp2                              @ 243 NONAME
-	pj_strltrim                              @ 244 NONAME
-	pj_strncmp                               @ 245 NONAME
-	pj_strncmp2                              @ 246 NONAME
-	pj_strncpy                               @ 247 NONAME
-	pj_strncpy_with_null                     @ 248 NONAME
-	pj_strnicmp                              @ 249 NONAME
-	pj_strnicmp2                             @ 250 NONAME
-	pj_strrtrim                              @ 251 NONAME
-	pj_strtoul                               @ 252 NONAME
-	pj_strtoul2                              @ 253 NONAME
-	pj_strtrim                               @ 254 NONAME
-	pj_symbianos_poll                        @ 255 NONAME
-	pj_thread_create                         @ 256 NONAME
-	pj_thread_destroy                        @ 257 NONAME
-	pj_thread_get_name                       @ 258 NONAME
-	pj_thread_join                           @ 259 NONAME
-	pj_thread_local_alloc                    @ 260 NONAME
-	pj_thread_local_free                     @ 261 NONAME
-	pj_thread_local_get                      @ 262 NONAME
-	pj_thread_local_set                      @ 263 NONAME
-	pj_thread_register                       @ 264 NONAME
-	pj_thread_resume                         @ 265 NONAME
-	pj_thread_sleep                          @ 266 NONAME
-	pj_thread_this                           @ 267 NONAME
-	pj_time_decode                           @ 268 NONAME
-	pj_time_encode                           @ 269 NONAME
-	pj_time_gmt_to_local                     @ 270 NONAME
-	pj_time_local_to_gmt                     @ 271 NONAME
-	pj_time_val_normalize                    @ 272 NONAME
-	pj_timer_entry_init                      @ 273 NONAME
-	pj_timer_heap_cancel                     @ 274 NONAME
-	pj_timer_heap_count                      @ 275 NONAME
-	pj_timer_heap_create                     @ 276 NONAME
-	pj_timer_heap_destroy                    @ 277 NONAME
-	pj_timer_heap_earliest_time              @ 278 NONAME
-	pj_timer_heap_mem_size                   @ 279 NONAME
-	pj_timer_heap_poll                       @ 280 NONAME
-	pj_timer_heap_schedule                   @ 281 NONAME
-	pj_timer_heap_set_lock                   @ 282 NONAME
-	pj_timer_heap_set_max_timed_out_per_poll @ 283 NONAME
-	pj_unicode_to_ansi                       @ 284 NONAME
-	pj_utoa                                  @ 285 NONAME
-	pj_utoa_pad                              @ 286 NONAME
-	platform_strerror                        @ 287 NONAME
-	snprintf                                 @ 288 NONAME
-	vsnprintf                                @ 289 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
diff --git a/build.symbian/pjlib_util.mmp b/build.symbian/pjlib_util.mmp
index fc161ca..2d4b3d7 100644
--- a/build.symbian/pjlib_util.mmp
+++ b/build.symbian/pjlib_util.mmp
@@ -1,7 +1,21 @@
+#if defined(EKA2)
+TARGET		pjlib_util.dll
+TARGETTYPE	dll
+UID		0x1000008d 0xA0004298
+CAPABILITY	NONE
+LIBRARY		pjlib.lib esock.lib insock.lib charconv.lib euser.lib estlib.lib
+MACRO		PJ_DLL
+MACRO		PJ_EXPORTING
+
+DEFFILE		.\pjlib_util.def
+
+#else
 TARGET 		pjlib_util.lib
 TARGETTYPE 	lib
 UID		0x100039CE 0x10004299
-VENDORID	0x70000001
+//VENDORID	0x70000001
+
+#endif
 
 SOURCEPATH	..\pjlib-util\src\pjlib-util
 
@@ -59,5 +73,4 @@
 SYSTEMINCLUDE	\epoc32\include
 SYSTEMINCLUDE	\epoc32\include\libc
 
-CAPABILITY	None
 
diff --git a/build.symbian/pjlib_utilU.def b/build.symbian/pjlib_utilU.def
new file mode 100644
index 0000000..3e482af
--- /dev/null
+++ b/build.symbian/pjlib_utilU.def
@@ -0,0 +1,92 @@
+EXPORTS
+	pj_cis_add_alpha                         @ 1 NONAME
+	pj_cis_add_cis                           @ 2 NONAME
+	pj_cis_add_num                           @ 3 NONAME
+	pj_cis_add_range                         @ 4 NONAME
+	pj_cis_add_str                           @ 5 NONAME
+	pj_cis_buf_init                          @ 6 NONAME
+	pj_cis_del_range                         @ 7 NONAME
+	pj_cis_del_str                           @ 8 NONAME
+	pj_cis_dup                               @ 9 NONAME
+	pj_cis_init                              @ 10 NONAME
+	pj_cis_invert                            @ 11 NONAME
+	pj_crc32_calc                            @ 12 NONAME
+	pj_crc32_final                           @ 13 NONAME
+	pj_crc32_init                            @ 14 NONAME
+	pj_crc32_update                          @ 15 NONAME
+	pj_dns_dump_packet                       @ 16 NONAME
+	pj_dns_get_type_name                     @ 17 NONAME
+	pj_dns_make_query                        @ 18 NONAME
+	pj_dns_packet_dup                        @ 19 NONAME
+	pj_dns_parse_a_response                  @ 20 NONAME
+	pj_dns_parse_packet                      @ 21 NONAME
+	pj_dns_resolver_add_entry                @ 22 NONAME
+	pj_dns_resolver_cancel_query             @ 23 NONAME
+	pj_dns_resolver_create                   @ 24 NONAME
+	pj_dns_resolver_destroy                  @ 25 NONAME
+	pj_dns_resolver_dump                     @ 26 NONAME
+	pj_dns_resolver_get_cached_count         @ 27 NONAME
+	pj_dns_resolver_get_settings             @ 28 NONAME
+	pj_dns_resolver_handle_events            @ 29 NONAME
+	pj_dns_resolver_set_ns                   @ 30 NONAME
+	pj_dns_resolver_set_settings             @ 31 NONAME
+	pj_dns_resolver_start_query              @ 32 NONAME
+	pj_dns_settings_default                  @ 33 NONAME
+	pj_dns_srv_resolve                       @ 34 NONAME
+	pj_hmac_md5                              @ 35 NONAME
+	pj_hmac_md5_final                        @ 36 NONAME
+	pj_hmac_md5_init                         @ 37 NONAME
+	pj_hmac_md5_update                       @ 38 NONAME
+	pj_hmac_sha1                             @ 39 NONAME
+	pj_hmac_sha1_final                       @ 40 NONAME
+	pj_hmac_sha1_init                        @ 41 NONAME
+	pj_hmac_sha1_update                      @ 42 NONAME
+	pj_md5_final                             @ 43 NONAME
+	pj_md5_init                              @ 44 NONAME
+	pj_md5_update                            @ 45 NONAME
+	pj_scan_advance_n                        @ 46 NONAME
+	pj_scan_fini                             @ 47 NONAME
+	pj_scan_get                              @ 48 NONAME
+	pj_scan_get_char                         @ 49 NONAME
+	pj_scan_get_n                            @ 50 NONAME
+	pj_scan_get_newline                      @ 51 NONAME
+	pj_scan_get_quote                        @ 52 NONAME
+	pj_scan_get_quotes                       @ 53 NONAME
+	pj_scan_get_unescape                     @ 54 NONAME
+	pj_scan_get_until                        @ 55 NONAME
+	pj_scan_get_until_ch                     @ 56 NONAME
+	pj_scan_get_until_chr                    @ 57 NONAME
+	pj_scan_init                             @ 58 NONAME
+	pj_scan_peek                             @ 59 NONAME
+	pj_scan_peek_n                           @ 60 NONAME
+	pj_scan_peek_until                       @ 61 NONAME
+	pj_scan_restore_state                    @ 62 NONAME
+	pj_scan_save_state                       @ 63 NONAME
+	pj_scan_skip_line                        @ 64 NONAME
+	pj_scan_skip_whitespace                  @ 65 NONAME
+	pj_scan_strcmp                           @ 66 NONAME
+	pj_scan_stricmp                          @ 67 NONAME
+	pj_scan_stricmp_alnum                    @ 68 NONAME
+	pj_sha1_final                            @ 69 NONAME
+	pj_sha1_init                             @ 70 NONAME
+	pj_sha1_update                           @ 71 NONAME
+	pj_str_unescape                          @ 72 NONAME
+	pj_strcpy_unescape                       @ 73 NONAME
+	pj_strncpy2_escape                       @ 74 NONAME
+	pj_strncpy_escape                        @ 75 NONAME
+	pj_xml_add_attr                          @ 76 NONAME
+	pj_xml_add_node                          @ 77 NONAME
+	pj_xml_attr_new                          @ 78 NONAME
+	pj_xml_clone                             @ 79 NONAME
+	pj_xml_find                              @ 80 NONAME
+	pj_xml_find_attr                         @ 81 NONAME
+	pj_xml_find_next_node                    @ 82 NONAME
+	pj_xml_find_node                         @ 83 NONAME
+	pj_xml_node_new                          @ 84 NONAME
+	pj_xml_parse                             @ 85 NONAME
+	pj_xml_print                             @ 86 NONAME
+	pjlib_util_init                          @ 87 NONAME
+	pjstun_create_bind_req                   @ 88 NONAME
+	pjstun_get_mapped_addr                   @ 89 NONAME
+	pjstun_msg_find_attr                     @ 90 NONAME
+	pjstun_parse_msg                         @ 91 NONAME
diff --git a/build.symbian/pjnath.mmp b/build.symbian/pjnath.mmp
index 2bd8691..344aa44 100644
--- a/build.symbian/pjnath.mmp
+++ b/build.symbian/pjnath.mmp
@@ -1,8 +1,23 @@
+#if defined(EKA2)
+TARGET		pjnath.dll
+TARGETTYPE	dll
+UID		0x1000008d 0xA0004297
+CAPABILITY	None
+LIBRARY		pjlib_util.lib pjlib.lib esock.lib insock.lib charconv.lib euser.lib estlib.lib
+MACRO		PJ_DLL
+MACRO		PJ_EXPORTING
+
+DEFFILE		.\pjnath.def
+
+#else
+
 TARGET 		pjnath.lib
 TARGETTYPE 	lib
 UID		0x100039CE 0x10004299
 VENDORID	0x70000001
 
+#endif
+
 SOURCEPATH	..\pjnath\src\pjnath
 
 MACRO		PJ_M_I386=1
@@ -49,5 +64,4 @@
 
 //STATICLIBRARY		pjlib.lib 
 //STATICLIBRARY		pjlib_util.lib 
-CAPABILITY	None
 
diff --git a/build.symbian/pjnathU.def b/build.symbian/pjnathU.def
new file mode 100644
index 0000000..4d5442a
--- /dev/null
+++ b/build.symbian/pjnathU.def
@@ -0,0 +1,85 @@
+EXPORTS
+	pj_ice_calc_foundation                   @ 1 NONAME
+	pj_ice_get_cand_type_name                @ 2 NONAME
+	pj_ice_sess_add_cand                     @ 3 NONAME
+	pj_ice_sess_change_role                  @ 4 NONAME
+	pj_ice_sess_create                       @ 5 NONAME
+	pj_ice_sess_create_check_list            @ 6 NONAME
+	pj_ice_sess_destroy                      @ 7 NONAME
+	pj_ice_sess_find_default_cand            @ 8 NONAME
+	pj_ice_sess_on_rx_pkt                    @ 9 NONAME
+	pj_ice_sess_send_data                    @ 10 NONAME
+	pj_ice_sess_set_prefs                    @ 11 NONAME
+	pj_ice_sess_start_check                  @ 12 NONAME
+	pj_ice_strans_add_cand                   @ 13 NONAME
+	pj_ice_strans_create                     @ 14 NONAME
+	pj_ice_strans_create_comp                @ 15 NONAME
+	pj_ice_strans_destroy                    @ 16 NONAME
+	pj_ice_strans_enum_cands                 @ 17 NONAME
+	pj_ice_strans_get_comps_status           @ 18 NONAME
+	pj_ice_strans_init_ice                   @ 19 NONAME
+	pj_ice_strans_sendto                     @ 20 NONAME
+	pj_ice_strans_set_stun_domain            @ 21 NONAME
+	pj_ice_strans_set_stun_srv               @ 22 NONAME
+	pj_ice_strans_start_ice                  @ 23 NONAME
+	pj_ice_strans_stop_ice                   @ 24 NONAME
+	pj_stun_auth_cred_dup                    @ 25 NONAME
+	pj_stun_auth_valid_for_msg               @ 26 NONAME
+	pj_stun_authenticate_request             @ 27 NONAME
+	pj_stun_authenticate_response            @ 28 NONAME
+	pj_stun_binary_attr_create               @ 29 NONAME
+	pj_stun_client_tsx_create                @ 30 NONAME
+	pj_stun_client_tsx_destroy               @ 31 NONAME
+	pj_stun_client_tsx_get_data              @ 32 NONAME
+	pj_stun_client_tsx_is_complete           @ 33 NONAME
+	pj_stun_client_tsx_on_rx_msg             @ 34 NONAME
+	pj_stun_client_tsx_retransmit            @ 35 NONAME
+	pj_stun_client_tsx_schedule_destroy      @ 36 NONAME
+	pj_stun_client_tsx_send_msg              @ 37 NONAME
+	pj_stun_client_tsx_set_data              @ 38 NONAME
+	pj_stun_create_key                       @ 39 NONAME
+	pj_stun_empty_attr_create                @ 40 NONAME
+	pj_stun_errcode_attr_create              @ 41 NONAME
+	pj_stun_get_attr_name                    @ 42 NONAME
+	pj_stun_get_class_name                   @ 43 NONAME
+	pj_stun_get_err_reason                   @ 44 NONAME
+	pj_stun_get_method_name                  @ 45 NONAME
+	pj_stun_msg_add_attr                     @ 46 NONAME
+	pj_stun_msg_add_binary_attr              @ 47 NONAME
+	pj_stun_msg_add_empty_attr               @ 48 NONAME
+	pj_stun_msg_add_errcode_attr             @ 49 NONAME
+	pj_stun_msg_add_msgint_attr              @ 50 NONAME
+	pj_stun_msg_add_sockaddr_attr            @ 51 NONAME
+	pj_stun_msg_add_string_attr              @ 52 NONAME
+	pj_stun_msg_add_uint64_attr              @ 53 NONAME
+	pj_stun_msg_add_uint_attr                @ 54 NONAME
+	pj_stun_msg_add_unknown_attr             @ 55 NONAME
+	pj_stun_msg_check                        @ 56 NONAME
+	pj_stun_msg_create                       @ 57 NONAME
+	pj_stun_msg_create_response              @ 58 NONAME
+	pj_stun_msg_decode                       @ 59 NONAME
+	pj_stun_msg_destroy_tdata                @ 60 NONAME
+	pj_stun_msg_dump                         @ 61 NONAME
+	pj_stun_msg_encode                       @ 62 NONAME
+	pj_stun_msg_find_attr                    @ 63 NONAME
+	pj_stun_msgint_attr_create               @ 64 NONAME
+	pj_stun_session_cancel_req               @ 65 NONAME
+	pj_stun_session_create                   @ 66 NONAME
+	pj_stun_session_create_ind               @ 67 NONAME
+	pj_stun_session_create_req               @ 68 NONAME
+	pj_stun_session_create_res               @ 69 NONAME
+	pj_stun_session_destroy                  @ 70 NONAME
+	pj_stun_session_get_user_data            @ 71 NONAME
+	pj_stun_session_on_rx_pkt                @ 72 NONAME
+	pj_stun_session_retransmit_req           @ 73 NONAME
+	pj_stun_session_send_msg                 @ 74 NONAME
+	pj_stun_session_set_credential           @ 75 NONAME
+	pj_stun_session_set_server_name          @ 76 NONAME
+	pj_stun_session_set_user_data            @ 77 NONAME
+	pj_stun_sockaddr_attr_create             @ 78 NONAME
+	pj_stun_string_attr_create               @ 79 NONAME
+	pj_stun_uint64_attr_create               @ 80 NONAME
+	pj_stun_uint_attr_create                 @ 81 NONAME
+	pj_stun_unknown_attr_create              @ 82 NONAME
+	pjnath_init                              @ 83 NONAME
+	pjnath_perror                            @ 84 NONAME
diff --git a/pjlib-util/src/pjlib-util/errno.c b/pjlib-util/src/pjlib-util/errno.c
index e4d8bce..22eb3c4 100644
--- a/pjlib-util/src/pjlib-util/errno.c
+++ b/pjlib-util/src/pjlib-util/errno.c
@@ -94,8 +94,8 @@
 /*
  * pjlib_util_strerror()
  */
-PJ_DEF(pj_str_t) pjlib_util_strerror( pj_status_t statcode, 
-				      char *buf, pj_size_t bufsize )
+pj_str_t pjlib_util_strerror(pj_status_t statcode, 
+			     char *buf, pj_size_t bufsize )
 {
     pj_str_t errstr;
 
diff --git a/pjlib-util/src/pjlib-util/stun_simple_client.c b/pjlib-util/src/pjlib-util/stun_simple_client.c
index 8a58f71..de1b083 100644
--- a/pjlib-util/src/pjlib-util/stun_simple_client.c
+++ b/pjlib-util/src/pjlib-util/stun_simple_client.c
@@ -32,11 +32,11 @@
 #define LOG_ADDR(addr)	pj_inet_ntoa(addr.sin_addr), pj_ntohs(addr.sin_port)
 
 
-PJ_DECL(pj_status_t) pjstun_get_mapped_addr( pj_pool_factory *pf,
-					      int sock_cnt, pj_sock_t sock[],
-					      const pj_str_t *srv1, int port1,
-					      const pj_str_t *srv2, int port2,
-					      pj_sockaddr_in mapped_addr[])
+PJ_DEF(pj_status_t) pjstun_get_mapped_addr( pj_pool_factory *pf,
+					    int sock_cnt, pj_sock_t sock[],
+					    const pj_str_t *srv1, int port1,
+					    const pj_str_t *srv2, int port2,
+					    pj_sockaddr_in mapped_addr[])
 {
     pj_sockaddr_in srv_addr[2];
     int i, j, send_cnt = 0;
diff --git a/pjlib/docs/doxygen.cfg b/pjlib/docs/doxygen.cfg
index d895632..f6a7e70 100644
--- a/pjlib/docs/doxygen.cfg
+++ b/pjlib/docs/doxygen.cfg
@@ -847,7 +847,8 @@
 			 PJ_HAS_HIGH_RES_TIMER=1 \

 			 PJ_LOG_MAX_LEVEL=4 \

 			 PJ_HAS_SEMAPHORE=1 \

-			 PJ_HAS_EVENT_OBJ=1

+			 PJ_HAS_EVENT_OBJ=1 \

+			 PJ_HAS_TCP=1

 

 # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then 

 # this tag can be used to specify a list of macro names that should be expanded. 

diff --git a/pjlib/include/pj/config.h b/pjlib/include/pj/config.h
index db557c9..d565257 100644
--- a/pjlib/include/pj/config.h
+++ b/pjlib/include/pj/config.h
@@ -905,9 +905,16 @@
 PJ_BEGIN_DECL
 
 /**
- * PJLIB version string.
+ * PJLIB version string constant. @see pj_get_version()
  */
-extern const char *PJ_VERSION;
+PJ_DECL_DATA(const char*) PJ_VERSION;
+
+/**
+ * Get PJLIB version string.
+ *
+ * @return #PJ_VERSION constant.
+ */
+PJ_DECL(const char*) pj_get_version(void);
 
 /**
  * Dump configuration to log with verbosity equal to info(3).
diff --git a/pjlib/include/pj/ctype.h b/pjlib/include/pj/ctype.h
index ada2acf..589edae 100644
--- a/pjlib/include/pj/ctype.h
+++ b/pjlib/include/pj/ctype.h
@@ -136,7 +136,8 @@
 /**
  * Array of hex digits, in lowerspace.
  */
-extern char pj_hex_digits[];
+/*extern char pj_hex_digits[];*/
+#define pj_hex_digits	"0123456789abcdef"
 
 /**
  * Convert a value to hex representation.
diff --git a/pjlib/include/pj/sock.h b/pjlib/include/pj/sock.h
index fe97c10..12b771c 100644
--- a/pjlib/include/pj/sock.h
+++ b/pjlib/include/pj/sock.h
@@ -59,17 +59,40 @@
  * APPLICATION MUST USE THESE VALUES INSTEAD OF NORMAL AF_*, BECAUSE
  * THE LIBRARY WILL DO TRANSLATION TO THE NATIVE VALUE.
  */
-extern const pj_uint16_t PJ_AF_UNIX; /**< Unix domain socket.	*/
-#define PJ_AF_LOCAL	 PJ_AF_UNIX; /**< POSIX name for AF_UNIX	*/
-extern const pj_uint16_t PJ_AF_INET; /**< Internet IP protocol.	*/
-extern const pj_uint16_t PJ_AF_INET6;/**< IP version 6.		*/
-extern const pj_uint16_t PJ_AF_PACKET;/**< Packet family.	*/
-extern const pj_uint16_t PJ_AF_IRDA; /**< IRDA sockets.		*/
 
+/** Unix domain socket.	@see pj_AF_UNIX() */
+extern const pj_uint16_t PJ_AF_UNIX;
+
+/** POSIX name for AF_UNIX	*/
+#define PJ_AF_LOCAL	 PJ_AF_UNIX;
+
+/** Internet IP protocol. @see pj_AF_INET() */
+extern const pj_uint16_t PJ_AF_INET;
+
+/** IP version 6. @see pj_AF_INET6() */
+extern const pj_uint16_t PJ_AF_INET6;
+
+/** Packet family. @see pj_AF_PACKET() */
+extern const pj_uint16_t PJ_AF_PACKET;
+
+/** IRDA sockets. @see pj_AF_IRDA() */
+extern const pj_uint16_t PJ_AF_IRDA;
+
+/*
+ * Accessor functions for various address family constants. These
+ * functions are provided because Symbian doesn't allow exporting
+ * global variables from a DLL.
+ */
+
+/** Get #PJ_AF_UNIX value. */
 PJ_DECL(pj_uint16_t) pj_AF_UNIX(void);
+/** Get #PJ_AF_INET value. */
 PJ_DECL(pj_uint16_t) pj_AF_INET(void);
+/** Get #PJ_AF_INET6 value. */
 PJ_DECL(pj_uint16_t) pj_AF_INET6(void);
+/** Get #PJ_AF_PACKET value. */
 PJ_DECL(pj_uint16_t) pj_AF_PACKET(void);
+/** Get #PJ_AF_IRDA value. */
 PJ_DECL(pj_uint16_t) pj_AF_IRDA(void);
 
 
@@ -79,18 +102,33 @@
  * THE LIBRARY WILL TRANSLATE THE VALUE TO THE NATIVE VALUE.
  */
 
-extern const pj_uint16_t PJ_SOCK_STREAM; /**< Sequenced, reliable, connection-
-					     based byte streams.           */
-extern const pj_uint16_t PJ_SOCK_DGRAM;  /**< Connectionless, unreliable 
-					     datagrams of fixed maximum 
-					     lengths.                      */
-extern const pj_uint16_t PJ_SOCK_RAW;    /**< Raw protocol interface.       */
-extern const pj_uint16_t PJ_SOCK_RDM;    /**< Reliably-delivered messages.  */
+/** Sequenced, reliable, connection-based byte streams.
+ *  @see pj_SOCK_STREAM() */
+extern const pj_uint16_t PJ_SOCK_STREAM;
+
+/** Connectionless, unreliable datagrams of fixed maximum lengths.
+ *  @see pj_SOCK_DGRAM() */
+extern const pj_uint16_t PJ_SOCK_DGRAM;
+
+/** Raw protocol interface. @see pj_SOCK_RAW() */
+extern const pj_uint16_t PJ_SOCK_RAW;
+
+/** Reliably-delivered messages.  @see pj_SOCK_RDM() */
+extern const pj_uint16_t PJ_SOCK_RDM;
 
 
+/*
+ * Accessor functions for various constants. These functions are provided
+ * because Symbian doesn't allow exporting global variables from a DLL.
+ */
+
+/** Get #PJ_SOCK_STREAM constant */
 PJ_DECL(int) pj_SOCK_STREAM(void);
+/** Get #PJ_SOCK_DGRAM constant */
 PJ_DECL(int) pj_SOCK_DGRAM(void);
+/** Get #PJ_SOCK_RAW constant */
 PJ_DECL(int) pj_SOCK_RAW(void);
+/** Get #PJ_SOCK_RDM constant */
 PJ_DECL(int) pj_SOCK_RDM(void);
 
 
@@ -99,16 +137,31 @@
  * APPLICATION MUST USE THESE VALUES INSTEAD OF NORMAL SOL_*, BECAUSE
  * THE LIBRARY WILL TRANSLATE THE VALUE TO THE NATIVE VALUE.
  */
-extern const pj_uint16_t PJ_SOL_SOCKET;	/**< Socket level.  */
-extern const pj_uint16_t PJ_SOL_IP;	/**< IP level.	    */
-extern const pj_uint16_t PJ_SOL_TCP;	/**< TCP level.	    */
-extern const pj_uint16_t PJ_SOL_UDP;	/**< UDP level.	    */
-extern const pj_uint16_t PJ_SOL_IPV6;	/**< IP version 6   */
+/** Socket level. @see pj_SOL_SOCKET() */
+extern const pj_uint16_t PJ_SOL_SOCKET;
+/** IP level. @see pj_SOL_IP() */
+extern const pj_uint16_t PJ_SOL_IP;
+/** TCP level. @see pj_SOL_TCP() */
+extern const pj_uint16_t PJ_SOL_TCP;
+/** UDP level. @see pj_SOL_UDP() */
+extern const pj_uint16_t PJ_SOL_UDP;
+/** IP version 6. @see pj_SOL_IPV6() */
+extern const pj_uint16_t PJ_SOL_IPV6;
 
+/*
+ * Accessor functions for various constants. These functions are provided
+ * because Symbian doesn't allow exporting global variables from a DLL.
+ */
+
+/** Get #PJ_SOL_SOCKET constant */
 PJ_DECL(pj_uint16_t) pj_SOL_SOCKET(void);
+/** Get #PJ_SOL_IP constant */
 PJ_DECL(pj_uint16_t) pj_SOL_IP(void);
+/** Get #PJ_SOL_TCP constant */
 PJ_DECL(pj_uint16_t) pj_SOL_TCP(void);
+/** Get #PJ_SOL_UDP constant */
 PJ_DECL(pj_uint16_t) pj_SOL_UDP(void);
+/** Get #PJ_SOL_IPV6 constant */
 PJ_DECL(pj_uint16_t) pj_SOL_IPV6(void);
 
 
@@ -118,8 +171,10 @@
  *  TOS CURRENTLY DOES NOT WORK IN Windows 2000 and above!
  *  See http://support.microsoft.com/kb/248611
  */
-extern const pj_uint16_t PJ_IP_TOS;	/**< IP_TOS optname in setsockopt() */
+/** IP_TOS optname in setsockopt(). @see pj_IP_TOS() */
+extern const pj_uint16_t PJ_IP_TOS;
 
+/** Get #PJ_IP_TOS constant */
 PJ_DECL(int) pj_IP_TOS(void);
 
 /*
@@ -129,15 +184,30 @@
  *  TOS CURRENTLY DOES NOT WORK IN Windows 2000 and above!
  *  See http://support.microsoft.com/kb/248611
  */
-extern const pj_uint16_t PJ_IPTOS_LOWDELAY;	/**< Minimize  delays	    */
-extern const pj_uint16_t PJ_IPTOS_THROUGHPUT;	/**< Optimize throughput    */
-extern const pj_uint16_t PJ_IPTOS_RELIABILITY;	/**< Optimize for reliability*/
-extern const pj_uint16_t PJ_IPTOS_MINCOST;	/**< "filler data" where slow 
-						  transmission does't matter */
+/** Minimize delays. @see pj_IPTOS_LOWDELAY() */
+extern const pj_uint16_t PJ_IPTOS_LOWDELAY;
 
+/** Optimize throughput. @see pj_IPTOS_THROUGHPUT() */
+extern const pj_uint16_t PJ_IPTOS_THROUGHPUT;
+
+/** Optimize for reliability. @see pj_IPTOS_RELIABILITY() */
+extern const pj_uint16_t PJ_IPTOS_RELIABILITY;
+
+/** "filler data" where slow transmission does't matter.
+ *  @see pj_IPTOS_MINCOST() */
+extern const pj_uint16_t PJ_IPTOS_MINCOST;
+
+
+/** Get #PJ_IPTOS_LOWDELAY constant */
 PJ_DECL(int) pj_IPTOS_LOWDELAY(void);
+
+/** Get #PJ_IPTOS_THROUGHPUT constant */
 PJ_DECL(int) pj_IPTOS_THROUGHPUT(void);
+
+/** Get #PJ_IPTOS_RELIABILITY constant */
 PJ_DECL(int) pj_IPTOS_RELIABILITY(void);
+
+/** Get #PJ_IPTOS_MINCOST constant */
 PJ_DECL(int) pj_IPTOS_MINCOST(void);
 
 
@@ -145,29 +215,53 @@
  * Values to be specified as \c optname when calling #pj_sock_setsockopt() 
  * or #pj_sock_getsockopt().
  */
-extern const pj_uint16_t PJ_SO_TYPE;  /**< Socket type.             */
-extern const pj_uint16_t PJ_SO_RCVBUF;/**< Buffer size for receive. */
-extern const pj_uint16_t PJ_SO_SNDBUF;/**< Buffer size for send.    */
 
+/** Socket type. @see pj_SO_TYPE() */
+extern const pj_uint16_t PJ_SO_TYPE;
+
+/** Buffer size for receive. @see pj_SO_RCVBUF() */
+extern const pj_uint16_t PJ_SO_RCVBUF;
+
+/** Buffer size for send. @see pj_SO_SNDBUF() */
+extern const pj_uint16_t PJ_SO_SNDBUF;
+
+
+/** Get #PJ_SO_TYPE constant */
 PJ_DECL(pj_uint16_t) pj_SO_TYPE(void);
+
+/** Get #PJ_SO_RCVBUF constant */
 PJ_DECL(pj_uint16_t) pj_SO_RCVBUF(void);
+
+/** Get #PJ_SO_SNDBUF constant */
 PJ_DECL(pj_uint16_t) pj_SO_SNDBUF(void);
 
 
 /*
  * Flags to be specified in #pj_sock_recv, #pj_sock_send, etc.
  */
-extern const int PJ_MSG_OOB;	  /**< Out-of-band messages.         */
-extern const int PJ_MSG_PEEK;	  /**< Peek, don't remove from buffer*/
-extern const int PJ_MSG_DONTROUTE;/**< Don't route.                  */
 
+/** Out-of-band messages. @see pj_MSG_OOB() */
+extern const int PJ_MSG_OOB;
+
+/** Peek, don't remove from buffer. @see pj_MSG_PEEK() */
+extern const int PJ_MSG_PEEK;
+
+/** Don't route. @see pj_MSG_DONTROUTE() */
+extern const int PJ_MSG_DONTROUTE;
+
+
+/** Get #PJ_MSG_OOB constant */
 PJ_DECL(int) pj_MSG_OOB(void);
+
+/** Get #PJ_MSG_PEEK constant */
 PJ_DECL(int) pj_MSG_PEEK(void);
+
+/** Get #PJ_MSG_DONTROUTE constant */
 PJ_DECL(int) pj_MSG_DONTROUTE(void);
 
 
 /**
- * Flag to be specified in #pj_sock_shutdown.
+ * Flag to be specified in #pj_sock_shutdown().
  */
 typedef enum pj_socket_sd_type
 {
@@ -711,7 +805,7 @@
  * @param buf		The buffer to receive the data or message.
  * @param len		On input, the length of the buffer. On return,
  *			contains the length of data received.
- * @param flags		Combination of #pj_sock_msg_flag.
+ * @param flags		Flags (such as pj_MSG_PEEK()).
  *
  * @return		PJ_SUCCESS or the error code.
  */
@@ -727,7 +821,7 @@
  * @param buf		The buffer to receive the data or message.
  * @param len		On input, the length of the buffer. On return,
  *			contains the length of data received.
- * @param flags		Bitmask combination of #pj_sock_msg_flag.
+ * @param flags		Flags (such as pj_MSG_PEEK()).
  * @param from		If not NULL, it will be filled with the source
  *			address of the connection.
  * @param fromlen	Initially contains the length of from address,
@@ -751,7 +845,7 @@
  * @param len		On input, the length of the data in the buffer.
  *			Upon return, it will be filled with the length
  *			of data sent.
- * @param flags		Bitmask combination of #pj_sock_msg_flag.
+ * @param flags		Flags (such as pj_MSG_DONTROUTE()).
  *
  * @return		PJ_SUCCESS or the status code.
  */
@@ -768,7 +862,7 @@
  * @param len		On input, the length of the data in the buffer.
  *			Upon return, it will be filled with the length
  *			of data sent.
- * @param flags		Bitmask combination of #pj_sock_msg_flag.
+ * @param flags		Flags (such as pj_MSG_DONTROUTE()).
  * @param to		The address to send.
  * @param tolen		The length of the address in bytes.
  *
diff --git a/pjlib/src/pj/config.c b/pjlib/src/pj/config.c
index ceac737..8cc3e98 100644
--- a/pjlib/src/pj/config.c
+++ b/pjlib/src/pj/config.c
@@ -21,7 +21,15 @@
 #include <pj/ioqueue.h>
 
 static const char *id = "config.c";
-const char *PJ_VERSION = "0.7.0-trunk";
+PJ_DEF_DATA(const char*) PJ_VERSION = "0.7.0-trunk";
+
+/*
+ * Get PJLIB version string.
+ */
+PJ_DEF(const char*) pj_get_version(void)
+{
+    return PJ_VERSION;
+}
 
 PJ_DEF(void) pj_dump_config(void)
 {
diff --git a/pjlib/src/pj/ctype.c b/pjlib/src/pj/ctype.c
index 76eadc2..25a2e4d 100644
--- a/pjlib/src/pj/ctype.c
+++ b/pjlib/src/pj/ctype.c
@@ -18,7 +18,7 @@
  */
 #include <pj/ctype.h>
 
-
+/*
 char pj_hex_digits[] = {'0', '1', '2', '3', '4', '5', '6', '7',
 			'8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };
-
+*/
diff --git a/pjnath/src/pjnath/ice_session.c b/pjnath/src/pjnath/ice_session.c
index 0c33207..78422af 100644
--- a/pjnath/src/pjnath/ice_session.c
+++ b/pjnath/src/pjnath/ice_session.c
@@ -1183,8 +1183,8 @@
 
 
 /* Create checklist by pairing local candidates with remote candidates */
-PJ_DEF(pj_status_t) 
-pj_ice_sess_create_check_list(pj_ice_sess *ice,
+PJ_DEF(pj_status_t) pj_ice_sess_create_check_list(
+			      pj_ice_sess *ice,
 			      const pj_str_t *rem_ufrag,
 			      const pj_str_t *rem_passwd,
 			      unsigned rcand_cnt,
diff --git a/pjnath/src/pjnath/ice_strans.c b/pjnath/src/pjnath/ice_strans.c
index 052e1a8..d789b99 100644
--- a/pjnath/src/pjnath/ice_strans.c
+++ b/pjnath/src/pjnath/ice_strans.c
@@ -80,7 +80,7 @@
 /* 
  * Create ICE stream transport 
  */
-PJ_DECL(pj_status_t) pj_ice_strans_create(pj_stun_config *stun_cfg,
+PJ_DEF(pj_status_t) pj_ice_strans_create( pj_stun_config *stun_cfg,
 					  const char *name,
 					  unsigned comp_cnt,
 					  void *user_data,
@@ -928,7 +928,7 @@
 /*
  * Stop ICE!
  */
-PJ_DECL(pj_status_t) pj_ice_strans_stop_ice(pj_ice_strans *ice_st)
+PJ_DEF(pj_status_t) pj_ice_strans_stop_ice(pj_ice_strans *ice_st)
 {
     unsigned i;
 
diff --git a/pjnath/src/pjnath/stun_msg.c b/pjnath/src/pjnath/stun_msg.c
index d16e1cb..2dadca4 100644
--- a/pjnath/src/pjnath/stun_msg.c
+++ b/pjnath/src/pjnath/stun_msg.c
@@ -641,13 +641,12 @@
 /*
  * Create a generic STUN IP address attribute for IPv4 address.
  */
-PJ_DEF(pj_status_t) 
-pj_stun_sockaddr_attr_create(pj_pool_t *pool,
-			     int attr_type,
-			     pj_bool_t xor_ed,
-			     const pj_sockaddr_t *addr,
-			     unsigned addr_len,
-			     pj_stun_sockaddr_attr **p_attr)
+PJ_DEF(pj_status_t) pj_stun_sockaddr_attr_create(pj_pool_t *pool,
+						 int attr_type,
+						 pj_bool_t xor_ed,
+						 const pj_sockaddr_t *addr,
+						 unsigned addr_len,
+						 pj_stun_sockaddr_attr **p_attr)
 {
     pj_stun_sockaddr_attr *attr;
 
@@ -670,13 +669,12 @@
 /*
  * Create and add generic STUN IP address attribute to a STUN message.
  */
-PJ_DEF(pj_status_t) 
-pj_stun_msg_add_sockaddr_attr(pj_pool_t *pool,
-			      pj_stun_msg *msg,
-			      int attr_type, 
-			      pj_bool_t xor_ed,
-			      const pj_sockaddr_t *addr,
-			      unsigned addr_len)
+PJ_DEF(pj_status_t) pj_stun_msg_add_sockaddr_attr(pj_pool_t *pool,
+						  pj_stun_msg *msg,
+						  int attr_type, 
+						  pj_bool_t xor_ed,
+						  const pj_sockaddr_t *addr,
+						  unsigned addr_len)
 {
     pj_stun_sockaddr_attr *attr;
     pj_status_t status;
@@ -817,11 +815,10 @@
 /*
  * Create a STUN generic string attribute.
  */
-PJ_DEF(pj_status_t) 
-pj_stun_string_attr_create(pj_pool_t *pool,
-			   int attr_type,
-			   const pj_str_t *value,
-			   pj_stun_string_attr **p_attr)
+PJ_DEF(pj_status_t) pj_stun_string_attr_create(pj_pool_t *pool,
+					       int attr_type,
+					       const pj_str_t *value,
+					       pj_stun_string_attr **p_attr)
 {
     pj_stun_string_attr *attr;
 
@@ -840,11 +837,10 @@
 /*
  * Create and add STUN generic string attribute to the message.
  */
-PJ_DEF(pj_status_t) 
-pj_stun_msg_add_string_attr(pj_pool_t *pool,
-			    pj_stun_msg *msg,
-			    int attr_type,
-			    const pj_str_t *value)
+PJ_DEF(pj_status_t) pj_stun_msg_add_string_attr(pj_pool_t *pool,
+						pj_stun_msg *msg,
+						int attr_type,
+						const pj_str_t *value)
 {
     pj_stun_string_attr *attr = NULL;
     pj_status_t status;
@@ -917,10 +913,9 @@
 /*
  * Create a STUN empty attribute.
  */
-PJ_DEF(pj_status_t) 
-pj_stun_empty_attr_create(pj_pool_t *pool,
-			  int attr_type,
-			  pj_stun_empty_attr **p_attr)
+PJ_DEF(pj_status_t) pj_stun_empty_attr_create(pj_pool_t *pool,
+					      int attr_type,
+					      pj_stun_empty_attr **p_attr)
 {
     pj_stun_empty_attr *attr;
 
@@ -1002,11 +997,10 @@
 /*
  * Create a STUN generic 32bit value attribute.
  */
-PJ_DEF(pj_status_t) 
-pj_stun_uint_attr_create(pj_pool_t *pool,
-			 int attr_type,
-			 pj_uint32_t value,
-			 pj_stun_uint_attr **p_attr)
+PJ_DEF(pj_status_t) pj_stun_uint_attr_create(pj_pool_t *pool,
+					     int attr_type,
+					     pj_uint32_t value,
+					     pj_stun_uint_attr **p_attr)
 {
     pj_stun_uint_attr *attr;
 
@@ -1022,11 +1016,10 @@
 }
 
 /* Create and add STUN generic 32bit value attribute to the message. */
-PJ_DEF(pj_status_t) 
-pj_stun_msg_add_uint_attr(pj_pool_t *pool,
-			  pj_stun_msg *msg,
-			  int attr_type,
-			  pj_uint32_t value)
+PJ_DEF(pj_status_t) pj_stun_msg_add_uint_attr(pj_pool_t *pool,
+					      pj_stun_msg *msg,
+					      int attr_type,
+					      pj_uint32_t value)
 {
     pj_stun_uint_attr *attr = NULL;
     pj_status_t status;
@@ -1084,11 +1077,10 @@
 /*
  * Create a STUN generic 64bit value attribute.
  */
-PJ_DEF(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)
+PJ_DEF(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)
 {
     pj_stun_uint64_attr *attr;
 
@@ -1172,9 +1164,8 @@
 /*
  * Create a STUN MESSAGE-INTEGRITY attribute.
  */
-PJ_DEF(pj_status_t) 
-pj_stun_msgint_attr_create(pj_pool_t *pool,
-			   pj_stun_msgint_attr **p_attr)
+PJ_DEF(pj_status_t) pj_stun_msgint_attr_create(pj_pool_t *pool,
+					       pj_stun_msgint_attr **p_attr)
 {
     pj_stun_msgint_attr *attr;
 
@@ -1253,11 +1244,10 @@
 /*
  * Create a STUN ERROR-CODE attribute.
  */
-PJ_DEF(pj_status_t) 
-pj_stun_errcode_attr_create(pj_pool_t *pool,
-			    int err_code,
-			    const pj_str_t *err_reason,
-			    pj_stun_errcode_attr **p_attr)
+PJ_DEF(pj_status_t) pj_stun_errcode_attr_create(pj_pool_t *pool,
+						int err_code,
+						const pj_str_t *err_reason,
+						pj_stun_errcode_attr **p_attr)
 {
     pj_stun_errcode_attr *attr;
     char err_buf[80];
@@ -1367,11 +1357,10 @@
  *
  * @return		PJ_SUCCESS on success or the appropriate error code.
  */
-PJ_DEF(pj_status_t) 
-pj_stun_unknown_attr_create(pj_pool_t *pool,
-			    unsigned attr_cnt,
-			    const pj_uint16_t attr_array[],
-			    pj_stun_unknown_attr **p_attr)
+PJ_DEF(pj_status_t) pj_stun_unknown_attr_create(pj_pool_t *pool,
+						unsigned attr_cnt,
+						const pj_uint16_t attr_array[],
+						pj_stun_unknown_attr **p_attr)
 {
     pj_stun_unknown_attr *attr;
     unsigned i;
@@ -1400,11 +1389,10 @@
 
 
 /* Create and add STUN UNKNOWN-ATTRIBUTES attribute to the message. */
-PJ_DEF(pj_status_t) 
-pj_stun_msg_add_unknown_attr(pj_pool_t *pool,
-			     pj_stun_msg *msg,
-			     unsigned attr_cnt,
-			     const pj_uint16_t attr_types[])
+PJ_DEF(pj_status_t) pj_stun_msg_add_unknown_attr(pj_pool_t *pool,
+						 pj_stun_msg *msg,
+						 unsigned attr_cnt,
+						 const pj_uint16_t attr_types[])
 {
     pj_stun_unknown_attr *attr = NULL;
     pj_status_t status;
@@ -1478,12 +1466,11 @@
 /*
  * Create a blank binary attribute.
  */
-PJ_DEF(pj_status_t)
-pj_stun_binary_attr_create(pj_pool_t *pool,
-			   int attr_type,
-			   const pj_uint8_t *data,
-			   unsigned length,
-			   pj_stun_binary_attr **p_attr)
+PJ_DEF(pj_status_t) pj_stun_binary_attr_create(pj_pool_t *pool,
+					       int attr_type,
+					       const pj_uint8_t *data,
+					       unsigned length,
+					       pj_stun_binary_attr **p_attr)
 {
     pj_stun_binary_attr *attr;
 
@@ -1505,12 +1492,11 @@
 
 
 /* Create and add binary attr. */
-PJ_DEF(pj_status_t)
-pj_stun_msg_add_binary_attr(pj_pool_t *pool,
-			    pj_stun_msg *msg,
-			    int attr_type,
-			    const pj_uint8_t *data,
-			    unsigned length)
+PJ_DEF(pj_status_t) pj_stun_msg_add_binary_attr(pj_pool_t *pool,
+						pj_stun_msg *msg,
+						int attr_type,
+						const pj_uint8_t *data,
+						unsigned length)
 {
     pj_stun_binary_attr *attr = NULL;
     pj_status_t status;
diff --git a/pjnath/src/pjnath/stun_session.c b/pjnath/src/pjnath/stun_session.c
index 2e11a81..abf1977 100644
--- a/pjnath/src/pjnath/stun_session.c
+++ b/pjnath/src/pjnath/stun_session.c
@@ -395,7 +395,7 @@
     
     sess->srv_name.ptr = (char*) pj_pool_alloc(pool, 32);
     sess->srv_name.slen = pj_ansi_snprintf(sess->srv_name.ptr, 32,
-					   "pj_stun-%s", PJ_VERSION);
+					   "pj_stun-%s", pj_get_version());
 
     pj_list_init(&sess->pending_request_list);
     pj_list_init(&sess->cached_response_list);
diff --git a/pjnath/src/pjnath/stun_transaction.c b/pjnath/src/pjnath/stun_transaction.c
index 09fe9ea..ebee152 100644
--- a/pjnath/src/pjnath/stun_transaction.c
+++ b/pjnath/src/pjnath/stun_transaction.c
@@ -88,8 +88,8 @@
 }
 
 
-PJ_DEF(pj_status_t) 
-pj_stun_client_tsx_schedule_destroy(pj_stun_client_tsx *tsx,
+PJ_DEF(pj_status_t) pj_stun_client_tsx_schedule_destroy(
+				    pj_stun_client_tsx *tsx,
 				    const pj_time_val *delay)
 {
     pj_status_t status;