Ticket #354: continuing work to port the Symbian libraries to .DSO format

git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@1417 74dad513-b988-da41-8d7b-12977e46ad98
This commit is contained in:
Benny Prijono 2007-08-16 10:11:44 +00:00
parent 742ed7d4a8
commit 1f61a8f8af
84 changed files with 2165 additions and 1182 deletions

View File

@ -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

View File

@ -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

View File

@ -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++

View File

@ -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

View File

@ -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

View File

@ -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

186
build.symbian/pjmediaU.def Normal file
View File

@ -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

View File

@ -54,7 +54,7 @@
<COLUMN>0</COLUMN>
<DOCKBARID>59420</DOCKBARID>
<PCTWIDTH>1.000000</PCTWIDTH>
<HGT>294</HGT>
<HGT>274</HGT>
<GROUPID>
<GIDHIGHPART>4294967294</GIDHIGHPART>
<GIDLOWPART>4294967294</GIDLOWPART>
@ -79,7 +79,7 @@
<COLUMN>0</COLUMN>
<DOCKBARID>59420</DOCKBARID>
<PCTWIDTH>1.000000</PCTWIDTH>
<HGT>294</HGT>
<HGT>274</HGT>
<GROUPID>
<GIDHIGHPART>4294967294</GIDHIGHPART>
<GIDLOWPART>4294967294</GIDLOWPART>
@ -104,132 +104,7 @@
<COLUMN>0</COLUMN>
<DOCKBARID>59420</DOCKBARID>
<PCTWIDTH>1.000000</PCTWIDTH>
<HGT>294</HGT>
<GROUPID>
<GIDHIGHPART>4294967294</GIDHIGHPART>
<GIDLOWPART>4294967294</GIDLOWPART>
</GROUPID>
</DOCKINFO>
</WINDOW>
<WINDOW>
<SESSION>-1</SESSION>
<EDOCTYPE>0</EDOCTYPE>
<PATH USERELATIVEPATHS = "true">pjmedia.mcp</PATH>
<FRAMELOC>
<X>0</X>
<Y>0</Y>
</FRAMELOC>
<FRAMESIZE>
<W>347</W>
<H>128</H>
</FRAMESIZE>
<DOCKINFO>
<STATUS>1</STATUS>
<ROW>0</ROW>
<COLUMN>0</COLUMN>
<DOCKBARID>59420</DOCKBARID>
<PCTWIDTH>1.000000</PCTWIDTH>
<HGT>294</HGT>
<GROUPID>
<GIDHIGHPART>4294967294</GIDHIGHPART>
<GIDLOWPART>4294967294</GIDLOWPART>
</GROUPID>
</DOCKINFO>
</WINDOW>
<WINDOW>
<SESSION>-1</SESSION>
<EDOCTYPE>0</EDOCTYPE>
<PATH USERELATIVEPATHS = "true">pjsip.mcp</PATH>
<FRAMELOC>
<X>0</X>
<Y>0</Y>
</FRAMELOC>
<FRAMESIZE>
<W>347</W>
<H>128</H>
</FRAMESIZE>
<DOCKINFO>
<STATUS>1</STATUS>
<ROW>0</ROW>
<COLUMN>0</COLUMN>
<DOCKBARID>59420</DOCKBARID>
<PCTWIDTH>1.000000</PCTWIDTH>
<HGT>294</HGT>
<GROUPID>
<GIDHIGHPART>4294967294</GIDHIGHPART>
<GIDLOWPART>4294967294</GIDLOWPART>
</GROUPID>
</DOCKINFO>
</WINDOW>
<WINDOW>
<SESSION>-1</SESSION>
<EDOCTYPE>0</EDOCTYPE>
<PATH USERELATIVEPATHS = "true">pjsip_ua.mcp</PATH>
<FRAMELOC>
<X>548</X>
<Y>123</Y>
</FRAMELOC>
<FRAMESIZE>
<W>400</W>
<H>372</H>
</FRAMESIZE>
<DOCKINFO>
<STATUS>1</STATUS>
<ROW>0</ROW>
<COLUMN>0</COLUMN>
<DOCKBARID>59420</DOCKBARID>
<PCTWIDTH>1.000000</PCTWIDTH>
<HGT>294</HGT>
<GROUPID>
<GIDHIGHPART>4294967294</GIDHIGHPART>
<GIDLOWPART>4294967294</GIDLOWPART>
</GROUPID>
</DOCKINFO>
</WINDOW>
<WINDOW>
<SESSION>-1</SESSION>
<EDOCTYPE>0</EDOCTYPE>
<PATH USERELATIVEPATHS = "true">pjsip_simple.mcp</PATH>
<FRAMELOC>
<X>0</X>
<Y>0</Y>
</FRAMELOC>
<FRAMESIZE>
<W>347</W>
<H>128</H>
</FRAMESIZE>
<DOCKINFO>
<STATUS>1</STATUS>
<ROW>0</ROW>
<COLUMN>0</COLUMN>
<DOCKBARID>59420</DOCKBARID>
<PCTWIDTH>1.000000</PCTWIDTH>
<HGT>294</HGT>
<GROUPID>
<GIDHIGHPART>4294967294</GIDHIGHPART>
<GIDLOWPART>4294967294</GIDLOWPART>
</GROUPID>
</DOCKINFO>
</WINDOW>
<WINDOW>
<SESSION>-1</SESSION>
<EDOCTYPE>0</EDOCTYPE>
<PATH USERELATIVEPATHS = "true">pjsua_lib.mcp</PATH>
<FRAMELOC>
<X>634</X>
<Y>231</Y>
</FRAMELOC>
<FRAMESIZE>
<W>347</W>
<H>128</H>
</FRAMESIZE>
<DOCKINFO>
<STATUS>1</STATUS>
<ROW>0</ROW>
<COLUMN>0</COLUMN>
<DOCKBARID>59420</DOCKBARID>
<PCTWIDTH>1.000000</PCTWIDTH>
<HGT>294</HGT>
<HGT>274</HGT>
<GROUPID>
<GIDHIGHPART>4294967294</GIDHIGHPART>
<GIDLOWPART>4294967294</GIDLOWPART>
@ -254,7 +129,157 @@
<COLUMN>0</COLUMN>
<DOCKBARID>59420</DOCKBARID>
<PCTWIDTH>1.000000</PCTWIDTH>
<HGT>294</HGT>
<HGT>274</HGT>
<GROUPID>
<GIDHIGHPART>4294967294</GIDHIGHPART>
<GIDLOWPART>4294967294</GIDLOWPART>
</GROUPID>
</DOCKINFO>
</WINDOW>
<WINDOW>
<SESSION>-1</SESSION>
<EDOCTYPE>0</EDOCTYPE>
<PATH USERELATIVEPATHS = "true">pjmedia.mcp</PATH>
<FRAMELOC>
<X>0</X>
<Y>0</Y>
</FRAMELOC>
<FRAMESIZE>
<W>347</W>
<H>128</H>
</FRAMESIZE>
<DOCKINFO>
<STATUS>1</STATUS>
<ROW>0</ROW>
<COLUMN>0</COLUMN>
<DOCKBARID>59420</DOCKBARID>
<PCTWIDTH>1.000000</PCTWIDTH>
<HGT>274</HGT>
<GROUPID>
<GIDHIGHPART>4294967294</GIDHIGHPART>
<GIDLOWPART>4294967294</GIDLOWPART>
</GROUPID>
</DOCKINFO>
</WINDOW>
<WINDOW>
<SESSION>-1</SESSION>
<EDOCTYPE>0</EDOCTYPE>
<PATH USERELATIVEPATHS = "true">pjsdp.mcp</PATH>
<FRAMELOC>
<X>0</X>
<Y>0</Y>
</FRAMELOC>
<FRAMESIZE>
<W>347</W>
<H>128</H>
</FRAMESIZE>
<DOCKINFO>
<STATUS>1</STATUS>
<ROW>0</ROW>
<COLUMN>0</COLUMN>
<DOCKBARID>59420</DOCKBARID>
<PCTWIDTH>1.000000</PCTWIDTH>
<HGT>274</HGT>
<GROUPID>
<GIDHIGHPART>4294967294</GIDHIGHPART>
<GIDLOWPART>4294967294</GIDLOWPART>
</GROUPID>
</DOCKINFO>
</WINDOW>
<WINDOW>
<SESSION>-1</SESSION>
<EDOCTYPE>0</EDOCTYPE>
<PATH USERELATIVEPATHS = "true">pjsip.mcp</PATH>
<FRAMELOC>
<X>0</X>
<Y>0</Y>
</FRAMELOC>
<FRAMESIZE>
<W>347</W>
<H>128</H>
</FRAMESIZE>
<DOCKINFO>
<STATUS>1</STATUS>
<ROW>0</ROW>
<COLUMN>0</COLUMN>
<DOCKBARID>59420</DOCKBARID>
<PCTWIDTH>1.000000</PCTWIDTH>
<HGT>274</HGT>
<GROUPID>
<GIDHIGHPART>4294967294</GIDHIGHPART>
<GIDLOWPART>4294967294</GIDLOWPART>
</GROUPID>
</DOCKINFO>
</WINDOW>
<WINDOW>
<SESSION>-1</SESSION>
<EDOCTYPE>0</EDOCTYPE>
<PATH USERELATIVEPATHS = "true">pjsip_simple.mcp</PATH>
<FRAMELOC>
<X>0</X>
<Y>0</Y>
</FRAMELOC>
<FRAMESIZE>
<W>347</W>
<H>128</H>
</FRAMESIZE>
<DOCKINFO>
<STATUS>1</STATUS>
<ROW>0</ROW>
<COLUMN>0</COLUMN>
<DOCKBARID>59420</DOCKBARID>
<PCTWIDTH>1.000000</PCTWIDTH>
<HGT>274</HGT>
<GROUPID>
<GIDHIGHPART>4294967294</GIDHIGHPART>
<GIDLOWPART>4294967294</GIDLOWPART>
</GROUPID>
</DOCKINFO>
</WINDOW>
<WINDOW>
<SESSION>-1</SESSION>
<EDOCTYPE>0</EDOCTYPE>
<PATH USERELATIVEPATHS = "true">pjsip_ua.mcp</PATH>
<FRAMELOC>
<X>548</X>
<Y>123</Y>
</FRAMELOC>
<FRAMESIZE>
<W>400</W>
<H>372</H>
</FRAMESIZE>
<DOCKINFO>
<STATUS>1</STATUS>
<ROW>0</ROW>
<COLUMN>0</COLUMN>
<DOCKBARID>59420</DOCKBARID>
<PCTWIDTH>1.000000</PCTWIDTH>
<HGT>274</HGT>
<GROUPID>
<GIDHIGHPART>4294967294</GIDHIGHPART>
<GIDLOWPART>4294967294</GIDLOWPART>
</GROUPID>
</DOCKINFO>
</WINDOW>
<WINDOW>
<SESSION>-1</SESSION>
<EDOCTYPE>0</EDOCTYPE>
<PATH USERELATIVEPATHS = "true">pjsua_lib.mcp</PATH>
<FRAMELOC>
<X>634</X>
<Y>231</Y>
</FRAMELOC>
<FRAMESIZE>
<W>347</W>
<H>128</H>
</FRAMESIZE>
<DOCKINFO>
<STATUS>1</STATUS>
<ROW>0</ROW>
<COLUMN>0</COLUMN>
<DOCKBARID>59420</DOCKBARID>
<PCTWIDTH>1.000000</PCTWIDTH>
<HGT>274</HGT>
<GROUPID>
<GIDHIGHPART>4294967294</GIDHIGHPART>
<GIDLOWPART>4294967294</GIDLOWPART>
@ -279,83 +304,11 @@
<COLUMN>0</COLUMN>
<DOCKBARID>59420</DOCKBARID>
<PCTWIDTH>1.000000</PCTWIDTH>
<HGT>294</HGT>
<HGT>274</HGT>
<GROUPID>
<GIDHIGHPART>4294967294</GIDHIGHPART>
<GIDLOWPART>4294967294</GIDLOWPART>
</GROUPID>
</DOCKINFO>
</WINDOW>
<WINDOW>
<SESSION>-2147483648</SESSION>
<EDOCTYPE>36</EDOCTYPE>
<FRAMELOC>
<X>4</X>
<Y>23</Y>
</FRAMELOC>
<FRAMESIZE>
<W>534</W>
<H>921</H>
</FRAMESIZE>
<DOCKINFO>
<STATUS>0</STATUS>
<ROW></ROW>
<COLUMN></COLUMN>
<DOCKBARID></DOCKBARID>
<PCTWIDTH></PCTWIDTH>
<HGT></HGT>
<GROUPID>
<GIDHIGHPART></GIDHIGHPART>
<GIDLOWPART></GIDLOWPART>
</GROUPID>
</DOCKINFO>
</WINDOW>
<WINDOW>
<SESSION>-2147483648</SESSION>
<EDOCTYPE>20</EDOCTYPE>
<FRAMELOC>
<X>4</X>
<Y>23</Y>
</FRAMELOC>
<FRAMESIZE>
<W>1008</W>
<H>2142</H>
</FRAMESIZE>
<DOCKINFO>
<STATUS>0</STATUS>
<ROW></ROW>
<COLUMN></COLUMN>
<DOCKBARID></DOCKBARID>
<PCTWIDTH></PCTWIDTH>
<HGT></HGT>
<GROUPID>
<GIDHIGHPART></GIDHIGHPART>
<GIDLOWPART></GIDLOWPART>
</GROUPID>
</DOCKINFO>
</WINDOW>
<WINDOW>
<SESSION>-2147483648</SESSION>
<EDOCTYPE>23</EDOCTYPE>
<FRAMELOC>
<X>6</X>
<Y>81</Y>
</FRAMELOC>
<FRAMESIZE>
<W>566</W>
<H>477</H>
</FRAMESIZE>
<DOCKINFO>
<STATUS>0</STATUS>
<ROW></ROW>
<COLUMN></COLUMN>
<DOCKBARID></DOCKBARID>
<PCTWIDTH></PCTWIDTH>
<HGT></HGT>
<GROUPID>
<GIDHIGHPART></GIDHIGHPART>
<GIDLOWPART></GIDLOWPART>
</GROUPID>
</DOCKINFO>
</WINDOW>
</MWIDEWORKSPACE>

