As base configuration file, you can use the example located at /usr/share/asterisk-phonepatch/phonepatch.conf.example. Copy it to /etc/asterisk/phonepatch.conf and costumize it. Take a look on the manual page (man phonepatch.conf) to see a detailed explanation of all the variables. Default values are good for most situations, but take care on the following ones:
radio: ptt
On most cases you will have to enable this options to turn on PTT when sending audio to the radio.
radio: radio_control
Use serial:device, parallel:device or command:external_command. Valid values are for example serial:/dev/ttyS0, parallel:/dev/parport0 or command: /usr/sbin/external-app-to-interface-board.
When using parallel port, make sure that the module ppdev is loaded.
The command option runs an external command which is supposed to accept commands from the stdin and returning its output through stdout. When using the command option, you have to fill ptt_on, ptt_off, get_carrier and get_carrier_response parameters. The first three are the strings that would be sent to process to turn ptt of, turn it off, and get carrier state. The last one, get_carrier_response, expects a special regular expression: let's imagine that the external application returns "get carrier: on" to say there is carrier and "get carrier: off" if there is not. In that case you would have to set get_carrier_response parameter to "get carrier: (on|off)".
radio: carrier_detection
It prevents PTT activation when the carrier is detected. Must be enabled for VHF/UHF transceivers, but of course only if your interface board is able to read the carrier_detection state, otherwise the phonepatch won't work. Sometimes enabling carrier_detection is optional, but in other cases is compulsory, because the radio outputs noise on the Rx audio signal (noise that the phone user will listen!). Motorola transceivers are known to behave that way.
If carrier_detection is enabled, the carrier_polling_time applies. This is the time that the phonepatch waits between succesive looks to carrier state. Use small values carefully as it will surey be a CPU intensive task. 0.5 seconds should be enough for most cases.
radio: full_duplex
You should enable this parameter only if you have a full duplex transceiver (notice that it will only work if carrier_detection is also enabled). Notice that most transceivers are half-duplex and this options should remain disabled.
radio: ptt_threshold_signal
Phones don't have a PTT, so we need to guess when the phone user is talking or not, and activate the PTT automatically (this is called a VOX mechanism). The ptt_threshold_signal is the parameter you need to adjust depending on your phoneline and soundcard levels. Maximum received power is the unity (1.0), so values around 0.05-0.2 should work in most scenarios.
dtmf: noisy_mode_button
It has been implemented for very noisy links (i.e. HF) where a tone can be decoded accidentally more than once. With this DTMF button you indicate that you are going to push next number. Example (using #): user pressed "1#2#3#4#", but the number was decoded, due to noise, as 1111#2#333333###4444##; however, this will be correctly interpreted as 1234. Therefore, you can repeat as many times as you want a number to assure it's decoded, and then press noisy_mode_button (also so the times you want).
outcall: channel
That's the channel used on outgoing calls. Example: IAX2/user:password@IP
outcall: context/extension
Must correspond to the context and extension where "phonepatch.agi|-o" has been configured.