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:
parent
742ed7d4a8
commit
1f61a8f8af
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
||||
|
|
|
@ -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++
|
||||
|
|
|
@ -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
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
|
@ -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>
|
||||
|
|
|
@ -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++
|
||||
|
|
|
@ -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
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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])
|
||||
{
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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>
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
||||
/**
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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
|
||||
|
|
@ -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,
|
||||
|
|
|
@ -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.
|
||||
*/
|
||||
|
|
|
@ -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*);
|
||||
|
|
|
@ -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 );
|
||||
|
|
|
@ -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))
|
||||
|
|
|
@ -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))
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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))
|
||||
|
|
|
@ -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))
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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__ */
|
||||
|
||||
|
|
|
@ -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();
|
||||
|
||||
|
||||
/**
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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();
|
||||
|
||||
|
||||
/**
|
||||
|
|
|
@ -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. */
|
||||
|
|
|
@ -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. */
|
||||
|
|
|
@ -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__ */
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
||||
/**
|
||||
* @}
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
||||
/**
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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)) {
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue