IRIS3000 board is shipped mounted with two rows of female connectors to plug-in Orange Pi Zero as drop down module. However, Orange Pi Zero only comes with one row of DIL male header. Before mounting Orange Pi Zero on IRIS3000, please make sure you have soldered a 13-pin SIL male header on available space on bottom side of the board. After mounting Orange Pi Zero on IRIS3000 and connecting to LAN, power it on using DC-pin power connector on IRIS3000. Caution: don’t power the board using Orange Pi Zero micro USB connector. For a smoother trouble free operation, use a high quality 5V DC power supply rated at 2A. Once the board boots up, SSH to Orange Pi using provided credentials and proceed as follows to configure and run the firmware:
Hardware Specific Configurations
Enabling FXO/FXS ports
You can enable/disable individual ports by setting corresponding parameters in cpe.conf:
# Enable/disable FXS
fxs-device enable
# Enable/disable FXO
fxo-device enable
Configuring USB Audio
IRIS3000 uses on-board USB voice codec for voice communication. First, make sure that the audio device has been successfully detected by Linux, using lsusb command:
The entry with PCM2900C is the entry you are looking for. If you don’t see such an entry, the power supply is noisy. Use a good quality, preferably filtered, power supply and reboot the board.
If USB device is there, run aplay -l command to find out card number of the device.
In the above example, the USB device is mapped to card 2, device 0. Therefore, set audio device in cpe.conf:
# Audio device
audio-device plughw:2,0
SIP Configuration
To register with Asterisk, modify SIP settings in cpe.conf to point to on-board Asterisk. Assuming you have created a SIP extension 200 with password 200, the setting would like:
# user password server port
sip 200 200 127.0.0.1 5160
FXS/FXO Ports Configurations
These are setting for call progress tones and CID. The settings are self explanatory. For FXS, you can keep default settings. For FXO, the call progress tones are for US. You may want to change these to match your regional settings. You may also want to change CID settings to match your land line configuration. Default CID settings are for the US:
# CID detection standard (dtmf, bell, etsi, none)
fxo-cid-standard bell
# CID detection alert (ring, dt, lr, none)
fxo-cid-alert ring
# CID detection wait time
# Value 0-30. Change it to tune to CID on your line
fxo-cid-wait 15
Please pay attention to last configuration item fxo-cid-wait. This is delay in 100 ms units which CID detector should use before starting decoding CID. You may have to tweak this value to match your service provider CID signaling.
The last item in FXO configuration is fxo-forward. This is for forwarding incoming call on FXO to DID of inbound route you will create in FreePBX:
fxo-forward 2000@127.0.0.1
Here 2000 is DID of inbound route.
Testing FXS Port
Once you are done with configurations, run the firmware in the folder where you have extracted files from firmware archive:
sudo ./cpe ./cpe.conf
If everything goes well, you should see initialization messages and finally a CLI prompt. Enter command ippconfig to check SIP registration status:
In the above example, the registration status is Pending. For a successful registration, it should be Ok. If registration is successful, you should be able to dial a feature code or any other extension registered to Asterisk on board.
Testing FXO Port
For FXO port, you need to integrate IRIS3000 firmware with FreePBX/Asterisk. Please follow the steps in the following section to configure FreePBX for both incoming and outgoing calls over FXO.
Integrating IRIS3000 firmware with FreePBX/Asterisk
To avoid dependency on complex kernel modules, IRIS3000 firmware is user space application which integrates IRIS3000 with Asterisk as a custom trunk. Please follow instructions below to get a complete appliance up and running. Please note that these instructions are based on version 13 of both Asterisk and FreePBX.
FreePBX/Asterisk Configuration
First, we need to create a custom trunk. Go to Connectivity->Trunks and create a custom trunk as shown below. Name it anything and keep all default settings in ‘General’ tab.
Next, go to ‘custom Settings’ tab and type in ‘Custom Dial String’ as shown below:
To use this trunk for outbound calls on FXO interface, go to Connectivity->Outbound Routes and create an outbound route:
Name it anything and keep default values in ‘Route Settings’ tab except setting ‘Trunk Sequence for Matched Routes’ to the custom trunk you created.
Next, go to ‘Dial Patterns’ tab and provide a dial pattern of your choice. We chose to consider any number starting with 81 to be an outgoing number as shown below:
Note number 81 in prefix and ‘.’ in match pattern. This means any number following 81 should be passed on to IRIS3000 for outbound dialing on FXO.
This completes your configurations for outbound calls on FXO. Next, we need to configure inbound calling. For that, go to Connectivity->Inbound Routes and create an inbound route:
Again, name it anything. Enter a DID Number of your choice. We chose to set it to 2000 and this is what we used to point fxo-forward to in cpe.conf as mentioned earlier. You also need to Set Destination to one of the destinations you want incoming on FXO to land to. This can be an extension, an IVR etc. We chose to ring an extension 102.
Almost done now except some configurations in Settings->Asterisk SIP Settings. Without these settings, Asterisk wouldn’t let calls with a PSTN caller ID in. First, in ‘General SIP Settings’ tab, set ‘Allow Anonymous Inbound SIP Calls’ to ‘Yes’ and then in ‘Chan SIP Settings’ tab, set ‘Allow SIP Guests’ to ‘Yes’. That’s it. You should now be able to use both FXS and FXO ports of IRIS3000.
Troubleshooting
You may want to turn on debug messages in the CLI if things are not working as expected. This can be done by entering trace command in the CLI. Please report the trace messages when reaching out for support.