Prosody installation guide: diagnostic programs: incall

This program answers incoming calls, showing the associated events as they happen. It doesn't connect the calls to anything, so it would normally be used in conjunction with the switch program.

Go to directory $(TiNG)/diag/incall.

This is a standalone program that requires no Prosody facilities, so you can run it on a system which does not have Prosody installed (but it must have the Aculab call driver installed and running).

Run incall with the appropriate options (the program is gen-LINUX_V6/incall or gen-WINNT_V6/incall depending on which operating system you are using).

Command line options are:

-p portlist Specifies the ports to use (the default is all).
-t timeslotlist Specifies the timeslots to use (the default is all).
-x cardspec The card to use.

A list is a sequence of items, separated by commas. Each item can be a single value or a range, which is specified by a value, a dash, and another value. Values are in decimal by default, in hex if they start with 0x, and in octal if they start with 0. The value specifying the end of a range can also be specified by the single character * which means that the range extends as far as possible. For example, if the maximum possible value is six, then these ranges are equivalent:

When the program starts, it starts waiting for incoming calls on any of the timeslots you specified. If some are invalid, it ignores them. It reports how many timeslots it is waiting on. When reporting about a timeslot, it prints a line of output with the port and timeslot number at the start. For example,

	$ gen-LINUX_V6/incall -p0
	0.0: invalid timeslot - ignored
	0.16: invalid timeslot - ignored
	Started 30 timeslots on port 0: ETS300
	0.1: EV_WAIT_FOR_INCOMING
	0.2: EV_WAIT_FOR_INCOMING
	0.3: EV_WAIT_FOR_INCOMING
	0.4: EV_WAIT_FOR_INCOMING
	0.5: EV_WAIT_FOR_INCOMING
	0.6: EV_WAIT_FOR_INCOMING
	0.7: EV_WAIT_FOR_INCOMING
	0.8: EV_WAIT_FOR_INCOMING
	0.9: EV_WAIT_FOR_INCOMING
	0.10: EV_WAIT_FOR_INCOMING
	0.11: EV_WAIT_FOR_INCOMING
	0.12: EV_WAIT_FOR_INCOMING
	0.13: EV_WAIT_FOR_INCOMING
	0.14: EV_WAIT_FOR_INCOMING
	0.15: EV_WAIT_FOR_INCOMING
	0.17: EV_WAIT_FOR_INCOMING
	0.18: EV_WAIT_FOR_INCOMING
	0.19: EV_WAIT_FOR_INCOMING
	0.20: EV_WAIT_FOR_INCOMING
	0.21: EV_WAIT_FOR_INCOMING
	0.22: EV_WAIT_FOR_INCOMING
	0.23: EV_WAIT_FOR_INCOMING
	0.24: EV_WAIT_FOR_INCOMING
	0.25: EV_WAIT_FOR_INCOMING
	0.26: EV_WAIT_FOR_INCOMING
	0.27: EV_WAIT_FOR_INCOMING
	0.28: EV_WAIT_FOR_INCOMING
	0.29: EV_WAIT_FOR_INCOMING
	0.30: EV_WAIT_FOR_INCOMING
	0.31: EV_WAIT_FOR_INCOMING

shows it starting to listen on a port running ETS300 call control. Each of the thirty valid timeslots is shown as moving into the state EV_WAIT_FOR_INCOMING. When a call arrives, it is automatically answered, and output similar to this is produced:

	0.1: EV_INCOMING_CALL_DET
	0.1: @32.1 IN sc=0 '45678' -> '987654' as '123456'
	0.1: EV_CALL_CONNECTED

This shows that a call comes in on timeslot 1. The second line shows the data reported by the call_details() API function. The @32.1 shows that the Aculab switch driver can switch data to and from this call through the pair of timeslots numbered 1 on stream 32. The IN indicates that this is an incoming call (which is always the case for the incall program). sc=0 shows the value of the sending_complete field (which indicates whether or not the destination number is guaranteed to be complete). The three numbers in quotes are the originating number, the connected number, and the destination number in that order. If the call is cleared, the following, or similar, will be displayed:

	0.1: EV_IDLE 10 (0=NORMAL)
	0.1: EV_WAIT_FOR_INCOMING

This shows the call being cleared and incall then starting to listen for another call on the same timeslot.

The source code for this program is provided (incall.c).


This is one of the Prosody diagnostic programs .