Notes for Team 2
(From September 25 meeting with Prof. Keshav)
Remarks
- There are two control levels - the application level and the basic one. You are to
implement the basic level: setting up the call, tearing down the call, etc.
- Use SIP. It has many parts, including directory service. You should concentrate only on
the signalling part. Look at Henning's paper; it has a good description of SIP.
- Basic SIP is just between two endpoints. But you will have a gateway, so you must
implement signalling. Start with the invite-ack step. When a call is initiated, the PBX
rings and picks up. The signal comes in on one of the 4-8 lines to the gateway. Look up
the proper IP address (from directory services) for this phone call, and use the gateway
to send an invite message to the PC.
- The PC responds to the gateway, who can then send a JTAPI message to the PBX. The only
parts of JTAPI you need are core and CallControl.
- Allow for extension numbers. The signalling team implements the "please enter
extension" message, and then collects the DMTF tones as the caller presses the
keypad.
- Handling unforeseen events is the hard part. One of your goals is to figure out what it
is so hard to deal with the uncommon cases.
Questions
- Is this team responsible for the data? No. Coordinate with Team
1. Data will be in RTP format.
- What happens when the phone hangs up? The PBX gets the signal,
sends a protocol message to the gateway saying this has happened, who then breaks the
association with the PC, and makes the line a now-available resource.
- What if the PC goes down? This is harder. The data team has to
notice no traffic after a while and tell you. You can then send another invite. If no ack
in a reasonable time, tear down the call.
- Must we allow conferencing? SIP allows you to join multi-party
calls, so yes, you should allow conferencing.
- Do the signalling software and the client run on the same machine? Typically
not. The directory service gives you the current IP number and port of the client. The
directory is a "location server".