Changeset 2642 for pjproject/trunk
- Timestamp:
- Apr 22, 2009 5:20:24 PM (16 years ago)
- Location:
- pjproject/trunk/pjnath
- Files:
-
- 8 added
- 20 edited
Legend:
- Unmodified
- Added
- Removed
-
pjproject/trunk/pjnath/build/pjnath.dsp
r1988 r2642 201 201 # End Source File 202 202 # End Group 203 # Begin Group "Doxygen Files" 204 205 # PROP Default_Filter "" 206 # Begin Source File 207 208 SOURCE=..\docs\doc_ice.h 209 # End Source File 210 # Begin Source File 211 212 SOURCE=..\docs\doc_mainpage.h 213 # End Source File 214 # Begin Source File 215 216 SOURCE=..\docs\doc_nat.h 217 # End Source File 218 # Begin Source File 219 220 SOURCE=..\docs\doc_samples.h 221 # End Source File 222 # Begin Source File 223 224 SOURCE=..\docs\doc_stun.h 225 # End Source File 226 # Begin Source File 227 228 SOURCE=..\docs\doc_turn.h 229 # End Source File 230 # End Group 203 231 # End Target 204 232 # End Project -
pjproject/trunk/pjnath/build/pjnath.vcproj
r2638 r2642 23 23 <Configuration 24 24 Name="Release|Win32" 25 ConfigurationType="4" 25 26 InheritedPropertySheets="..\..\build\vs\pjproject-vs8-release-dynamic-defaults.vsprops;..\..\build\vs\pjproject-vs8-win32-release-defaults.vsprops" 26 27 ATLMinimizesCRunTimeLibraryUsage="false" 28 27 UseOfMFC="0" 28 ATLMinimizesCRunTimeLibraryUsage="false" 29 29 CharacterSet="2" 30 31 ConfigurationType="4" 32 UseOfMFC="0" 33 > 34 <Tool 35 Name="VCPreBuildEventTool" 36 /> 37 <Tool 38 Name="VCCustomBuildTool" 39 /> 40 <Tool 41 Name="VCXMLDataGeneratorTool" 42 /> 43 <Tool 44 Name="VCWebServiceProxyGeneratorTool" 45 /> 46 <Tool 47 Name="VCMIDLTool" 48 /> 49 <Tool 50 Name="VCCLCompilerTool" 51 PrecompiledHeaderFile="" 52 53 PreprocessorDefinitions="_LIB;" 54 30 > 31 <Tool 32 Name="VCPreBuildEventTool" 33 /> 34 <Tool 35 Name="VCCustomBuildTool" 36 /> 37 <Tool 38 Name="VCXMLDataGeneratorTool" 39 /> 40 <Tool 41 Name="VCWebServiceProxyGeneratorTool" 42 /> 43 <Tool 44 Name="VCMIDLTool" 45 /> 46 <Tool 47 Name="VCCLCompilerTool" 55 48 AdditionalIncludeDirectories="../include,../../pjlib/include,../../pjlib-util/include" 49 PreprocessorDefinitions="_LIB;" 50 PrecompiledHeaderFile="" 56 51 /> 57 52 <Tool … … 85 80 <Configuration 86 81 Name="Release|Windows Mobile 6 Standard SDK (ARMV4I)" 82 ConfigurationType="4" 87 83 InheritedPropertySheets="..\..\build\vs\pjproject-vs8-release-dynamic-defaults.vsprops;..\..\build\vs\pjproject-vs8-wm6-release-defaults.vsprops" 88 89 ATLMinimizesCRunTimeLibraryUsage="false" 90 84 ATLMinimizesCRunTimeLibraryUsage="false" 91 85 CharacterSet="1" 92 93 ConfigurationType="4" 94 > 95 <Tool 96 Name="VCPreBuildEventTool" 97 /> 98 <Tool 99 Name="VCCustomBuildTool" 100 /> 101 <Tool 102 Name="VCXMLDataGeneratorTool" 103 /> 104 <Tool 105 Name="VCWebServiceProxyGeneratorTool" 106 /> 107 <Tool 108 Name="VCMIDLTool" 109 /> 110 <Tool 111 Name="VCCLCompilerTool" 112 PrecompiledHeaderFile="" 113 114 PreprocessorDefinitions="_LIB;" 115 86 > 87 <Tool 88 Name="VCPreBuildEventTool" 89 /> 90 <Tool 91 Name="VCCustomBuildTool" 92 /> 93 <Tool 94 Name="VCXMLDataGeneratorTool" 95 /> 96 <Tool 97 Name="VCWebServiceProxyGeneratorTool" 98 /> 99 <Tool 100 Name="VCMIDLTool" 101 /> 102 <Tool 103 Name="VCCLCompilerTool" 104 ExecutionBucket="7" 116 105 AdditionalIncludeDirectories="../include,../../pjlib-util/include,../../pjlib/include" 106 PreprocessorDefinitions="_LIB;" 107 PrecompiledHeaderFile="" 117 108 /> 118 109 <Tool … … 128 119 Name="VCLibrarianTool" 129 120 OutputFile="..\lib\$(ProjectName)-$(TargetCPU)-wm6std-vs$(VSVer)-$(ConfigurationName).lib" 130 131 132 121 /> 133 122 <Tool … … 157 146 <Configuration 158 147 Name="Release|Windows Mobile 6 Professional SDK (ARMV4I)" 148 ConfigurationType="4" 159 149 InheritedPropertySheets="..\..\build\vs\pjproject-vs8-release-dynamic-defaults.vsprops;..\..\build\vs\pjproject-vs8-wm6-release-defaults.vsprops" 160 161 ATLMinimizesCRunTimeLibraryUsage="false" 162 150 ATLMinimizesCRunTimeLibraryUsage="false" 163 151 CharacterSet="1" 164 165 ConfigurationType="4" 166 > 167 <Tool 168 Name="VCPreBuildEventTool" 169 /> 170 <Tool 171 Name="VCCustomBuildTool" 172 /> 173 <Tool 174 Name="VCXMLDataGeneratorTool" 175 /> 176 <Tool 177 Name="VCWebServiceProxyGeneratorTool" 178 /> 179 <Tool 180 Name="VCMIDLTool" 181 /> 182 <Tool 183 Name="VCCLCompilerTool" 184 PrecompiledHeaderFile="" 185 186 PreprocessorDefinitions="_LIB;" 187 152 > 153 <Tool 154 Name="VCPreBuildEventTool" 155 /> 156 <Tool 157 Name="VCCustomBuildTool" 158 /> 159 <Tool 160 Name="VCXMLDataGeneratorTool" 161 /> 162 <Tool 163 Name="VCWebServiceProxyGeneratorTool" 164 /> 165 <Tool 166 Name="VCMIDLTool" 167 /> 168 <Tool 169 Name="VCCLCompilerTool" 170 ExecutionBucket="7" 188 171 AdditionalIncludeDirectories="../include,../../pjlib-util/include,../../pjlib/include" 172 PreprocessorDefinitions="_LIB;" 173 PrecompiledHeaderFile="" 189 174 /> 190 175 <Tool … … 200 185 Name="VCLibrarianTool" 201 186 OutputFile="..\lib\$(ProjectName)-$(TargetCPU)-wm6pro-vs$(VSVer)-$(ConfigurationName).lib" 202 203 204 187 /> 205 188 <Tool … … 229 212 <Configuration 230 213 Name="Debug|Win32" 214 ConfigurationType="4" 231 215 InheritedPropertySheets="..\..\build\vs\pjproject-vs8-debug-static-defaults.vsprops;..\..\build\vs\pjproject-vs8-win32-common-defaults.vsprops" 232 233 ATLMinimizesCRunTimeLibraryUsage="false" 234 216 UseOfMFC="0" 217 ATLMinimizesCRunTimeLibraryUsage="false" 235 218 CharacterSet="2" 236 237 ConfigurationType="4" 238 UseOfMFC="0" 239 > 240 <Tool 241 Name="VCPreBuildEventTool" 242 /> 243 <Tool 244 Name="VCCustomBuildTool" 245 /> 246 <Tool 247 Name="VCXMLDataGeneratorTool" 248 /> 249 <Tool 250 Name="VCWebServiceProxyGeneratorTool" 251 /> 252 <Tool 253 Name="VCMIDLTool" 254 /> 255 <Tool 256 Name="VCCLCompilerTool" 257 PrecompiledHeaderFile="" 258 259 PreprocessorDefinitions="_LIB;" 260 219 > 220 <Tool 221 Name="VCPreBuildEventTool" 222 /> 223 <Tool 224 Name="VCCustomBuildTool" 225 /> 226 <Tool 227 Name="VCXMLDataGeneratorTool" 228 /> 229 <Tool 230 Name="VCWebServiceProxyGeneratorTool" 231 /> 232 <Tool 233 Name="VCMIDLTool" 234 /> 235 <Tool 236 Name="VCCLCompilerTool" 261 237 AdditionalIncludeDirectories="../include,../../pjlib/include,../../pjlib-util/include" 238 PreprocessorDefinitions="_LIB;" 239 PrecompiledHeaderFile="" 262 240 /> 263 241 <Tool … … 291 269 <Configuration 292 270 Name="Debug|Windows Mobile 6 Standard SDK (ARMV4I)" 271 ConfigurationType="4" 293 272 InheritedPropertySheets="..\..\build\vs\pjproject-vs8-debug-static-defaults.vsprops;..\..\build\vs\pjproject-vs8-wm6-common-defaults.vsprops" 294 295 ATLMinimizesCRunTimeLibraryUsage="false" 296 273 ATLMinimizesCRunTimeLibraryUsage="false" 297 274 CharacterSet="1" 298 299 ConfigurationType="4" 300 > 301 <Tool 302 Name="VCPreBuildEventTool" 303 /> 304 <Tool 305 Name="VCCustomBuildTool" 306 /> 307 <Tool 308 Name="VCXMLDataGeneratorTool" 309 /> 310 <Tool 311 Name="VCWebServiceProxyGeneratorTool" 312 /> 313 <Tool 314 Name="VCMIDLTool" 315 /> 316 <Tool 317 Name="VCCLCompilerTool" 318 PrecompiledHeaderFile="" 319 320 PreprocessorDefinitions="_LIB;" 321 275 > 276 <Tool 277 Name="VCPreBuildEventTool" 278 /> 279 <Tool 280 Name="VCCustomBuildTool" 281 /> 282 <Tool 283 Name="VCXMLDataGeneratorTool" 284 /> 285 <Tool 286 Name="VCWebServiceProxyGeneratorTool" 287 /> 288 <Tool 289 Name="VCMIDLTool" 290 /> 291 <Tool 292 Name="VCCLCompilerTool" 293 ExecutionBucket="7" 322 294 AdditionalIncludeDirectories="../include,../../pjlib-util/include,../../pjlib/include" 295 PreprocessorDefinitions="_LIB;" 296 PrecompiledHeaderFile="" 323 297 /> 324 298 <Tool … … 334 308 Name="VCLibrarianTool" 335 309 OutputFile="..\lib\$(ProjectName)-$(TargetCPU)-wm6std-vs$(VSVer)-$(ConfigurationName).lib" 336 337 338 310 /> 339 311 <Tool … … 363 335 <Configuration 364 336 Name="Debug|Windows Mobile 6 Professional SDK (ARMV4I)" 337 ConfigurationType="4" 365 338 InheritedPropertySheets="..\..\build\vs\pjproject-vs8-debug-static-defaults.vsprops;..\..\build\vs\pjproject-vs8-wm6-common-defaults.vsprops" 366 367 ATLMinimizesCRunTimeLibraryUsage="false" 368 339 ATLMinimizesCRunTimeLibraryUsage="false" 369 340 CharacterSet="1" 370 371 ConfigurationType="4" 372 > 373 <Tool 374 Name="VCPreBuildEventTool" 375 /> 376 <Tool 377 Name="VCCustomBuildTool" 378 /> 379 <Tool 380 Name="VCXMLDataGeneratorTool" 381 /> 382 <Tool 383 Name="VCWebServiceProxyGeneratorTool" 384 /> 385 <Tool 386 Name="VCMIDLTool" 387 /> 388 <Tool 389 Name="VCCLCompilerTool" 390 PrecompiledHeaderFile="" 391 392 PreprocessorDefinitions="_LIB;" 393 341 > 342 <Tool 343 Name="VCPreBuildEventTool" 344 /> 345 <Tool 346 Name="VCCustomBuildTool" 347 /> 348 <Tool 349 Name="VCXMLDataGeneratorTool" 350 /> 351 <Tool 352 Name="VCWebServiceProxyGeneratorTool" 353 /> 354 <Tool 355 Name="VCMIDLTool" 356 /> 357 <Tool 358 Name="VCCLCompilerTool" 359 ExecutionBucket="7" 394 360 AdditionalIncludeDirectories="../include,../../pjlib-util/include,../../pjlib/include" 361 PreprocessorDefinitions="_LIB;" 362 PrecompiledHeaderFile="" 395 363 /> 396 364 <Tool … … 406 374 Name="VCLibrarianTool" 407 375 OutputFile="..\lib\$(ProjectName)-$(TargetCPU)-wm6pro-vs$(VSVer)-$(ConfigurationName).lib" 408 409 410 376 /> 411 377 <Tool … … 435 401 <Configuration 436 402 Name="Debug-Static|Win32" 403 ConfigurationType="4" 437 404 InheritedPropertySheets="..\..\build\vs\pjproject-vs8-debug-static-defaults.vsprops;..\..\build\vs\pjproject-vs8-win32-common-defaults.vsprops" 438 439 ATLMinimizesCRunTimeLibraryUsage="false" 440 405 UseOfMFC="0" 406 ATLMinimizesCRunTimeLibraryUsage="false" 441 407 CharacterSet="2" 442 443 ConfigurationType="4" 444 UseOfMFC="0" 445 > 446 <Tool 447 Name="VCPreBuildEventTool" 448 /> 449 <Tool 450 Name="VCCustomBuildTool" 451 /> 452 <Tool 453 Name="VCXMLDataGeneratorTool" 454 /> 455 <Tool 456 Name="VCWebServiceProxyGeneratorTool" 457 /> 458 <Tool 459 Name="VCMIDLTool" 460 /> 461 <Tool 462 Name="VCCLCompilerTool" 463 PrecompiledHeaderFile="" 464 465 PreprocessorDefinitions="_LIB;" 466 408 > 409 <Tool 410 Name="VCPreBuildEventTool" 411 /> 412 <Tool 413 Name="VCCustomBuildTool" 414 /> 415 <Tool 416 Name="VCXMLDataGeneratorTool" 417 /> 418 <Tool 419 Name="VCWebServiceProxyGeneratorTool" 420 /> 421 <Tool 422 Name="VCMIDLTool" 423 /> 424 <Tool 425 Name="VCCLCompilerTool" 467 426 AdditionalIncludeDirectories="../include,../../pjlib/include,../../pjlib-util/include" 427 PreprocessorDefinitions="_LIB;" 428 PrecompiledHeaderFile="" 468 429 /> 469 430 <Tool … … 497 458 <Configuration 498 459 Name="Debug-Static|Windows Mobile 6 Standard SDK (ARMV4I)" 460 ConfigurationType="4" 499 461 InheritedPropertySheets="..\..\build\vs\pjproject-vs8-debug-static-defaults.vsprops;..\..\build\vs\pjproject-vs8-wm6-common-defaults.vsprops" 500 501 ATLMinimizesCRunTimeLibraryUsage="false" 502 462 ATLMinimizesCRunTimeLibraryUsage="false" 503 463 CharacterSet="1" 504 505 ConfigurationType="4" 506 > 507 <Tool 508 Name="VCPreBuildEventTool" 509 /> 510 <Tool 511 Name="VCCustomBuildTool" 512 /> 513 <Tool 514 Name="VCXMLDataGeneratorTool" 515 /> 516 <Tool 517 Name="VCWebServiceProxyGeneratorTool" 518 /> 519 <Tool 520 Name="VCMIDLTool" 521 /> 522 <Tool 523 Name="VCCLCompilerTool" 524 PrecompiledHeaderFile="" 525 526 PreprocessorDefinitions="_LIB;" 527 464 > 465 <Tool 466 Name="VCPreBuildEventTool" 467 /> 468 <Tool 469 Name="VCCustomBuildTool" 470 /> 471 <Tool 472 Name="VCXMLDataGeneratorTool" 473 /> 474 <Tool 475 Name="VCWebServiceProxyGeneratorTool" 476 /> 477 <Tool 478 Name="VCMIDLTool" 479 /> 480 <Tool 481 Name="VCCLCompilerTool" 482 ExecutionBucket="7" 528 483 AdditionalIncludeDirectories="../include,../../pjlib-util/include,../../pjlib/include" 484 PreprocessorDefinitions="_LIB;" 485 PrecompiledHeaderFile="" 529 486 /> 530 487 <Tool … … 540 497 Name="VCLibrarianTool" 541 498 OutputFile="..\lib\$(ProjectName)-$(TargetCPU)-wm6std-vs$(VSVer)-$(ConfigurationName).lib" 542 543 544 499 /> 545 500 <Tool … … 569 524 <Configuration 570 525 Name="Debug-Static|Windows Mobile 6 Professional SDK (ARMV4I)" 526 ConfigurationType="4" 571 527 InheritedPropertySheets="..\..\build\vs\pjproject-vs8-debug-static-defaults.vsprops;..\..\build\vs\pjproject-vs8-wm6-common-defaults.vsprops" 572 573 ATLMinimizesCRunTimeLibraryUsage="false" 574 528 ATLMinimizesCRunTimeLibraryUsage="false" 575 529 CharacterSet="1" 576 577 ConfigurationType="4" 578 > 579 <Tool 580 Name="VCPreBuildEventTool" 581 /> 582 <Tool 583 Name="VCCustomBuildTool" 584 /> 585 <Tool 586 Name="VCXMLDataGeneratorTool" 587 /> 588 <Tool 589 Name="VCWebServiceProxyGeneratorTool" 590 /> 591 <Tool 592 Name="VCMIDLTool" 593 /> 594 <Tool 595 Name="VCCLCompilerTool" 596 PrecompiledHeaderFile="" 597 598 PreprocessorDefinitions="_LIB;" 599 530 > 531 <Tool 532 Name="VCPreBuildEventTool" 533 /> 534 <Tool 535 Name="VCCustomBuildTool" 536 /> 537 <Tool 538 Name="VCXMLDataGeneratorTool" 539 /> 540 <Tool 541 Name="VCWebServiceProxyGeneratorTool" 542 /> 543 <Tool 544 Name="VCMIDLTool" 545 /> 546 <Tool 547 Name="VCCLCompilerTool" 548 ExecutionBucket="7" 600 549 AdditionalIncludeDirectories="../include,../../pjlib-util/include,../../pjlib/include" 550 PreprocessorDefinitions="_LIB;" 551 PrecompiledHeaderFile="" 601 552 /> 602 553 <Tool … … 612 563 Name="VCLibrarianTool" 613 564 OutputFile="..\lib\$(ProjectName)-$(TargetCPU)-wm6pro-vs$(VSVer)-$(ConfigurationName).lib" 614 615 616 565 /> 617 566 <Tool … … 641 590 <Configuration 642 591 Name="Release-Dynamic|Win32" 592 ConfigurationType="4" 643 593 InheritedPropertySheets="..\..\build\vs\pjproject-vs8-release-dynamic-defaults.vsprops;..\..\build\vs\pjproject-vs8-win32-release-defaults.vsprops" 644 645 ATLMinimizesCRunTimeLibraryUsage="false" 646 594 UseOfMFC="0" 595 ATLMinimizesCRunTimeLibraryUsage="false" 647 596 CharacterSet="2" 648 649 ConfigurationType="4" 650 UseOfMFC="0" 651 > 652 <Tool 653 Name="VCPreBuildEventTool" 654 /> 655 <Tool 656 Name="VCCustomBuildTool" 657 /> 658 <Tool 659 Name="VCXMLDataGeneratorTool" 660 /> 661 <Tool 662 Name="VCWebServiceProxyGeneratorTool" 663 /> 664 <Tool 665 Name="VCMIDLTool" 666 /> 667 <Tool 668 Name="VCCLCompilerTool" 669 PrecompiledHeaderFile="" 670 671 PreprocessorDefinitions="_LIB;" 672 597 > 598 <Tool 599 Name="VCPreBuildEventTool" 600 /> 601 <Tool 602 Name="VCCustomBuildTool" 603 /> 604 <Tool 605 Name="VCXMLDataGeneratorTool" 606 /> 607 <Tool 608 Name="VCWebServiceProxyGeneratorTool" 609 /> 610 <Tool 611 Name="VCMIDLTool" 612 /> 613 <Tool 614 Name="VCCLCompilerTool" 673 615 AdditionalIncludeDirectories="../include,../../pjlib/include,../../pjlib-util/include" 616 PreprocessorDefinitions="_LIB;" 617 PrecompiledHeaderFile="" 674 618 /> 675 619 <Tool … … 703 647 <Configuration 704 648 Name="Release-Dynamic|Windows Mobile 6 Standard SDK (ARMV4I)" 649 ConfigurationType="4" 705 650 InheritedPropertySheets="..\..\build\vs\pjproject-vs8-release-dynamic-defaults.vsprops;..\..\build\vs\pjproject-vs8-wm6-release-defaults.vsprops" 706 707 ATLMinimizesCRunTimeLibraryUsage="false" 708 651 ATLMinimizesCRunTimeLibraryUsage="false" 709 652 CharacterSet="1" 710 711 ConfigurationType="4" 712 > 713 <Tool 714 Name="VCPreBuildEventTool" 715 /> 716 <Tool 717 Name="VCCustomBuildTool" 718 /> 719 <Tool 720 Name="VCXMLDataGeneratorTool" 721 /> 722 <Tool 723 Name="VCWebServiceProxyGeneratorTool" 724 /> 725 <Tool 726 Name="VCMIDLTool" 727 /> 728 <Tool 729 Name="VCCLCompilerTool" 730 PrecompiledHeaderFile="" 731 732 PreprocessorDefinitions="_LIB;" 733 653 > 654 <Tool 655 Name="VCPreBuildEventTool" 656 /> 657 <Tool 658 Name="VCCustomBuildTool" 659 /> 660 <Tool 661 Name="VCXMLDataGeneratorTool" 662 /> 663 <Tool 664 Name="VCWebServiceProxyGeneratorTool" 665 /> 666 <Tool 667 Name="VCMIDLTool" 668 /> 669 <Tool 670 Name="VCCLCompilerTool" 671 ExecutionBucket="7" 734 672 AdditionalIncludeDirectories="../include,../../pjlib-util/include,../../pjlib/include" 673 PreprocessorDefinitions="_LIB;" 674 PrecompiledHeaderFile="" 735 675 /> 736 676 <Tool … … 746 686 Name="VCLibrarianTool" 747 687 OutputFile="..\lib\$(ProjectName)-$(TargetCPU)-wm6std-vs$(VSVer)-$(ConfigurationName).lib" 748 749 750 688 /> 751 689 <Tool … … 775 713 <Configuration 776 714 Name="Release-Dynamic|Windows Mobile 6 Professional SDK (ARMV4I)" 715 ConfigurationType="4" 777 716 InheritedPropertySheets="..\..\build\vs\pjproject-vs8-release-dynamic-defaults.vsprops;..\..\build\vs\pjproject-vs8-wm6-release-defaults.vsprops" 778 779 ATLMinimizesCRunTimeLibraryUsage="false" 780 717 ATLMinimizesCRunTimeLibraryUsage="false" 781 718 CharacterSet="1" 782 783 ConfigurationType="4" 784 > 785 <Tool 786 Name="VCPreBuildEventTool" 787 /> 788 <Tool 789 Name="VCCustomBuildTool" 790 /> 791 <Tool 792 Name="VCXMLDataGeneratorTool" 793 /> 794 <Tool 795 Name="VCWebServiceProxyGeneratorTool" 796 /> 797 <Tool 798 Name="VCMIDLTool" 799 /> 800 <Tool 801 Name="VCCLCompilerTool" 802 PrecompiledHeaderFile="" 803 804 PreprocessorDefinitions="_LIB;" 805 719 > 720 <Tool 721 Name="VCPreBuildEventTool" 722 /> 723 <Tool 724 Name="VCCustomBuildTool" 725 /> 726 <Tool 727 Name="VCXMLDataGeneratorTool" 728 /> 729 <Tool 730 Name="VCWebServiceProxyGeneratorTool" 731 /> 732 <Tool 733 Name="VCMIDLTool" 734 /> 735 <Tool 736 Name="VCCLCompilerTool" 737 ExecutionBucket="7" 806 738 AdditionalIncludeDirectories="../include,../../pjlib-util/include,../../pjlib/include" 739 PreprocessorDefinitions="_LIB;" 740 PrecompiledHeaderFile="" 807 741 /> 808 742 <Tool … … 818 752 Name="VCLibrarianTool" 819 753 OutputFile="..\lib\$(ProjectName)-$(TargetCPU)-wm6pro-vs$(VSVer)-$(ConfigurationName).lib" 820 821 822 754 /> 823 755 <Tool … … 847 779 <Configuration 848 780 Name="Debug-Dynamic|Win32" 781 ConfigurationType="4" 849 782 InheritedPropertySheets="..\..\build\vs\pjproject-vs8-debug-dynamic-defaults.vsprops;..\..\build\vs\pjproject-vs8-win32-common-defaults.vsprops" 850 851 ATLMinimizesCRunTimeLibraryUsage="false" 852 783 UseOfMFC="0" 784 ATLMinimizesCRunTimeLibraryUsage="false" 853 785 CharacterSet="2" 854 855 ConfigurationType="4" 856 UseOfMFC="0" 857 > 858 <Tool 859 Name="VCPreBuildEventTool" 860 /> 861 <Tool 862 Name="VCCustomBuildTool" 863 /> 864 <Tool 865 Name="VCXMLDataGeneratorTool" 866 /> 867 <Tool 868 Name="VCWebServiceProxyGeneratorTool" 869 /> 870 <Tool 871 Name="VCMIDLTool" 872 /> 873 <Tool 874 Name="VCCLCompilerTool" 875 PrecompiledHeaderFile="" 876 877 PreprocessorDefinitions="_LIB;" 878 786 > 787 <Tool 788 Name="VCPreBuildEventTool" 789 /> 790 <Tool 791 Name="VCCustomBuildTool" 792 /> 793 <Tool 794 Name="VCXMLDataGeneratorTool" 795 /> 796 <Tool 797 Name="VCWebServiceProxyGeneratorTool" 798 /> 799 <Tool 800 Name="VCMIDLTool" 801 /> 802 <Tool 803 Name="VCCLCompilerTool" 879 804 AdditionalIncludeDirectories="../include,../../pjlib/include,../../pjlib-util/include" 805 PreprocessorDefinitions="_LIB;" 806 PrecompiledHeaderFile="" 880 807 /> 881 808 <Tool … … 909 836 <Configuration 910 837 Name="Debug-Dynamic|Windows Mobile 6 Standard SDK (ARMV4I)" 838 ConfigurationType="4" 911 839 InheritedPropertySheets="..\..\build\vs\pjproject-vs8-debug-dynamic-defaults.vsprops;..\..\build\vs\pjproject-vs8-wm6-common-defaults.vsprops" 912 913 ATLMinimizesCRunTimeLibraryUsage="false" 914 840 ATLMinimizesCRunTimeLibraryUsage="false" 915 841 CharacterSet="1" 916 917 ConfigurationType="4" 918 > 919 <Tool 920 Name="VCPreBuildEventTool" 921 /> 922 <Tool 923 Name="VCCustomBuildTool" 924 /> 925 <Tool 926 Name="VCXMLDataGeneratorTool" 927 /> 928 <Tool 929 Name="VCWebServiceProxyGeneratorTool" 930 /> 931 <Tool 932 Name="VCMIDLTool" 933 /> 934 <Tool 935 Name="VCCLCompilerTool" 936 PrecompiledHeaderFile="" 937 938 PreprocessorDefinitions="_LIB;" 939 842 > 843 <Tool 844 Name="VCPreBuildEventTool" 845 /> 846 <Tool 847 Name="VCCustomBuildTool" 848 /> 849 <Tool 850 Name="VCXMLDataGeneratorTool" 851 /> 852 <Tool 853 Name="VCWebServiceProxyGeneratorTool" 854 /> 855 <Tool 856 Name="VCMIDLTool" 857 /> 858 <Tool 859 Name="VCCLCompilerTool" 860 ExecutionBucket="7" 940 861 AdditionalIncludeDirectories="../include,../../pjlib-util/include,../../pjlib/include" 862 PreprocessorDefinitions="_LIB;" 863 PrecompiledHeaderFile="" 941 864 /> 942 865 <Tool … … 952 875 Name="VCLibrarianTool" 953 876 OutputFile="..\lib\$(ProjectName)-$(TargetCPU)-wm6std-vs$(VSVer)-$(ConfigurationName).lib" 954 955 956 877 /> 957 878 <Tool … … 981 902 <Configuration 982 903 Name="Debug-Dynamic|Windows Mobile 6 Professional SDK (ARMV4I)" 904 ConfigurationType="4" 983 905 InheritedPropertySheets="..\..\build\vs\pjproject-vs8-debug-dynamic-defaults.vsprops;..\..\build\vs\pjproject-vs8-wm6-common-defaults.vsprops" 984 985 ATLMinimizesCRunTimeLibraryUsage="false" 986 906 ATLMinimizesCRunTimeLibraryUsage="false" 987 907 CharacterSet="1" 988 989 ConfigurationType="4" 990 > 991 <Tool 992 Name="VCPreBuildEventTool" 993 /> 994 <Tool 995 Name="VCCustomBuildTool" 996 /> 997 <Tool 998 Name="VCXMLDataGeneratorTool" 999 /> 1000 <Tool 1001 Name="VCWebServiceProxyGeneratorTool" 1002 /> 1003 <Tool 1004 Name="VCMIDLTool" 1005 /> 1006 <Tool 1007 Name="VCCLCompilerTool" 1008 PrecompiledHeaderFile="" 1009 1010 PreprocessorDefinitions="_LIB;" 1011 908 > 909 <Tool 910 Name="VCPreBuildEventTool" 911 /> 912 <Tool 913 Name="VCCustomBuildTool" 914 /> 915 <Tool 916 Name="VCXMLDataGeneratorTool" 917 /> 918 <Tool 919 Name="VCWebServiceProxyGeneratorTool" 920 /> 921 <Tool 922 Name="VCMIDLTool" 923 /> 924 <Tool 925 Name="VCCLCompilerTool" 926 ExecutionBucket="7" 1012 927 AdditionalIncludeDirectories="../include,../../pjlib-util/include,../../pjlib/include" 928 PreprocessorDefinitions="_LIB;" 929 PrecompiledHeaderFile="" 1013 930 /> 1014 931 <Tool … … 1024 941 Name="VCLibrarianTool" 1025 942 OutputFile="..\lib\$(ProjectName)-$(TargetCPU)-wm6pro-vs$(VSVer)-$(ConfigurationName).lib" 1026 1027 1028 943 /> 1029 944 <Tool … … 1053 968 <Configuration 1054 969 Name="Release-Static|Win32" 970 ConfigurationType="4" 1055 971 InheritedPropertySheets="..\..\build\vs\pjproject-vs8-release-static-defaults.vsprops;..\..\build\vs\pjproject-vs8-win32-release-defaults.vsprops" 1056 1057 ATLMinimizesCRunTimeLibraryUsage="false" 1058 972 UseOfMFC="0" 973 ATLMinimizesCRunTimeLibraryUsage="false" 1059 974 CharacterSet="2" 1060 1061 ConfigurationType="4" 1062 UseOfMFC="0" 1063 > 1064 <Tool 1065 Name="VCPreBuildEventTool" 1066 /> 1067 <Tool 1068 Name="VCCustomBuildTool" 1069 /> 1070 <Tool 1071 Name="VCXMLDataGeneratorTool" 1072 /> 1073 <Tool 1074 Name="VCWebServiceProxyGeneratorTool" 1075 /> 1076 <Tool 1077 Name="VCMIDLTool" 1078 /> 1079 <Tool 1080 Name="VCCLCompilerTool" 1081 PrecompiledHeaderFile="" 1082 1083 PreprocessorDefinitions="_LIB;" 1084 975 > 976 <Tool 977 Name="VCPreBuildEventTool" 978 /> 979 <Tool 980 Name="VCCustomBuildTool" 981 /> 982 <Tool 983 Name="VCXMLDataGeneratorTool" 984 /> 985 <Tool 986 Name="VCWebServiceProxyGeneratorTool" 987 /> 988 <Tool 989 Name="VCMIDLTool" 990 /> 991 <Tool 992 Name="VCCLCompilerTool" 1085 993 AdditionalIncludeDirectories="../include,../../pjlib/include,../../pjlib-util/include" 994 PreprocessorDefinitions="_LIB;" 995 PrecompiledHeaderFile="" 1086 996 /> 1087 997 <Tool … … 1115 1025 <Configuration 1116 1026 Name="Release-Static|Windows Mobile 6 Standard SDK (ARMV4I)" 1027 ConfigurationType="4" 1117 1028 InheritedPropertySheets="..\..\build\vs\pjproject-vs8-release-static-defaults.vsprops;..\..\build\vs\pjproject-vs8-wm6-release-defaults.vsprops" 1118 1119 ATLMinimizesCRunTimeLibraryUsage="false" 1120 1029 ATLMinimizesCRunTimeLibraryUsage="false" 1121 1030 CharacterSet="1" 1122 1123 ConfigurationType="4" 1124 > 1125 <Tool 1126 Name="VCPreBuildEventTool" 1127 /> 1128 <Tool 1129 Name="VCCustomBuildTool" 1130 /> 1131 <Tool 1132 Name="VCXMLDataGeneratorTool" 1133 /> 1134 <Tool 1135 Name="VCWebServiceProxyGeneratorTool" 1136 /> 1137 <Tool 1138 Name="VCMIDLTool" 1139 /> 1140 <Tool 1141 Name="VCCLCompilerTool" 1142 PrecompiledHeaderFile="" 1143 1144 PreprocessorDefinitions="_LIB;" 1145 1031 > 1032 <Tool 1033 Name="VCPreBuildEventTool" 1034 /> 1035 <Tool 1036 Name="VCCustomBuildTool" 1037 /> 1038 <Tool 1039 Name="VCXMLDataGeneratorTool" 1040 /> 1041 <Tool 1042 Name="VCWebServiceProxyGeneratorTool" 1043 /> 1044 <Tool 1045 Name="VCMIDLTool" 1046 /> 1047 <Tool 1048 Name="VCCLCompilerTool" 1049 ExecutionBucket="7" 1146 1050 AdditionalIncludeDirectories="../include,../../pjlib-util/include,../../pjlib/include" 1051 PreprocessorDefinitions="_LIB;" 1052 PrecompiledHeaderFile="" 1147 1053 /> 1148 1054 <Tool … … 1158 1064 Name="VCLibrarianTool" 1159 1065 OutputFile="..\lib\$(ProjectName)-$(TargetCPU)-wm6std-vs$(VSVer)-$(ConfigurationName).lib" 1160 1161 1162 1066 /> 1163 1067 <Tool … … 1187 1091 <Configuration 1188 1092 Name="Release-Static|Windows Mobile 6 Professional SDK (ARMV4I)" 1093 ConfigurationType="4" 1189 1094 InheritedPropertySheets="..\..\build\vs\pjproject-vs8-release-static-defaults.vsprops;..\..\build\vs\pjproject-vs8-wm6-release-defaults.vsprops" 1190 1191 ATLMinimizesCRunTimeLibraryUsage="false" 1192 1095 ATLMinimizesCRunTimeLibraryUsage="false" 1193 1096 CharacterSet="1" 1194 1195 ConfigurationType="4" 1196 > 1197 <Tool 1198 Name="VCPreBuildEventTool" 1199 /> 1200 <Tool 1201 Name="VCCustomBuildTool" 1202 /> 1203 <Tool 1204 Name="VCXMLDataGeneratorTool" 1205 /> 1206 <Tool 1207 Name="VCWebServiceProxyGeneratorTool" 1208 /> 1209 <Tool 1210 Name="VCMIDLTool" 1211 /> 1212 <Tool 1213 Name="VCCLCompilerTool" 1214 PrecompiledHeaderFile="" 1215 1216 PreprocessorDefinitions="_LIB;" 1217 1097 > 1098 <Tool 1099 Name="VCPreBuildEventTool" 1100 /> 1101 <Tool 1102 Name="VCCustomBuildTool" 1103 /> 1104 <Tool 1105 Name="VCXMLDataGeneratorTool" 1106 /> 1107 <Tool 1108 Name="VCWebServiceProxyGeneratorTool" 1109 /> 1110 <Tool 1111 Name="VCMIDLTool" 1112 /> 1113 <Tool 1114 Name="VCCLCompilerTool" 1115 ExecutionBucket="7" 1218 1116 AdditionalIncludeDirectories="../include,../../pjlib-util/include,../../pjlib/include" 1117 PreprocessorDefinitions="_LIB;" 1118 PrecompiledHeaderFile="" 1219 1119 /> 1220 1120 <Tool … … 1230 1130 Name="VCLibrarianTool" 1231 1131 OutputFile="..\lib\$(ProjectName)-$(TargetCPU)-wm6pro-vs$(VSVer)-$(ConfigurationName).lib" 1232 1233 1234 1132 /> 1235 1133 <Tool … … 1703 1601 </File> 1704 1602 </Filter> 1603 <Filter 1604 Name="Doxygen Files" 1605 > 1606 <File 1607 RelativePath="..\docs\doc_ice.h" 1608 > 1609 </File> 1610 <File 1611 RelativePath="..\docs\doc_mainpage.h" 1612 > 1613 </File> 1614 <File 1615 RelativePath="..\docs\doc_nat.h" 1616 > 1617 </File> 1618 <File 1619 RelativePath="..\docs\doc_samples.h" 1620 > 1621 </File> 1622 <File 1623 RelativePath="..\docs\doc_stun.h" 1624 > 1625 </File> 1626 <File 1627 RelativePath="..\docs\doc_turn.h" 1628 > 1629 </File> 1630 </Filter> 1705 1631 </Files> 1706 1632 <Globals> -
pjproject/trunk/pjnath/docs/doxygen.cfg
r2037 r2642 347 347 # with spaces. 348 348 349 INPUT = include/pjnath349 INPUT = docs include/pjnath 350 350 351 351 # If the value of the INPUT tag contains directories, you can use the … … 385 385 # the \include command). 386 386 387 EXAMPLE_PATH = . 387 EXAMPLE_PATH = ../pjsip-apps/src/samples src/pjturn-client 388 388 389 389 # If the value of the EXAMPLE_PATH tag contains directories, you can use the … … 977 977 DOTFILE_DIRS = 978 978 979 # The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width980 # (in pixels) of the graphs generated by dot. If a graph becomes larger than981 # this value, doxygen will try to truncate the graph, so that it fits within982 # the specified constraint. Beware that most browsers cannot cope with very983 # large images.984 985 MAX_DOT_GRAPH_WIDTH = 1024986 987 # The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height988 # (in pixels) of the graphs generated by dot. If a graph becomes larger than989 # this value, doxygen will try to truncate the graph, so that it fits within990 # the specified constraint. Beware that most browsers cannot cope with very991 # large images.992 993 MAX_DOT_GRAPH_HEIGHT = 1024994 995 979 # If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will 996 980 # generate a legend page explaining the meaning of the various boxes and -
pjproject/trunk/pjnath/docs/footer.html
r2394 r2642 1 </TD></TD></TABLE> 1 2 <p> </p> 2 3 <hr><center> -
pjproject/trunk/pjnath/docs/header.html
r1110 r2642 5 5 </head><body> 6 6 <!--#include virtual="/header.html" --> 7 <TABLE border=0 width="90%"><TR><TD> 7 8 <p><A HREF="/">Home</A> --> <A HREF="/docs.htm">Documentations</A> --> <A HREF="/pjnath/docs/html/index.htm">PJNATH Reference</A></p> 8 9 -
pjproject/trunk/pjnath/include/pjnath/config.h
r2394 r2642 30 30 31 31 /** 32 * @defgroup PJNATH_CONFIG Co nfiguration32 * @defgroup PJNATH_CONFIG Compile-time configurations 33 33 * @brief Various compile time settings 34 * @ingroup PJNATH_STUN_BASE 34 35 * @{ 35 36 */ -
pjproject/trunk/pjnath/include/pjnath/errno.h
r2580 r2642 31 31 * @defgroup PJNATH_ERROR NAT Helper Library Error Codes 32 32 * @brief PJNATH specific error code constants 33 * @ingroup PJNATH_STUN_BASE 33 34 * @{ 34 35 */ -
pjproject/trunk/pjnath/include/pjnath/ice_session.h
r2394 r2642 31 31 #include <pj/timer.h> 32 32 33 /**34 * @defgroup PJNATH_ICE Interactive Connectivity Establishment (ICE)35 * @brief Interactive Connectivity Establishment (ICE)36 */37 38 39 33 PJ_BEGIN_DECL 40 34 41 35 42 36 /** 43 * @defgroup PJNATH_ICE_SESSION ICE Session 44 * @brief Transport Independent ICE Session 45 * @ingroup PJNATH_ICE 37 * @addtogroup PJNATH_ICE_SESSION 46 38 * @{ 47 39 * … … 205 197 typedef struct pj_ice_msg_data 206 198 { 199 /** Transport ID for this message */ 207 200 unsigned transport_id; 201 202 /** Flag to indicate whether data.req contains data */ 208 203 pj_bool_t has_req_data; 209 204 205 /** The data */ 210 206 union data { 207 /** Request data */ 211 208 struct request_data { 212 pj_ice_sess *ice; 213 pj_ice_sess_checklist *clist; 214 unsigned ckid; 209 pj_ice_sess *ice; /**< ICE session */ 210 pj_ice_sess_checklist *clist; /**< Checklist */ 211 unsigned ckid; /**< Check ID */ 215 212 } req; 216 213 } data; 214 217 215 } pj_ice_msg_data; 218 216 … … 540 538 typedef struct pj_ice_rx_check 541 539 { 542 PJ_DECL_LIST_MEMBER(struct pj_ice_rx_check); 540 PJ_DECL_LIST_MEMBER(struct pj_ice_rx_check); /**< Standard list */ 543 541 544 542 unsigned comp_id; /**< Component ID. */ … … 601 599 pj_ice_sess_cand rcand[PJ_ICE_MAX_CAND]; /**< Array of cand. */ 602 600 603 /* Array of transport datas */601 /** Array of transport datas */ 604 602 pj_ice_msg_data tp_data[4]; 605 603 … … 613 611 pj_ice_sess_checklist valid_list; /**< Valid list. */ 614 612 615 /* Temporary buffer for misc stuffs to avoid using stack too much */613 /** Temporary buffer for misc stuffs to avoid using stack too much */ 616 614 union { 617 615 char txt[128]; -
pjproject/trunk/pjnath/include/pjnath/ice_strans.h
r2394 r2642 38 38 39 39 /** 40 * @defgroup PJNATH_ICE_STREAM_TRANSPORT ICE Stream Transport 41 * @brief Transport for media streams using ICE 42 * @ingroup PJNATH_ICE 40 * @addtogroup PJNATH_ICE_STREAM_TRANSPORT 43 41 * @{ 44 42 * … … 54 52 * various candidates of the transport addresses. 55 53 * 54 * 55 * \section ice_strans_using_sec Using the ICE stream transport 56 * 57 * The steps below describe how to use ICE session: 58 * 59 * - initialize a #pj_ice_strans_cfg structure. This contains various 60 * settings for the ICE stream transport, and among other things contains 61 * the STUN and TURN settings.\n\n 62 * - create the instance with #pj_ice_strans_create(). Among other things, 63 * the function needs the following arguments: 64 * - the #pj_ice_strans_cfg structure for the main configurations 65 * - number of components to be supported 66 * - instance of #pj_ice_strans_cb structure to report callbacks to 67 * application.\n\n 68 * - while the #pj_ice_strans_create() call completes immediately, the 69 * initialization will be running in the background to gather the 70 * candidates (for example STUN and TURN candidates, if they are enabled 71 * in the #pj_ice_strans_cfg setting). Application will be notified when 72 * the initialization completes in the \a on_ice_complete callback of 73 * the #pj_ice_strans_cb structure (the \a op argument of this callback 74 * will be PJ_ICE_STRANS_OP_INIT).\n\n 75 * - when media stream is to be started (for example, a call is to be 76 * started), create an ICE session by calling #pj_ice_strans_init_ice().\n\n 77 * - the application now typically will need to communicate local ICE 78 * information to remote host. It can achieve this by using the following 79 * functions to query local ICE information: 80 * - #pj_ice_strans_get_ufrag_pwd() 81 * - #pj_ice_strans_enum_cands() 82 * - #pj_ice_strans_get_def_cand()\n 83 * The application may need to encode the above information as SDP.\n\n 84 * - when the application receives remote ICE information (for example, from 85 * the SDP received from remote), it can now start ICE negotiation, by 86 * calling #pj_ice_strans_start_ice(). This function requires some 87 * information about remote ICE agent such as remote ICE username fragment 88 * and password as well as array of remote candidates.\n\n 89 * - note that the PJNATH library does not work with SDP; application would 90 * need to encode and parse the SDP itself.\n\n 91 * - once ICE negotiation has been started, application will be notified 92 * about the completion in the \a on_ice_complete() callback of the 93 * #pj_ice_strans_cb.\n\n 94 * - at any time, application may send or receive data. However the ICE 95 * stream transport may not be able to send it depending on its current 96 * state. Before ICE negotiation is started, the data will be sent using 97 * default candidate of the component. After negotiation is completed, 98 * data will be sent using the candidate from the successful/nominated 99 * pair. The ICE stream transport may not be able to send data while 100 * negotiation is in progress.\n\n 101 * - application sends data by using #pj_ice_strans_sendto(). Incoming 102 * data will be reported in \a on_rx_data() callback of the 103 * #pj_ice_strans_cb.\n\n 104 * - once the media session has finished (e.g. user hangs up the call), 105 * destroy the ICE session with #pj_ice_strans_stop_ice().\n\n 106 * - at this point, application may destroy the ICE stream transport itself, 107 * or let it run so that it can be reused to create other ICE session. 108 * The benefit of letting the ICE stream transport alive (without any 109 * session active) is to avoid delay with the initialization, howerver 110 * keeping the transport alive means the transport needs to keep the 111 * STUN binding open by using keep-alive and also TURN allocation alive, 112 * and this will consume power which is an important issue for mobile 113 * applications.\n\n 56 114 */ 57 115 -
pjproject/trunk/pjnath/include/pjnath/nat_detect.h
r2394 r2642 34 34 * @defgroup PJNATH_NAT_DETECT NAT Classification/Detection Tool 35 35 * @brief NAT Classification/Detection Tool 36 * @ingroup PJNATH 36 37 * @{ 37 38 * -
pjproject/trunk/pjnath/include/pjnath/stun_auth.h
r2394 r2642 36 36 * @defgroup PJNATH_STUN_AUTH STUN Authentication 37 37 * @brief STUN authentication helper 38 * @ingroup PJNATH_STUN 38 * @ingroup PJNATH_STUN_BASE 39 39 * @{ 40 40 */ -
pjproject/trunk/pjnath/include/pjnath/stun_config.h
r2394 r2642 39 39 * @defgroup PJNATH_STUN_CONFIG STUN Config 40 40 * @brief STUN config 41 * @ingroup PJNATH_STUN 41 * @ingroup PJNATH_STUN_BASE 42 42 * @{ 43 43 */ -
pjproject/trunk/pjnath/include/pjnath/stun_msg.h
r2591 r2642 36 36 /** 37 37 * @defgroup PJNATH_STUN_MSG STUN Message Representation and Parsing 38 * @ingroup PJNATH_STUN 38 * @ingroup PJNATH_STUN_BASE 39 39 * @brief Low-level representation and parsing of STUN messages. 40 40 * @{ -
pjproject/trunk/pjnath/include/pjnath/stun_session.h
r2589 r2642 38 38 /* **************************************************************************/ 39 39 /** 40 * @defgroup PJNATH_STUN_SESSION STUN Client/Server Session 41 * @brief STUN client and server session 42 * @ingroup PJNATH_STUN 40 * @addtogroup PJNATH_STUN_SESSION 43 41 * @{ 42 * 43 * This is is a transport-independent object to manage a client or server 44 * STUN session. It has the following features: 45 * 46 * - <b>transport independent</b>:\n 47 * the object does not have it's own socket, but rather it provides 48 * functions and callbacks to send and receive packets. This way the 49 * object can be used by different transport types (e.g. UDP, TCP, 50 * TLS, etc.) as well as better integration to application which 51 * already has its own means to send and receive packets. 52 * 53 * - <b>authentication management</b>:\n 54 * the object manages STUN authentication throughout the lifetime of 55 * the session. For client sessions, once it's given a credential to 56 * authenticate itself with the server, the object will automatically 57 * add authentication info (the MESSAGE-INTEGRITY) to the request as 58 * well as authenticate the response. It will also handle long-term 59 * authentication challenges, including handling of nonce expiration, 60 * and retry the request automatically. For server sessions, it can 61 * be configured to authenticate incoming requests automatically. 62 * 63 * - <b>static or dynamic credential</b>:\n 64 * application may specify static or dynamic credential to be used by 65 * the STUN session. Static credential means a static combination of 66 * username and password (and these cannot change during the session 67 * duration), while dynamic credential provides callback to ask the 68 * application about which username/password to use everytime 69 * authentication is about to be performed. 70 * 71 * - <b>client transaction management</b>:\n 72 * outgoing requests may be sent with a STUN transaction for reliability, 73 * and the object will manage the transaction internally (including 74 * performing retransmissions). Application will be notified about the 75 * result of the request when the response arrives (or the transaction 76 * times out). When the request is challenged with authentication, the 77 * object will retry the request with new authentication info, and 78 * application will be notified about the final result of this request. 79 * 80 * - <b>server transaction management</b>:\n 81 * application may ask response to incoming requests to be cached by 82 * the object, and in this case the object will check for cached 83 * response everytime request is received. The cached response will be 84 * deleted once a timer expires. 85 * 86 * \section using_stun_sess_sec Using the STUN session 87 * 88 * The following steps describes how to use the STUN session: 89 * 90 * - <b>create the object configuration</b>:\n 91 * The #pj_stun_config contains the configuration to create the STUN 92 * session, such as the timer heap to register internal timers and 93 * various STUN timeout values. You can initialize this structure by 94 * calling #pj_stun_config_init() 95 * 96 * - <b>create the STUN session</b>:\n 97 * by calling #pj_stun_session_create(). Among other things, this 98 * function requires the instance of #pj_stun_config and also 99 * #pj_stun_session_cb structure which stores callbacks to send 100 * outgoing packets as well as to notify application about incoming 101 * STUN requests, responses, and indicates and other events. 102 * 103 * - <b>configure credential:</b>\n 104 * if authentication is required for the session, configure the 105 * credential with #pj_stun_session_set_credential() 106 * 107 * - <b>configuring other settings:</b>\n 108 * several APIs are provided to configure the behavior of the STUN 109 * session (for example, to set the SOFTWARE attribute value, controls 110 * the logging behavior, fine tune the mutex locking, etc.). Please see 111 * the API reference for more info. 112 * 113 * - <b>creating outgoing STUN requests or indications:</b>\n 114 * create the STUN message by using #pj_stun_session_create_req() or 115 * #pj_stun_session_create_ind(). This will create a transmit data 116 * buffer containing a blank STUN request or indication. You will then 117 * typically need to add STUN attributes that are relevant to the 118 * request or indication, but note that some default attributes will 119 * be added by the session later when the message is sent (such as 120 * SOFTWARE attribute and attributes related to authentication). 121 * The message is now ready to be sent. 122 * 123 * - <b>sending outgoing message:</b>\n 124 * use #pj_stun_session_send_msg() to send outgoing STUN messages (this 125 * includes STUN requests, indications, and responses). The function has 126 * options whether to retransmit the request (for non reliable transports) 127 * or to cache the response if we're sending response. This function in 128 * turn will call the \a on_send_msg() callback of #pj_stun_session_cb 129 * to request the application to send the packet. 130 * 131 * - <b>handling incoming packet:</b>\n 132 * call #pj_stun_session_on_rx_pkt() everytime the application receives 133 * a STUN packet. This function will decode the packet and process the 134 * packet according to the message, and normally this will cause one 135 * of the callback in the #pj_stun_session_cb to be called to notify 136 * the application about the event. 137 * 138 * - <b>handling incoming requests:</b>\n 139 * incoming requests are notified to application in the \a on_rx_request 140 * callback of the #pj_stun_session_cb. If authentication is enabled in 141 * the session, the application will only receive this callback after 142 * the incoming request has been authenticated (if the authentication 143 * fails, the session would respond automatically with 401 error and 144 * the callback will not be called). Application now must create and 145 * send response for this request. 146 * 147 * - <b>creating and sending response:</b>\n 148 * create the STUN response with #pj_stun_session_create_res(). This will 149 * create a transmit data buffer containing a blank STUN response. You 150 * will then typically need to add STUN attributes that are relevant to 151 * the response, but note that some default attributes will 152 * be added by the session later when the message is sent (such as 153 * SOFTWARE attribute and attributes related to authentication). 154 * The message is now ready to be sent. Use #pj_stun_session_send_msg() 155 * (as explained above) to send the response. 156 * 157 * - <b>convenient way to send response:</b>\n 158 * the #pj_stun_session_respond() is provided as a convenient way to 159 * create and send simple STUN responses, such as error responses. 160 * 161 * - <b>destroying the session:</b>\n 162 * once the session is done, use #pj_stun_session_destroy() to destroy 163 * the session. 44 164 */ 45 165 -
pjproject/trunk/pjnath/include/pjnath/stun_sock.h
r2484 r2642 35 35 36 36 /** 37 * @defgroup PJNATH_STUN_SOCK STUN aware socket transport 38 * @brief STUN aware socket transport 39 * @ingroup PJNATH_STUN 37 * @addtogroup PJNATH_STUN_SOCK 40 38 * @{ 41 39 * 42 40 * The STUN transport provides asynchronous UDP like socket transport 43 * with the additional capability to query the publicly mapped transport 44 * address (using STUN resolution), to refresh the NAT binding, and to 45 * demultiplex internal STUN messages from application data (the 46 * application data may be a STUN message as well). 41 * with the additional STUN capability. It has the following features: 42 * 43 * - API to send and receive UDP packets 44 * 45 * - multiplex STUN and non-STUN incoming packets and distinguish between 46 * STUN responses that belong to internal requests with application data 47 * (the application data may be STUN packets as well) 48 * 49 * - DNS SRV resolution to the STUN server (if wanted), along with fallback 50 * to DNS A resolution if SRV record is not found. 51 * 52 * - STUN keep-alive maintenance, and handle changes to the mapped address 53 * (when the NAT binding changes) 54 * 47 55 */ 48 56 … … 276 284 * @param p_sock Pointer to receive the created transport instance. 277 285 * 278 * @re stun PJ_SUCCESS if the operation has been successful,286 * @return PJ_SUCCESS if the operation has been successful, 279 287 * or the appropriate error code on failure. 280 288 */ … … 328 336 * @param sock The STUN transport socket. 329 337 * 330 * @re stun PJ_SUCCESS if the operation has been successful,338 * @return PJ_SUCCESS if the operation has been successful, 331 339 * or the appropriate error code on failure. 332 340 */ … … 341 349 * @param user_data Arbitrary data. 342 350 * 343 * @re stun PJ_SUCCESS if the operation has been successful,351 * @return PJ_SUCCESS if the operation has been successful, 344 352 * or the appropriate error code on failure. 345 353 */ … … 353 361 * @param stun_sock The STUN transport instance. 354 362 * 355 * @re stun The user/application data.363 * @return The user/application data. 356 364 */ 357 365 PJ_DECL(void*) pj_stun_sock_get_user_data(pj_stun_sock *stun_sock); … … 365 373 * @param info Pointer to be filled with STUN transport info. 366 374 * 367 * @re stun PJ_SUCCESS if the operation has been successful,375 * @return PJ_SUCCESS if the operation has been successful, 368 376 * or the appropriate error code on failure. 369 377 */ … … 377 385 * 378 386 * @param stun_sock The STUN transport instance. 379 * @param op_key Optional send key for sending the packet down to387 * @param send_key Optional send key for sending the packet down to 380 388 * the ioqueue. This value will be given back to 381 389 * \a on_data_sent() callback -
pjproject/trunk/pjnath/include/pjnath/stun_transaction.h
r2394 r2642 37 37 * @defgroup PJNATH_STUN_TRANSACTION STUN Client Transaction 38 38 * @brief STUN client transaction 39 * @ingroup PJNATH_STUN 39 * @ingroup PJNATH_STUN_BASE 40 40 * @{ 41 41 * -
pjproject/trunk/pjnath/include/pjnath/turn_session.h
r2589 r2642 31 31 PJ_BEGIN_DECL 32 32 33 /**34 * @defgroup PJNATH_TURN TURN Client Library35 */36 37 33 38 34 /* **************************************************************************/ 39 35 /** 40 * @defgroup PJNATH_TURN_SESSION Transport independent TURN client session 41 * @brief Transport independent TURN client session 42 * @ingroup PJNATH_TURN 43 * @{ 44 * 45 * This module describes the transport independent TURN client session. This 46 * interface is provided for implementors of a TURN client transport, and 47 * application usually will want to use \ref PJNATH_TURN_SOCK instead. 48 * 49 * The transport independent TURN client session is created to facilitate 50 * the creation of different types of transports between the client and the 51 * TURN server. 36 @addtogroup PJNATH_TURN_SESSION 37 @{ 38 39 The \ref PJNATH_TURN_SESSION is a transport-independent object to 40 manage a client TURN session. It contains the core logic for manage 41 the TURN client session as listed in \ref turn_op_sec, but 42 in transport-independent manner (i.e. it doesn't have a socket), so 43 that developer can integrate TURN client functionality into existing 44 framework that already has its own means to send and receive data, 45 or to support new transport types to TURN, such as TLS. 46 47 48 \section turn_sess_using_sec Using the TURN session 49 50 These steps describes how to use the TURN session: 51 52 - <b>Creating the session</b>:\n 53 use #pj_turn_session_create() to create the session. 54 55 - <b>Configuring credential</b>:\n 56 all TURN operations requires the use of authentication (it uses STUN 57 long term autentication method). Use #pj_turn_session_set_credential() 58 to configure the TURN credential to be used by the session. 59 60 - <b>Configuring server</b>:\n 61 application must call #pj_turn_session_set_server() before it can send 62 Allocate request (with pj_turn_session_alloc()). This function will 63 resolve the TURN server using DNS SRV resolution if the \a resolver 64 is set. The server resolution process will complete asynchronously, 65 and application will be notified in \a on_state() callback of the 66 #pj_turn_session_cb structurewith the session state set to 67 PJ_TURN_STATE_RESOLVED. 68 69 - <b>Creating allocation</b>:\n 70 create one "relay port" (or called <b>relayed-transport-address</b> 71 in TURN terminology) in the TURN server by using #pj_turn_session_alloc(). 72 This will send Allocate request to the server. This function will complete 73 immediately, and application will be notified about the allocation 74 result in the \a on_state() callback of the #pj_turn_session_cb structure. 75 76 - <b>Getting the allocation result</b>:\n 77 if allocation is successful, the session state will progress to 78 \a PJ_TURN_STATE_READY, otherwise the state will be 79 \a PJ_TURN_STATE_DEALLOCATED or higher. Session state progression is 80 reported in the \a on_state() callback of the #pj_turn_session_cb 81 structure. On successful allocation, application may retrieve the 82 allocation info by calling #pj_turn_session_get_info(). 83 84 - <b>Sending data through the relay</b>.\n 85 Once allocation has been created, client may send data to any remote 86 endpoints (called peers in TURN terminology) via the "relay port". It does 87 so by calling #pj_turn_session_sendto(), giving the peer address 88 in the function argument. But note that at this point peers are not allowed 89 to send data towards the client (via the "relay port") before permission is 90 installed for that peer. 91 92 - <b>Creating permissions</b>.\n 93 Permission needs to be created in the TURN server so that a peer can send 94 data to the client via the relay port (a peer in this case is identified by 95 its IP address). Without this, when the TURN server receives data from the 96 peer in the "relay port", it will drop this data. Create the permission by 97 calling #pj_turn_session_set_perm(), specifying the peer IP address in the 98 argument (the port part of the address is ignored). More than one IP 99 addresses may be specified. 100 101 - <b>Receiving data from peers</b>.\n 102 Once permission has been installed for the peer, any data received by the 103 TURN server (from that peer) in the "relay port" will be relayed back to 104 client by the server, and application will be notified via \a on_rx_data 105 callback of the #pj_turn_session_cb. 106 107 - <b>Using ChannelData</b>.\n 108 TURN provides optimized framing to the data by using ChannelData 109 packetization. The client activates this format for the specified peer by 110 calling #pj_turn_session_bind_channel(). Data sent or received to/for 111 this peer will then use ChannelData format instead of Send or Data 112 Indications. 113 114 - <b>Refreshing the allocation, permissions, and channel bindings</b>.\n 115 Allocations, permissions, and channel bindings will be refreshed by the 116 session automatically when they about to expire. 117 118 - <b>Destroying the allocation</b>.\n 119 Once the "relay port" is no longer needed, client destroys the allocation 120 by calling #pj_turn_session_shutdown(). This function will return 121 immediately, and application will be notified about the deallocation 122 result in the \a on_state() callback of the #pj_turn_session_cb structure. 123 Once the state has reached PJ_TURN_STATE_DESTROYING, application must 124 assume that the session will be destroyed shortly after. 125 52 126 */ 53 127 -
pjproject/trunk/pjnath/include/pjnath/turn_sock.h
r2589 r2642 33 33 /* **************************************************************************/ 34 34 /** 35 * @defgroup PJNATH_TURN_SOCK TURN client transport 36 * @brief Client transport utilizing TURN relay 37 * @ingroup PJNATH_TURN 38 * @{ 39 * 40 * The TURN relay client transport can be used to relay data from the client 41 * to peer via a TURN relay. The application establishes TURN connection to 42 * the TURN server using UDP or TCP as the transport, then creates a relay 43 * address in the TURN server to be advertised to remote peer(s) as the 44 * transport address. When application sends data to a remote address via 45 * this transport, the data will be sent via the TURN relay, and vice versa. 35 @addtogroup PJNATH_TURN_SOCK 36 @{ 37 38 This is a ready to use object for relaying application data via a TURN server, 39 by managing all the operations in \ref turn_op_sec. 40 41 \section turnsock_using_sec Using TURN transport 42 43 This object provides a thin wrapper to the \ref PJNATH_TURN_SESSION, hence the 44 API is very much the same (apart from the obvious difference in the names). 45 Please see \ref PJNATH_TURN_SESSION for the documentation on how to use the 46 session. 47 48 \section turnsock_samples_sec Samples 49 50 The \ref turn_client_sample is a sample application to use the 51 \ref PJNATH_TURN_SOCK. 52 53 Also see <b>\ref samples_page</b> for other samples. 54 46 55 */ 47 56 … … 207 216 208 217 /** 218 * Configure the SOFTWARE name to be sent in all STUN requests by the 219 * TURN session. 220 * 221 * @param turn_sock The TURN transport instance. 222 * @param sw Software name string. If this argument is NULL or 223 * empty, the session will not include SOFTWARE attribute 224 * in STUN requests and responses. 225 * 226 * @return PJ_SUCCESS on success, or the appropriate error code. 227 */ 228 PJ_DECL(pj_status_t) pj_turn_sock_set_software_name(pj_turn_sock *turn_sock, 229 const pj_str_t *sw); 230 231 232 /** 209 233 * Allocate a relay address/resource in the TURN server. This function 210 234 * will resolve the TURN server using DNS SRV (if desired) and send TURN -
pjproject/trunk/pjnath/include/pjnath/types.h
r2589 r2642 73 73 */ 74 74 75 /* Doxygen documentation below: */76 77 /**78 79 @mainpage PJNATH - Open Source ICE, STUN, and TURN Library80 81 \n82 This is the documentation of PJNATH, an Open Source library providing83 NAT traversal helper functionalities by using standard based protocols84 such as STUN, TURN, and ICE.85 86 \n87 \n88 89 \section lib_comps Library Components90 91 \subsection comp_stun STUN92 93 Session Traversal Utilities (STUN, or previously known as Simple94 Traversal of User Datagram Protocol (UDP) Through Network Address95 Translators (NAT)s), is a lightweight protocol that serves as a tool for96 application protocols in dealing with NAT traversal. It allows a client97 to determine the IP address and port allocated to them by a NAT and to98 keep NAT bindings open.99 100 This version of PJNATH implements the following STUN RFC:101 - <A HREF="http://www.ietf.org/rfc/rfc5389.txt"><B>RFC 5389</b></A>:102 Session Traversal Utilities for (NAT) (STUN),103 104 105 \subsection comp_turn TURN106 107 Traversal Using Relays around NAT (TURN) allows the host to control the108 operation of the relay and to exchange packets with its peers using the relay.109 110 Features:111 - <A HREF="http://www.ietf.org/internet-drafts/draft-ietf-behave-turn-13.txt">112 <B>draft-ietf-behave-turn-13</B></A>: Obtaining Relay Addresses113 from Simple Traversal Underneath NAT (STUN)114 - DNS SRV resolution115 - Fallback to DNS A resolution if SRV record is not found116 - UDP and TCP connection to TURN server117 - automatic management of allocation refresh118 119 120 121 \subsection comp_ice ICE122 123 Interactive Connectivity Establishment (ICE) is a standard based124 methodology for traversing Network Address Translator (NAT). This125 implementation is aimed to provide a usable and generic ICE transports126 for different types of application, including but not limited to127 the usage of ICE in SIP/SDP offer/answer.128 129 130 This version of PJNATH implements the following ICE draft:131 - <A HREF="http://www.ietf.org/internet-drafts/draft-ietf-mmusic-ice-19.txt">132 <B>draft-ietf-mmusic-ice-19.txt</B></A> draft. The PJNATH ICE133 134 135 \subsection comp_natck NAT Classification Utility136 137 The PJNATH library also provides NAT classification utility as138 described in <A HREF="http://www.ietf.org/rfc/rfc3489.txt">RFC 3489</A>.139 While the practice to detect the NAT type to assist NAT traversal140 has been deprecated in favor of ICE, the information may still be141 useful for troubleshooting purposes, hence the utility is provided.142 143 144 \n145 \n146 147 \section lib_org Library Organization148 149 The PJNATH library consists of many components with each providing150 specific functionality that may or may not be of the interests of151 applications (or application developers). This section attempts to152 give brief overview on the components provided by PJNATH.153 154 The PJNATH components from the highest layer to the lower layer are155 as follows.156 157 158 \n159 160 \subsection user_comp High-level Transport Objects161 162 PJNATH library provides some high-level objects that may be used163 by applications:164 165 166 \subsubsection stun_sock STUN Transport167 168 The \ref PJNATH_STUN_SOCK provides asynchronous UDP like socket transport169 with the additional capability to query the publicly mapped transport170 address (using STUN resolution), to refresh the NAT binding, and to171 demultiplex internal STUN messages from application data (the172 application data may be a STUN message as well).173 174 175 \subsubsection turn_sock TURN Client Transport176 177 The \ref PJNATH_TURN_SOCK may be used by the application to send and178 receive data via TURN server. For more information please see the179 documentation of \ref PJNATH_TURN_SOCK.180 181 182 \subsubsection ice_strans ICE Stream Transport183 184 The \ref PJNATH_ICE_STREAM_TRANSPORT provides transport interface to185 send and receive data through connection that is negotiated186 with ICE protocol. The \ref PJNATH_ICE_STREAM_TRANSPORT naturally187 contains both STUN Transport and \ref PJNATH_TURN_SOCK.188 189 The \ref PJNATH_ICE_STREAM_TRANSPORT interface is suitable for both190 SIP or non-SIP use. For SIP use, application may prefer to use the191 ICE media transport in PJMEDIA instead where it has been integrated192 with the SDP offer and answer mechanism.193 194 195 \subsubsection natck NAT Classification Utility196 197 PJNATH also provides \a PJNATH_NAT_DETECT to assist troubleshooting198 of problems related to NAT traversal.199 200 201 202 \n203 204 205 \subsection sessions Transport Independent Sessions Layer206 207 Right below the high level transports objects are the transport208 independent sessions. These sessions don't have access to sockets,209 so higher level objects (such as transports) must give incoming210 packets to the sessions and provide callback to be called by211 sessions to send outgoing packets.212 213 214 \subsubsection ice_sess ICE Session215 216 The \ref PJNATH_ICE_SESSION is used by the \ref PJNATH_ICE_STREAM_TRANSPORT217 and contains the actual logic of the ICE negotiation.218 219 220 \subsubsection turn_sess TURN Session221 222 The \ref PJNATH_TURN_SESSION is used by the \ref PJNATH_TURN_SOCK223 and it contains TURN protocol logic. Implementors may implement224 other types of TURN client connection (such as TURN TLS client)225 by utilizing this session.226 227 228 \subsubsection stun_sess STUN Session229 230 The \ref PJNATH_STUN_SESSION manages STUN message exchange between231 a client and server (or vice versa). It manages \ref PJNATH_STUN_TRANSACTION232 for sending or receiving requests and \ref PJNATH_STUN_AUTH for both233 both incoming and outgoing STUN messages.234 235 The \ref PJNATH_STUN_SESSION is naturally used by the \ref PJNATH_TURN_SESSION236 and \ref PJNATH_ICE_SESSION237 238 239 \n240 241 \subsection stun_tsx STUN Transaction Layer242 243 The \ref PJNATH_STUN_TRANSACTION is a thin layer to manage retransmission244 of STUN requests.245 246 247 \n248 249 250 \subsection stun_msg STUN Messaging Layer251 252 At the very bottom of the PJNATH components is the \ref PJNATH_STUN_MSG253 layer. The API contains various representation of STUN messaging components254 and it provides API to encode and decode STUN messages.255 256 257 258 \n259 \n260 261 \section class_dia Class Diagram262 263 264 The following class diagram shows the interactions between objects in265 PJNATH:266 267 \image html UML-class-diagram.png "Class Diagram"268 \image latex UML-class-diagram.png "Class Diagram"269 270 271 272 \n273 \n274 275 \section samples Sample Applications276 277 278 Some sample applications have been provided with PJNATH, and it's available279 under <tt>pjnath/src</tt> directory:280 281 - <b>pjturn-client</b>: this is a stand-alone, console based TURN client282 application to be used as a demonstration for PJNATH TURN client283 transport API and for simple testing against TURN server implementations.284 The client supports both UDP and TCP connection to the TURN server.285 286 - <b>pjturn-srv</b>: this is a simple TURN server to be used for testing287 purposes. It supports both UDP and TCP connections to the clients.288 289 290 */291 292 /**293 * @defgroup PJNATH_STUN STUN Library294 * @brief Open source STUN library295 *296 * This module contains implementation of STUN library in PJNATH -297 * the open source NAT helper containing STUN and ICE.298 */299 300 75 #endif /* __PJNATH_TYPES_H__ */ 301 76 -
pjproject/trunk/pjnath/src/pjnath/turn_sock.c
r2589 r2642 340 340 341 341 /* 342 * Set software name 343 */ 344 PJ_DEF(pj_status_t) pj_turn_sock_set_software_name( pj_turn_sock *turn_sock, 345 const pj_str_t *sw) 346 { 347 return pj_turn_session_set_software_name(turn_sock->sess, sw); 348 } 349 350 /* 342 351 * Initialize. 343 352 */
Note: See TracChangeset
for help on using the changeset viewer.