Patton 4114 FXO 5.4 multipurpose configuration

Here is a working configuration for a Patton 4114 FXO running 5.4 where the ports are used for varying purposes (not just a simple milking machine setup).

Overview of setup

  1. FXO port 0 and 1 are connected to analog trunks on an ITSP's DTA (a grandstream). In this config I refer to them as 'PP'.
    1. Inbound calls
      1. Callerid is provided by the DTA Bell style
      2. Both ports ring for the same call if they are both free; there is a 1 ring delay on the 2nd port so both ports don't answer
      3. Inbound calls are directed to '0' (the AA) on sipXecs
    2. Outbound calls
      1. sipXecs is configured to see these two ports together as an unmanaged gateway on UDP port 5060
      2. Either port can be used to make outbound calls
      3. 1+10 digit dialing is used
  2. FXO port 2 is connected to a POTS Qwest line that does not provide callerid, QW is the abbreviation used for these elements
    1. Inbound calls
      1. Calls are directed to '0' (the AA) on sipXecs
      2. Callerid is fixed as Unknown, name 'Qwest'
    2. Outbound calls
      1. sipXecs is configured to see this port as an unmanaged gateway on UDP port 5061
  3. FXO port 3 is connected to a Viking W2000A-EWP doorphone, FD is the abbreviation for these elements
    1. Inbound calls
      1. Calls are directed to extension 224 on sipXecs (a hunt group)
      2. The callerid is set to number '250' name 'Front Door'
        1. Internally the hunt group goes to several Polycom 650's and 335's which are configured to issue a 'ding dong' distinctive ring on calls from '250' (via the speed dial RT feature and the SAF wave file feature).
      3. The input gain is pushed up by 6db as the doorphone's mic is pretty quiet
    2. Outbound calls
      1. sipXecs is configured to see this port as an unmanaged gateway on UDP port 5062
      2. The door phone does not provide dialtone, going off hook opens the intercom, there is some special setup in the config to deal with this
      3. sipXecs is configured with a custom dial rule just for this, when you dial '250' with '0' extra digits it sends a '1'. The patton is configured to strip the 1 out so you don't hear DTMF at the door when dialing out to it.

Patton plumbing

The Patton internally has a number of components you plumb up between the ethernet port and each FXO port. In some cases the same component is used for PSTN -> SIP calls and SIP -> PSTN calls. Below is a chart showing the high level plumbing (but not all the configuration details) for this configuration.

Configuration

 #----------------------------------------------------------------#
#                                                                #
# SN4114/JO/EUI                                                  #
# R5.4 2009-11-18 H323 SIP FXS FXO                               #
# 2010-01-31T18:17:46                                            #
# SN/00A0BA04EB81                                                #
# Generated configuration file                                   #
#                                                                #
#----------------------------------------------------------------#

cli version 3.20
clock local offset -06:00
dns-client server 192.172.252.1
webserver port 80 language en
sntp-client
sntp-client server primary 192.172.252.1 port 123 version 4
sntp-client poll-interval 36000
system hostname fxo2.foo21.com

system

  ic voice 0
    low-bitrate-codec g729

profile ppp default

profile call-progress-tone US_dialtone
  play 1 1000 350 -13 440 -13

profile call-progress-tone US_Altertingtone
  play 1 2000 440 -19 480 -19
  pause 2 4000

profile call-progress-tone US_Busytone
  play 1 500 480 -24 620 -24
  pause 2 500

profile tone-set default
profile tone-set US
  map call-progress-tone dial-tone US_dialtone
  map call-progress-tone ringback-tone US_Altertingtone
  map call-progress-tone busy-tone US_Busytone
  map call-progress-tone release-tone US_Busytone
  map call-progress-tone congestion-tone US_Busytone

profile voip default
  codec 1 g711ulaw64k rx-length 20 tx-length 20

profile pstn default
profile pstn doorphone
  input-gain 6

profile sip default

profile aaa default
  method 1 local
  method 2 none

context ip router

  interface eth0
    ipaddress 192.172.252.22 255.255.255.0
    tcp adjust-mss rx mtu
    tcp adjust-mss tx mtu

context ip router
  route 0.0.0.0 0.0.0.0 192.172.252.1 0

context cs switch
  digit-collection timeout 4

  routing-table called-e164 SIP-TO-PP
    route default dest-service PP-HUNT

  routing-table calling-e164 FXO2-TO-SIP
    route default dest-interface IF-SIP-QW FXO2-CID-FUNC

  routing-table calling-e164 FXO3-TO-SIP
    route default dest-interface IF-SIP-FD FXO3-CID-FUNC

  mapping-table calling-name to calling-name FXO2-CID-MAP-NAME
    map ^$ to Qwest

  mapping-table calling-e164 to calling-e164 FXO2-CID-MAP-E164
    map ^$ to Unknown

  mapping-table calling-name to calling-name FXO3-CID-MAP-NAME
    map ^$ to "Front Door"

  mapping-table calling-e164 to calling-e164 FXO3-CID-MAP-E164
    map ^$ to 250

  complex-function FXO2-CID-FUNC
    execute 1 FXO2-CID-MAP-NAME
    execute 2 FXO2-CID-MAP-E164

  complex-function FXO3-CID-FUNC
    execute 1 FXO3-CID-MAP-NAME
    execute 2 FXO3-CID-MAP-E164

  interface sip IF-SIP-PP
    bind context sip-gateway SIP-GW-PP
    route call dest-table SIP-TO-PP
    remote 192.172.252.20 5060
    address-translation outgoing-call to-header user-part fix 102 host-part fix pbx.foo21.com
    use profile tone-set US

  interface sip IF-SIP-QW
    bind context sip-gateway SIP-GW-QW
    route call dest-interface IF-FXO2
    remote 192.172.252.20 5060
    address-translation outgoing-call to-header user-part fix 0 host-part fix pbx.foo21.com
    use profile tone-set US

  interface sip IF-SIP-FD
    bind context sip-gateway SIP-GW-FD
    route call dest-interface IF-FXO3
    remote 192.172.252.20 5060
    address-translation outgoing-call to-header user-part fix 224 host-part fix pbx.foo21.com
    address-translation incoming-call called-e164 fix ""
    use profile tone-set US

  interface fxo IF-FXO0
    route call dest-interface IF-SIP-PP
    disconnect-signal loop-break
    disconnect-signal busy-tone
    ring-number on-caller-id
    mute-dialing
    use profile tone-set US

  interface fxo IF-FXO1
    route call dest-interface IF-SIP-PP
    disconnect-signal loop-break
    disconnect-signal busy-tone
    ring-number 4
    mute-dialing
    use profile tone-set US

  interface fxo IF-FXO2
    route call dest-table FXO2-TO-SIP
    disconnect-signal loop-break
    disconnect-signal busy-tone
    mute-dialing
    use profile tone-set US

  interface fxo IF-FXO3
    route call dest-table FXO3-TO-SIP
    disconnect-signal loop-break
    disconnect-signal busy-tone
    mute-dialing
    use profile tone-set US
    use profile pstn doorphone

  service hunt-group PP-HUNT
    drop-cause normal-unspecified
    drop-cause no-circuit-channel-available
    drop-cause network-out-of-order
    drop-cause temporary-failure
    drop-cause switching-equipment-congestion
    drop-cause access-info-discarded
    drop-cause circuit-channel-not-available
    drop-cause resources-unavailable
    route call 1 dest-interface IF-FXO0
    route call 2 dest-interface IF-FXO1

context cs switch
  no shutdown

location-service SIPX-SERVER
  domain 1 192.172.252.20 5060

context sip-gateway SIP-GW-PP

  interface IF-IP-PP
    bind interface eth0 context router port 5060

context sip-gateway SIP-GW-PP
  no shutdown

context sip-gateway SIP-GW-QW

  interface IF-IP-QW
    bind interface eth0 context router port 5061

context sip-gateway SIP-GW-QW
  no shutdown

context sip-gateway SIP-GW-FD

  interface IF-IP-FD
    bind interface eth0 context router port 5062

context sip-gateway SIP-GW-FD
  no shutdown

port ethernet 0 0
  medium auto
  encapsulation ip
  bind interface eth0 router
  no shutdown

port fxo 0 0
  flash-hook-duration 50
  use profile fxo us
  caller-id format bell
  encapsulation cc-fxo
  bind interface IF-FXO0 switch
  no shutdown

port fxo 0 1
  flash-hook-duration 50
  use profile fxo us
  caller-id format bell
  encapsulation cc-fxo
  bind interface IF-FXO1 switch
  no shutdown

port fxo 0 2
  flash-hook-duration 50
  use profile fxo us
  caller-id format bell
  encapsulation cc-fxo
  bind interface IF-FXO2 switch
  no shutdown

port fxo 0 3
  flash-hook-duration 50
  use profile fxo us
  caller-id format bell
  encapsulation cc-fxo
  bind interface IF-FXO3 switch
  no shutdown