diff options
author | Benny Prijono <bennylp@teluu.com> | 2006-11-11 16:16:04 +0000 |
---|---|---|
committer | Benny Prijono <bennylp@teluu.com> | 2006-11-11 16:16:04 +0000 |
commit | e6a5b770072500cf89a9cc10e4b99a972a6787b8 (patch) | |
tree | ec336215fc83344cec58d01dd30a74d7f6054e67 | |
parent | e4fa39f3acb0b969dd1f952e81b33b2dff671002 (diff) |
Attended call transfer implementation. The changes involves:
- Added support for SIP Replaces extension (RFC 3891)
- Added pjsua_call_xfer_replaces() to perform attended call
transfer.
- PJSUA checks and process Replaces header in incoming calls
- Added pjsip_ua_find_dialog() API.
- Added pjsip_endpt_has_capability() API.
- Added pjsip_endpt_send_response2() API.
- etc.
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@797 74dad513-b988-da41-8d7b-12977e46ad98
-rw-r--r-- | pjsip/build/Makefile | 2 | ||||
-rw-r--r-- | pjsip/build/pjsip_ua.dsp | 8 | ||||
-rw-r--r-- | pjsip/build/pjsua_lib.dsp | 2 | ||||
-rw-r--r-- | pjsip/build/wince-evc4/pjsip_ua_wince.vcp | 2133 | ||||
-rw-r--r-- | pjsip/include/pjsip-ua/sip_replaces.h | 300 | ||||
-rw-r--r-- | pjsip/include/pjsip-ua/sip_xfer.h | 31 | ||||
-rw-r--r-- | pjsip/include/pjsip/sip_endpoint.h | 25 | ||||
-rw-r--r-- | pjsip/include/pjsip/sip_ua_layer.h | 22 | ||||
-rw-r--r-- | pjsip/include/pjsip/sip_util.h | 25 | ||||
-rw-r--r-- | pjsip/include/pjsip_ua.h | 1 | ||||
-rw-r--r-- | pjsip/include/pjsua-lib/pjsua.h | 67 | ||||
-rw-r--r-- | pjsip/src/pjsip-ua/sip_inv.c | 17 | ||||
-rw-r--r-- | pjsip/src/pjsip-ua/sip_replaces.c | 355 | ||||
-rw-r--r-- | pjsip/src/pjsip/sip_dialog.c | 37 | ||||
-rw-r--r-- | pjsip/src/pjsip/sip_endpoint.c | 26 | ||||
-rw-r--r-- | pjsip/src/pjsip/sip_ua_layer.c | 75 | ||||
-rw-r--r-- | pjsip/src/pjsip/sip_util.c | 25 | ||||
-rw-r--r-- | pjsip/src/pjsua-lib/pjsua_call.c | 223 | ||||
-rw-r--r-- | pjsip/src/pjsua-lib/pjsua_core.c | 5 |
19 files changed, 3334 insertions, 45 deletions
diff --git a/pjsip/build/Makefile b/pjsip/build/Makefile index dad39451..462ab86c 100644 --- a/pjsip/build/Makefile +++ b/pjsip/build/Makefile @@ -57,7 +57,7 @@ export PJSIP_CFLAGS += $(_CFLAGS) # export PJSIP_UA_SRCDIR = ../src/pjsip-ua export PJSIP_UA_OBJS += $(OS_OBJS) $(M_OBJS) $(CC_OBJS) $(HOST_OBJS) \ - sip_inv.o sip_reg.o sip_xfer.o + sip_inv.o sip_reg.o sip_replaces.o sip_xfer.o export PJSIP_UA_CFLAGS += $(_CFLAGS) diff --git a/pjsip/build/pjsip_ua.dsp b/pjsip/build/pjsip_ua.dsp index 336e6a21..17ccddf3 100644 --- a/pjsip/build/pjsip_ua.dsp +++ b/pjsip/build/pjsip_ua.dsp @@ -95,6 +95,10 @@ SOURCE="..\src\pjsip-ua\sip_reg.c" # End Source File
# Begin Source File
+SOURCE="..\src\pjsip-ua\sip_replaces.c"
+# End Source File
+# Begin Source File
+
SOURCE="..\src\pjsip-ua\sip_xfer.c"
# End Source File
# End Group
@@ -115,6 +119,10 @@ SOURCE="..\include\pjsip-ua\sip_regc.h" # End Source File
# Begin Source File
+SOURCE="..\include\pjsip-ua\sip_replaces.h"
+# End Source File
+# Begin Source File
+
SOURCE="..\include\pjsip-ua\sip_xfer.h"
# End Source File
# End Group
diff --git a/pjsip/build/pjsua_lib.dsp b/pjsip/build/pjsua_lib.dsp index d5aeb387..0d0b26e4 100644 --- a/pjsip/build/pjsua_lib.dsp +++ b/pjsip/build/pjsua_lib.dsp @@ -41,7 +41,7 @@ RSC=rc.exe # PROP Intermediate_Dir ".\output\pjsua-lib-i386-win32-vc6-release"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
-# ADD CPP /nologo /MD /W4 /GX /O2 /I "../include" /I "../../pjmedia/include" /I "../../pjlib-util/include" /I "../../pjlib/include" /D "NDEBUG" /D PJ_WIN32=1 /D PJ_M_I386=1 /D "WIN32" /D "_MBCS" /D "_LIB" /FD /c
+# ADD CPP /nologo /MD /W4 /GX /O2 /I "../include" /I "../../pjmedia/include" /I "../../pjlib-util/include" /I "../../pjlib/include" /D "NDEBUG" /D PJ_WIN32=1 /D PJ_M_I386=1 /D "WIN32" /D "_MBCS" /D "_LIB" /FR /FD /c
# SUBTRACT CPP /YX
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
diff --git a/pjsip/build/wince-evc4/pjsip_ua_wince.vcp b/pjsip/build/wince-evc4/pjsip_ua_wince.vcp index f7eadc1f..d3bac990 100644 --- a/pjsip/build/wince-evc4/pjsip_ua_wince.vcp +++ b/pjsip/build/wince-evc4/pjsip_ua_wince.vcp @@ -1448,41 +1448,65 @@ NODEP_CPP_SIP_I=\ !ELSEIF "$(CFG)" == "pjsip_ua_wince - Win32 (WCE emulator) Debug" DEP_CPP_SIP_I=\ + "..\..\..\pjlib-util\include\pjlib-util\config.h"\ + "..\..\..\pjlib-util\include\pjlib-util\dns.h"\ + "..\..\..\pjlib-util\include\pjlib-util\resolver.h"\ "..\..\..\pjlib-util\include\pjlib-util\scanner.h"\ "..\..\..\pjlib-util\include\pjlib-util\scanner_cis_bitwise.h"\ "..\..\..\pjlib-util\include\pjlib-util\scanner_cis_uint.h"\ + "..\..\..\pjlib-util\include\pjlib-util\types.h"\ + "..\..\..\pjlib\include\pj\addr_resolv.h"\ + "..\..\..\pjlib\include\pj\array.h"\ "..\..\..\pjlib\include\pj\assert.h"\ "..\..\..\pjlib\include\pj\compat\assert.h"\ "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ + "..\..\..\pjlib\include\pj\compat\ctype.h"\ "..\..\..\pjlib\include\pj\compat\errno.h"\ - "..\..\..\pjlib\include\pj\compat\m_alpha.h"\ - "..\..\..\pjlib\include\pj\compat\m_i386.h"\ - "..\..\..\pjlib\include\pj\compat\m_m68k.h"\ - "..\..\..\pjlib\include\pj\compat\m_sparc.h"\ + "..\..\..\pjlib\include\pj\compat\high_precision.h"\ + "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ "..\..\..\pjlib\include\pj\compat\os_linux.h"\ "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ + "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ "..\..\..\pjlib\include\pj\compat\os_win32.h"\ "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ + "..\..\..\pjlib\include\pj\compat\setjmp.h"\ "..\..\..\pjlib\include\pj\compat\size_t.h"\ "..\..\..\pjlib\include\pj\compat\string.h"\ "..\..\..\pjlib\include\pj\config.h"\ "..\..\..\pjlib\include\pj\config_site.h"\ + "..\..\..\pjlib\include\pj\config_site_sample.h"\ + "..\..\..\pjlib\include\pj\ctype.h"\ "..\..\..\pjlib\include\pj\errno.h"\ + "..\..\..\pjlib\include\pj\except.h"\ + "..\..\..\pjlib\include\pj\fifobuf.h"\ + "..\..\..\pjlib\include\pj\file_access.h"\ + "..\..\..\pjlib\include\pj\file_io.h"\ + "..\..\..\pjlib\include\pj\guid.h"\ + "..\..\..\pjlib\include\pj\hash.h"\ "..\..\..\pjlib\include\pj\ioqueue.h"\ "..\..\..\pjlib\include\pj\list.h"\ "..\..\..\pjlib\include\pj\list_i.h"\ + "..\..\..\pjlib\include\pj\lock.h"\ "..\..\..\pjlib\include\pj\log.h"\ "..\..\..\pjlib\include\pj\os.h"\ "..\..\..\pjlib\include\pj\pool.h"\ + "..\..\..\pjlib\include\pj\pool_alt.h"\ + "..\..\..\pjlib\include\pj\pool_buf.h"\ "..\..\..\pjlib\include\pj\pool_i.h"\ + "..\..\..\pjlib\include\pj\rand.h"\ + "..\..\..\pjlib\include\pj\rbtree.h"\ "..\..\..\pjlib\include\pj\sock.h"\ + "..\..\..\pjlib\include\pj\sock_select.h"\ "..\..\..\pjlib\include\pj\string.h"\ "..\..\..\pjlib\include\pj\string_i.h"\ "..\..\..\pjlib\include\pj\timer.h"\ "..\..\..\pjlib\include\pj\types.h"\ + "..\..\..\pjlib\include\pj\unicode.h"\ + "..\..\..\pjlib\include\pjlib.h"\ + "..\..\..\pjmedia\include\pjmedia\config.h"\ "..\..\..\pjmedia\include\pjmedia\errno.h"\ "..\..\..\pjmedia\include\pjmedia\sdp.h"\ "..\..\..\pjmedia\include\pjmedia\sdp_neg.h"\ @@ -1505,11 +1529,6 @@ DEP_CPP_SIP_I=\ "..\..\include\pjsip\sip_uri.h"\ "..\..\include\pjsip\sip_util.h"\ -NODEP_CPP_SIP_I=\ - "..\..\..\pjlib\include\pj\compat\m_arm.h"\ - "..\..\..\pjlib\include\pj\compat\sprintf.h"\ - "..\..\..\pjlib\include\pj\compat\vsprintf.h"\ - !ELSEIF "$(CFG)" == "pjsip_ua_wince - Win32 (WCE ARMV4I) Release" @@ -2986,41 +3005,64 @@ NODEP_CPP_SIP_R=\ !ELSEIF "$(CFG)" == "pjsip_ua_wince - Win32 (WCE emulator) Debug" DEP_CPP_SIP_R=\ + "..\..\..\pjlib-util\include\pjlib-util\config.h"\ + "..\..\..\pjlib-util\include\pjlib-util\dns.h"\ + "..\..\..\pjlib-util\include\pjlib-util\resolver.h"\ "..\..\..\pjlib-util\include\pjlib-util\scanner.h"\ "..\..\..\pjlib-util\include\pjlib-util\scanner_cis_bitwise.h"\ "..\..\..\pjlib-util\include\pjlib-util\scanner_cis_uint.h"\ + "..\..\..\pjlib-util\include\pjlib-util\types.h"\ + "..\..\..\pjlib\include\pj\addr_resolv.h"\ + "..\..\..\pjlib\include\pj\array.h"\ "..\..\..\pjlib\include\pj\assert.h"\ "..\..\..\pjlib\include\pj\compat\assert.h"\ "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ + "..\..\..\pjlib\include\pj\compat\ctype.h"\ "..\..\..\pjlib\include\pj\compat\errno.h"\ - "..\..\..\pjlib\include\pj\compat\m_alpha.h"\ - "..\..\..\pjlib\include\pj\compat\m_i386.h"\ - "..\..\..\pjlib\include\pj\compat\m_m68k.h"\ - "..\..\..\pjlib\include\pj\compat\m_sparc.h"\ + "..\..\..\pjlib\include\pj\compat\high_precision.h"\ + "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ "..\..\..\pjlib\include\pj\compat\os_linux.h"\ "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ + "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ "..\..\..\pjlib\include\pj\compat\os_win32.h"\ "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ + "..\..\..\pjlib\include\pj\compat\setjmp.h"\ "..\..\..\pjlib\include\pj\compat\size_t.h"\ "..\..\..\pjlib\include\pj\compat\string.h"\ "..\..\..\pjlib\include\pj\config.h"\ "..\..\..\pjlib\include\pj\config_site.h"\ + "..\..\..\pjlib\include\pj\config_site_sample.h"\ + "..\..\..\pjlib\include\pj\ctype.h"\ "..\..\..\pjlib\include\pj\errno.h"\ + "..\..\..\pjlib\include\pj\except.h"\ + "..\..\..\pjlib\include\pj\fifobuf.h"\ + "..\..\..\pjlib\include\pj\file_access.h"\ + "..\..\..\pjlib\include\pj\file_io.h"\ "..\..\..\pjlib\include\pj\guid.h"\ + "..\..\..\pjlib\include\pj\hash.h"\ "..\..\..\pjlib\include\pj\ioqueue.h"\ "..\..\..\pjlib\include\pj\list.h"\ "..\..\..\pjlib\include\pj\list_i.h"\ + "..\..\..\pjlib\include\pj\lock.h"\ "..\..\..\pjlib\include\pj\log.h"\ + "..\..\..\pjlib\include\pj\os.h"\ "..\..\..\pjlib\include\pj\pool.h"\ + "..\..\..\pjlib\include\pj\pool_alt.h"\ + "..\..\..\pjlib\include\pj\pool_buf.h"\ "..\..\..\pjlib\include\pj\pool_i.h"\ + "..\..\..\pjlib\include\pj\rand.h"\ + "..\..\..\pjlib\include\pj\rbtree.h"\ "..\..\..\pjlib\include\pj\sock.h"\ + "..\..\..\pjlib\include\pj\sock_select.h"\ "..\..\..\pjlib\include\pj\string.h"\ "..\..\..\pjlib\include\pj\string_i.h"\ "..\..\..\pjlib\include\pj\timer.h"\ "..\..\..\pjlib\include\pj\types.h"\ + "..\..\..\pjlib\include\pj\unicode.h"\ + "..\..\..\pjlib\include\pjlib.h"\ "..\..\include\pjsip-ua\sip_regc.h"\ "..\..\include\pjsip\sip_auth.h"\ "..\..\include\pjsip\sip_auth_msg.h"\ @@ -3038,11 +3080,6 @@ DEP_CPP_SIP_R=\ "..\..\include\pjsip\sip_uri.h"\ "..\..\include\pjsip\sip_util.h"\ -NODEP_CPP_SIP_R=\ - "..\..\..\pjlib\include\pj\compat\m_arm.h"\ - "..\..\..\pjlib\include\pj\compat\sprintf.h"\ - "..\..\..\pjlib\include\pj\compat\vsprintf.h"\ - !ELSEIF "$(CFG)" == "pjsip_ua_wince - Win32 (WCE ARMV4I) Release" @@ -3784,6 +3821,2029 @@ DEP_CPP_SIP_R=\ # End Source File # Begin Source File +SOURCE="..\..\src\pjsip-ua\sip_replaces.c" + +!IF "$(CFG)" == "pjsip_ua_wince - Win32 (WCE MIPSII_FP) Release" + +DEP_CPP_SIP_RE=\ + "..\..\..\pjlib-util\include\pjlib-util\config.h"\ + "..\..\..\pjlib-util\include\pjlib-util\dns.h"\ + "..\..\..\pjlib-util\include\pjlib-util\resolver.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner_cis_bitwise.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner_cis_uint.h"\ + "..\..\..\pjlib-util\include\pjlib-util\types.h"\ + "..\..\..\pjlib\include\pj\addr_resolv.h"\ + "..\..\..\pjlib\include\pj\array.h"\ + "..\..\..\pjlib\include\pj\assert.h"\ + "..\..\..\pjlib\include\pj\compat\assert.h"\ + "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ + "..\..\..\pjlib\include\pj\compat\ctype.h"\ + "..\..\..\pjlib\include\pj\compat\errno.h"\ + "..\..\..\pjlib\include\pj\compat\high_precision.h"\ + "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ + "..\..\..\pjlib\include\pj\compat\os_linux.h"\ + "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ + "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ + "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ + "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ + "..\..\..\pjlib\include\pj\compat\os_win32.h"\ + "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ + "..\..\..\pjlib\include\pj\compat\setjmp.h"\ + "..\..\..\pjlib\include\pj\compat\size_t.h"\ + "..\..\..\pjlib\include\pj\compat\string.h"\ + "..\..\..\pjlib\include\pj\config.h"\ + "..\..\..\pjlib\include\pj\config_site.h"\ + "..\..\..\pjlib\include\pj\config_site_sample.h"\ + "..\..\..\pjlib\include\pj\ctype.h"\ + "..\..\..\pjlib\include\pj\errno.h"\ + "..\..\..\pjlib\include\pj\except.h"\ + "..\..\..\pjlib\include\pj\fifobuf.h"\ + "..\..\..\pjlib\include\pj\file_access.h"\ + "..\..\..\pjlib\include\pj\file_io.h"\ + "..\..\..\pjlib\include\pj\guid.h"\ + "..\..\..\pjlib\include\pj\hash.h"\ + "..\..\..\pjlib\include\pj\ioqueue.h"\ + "..\..\..\pjlib\include\pj\list.h"\ + "..\..\..\pjlib\include\pj\list_i.h"\ + "..\..\..\pjlib\include\pj\lock.h"\ + "..\..\..\pjlib\include\pj\log.h"\ + "..\..\..\pjlib\include\pj\os.h"\ + "..\..\..\pjlib\include\pj\pool.h"\ + "..\..\..\pjlib\include\pj\pool_alt.h"\ + "..\..\..\pjlib\include\pj\pool_buf.h"\ + "..\..\..\pjlib\include\pj\pool_i.h"\ + "..\..\..\pjlib\include\pj\rand.h"\ + "..\..\..\pjlib\include\pj\rbtree.h"\ + "..\..\..\pjlib\include\pj\sock.h"\ + "..\..\..\pjlib\include\pj\sock_select.h"\ + "..\..\..\pjlib\include\pj\string.h"\ + "..\..\..\pjlib\include\pj\string_i.h"\ + "..\..\..\pjlib\include\pj\timer.h"\ + "..\..\..\pjlib\include\pj\types.h"\ + "..\..\..\pjlib\include\pj\unicode.h"\ + "..\..\..\pjlib\include\pjlib.h"\ + "..\..\..\pjmedia\include\pjmedia\config.h"\ + "..\..\..\pjmedia\include\pjmedia\sdp.h"\ + "..\..\..\pjmedia\include\pjmedia\sdp_neg.h"\ + "..\..\..\pjmedia\include\pjmedia\types.h"\ + "..\..\include\pjsip-ua\sip_inv.h"\ + "..\..\include\pjsip-ua\sip_replaces.h"\ + "..\..\include\pjsip\print_util.h"\ + "..\..\include\pjsip\sip_auth.h"\ + "..\..\include\pjsip\sip_auth_msg.h"\ + "..\..\include\pjsip\sip_config.h"\ + "..\..\include\pjsip\sip_dialog.h"\ + "..\..\include\pjsip\sip_endpoint.h"\ + "..\..\include\pjsip\sip_errno.h"\ + "..\..\include\pjsip\sip_msg.h"\ + "..\..\include\pjsip\sip_parser.h"\ + "..\..\include\pjsip\sip_resolve.h"\ + "..\..\include\pjsip\sip_transport.h"\ + "..\..\include\pjsip\sip_types.h"\ + "..\..\include\pjsip\sip_ua_layer.h"\ + "..\..\include\pjsip\sip_uri.h"\ + "..\..\include\pjsip\sip_util.h"\ + + +!ELSEIF "$(CFG)" == "pjsip_ua_wince - Win32 (WCE MIPSII_FP) Debug" + +DEP_CPP_SIP_RE=\ + "..\..\..\pjlib-util\include\pjlib-util\config.h"\ + "..\..\..\pjlib-util\include\pjlib-util\dns.h"\ + "..\..\..\pjlib-util\include\pjlib-util\resolver.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner_cis_bitwise.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner_cis_uint.h"\ + "..\..\..\pjlib-util\include\pjlib-util\types.h"\ + "..\..\..\pjlib\include\pj\addr_resolv.h"\ + "..\..\..\pjlib\include\pj\array.h"\ + "..\..\..\pjlib\include\pj\assert.h"\ + "..\..\..\pjlib\include\pj\compat\assert.h"\ + "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ + "..\..\..\pjlib\include\pj\compat\ctype.h"\ + "..\..\..\pjlib\include\pj\compat\errno.h"\ + "..\..\..\pjlib\include\pj\compat\high_precision.h"\ + "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ + "..\..\..\pjlib\include\pj\compat\os_linux.h"\ + "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ + "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ + "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ + "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ + "..\..\..\pjlib\include\pj\compat\os_win32.h"\ + "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ + "..\..\..\pjlib\include\pj\compat\setjmp.h"\ + "..\..\..\pjlib\include\pj\compat\size_t.h"\ + "..\..\..\pjlib\include\pj\compat\string.h"\ + "..\..\..\pjlib\include\pj\config.h"\ + "..\..\..\pjlib\include\pj\config_site.h"\ + "..\..\..\pjlib\include\pj\config_site_sample.h"\ + "..\..\..\pjlib\include\pj\ctype.h"\ + "..\..\..\pjlib\include\pj\errno.h"\ + "..\..\..\pjlib\include\pj\except.h"\ + "..\..\..\pjlib\include\pj\fifobuf.h"\ + "..\..\..\pjlib\include\pj\file_access.h"\ + "..\..\..\pjlib\include\pj\file_io.h"\ + "..\..\..\pjlib\include\pj\guid.h"\ + "..\..\..\pjlib\include\pj\hash.h"\ + "..\..\..\pjlib\include\pj\ioqueue.h"\ + "..\..\..\pjlib\include\pj\list.h"\ + "..\..\..\pjlib\include\pj\list_i.h"\ + "..\..\..\pjlib\include\pj\lock.h"\ + "..\..\..\pjlib\include\pj\log.h"\ + "..\..\..\pjlib\include\pj\os.h"\ + "..\..\..\pjlib\include\pj\pool.h"\ + "..\..\..\pjlib\include\pj\pool_alt.h"\ + "..\..\..\pjlib\include\pj\pool_buf.h"\ + "..\..\..\pjlib\include\pj\pool_i.h"\ + "..\..\..\pjlib\include\pj\rand.h"\ + "..\..\..\pjlib\include\pj\rbtree.h"\ + "..\..\..\pjlib\include\pj\sock.h"\ + "..\..\..\pjlib\include\pj\sock_select.h"\ + "..\..\..\pjlib\include\pj\string.h"\ + "..\..\..\pjlib\include\pj\string_i.h"\ + "..\..\..\pjlib\include\pj\timer.h"\ + "..\..\..\pjlib\include\pj\types.h"\ + "..\..\..\pjlib\include\pj\unicode.h"\ + "..\..\..\pjlib\include\pjlib.h"\ + "..\..\..\pjmedia\include\pjmedia\config.h"\ + "..\..\..\pjmedia\include\pjmedia\sdp.h"\ + "..\..\..\pjmedia\include\pjmedia\sdp_neg.h"\ + "..\..\..\pjmedia\include\pjmedia\types.h"\ + "..\..\include\pjsip-ua\sip_inv.h"\ + "..\..\include\pjsip-ua\sip_replaces.h"\ + "..\..\include\pjsip\print_util.h"\ + "..\..\include\pjsip\sip_auth.h"\ + "..\..\include\pjsip\sip_auth_msg.h"\ + "..\..\include\pjsip\sip_config.h"\ + "..\..\include\pjsip\sip_dialog.h"\ + "..\..\include\pjsip\sip_endpoint.h"\ + "..\..\include\pjsip\sip_errno.h"\ + "..\..\include\pjsip\sip_msg.h"\ + "..\..\include\pjsip\sip_parser.h"\ + "..\..\include\pjsip\sip_resolve.h"\ + "..\..\include\pjsip\sip_transport.h"\ + "..\..\include\pjsip\sip_types.h"\ + "..\..\include\pjsip\sip_ua_layer.h"\ + "..\..\include\pjsip\sip_uri.h"\ + "..\..\include\pjsip\sip_util.h"\ + + +!ELSEIF "$(CFG)" == "pjsip_ua_wince - Win32 (WCE MIPSII) Release" + +DEP_CPP_SIP_RE=\ + "..\..\..\pjlib-util\include\pjlib-util\config.h"\ + "..\..\..\pjlib-util\include\pjlib-util\dns.h"\ + "..\..\..\pjlib-util\include\pjlib-util\resolver.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner_cis_bitwise.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner_cis_uint.h"\ + "..\..\..\pjlib-util\include\pjlib-util\types.h"\ + "..\..\..\pjlib\include\pj\addr_resolv.h"\ + "..\..\..\pjlib\include\pj\array.h"\ + "..\..\..\pjlib\include\pj\assert.h"\ + "..\..\..\pjlib\include\pj\compat\assert.h"\ + "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ + "..\..\..\pjlib\include\pj\compat\ctype.h"\ + "..\..\..\pjlib\include\pj\compat\errno.h"\ + "..\..\..\pjlib\include\pj\compat\high_precision.h"\ + "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ + "..\..\..\pjlib\include\pj\compat\os_linux.h"\ + "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ + "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ + "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ + "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ + "..\..\..\pjlib\include\pj\compat\os_win32.h"\ + "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ + "..\..\..\pjlib\include\pj\compat\setjmp.h"\ + "..\..\..\pjlib\include\pj\compat\size_t.h"\ + "..\..\..\pjlib\include\pj\compat\string.h"\ + "..\..\..\pjlib\include\pj\config.h"\ + "..\..\..\pjlib\include\pj\config_site.h"\ + "..\..\..\pjlib\include\pj\config_site_sample.h"\ + "..\..\..\pjlib\include\pj\ctype.h"\ + "..\..\..\pjlib\include\pj\errno.h"\ + "..\..\..\pjlib\include\pj\except.h"\ + "..\..\..\pjlib\include\pj\fifobuf.h"\ + "..\..\..\pjlib\include\pj\file_access.h"\ + "..\..\..\pjlib\include\pj\file_io.h"\ + "..\..\..\pjlib\include\pj\guid.h"\ + "..\..\..\pjlib\include\pj\hash.h"\ + "..\..\..\pjlib\include\pj\ioqueue.h"\ + "..\..\..\pjlib\include\pj\list.h"\ + "..\..\..\pjlib\include\pj\list_i.h"\ + "..\..\..\pjlib\include\pj\lock.h"\ + "..\..\..\pjlib\include\pj\log.h"\ + "..\..\..\pjlib\include\pj\os.h"\ + "..\..\..\pjlib\include\pj\pool.h"\ + "..\..\..\pjlib\include\pj\pool_alt.h"\ + "..\..\..\pjlib\include\pj\pool_buf.h"\ + "..\..\..\pjlib\include\pj\pool_i.h"\ + "..\..\..\pjlib\include\pj\rand.h"\ + "..\..\..\pjlib\include\pj\rbtree.h"\ + "..\..\..\pjlib\include\pj\sock.h"\ + "..\..\..\pjlib\include\pj\sock_select.h"\ + "..\..\..\pjlib\include\pj\string.h"\ + "..\..\..\pjlib\include\pj\string_i.h"\ + "..\..\..\pjlib\include\pj\timer.h"\ + "..\..\..\pjlib\include\pj\types.h"\ + "..\..\..\pjlib\include\pj\unicode.h"\ + "..\..\..\pjlib\include\pjlib.h"\ + "..\..\..\pjmedia\include\pjmedia\config.h"\ + "..\..\..\pjmedia\include\pjmedia\sdp.h"\ + "..\..\..\pjmedia\include\pjmedia\sdp_neg.h"\ + "..\..\..\pjmedia\include\pjmedia\types.h"\ + "..\..\include\pjsip-ua\sip_inv.h"\ + "..\..\include\pjsip-ua\sip_replaces.h"\ + "..\..\include\pjsip\print_util.h"\ + "..\..\include\pjsip\sip_auth.h"\ + "..\..\include\pjsip\sip_auth_msg.h"\ + "..\..\include\pjsip\sip_config.h"\ + "..\..\include\pjsip\sip_dialog.h"\ + "..\..\include\pjsip\sip_endpoint.h"\ + "..\..\include\pjsip\sip_errno.h"\ + "..\..\include\pjsip\sip_msg.h"\ + "..\..\include\pjsip\sip_parser.h"\ + "..\..\include\pjsip\sip_resolve.h"\ + "..\..\include\pjsip\sip_transport.h"\ + "..\..\include\pjsip\sip_types.h"\ + "..\..\include\pjsip\sip_ua_layer.h"\ + "..\..\include\pjsip\sip_uri.h"\ + "..\..\include\pjsip\sip_util.h"\ + + +!ELSEIF "$(CFG)" == "pjsip_ua_wince - Win32 (WCE MIPSII) Debug" + +DEP_CPP_SIP_RE=\ + "..\..\..\pjlib-util\include\pjlib-util\config.h"\ + "..\..\..\pjlib-util\include\pjlib-util\dns.h"\ + "..\..\..\pjlib-util\include\pjlib-util\resolver.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner_cis_bitwise.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner_cis_uint.h"\ + "..\..\..\pjlib-util\include\pjlib-util\types.h"\ + "..\..\..\pjlib\include\pj\addr_resolv.h"\ + "..\..\..\pjlib\include\pj\array.h"\ + "..\..\..\pjlib\include\pj\assert.h"\ + "..\..\..\pjlib\include\pj\compat\assert.h"\ + "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ + "..\..\..\pjlib\include\pj\compat\ctype.h"\ + "..\..\..\pjlib\include\pj\compat\errno.h"\ + "..\..\..\pjlib\include\pj\compat\high_precision.h"\ + "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ + "..\..\..\pjlib\include\pj\compat\os_linux.h"\ + "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ + "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ + "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ + "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ + "..\..\..\pjlib\include\pj\compat\os_win32.h"\ + "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ + "..\..\..\pjlib\include\pj\compat\setjmp.h"\ + "..\..\..\pjlib\include\pj\compat\size_t.h"\ + "..\..\..\pjlib\include\pj\compat\string.h"\ + "..\..\..\pjlib\include\pj\config.h"\ + "..\..\..\pjlib\include\pj\config_site.h"\ + "..\..\..\pjlib\include\pj\config_site_sample.h"\ + "..\..\..\pjlib\include\pj\ctype.h"\ + "..\..\..\pjlib\include\pj\errno.h"\ + "..\..\..\pjlib\include\pj\except.h"\ + "..\..\..\pjlib\include\pj\fifobuf.h"\ + "..\..\..\pjlib\include\pj\file_access.h"\ + "..\..\..\pjlib\include\pj\file_io.h"\ + "..\..\..\pjlib\include\pj\guid.h"\ + "..\..\..\pjlib\include\pj\hash.h"\ + "..\..\..\pjlib\include\pj\ioqueue.h"\ + "..\..\..\pjlib\include\pj\list.h"\ + "..\..\..\pjlib\include\pj\list_i.h"\ + "..\..\..\pjlib\include\pj\lock.h"\ + "..\..\..\pjlib\include\pj\log.h"\ + "..\..\..\pjlib\include\pj\os.h"\ + "..\..\..\pjlib\include\pj\pool.h"\ + "..\..\..\pjlib\include\pj\pool_alt.h"\ + "..\..\..\pjlib\include\pj\pool_buf.h"\ + "..\..\..\pjlib\include\pj\pool_i.h"\ + "..\..\..\pjlib\include\pj\rand.h"\ + "..\..\..\pjlib\include\pj\rbtree.h"\ + "..\..\..\pjlib\include\pj\sock.h"\ + "..\..\..\pjlib\include\pj\sock_select.h"\ + "..\..\..\pjlib\include\pj\string.h"\ + "..\..\..\pjlib\include\pj\string_i.h"\ + "..\..\..\pjlib\include\pj\timer.h"\ + "..\..\..\pjlib\include\pj\types.h"\ + "..\..\..\pjlib\include\pj\unicode.h"\ + "..\..\..\pjlib\include\pjlib.h"\ + "..\..\..\pjmedia\include\pjmedia\config.h"\ + "..\..\..\pjmedia\include\pjmedia\sdp.h"\ + "..\..\..\pjmedia\include\pjmedia\sdp_neg.h"\ + "..\..\..\pjmedia\include\pjmedia\types.h"\ + "..\..\include\pjsip-ua\sip_inv.h"\ + "..\..\include\pjsip-ua\sip_replaces.h"\ + "..\..\include\pjsip\print_util.h"\ + "..\..\include\pjsip\sip_auth.h"\ + "..\..\include\pjsip\sip_auth_msg.h"\ + "..\..\include\pjsip\sip_config.h"\ + "..\..\include\pjsip\sip_dialog.h"\ + "..\..\include\pjsip\sip_endpoint.h"\ + "..\..\include\pjsip\sip_errno.h"\ + "..\..\include\pjsip\sip_msg.h"\ + "..\..\include\pjsip\sip_parser.h"\ + "..\..\include\pjsip\sip_resolve.h"\ + "..\..\include\pjsip\sip_transport.h"\ + "..\..\include\pjsip\sip_types.h"\ + "..\..\include\pjsip\sip_ua_layer.h"\ + "..\..\include\pjsip\sip_uri.h"\ + "..\..\include\pjsip\sip_util.h"\ + + +!ELSEIF "$(CFG)" == "pjsip_ua_wince - Win32 (WCE SH4) Release" + +DEP_CPP_SIP_RE=\ + "..\..\..\pjlib-util\include\pjlib-util\config.h"\ + "..\..\..\pjlib-util\include\pjlib-util\dns.h"\ + "..\..\..\pjlib-util\include\pjlib-util\resolver.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner_cis_bitwise.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner_cis_uint.h"\ + "..\..\..\pjlib-util\include\pjlib-util\types.h"\ + "..\..\..\pjlib\include\pj\addr_resolv.h"\ + "..\..\..\pjlib\include\pj\array.h"\ + "..\..\..\pjlib\include\pj\assert.h"\ + "..\..\..\pjlib\include\pj\compat\assert.h"\ + "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ + "..\..\..\pjlib\include\pj\compat\ctype.h"\ + "..\..\..\pjlib\include\pj\compat\errno.h"\ + "..\..\..\pjlib\include\pj\compat\high_precision.h"\ + "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ + "..\..\..\pjlib\include\pj\compat\os_linux.h"\ + "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ + "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ + "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ + "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ + "..\..\..\pjlib\include\pj\compat\os_win32.h"\ + "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ + "..\..\..\pjlib\include\pj\compat\setjmp.h"\ + "..\..\..\pjlib\include\pj\compat\size_t.h"\ + "..\..\..\pjlib\include\pj\compat\string.h"\ + "..\..\..\pjlib\include\pj\config.h"\ + "..\..\..\pjlib\include\pj\config_site.h"\ + "..\..\..\pjlib\include\pj\config_site_sample.h"\ + "..\..\..\pjlib\include\pj\ctype.h"\ + "..\..\..\pjlib\include\pj\errno.h"\ + "..\..\..\pjlib\include\pj\except.h"\ + "..\..\..\pjlib\include\pj\fifobuf.h"\ + "..\..\..\pjlib\include\pj\file_access.h"\ + "..\..\..\pjlib\include\pj\file_io.h"\ + "..\..\..\pjlib\include\pj\guid.h"\ + "..\..\..\pjlib\include\pj\hash.h"\ + "..\..\..\pjlib\include\pj\ioqueue.h"\ + "..\..\..\pjlib\include\pj\list.h"\ + "..\..\..\pjlib\include\pj\list_i.h"\ + "..\..\..\pjlib\include\pj\lock.h"\ + "..\..\..\pjlib\include\pj\log.h"\ + "..\..\..\pjlib\include\pj\os.h"\ + "..\..\..\pjlib\include\pj\pool.h"\ + "..\..\..\pjlib\include\pj\pool_alt.h"\ + "..\..\..\pjlib\include\pj\pool_buf.h"\ + "..\..\..\pjlib\include\pj\pool_i.h"\ + "..\..\..\pjlib\include\pj\rand.h"\ + "..\..\..\pjlib\include\pj\rbtree.h"\ + "..\..\..\pjlib\include\pj\sock.h"\ + "..\..\..\pjlib\include\pj\sock_select.h"\ + "..\..\..\pjlib\include\pj\string.h"\ + "..\..\..\pjlib\include\pj\string_i.h"\ + "..\..\..\pjlib\include\pj\timer.h"\ + "..\..\..\pjlib\include\pj\types.h"\ + "..\..\..\pjlib\include\pj\unicode.h"\ + "..\..\..\pjlib\include\pjlib.h"\ + "..\..\..\pjmedia\include\pjmedia\config.h"\ + "..\..\..\pjmedia\include\pjmedia\sdp.h"\ + "..\..\..\pjmedia\include\pjmedia\sdp_neg.h"\ + "..\..\..\pjmedia\include\pjmedia\types.h"\ + "..\..\include\pjsip-ua\sip_inv.h"\ + "..\..\include\pjsip-ua\sip_replaces.h"\ + "..\..\include\pjsip\print_util.h"\ + "..\..\include\pjsip\sip_auth.h"\ + "..\..\include\pjsip\sip_auth_msg.h"\ + "..\..\include\pjsip\sip_config.h"\ + "..\..\include\pjsip\sip_dialog.h"\ + "..\..\include\pjsip\sip_endpoint.h"\ + "..\..\include\pjsip\sip_errno.h"\ + "..\..\include\pjsip\sip_msg.h"\ + "..\..\include\pjsip\sip_parser.h"\ + "..\..\include\pjsip\sip_resolve.h"\ + "..\..\include\pjsip\sip_transport.h"\ + "..\..\include\pjsip\sip_types.h"\ + "..\..\include\pjsip\sip_ua_layer.h"\ + "..\..\include\pjsip\sip_uri.h"\ + "..\..\include\pjsip\sip_util.h"\ + + +!ELSEIF "$(CFG)" == "pjsip_ua_wince - Win32 (WCE SH4) Debug" + +DEP_CPP_SIP_RE=\ + "..\..\..\pjlib-util\include\pjlib-util\config.h"\ + "..\..\..\pjlib-util\include\pjlib-util\dns.h"\ + "..\..\..\pjlib-util\include\pjlib-util\resolver.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner_cis_bitwise.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner_cis_uint.h"\ + "..\..\..\pjlib-util\include\pjlib-util\types.h"\ + "..\..\..\pjlib\include\pj\addr_resolv.h"\ + "..\..\..\pjlib\include\pj\array.h"\ + "..\..\..\pjlib\include\pj\assert.h"\ + "..\..\..\pjlib\include\pj\compat\assert.h"\ + "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ + "..\..\..\pjlib\include\pj\compat\ctype.h"\ + "..\..\..\pjlib\include\pj\compat\errno.h"\ + "..\..\..\pjlib\include\pj\compat\high_precision.h"\ + "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ + "..\..\..\pjlib\include\pj\compat\os_linux.h"\ + "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ + "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ + "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ + "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ + "..\..\..\pjlib\include\pj\compat\os_win32.h"\ + "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ + "..\..\..\pjlib\include\pj\compat\setjmp.h"\ + "..\..\..\pjlib\include\pj\compat\size_t.h"\ + "..\..\..\pjlib\include\pj\compat\string.h"\ + "..\..\..\pjlib\include\pj\config.h"\ + "..\..\..\pjlib\include\pj\config_site.h"\ + "..\..\..\pjlib\include\pj\config_site_sample.h"\ + "..\..\..\pjlib\include\pj\ctype.h"\ + "..\..\..\pjlib\include\pj\errno.h"\ + "..\..\..\pjlib\include\pj\except.h"\ + "..\..\..\pjlib\include\pj\fifobuf.h"\ + "..\..\..\pjlib\include\pj\file_access.h"\ + "..\..\..\pjlib\include\pj\file_io.h"\ + "..\..\..\pjlib\include\pj\guid.h"\ + "..\..\..\pjlib\include\pj\hash.h"\ + "..\..\..\pjlib\include\pj\ioqueue.h"\ + "..\..\..\pjlib\include\pj\list.h"\ + "..\..\..\pjlib\include\pj\list_i.h"\ + "..\..\..\pjlib\include\pj\lock.h"\ + "..\..\..\pjlib\include\pj\log.h"\ + "..\..\..\pjlib\include\pj\os.h"\ + "..\..\..\pjlib\include\pj\pool.h"\ + "..\..\..\pjlib\include\pj\pool_alt.h"\ + "..\..\..\pjlib\include\pj\pool_buf.h"\ + "..\..\..\pjlib\include\pj\pool_i.h"\ + "..\..\..\pjlib\include\pj\rand.h"\ + "..\..\..\pjlib\include\pj\rbtree.h"\ + "..\..\..\pjlib\include\pj\sock.h"\ + "..\..\..\pjlib\include\pj\sock_select.h"\ + "..\..\..\pjlib\include\pj\string.h"\ + "..\..\..\pjlib\include\pj\string_i.h"\ + "..\..\..\pjlib\include\pj\timer.h"\ + "..\..\..\pjlib\include\pj\types.h"\ + "..\..\..\pjlib\include\pj\unicode.h"\ + "..\..\..\pjlib\include\pjlib.h"\ + "..\..\..\pjmedia\include\pjmedia\config.h"\ + "..\..\..\pjmedia\include\pjmedia\sdp.h"\ + "..\..\..\pjmedia\include\pjmedia\sdp_neg.h"\ + "..\..\..\pjmedia\include\pjmedia\types.h"\ + "..\..\include\pjsip-ua\sip_inv.h"\ + "..\..\include\pjsip-ua\sip_replaces.h"\ + "..\..\include\pjsip\print_util.h"\ + "..\..\include\pjsip\sip_auth.h"\ + "..\..\include\pjsip\sip_auth_msg.h"\ + "..\..\include\pjsip\sip_config.h"\ + "..\..\include\pjsip\sip_dialog.h"\ + "..\..\include\pjsip\sip_endpoint.h"\ + "..\..\include\pjsip\sip_errno.h"\ + "..\..\include\pjsip\sip_msg.h"\ + "..\..\include\pjsip\sip_parser.h"\ + "..\..\include\pjsip\sip_resolve.h"\ + "..\..\include\pjsip\sip_transport.h"\ + "..\..\include\pjsip\sip_types.h"\ + "..\..\include\pjsip\sip_ua_layer.h"\ + "..\..\include\pjsip\sip_uri.h"\ + "..\..\include\pjsip\sip_util.h"\ + + +!ELSEIF "$(CFG)" == "pjsip_ua_wince - Win32 (WCE SH3) Release" + +DEP_CPP_SIP_RE=\ + "..\..\..\pjlib-util\include\pjlib-util\config.h"\ + "..\..\..\pjlib-util\include\pjlib-util\dns.h"\ + "..\..\..\pjlib-util\include\pjlib-util\resolver.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner_cis_bitwise.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner_cis_uint.h"\ + "..\..\..\pjlib-util\include\pjlib-util\types.h"\ + "..\..\..\pjlib\include\pj\addr_resolv.h"\ + "..\..\..\pjlib\include\pj\array.h"\ + "..\..\..\pjlib\include\pj\assert.h"\ + "..\..\..\pjlib\include\pj\compat\assert.h"\ + "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ + "..\..\..\pjlib\include\pj\compat\ctype.h"\ + "..\..\..\pjlib\include\pj\compat\errno.h"\ + "..\..\..\pjlib\include\pj\compat\high_precision.h"\ + "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ + "..\..\..\pjlib\include\pj\compat\os_linux.h"\ + "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ + "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ + "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ + "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ + "..\..\..\pjlib\include\pj\compat\os_win32.h"\ + "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ + "..\..\..\pjlib\include\pj\compat\setjmp.h"\ + "..\..\..\pjlib\include\pj\compat\size_t.h"\ + "..\..\..\pjlib\include\pj\compat\string.h"\ + "..\..\..\pjlib\include\pj\config.h"\ + "..\..\..\pjlib\include\pj\config_site.h"\ + "..\..\..\pjlib\include\pj\config_site_sample.h"\ + "..\..\..\pjlib\include\pj\ctype.h"\ + "..\..\..\pjlib\include\pj\errno.h"\ + "..\..\..\pjlib\include\pj\except.h"\ + "..\..\..\pjlib\include\pj\fifobuf.h"\ + "..\..\..\pjlib\include\pj\file_access.h"\ + "..\..\..\pjlib\include\pj\file_io.h"\ + "..\..\..\pjlib\include\pj\guid.h"\ + "..\..\..\pjlib\include\pj\hash.h"\ + "..\..\..\pjlib\include\pj\ioqueue.h"\ + "..\..\..\pjlib\include\pj\list.h"\ + "..\..\..\pjlib\include\pj\list_i.h"\ + "..\..\..\pjlib\include\pj\lock.h"\ + "..\..\..\pjlib\include\pj\log.h"\ + "..\..\..\pjlib\include\pj\os.h"\ + "..\..\..\pjlib\include\pj\pool.h"\ + "..\..\..\pjlib\include\pj\pool_alt.h"\ + "..\..\..\pjlib\include\pj\pool_buf.h"\ + "..\..\..\pjlib\include\pj\pool_i.h"\ + "..\..\..\pjlib\include\pj\rand.h"\ + "..\..\..\pjlib\include\pj\rbtree.h"\ + "..\..\..\pjlib\include\pj\sock.h"\ + "..\..\..\pjlib\include\pj\sock_select.h"\ + "..\..\..\pjlib\include\pj\string.h"\ + "..\..\..\pjlib\include\pj\string_i.h"\ + "..\..\..\pjlib\include\pj\timer.h"\ + "..\..\..\pjlib\include\pj\types.h"\ + "..\..\..\pjlib\include\pj\unicode.h"\ + "..\..\..\pjlib\include\pjlib.h"\ + "..\..\..\pjmedia\include\pjmedia\config.h"\ + "..\..\..\pjmedia\include\pjmedia\sdp.h"\ + "..\..\..\pjmedia\include\pjmedia\sdp_neg.h"\ + "..\..\..\pjmedia\include\pjmedia\types.h"\ + "..\..\include\pjsip-ua\sip_inv.h"\ + "..\..\include\pjsip-ua\sip_replaces.h"\ + "..\..\include\pjsip\print_util.h"\ + "..\..\include\pjsip\sip_auth.h"\ + "..\..\include\pjsip\sip_auth_msg.h"\ + "..\..\include\pjsip\sip_config.h"\ + "..\..\include\pjsip\sip_dialog.h"\ + "..\..\include\pjsip\sip_endpoint.h"\ + "..\..\include\pjsip\sip_errno.h"\ + "..\..\include\pjsip\sip_msg.h"\ + "..\..\include\pjsip\sip_parser.h"\ + "..\..\include\pjsip\sip_resolve.h"\ + "..\..\include\pjsip\sip_transport.h"\ + "..\..\include\pjsip\sip_types.h"\ + "..\..\include\pjsip\sip_ua_layer.h"\ + "..\..\include\pjsip\sip_uri.h"\ + "..\..\include\pjsip\sip_util.h"\ + + +!ELSEIF "$(CFG)" == "pjsip_ua_wince - Win32 (WCE SH3) Debug" + +DEP_CPP_SIP_RE=\ + "..\..\..\pjlib-util\include\pjlib-util\config.h"\ + "..\..\..\pjlib-util\include\pjlib-util\dns.h"\ + "..\..\..\pjlib-util\include\pjlib-util\resolver.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner_cis_bitwise.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner_cis_uint.h"\ + "..\..\..\pjlib-util\include\pjlib-util\types.h"\ + "..\..\..\pjlib\include\pj\addr_resolv.h"\ + "..\..\..\pjlib\include\pj\array.h"\ + "..\..\..\pjlib\include\pj\assert.h"\ + "..\..\..\pjlib\include\pj\compat\assert.h"\ + "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ + "..\..\..\pjlib\include\pj\compat\ctype.h"\ + "..\..\..\pjlib\include\pj\compat\errno.h"\ + "..\..\..\pjlib\include\pj\compat\high_precision.h"\ + "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ + "..\..\..\pjlib\include\pj\compat\os_linux.h"\ + "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ + "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ + "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ + "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ + "..\..\..\pjlib\include\pj\compat\os_win32.h"\ + "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ + "..\..\..\pjlib\include\pj\compat\setjmp.h"\ + "..\..\..\pjlib\include\pj\compat\size_t.h"\ + "..\..\..\pjlib\include\pj\compat\string.h"\ + "..\..\..\pjlib\include\pj\config.h"\ + "..\..\..\pjlib\include\pj\config_site.h"\ + "..\..\..\pjlib\include\pj\config_site_sample.h"\ + "..\..\..\pjlib\include\pj\ctype.h"\ + "..\..\..\pjlib\include\pj\errno.h"\ + "..\..\..\pjlib\include\pj\except.h"\ + "..\..\..\pjlib\include\pj\fifobuf.h"\ + "..\..\..\pjlib\include\pj\file_access.h"\ + "..\..\..\pjlib\include\pj\file_io.h"\ + "..\..\..\pjlib\include\pj\guid.h"\ + "..\..\..\pjlib\include\pj\hash.h"\ + "..\..\..\pjlib\include\pj\ioqueue.h"\ + "..\..\..\pjlib\include\pj\list.h"\ + "..\..\..\pjlib\include\pj\list_i.h"\ + "..\..\..\pjlib\include\pj\lock.h"\ + "..\..\..\pjlib\include\pj\log.h"\ + "..\..\..\pjlib\include\pj\os.h"\ + "..\..\..\pjlib\include\pj\pool.h"\ + "..\..\..\pjlib\include\pj\pool_alt.h"\ + "..\..\..\pjlib\include\pj\pool_buf.h"\ + "..\..\..\pjlib\include\pj\pool_i.h"\ + "..\..\..\pjlib\include\pj\rand.h"\ + "..\..\..\pjlib\include\pj\rbtree.h"\ + "..\..\..\pjlib\include\pj\sock.h"\ + "..\..\..\pjlib\include\pj\sock_select.h"\ + "..\..\..\pjlib\include\pj\string.h"\ + "..\..\..\pjlib\include\pj\string_i.h"\ + "..\..\..\pjlib\include\pj\timer.h"\ + "..\..\..\pjlib\include\pj\types.h"\ + "..\..\..\pjlib\include\pj\unicode.h"\ + "..\..\..\pjlib\include\pjlib.h"\ + "..\..\..\pjmedia\include\pjmedia\config.h"\ + "..\..\..\pjmedia\include\pjmedia\sdp.h"\ + "..\..\..\pjmedia\include\pjmedia\sdp_neg.h"\ + "..\..\..\pjmedia\include\pjmedia\types.h"\ + "..\..\include\pjsip-ua\sip_inv.h"\ + "..\..\include\pjsip-ua\sip_replaces.h"\ + "..\..\include\pjsip\print_util.h"\ + "..\..\include\pjsip\sip_auth.h"\ + "..\..\include\pjsip\sip_auth_msg.h"\ + "..\..\include\pjsip\sip_config.h"\ + "..\..\include\pjsip\sip_dialog.h"\ + "..\..\include\pjsip\sip_endpoint.h"\ + "..\..\include\pjsip\sip_errno.h"\ + "..\..\include\pjsip\sip_msg.h"\ + "..\..\include\pjsip\sip_parser.h"\ + "..\..\include\pjsip\sip_resolve.h"\ + "..\..\include\pjsip\sip_transport.h"\ + "..\..\include\pjsip\sip_types.h"\ + "..\..\include\pjsip\sip_ua_layer.h"\ + "..\..\include\pjsip\sip_uri.h"\ + "..\..\include\pjsip\sip_util.h"\ + + +!ELSEIF "$(CFG)" == "pjsip_ua_wince - Win32 (WCE MIPSIV) Release" + +DEP_CPP_SIP_RE=\ + "..\..\..\pjlib-util\include\pjlib-util\config.h"\ + "..\..\..\pjlib-util\include\pjlib-util\dns.h"\ + "..\..\..\pjlib-util\include\pjlib-util\resolver.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner_cis_bitwise.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner_cis_uint.h"\ + "..\..\..\pjlib-util\include\pjlib-util\types.h"\ + "..\..\..\pjlib\include\pj\addr_resolv.h"\ + "..\..\..\pjlib\include\pj\array.h"\ + "..\..\..\pjlib\include\pj\assert.h"\ + "..\..\..\pjlib\include\pj\compat\assert.h"\ + "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ + "..\..\..\pjlib\include\pj\compat\ctype.h"\ + "..\..\..\pjlib\include\pj\compat\errno.h"\ + "..\..\..\pjlib\include\pj\compat\high_precision.h"\ + "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ + "..\..\..\pjlib\include\pj\compat\os_linux.h"\ + "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ + "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ + "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ + "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ + "..\..\..\pjlib\include\pj\compat\os_win32.h"\ + "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ + "..\..\..\pjlib\include\pj\compat\setjmp.h"\ + "..\..\..\pjlib\include\pj\compat\size_t.h"\ + "..\..\..\pjlib\include\pj\compat\string.h"\ + "..\..\..\pjlib\include\pj\config.h"\ + "..\..\..\pjlib\include\pj\config_site.h"\ + "..\..\..\pjlib\include\pj\config_site_sample.h"\ + "..\..\..\pjlib\include\pj\ctype.h"\ + "..\..\..\pjlib\include\pj\errno.h"\ + "..\..\..\pjlib\include\pj\except.h"\ + "..\..\..\pjlib\include\pj\fifobuf.h"\ + "..\..\..\pjlib\include\pj\file_access.h"\ + "..\..\..\pjlib\include\pj\file_io.h"\ + "..\..\..\pjlib\include\pj\guid.h"\ + "..\..\..\pjlib\include\pj\hash.h"\ + "..\..\..\pjlib\include\pj\ioqueue.h"\ + "..\..\..\pjlib\include\pj\list.h"\ + "..\..\..\pjlib\include\pj\list_i.h"\ + "..\..\..\pjlib\include\pj\lock.h"\ + "..\..\..\pjlib\include\pj\log.h"\ + "..\..\..\pjlib\include\pj\os.h"\ + "..\..\..\pjlib\include\pj\pool.h"\ + "..\..\..\pjlib\include\pj\pool_alt.h"\ + "..\..\..\pjlib\include\pj\pool_buf.h"\ + "..\..\..\pjlib\include\pj\pool_i.h"\ + "..\..\..\pjlib\include\pj\rand.h"\ + "..\..\..\pjlib\include\pj\rbtree.h"\ + "..\..\..\pjlib\include\pj\sock.h"\ + "..\..\..\pjlib\include\pj\sock_select.h"\ + "..\..\..\pjlib\include\pj\string.h"\ + "..\..\..\pjlib\include\pj\string_i.h"\ + "..\..\..\pjlib\include\pj\timer.h"\ + "..\..\..\pjlib\include\pj\types.h"\ + "..\..\..\pjlib\include\pj\unicode.h"\ + "..\..\..\pjlib\include\pjlib.h"\ + "..\..\..\pjmedia\include\pjmedia\config.h"\ + "..\..\..\pjmedia\include\pjmedia\sdp.h"\ + "..\..\..\pjmedia\include\pjmedia\sdp_neg.h"\ + "..\..\..\pjmedia\include\pjmedia\types.h"\ + "..\..\include\pjsip-ua\sip_inv.h"\ + "..\..\include\pjsip-ua\sip_replaces.h"\ + "..\..\include\pjsip\print_util.h"\ + "..\..\include\pjsip\sip_auth.h"\ + "..\..\include\pjsip\sip_auth_msg.h"\ + "..\..\include\pjsip\sip_config.h"\ + "..\..\include\pjsip\sip_dialog.h"\ + "..\..\include\pjsip\sip_endpoint.h"\ + "..\..\include\pjsip\sip_errno.h"\ + "..\..\include\pjsip\sip_msg.h"\ + "..\..\include\pjsip\sip_parser.h"\ + "..\..\include\pjsip\sip_resolve.h"\ + "..\..\include\pjsip\sip_transport.h"\ + "..\..\include\pjsip\sip_types.h"\ + "..\..\include\pjsip\sip_ua_layer.h"\ + "..\..\include\pjsip\sip_uri.h"\ + "..\..\include\pjsip\sip_util.h"\ + + +!ELSEIF "$(CFG)" == "pjsip_ua_wince - Win32 (WCE MIPSIV) Debug" + +DEP_CPP_SIP_RE=\ + "..\..\..\pjlib-util\include\pjlib-util\config.h"\ + "..\..\..\pjlib-util\include\pjlib-util\dns.h"\ + "..\..\..\pjlib-util\include\pjlib-util\resolver.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner_cis_bitwise.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner_cis_uint.h"\ + "..\..\..\pjlib-util\include\pjlib-util\types.h"\ + "..\..\..\pjlib\include\pj\addr_resolv.h"\ + "..\..\..\pjlib\include\pj\array.h"\ + "..\..\..\pjlib\include\pj\assert.h"\ + "..\..\..\pjlib\include\pj\compat\assert.h"\ + "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ + "..\..\..\pjlib\include\pj\compat\ctype.h"\ + "..\..\..\pjlib\include\pj\compat\errno.h"\ + "..\..\..\pjlib\include\pj\compat\high_precision.h"\ + "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ + "..\..\..\pjlib\include\pj\compat\os_linux.h"\ + "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ + "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ + "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ + "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ + "..\..\..\pjlib\include\pj\compat\os_win32.h"\ + "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ + "..\..\..\pjlib\include\pj\compat\setjmp.h"\ + "..\..\..\pjlib\include\pj\compat\size_t.h"\ + "..\..\..\pjlib\include\pj\compat\string.h"\ + "..\..\..\pjlib\include\pj\config.h"\ + "..\..\..\pjlib\include\pj\config_site.h"\ + "..\..\..\pjlib\include\pj\config_site_sample.h"\ + "..\..\..\pjlib\include\pj\ctype.h"\ + "..\..\..\pjlib\include\pj\errno.h"\ + "..\..\..\pjlib\include\pj\except.h"\ + "..\..\..\pjlib\include\pj\fifobuf.h"\ + "..\..\..\pjlib\include\pj\file_access.h"\ + "..\..\..\pjlib\include\pj\file_io.h"\ + "..\..\..\pjlib\include\pj\guid.h"\ + "..\..\..\pjlib\include\pj\hash.h"\ + "..\..\..\pjlib\include\pj\ioqueue.h"\ + "..\..\..\pjlib\include\pj\list.h"\ + "..\..\..\pjlib\include\pj\list_i.h"\ + "..\..\..\pjlib\include\pj\lock.h"\ + "..\..\..\pjlib\include\pj\log.h"\ + "..\..\..\pjlib\include\pj\os.h"\ + "..\..\..\pjlib\include\pj\pool.h"\ + "..\..\..\pjlib\include\pj\pool_alt.h"\ + "..\..\..\pjlib\include\pj\pool_buf.h"\ + "..\..\..\pjlib\include\pj\pool_i.h"\ + "..\..\..\pjlib\include\pj\rand.h"\ + "..\..\..\pjlib\include\pj\rbtree.h"\ + "..\..\..\pjlib\include\pj\sock.h"\ + "..\..\..\pjlib\include\pj\sock_select.h"\ + "..\..\..\pjlib\include\pj\string.h"\ + "..\..\..\pjlib\include\pj\string_i.h"\ + "..\..\..\pjlib\include\pj\timer.h"\ + "..\..\..\pjlib\include\pj\types.h"\ + "..\..\..\pjlib\include\pj\unicode.h"\ + "..\..\..\pjlib\include\pjlib.h"\ + "..\..\..\pjmedia\include\pjmedia\config.h"\ + "..\..\..\pjmedia\include\pjmedia\sdp.h"\ + "..\..\..\pjmedia\include\pjmedia\sdp_neg.h"\ + "..\..\..\pjmedia\include\pjmedia\types.h"\ + "..\..\include\pjsip-ua\sip_inv.h"\ + "..\..\include\pjsip-ua\sip_replaces.h"\ + "..\..\include\pjsip\print_util.h"\ + "..\..\include\pjsip\sip_auth.h"\ + "..\..\include\pjsip\sip_auth_msg.h"\ + "..\..\include\pjsip\sip_config.h"\ + "..\..\include\pjsip\sip_dialog.h"\ + "..\..\include\pjsip\sip_endpoint.h"\ + "..\..\include\pjsip\sip_errno.h"\ + "..\..\include\pjsip\sip_msg.h"\ + "..\..\include\pjsip\sip_parser.h"\ + "..\..\include\pjsip\sip_resolve.h"\ + "..\..\include\pjsip\sip_transport.h"\ + "..\..\include\pjsip\sip_types.h"\ + "..\..\include\pjsip\sip_ua_layer.h"\ + "..\..\include\pjsip\sip_uri.h"\ + "..\..\include\pjsip\sip_util.h"\ + + +!ELSEIF "$(CFG)" == "pjsip_ua_wince - Win32 (WCE emulator) Release" + +DEP_CPP_SIP_RE=\ + "..\..\..\pjlib-util\include\pjlib-util\config.h"\ + "..\..\..\pjlib-util\include\pjlib-util\dns.h"\ + "..\..\..\pjlib-util\include\pjlib-util\resolver.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner_cis_bitwise.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner_cis_uint.h"\ + "..\..\..\pjlib-util\include\pjlib-util\types.h"\ + "..\..\..\pjlib\include\pj\addr_resolv.h"\ + "..\..\..\pjlib\include\pj\array.h"\ + "..\..\..\pjlib\include\pj\assert.h"\ + "..\..\..\pjlib\include\pj\compat\assert.h"\ + "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ + "..\..\..\pjlib\include\pj\compat\ctype.h"\ + "..\..\..\pjlib\include\pj\compat\errno.h"\ + "..\..\..\pjlib\include\pj\compat\high_precision.h"\ + "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ + "..\..\..\pjlib\include\pj\compat\os_linux.h"\ + "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ + "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ + "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ + "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ + "..\..\..\pjlib\include\pj\compat\os_win32.h"\ + "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ + "..\..\..\pjlib\include\pj\compat\setjmp.h"\ + "..\..\..\pjlib\include\pj\compat\size_t.h"\ + "..\..\..\pjlib\include\pj\compat\string.h"\ + "..\..\..\pjlib\include\pj\config.h"\ + "..\..\..\pjlib\include\pj\config_site.h"\ + "..\..\..\pjlib\include\pj\config_site_sample.h"\ + "..\..\..\pjlib\include\pj\ctype.h"\ + "..\..\..\pjlib\include\pj\errno.h"\ + "..\..\..\pjlib\include\pj\except.h"\ + "..\..\..\pjlib\include\pj\fifobuf.h"\ + "..\..\..\pjlib\include\pj\file_access.h"\ + "..\..\..\pjlib\include\pj\file_io.h"\ + "..\..\..\pjlib\include\pj\guid.h"\ + "..\..\..\pjlib\include\pj\hash.h"\ + "..\..\..\pjlib\include\pj\ioqueue.h"\ + "..\..\..\pjlib\include\pj\list.h"\ + "..\..\..\pjlib\include\pj\list_i.h"\ + "..\..\..\pjlib\include\pj\lock.h"\ + "..\..\..\pjlib\include\pj\log.h"\ + "..\..\..\pjlib\include\pj\os.h"\ + "..\..\..\pjlib\include\pj\pool.h"\ + "..\..\..\pjlib\include\pj\pool_alt.h"\ + "..\..\..\pjlib\include\pj\pool_buf.h"\ + "..\..\..\pjlib\include\pj\pool_i.h"\ + "..\..\..\pjlib\include\pj\rand.h"\ + "..\..\..\pjlib\include\pj\rbtree.h"\ + "..\..\..\pjlib\include\pj\sock.h"\ + "..\..\..\pjlib\include\pj\sock_select.h"\ + "..\..\..\pjlib\include\pj\string.h"\ + "..\..\..\pjlib\include\pj\string_i.h"\ + "..\..\..\pjlib\include\pj\timer.h"\ + "..\..\..\pjlib\include\pj\types.h"\ + "..\..\..\pjlib\include\pj\unicode.h"\ + "..\..\..\pjlib\include\pjlib.h"\ + "..\..\..\pjmedia\include\pjmedia\config.h"\ + "..\..\..\pjmedia\include\pjmedia\sdp.h"\ + "..\..\..\pjmedia\include\pjmedia\sdp_neg.h"\ + "..\..\..\pjmedia\include\pjmedia\types.h"\ + "..\..\include\pjsip-ua\sip_inv.h"\ + "..\..\include\pjsip-ua\sip_replaces.h"\ + "..\..\include\pjsip\print_util.h"\ + "..\..\include\pjsip\sip_auth.h"\ + "..\..\include\pjsip\sip_auth_msg.h"\ + "..\..\include\pjsip\sip_config.h"\ + "..\..\include\pjsip\sip_dialog.h"\ + "..\..\include\pjsip\sip_endpoint.h"\ + "..\..\include\pjsip\sip_errno.h"\ + "..\..\include\pjsip\sip_msg.h"\ + "..\..\include\pjsip\sip_parser.h"\ + "..\..\include\pjsip\sip_resolve.h"\ + "..\..\include\pjsip\sip_transport.h"\ + "..\..\include\pjsip\sip_types.h"\ + "..\..\include\pjsip\sip_ua_layer.h"\ + "..\..\include\pjsip\sip_uri.h"\ + "..\..\include\pjsip\sip_util.h"\ + + +!ELSEIF "$(CFG)" == "pjsip_ua_wince - Win32 (WCE emulator) Debug" + +DEP_CPP_SIP_RE=\ + "..\..\..\pjlib-util\include\pjlib-util\config.h"\ + "..\..\..\pjlib-util\include\pjlib-util\dns.h"\ + "..\..\..\pjlib-util\include\pjlib-util\resolver.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner_cis_bitwise.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner_cis_uint.h"\ + "..\..\..\pjlib-util\include\pjlib-util\types.h"\ + "..\..\..\pjlib\include\pj\addr_resolv.h"\ + "..\..\..\pjlib\include\pj\array.h"\ + "..\..\..\pjlib\include\pj\assert.h"\ + "..\..\..\pjlib\include\pj\compat\assert.h"\ + "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ + "..\..\..\pjlib\include\pj\compat\ctype.h"\ + "..\..\..\pjlib\include\pj\compat\errno.h"\ + "..\..\..\pjlib\include\pj\compat\high_precision.h"\ + "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ + "..\..\..\pjlib\include\pj\compat\os_linux.h"\ + "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ + "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ + "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ + "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ + "..\..\..\pjlib\include\pj\compat\os_win32.h"\ + "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ + "..\..\..\pjlib\include\pj\compat\setjmp.h"\ + "..\..\..\pjlib\include\pj\compat\size_t.h"\ + "..\..\..\pjlib\include\pj\compat\string.h"\ + "..\..\..\pjlib\include\pj\config.h"\ + "..\..\..\pjlib\include\pj\config_site.h"\ + "..\..\..\pjlib\include\pj\config_site_sample.h"\ + "..\..\..\pjlib\include\pj\ctype.h"\ + "..\..\..\pjlib\include\pj\errno.h"\ + "..\..\..\pjlib\include\pj\except.h"\ + "..\..\..\pjlib\include\pj\fifobuf.h"\ + "..\..\..\pjlib\include\pj\file_access.h"\ + "..\..\..\pjlib\include\pj\file_io.h"\ + "..\..\..\pjlib\include\pj\guid.h"\ + "..\..\..\pjlib\include\pj\hash.h"\ + "..\..\..\pjlib\include\pj\ioqueue.h"\ + "..\..\..\pjlib\include\pj\list.h"\ + "..\..\..\pjlib\include\pj\list_i.h"\ + "..\..\..\pjlib\include\pj\lock.h"\ + "..\..\..\pjlib\include\pj\log.h"\ + "..\..\..\pjlib\include\pj\os.h"\ + "..\..\..\pjlib\include\pj\pool.h"\ + "..\..\..\pjlib\include\pj\pool_alt.h"\ + "..\..\..\pjlib\include\pj\pool_buf.h"\ + "..\..\..\pjlib\include\pj\pool_i.h"\ + "..\..\..\pjlib\include\pj\rand.h"\ + "..\..\..\pjlib\include\pj\rbtree.h"\ + "..\..\..\pjlib\include\pj\sock.h"\ + "..\..\..\pjlib\include\pj\sock_select.h"\ + "..\..\..\pjlib\include\pj\string.h"\ + "..\..\..\pjlib\include\pj\string_i.h"\ + "..\..\..\pjlib\include\pj\timer.h"\ + "..\..\..\pjlib\include\pj\types.h"\ + "..\..\..\pjlib\include\pj\unicode.h"\ + "..\..\..\pjlib\include\pjlib.h"\ + "..\..\..\pjmedia\include\pjmedia\config.h"\ + "..\..\..\pjmedia\include\pjmedia\sdp.h"\ + "..\..\..\pjmedia\include\pjmedia\sdp_neg.h"\ + "..\..\..\pjmedia\include\pjmedia\types.h"\ + "..\..\include\pjsip-ua\sip_inv.h"\ + "..\..\include\pjsip-ua\sip_replaces.h"\ + "..\..\include\pjsip\print_util.h"\ + "..\..\include\pjsip\sip_auth.h"\ + "..\..\include\pjsip\sip_auth_msg.h"\ + "..\..\include\pjsip\sip_config.h"\ + "..\..\include\pjsip\sip_dialog.h"\ + "..\..\include\pjsip\sip_endpoint.h"\ + "..\..\include\pjsip\sip_errno.h"\ + "..\..\include\pjsip\sip_msg.h"\ + "..\..\include\pjsip\sip_parser.h"\ + "..\..\include\pjsip\sip_resolve.h"\ + "..\..\include\pjsip\sip_transport.h"\ + "..\..\include\pjsip\sip_types.h"\ + "..\..\include\pjsip\sip_ua_layer.h"\ + "..\..\include\pjsip\sip_uri.h"\ + "..\..\include\pjsip\sip_util.h"\ + + +!ELSEIF "$(CFG)" == "pjsip_ua_wince - Win32 (WCE ARMV4I) Release" + +DEP_CPP_SIP_RE=\ + "..\..\..\pjlib-util\include\pjlib-util\config.h"\ + "..\..\..\pjlib-util\include\pjlib-util\dns.h"\ + "..\..\..\pjlib-util\include\pjlib-util\resolver.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner_cis_bitwise.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner_cis_uint.h"\ + "..\..\..\pjlib-util\include\pjlib-util\types.h"\ + "..\..\..\pjlib\include\pj\addr_resolv.h"\ + "..\..\..\pjlib\include\pj\array.h"\ + "..\..\..\pjlib\include\pj\assert.h"\ + "..\..\..\pjlib\include\pj\compat\assert.h"\ + "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ + "..\..\..\pjlib\include\pj\compat\ctype.h"\ + "..\..\..\pjlib\include\pj\compat\errno.h"\ + "..\..\..\pjlib\include\pj\compat\high_precision.h"\ + "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ + "..\..\..\pjlib\include\pj\compat\os_linux.h"\ + "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ + "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ + "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ + "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ + "..\..\..\pjlib\include\pj\compat\os_win32.h"\ + "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ + "..\..\..\pjlib\include\pj\compat\setjmp.h"\ + "..\..\..\pjlib\include\pj\compat\size_t.h"\ + "..\..\..\pjlib\include\pj\compat\string.h"\ + "..\..\..\pjlib\include\pj\config.h"\ + "..\..\..\pjlib\include\pj\config_site.h"\ + "..\..\..\pjlib\include\pj\config_site_sample.h"\ + "..\..\..\pjlib\include\pj\ctype.h"\ + "..\..\..\pjlib\include\pj\errno.h"\ + "..\..\..\pjlib\include\pj\except.h"\ + "..\..\..\pjlib\include\pj\fifobuf.h"\ + "..\..\..\pjlib\include\pj\file_access.h"\ + "..\..\..\pjlib\include\pj\file_io.h"\ + "..\..\..\pjlib\include\pj\guid.h"\ + "..\..\..\pjlib\include\pj\hash.h"\ + "..\..\..\pjlib\include\pj\ioqueue.h"\ + "..\..\..\pjlib\include\pj\list.h"\ + "..\..\..\pjlib\include\pj\list_i.h"\ + "..\..\..\pjlib\include\pj\lock.h"\ + "..\..\..\pjlib\include\pj\log.h"\ + "..\..\..\pjlib\include\pj\os.h"\ + "..\..\..\pjlib\include\pj\pool.h"\ + "..\..\..\pjlib\include\pj\pool_alt.h"\ + "..\..\..\pjlib\include\pj\pool_buf.h"\ + "..\..\..\pjlib\include\pj\pool_i.h"\ + "..\..\..\pjlib\include\pj\rand.h"\ + "..\..\..\pjlib\include\pj\rbtree.h"\ + "..\..\..\pjlib\include\pj\sock.h"\ + "..\..\..\pjlib\include\pj\sock_select.h"\ + "..\..\..\pjlib\include\pj\string.h"\ + "..\..\..\pjlib\include\pj\string_i.h"\ + "..\..\..\pjlib\include\pj\timer.h"\ + "..\..\..\pjlib\include\pj\types.h"\ + "..\..\..\pjlib\include\pj\unicode.h"\ + "..\..\..\pjlib\include\pjlib.h"\ + "..\..\..\pjmedia\include\pjmedia\config.h"\ + "..\..\..\pjmedia\include\pjmedia\sdp.h"\ + "..\..\..\pjmedia\include\pjmedia\sdp_neg.h"\ + "..\..\..\pjmedia\include\pjmedia\types.h"\ + "..\..\include\pjsip-ua\sip_inv.h"\ + "..\..\include\pjsip-ua\sip_replaces.h"\ + "..\..\include\pjsip\print_util.h"\ + "..\..\include\pjsip\sip_auth.h"\ + "..\..\include\pjsip\sip_auth_msg.h"\ + "..\..\include\pjsip\sip_config.h"\ + "..\..\include\pjsip\sip_dialog.h"\ + "..\..\include\pjsip\sip_endpoint.h"\ + "..\..\include\pjsip\sip_errno.h"\ + "..\..\include\pjsip\sip_msg.h"\ + "..\..\include\pjsip\sip_parser.h"\ + "..\..\include\pjsip\sip_resolve.h"\ + "..\..\include\pjsip\sip_transport.h"\ + "..\..\include\pjsip\sip_types.h"\ + "..\..\include\pjsip\sip_ua_layer.h"\ + "..\..\include\pjsip\sip_uri.h"\ + "..\..\include\pjsip\sip_util.h"\ + + +!ELSEIF "$(CFG)" == "pjsip_ua_wince - Win32 (WCE ARMV4I) Debug" + +DEP_CPP_SIP_RE=\ + "..\..\..\pjlib-util\include\pjlib-util\config.h"\ + "..\..\..\pjlib-util\include\pjlib-util\dns.h"\ + "..\..\..\pjlib-util\include\pjlib-util\resolver.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner_cis_bitwise.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner_cis_uint.h"\ + "..\..\..\pjlib-util\include\pjlib-util\types.h"\ + "..\..\..\pjlib\include\pj\addr_resolv.h"\ + "..\..\..\pjlib\include\pj\array.h"\ + "..\..\..\pjlib\include\pj\assert.h"\ + "..\..\..\pjlib\include\pj\compat\assert.h"\ + "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ + "..\..\..\pjlib\include\pj\compat\ctype.h"\ + "..\..\..\pjlib\include\pj\compat\errno.h"\ + "..\..\..\pjlib\include\pj\compat\high_precision.h"\ + "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ + "..\..\..\pjlib\include\pj\compat\os_linux.h"\ + "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ + "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ + "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ + "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ + "..\..\..\pjlib\include\pj\compat\os_win32.h"\ + "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ + "..\..\..\pjlib\include\pj\compat\setjmp.h"\ + "..\..\..\pjlib\include\pj\compat\size_t.h"\ + "..\..\..\pjlib\include\pj\compat\string.h"\ + "..\..\..\pjlib\include\pj\config.h"\ + "..\..\..\pjlib\include\pj\config_site.h"\ + "..\..\..\pjlib\include\pj\config_site_sample.h"\ + "..\..\..\pjlib\include\pj\ctype.h"\ + "..\..\..\pjlib\include\pj\errno.h"\ + "..\..\..\pjlib\include\pj\except.h"\ + "..\..\..\pjlib\include\pj\fifobuf.h"\ + "..\..\..\pjlib\include\pj\file_access.h"\ + "..\..\..\pjlib\include\pj\file_io.h"\ + "..\..\..\pjlib\include\pj\guid.h"\ + "..\..\..\pjlib\include\pj\hash.h"\ + "..\..\..\pjlib\include\pj\ioqueue.h"\ + "..\..\..\pjlib\include\pj\list.h"\ + "..\..\..\pjlib\include\pj\list_i.h"\ + "..\..\..\pjlib\include\pj\lock.h"\ + "..\..\..\pjlib\include\pj\log.h"\ + "..\..\..\pjlib\include\pj\os.h"\ + "..\..\..\pjlib\include\pj\pool.h"\ + "..\..\..\pjlib\include\pj\pool_alt.h"\ + "..\..\..\pjlib\include\pj\pool_buf.h"\ + "..\..\..\pjlib\include\pj\pool_i.h"\ + "..\..\..\pjlib\include\pj\rand.h"\ + "..\..\..\pjlib\include\pj\rbtree.h"\ + "..\..\..\pjlib\include\pj\sock.h"\ + "..\..\..\pjlib\include\pj\sock_select.h"\ + "..\..\..\pjlib\include\pj\string.h"\ + "..\..\..\pjlib\include\pj\string_i.h"\ + "..\..\..\pjlib\include\pj\timer.h"\ + "..\..\..\pjlib\include\pj\types.h"\ + "..\..\..\pjlib\include\pj\unicode.h"\ + "..\..\..\pjlib\include\pjlib.h"\ + "..\..\..\pjmedia\include\pjmedia\config.h"\ + "..\..\..\pjmedia\include\pjmedia\sdp.h"\ + "..\..\..\pjmedia\include\pjmedia\sdp_neg.h"\ + "..\..\..\pjmedia\include\pjmedia\types.h"\ + "..\..\include\pjsip-ua\sip_inv.h"\ + "..\..\include\pjsip-ua\sip_replaces.h"\ + "..\..\include\pjsip\print_util.h"\ + "..\..\include\pjsip\sip_auth.h"\ + "..\..\include\pjsip\sip_auth_msg.h"\ + "..\..\include\pjsip\sip_config.h"\ + "..\..\include\pjsip\sip_dialog.h"\ + "..\..\include\pjsip\sip_endpoint.h"\ + "..\..\include\pjsip\sip_errno.h"\ + "..\..\include\pjsip\sip_msg.h"\ + "..\..\include\pjsip\sip_parser.h"\ + "..\..\include\pjsip\sip_resolve.h"\ + "..\..\include\pjsip\sip_transport.h"\ + "..\..\include\pjsip\sip_types.h"\ + "..\..\include\pjsip\sip_ua_layer.h"\ + "..\..\include\pjsip\sip_uri.h"\ + "..\..\include\pjsip\sip_util.h"\ + + +!ELSEIF "$(CFG)" == "pjsip_ua_wince - Win32 (WCE MIPSIV_FP) Release" + +DEP_CPP_SIP_RE=\ + "..\..\..\pjlib-util\include\pjlib-util\config.h"\ + "..\..\..\pjlib-util\include\pjlib-util\dns.h"\ + "..\..\..\pjlib-util\include\pjlib-util\resolver.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner_cis_bitwise.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner_cis_uint.h"\ + "..\..\..\pjlib-util\include\pjlib-util\types.h"\ + "..\..\..\pjlib\include\pj\addr_resolv.h"\ + "..\..\..\pjlib\include\pj\array.h"\ + "..\..\..\pjlib\include\pj\assert.h"\ + "..\..\..\pjlib\include\pj\compat\assert.h"\ + "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ + "..\..\..\pjlib\include\pj\compat\ctype.h"\ + "..\..\..\pjlib\include\pj\compat\errno.h"\ + "..\..\..\pjlib\include\pj\compat\high_precision.h"\ + "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ + "..\..\..\pjlib\include\pj\compat\os_linux.h"\ + "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ + "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ + "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ + "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ + "..\..\..\pjlib\include\pj\compat\os_win32.h"\ + "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ + "..\..\..\pjlib\include\pj\compat\setjmp.h"\ + "..\..\..\pjlib\include\pj\compat\size_t.h"\ + "..\..\..\pjlib\include\pj\compat\string.h"\ + "..\..\..\pjlib\include\pj\config.h"\ + "..\..\..\pjlib\include\pj\config_site.h"\ + "..\..\..\pjlib\include\pj\config_site_sample.h"\ + "..\..\..\pjlib\include\pj\ctype.h"\ + "..\..\..\pjlib\include\pj\errno.h"\ + "..\..\..\pjlib\include\pj\except.h"\ + "..\..\..\pjlib\include\pj\fifobuf.h"\ + "..\..\..\pjlib\include\pj\file_access.h"\ + "..\..\..\pjlib\include\pj\file_io.h"\ + "..\..\..\pjlib\include\pj\guid.h"\ + "..\..\..\pjlib\include\pj\hash.h"\ + "..\..\..\pjlib\include\pj\ioqueue.h"\ + "..\..\..\pjlib\include\pj\list.h"\ + "..\..\..\pjlib\include\pj\list_i.h"\ + "..\..\..\pjlib\include\pj\lock.h"\ + "..\..\..\pjlib\include\pj\log.h"\ + "..\..\..\pjlib\include\pj\os.h"\ + "..\..\..\pjlib\include\pj\pool.h"\ + "..\..\..\pjlib\include\pj\pool_alt.h"\ + "..\..\..\pjlib\include\pj\pool_buf.h"\ + "..\..\..\pjlib\include\pj\pool_i.h"\ + "..\..\..\pjlib\include\pj\rand.h"\ + "..\..\..\pjlib\include\pj\rbtree.h"\ + "..\..\..\pjlib\include\pj\sock.h"\ + "..\..\..\pjlib\include\pj\sock_select.h"\ + "..\..\..\pjlib\include\pj\string.h"\ + "..\..\..\pjlib\include\pj\string_i.h"\ + "..\..\..\pjlib\include\pj\timer.h"\ + "..\..\..\pjlib\include\pj\types.h"\ + "..\..\..\pjlib\include\pj\unicode.h"\ + "..\..\..\pjlib\include\pjlib.h"\ + "..\..\..\pjmedia\include\pjmedia\config.h"\ + "..\..\..\pjmedia\include\pjmedia\sdp.h"\ + "..\..\..\pjmedia\include\pjmedia\sdp_neg.h"\ + "..\..\..\pjmedia\include\pjmedia\types.h"\ + "..\..\include\pjsip-ua\sip_inv.h"\ + "..\..\include\pjsip-ua\sip_replaces.h"\ + "..\..\include\pjsip\print_util.h"\ + "..\..\include\pjsip\sip_auth.h"\ + "..\..\include\pjsip\sip_auth_msg.h"\ + "..\..\include\pjsip\sip_config.h"\ + "..\..\include\pjsip\sip_dialog.h"\ + "..\..\include\pjsip\sip_endpoint.h"\ + "..\..\include\pjsip\sip_errno.h"\ + "..\..\include\pjsip\sip_msg.h"\ + "..\..\include\pjsip\sip_parser.h"\ + "..\..\include\pjsip\sip_resolve.h"\ + "..\..\include\pjsip\sip_transport.h"\ + "..\..\include\pjsip\sip_types.h"\ + "..\..\include\pjsip\sip_ua_layer.h"\ + "..\..\include\pjsip\sip_uri.h"\ + "..\..\include\pjsip\sip_util.h"\ + + +!ELSEIF "$(CFG)" == "pjsip_ua_wince - Win32 (WCE MIPSIV_FP) Debug" + +DEP_CPP_SIP_RE=\ + "..\..\..\pjlib-util\include\pjlib-util\config.h"\ + "..\..\..\pjlib-util\include\pjlib-util\dns.h"\ + "..\..\..\pjlib-util\include\pjlib-util\resolver.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner_cis_bitwise.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner_cis_uint.h"\ + "..\..\..\pjlib-util\include\pjlib-util\types.h"\ + "..\..\..\pjlib\include\pj\addr_resolv.h"\ + "..\..\..\pjlib\include\pj\array.h"\ + "..\..\..\pjlib\include\pj\assert.h"\ + "..\..\..\pjlib\include\pj\compat\assert.h"\ + "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ + "..\..\..\pjlib\include\pj\compat\ctype.h"\ + "..\..\..\pjlib\include\pj\compat\errno.h"\ + "..\..\..\pjlib\include\pj\compat\high_precision.h"\ + "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ + "..\..\..\pjlib\include\pj\compat\os_linux.h"\ + "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ + "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ + "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ + "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ + "..\..\..\pjlib\include\pj\compat\os_win32.h"\ + "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ + "..\..\..\pjlib\include\pj\compat\setjmp.h"\ + "..\..\..\pjlib\include\pj\compat\size_t.h"\ + "..\..\..\pjlib\include\pj\compat\string.h"\ + "..\..\..\pjlib\include\pj\config.h"\ + "..\..\..\pjlib\include\pj\config_site.h"\ + "..\..\..\pjlib\include\pj\config_site_sample.h"\ + "..\..\..\pjlib\include\pj\ctype.h"\ + "..\..\..\pjlib\include\pj\errno.h"\ + "..\..\..\pjlib\include\pj\except.h"\ + "..\..\..\pjlib\include\pj\fifobuf.h"\ + "..\..\..\pjlib\include\pj\file_access.h"\ + "..\..\..\pjlib\include\pj\file_io.h"\ + "..\..\..\pjlib\include\pj\guid.h"\ + "..\..\..\pjlib\include\pj\hash.h"\ + "..\..\..\pjlib\include\pj\ioqueue.h"\ + "..\..\..\pjlib\include\pj\list.h"\ + "..\..\..\pjlib\include\pj\list_i.h"\ + "..\..\..\pjlib\include\pj\lock.h"\ + "..\..\..\pjlib\include\pj\log.h"\ + "..\..\..\pjlib\include\pj\os.h"\ + "..\..\..\pjlib\include\pj\pool.h"\ + "..\..\..\pjlib\include\pj\pool_alt.h"\ + "..\..\..\pjlib\include\pj\pool_buf.h"\ + "..\..\..\pjlib\include\pj\pool_i.h"\ + "..\..\..\pjlib\include\pj\rand.h"\ + "..\..\..\pjlib\include\pj\rbtree.h"\ + "..\..\..\pjlib\include\pj\sock.h"\ + "..\..\..\pjlib\include\pj\sock_select.h"\ + "..\..\..\pjlib\include\pj\string.h"\ + "..\..\..\pjlib\include\pj\string_i.h"\ + "..\..\..\pjlib\include\pj\timer.h"\ + "..\..\..\pjlib\include\pj\types.h"\ + "..\..\..\pjlib\include\pj\unicode.h"\ + "..\..\..\pjlib\include\pjlib.h"\ + "..\..\..\pjmedia\include\pjmedia\config.h"\ + "..\..\..\pjmedia\include\pjmedia\sdp.h"\ + "..\..\..\pjmedia\include\pjmedia\sdp_neg.h"\ + "..\..\..\pjmedia\include\pjmedia\types.h"\ + "..\..\include\pjsip-ua\sip_inv.h"\ + "..\..\include\pjsip-ua\sip_replaces.h"\ + "..\..\include\pjsip\print_util.h"\ + "..\..\include\pjsip\sip_auth.h"\ + "..\..\include\pjsip\sip_auth_msg.h"\ + "..\..\include\pjsip\sip_config.h"\ + "..\..\include\pjsip\sip_dialog.h"\ + "..\..\include\pjsip\sip_endpoint.h"\ + "..\..\include\pjsip\sip_errno.h"\ + "..\..\include\pjsip\sip_msg.h"\ + "..\..\include\pjsip\sip_parser.h"\ + "..\..\include\pjsip\sip_resolve.h"\ + "..\..\include\pjsip\sip_transport.h"\ + "..\..\include\pjsip\sip_types.h"\ + "..\..\include\pjsip\sip_ua_layer.h"\ + "..\..\include\pjsip\sip_uri.h"\ + "..\..\include\pjsip\sip_util.h"\ + + +!ELSEIF "$(CFG)" == "pjsip_ua_wince - Win32 (WCE ARMV4) Release" + +DEP_CPP_SIP_RE=\ + "..\..\..\pjlib-util\include\pjlib-util\config.h"\ + "..\..\..\pjlib-util\include\pjlib-util\dns.h"\ + "..\..\..\pjlib-util\include\pjlib-util\resolver.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner_cis_bitwise.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner_cis_uint.h"\ + "..\..\..\pjlib-util\include\pjlib-util\types.h"\ + "..\..\..\pjlib\include\pj\addr_resolv.h"\ + "..\..\..\pjlib\include\pj\array.h"\ + "..\..\..\pjlib\include\pj\assert.h"\ + "..\..\..\pjlib\include\pj\compat\assert.h"\ + "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ + "..\..\..\pjlib\include\pj\compat\ctype.h"\ + "..\..\..\pjlib\include\pj\compat\errno.h"\ + "..\..\..\pjlib\include\pj\compat\high_precision.h"\ + "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ + "..\..\..\pjlib\include\pj\compat\os_linux.h"\ + "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ + "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ + "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ + "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ + "..\..\..\pjlib\include\pj\compat\os_win32.h"\ + "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ + "..\..\..\pjlib\include\pj\compat\setjmp.h"\ + "..\..\..\pjlib\include\pj\compat\size_t.h"\ + "..\..\..\pjlib\include\pj\compat\string.h"\ + "..\..\..\pjlib\include\pj\config.h"\ + "..\..\..\pjlib\include\pj\config_site.h"\ + "..\..\..\pjlib\include\pj\config_site_sample.h"\ + "..\..\..\pjlib\include\pj\ctype.h"\ + "..\..\..\pjlib\include\pj\errno.h"\ + "..\..\..\pjlib\include\pj\except.h"\ + "..\..\..\pjlib\include\pj\fifobuf.h"\ + "..\..\..\pjlib\include\pj\file_access.h"\ + "..\..\..\pjlib\include\pj\file_io.h"\ + "..\..\..\pjlib\include\pj\guid.h"\ + "..\..\..\pjlib\include\pj\hash.h"\ + "..\..\..\pjlib\include\pj\ioqueue.h"\ + "..\..\..\pjlib\include\pj\list.h"\ + "..\..\..\pjlib\include\pj\list_i.h"\ + "..\..\..\pjlib\include\pj\lock.h"\ + "..\..\..\pjlib\include\pj\log.h"\ + "..\..\..\pjlib\include\pj\os.h"\ + "..\..\..\pjlib\include\pj\pool.h"\ + "..\..\..\pjlib\include\pj\pool_alt.h"\ + "..\..\..\pjlib\include\pj\pool_buf.h"\ + "..\..\..\pjlib\include\pj\pool_i.h"\ + "..\..\..\pjlib\include\pj\rand.h"\ + "..\..\..\pjlib\include\pj\rbtree.h"\ + "..\..\..\pjlib\include\pj\sock.h"\ + "..\..\..\pjlib\include\pj\sock_select.h"\ + "..\..\..\pjlib\include\pj\string.h"\ + "..\..\..\pjlib\include\pj\string_i.h"\ + "..\..\..\pjlib\include\pj\timer.h"\ + "..\..\..\pjlib\include\pj\types.h"\ + "..\..\..\pjlib\include\pj\unicode.h"\ + "..\..\..\pjlib\include\pjlib.h"\ + "..\..\..\pjmedia\include\pjmedia\config.h"\ + "..\..\..\pjmedia\include\pjmedia\sdp.h"\ + "..\..\..\pjmedia\include\pjmedia\sdp_neg.h"\ + "..\..\..\pjmedia\include\pjmedia\types.h"\ + "..\..\include\pjsip-ua\sip_inv.h"\ + "..\..\include\pjsip-ua\sip_replaces.h"\ + "..\..\include\pjsip\print_util.h"\ + "..\..\include\pjsip\sip_auth.h"\ + "..\..\include\pjsip\sip_auth_msg.h"\ + "..\..\include\pjsip\sip_config.h"\ + "..\..\include\pjsip\sip_dialog.h"\ + "..\..\include\pjsip\sip_endpoint.h"\ + "..\..\include\pjsip\sip_errno.h"\ + "..\..\include\pjsip\sip_msg.h"\ + "..\..\include\pjsip\sip_parser.h"\ + "..\..\include\pjsip\sip_resolve.h"\ + "..\..\include\pjsip\sip_transport.h"\ + "..\..\include\pjsip\sip_types.h"\ + "..\..\include\pjsip\sip_ua_layer.h"\ + "..\..\include\pjsip\sip_uri.h"\ + "..\..\include\pjsip\sip_util.h"\ + + +!ELSEIF "$(CFG)" == "pjsip_ua_wince - Win32 (WCE ARMV4) Debug" + +DEP_CPP_SIP_RE=\ + "..\..\..\pjlib-util\include\pjlib-util\config.h"\ + "..\..\..\pjlib-util\include\pjlib-util\dns.h"\ + "..\..\..\pjlib-util\include\pjlib-util\resolver.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner_cis_bitwise.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner_cis_uint.h"\ + "..\..\..\pjlib-util\include\pjlib-util\types.h"\ + "..\..\..\pjlib\include\pj\addr_resolv.h"\ + "..\..\..\pjlib\include\pj\array.h"\ + "..\..\..\pjlib\include\pj\assert.h"\ + "..\..\..\pjlib\include\pj\compat\assert.h"\ + "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ + "..\..\..\pjlib\include\pj\compat\ctype.h"\ + "..\..\..\pjlib\include\pj\compat\errno.h"\ + "..\..\..\pjlib\include\pj\compat\high_precision.h"\ + "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ + "..\..\..\pjlib\include\pj\compat\os_linux.h"\ + "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ + "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ + "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ + "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ + "..\..\..\pjlib\include\pj\compat\os_win32.h"\ + "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ + "..\..\..\pjlib\include\pj\compat\setjmp.h"\ + "..\..\..\pjlib\include\pj\compat\size_t.h"\ + "..\..\..\pjlib\include\pj\compat\string.h"\ + "..\..\..\pjlib\include\pj\config.h"\ + "..\..\..\pjlib\include\pj\config_site.h"\ + "..\..\..\pjlib\include\pj\config_site_sample.h"\ + "..\..\..\pjlib\include\pj\ctype.h"\ + "..\..\..\pjlib\include\pj\errno.h"\ + "..\..\..\pjlib\include\pj\except.h"\ + "..\..\..\pjlib\include\pj\fifobuf.h"\ + "..\..\..\pjlib\include\pj\file_access.h"\ + "..\..\..\pjlib\include\pj\file_io.h"\ + "..\..\..\pjlib\include\pj\guid.h"\ + "..\..\..\pjlib\include\pj\hash.h"\ + "..\..\..\pjlib\include\pj\ioqueue.h"\ + "..\..\..\pjlib\include\pj\list.h"\ + "..\..\..\pjlib\include\pj\list_i.h"\ + "..\..\..\pjlib\include\pj\lock.h"\ + "..\..\..\pjlib\include\pj\log.h"\ + "..\..\..\pjlib\include\pj\os.h"\ + "..\..\..\pjlib\include\pj\pool.h"\ + "..\..\..\pjlib\include\pj\pool_alt.h"\ + "..\..\..\pjlib\include\pj\pool_buf.h"\ + "..\..\..\pjlib\include\pj\pool_i.h"\ + "..\..\..\pjlib\include\pj\rand.h"\ + "..\..\..\pjlib\include\pj\rbtree.h"\ + "..\..\..\pjlib\include\pj\sock.h"\ + "..\..\..\pjlib\include\pj\sock_select.h"\ + "..\..\..\pjlib\include\pj\string.h"\ + "..\..\..\pjlib\include\pj\string_i.h"\ + "..\..\..\pjlib\include\pj\timer.h"\ + "..\..\..\pjlib\include\pj\types.h"\ + "..\..\..\pjlib\include\pj\unicode.h"\ + "..\..\..\pjlib\include\pjlib.h"\ + "..\..\..\pjmedia\include\pjmedia\config.h"\ + "..\..\..\pjmedia\include\pjmedia\sdp.h"\ + "..\..\..\pjmedia\include\pjmedia\sdp_neg.h"\ + "..\..\..\pjmedia\include\pjmedia\types.h"\ + "..\..\include\pjsip-ua\sip_inv.h"\ + "..\..\include\pjsip-ua\sip_replaces.h"\ + "..\..\include\pjsip\print_util.h"\ + "..\..\include\pjsip\sip_auth.h"\ + "..\..\include\pjsip\sip_auth_msg.h"\ + "..\..\include\pjsip\sip_config.h"\ + "..\..\include\pjsip\sip_dialog.h"\ + "..\..\include\pjsip\sip_endpoint.h"\ + "..\..\include\pjsip\sip_errno.h"\ + "..\..\include\pjsip\sip_msg.h"\ + "..\..\include\pjsip\sip_parser.h"\ + "..\..\include\pjsip\sip_resolve.h"\ + "..\..\include\pjsip\sip_transport.h"\ + "..\..\include\pjsip\sip_types.h"\ + "..\..\include\pjsip\sip_ua_layer.h"\ + "..\..\include\pjsip\sip_uri.h"\ + "..\..\include\pjsip\sip_util.h"\ + + +!ELSEIF "$(CFG)" == "pjsip_ua_wince - Win32 (WCE MIPS16) Release" + +DEP_CPP_SIP_RE=\ + "..\..\..\pjlib-util\include\pjlib-util\config.h"\ + "..\..\..\pjlib-util\include\pjlib-util\dns.h"\ + "..\..\..\pjlib-util\include\pjlib-util\resolver.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner_cis_bitwise.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner_cis_uint.h"\ + "..\..\..\pjlib-util\include\pjlib-util\types.h"\ + "..\..\..\pjlib\include\pj\addr_resolv.h"\ + "..\..\..\pjlib\include\pj\array.h"\ + "..\..\..\pjlib\include\pj\assert.h"\ + "..\..\..\pjlib\include\pj\compat\assert.h"\ + "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ + "..\..\..\pjlib\include\pj\compat\ctype.h"\ + "..\..\..\pjlib\include\pj\compat\errno.h"\ + "..\..\..\pjlib\include\pj\compat\high_precision.h"\ + "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ + "..\..\..\pjlib\include\pj\compat\os_linux.h"\ + "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ + "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ + "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ + "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ + "..\..\..\pjlib\include\pj\compat\os_win32.h"\ + "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ + "..\..\..\pjlib\include\pj\compat\setjmp.h"\ + "..\..\..\pjlib\include\pj\compat\size_t.h"\ + "..\..\..\pjlib\include\pj\compat\string.h"\ + "..\..\..\pjlib\include\pj\config.h"\ + "..\..\..\pjlib\include\pj\config_site.h"\ + "..\..\..\pjlib\include\pj\config_site_sample.h"\ + "..\..\..\pjlib\include\pj\ctype.h"\ + "..\..\..\pjlib\include\pj\errno.h"\ + "..\..\..\pjlib\include\pj\except.h"\ + "..\..\..\pjlib\include\pj\fifobuf.h"\ + "..\..\..\pjlib\include\pj\file_access.h"\ + "..\..\..\pjlib\include\pj\file_io.h"\ + "..\..\..\pjlib\include\pj\guid.h"\ + "..\..\..\pjlib\include\pj\hash.h"\ + "..\..\..\pjlib\include\pj\ioqueue.h"\ + "..\..\..\pjlib\include\pj\list.h"\ + "..\..\..\pjlib\include\pj\list_i.h"\ + "..\..\..\pjlib\include\pj\lock.h"\ + "..\..\..\pjlib\include\pj\log.h"\ + "..\..\..\pjlib\include\pj\os.h"\ + "..\..\..\pjlib\include\pj\pool.h"\ + "..\..\..\pjlib\include\pj\pool_alt.h"\ + "..\..\..\pjlib\include\pj\pool_buf.h"\ + "..\..\..\pjlib\include\pj\pool_i.h"\ + "..\..\..\pjlib\include\pj\rand.h"\ + "..\..\..\pjlib\include\pj\rbtree.h"\ + "..\..\..\pjlib\include\pj\sock.h"\ + "..\..\..\pjlib\include\pj\sock_select.h"\ + "..\..\..\pjlib\include\pj\string.h"\ + "..\..\..\pjlib\include\pj\string_i.h"\ + "..\..\..\pjlib\include\pj\timer.h"\ + "..\..\..\pjlib\include\pj\types.h"\ + "..\..\..\pjlib\include\pj\unicode.h"\ + "..\..\..\pjlib\include\pjlib.h"\ + "..\..\..\pjmedia\include\pjmedia\config.h"\ + "..\..\..\pjmedia\include\pjmedia\sdp.h"\ + "..\..\..\pjmedia\include\pjmedia\sdp_neg.h"\ + "..\..\..\pjmedia\include\pjmedia\types.h"\ + "..\..\include\pjsip-ua\sip_inv.h"\ + "..\..\include\pjsip-ua\sip_replaces.h"\ + "..\..\include\pjsip\print_util.h"\ + "..\..\include\pjsip\sip_auth.h"\ + "..\..\include\pjsip\sip_auth_msg.h"\ + "..\..\include\pjsip\sip_config.h"\ + "..\..\include\pjsip\sip_dialog.h"\ + "..\..\include\pjsip\sip_endpoint.h"\ + "..\..\include\pjsip\sip_errno.h"\ + "..\..\include\pjsip\sip_msg.h"\ + "..\..\include\pjsip\sip_parser.h"\ + "..\..\include\pjsip\sip_resolve.h"\ + "..\..\include\pjsip\sip_transport.h"\ + "..\..\include\pjsip\sip_types.h"\ + "..\..\include\pjsip\sip_ua_layer.h"\ + "..\..\include\pjsip\sip_uri.h"\ + "..\..\include\pjsip\sip_util.h"\ + + +!ELSEIF "$(CFG)" == "pjsip_ua_wince - Win32 (WCE MIPS16) Debug" + +DEP_CPP_SIP_RE=\ + "..\..\..\pjlib-util\include\pjlib-util\config.h"\ + "..\..\..\pjlib-util\include\pjlib-util\dns.h"\ + "..\..\..\pjlib-util\include\pjlib-util\resolver.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner_cis_bitwise.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner_cis_uint.h"\ + "..\..\..\pjlib-util\include\pjlib-util\types.h"\ + "..\..\..\pjlib\include\pj\addr_resolv.h"\ + "..\..\..\pjlib\include\pj\array.h"\ + "..\..\..\pjlib\include\pj\assert.h"\ + "..\..\..\pjlib\include\pj\compat\assert.h"\ + "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ + "..\..\..\pjlib\include\pj\compat\ctype.h"\ + "..\..\..\pjlib\include\pj\compat\errno.h"\ + "..\..\..\pjlib\include\pj\compat\high_precision.h"\ + "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ + "..\..\..\pjlib\include\pj\compat\os_linux.h"\ + "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ + "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ + "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ + "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ + "..\..\..\pjlib\include\pj\compat\os_win32.h"\ + "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ + "..\..\..\pjlib\include\pj\compat\setjmp.h"\ + "..\..\..\pjlib\include\pj\compat\size_t.h"\ + "..\..\..\pjlib\include\pj\compat\string.h"\ + "..\..\..\pjlib\include\pj\config.h"\ + "..\..\..\pjlib\include\pj\config_site.h"\ + "..\..\..\pjlib\include\pj\config_site_sample.h"\ + "..\..\..\pjlib\include\pj\ctype.h"\ + "..\..\..\pjlib\include\pj\errno.h"\ + "..\..\..\pjlib\include\pj\except.h"\ + "..\..\..\pjlib\include\pj\fifobuf.h"\ + "..\..\..\pjlib\include\pj\file_access.h"\ + "..\..\..\pjlib\include\pj\file_io.h"\ + "..\..\..\pjlib\include\pj\guid.h"\ + "..\..\..\pjlib\include\pj\hash.h"\ + "..\..\..\pjlib\include\pj\ioqueue.h"\ + "..\..\..\pjlib\include\pj\list.h"\ + "..\..\..\pjlib\include\pj\list_i.h"\ + "..\..\..\pjlib\include\pj\lock.h"\ + "..\..\..\pjlib\include\pj\log.h"\ + "..\..\..\pjlib\include\pj\os.h"\ + "..\..\..\pjlib\include\pj\pool.h"\ + "..\..\..\pjlib\include\pj\pool_alt.h"\ + "..\..\..\pjlib\include\pj\pool_buf.h"\ + "..\..\..\pjlib\include\pj\pool_i.h"\ + "..\..\..\pjlib\include\pj\rand.h"\ + "..\..\..\pjlib\include\pj\rbtree.h"\ + "..\..\..\pjlib\include\pj\sock.h"\ + "..\..\..\pjlib\include\pj\sock_select.h"\ + "..\..\..\pjlib\include\pj\string.h"\ + "..\..\..\pjlib\include\pj\string_i.h"\ + "..\..\..\pjlib\include\pj\timer.h"\ + "..\..\..\pjlib\include\pj\types.h"\ + "..\..\..\pjlib\include\pj\unicode.h"\ + "..\..\..\pjlib\include\pjlib.h"\ + "..\..\..\pjmedia\include\pjmedia\config.h"\ + "..\..\..\pjmedia\include\pjmedia\sdp.h"\ + "..\..\..\pjmedia\include\pjmedia\sdp_neg.h"\ + "..\..\..\pjmedia\include\pjmedia\types.h"\ + "..\..\include\pjsip-ua\sip_inv.h"\ + "..\..\include\pjsip-ua\sip_replaces.h"\ + "..\..\include\pjsip\print_util.h"\ + "..\..\include\pjsip\sip_auth.h"\ + "..\..\include\pjsip\sip_auth_msg.h"\ + "..\..\include\pjsip\sip_config.h"\ + "..\..\include\pjsip\sip_dialog.h"\ + "..\..\include\pjsip\sip_endpoint.h"\ + "..\..\include\pjsip\sip_errno.h"\ + "..\..\include\pjsip\sip_msg.h"\ + "..\..\include\pjsip\sip_parser.h"\ + "..\..\include\pjsip\sip_resolve.h"\ + "..\..\include\pjsip\sip_transport.h"\ + "..\..\include\pjsip\sip_types.h"\ + "..\..\include\pjsip\sip_ua_layer.h"\ + "..\..\include\pjsip\sip_uri.h"\ + "..\..\include\pjsip\sip_util.h"\ + + +!ELSEIF "$(CFG)" == "pjsip_ua_wince - Win32 (WCE ARMV4T) Release" + +DEP_CPP_SIP_RE=\ + "..\..\..\pjlib-util\include\pjlib-util\config.h"\ + "..\..\..\pjlib-util\include\pjlib-util\dns.h"\ + "..\..\..\pjlib-util\include\pjlib-util\resolver.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner_cis_bitwise.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner_cis_uint.h"\ + "..\..\..\pjlib-util\include\pjlib-util\types.h"\ + "..\..\..\pjlib\include\pj\addr_resolv.h"\ + "..\..\..\pjlib\include\pj\array.h"\ + "..\..\..\pjlib\include\pj\assert.h"\ + "..\..\..\pjlib\include\pj\compat\assert.h"\ + "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ + "..\..\..\pjlib\include\pj\compat\ctype.h"\ + "..\..\..\pjlib\include\pj\compat\errno.h"\ + "..\..\..\pjlib\include\pj\compat\high_precision.h"\ + "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ + "..\..\..\pjlib\include\pj\compat\os_linux.h"\ + "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ + "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ + "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ + "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ + "..\..\..\pjlib\include\pj\compat\os_win32.h"\ + "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ + "..\..\..\pjlib\include\pj\compat\setjmp.h"\ + "..\..\..\pjlib\include\pj\compat\size_t.h"\ + "..\..\..\pjlib\include\pj\compat\string.h"\ + "..\..\..\pjlib\include\pj\config.h"\ + "..\..\..\pjlib\include\pj\config_site.h"\ + "..\..\..\pjlib\include\pj\config_site_sample.h"\ + "..\..\..\pjlib\include\pj\ctype.h"\ + "..\..\..\pjlib\include\pj\errno.h"\ + "..\..\..\pjlib\include\pj\except.h"\ + "..\..\..\pjlib\include\pj\fifobuf.h"\ + "..\..\..\pjlib\include\pj\file_access.h"\ + "..\..\..\pjlib\include\pj\file_io.h"\ + "..\..\..\pjlib\include\pj\guid.h"\ + "..\..\..\pjlib\include\pj\hash.h"\ + "..\..\..\pjlib\include\pj\ioqueue.h"\ + "..\..\..\pjlib\include\pj\list.h"\ + "..\..\..\pjlib\include\pj\list_i.h"\ + "..\..\..\pjlib\include\pj\lock.h"\ + "..\..\..\pjlib\include\pj\log.h"\ + "..\..\..\pjlib\include\pj\os.h"\ + "..\..\..\pjlib\include\pj\pool.h"\ + "..\..\..\pjlib\include\pj\pool_alt.h"\ + "..\..\..\pjlib\include\pj\pool_buf.h"\ + "..\..\..\pjlib\include\pj\pool_i.h"\ + "..\..\..\pjlib\include\pj\rand.h"\ + "..\..\..\pjlib\include\pj\rbtree.h"\ + "..\..\..\pjlib\include\pj\sock.h"\ + "..\..\..\pjlib\include\pj\sock_select.h"\ + "..\..\..\pjlib\include\pj\string.h"\ + "..\..\..\pjlib\include\pj\string_i.h"\ + "..\..\..\pjlib\include\pj\timer.h"\ + "..\..\..\pjlib\include\pj\types.h"\ + "..\..\..\pjlib\include\pj\unicode.h"\ + "..\..\..\pjlib\include\pjlib.h"\ + "..\..\..\pjmedia\include\pjmedia\config.h"\ + "..\..\..\pjmedia\include\pjmedia\sdp.h"\ + "..\..\..\pjmedia\include\pjmedia\sdp_neg.h"\ + "..\..\..\pjmedia\include\pjmedia\types.h"\ + "..\..\include\pjsip-ua\sip_inv.h"\ + "..\..\include\pjsip-ua\sip_replaces.h"\ + "..\..\include\pjsip\print_util.h"\ + "..\..\include\pjsip\sip_auth.h"\ + "..\..\include\pjsip\sip_auth_msg.h"\ + "..\..\include\pjsip\sip_config.h"\ + "..\..\include\pjsip\sip_dialog.h"\ + "..\..\include\pjsip\sip_endpoint.h"\ + "..\..\include\pjsip\sip_errno.h"\ + "..\..\include\pjsip\sip_msg.h"\ + "..\..\include\pjsip\sip_parser.h"\ + "..\..\include\pjsip\sip_resolve.h"\ + "..\..\include\pjsip\sip_transport.h"\ + "..\..\include\pjsip\sip_types.h"\ + "..\..\include\pjsip\sip_ua_layer.h"\ + "..\..\include\pjsip\sip_uri.h"\ + "..\..\include\pjsip\sip_util.h"\ + + +!ELSEIF "$(CFG)" == "pjsip_ua_wince - Win32 (WCE ARMV4T) Debug" + +DEP_CPP_SIP_RE=\ + "..\..\..\pjlib-util\include\pjlib-util\config.h"\ + "..\..\..\pjlib-util\include\pjlib-util\dns.h"\ + "..\..\..\pjlib-util\include\pjlib-util\resolver.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner_cis_bitwise.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner_cis_uint.h"\ + "..\..\..\pjlib-util\include\pjlib-util\types.h"\ + "..\..\..\pjlib\include\pj\addr_resolv.h"\ + "..\..\..\pjlib\include\pj\array.h"\ + "..\..\..\pjlib\include\pj\assert.h"\ + "..\..\..\pjlib\include\pj\compat\assert.h"\ + "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ + "..\..\..\pjlib\include\pj\compat\ctype.h"\ + "..\..\..\pjlib\include\pj\compat\errno.h"\ + "..\..\..\pjlib\include\pj\compat\high_precision.h"\ + "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ + "..\..\..\pjlib\include\pj\compat\os_linux.h"\ + "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ + "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ + "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ + "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ + "..\..\..\pjlib\include\pj\compat\os_win32.h"\ + "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ + "..\..\..\pjlib\include\pj\compat\setjmp.h"\ + "..\..\..\pjlib\include\pj\compat\size_t.h"\ + "..\..\..\pjlib\include\pj\compat\string.h"\ + "..\..\..\pjlib\include\pj\config.h"\ + "..\..\..\pjlib\include\pj\config_site.h"\ + "..\..\..\pjlib\include\pj\config_site_sample.h"\ + "..\..\..\pjlib\include\pj\ctype.h"\ + "..\..\..\pjlib\include\pj\errno.h"\ + "..\..\..\pjlib\include\pj\except.h"\ + "..\..\..\pjlib\include\pj\fifobuf.h"\ + "..\..\..\pjlib\include\pj\file_access.h"\ + "..\..\..\pjlib\include\pj\file_io.h"\ + "..\..\..\pjlib\include\pj\guid.h"\ + "..\..\..\pjlib\include\pj\hash.h"\ + "..\..\..\pjlib\include\pj\ioqueue.h"\ + "..\..\..\pjlib\include\pj\list.h"\ + "..\..\..\pjlib\include\pj\list_i.h"\ + "..\..\..\pjlib\include\pj\lock.h"\ + "..\..\..\pjlib\include\pj\log.h"\ + "..\..\..\pjlib\include\pj\os.h"\ + "..\..\..\pjlib\include\pj\pool.h"\ + "..\..\..\pjlib\include\pj\pool_alt.h"\ + "..\..\..\pjlib\include\pj\pool_buf.h"\ + "..\..\..\pjlib\include\pj\pool_i.h"\ + "..\..\..\pjlib\include\pj\rand.h"\ + "..\..\..\pjlib\include\pj\rbtree.h"\ + "..\..\..\pjlib\include\pj\sock.h"\ + "..\..\..\pjlib\include\pj\sock_select.h"\ + "..\..\..\pjlib\include\pj\string.h"\ + "..\..\..\pjlib\include\pj\string_i.h"\ + "..\..\..\pjlib\include\pj\timer.h"\ + "..\..\..\pjlib\include\pj\types.h"\ + "..\..\..\pjlib\include\pj\unicode.h"\ + "..\..\..\pjlib\include\pjlib.h"\ + "..\..\..\pjmedia\include\pjmedia\config.h"\ + "..\..\..\pjmedia\include\pjmedia\sdp.h"\ + "..\..\..\pjmedia\include\pjmedia\sdp_neg.h"\ + "..\..\..\pjmedia\include\pjmedia\types.h"\ + "..\..\include\pjsip-ua\sip_inv.h"\ + "..\..\include\pjsip-ua\sip_replaces.h"\ + "..\..\include\pjsip\print_util.h"\ + "..\..\include\pjsip\sip_auth.h"\ + "..\..\include\pjsip\sip_auth_msg.h"\ + "..\..\include\pjsip\sip_config.h"\ + "..\..\include\pjsip\sip_dialog.h"\ + "..\..\include\pjsip\sip_endpoint.h"\ + "..\..\include\pjsip\sip_errno.h"\ + "..\..\include\pjsip\sip_msg.h"\ + "..\..\include\pjsip\sip_parser.h"\ + "..\..\include\pjsip\sip_resolve.h"\ + "..\..\include\pjsip\sip_transport.h"\ + "..\..\include\pjsip\sip_types.h"\ + "..\..\include\pjsip\sip_ua_layer.h"\ + "..\..\include\pjsip\sip_uri.h"\ + "..\..\include\pjsip\sip_util.h"\ + + +!ELSEIF "$(CFG)" == "pjsip_ua_wince - Win32 (WCE x86) Release" + +DEP_CPP_SIP_RE=\ + "..\..\..\pjlib-util\include\pjlib-util\config.h"\ + "..\..\..\pjlib-util\include\pjlib-util\dns.h"\ + "..\..\..\pjlib-util\include\pjlib-util\resolver.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner_cis_bitwise.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner_cis_uint.h"\ + "..\..\..\pjlib-util\include\pjlib-util\types.h"\ + "..\..\..\pjlib\include\pj\addr_resolv.h"\ + "..\..\..\pjlib\include\pj\array.h"\ + "..\..\..\pjlib\include\pj\assert.h"\ + "..\..\..\pjlib\include\pj\compat\assert.h"\ + "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ + "..\..\..\pjlib\include\pj\compat\ctype.h"\ + "..\..\..\pjlib\include\pj\compat\errno.h"\ + "..\..\..\pjlib\include\pj\compat\high_precision.h"\ + "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ + "..\..\..\pjlib\include\pj\compat\os_linux.h"\ + "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ + "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ + "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ + "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ + "..\..\..\pjlib\include\pj\compat\os_win32.h"\ + "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ + "..\..\..\pjlib\include\pj\compat\setjmp.h"\ + "..\..\..\pjlib\include\pj\compat\size_t.h"\ + "..\..\..\pjlib\include\pj\compat\string.h"\ + "..\..\..\pjlib\include\pj\config.h"\ + "..\..\..\pjlib\include\pj\config_site.h"\ + "..\..\..\pjlib\include\pj\config_site_sample.h"\ + "..\..\..\pjlib\include\pj\ctype.h"\ + "..\..\..\pjlib\include\pj\errno.h"\ + "..\..\..\pjlib\include\pj\except.h"\ + "..\..\..\pjlib\include\pj\fifobuf.h"\ + "..\..\..\pjlib\include\pj\file_access.h"\ + "..\..\..\pjlib\include\pj\file_io.h"\ + "..\..\..\pjlib\include\pj\guid.h"\ + "..\..\..\pjlib\include\pj\hash.h"\ + "..\..\..\pjlib\include\pj\ioqueue.h"\ + "..\..\..\pjlib\include\pj\list.h"\ + "..\..\..\pjlib\include\pj\list_i.h"\ + "..\..\..\pjlib\include\pj\lock.h"\ + "..\..\..\pjlib\include\pj\log.h"\ + "..\..\..\pjlib\include\pj\os.h"\ + "..\..\..\pjlib\include\pj\pool.h"\ + "..\..\..\pjlib\include\pj\pool_alt.h"\ + "..\..\..\pjlib\include\pj\pool_buf.h"\ + "..\..\..\pjlib\include\pj\pool_i.h"\ + "..\..\..\pjlib\include\pj\rand.h"\ + "..\..\..\pjlib\include\pj\rbtree.h"\ + "..\..\..\pjlib\include\pj\sock.h"\ + "..\..\..\pjlib\include\pj\sock_select.h"\ + "..\..\..\pjlib\include\pj\string.h"\ + "..\..\..\pjlib\include\pj\string_i.h"\ + "..\..\..\pjlib\include\pj\timer.h"\ + "..\..\..\pjlib\include\pj\types.h"\ + "..\..\..\pjlib\include\pj\unicode.h"\ + "..\..\..\pjlib\include\pjlib.h"\ + "..\..\..\pjmedia\include\pjmedia\config.h"\ + "..\..\..\pjmedia\include\pjmedia\sdp.h"\ + "..\..\..\pjmedia\include\pjmedia\sdp_neg.h"\ + "..\..\..\pjmedia\include\pjmedia\types.h"\ + "..\..\include\pjsip-ua\sip_inv.h"\ + "..\..\include\pjsip-ua\sip_replaces.h"\ + "..\..\include\pjsip\print_util.h"\ + "..\..\include\pjsip\sip_auth.h"\ + "..\..\include\pjsip\sip_auth_msg.h"\ + "..\..\include\pjsip\sip_config.h"\ + "..\..\include\pjsip\sip_dialog.h"\ + "..\..\include\pjsip\sip_endpoint.h"\ + "..\..\include\pjsip\sip_errno.h"\ + "..\..\include\pjsip\sip_msg.h"\ + "..\..\include\pjsip\sip_parser.h"\ + "..\..\include\pjsip\sip_resolve.h"\ + "..\..\include\pjsip\sip_transport.h"\ + "..\..\include\pjsip\sip_types.h"\ + "..\..\include\pjsip\sip_ua_layer.h"\ + "..\..\include\pjsip\sip_uri.h"\ + "..\..\include\pjsip\sip_util.h"\ + + +!ELSEIF "$(CFG)" == "pjsip_ua_wince - Win32 (WCE x86) Debug" + +DEP_CPP_SIP_RE=\ + "..\..\..\pjlib-util\include\pjlib-util\config.h"\ + "..\..\..\pjlib-util\include\pjlib-util\dns.h"\ + "..\..\..\pjlib-util\include\pjlib-util\resolver.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner_cis_bitwise.h"\ + "..\..\..\pjlib-util\include\pjlib-util\scanner_cis_uint.h"\ + "..\..\..\pjlib-util\include\pjlib-util\types.h"\ + "..\..\..\pjlib\include\pj\addr_resolv.h"\ + "..\..\..\pjlib\include\pj\array.h"\ + "..\..\..\pjlib\include\pj\assert.h"\ + "..\..\..\pjlib\include\pj\compat\assert.h"\ + "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ + "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ + "..\..\..\pjlib\include\pj\compat\ctype.h"\ + "..\..\..\pjlib\include\pj\compat\errno.h"\ + "..\..\..\pjlib\include\pj\compat\high_precision.h"\ + "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ + "..\..\..\pjlib\include\pj\compat\os_linux.h"\ + "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ + "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ + "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ + "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ + "..\..\..\pjlib\include\pj\compat\os_win32.h"\ + "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ + "..\..\..\pjlib\include\pj\compat\setjmp.h"\ + "..\..\..\pjlib\include\pj\compat\size_t.h"\ + "..\..\..\pjlib\include\pj\compat\string.h"\ + "..\..\..\pjlib\include\pj\config.h"\ + "..\..\..\pjlib\include\pj\config_site.h"\ + "..\..\..\pjlib\include\pj\config_site_sample.h"\ + "..\..\..\pjlib\include\pj\ctype.h"\ + "..\..\..\pjlib\include\pj\errno.h"\ + "..\..\..\pjlib\include\pj\except.h"\ + "..\..\..\pjlib\include\pj\fifobuf.h"\ + "..\..\..\pjlib\include\pj\file_access.h"\ + "..\..\..\pjlib\include\pj\file_io.h"\ + "..\..\..\pjlib\include\pj\guid.h"\ + "..\..\..\pjlib\include\pj\hash.h"\ + "..\..\..\pjlib\include\pj\ioqueue.h"\ + "..\..\..\pjlib\include\pj\list.h"\ + "..\..\..\pjlib\include\pj\list_i.h"\ + "..\..\..\pjlib\include\pj\lock.h"\ + "..\..\..\pjlib\include\pj\log.h"\ + "..\..\..\pjlib\include\pj\os.h"\ + "..\..\..\pjlib\include\pj\pool.h"\ + "..\..\..\pjlib\include\pj\pool_alt.h"\ + "..\..\..\pjlib\include\pj\pool_buf.h"\ + "..\..\..\pjlib\include\pj\pool_i.h"\ + "..\..\..\pjlib\include\pj\rand.h"\ + "..\..\..\pjlib\include\pj\rbtree.h"\ + "..\..\..\pjlib\include\pj\sock.h"\ + "..\..\..\pjlib\include\pj\sock_select.h"\ + "..\..\..\pjlib\include\pj\string.h"\ + "..\..\..\pjlib\include\pj\string_i.h"\ + "..\..\..\pjlib\include\pj\timer.h"\ + "..\..\..\pjlib\include\pj\types.h"\ + "..\..\..\pjlib\include\pj\unicode.h"\ + "..\..\..\pjlib\include\pjlib.h"\ + "..\..\..\pjmedia\include\pjmedia\config.h"\ + "..\..\..\pjmedia\include\pjmedia\sdp.h"\ + "..\..\..\pjmedia\include\pjmedia\sdp_neg.h"\ + "..\..\..\pjmedia\include\pjmedia\types.h"\ + "..\..\include\pjsip-ua\sip_inv.h"\ + "..\..\include\pjsip-ua\sip_replaces.h"\ + "..\..\include\pjsip\print_util.h"\ + "..\..\include\pjsip\sip_auth.h"\ + "..\..\include\pjsip\sip_auth_msg.h"\ + "..\..\include\pjsip\sip_config.h"\ + "..\..\include\pjsip\sip_dialog.h"\ + "..\..\include\pjsip\sip_endpoint.h"\ + "..\..\include\pjsip\sip_errno.h"\ + "..\..\include\pjsip\sip_msg.h"\ + "..\..\include\pjsip\sip_parser.h"\ + "..\..\include\pjsip\sip_resolve.h"\ + "..\..\include\pjsip\sip_transport.h"\ + "..\..\include\pjsip\sip_types.h"\ + "..\..\include\pjsip\sip_ua_layer.h"\ + "..\..\include\pjsip\sip_uri.h"\ + "..\..\include\pjsip\sip_util.h"\ + + +!ENDIF + +# End Source File +# Begin Source File + SOURCE="..\..\src\pjsip-ua\sip_xfer.c" !IF "$(CFG)" == "pjsip_ua_wince - Win32 (WCE MIPSII_FP) Release" @@ -4460,21 +6520,22 @@ DEP_CPP_SIP_X=\ !ELSEIF "$(CFG)" == "pjsip_ua_wince - Win32 (WCE emulator) Debug" DEP_CPP_SIP_X=\ + "..\..\..\pjlib-util\include\pjlib-util\config.h"\ + "..\..\..\pjlib-util\include\pjlib-util\dns.h"\ + "..\..\..\pjlib-util\include\pjlib-util\resolver.h"\ "..\..\..\pjlib-util\include\pjlib-util\scanner.h"\ "..\..\..\pjlib-util\include\pjlib-util\scanner_cis_bitwise.h"\ "..\..\..\pjlib-util\include\pjlib-util\scanner_cis_uint.h"\ + "..\..\..\pjlib-util\include\pjlib-util\types.h"\ + "..\..\..\pjlib\include\pj\addr_resolv.h"\ + "..\..\..\pjlib\include\pj\array.h"\ "..\..\..\pjlib\include\pj\assert.h"\ "..\..\..\pjlib\include\pj\compat\assert.h"\ "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ + "..\..\..\pjlib\include\pj\compat\ctype.h"\ "..\..\..\pjlib\include\pj\compat\errno.h"\ - "..\..\..\pjlib\include\pj\compat\m_alpha.h"\ - "..\..\..\pjlib\include\pj\compat\m_armv4.h"\ - "..\..\..\pjlib\include\pj\compat\m_i386.h"\ - "..\..\..\pjlib\include\pj\compat\m_m68k.h"\ - "..\..\..\pjlib\include\pj\compat\m_powerpc.h"\ - "..\..\..\pjlib\include\pj\compat\m_sparc.h"\ - "..\..\..\pjlib\include\pj\compat\m_x86_64.h"\ + "..\..\..\pjlib\include\pj\compat\high_precision.h"\ "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ "..\..\..\pjlib\include\pj\compat\os_linux.h"\ "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ @@ -4483,22 +6544,40 @@ DEP_CPP_SIP_X=\ "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ "..\..\..\pjlib\include\pj\compat\os_win32.h"\ "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ + "..\..\..\pjlib\include\pj\compat\setjmp.h"\ "..\..\..\pjlib\include\pj\compat\size_t.h"\ "..\..\..\pjlib\include\pj\compat\string.h"\ "..\..\..\pjlib\include\pj\config.h"\ "..\..\..\pjlib\include\pj\config_site.h"\ + "..\..\..\pjlib\include\pj\config_site_sample.h"\ + "..\..\..\pjlib\include\pj\ctype.h"\ "..\..\..\pjlib\include\pj\errno.h"\ + "..\..\..\pjlib\include\pj\except.h"\ + "..\..\..\pjlib\include\pj\fifobuf.h"\ + "..\..\..\pjlib\include\pj\file_access.h"\ + "..\..\..\pjlib\include\pj\file_io.h"\ + "..\..\..\pjlib\include\pj\guid.h"\ + "..\..\..\pjlib\include\pj\hash.h"\ "..\..\..\pjlib\include\pj\ioqueue.h"\ "..\..\..\pjlib\include\pj\list.h"\ "..\..\..\pjlib\include\pj\list_i.h"\ + "..\..\..\pjlib\include\pj\lock.h"\ + "..\..\..\pjlib\include\pj\log.h"\ + "..\..\..\pjlib\include\pj\os.h"\ "..\..\..\pjlib\include\pj\pool.h"\ "..\..\..\pjlib\include\pj\pool_alt.h"\ + "..\..\..\pjlib\include\pj\pool_buf.h"\ "..\..\..\pjlib\include\pj\pool_i.h"\ + "..\..\..\pjlib\include\pj\rand.h"\ + "..\..\..\pjlib\include\pj\rbtree.h"\ "..\..\..\pjlib\include\pj\sock.h"\ + "..\..\..\pjlib\include\pj\sock_select.h"\ "..\..\..\pjlib\include\pj\string.h"\ "..\..\..\pjlib\include\pj\string_i.h"\ "..\..\..\pjlib\include\pj\timer.h"\ "..\..\..\pjlib\include\pj\types.h"\ + "..\..\..\pjlib\include\pj\unicode.h"\ + "..\..\..\pjlib\include\pjlib.h"\ "..\..\include\pjsip-simple\evsub.h"\ "..\..\include\pjsip-simple\evsub_msg.h"\ "..\..\include\pjsip-simple\types.h"\ @@ -5271,6 +7350,10 @@ SOURCE="..\..\include\pjsip-ua\sip_regc.h" # End Source File # Begin Source File +SOURCE="..\..\include\pjsip-ua\sip_replaces.h" +# End Source File +# Begin Source File + SOURCE="..\..\include\pjsip-ua\sip_xfer.h" # End Source File # End Group diff --git a/pjsip/include/pjsip-ua/sip_replaces.h b/pjsip/include/pjsip-ua/sip_replaces.h new file mode 100644 index 00000000..38c8aa99 --- /dev/null +++ b/pjsip/include/pjsip-ua/sip_replaces.h @@ -0,0 +1,300 @@ +/* $Id$ */ +/* + * Copyright (C) 2003-2006 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 __PJSIP_REPLACES_H__ +#define __PJSIP_REPLACES_H__ + + +/** + * @file sip_replaces.h + * @brief SIP Replaces support (RFC 3891 - SIP "Replaces" Header) + */ +#include <pjsip/sip_msg.h> + +/** + * @defgroup PJSIP_REPLACES SIP Replaces support (RFC 3891 - "Replaces" Header) + * @ingroup PJSIP_HIGH_UA + * @brief SIP Replaces support (RFC 3891 - "Replaces" Header) + * @{ + * + * This module implements support for Replaces header in PJSIP. The Replaces + * specification is written in RFC 3891 - The Session Initiation Protocol (SIP) + * "Replaces" Header, and can be used to enable a variety of features, + * for example: "Attended Transfer" and "Call Pickup". + * + * + * + * \section PJSIP_REPLACES_USING_SEC Using PJSIP Replaces Support + * + * \subsection PJSIP_REPLACES_INIT_SUBSEC Initialization + * + * Application needs to call #pjsip_replaces_init_module() during application + * initialization stage to register "replaces" support in PJSIP. + * + * + * + * \subsection PJSIP_REPLACES_UAC_SUBSEC UAC Behavior: Sending a Replaces Header + * + * A User Agent that wishes to replace a single existing early or + * confirmed dialog with a new dialog of its own, MAY send the target + * User Agent an INVITE request containing a Replaces header field. The + * User Agent Client (UAC) places the Call-ID, to-tag, and from-tag + * information for the target dialog in a single Replaces header field + * and sends the new INVITE to the target. + * + * To initiate outgoing INVITE request with Replaces header, application + * would create the INVITE request with #pjsip_inv_invite(), then adds + * #pjsip_replaces_hdr instance into the request, filling up the Call-ID, + * To-tag, and From-tag properties of the header with the identification + * of the dialog to be replaced. Application may also optionally + * set the \a early_only property of the header to indicate that it only + * wants to replace early dialog. + * + * Note that when the outgoing INVITE request (with Replaces) is initiated + * from an incoming REFER request (as in Attended Call Transfer case), + * this process should be done rather more automatically by PJSIP. Upon + * receiving incoming incoming REFER request, normally these processes + * will be performed: + * - Application finds \a Refer-To header, + * - Application creates outgoing dialog/invite session, specifying + * the URI in the \a Refer-To header as the initial remote target, + * - The URI in the \a Refer-To header may contain header parameters such + * as \a Replaces and \a Require headers. + * - The dialog keeps the header fields in the header parameters + * of the URI, and the invite session would add these headers into + * the outgoing INVITE request. Because of this, the outgoing + * INVITE request will contain the \a Replaces and \a Require headers. + * + * + * For more information, please see the implementation of + * #pjsua_call_xfer_replaces() in \ref PJSUA_LIB source code. + * + * + * \subsection PJSIP_REPLACES_UAS_SUBSEC UAS Behavior: Receiving a Replaces Header + * + * The Replaces header contains information used to match an existing + * SIP dialog (call-id, to-tag, and from-tag). Upon receiving an INVITE + * with a Replaces header, the User Agent (UA) attempts to match this + * information with a confirmed or early dialog. + * + * In PJSIP, if application wants to process the Replaces header in the + * incoming INVITE request, it should call #pjsip_replaces_verify_request() + * before creating the INVITE session. The #pjsip_replaces_verify_request() + * function checks and verifies the request to see if Replaces request + * can be processed. To be more specific, it performs the following + * verification: + * - checks that Replaces header is present. If not, the function will + * return PJ_SUCCESS without doing anything. + * - checks that no duplicate Replaces headers are present, or otherwise + * it will return 400 "Bad Request" response. + * - checks for matching dialog and verifies that the invite session has + * the correct state, and may return 481 "Call/Transaction Does Not Exist", + * 603 "Declined", or 486 "Busy Here" according to the processing rules + * specified in RFC 3891. + * - if matching dialog with correct state is found, it will give PJ_SUCCESS + * status and return the matching dialog back to the application. + * + * The following pseudocode illustrates how application can process the + * incoming INVITE if it wants to support Replaces extension: + * + \code + // Incoming INVITE request handler + pj_bool_t on_rx_invite(pjsip_rx_data *rdata) + { + pjsip_dialog *dlg, *replaced_dlg; + pjsip_inv_session *inv; + pjsip_tx_data *response; + pj_status_t status; + + // Check whether Replaces header is present in the request and process accordingly. + // + status = pjsip_replaces_verify_request(rdata, &replaced_dlg, PJ_FALSE, &response); + if (status != PJ_SUCCESS) { + // Something wrong with Replaces request. + // + if (response) { + pjsip_endpt_send_response(endpt, rdata, response, NULL, NULL); + } else { + // Respond with 500 (Internal Server Error) + pjsip_endpt_respond_stateless(endpt, rdata, 500, NULL, NULL, NULL); + } + } + + // Create UAS Invite session as usual. + // + status = pjsip_dlg_create_uas(.., rdata, .., &dlg); + .. + status = pjsip_inv_create_uas(dlg, .., &inv); + + // Send initial 100 "Trying" to the INVITE request + // + status = pjsip_inv_initial_answer(inv, rdata, 100, ..., &response); + if (status == PJ_SUCCESS) + pjsip_inv_send_msg(inv, response); + + + // This is where processing is different between normal call + // (without Replaces) and call with Replaces. + // + if (replaced_dlg) { + pjsip_inv_session *replaced_inv; + + // Always answer the new INVITE with 200, regardless whether + // the replaced call is in early or confirmed state. + // + status = pjsip_inv_answer(inv, 200, NULL, NULL, &response); + if (status == PJ_SUCCESS) + pjsip_inv_send_msg(inv, response); + + + // Get the INVITE session associated with the replaced dialog. + // + replaced_inv = pjsip_dlg_get_inv_session(replaced_dlg); + + + // Disconnect the "replaced" INVITE session. + // + status = pjsip_inv_end_session(replaced_inv, PJSIP_SC_GONE, NULL, &tdata); + if (status == PJ_SUCCESS && tdata) + status = pjsip_inv_send_msg(replaced_inv, tdata); + + + // It's up to application to associate the new INVITE session + // with the old (now terminated) session. For example, application + // may assign the same User Interface object for the new INVITE + // session. + + } else { + // Process normal INVITE without Replaces. + ... + } + } + + \endcode + * + * + * For a complete sample implementation, please see \a pjsua_call_on_incoming() + * function of \ref PJSUA_LIB in \a pjsua_call.c file. + * + * + * \section PJSIP_REPLACES_REFERENCE References + * + * References: + * - <A HREF="http://www.ietf.org/rfc/rfc3891.txt">RFC 3891: The Session + * Initiation Protocol (SIP) "Replaces" Header</A> + * - \ref PJSUA_XFER + */ + +PJ_BEGIN_DECL + + +/** + * Declaration of SIP Replaces header (RFC 3891). + */ +typedef struct pjsip_replaces_hdr +{ + /** Standard header field. */ + PJSIP_DECL_HDR_MEMBER(struct pjsip_replaces_hdr); + + /** Call-Id */ + pj_str_t call_id; + + /** to-tag */ + pj_str_t to_tag; + + /** from-tag */ + pj_str_t from_tag; + + /** early-only? */ + pj_bool_t early_only; + + /** Other parameters */ + pjsip_param other_param; + +} pjsip_replaces_hdr; + + + +/** + * Initialize Replaces support in PJSIP. This would, among other things, + * register the header parser for Replaces header. + * + * @param endpt The endpoint instance. + * + * @return PJ_SUCCESS on success. + */ +PJ_DECL(pj_status_t) pjsip_replaces_init_module(pjsip_endpoint *endpt); + + +/** + * Create Replaces header. + * + * @param pool Pool to allocate the header instance from. + * + * @return An empty Replaces header instance. + */ +PJ_DECL(pjsip_replaces_hdr*) pjsip_replaces_hdr_create(pj_pool_t *pool); + + +/** + * Verify that incoming request with Replaces header can be processed. + * This function will perform all necessary checks according to RFC 3891 + * Section 3 "User Agent Server Behavior: Receiving a Replaces Header". + * + * @param rdata The incoming request to be verified. + * @param p_dlg On return, it will be filled with the matching + * dialog. + * @param lock_dlg Specifies whether this function should acquire lock + * to the matching dialog. If yes (and should be yes!), + * then application will need to release the dialog's + * lock with #pjsip_dlg_dec_lock() when the function + * returns PJ_SUCCESS and the \a p_dlg parameter is filled + * with the dialog instance. + * @param p_tdata Upon error, it will be filled with the final response + * to be sent to the request sender. + * + * @return The function returns the following: + * - If the request doesn't contain Replaces header, the + * function returns PJ_SUCCESS and \a p_dlg parameter + * will be set to NULL. + * - If the request contains Replaces header and a valid, + * matching dialog is found, the function returns + * PJ_SUCCESS and \a p_dlg parameter will be set to the + * matching dialog instance. + * - Upon error condition (as described by RFC 3891), the + * function returns non-PJ_SUCCESS, and \a p_tdata + * parameter SHOULD be set with a final response message + * to be sent to the sender of the request. + */ +PJ_DECL(pj_status_t) pjsip_replaces_verify_request(pjsip_rx_data *rdata, + pjsip_dialog **p_dlg, + pj_bool_t lock_dlg, + pjsip_tx_data **p_tdata); + + + +PJ_END_DECL + + +/** + * @} + */ + + +#endif /* __PJSIP_REPLACES_H__ */ + diff --git a/pjsip/include/pjsip-ua/sip_xfer.h b/pjsip/include/pjsip-ua/sip_xfer.h index 56809141..53d98e90 100644 --- a/pjsip/include/pjsip-ua/sip_xfer.h +++ b/pjsip/include/pjsip-ua/sip_xfer.h @@ -29,17 +29,32 @@ #include <pjsip/sip_msg.h> /** - * @defgroup PJSUA_XFER Call Transfer + * @defgroup PJSUA_XFER SIP REFER (RFC 3515) for Call Transfer etc. * @ingroup PJSIP_HIGH_UA - * @brief Provides call transfer functionality. + * @brief SIP REFER dialog usage (call transfer, etc.) * @{ * - * This implements call transfer functionality to INVITE sessions. The call - * transfer functionality uses SIP Event Subscription framework for - * managing call transfer status. - * - * Application must link with <b>pjsip-ua</b> AND <b>pjsip-simple</b> static - * libraries to use call transfer functionality. + * This describes a generic handling of SIP REFER request. The SIP REFER + * request is described in RFC 3515, and commonly used to perform call + * transfer functionality. Other types of SIP REFER usages are described + * in draft-worley-sip-many-refers-00 draft, for example: + * - Remote Dial: where UAC sends REFER to instruct REFER recipient to + * initiate an INVITE session to some target. + * + * A REFER request can be sent inside or outside existing dialog context, + * although for call transfer case, it is more common to send REFER inside + * existing INVITE session context. PJSIP supports both sending REFER request + * inside or outside dialog context. + * + * The REFER framework uses @ref PJSIP_EVENT_NOT to manage the event + * subscription created by the REFER request. Because of this, application + * must link with <b>pjsip-ua</b> AND <b>pjsip-simple</b> static libraries + * to use REFER functionality. + * + * Reference: + * - <A HREF="http://www.ietf.org/rfc/rfc3515.txt">RFC 3515: The Session + * Initiation Protocol (SIP) Refer Method</A> + * - @ref PJSIP_EVENT_NOT */ diff --git a/pjsip/include/pjsip/sip_endpoint.h b/pjsip/include/pjsip/sip_endpoint.h index 6e166090..34413d7c 100644 --- a/pjsip/include/pjsip/sip_endpoint.h +++ b/pjsip/include/pjsip/sip_endpoint.h @@ -403,6 +403,31 @@ PJ_DECL(const pjsip_hdr*) pjsip_endpt_get_capability( pjsip_endpoint *endpt, /** + * Check if we have the specified capability. + * + * @param endpt The endpoint. + * @param htype The header type to be retrieved, which value may be: + * - PJSIP_H_ACCEPT + * - PJSIP_H_ALLOW + * - PJSIP_H_SUPPORTED + * @param hname If htype specifies PJSIP_H_OTHER, then the header name + * must be supplied in this argument. Otherwise the value + * must be set to NULL. + * @param token The capability token to check. For example, if \a htype + * is PJSIP_H_ALLOW, then \a token specifies the method + * names; if \a htype is PJSIP_H_SUPPORTED, then \a token + * specifies the extension names such as "100rel". + * + * @return PJ_TRUE if the specified capability is supported, + * otherwise PJ_FALSE.. + */ +PJ_DECL(pj_bool_t) pjsip_endpt_has_capability( pjsip_endpoint *endpt, + int htype, + const pj_str_t *hname, + const pj_str_t *token); + + +/** * Add or register new capabilities as indicated by the tags to the * appropriate header fields in the endpoint. * diff --git a/pjsip/include/pjsip/sip_ua_layer.h b/pjsip/include/pjsip/sip_ua_layer.h index c4e2d7c7..26dea965 100644 --- a/pjsip/include/pjsip/sip_ua_layer.h +++ b/pjsip/include/pjsip/sip_ua_layer.h @@ -81,6 +81,28 @@ PJ_DECL(pjsip_user_agent*) pjsip_ua_instance(void); /** + * Find a dialog with the specified Call-ID and tags properties. This + * function may optionally lock the matching dialog instance before + * returning it back to the caller. + * + * @param call_id The call ID to be matched. + * @param local_tag The local tag to be matched. + * @param remote_tag The remote tag to be matched. + * @param lock_dialog If non-zero, instruct the function to lock the + * matching dialog with #pjsip_dlg_inc_lock(). + * Application is responsible to release the dialog's + * lock after it has finished manipulating the dialog, + * by calling #pjsip_dlg_dec_lock(). + * + * @return The matching dialog instance, or NULL if no matching + * dialog is found. + */ +PJ_DECL(pjsip_dialog*) pjsip_ua_find_dialog(const pj_str_t *call_id, + const pj_str_t *local_tag, + const pj_str_t *remote_tag, + pj_bool_t lock_dialog); + +/** * Destroy the user agent layer. * * @return PJ_SUCCESS on success. diff --git a/pjsip/include/pjsip/sip_util.h b/pjsip/include/pjsip/sip_util.h index 2b77e469..8a030fd6 100644 --- a/pjsip/include/pjsip/sip_util.h +++ b/pjsip/include/pjsip/sip_util.h @@ -333,6 +333,31 @@ PJ_DECL(pj_status_t) pjsip_endpt_send_response( pjsip_endpoint *endpt, pj_bool_t *cont)); /** + * This is a convenient function which wraps #pjsip_get_response_addr() and + * #pjsip_endpt_send_response() in a single function. + * + * @param endpt The endpoint instance. + * @param rdata The original request to be responded. + * @param tdata The response message to be sent. + * @param token Token to be passed back when the callback is called. + * @param cb Optional callback to notify the transmission status + * to application, and to inform whether next address or + * transport will be tried. + * + * @return PJ_SUCCESS if response has been successfully created and + * sent to transport layer, or a non-zero error code. + * However, even when it returns PJ_SUCCESS, there is no + * guarantee that the response has been successfully sent. + */ +PJ_DECL(pj_status_t) pjsip_endpt_send_response2(pjsip_endpoint *endpt, + pjsip_rx_data *rdata, + pjsip_tx_data *tdata, + void *token, + void (*cb)(pjsip_send_state*, + pj_ssize_t sent, + pj_bool_t *cont)); + +/** * This composite function sends response message statelessly to an incoming * request message. Internally it calls #pjsip_endpt_create_response() and * #pjsip_endpt_send_response(). diff --git a/pjsip/include/pjsip_ua.h b/pjsip/include/pjsip_ua.h index 205ef757..d3dda395 100644 --- a/pjsip/include/pjsip_ua.h +++ b/pjsip/include/pjsip_ua.h @@ -21,6 +21,7 @@ #include <pjsip-ua/sip_inv.h> #include <pjsip-ua/sip_regc.h> +#include <pjsip-ua/sip_replaces.h> #include <pjsip-ua/sip_xfer.h> diff --git a/pjsip/include/pjsua-lib/pjsua.h b/pjsip/include/pjsua-lib/pjsua.h index efdf9f4c..12503780 100644 --- a/pjsip/include/pjsua-lib/pjsua.h +++ b/pjsip/include/pjsua-lib/pjsua.h @@ -337,6 +337,38 @@ typedef struct pjsua_callback pj_bool_t *p_cont); /** + * Notify application about incoming INVITE with Replaces header. + * Application may reject the request by setting non-2xx code. + * + * @param call_id The call ID to be replaced. + * @param rdata The incoming INVITE request to replace the call. + * @param st_code Status code to be set by application. Application + * should only return a final status (200-699). + * @param st_text Optional status text to be set by application. + */ + void (*on_call_replace_request)(pjsua_call_id call_id, + pjsip_rx_data *rdata, + int *st_code, + pj_str_t *st_text); + + /** + * Notify application that an existing call has been replaced with + * a new call. This happens when PJSUA-API receives incoming INVITE + * request with Replaces header. + * + * After this callback is called, normally PJSUA-API will disconnect + * \a old_call_id and establish \a new_call_id. + * + * @param old_call_id Existing call which to be replaced with the + * new call. + * @param new_call_id The new call. + * @param rdata The incoming INVITE with Replaces request. + */ + void (*on_call_replaced)(pjsua_call_id old_call_id, + pjsua_call_id new_call_id); + + + /** * Notify application when registration status has changed. * Application may then query the account info to get the * registration details. @@ -1752,9 +1784,11 @@ PJ_DECL(pj_status_t) pjsua_call_reinvite(pjsua_call_id call_id, /** - * Initiate call transfer to the specified address. + * Initiate call transfer to the specified address. This function will send + * REFER request to instruct remote call party to initiate a new INVITE + * session to the specified destination/target. * - * @param call_id Call identification. + * @param call_id The call id to be transfered. * @param dest Address of new target to be contacted. * @param msg_data Optional message components to be sent with * the request. @@ -1766,6 +1800,35 @@ PJ_DECL(pj_status_t) pjsua_call_xfer(pjsua_call_id call_id, const pjsua_msg_data *msg_data); /** + * Flag to indicate that "Require: replaces" should not be put in the + * outgoing INVITE request caused by REFER request created by + * #pjsua_call_xfer_replaces(). + */ +#define PJSUA_XFER_NO_REQUIRE_REPLACES 1 + +/** + * Initiate attended call transfer. This function will send REFER request + * to instruct remote call party to initiate new INVITE session to the URL + * of \a dest_call_id. The party at \a dest_call_id then should "replace" + * the call with us with the new call from the REFER recipient. + * + * @param call_id The call id to be transfered. + * @param dest_call_id The call id to be replaced. + * @param options Application may specify PJSUA_XFER_NO_REQUIRE_REPLACES + * to suppress the inclusion of "Require: replaces" in + * the outgoing INVITE request created by the REFER + * request. + * @param msg_data Optional message components to be sent with + * the request. + * + * @return PJ_SUCCESS on success, or the appropriate error code. + */ +PJ_DECL(pj_status_t) pjsua_call_xfer_replaces(pjsua_call_id call_id, + pjsua_call_id dest_call_id, + unsigned options, + const pjsua_msg_data *msg_data); + +/** * Send DTMF digits to remote using RFC 2833 payload formats. * * @param call_id Call identification. diff --git a/pjsip/src/pjsip-ua/sip_inv.c b/pjsip/src/pjsip-ua/sip_inv.c index 97507458..8c6b4ccd 100644 --- a/pjsip/src/pjsip-ua/sip_inv.c +++ b/pjsip/src/pjsip-ua/sip_inv.c @@ -386,8 +386,10 @@ PJ_DEF(pj_status_t) pjsip_inv_usage_init( pjsip_endpoint *endpt, /* Register the module. */ status = pjsip_endpt_register_module(endpt, &mod_inv.mod); + if (status != PJ_SUCCESS) + return status; - return status; + return PJ_SUCCESS; } /* @@ -680,8 +682,9 @@ PJ_DEF(pj_status_t) pjsip_inv_verify_request(pjsip_rx_data *rdata, req_hdr = pjsip_msg_find_hdr(msg, PJSIP_H_REQUIRE, NULL); if (req_hdr) { unsigned i; - pj_str_t STR_100REL = { "100rel", 6}; - pj_str_t STR_TIMER = { "timer", 5 }; + const pj_str_t STR_100REL = { "100rel", 6}; + const pj_str_t STR_TIMER = { "timer", 5 }; + const pj_str_t STR_REPLACES = { "replaces", 8 }; unsigned unsupp_cnt = 0; pj_str_t unsupp_tags[PJSIP_GENERIC_ARRAY_MAX_COUNT]; @@ -696,6 +699,14 @@ PJ_DEF(pj_status_t) pjsip_inv_verify_request(pjsip_rx_data *rdata, { rem_option |= PJSIP_INV_REQUIRE_TIMER; + } else if (pj_stricmp(&req_hdr->values[i], &STR_REPLACES)==0) { + pj_bool_t supp; + + supp = pjsip_endpt_has_capability(endpt, PJSIP_H_SUPPORTED, + NULL, &STR_REPLACES); + if (!supp) + unsupp_tags[unsupp_cnt++] = req_hdr->values[i]; + } else { /* Unknown/unsupported extension tag! */ unsupp_tags[unsupp_cnt++] = req_hdr->values[i]; diff --git a/pjsip/src/pjsip-ua/sip_replaces.c b/pjsip/src/pjsip-ua/sip_replaces.c new file mode 100644 index 00000000..acf8181b --- /dev/null +++ b/pjsip/src/pjsip-ua/sip_replaces.c @@ -0,0 +1,355 @@ +/* $Id$ */ +/* + * Copyright (C) 2003-2006 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 + */ +#include <pjsip-ua/sip_replaces.h> +#include <pjsip-ua/sip_inv.h> +#include <pjsip/print_util.h> +#include <pjsip/sip_endpoint.h> +#include <pjsip/sip_errno.h> +#include <pjsip/sip_parser.h> +#include <pjsip/sip_transport.h> +#include <pjsip/sip_ua_layer.h> +#include <pjsip/sip_util.h> +#include <pj/assert.h> +#include <pj/pool.h> +#include <pj/string.h> + + +/* + * Replaces header vptr. + */ +static int replaces_hdr_print( pjsip_replaces_hdr *hdr, + char *buf, pj_size_t size); +static pjsip_replaces_hdr* replaces_hdr_clone( pj_pool_t *pool, + const pjsip_replaces_hdr *hdr); +static pjsip_replaces_hdr* replaces_hdr_shallow_clone( pj_pool_t *pool, + const pjsip_replaces_hdr*); + +static pjsip_hdr_vptr replaces_hdr_vptr = +{ + (pjsip_hdr_clone_fptr) &replaces_hdr_clone, + (pjsip_hdr_clone_fptr) &replaces_hdr_shallow_clone, + (pjsip_hdr_print_fptr) &replaces_hdr_print, +}; + +/* Globals */ +static pjsip_endpoint *the_endpt; + +PJ_DEF(pjsip_replaces_hdr*) pjsip_replaces_hdr_create(pj_pool_t *pool) +{ + pjsip_replaces_hdr *hdr = pj_pool_zalloc(pool, sizeof(*hdr)); + hdr->type = PJSIP_H_OTHER; + hdr->name.ptr = "Replaces"; + hdr->name.slen = 8; + hdr->vptr = &replaces_hdr_vptr; + pj_list_init(hdr); + pj_list_init(&hdr->other_param); + return hdr; +} + +static int replaces_hdr_print( pjsip_replaces_hdr *hdr, + char *buf, pj_size_t size) +{ + char *p = buf; + char *endbuf = buf+size; + int printed; + + copy_advance(p, hdr->name); + *p++ = ':'; + *p++ = ' '; + + copy_advance(p, hdr->call_id); + copy_advance_pair(p, ";to-tag=", 8, hdr->to_tag); + copy_advance_pair(p, ";from-tag=", 10, hdr->from_tag); + + if (hdr->early_only) { + const pj_str_t str_early_only = { ";early-only", 11 }; + copy_advance(p, str_early_only); + } + + printed = pjsip_param_print_on(&hdr->other_param, p, endbuf-p, + &pjsip_TOKEN_SPEC, + &pjsip_TOKEN_SPEC, ';'); + if (printed < 0) + return printed; + + p += printed; + return p - buf; +} + +static pjsip_replaces_hdr* replaces_hdr_clone( pj_pool_t *pool, + const pjsip_replaces_hdr *rhs) +{ + pjsip_replaces_hdr *hdr = pjsip_replaces_hdr_create(pool); + pj_strdup(pool, &hdr->call_id, &rhs->call_id); + pj_strdup(pool, &hdr->to_tag, &rhs->to_tag); + pj_strdup(pool, &hdr->from_tag, &rhs->from_tag); + hdr->early_only = rhs->early_only; + pjsip_param_clone(pool, &hdr->other_param, &rhs->other_param); + return hdr; +} + +static pjsip_replaces_hdr* +replaces_hdr_shallow_clone( pj_pool_t *pool, + const pjsip_replaces_hdr *rhs ) +{ + pjsip_replaces_hdr *hdr = pj_pool_alloc(pool, sizeof(*hdr)); + pj_memcpy(hdr, rhs, sizeof(*hdr)); + pjsip_param_shallow_clone(pool, &hdr->other_param, &rhs->other_param); + return hdr; +} + + +/* + * Parse Replaces header. + */ +static pjsip_hdr *parse_hdr_replaces(pjsip_parse_ctx *ctx) +{ + pjsip_replaces_hdr *hdr = pjsip_replaces_hdr_create(ctx->pool); + const pj_str_t to_tag = { "to-tag", 6 }; + const pj_str_t from_tag = { "from-tag", 8 }; + const pj_str_t early_only_tag = { "early-only", 10 }; + + pj_scan_get(ctx->scanner, &pjsip_TOKEN_SPEC, &hdr->call_id); + + while (*ctx->scanner->curptr == ';') { + pj_str_t pname, pvalue; + + pj_scan_get_char(ctx->scanner); + pjsip_parse_param_imp(ctx->scanner, ctx->pool, &pname, &pvalue, 0); + + if (pj_stricmp(&pname, &to_tag)==0) { + hdr->to_tag = pvalue; + } else if (pj_stricmp(&pname, &from_tag)==0) { + hdr->from_tag = pvalue; + } else if (pj_stricmp(&pname, &early_only_tag)==0) { + hdr->early_only = PJ_TRUE; + } else { + pjsip_param *param = pj_pool_alloc(ctx->pool, sizeof(pjsip_param)); + param->name = pname; + param->value = pvalue; + pj_list_push_back(&hdr->other_param, param); + } + } + pjsip_parse_end_hdr_imp( ctx->scanner ); + return (pjsip_hdr*)hdr; +} + +/* + * Initialize Replaces support in PJSIP. + */ +PJ_DEF(pj_status_t) pjsip_replaces_init_module(pjsip_endpoint *endpt) +{ + pj_status_t status; + const pj_str_t STR_REPLACES = { "replaces", 8 }; + static pj_bool_t is_initialized; + + the_endpt = endpt; + + if (is_initialized) + return PJ_SUCCESS; + + /* Register Replaces header parser */ + status = pjsip_register_hdr_parser( "Replaces", NULL, + &parse_hdr_replaces); + if (status != PJ_SUCCESS) + return status; + + /* Register "replaces" capability */ + status = pjsip_endpt_add_capability(endpt, NULL, PJSIP_H_SUPPORTED, NULL, + 1, &STR_REPLACES); + + is_initialized = PJ_TRUE; + return PJ_SUCCESS; +} + + +/* + * Verify that incoming request with Replaces header can be processed. + */ +PJ_DEF(pj_status_t) pjsip_replaces_verify_request( pjsip_rx_data *rdata, + pjsip_dialog **p_dlg, + pj_bool_t lock_dlg, + pjsip_tx_data **p_tdata) +{ + const pj_str_t STR_REPLACES = { "Replaces", 8 }; + pjsip_replaces_hdr *rep_hdr; + int code = 200; + const char *warn_text = NULL; + pjsip_hdr res_hdr_list; + pjsip_dialog *dlg = NULL; + pjsip_inv_session *inv; + pj_status_t status = PJ_SUCCESS; + + PJ_ASSERT_RETURN(rdata && p_dlg, PJ_EINVAL); + + /* Check that pjsip_replaces_init_module() has been called. */ + PJ_ASSERT_RETURN(the_endpt != NULL, PJ_EINVALIDOP); + + + /* Init output arguments */ + *p_dlg = NULL; + if (p_tdata) *p_tdata = NULL; + + pj_list_init(&res_hdr_list); + + /* Find Replaces header */ + rep_hdr = (pjsip_replaces_hdr*) + pjsip_msg_find_hdr_by_name(rdata->msg_info.msg, &STR_REPLACES, + NULL); + if (!rep_hdr) { + /* No Replaces header. No further processing is necessary. */ + return PJ_SUCCESS; + } + + + /* Check that there's no other Replaces header and return 400 Bad Request + * if not. + */ + if (pjsip_msg_find_hdr_by_name(rdata->msg_info.msg, &STR_REPLACES, + rep_hdr->next)) { + code = PJSIP_SC_BAD_REQUEST; + warn_text = "Found multiple Replaces headers"; + goto on_return; + } + + /* Find the dialog identified by Replaces header (and always lock the + * dialog no matter what application wants). + */ + dlg = pjsip_ua_find_dialog(&rep_hdr->call_id, &rep_hdr->to_tag, + &rep_hdr->from_tag, PJ_TRUE); + + /* Respond with 481 "Call/Transaction Does Not Exist" response if + * no dialog is found. + */ + if (dlg == NULL) { + code = PJSIP_SC_CALL_TSX_DOES_NOT_EXIST; + warn_text = "No dialog found for Replaces request"; + goto on_return; + } + + /* Get the invite session within the dialog */ + inv = pjsip_dlg_get_inv_session(dlg); + + /* Return 481 if no invite session is present. */ + if (inv == NULL) { + code = PJSIP_SC_CALL_TSX_DOES_NOT_EXIST; + warn_text = "No INVITE session found for Replaces request"; + goto on_return; + } + + /* Return 603 Declined response if invite session has already + * terminated + */ + if (inv->state >= PJSIP_INV_STATE_DISCONNECTED) { + code = PJSIP_SC_DECLINE; + warn_text = "INVITE session already terminated"; + goto on_return; + } + + /* If "early-only" flag is present, check that the invite session + * has not been confirmed yet. If the session has been confirmed, + * return 486 "Busy Here" response. + */ + if (rep_hdr->early_only && inv->state >= PJSIP_INV_STATE_CONNECTING) { + code = PJSIP_SC_BUSY_HERE; + warn_text = "INVITE session already established"; + goto on_return; + } + + /* If the Replaces header field matches an early dialog that was not + * initiated by this UA, it returns a 481 (Call/Transaction Does Not + * Exist) response to the new INVITE. + */ + if (inv->state <= PJSIP_INV_STATE_EARLY && inv->role != PJSIP_ROLE_UAC) { + code = PJSIP_SC_CALL_TSX_DOES_NOT_EXIST; + warn_text = "Found early INVITE session but not initiated by this UA"; + goto on_return; + } + + + /* + * Looks like everything is okay!! + */ + *p_dlg = dlg; + status = PJ_SUCCESS; + code = 200; + +on_return: + + /* Create response if necessary */ + if (code != 200) { + /* If we have dialog we must unlock it */ + if (dlg) + pjsip_dlg_dec_lock(dlg); + + /* Create response */ + if (p_tdata) { + pjsip_tx_data *tdata; + const pjsip_hdr *h; + + status = pjsip_endpt_create_response(the_endpt, rdata, code, + NULL, &tdata); + + if (status != PJ_SUCCESS) + return status; + + /* Add response headers. */ + h = res_hdr_list.next; + while (h != &res_hdr_list) { + pjsip_hdr *cloned; + + cloned = pjsip_hdr_clone(tdata->pool, h); + PJ_ASSERT_RETURN(cloned, PJ_ENOMEM); + + pjsip_msg_add_hdr(tdata->msg, cloned); + + h = h->next; + } + + /* Add warn text, if any */ + if (warn_text) { + pjsip_warning_hdr *warn_hdr; + pj_str_t warn_value = pj_str((char*)warn_text); + + warn_hdr=pjsip_warning_hdr_create(tdata->pool, 399, + pjsip_endpt_name(the_endpt), + &warn_value); + pjsip_msg_add_hdr(tdata->msg, (pjsip_hdr*)warn_hdr); + } + + *p_tdata = tdata; + } + + /* Can not return PJ_SUCCESS when response message is produced. + * Ref: PROTOS test ~#2490 + */ + if (status == PJ_SUCCESS) + status = PJSIP_ERRNO_FROM_SIP_STATUS(code); + + } else { + /* If application doesn't want to lock the dialog, unlock it */ + if (!lock_dlg) + pjsip_dlg_dec_lock(dlg); + } + + return status; +} + + + diff --git a/pjsip/src/pjsip/sip_dialog.c b/pjsip/src/pjsip/sip_dialog.c index 8c2f287c..515b8616 100644 --- a/pjsip/src/pjsip/sip_dialog.c +++ b/pjsip/src/pjsip/sip_dialog.c @@ -145,9 +145,16 @@ PJ_DEF(pj_status_t) pjsip_dlg_create_uac( pjsip_user_agent *ua, param = uri->header_param.next; while (param != &uri->header_param) { pjsip_hdr *hdr; + int c; + + c = param->value.ptr[param->value.slen]; + param->value.ptr[param->value.slen] = '\0'; hdr = pjsip_parse_hdr(dlg->pool, ¶m->name, param->value.ptr, param->value.slen, NULL); + + param->value.ptr[param->value.slen] = (char)c; + if (hdr == NULL) { status = PJSIP_EINVALIDURI; goto on_error; @@ -207,6 +214,34 @@ PJ_DEF(pj_status_t) pjsip_dlg_create_uac( pjsip_user_agent *ua, goto on_error; } + /* Remove header param from remote.info_str, if any */ + if (PJSIP_URI_SCHEME_IS_SIP(dlg->remote.info->uri) || + PJSIP_URI_SCHEME_IS_SIPS(dlg->remote.info->uri)) + { + pjsip_sip_uri *sip_uri = pjsip_uri_get_uri(dlg->remote.info->uri); + if (!pj_list_empty(&sip_uri->header_param)) { + pj_str_t tmp; + + /* Remove all header param */ + pj_list_init(&sip_uri->header_param); + + /* Print URI */ + tmp.ptr = pj_pool_alloc(dlg->pool, dlg->remote.info_str.slen); + tmp.slen = pjsip_uri_print(PJSIP_URI_IN_FROMTO_HDR, + sip_uri, tmp.ptr, + dlg->remote.info_str.slen); + + if (tmp.slen < 1) { + status = PJSIP_EURITOOLONG; + goto on_error; + } + + /* Assign remote.info_str */ + dlg->remote.info_str = tmp; + } + } + + /* Initialize remote's CSeq to -1. */ dlg->remote.cseq = dlg->remote.first_cseq = -1; @@ -361,7 +396,7 @@ PJ_DEF(pj_status_t) pjsip_dlg_create_uas( pjsip_user_agent *ua, } else tmp.slen = len; - /* Save the local info. */ + /* Save the remote info. */ pj_strdup(dlg->pool, &dlg->remote.info_str, &tmp); diff --git a/pjsip/src/pjsip/sip_endpoint.c b/pjsip/src/pjsip/sip_endpoint.c index 571ee11c..18345725 100644 --- a/pjsip/src/pjsip/sip_endpoint.c +++ b/pjsip/src/pjsip/sip_endpoint.c @@ -320,6 +320,32 @@ PJ_DEF(const pjsip_hdr*) pjsip_endpt_get_capability( pjsip_endpoint *endpt, /* + * Check if the specified capability is supported. + */ +PJ_DEF(pj_bool_t) pjsip_endpt_has_capability( pjsip_endpoint *endpt, + int htype, + const pj_str_t *hname, + const pj_str_t *token) +{ + const pjsip_generic_array_hdr *hdr; + unsigned i; + + hdr = (const pjsip_generic_array_hdr*) + pjsip_endpt_get_capability(endpt, htype, hname); + if (!hdr) + return PJ_FALSE; + + PJ_ASSERT_RETURN(token != NULL, PJ_FALSE); + + for (i=0; i<hdr->count; ++i) { + if (!pj_stricmp(&hdr->values[i], token)) + return PJ_TRUE; + } + + return PJ_FALSE; +} + +/* * Add or register new capabilities as indicated by the tags to the * appropriate header fields in the endpoint. */ diff --git a/pjsip/src/pjsip/sip_ua_layer.c b/pjsip/src/pjsip/sip_ua_layer.c index 48764081..ad70ab73 100644 --- a/pjsip/src/pjsip/sip_ua_layer.c +++ b/pjsip/src/pjsip/sip_ua_layer.c @@ -409,6 +409,81 @@ PJ_DEF(pjsip_dialog*) pjsip_tsx_get_dlg( pjsip_transaction *tsx ) } +/* + * Find a dialog. + */ +PJ_DEF(pjsip_dialog*) pjsip_ua_find_dialog(const pj_str_t *call_id, + const pj_str_t *local_tag, + const pj_str_t *remote_tag, + pj_bool_t lock_dialog) +{ + struct dlg_set *dlg_set; + pjsip_dialog *dlg; + + PJ_ASSERT_RETURN(call_id && local_tag && remote_tag, NULL); + + /* Lock user agent. */ + pj_mutex_lock(mod_ua.mutex); + + /* Lookup the dialog set. */ + dlg_set = pj_hash_get(mod_ua.dlg_table, local_tag->ptr, local_tag->slen, + NULL); + if (dlg_set == NULL) { + /* Not found */ + pj_mutex_unlock(mod_ua.mutex); + return NULL; + } + + /* Dialog set is found, now find the matching dialog based on the + * remote tag. + */ + dlg = dlg_set->dlg_list.next; + while (dlg != (pjsip_dialog*)&dlg_set->dlg_list) { + if (pj_strcmp(&dlg->remote.info->tag, remote_tag) == 0) + break; + dlg = dlg->next; + } + + if (dlg == (pjsip_dialog*)&dlg_set->dlg_list) { + /* Not found */ + pj_mutex_unlock(mod_ua.mutex); + return NULL; + } + + /* Dialog has been found. It SHOULD have the right Call-ID!! */ + PJ_ASSERT_ON_FAIL(pj_strcmp(&dlg->call_id->id, call_id)==0, + {pj_mutex_unlock(mod_ua.mutex); return NULL;}); + + if (lock_dialog) { + if (pjsip_dlg_try_inc_lock(dlg) != PJ_SUCCESS) { + + /* + * Unable to acquire dialog's lock while holding the user + * agent's mutex. Release the UA mutex before retrying once + * more. + * + * THIS MAY CAUSE RACE CONDITION! + */ + + /* Unlock user agent. */ + pj_mutex_unlock(mod_ua.mutex); + /* Lock dialog */ + pjsip_dlg_inc_lock(dlg); + + } else { + /* Unlock user agent. */ + pj_mutex_unlock(mod_ua.mutex); + } + + } else { + /* Unlock user agent. */ + pj_mutex_unlock(mod_ua.mutex); + } + + return dlg; +} + + /* * Find the first dialog in dialog set in hash table for an incoming message. */ diff --git a/pjsip/src/pjsip/sip_util.c b/pjsip/src/pjsip/sip_util.c index 56928e6e..0b72e568 100644 --- a/pjsip/src/pjsip/sip_util.c +++ b/pjsip/src/pjsip/sip_util.c @@ -1195,6 +1195,31 @@ PJ_DEF(pj_status_t) pjsip_endpt_send_response( pjsip_endpoint *endpt, } /* + * Send response combo + */ +PJ_DEF(pj_status_t) pjsip_endpt_send_response2( pjsip_endpoint *endpt, + pjsip_rx_data *rdata, + pjsip_tx_data *tdata, + void *token, + void (*cb)(pjsip_send_state*, + pj_ssize_t sent, + pj_bool_t *cont)) +{ + pjsip_response_addr res_addr; + pj_status_t status; + + status = pjsip_get_response_addr(tdata->pool, rdata, &res_addr); + if (status != PJ_SUCCESS) { + pjsip_tx_data_dec_ref(tdata); + return PJ_SUCCESS; + } + + status = pjsip_endpt_send_response(endpt, &res_addr, tdata, token, cb); + return status; +} + + +/* * Send response */ PJ_DEF(pj_status_t) pjsip_endpt_respond_stateless( pjsip_endpoint *endpt, diff --git a/pjsip/src/pjsua-lib/pjsua_call.c b/pjsip/src/pjsua-lib/pjsua_call.c index b93abefe..1df12e5c 100644 --- a/pjsip/src/pjsua-lib/pjsua_call.c +++ b/pjsip/src/pjsua-lib/pjsua_call.c @@ -372,6 +372,7 @@ pj_bool_t pjsua_call_on_incoming(pjsip_rx_data *rdata) { pj_str_t contact; pjsip_dialog *dlg = pjsip_rdata_get_dlg(rdata); + pjsip_dialog *replaced_dlg = NULL; pjsip_transaction *tsx = pjsip_rdata_get_tsx(rdata); pjsip_msg *msg = rdata->msg_info.msg; pjsip_tx_data *response = NULL; @@ -419,6 +420,66 @@ pj_bool_t pjsua_call_on_incoming(pjsip_rx_data *rdata) /* Mark call start time. */ pj_gettimeofday(&call->start_time); + /* Check INVITE request for Replaces header. If Replaces header is + * present, the function will make sure that we can handle the request. + */ + status = pjsip_replaces_verify_request(rdata, &replaced_dlg, PJ_FALSE, + &response); + if (status != PJ_SUCCESS) { + /* + * Something wrong with the Replaces header. + */ + if (response) { + pjsip_response_addr res_addr; + + pjsip_get_response_addr(response->pool, rdata, &res_addr); + pjsip_endpt_send_response(pjsua_var.endpt, &res_addr, response, + NULL, NULL); + + } else { + + /* Respond with 500 (Internal Server Error) */ + pjsip_endpt_respond_stateless(pjsua_var.endpt, rdata, 500, NULL, + NULL, NULL); + } + + PJSUA_UNLOCK(); + return PJ_TRUE; + } + + /* If this INVITE request contains Replaces header, notify application + * about the request so that application can do subsequent checking + * if it wants to. + */ + if (replaced_dlg != NULL && pjsua_var.ua_cfg.cb.on_call_replace_request) { + pjsua_call *replaced_call; + int st_code = 200; + pj_str_t st_text = { "OK", 2 }; + + /* Get the replaced call instance */ + replaced_call = replaced_dlg->mod_data[pjsua_var.mod.id]; + + /* Notify application */ + pjsua_var.ua_cfg.cb.on_call_replace_request(replaced_call->index, + rdata, &st_code, &st_text); + + /* Must specify final response */ + PJ_ASSERT_ON_FAIL(st_code >= 200, st_code = 200); + + /* Check if application rejects this request. */ + if (st_code >= 300) { + + if (st_text.slen == 2) + st_text = *pjsip_get_status_text(st_code); + + pjsip_endpt_respond(pjsua_var.endpt, NULL, rdata, + st_code, &st_text, NULL, NULL, NULL); + PJSUA_UNLOCK(); + return PJ_TRUE; + } + } + + /* Get media capability from media endpoint: */ status = pjmedia_endpt_create_sdp( pjsua_var.med_endpt, rdata->tp_info.pool, 1, @@ -545,9 +606,56 @@ pj_bool_t pjsua_call_on_incoming(pjsip_rx_data *rdata) ++pjsua_var.call_cnt; - /* Notify application */ - if (pjsua_var.ua_cfg.cb.on_incoming_call) - pjsua_var.ua_cfg.cb.on_incoming_call(acc_id, call_id, rdata); + /* Check if this request should replace existing call */ + if (replaced_dlg) { + pjsip_inv_session *replaced_inv; + struct pjsua_call *replaced_call; + pjsip_tx_data *tdata; + + /* Get the invite session in the dialog */ + replaced_inv = pjsip_dlg_get_inv_session(replaced_dlg); + + /* Get the replaced call instance */ + replaced_call = replaced_dlg->mod_data[pjsua_var.mod.id]; + + /* Notify application */ + if (pjsua_var.ua_cfg.cb.on_call_replaced) + pjsua_var.ua_cfg.cb.on_call_replaced(replaced_call->index, + call_id); + + PJ_LOG(4,(THIS_FILE, "Answering replacement call %d with 200/OK", + call_id)); + + /* Answer the new call with 200 response */ + status = pjsip_inv_answer(inv, 200, NULL, NULL, &tdata); + if (status == PJ_SUCCESS) + status = pjsip_inv_send_msg(inv, tdata); + + if (status != PJ_SUCCESS) + pjsua_perror(THIS_FILE, "Error answering session", status); + + + PJ_LOG(4,(THIS_FILE, "Disconnecting replaced call %d", + replaced_call->index)); + + /* Disconnect replaced invite session */ + status = pjsip_inv_end_session(replaced_inv, PJSIP_SC_GONE, NULL, + &tdata); + if (status == PJ_SUCCESS && tdata) + status = pjsip_inv_send_msg(replaced_inv, tdata); + + if (status != PJ_SUCCESS) + pjsua_perror(THIS_FILE, "Error terminating session", status); + + + } else { + + /* Notify application */ + if (pjsua_var.ua_cfg.cb.on_incoming_call) + pjsua_var.ua_cfg.cb.on_incoming_call(acc_id, call_id, rdata); + + } + /* This INVITE request has been handled. */ PJSUA_UNLOCK(); @@ -1065,6 +1173,8 @@ PJ_DEF(pj_status_t) pjsua_call_xfer( pjsua_call_id call_id, pjsip_tx_data *tdata; pjsua_call *call; pjsip_dialog *dlg; + pjsip_generic_string_hdr *gs_hdr; + const pj_str_t str_ref_by = { "Referred-By", 11 }; struct pjsip_evsub_user xfer_cb; pj_status_t status; @@ -1101,6 +1211,12 @@ PJ_DEF(pj_status_t) pjsua_call_xfer( pjsua_call_id call_id, return status; } + /* Add Referred-By header */ + gs_hdr = pjsip_generic_string_hdr_create(tdata->pool, &str_ref_by, + &dlg->local.info_str); + pjsip_msg_add_hdr(tdata->msg, (pjsip_hdr*)gs_hdr); + + /* Add additional headers etc */ pjsua_process_msg_data( tdata, msg_data); @@ -1125,6 +1241,86 @@ PJ_DEF(pj_status_t) pjsua_call_xfer( pjsua_call_id call_id, /* + * Initiate attended call transfer to the specified address. + */ +PJ_DEF(pj_status_t) pjsua_call_xfer_replaces( pjsua_call_id call_id, + pjsua_call_id dest_call_id, + unsigned options, + const pjsua_msg_data *msg_data) +{ + pjsua_call *dest_call; + pjsip_dialog *dest_dlg; + char str_dest_buf[512]; + pj_str_t str_dest; + int len; + pjsip_uri *uri; + pj_status_t status; + + + PJ_ASSERT_RETURN(call_id>=0 && call_id<(int)pjsua_var.ua_cfg.max_calls, + PJ_EINVAL); + PJ_ASSERT_RETURN(dest_call_id>=0 && + dest_call_id<(int)pjsua_var.ua_cfg.max_calls, + PJ_EINVAL); + + status = acquire_call("pjsua_call_xfer_replaces()", dest_call_id, + &dest_call, &dest_dlg); + if (status != PJ_SUCCESS) + return status; + + /* + * Create REFER destination URI with Replaces field. + */ + + /* Make sure we have sufficient buffer's length */ + PJ_ASSERT_RETURN( dest_dlg->remote.info_str.slen + + dest_dlg->call_id->id.slen + + dest_dlg->remote.info->tag.slen + + dest_dlg->local.info->tag.slen + 32 + < sizeof(str_dest_buf), PJSIP_EURITOOLONG); + + /* Print URI */ + str_dest_buf[0] = '<'; + str_dest.slen = 1; + + uri = pjsip_uri_get_uri(dest_dlg->remote.info->uri); + len = pjsip_uri_print(PJSIP_URI_IN_REQ_URI, uri, + str_dest_buf+1, sizeof(str_dest_buf)-1); + if (len < 0) + return PJSIP_EURITOOLONG; + + str_dest.slen += len; + + + /* Build the URI */ + len = pj_ansi_snprintf(str_dest_buf + str_dest.slen, + sizeof(str_dest_buf) - str_dest.slen, + "?%s" + "Replaces=%.*s" + "%%3Bto-tag%%3D%.*s" + "%%3Bfrom-tag%%3D%.*s>", + ((options&PJSUA_XFER_NO_REQUIRE_REPLACES) ? + "" : "Require=replaces&"), + (int)dest_dlg->call_id->id.slen, + dest_dlg->call_id->id.ptr, + (int)dest_dlg->remote.info->tag.slen, + dest_dlg->remote.info->tag.ptr, + (int)dest_dlg->local.info->tag.slen, + dest_dlg->local.info->tag.ptr); + + PJ_ASSERT_RETURN(len > 0 && len <= (int)sizeof(str_dest_buf)-str_dest.slen, + PJSIP_EURITOOLONG); + + str_dest.ptr = str_dest_buf; + str_dest.slen += len; + + pjsip_dlg_dec_lock(dest_dlg); + + return pjsua_call_xfer(call_id, &str_dest, msg_data); +} + + +/* * Send DTMF digits to remote using RFC 2833 payload formats. */ PJ_DEF(pj_status_t) pjsua_call_dial_dtmf( pjsua_call_id call_id, @@ -2340,10 +2536,13 @@ static void on_call_transfered( pjsip_inv_session *inv, int new_call; const pj_str_t str_refer_to = { "Refer-To", 8}; const pj_str_t str_refer_sub = { "Refer-Sub", 9 }; + const pj_str_t str_ref_by = { "Referred-By", 11 }; pjsip_generic_string_hdr *refer_to; pjsip_generic_string_hdr *refer_sub; + pjsip_hdr *ref_by_hdr; pj_bool_t no_refer_sub = PJ_FALSE; char *uri; + pjsua_msg_data msg_data; pj_str_t tmp; pjsip_status_code code; pjsip_evsub *sub; @@ -2372,6 +2571,11 @@ static void on_call_transfered( pjsip_inv_session *inv, no_refer_sub = PJ_TRUE; } + /* Find optional Referred-By header (to be copied onto outgoing INVITE + * request. + */ + ref_by_hdr = pjsip_msg_find_hdr_by_name(rdata->msg_info.msg, &str_ref_by, + NULL); /* Notify callback */ code = PJSIP_SC_OK; @@ -2490,10 +2694,21 @@ static void on_call_transfered( pjsip_inv_session *inv, uri = refer_to->hvalue.ptr; uri[refer_to->hvalue.slen] = '\0'; + /* Init msg_data */ + pjsua_msg_data_init(&msg_data); + + /* If Referred-By header is present in the REFER request, copy this + * to the outgoing INVITE request. + */ + if (ref_by_hdr != NULL) { + pjsip_hdr *dup = pjsip_hdr_clone(rdata->tp_info.pool, ref_by_hdr); + pj_list_push_back(&msg_data.hdr_list, dup); + } + /* Now make the outgoing call. */ tmp = pj_str(uri); status = pjsua_call_make_call(existing_call->acc_id, &tmp, 0, - existing_call->user_data, NULL, + existing_call->user_data, &msg_data, &new_call); if (status != PJ_SUCCESS) { diff --git a/pjsip/src/pjsua-lib/pjsua_core.c b/pjsip/src/pjsua-lib/pjsua_core.c index 16c71ef9..33db0666 100644 --- a/pjsip/src/pjsua-lib/pjsua_core.c +++ b/pjsip/src/pjsua-lib/pjsua_core.c @@ -507,6 +507,11 @@ PJ_DEF(pj_status_t) pjsua_init( const pjsua_config *ua_cfg, PJ_ASSERT_RETURN(status == PJ_SUCCESS, status); + /* Initialize Replaces support. */ + status = pjsip_replaces_init_module( pjsua_var.endpt ); + PJ_ASSERT_RETURN(status == PJ_SUCCESS, status); + + /* Initialize and register PJSUA application module. */ { const pjsip_module mod_initializer = |