View File

@ -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++

45
build.symbian/pjsdpU.def Normal file
View File

@ -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

View File

@ -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

269
build.symbian/pjsipU.def Normal file
View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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,

View File

@ -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.

View File

@ -21,7 +21,12 @@
#include <pj/rand.h>
#include <pj/string.h>
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])
{

View File

@ -24,7 +24,12 @@
#include <uuid/uuid.h>
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)
{

View File

@ -24,7 +24,12 @@
#include <pj/os.h>
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)
{

View File

@ -25,9 +25,9 @@
#include <e32base.h>
#include <e32cmn.h>
#include <e32std.h>
#include <ES_SOCK.H>
#include <es_sock.h>
#include <in_sock.h>
#include <CHARCONV.H>
#include <charconf.h>
#include <utf.h>
#include <e32cons.h>

View File

@ -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.

View File

@ -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

View File

@ -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);
/**

View File

@ -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;

View File

@ -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;

View File

@ -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;
}

View File

@ -21,7 +21,7 @@
#include <pjmedia/echo.h>
#include <pj/assert.h>
#include <pj/pool.h>
#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,

View File

@ -0,0 +1,71 @@
/* $Id$ */
/*
* Copyright (C) 2003-2007 Benny Prijono <benny@prijono.org>
*
* 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 <pjmedia/types.h>
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

View File

@ -28,6 +28,7 @@
#include <speex/speex_echo.h>
#include <speex/speex_preprocess.h>
#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,

View File

@ -25,6 +25,7 @@
#include <pj/os.h>
#include <pj/pool.h>
#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.
*/

View File

@ -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*);

View File

@ -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 );

View File

@ -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))

View File

@ -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))

View File

@ -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;

View File

@ -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)
{

View File

@ -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,

View File

@ -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,

View File

@ -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);

View File

@ -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))

View File

@ -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))

View File

@ -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,

View File

@ -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);

View File

@ -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;

View File

@ -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 */

View File

@ -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) {

View File

@ -19,9 +19,10 @@
#ifndef __PJSIP_SIMPLE_ERRNO_H__
#define __PJSIP_SIMPLE_ERRNO_H__
#include <pjsip/sip_errno.h>
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__ */

View File

@ -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();
/**

View File

@ -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

View File

@ -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();
/**

View File

@ -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. */

View File

@ -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. */

View File

@ -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__ */

View File

@ -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);
/**
* @}

View File

@ -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.

View File

@ -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

View File

@ -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.

View File

@ -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; i<src->outbound_proxy_cnt; ++i) {
pj_strdup_with_null(pool, &dst->outbound_proxy[i],
&src->outbound_proxy[i]);
}
for (i=0; i<src->cred_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);
/**

View File

@ -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;

View File

@ -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;

View File

@ -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) {

View File

@ -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,

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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)) {

View File

@ -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)
{

View File

@ -34,7 +34,7 @@
#include <pj/errno.h>
#include <pj/lock.h>
#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

View File

@ -24,13 +24,61 @@
#include <pj/pool.h>
#include <pj/assert.h>
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;

View File

@ -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);
}

View File

@ -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);

View File

@ -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.

View File

@ -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);

View File

@ -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;

View File

@ -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)

View File

@ -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.

View File

@ -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; i<src->outbound_proxy_cnt; ++i) {
pj_strdup_with_null(pool, &dst->outbound_proxy[i],
&src->outbound_proxy[i]);
}
for (i=0; i<src->cred_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;
}

View File

@ -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;
}

View File

@ -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;