17 July 2012

I already described the general setup that was being configured. The process of configuring these three systems to work together took quite a bit of time and referencing hundreds of blog and support pages. It was not until everything was working that I knew which steps were helpful, and the tabs have long-since been closed. Thus, I am going to attempt to capture the important steps for the next person. The final product was that an inbound call would follow this route: PSTN => SPA8800 => Axon => IP550.

Overview of the Experience

I started this configuration process having already given up on one PBX (Icewarp) due to lack of relevant documentation. Although Axon was notably better, there was still a lot left to be desired. As I learned through this process, part of the blame falls on Cisco's inconsistent configuration strategies. I found Axon+SPA3000 instructions and Asterisk+SPA8800 instructions (and here and a few other places), but nothing that pulled together what I needed.

Setting up an extension so that the phone could register with Axon was very intuitive. Inbound calls were initially dropped with the error "Rejected incoming call - could not find a VoIP line to use for call bridging." That error was created because Axon (1) does not do any intuitive header rewriting, and (2) requires one valid local end-point for a call. An inbound call would attempt to use the external line for one endpoint and the Axon system (the FXS on SPA8800) itself for the other. Without basic rewriting, that translated into 0 local end-points for a call. Similar endpoint problems came from outbound calls.

Axon is optimized to work with a Gateway Server (a reasonable decision on their part), but SPA8800 does not work as a gateway server. It initiates registration -- it cannot be registered with. That was a key distinction that came as a surprise. If it is possible for SPA8800 to be the server, I did not see any documentation to that extent during the project. Axon's interface suggests that everything should be plug-and-play if the SPA8800 registers as an external line, but the lack of header rewriting made that an impossibility -- perhaps other devices would have allowed more header customization such that it would have worked more easily.

For Axon to handle the SIP that SPA880 threw at it, we needed:

  1. SPA8800 Line 1 to register with Axon as an external line for outbound calls
  2. SPA8800 Line 1 to route calls to its own registration account on Axon for inbound calls
  3. Caller IDs to be mangled in a predictable way so that each system could appropriately route them

Key Settings

  1. SPA8800 Line 1 to register as an external line for outbound calls
    1. In Axon, go to External Dialing, Add New External Line, and configure Device Login/Password* with a user name of line1 (change references to "line1" below if you use something different).
    2. Click Advanced Line Settings for the external line. Check "Disable call activity polling" and Save Changes.
    3. In SPA8800, go to Advanced (top-right), Line 1, and configure Subscriber Information* to match the Axon device info. Additionally, set:
      1. Proxy: IP_OF_AXON:PORT_OF_AXON
      2. Register: yes
      3. Make calls without reg: yes
      4. Ans calls without reg: yes
      5. Dial Plan 1: ([2-9]xxxxxxxxx|[0-1][2-9]xxxxxxxxx|<line[1-2]-:>[2-9]xxxxxxxxx|<line[1-2]-:>[0-1][2-9]xxxxxxxxx)
      6. Dial Plan 8: (<:[email protected]_OF_AXON>S0)
      7. PSTN CID For VoIP CID: Yes
      8. PSTN Caller Default DP: 8
      9. PSTN CID Number Prefix: line1-
      10. PSTN Ring Timeout: 3 (only if you do not need caller ID)
  2. SPA8800 Line 1 to unspoof when returning a call
    1. See the dial plan from the setup above. It removes the "line1-" prefix.
  3. Avoid IP550 rewriting
    1. Add reg.1.thirdPartyName="[email protected]_OF_AXON" to the phone configuration. This provides a complete SIP address to any third-party devices so that all calls are routed through Axon. This was added early in the process, and we did not confirm whether it could be safely removed. 

* In each of these cases, I configured the authID to be the same as the uid. That should be unnecessary, but it eliminated any potential confusion - and it works smoothly.

To summarize, you have configured 1 login within Axon and 1 line within SPA8800.

Inbound routing: A PSTN call hits SPA8800, which initiates a SIP from line1-[EXT_CID] to the line1 External Line account on Axon. That call is sent to Axon for handling because of the SPA8800 Line 1 dialplan. Axon uses line1 as one endpoint and the "Incoming Calls Ring on Extension or Group" selection as the other endpoint.

Outbound routing: The line1 external line registration can be used in an External Dialing - Dialing Plan.

Backing Up Settings

  1. How to backup SPA8800: Not easy.
  2. How to backup Axon: GUI > Options > Save Settings Backup
  3. How to backup Polycom: Just backup the configuration directory

blog comments powered by Disqus