README
上传用户:sy_wanhua
上传日期:2013-07-25
资源大小:3048k
文件大小:24k
- ====================================================================
- VOCAL Readme
- ====================================================================
-
- Software release number: VOCAL 1.3.0-RC1
- Software release date: July 19, 2001
- Readme release version: 1.3.0-RC1
- Readme release date: July 19, 2001
- ====================================================================
- LICENSE AND COPYRIGHT
- ====================================================================
- The Vovida Software License, Version 1.0
- Copyright (c) 2000 Vovida Networks, Inc. All rights reserved.
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
- 1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
- 3. The names "VOCAL", "Vovida Open Communication Application
- Library", and "Vovida Open Communication Application Library
- (VOCAL)" must not be used to endorse or promote products derived
- from this software without prior written permission. For written
- permission, please contact VOCAL@vovida.org.
- 4. Products derived from this software may not be called "VOCAL",
- nor may "VOCAL" appear in their name, without prior written
- permission of Vovida Networks, Inc.
- THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED
- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND
- NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL VOVIDA NETWORKS,
- INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT DAMAGES IN EXCESS
- OF $1,000, NOR FOR ANY INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
- OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
- OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- --------------------------------------------------------------------
- All third party licenses and copyright notices and other required
- legends also need to be complied with as well.
- ====================================================================
- INTRODUCTION
- ====================================================================
- The Vovida Open Communication Application Library (VOCAL) is an open
- source project targeted at speeding the adoption of Voice over
- Internet Protocol (VoIP) implementations by helping developers
- within the community build VoIP features, applications and services.
- The VOCAL software includes a Session Initiation Protocol- (SIP)
- based Redirect Server (RS), Feature Server (FS), Provisioning Server
- (PS), Policy Server (PoS) and Marshal Server (MS), along with
- protocol translators from SIP to H.323 and SIP to Media Gateway
- Control Protocol (MGCP).
- See the Documentation section of http://www.vovida.org for more
- information about VOCAL.
- ====================================================================
- ERRATA
- ====================================================================
- For the latest breaking news regarding this release candidate, please
- see the VOCAL Errata section in Faq-o-matic, at
- http://www.vovida.org/cgi-bin/fom?file=519
- Issues and more information will be available from this location.
- ====================================================================
- NEW FEATURES AND FUNCTIONS IN THIS RELEASE
- ====================================================================
- FIXME: As we add more RCs, please move changes from the "since last
- RC" section to the "since 1.2.0" section.
- Changes since 1.3.0-RC1:
- ------------------------
- --VThreadPool Bug:
- Fix for crash bug in VThreadPool. This problem was a subtle one
- appearing in all versions of VThreadPool, possibly causing
- hard-to-track crashes, particularly on Solaris with the pserver.
- Changes since 1.3.0-RC0:
- ------------------------
- ---Deploy:
- There is a new allinone make target. Users should now be able to
- do:
- make all
- make allinone
- and have a basic working all in one system (with two users -- 1000
- and 1001) built and installed into /usr/local/vocal.
- Alternately, users can do:
- make all
- make staging_notar
- # change to root
- make allinone
- if they do not wish to compile as root.
- "make allinone" does not replace deploy for deploying multiuser
- systems, although the intent is to eventually replace it.
- --Directory Structure change:
- The VOCAL make system stores its objects and binaries in a
- subdirectory relative to the code, named obj.{objecttype}.{arch} and
- bin.{objecttype}.{arch}, respectively, where {objecttype} is the
- object type (typically "debug"), and {arch} is the machine type (such
- as sun4u for sun sparc boxes, and i686 for intel machines).
- These directories have been renamed to obj.{objecttype}.{os}.{arch}
- and bin.{objecttype}.{os}.{arch}. In the new scheme, os stands in for
- the operating system, such as SunOS, Linux, or FreeBSD. Doing this
- makes it easier to build VOCAL for multiple operating systems when
- mounted over NFS.
- ---TCP Support:
- TCP support has been enhanced, thanks to contributions submitted by
- members of the Vovida.org community.
- ---UA Marshal Server:
- The UAMS responds to SIP CANCEL requests with a 200, OK response.
- Before, the UAMS was not handling the CANCEL message correctly.
- Simplified view of the old scenario:
- UA1 UAMS UA2
- |---------CANCEL--------->|----------CANCEL--------->|
- | |<---------200-------------|
- |---------CANCEL--------->| |
- |---------CANCEL--------->| |
- |---------CANCEL--------->| |
- |---------CANCEL--------->| |
- Simplified view of the new scenario:
- UA1 UAMS UA2
- |---------CANCEL--------->| |
- |<---------200------------| |
- | |----------CANCEL--------->|
- | |<---------200-------------|
- ---H.323 Translator:
- The H.323 Translator now supports gateway trunking. Before, it was
- only supporting NetMeeting as endpoints.
- Changes since 1.2.0:
- --------------------
- ---Platform:
- Redhat 7.0 and 7.1 / Solaris 8 with g++ Support
- This RC contains support for compilation under Redhat 7.0 and 7.1, as
- well as Solaris 8 using g++ as the C++ compiler. Please see below for
- further details.
- In order to compile with g++ under Solaris 8, you must run the
- configure script from within the vocal directory:
- ./configure --with-toolchain=gnu --with-ar=/usr/local/bin/ar
- after this, you may use "make all" to compile the software.
- WARNING: You MUST have GNU ar to correctly build using gcc / g++ .
- The ar which comes with Solaris (in /usr/ccs/bin/ar) will not work --
- it will crash with a segmentation fault if you fail to pass a valid
- location for GNU ar.
- WARNING: DO NOT mix objects compiled with Forte with objects compiled
- with g++. Doing so may result in compiler errors, as Forte is not
- binary compatible with g++.
- ---Performance:
- 500 Calls Per Second
- On Linux RedHat 6.2, performance ratings of 40 calls per second (cps)
- have been achieved over a minimum system consisting of 2 Marshal
- Servers(MS's) and 1 Redirect Server(RS). This performance is scalable
- and has been demonstrated processing up to 500 cps over 26 MS's, 4
- RS's, and a Provisioning Server. This marks a four-fold improvement
- over vocal 1.2.0.
- During performance testing, a call was defined as follows:
- 1. 1 SIP endpoint called another SIP endpoint
- 2. The called endpoint answered the call
- 3. The called endpoint held the call for two seconds
- 4. The calling endpoint tore down the call.
- For more information about the performance testing, see the VOCAL
- Performance Specification Document:
- http://www.vovida.org/document/pdf/perfNumber.pdf
- ---SIP Stack:
- Enhanced TCP Support
- The new release candidate, vocal 1.3.0-RC0 offers more reliable and
- stable support for SIP over TCP than vocal 1.2.0.
- ====================================================================
- BUG FIXES
- ====================================================================
- Please refer to the Bugzilla listings on the http://www.vovida.org web
- site for bug fix information.
- ====================================================================
- KNOWN LIMITATIONS
- ====================================================================
- Known limitations for this RC:
- This RC has not undergone a full test of the system components, but
- only a basic call through the traditional (rs/ms/fs) system.
- FIXME: The following limitations are from VOCAL 1.2.0. They will be
- updated in a later RC for VOCAL 1.3.0.
- ---Provisioning Server (PS)
- Limitation: On the Solaris platform, loading VOCAL onto boxes with
- dual cpu's forces the Provisioning Server to crash.
- This problem has not appeared in our testing on Linux
- RedHat versions 6.2 and 7.1.
- Workaround: Disable one of the cpu's.
- Limitation: On the Solaris platform, loading more than 40,000 users
- makes the Provisioning GUI turn completely white and,
- therefore, practically unusable.
- Workaround: Do not load more than 40,000 users onto a VOCAL system
- running on Solaris.
- Limitation: If the user has the wrong file permissions for
- provisioning data, the data becomes corrupted.
- Workaround: Make sure that the user who runs the PS has write
- permissions for all of the provisioning data files.
- ---Feature Servers (FS)
- Limitation: Call Processing Language (CPL) scripts that are not
- generated by the VOCAL PS are not supported.
- Workaround: None.
- Limitation: Call Return, Call Waiting, Call Hold and Consultation
- Transfer do not work with Caller ID Blocking.
- Workaround: Disable Caller ID Blocking to make these features work.
- Limitation: Call Blocking only works with North American Dialing
- Plan numbers.
- Workaround: None.
- Limitation: If the administrator blocks 1+ calls, 1-8xx calls are
- purposely unblocked. This includes toll-free numbers as
- well as calls to ordinary 8xx area codes, such as 801
- and 802.
- Workaround: None.
- Limitation: Phone numbers entered for call screening must include
- the area code regardless if they are local or long-
- distance numbers.
- Workaround: None.
- ---Redirect Server (RS)
- Limitation: Only one registration is stored per subscriber. When
- another registration comes in, the old information is
- overwritten.
- Workaround: None.
- Limitation: Registration Expire is currently turned off. When a
- subscriber expires, its terminating contacts are not
- removed from the subscriber database.
- Workaround: Delete the lines (332 and 334) before and after the
- clearTerm() function call (line 333) in Subscriber.cxx.
- ---Marshal Servers (MS)
- Limitation: Unknown SIP methods are not proxied.
- Workaround: None.
- Limitation: Conference calls, both meet-me and ad-hoc, require
- the inclusion of a conference bridge (a.k.a.
- Multimedia Conference Unit (MCU)) from an outside
- vendor to perform the audio mixing.
- Workaround: None.
- Limitation: If the MCU provides a SIP interface, conference calls
- can be placed to it through any type of MS.
- However, if the MCU provides a PSTN interface, the only
- way to route calls to it is through this path:
- a Gateway MS to a SIP-PSTN gateway to the MCU. When
- setting up the conference MS, use the system dialing
- plan to direct calls to the MCU; the gateway setting
- is ignored.
- Limitation: Each Gateway, Internetwork, and Conference MS
- supports one and only one external entity,
- whether that entity is a gateway, a proxy server, or
- a conference bridge.
- Workaround: Run a MS for each external entity except for the
- User Agent Marshal Servers (UAMS).
- Limitation: Conference calling between VOCAL UA endpoints is not
- reliable.
- Workaround: Restart the Conference MS and VOCAL UA endpoints.
- ---Policy Server
- Limitation: The VOCAL 1.2.0 Policy Server supports Open Settlement
- Protocol (OSP) version 1.4.3 only.
- Workaround: Run Voice Mail User Agents in Linux systems.
- ---H.323 Endpoint
- Limitation: Calls between H.323 and MGCP endpoints do not work.
- Workaround: None.
- ---Simple Network Management Protocol (SNMP)
- Limitation: On Solaris, if the system is not deployed, the port
- on which the SNMP daemon listens to the agents,
- port 33602, has to be free.
- Workaround: If this port is being used by a different application,
- kill that application before restarting snmpd.
- Limitation: Multi-Router Traffic Grapher (MRTG) is not supported
- in the VOCAL 1.2.0 release. It will be released in
- the next release patch.
- ---Voice Mail
- Limitation: VOCAL 1.2.0 doesn't support voice mail on Solaris.
- Workaround: Run Voice Mail User Agents in Linux systems.
- Limitation: The Voice Mail Server (VMS) always listens to 8024 port
- on Linux.
- Workaround: If this port is being used by a different application,
- kill that application before restarting the VMS.
- ---Media Gateway Control Protocol (MGCP) Endpoint
- Limitation: During calls between MGCP/UA's, consultation transfer
- to the PSTN cannot be completed.
- Workaround: None.
- Limitation: During calls from Cisco 7960 IP Phones to MGCP/H.323
- endpoints, hanging up MGCP/H.323 endpoint does not
- clear the call completely on the Cisco 7960 IP Phone.
- Workaround: Hang up the Cisco 7960 IP Phone.
- Limitation: Conference and Consultation Transfer involving Telogy
- is not supported in VOCAL 1.2.0 due to limitations
- with the Telogy gateway.
- Workaround: Make conference and consultation transfers between
- three MGCP endpoints.
- ---Call Detail Record (CDR) Server
- Limitation: VOCAL 1.2.0 on Solaris doesn't connect to Remote
- Authentication Dial-In User Service- (RADIUS) based
- billing systems.
- Workaround: Use billing.dat files which are generated by the CDR
- Server to retrieve billing data.
- ---Java Telephony Application Programming Interface (JTAPI) Server
- Limitation: Once a VOCAL UA is provisioned with a JTAPI feature,
- the user cannot dial from their phone set without
- bringing up a JTAPI client.
- Workaround: Disable JTAPI feature for the user if the feature is
- not needed or bring up a JTAPI Client.
- ---User Agent (UA)
- Limitation: Consultation and Blind Transfer do not work
- Workaround: It is a bug. See Bugzilla for information about the fix.
- Limitation: Call Waiting does not work
- Workaround: None
- Limitation: VOCAL 1.2.0 does not support the load generator.
- Workaround: None.
- Limitation: The UA assumes that the codec type is always PCM U-law.
- Workaround: None.
- Limitation: The UA does not handle message retransmit timeouts.
- Workaround: None.
- Limitation: There is a known problem when using the
- INTERNAL_IP_DIAL(3) speed dial option. The
- INTERNAL_IP_DIAL speed dial plan is currently set to
- this dial pattern: DIAL_PATTERN string
- 3 ^[0-9][0-9][0-9]. The INTERNAL_IP_DIAL option will
- not work if the host portion of the IP address contains
- only 1 or 2 digits. For example, if you attempt to call
- 192.168.121.10 by dialing 10, the UA will take the
- previous digit and dial 110.
- Workaround: If the IP address contains 1 digit, dial "00" plus the
- digit. For example, if the last octect is "1", dial
- "001". If the address contains 2 digits, dial "0"
- plus the digits. For example, if the last octet is "11",
- dial "011".
- ====================================================================
- GETTING STARTED
- ====================================================================
- TESTED PLATFORMS
- --------------------------------------------------------------------
- The software has been compiled using the following operating systems /
- versions:
- Operating System Kernel Compiler
- Linux (Redhat 6.2) 2.2.14 g++ 2.91.66
- Linux (Redhat 7.1) 2.4 g++ 2.96 (Redhat)
- Solaris 8 2.8 sun workshop 6 update 1
- Solaris 8 2.8 g++ 2.95.2
- Java
- We recommend running the Java Client using the Java Plug-in version
- 1.3 or higher. Use Internet Explorer version 5 or higher, or use
- Netscape version 4.7 or higher. You can download the latest
- version of the Java Plug-in from
- http://www.javasoft.com/j2se/1.3/jre/index.html.
- TESTED GATEWAYS AND ENDPOINTS
- --------------------------------------------------------------------
- FIXME: This section reflects the tested equipment for 1.2.0, and will
- be updated for 1.3.0 on a later RC.
- Cisco 7960 SIP IP Phone: Firmware version P0S3Z444 is currently
- in Beta trials and has been thouroughly tested with VOCAL 1.2.0.
- Firmware version P0S30200 is currently available and has
- undergone basic testing with VOCAL 1.2.0.
- MGCP gateway: Cisco IOS version 12.1(5)XM
- 2600 gateway: Cisco IOS version 12.1(5)XM
- 5300 gateway: Cisco IOS version 12.1(5)XM
- INSTALLATION and COMPILE INSTRUCTIONS
- --------------------------------------------------------------------
- ---Single Host Installation and Compile Instructions:
- On a linux box either Redhat 6.2 or Redhat 7.1 do:
- 1. tar xvzf vocal-1.3.0-RC1.tar.gz
- 2. cd vocal-1.3.0-RC1
- 3. make all
- /* remove ldap2user from all: in vocal/Makefile on RH 6.2 */
- 4. Install JRE 1.3 or equivalent jdk
- /* as root, #rpm -hivv jre*rpm */
- 5. Install apache
- /*as root, #rpm -hivv apach*rpm */
- 6 make allinone
- /* as root */
- /* choose everything as default except
- /usr/java/jre1.3.1/bin/java, if you used jre.
- Might be different if you used jdk */
- 7. /etc/rc.d/init.d/httpd restart
- /* as root */
- /* note restart, not start */
- 8 Export NPX_PLUGIN_PATH=/usr/java/jre1.3.1/plugins/i386/ns4 /* start
- netscape-communicator& from this xterm */
- 9. On the browser enter http://hostname/vocal/ /* note the / after vocal */
- 10. Copy ua1000.cfg and ua1001.cfg from vocal/sip/ua/Sample*/ua100?.cfg to
- /usr/local/vocal/bin
- 11. Edit ua100?.cfg by changing vocal-ext to the name of your host machine /*
- all inonebox hostname */
- 12. You can run ./ua -r -f ./ua1000.cfg on one xterm and ./ua -rs -f
- ./ua1001.cfg on another xterm
- 13. Press 'a' for offhook, 'z' for on hook on the ua term. Dial 1000 or 1001
- to call the other phone.
- ---Distributed Network Installation and Compile Instructions:
- Please refer to the Software Installation Guide for installation and
- compile instructions. The guide is available in both HTML and PDF
- formats on the http://www.vovida.org website.
- USING THE SOFTWARE
- --------------------------------------------------------------------
- This software needs to be run in retransmission mode for all
- applications. Please refer to each application's readme file for
- usage of each process.
- For all applications except the User Agent, do not include
- "-r" in command line for retransmission.
- For the User Agent application, include "-r" in command line for
- retransmission.
- TESTING THE SOFTWARE
- --------------------------------------------------------------------
- Please refer to test results on VOCAL source code tree under
- VOCAL/doc for both Linux and Solaris test cases.
- ====================================================================
- SOURCE CODE INFORMATION
- ====================================================================
- A number of preliminary documents concerning VOCAL are available from
- http://www.vovida.org/document/protocol.html
- and
- http://www.vovida.org/document/applications.html
- There is a series of slides covering VOCAL system architecture
- available at:
- http://www.vovida.org/document/Training/2_VOCAL_Architecture/index_files/v3_document.htm
- Generating Documentation using Doc++
- ----------------------------------------------
- You can use Doc++ to generate API documentation. Doc++ generates an
- alphabetical and hierarchical index of classes, functions, and
- variables.
- To use Doc++:
- 1. Download Doc++ from http://www.zib.de/Visual/software/doc++/
- 2. Untar the file.
- 3. Locate the doc++ and docify files. These files should be in
- the /bin directory.
- 4. Copy the doc++ and docify files to directory where the source
- code is located.
- 5. Type: make doc
- 6. Doc++ generated documentation will be saved in a html directory.
- 7. Select index.html from the html directory.
- ====================================================================
- DIRECTORY STRUCTURE
- ====================================================================
- Our source code tree structure:
- The vocal directory contains the following subdirectories:
- 1. LICENSE -- the Vovida Software License under which all the source
- code within the tarball, unless otherwise noted, is
- licensed
- 2. Makefile -- top level makefile from which all software components
- (ie. targets) can be built. Type "make" to see a list
- of available targets
- 3. README -- this file
- 4. build -- includes the make files
- 5. cdr -- includes source code for RADIUS stack and CDR server
- 6. config -- includes configuration files for all endpoints
- 7. contrib -- includes all the packages that have been used in our
- software
- 8. heartbeat -- includes the Heartbeat Server's source code.
- 9. install -- includes the source code for deploy
- 10. mgcp -- includes information about Media Gateway Control
- Protocol
- 11. policy -- includes policyServer executable
- 12. provisioning -- includes source code for provisioning
- 13. proxies -- includes base code, Feature Server, Marshal Server,
- Redirect Server, Network Manager source code
- 14. release -- includes scripts to generate and test the sip,
- mgcp and rtp stacks
- 15. rtp -- includes Real-time Transfer Protocol source code
- 16. sdp -- includes Session Description Protocol stack source code
- 17. sip -- includes Session Initiation Protocol stack source code
- 18. snmp -- includes source code for Simple Network Management
- Protocol (SNMP) manager and client
- 19. snmp++ -- includes the C++ wrapper for portion of SNMP used
- by proxies and NetMgnt
- 20. stage -- the executables are staged here
- 21. tools -- includes various development, debugging, and testing
- tools
- 22. translators -- includes source code for H.323 translators and
- MGCP endpoints
- 23. util -- includes all utils which has been used for our software
- 24. vm -- includes source code for the Voice Mail Server
- 25. vmclient -- includes source code for the Voice Mail Client
- ====================================================================
- CONTACT INFORMATION AND WEBSITE
- ====================================================================
- We welcome your feedback, suggestions and contributions. Contact us
- via email if you have questions, feedback, code submissions, and bug
- reports.
- For general inquiries - info@vovida.org
- We use a web based interface to our mailing lists. It is available at
- http://www.vovida.org/mailman/listinfo/
- From there, you may subscribe, unsubscribe, and browse the archives
- for mailing lists concering VOCAL.
- Here is a partial list of mailing lists which may be of interest to
- the VOCAL community:
- announce@vovida.org Announcements
- vocal@vovida.org developer and user questions about VOCAL
- documentation@vovida.org documentation questions
- cops@vovida.org COPS stack
- mgcp@vovida.org MGCP stack
- radius@vovida.org RADIUS stack
- rtp@vovida.org RTP stack
- sip@vovida.org SIP stack
- trip@vovida.org TRIP stack
- You can submit bug, patches, software contributions, and feature
- requests using Bugzilla. Access Bugzilla from http://www.vovida.org
- ====================================================================