Connecting Communication Manager to a Valcom Paging System via FXO/CO trunks
Branch offices often have overhead paging systems, and it can be incredibly convenient for the overhead paging system to be connected to your Communication Manager gateway, so that users can operate the paging system from their deskphones (or anywhere, depending on your configuration).
This particular document notes how to connect a Communication Manager gateway (in this case, a G430 with an MM714B analog FXS/FXO line card) to a Valcom V-2006A using CO trunking facilities. Note that there is nothing particularly special about the Valcom paging system – this solution will probably work for other paging systems that present ports masquerading as CO trunks.
Determine the location number you’ll be using:
list locations
LOCATIONS
ARS Prefix 1 Required For 10-Digit NANP Calls?y
Loc Name Timezone DST City/ ARS Atd Loc Disp Prefix Proxy Sel
No Offset Area FAC FAC Parm Parm Rte Pat
[...]
27 ENGR + 00:00 1 1 1
[...]
Determine which media-gateway you’ll be using:
list media-gateway
MEDIA-GATEWAY REPORT
Num Name Serial No/ IPV4 Address/ Type NetRgn Reg?
FW Ver/HW Vint/ IPV6 Address/
RecRule Cntrl IP Addr
27 engr [redacted] 10.2.0.11 g430 27 y
[redacted]
[redacted] 10.2.0.1
Find a vacant FXO port on that media-gateway:
list configuration media-gateway 27
SYSTEM CONFIGURATION
Board Assigned Ports
Number Board Type Code Vintage u=unassigned t=tti p=psa
[...]
027V2 ANA MM MM714BP HW23 FW099 p p p p 05 u 07 08
[...]
027V9 MG-ANNOUNCEMENT VMM-ANN 01 02 03 04 05 06 07 08
09 10 11 12 13 14 15 16
If you were using a port-network instead of a media-gateway, you could use list configuration all
to review port assignments on all port-networks, or list configuration port-network X
to review port assignments on port-network X.
Per the legend, you can identify unassigned FXO/CO ports by noting the letter ‘u’ in the appropriate port-column. You can see in this example that port 027V206 is unassigned. The placeholder ‘p’ indicates an unassigned FXS/station port, but we don’t need any of those for this example.
In order to add a trunk-group, you must determine what trunk access code (TAC) to use. Valid TACs are bounded by the system dialplan analysis, of Call Type
= dac
. DACs (dial access codes) can be used by either TACs (trunk access codes) or FAC (feature access codes). You’ll have to determine what TAC to use by analyzing which DACs are already consumed (review display feature-access-codes
and list trunk-group
to see which are already administered).
display dialplan analysis
DIAL PLAN ANALYSIS TABLE
Location: all Percent Full: 19
Dialed Total Call Dialed Total Call Dialed Total Call
String Length Type String Length Type String Length Type
[...]
1 3 dac
[...]
Create a trunk-group to carry paging calls, and make its only trunk member the unassigned port you just noted:
display trunk-group 10 Page 1 of 22
TRUNK GROUP
Group Number: 10 Group Type: co CDR Reports: y
Group Name: ENGR Paging COR: 95 TN: 1 TAC: 145
Direction: outgoing Outgoing Display? n
Dial Access? y Busy Threshold: 255
Queue Length: 0 Country: 1
Comm Type: voice Digit Absorption List:
Prefix-1? y Trunk Flash? n Toll Restricted? y
Trunk Type: loop-start
display trunk-group 10 Page 2 of 22
Group Type: co Trunk Type: loop-start
TRUNK PARAMETERS
Outgoing Dial Type: tone Cut-Through? n
Trunk Termination: rc Disconnect Timing(msec): 500
Auto Guard? n Call Still Held? n Sig Bit Inversion: none
Analog Loss Group: 6 Digital Loss Group: 11
Trunk Gain: high
Disconnect Supervision - Out? n
Answer Supervision Timeout: 10 Receive Answer Supervision? n
Administer Timers? y
XOIP Treatment: auto
display trunk-group 10 Page 3 of 22
TRUNK FEATURES
ACA Assignment? n Measured: none
Maintenance Tests? n
Data Restriction? n
Suppress # Outpulsing? n
Charge Conversion: 1
Decimal Point: none
Currency Symbol:
Charge Type: units
Per Call CPN Blocking Code:
Per Call CPN Unblocking Code:
Outgoing ANI: Ds1 Echo Cancellation? n
display trunk-group 10 Page 4 of 22
ADMINISTRABLE TIMERS
Send Incoming/Outgoing Disconnect Timers to TN465 Ports? n
Outgoing Disconnect(msec): 500
Outgoing Dial Guard(msec): 1600
Outgoing Glare Guard(msec): 1500
Ringing Monitor(msec): 5200 Incoming Seizure(msec): 500
Outgoing End of Dial(sec): 10 Outgoing Seizure Response(sec): 5
Programmed Dial Pause(msec): 1500
Flash Length(msec): 540
END TO END SIGNALING
Tone(msec): 350 Pause(msec): 150
OUTPULSING INFORMATION
PPS: 10 Make(msec): 40 Break(msec): 60 PPM? n
display trunk-group 10 Page 5 of 22
ATMS THRESHOLDS
TTL Type: 105-w-rl Far End Test No:
TTL Vendor: TTL Contact:
Trunk Vendor: Trunk Contact:
Trunk Length:
MARGINAL UNACCEPTABLE
Min Max Min Max
1004 Hz Loss: -2 21 -2 21
-Dev +Dev -Dev +Dev
404 Hz Loss: 9 9 9 9
2804 Hz Loss: 9 9 9 9
Maximum C Message Noise: 55 55
Maximum C Notched Noise: 74 74
Minimum SRL-HI: 0 0
Minimum SRL-LO: 0 0
Minimum ERL: 0 0
Allow ATMS Busyout, Error Logging and Alarming? n
display trunk-group 10 Page 6 of 22
TRUNK GROUP
Administered Members (min/max): 1/1
GROUP MEMBER ASSIGNMENTS Total Administered Members: 1
Port Code Sfx Name Mode Type Ans Delay
1: 027V206 MM714 B paging
Next, you need to determine the AAR digit string that you plan to use. Check for any existing AAR patterns to ensure that your chosen digit string does not conflict, by executing list aar analysis location 27
and reviewing the Dialed String
column.
list aar analysis location 1
AAR DIGIT ANALYSIS REPORT
Location: 1
Dialed Total Route Call Node ANI
String Min Max Pattern Type Number Req
1234 4 4 888 aar n
5678 4 4 777 aar n
For purposes of this example, we’ll choose AAR digit string 7243, which corresponds to dialpad word PAGE. Note the length of the digit string – in this case, 4.
Create a route-pattern to send calls to that trunk-group. Run list route-pattern
to see which route patterns are in use; come up with a number that is not in use, and execute change route-pattern XXX
where XXX is the to-be-used route-pattern number. Ensure that you set No Del Dgts
to the length of the AAR digit string you’ve chosen. If you need to always outpulse a specific digit to your paging system in order to activate it, insert those digits into the Inserted Digits
field. There will only be one route added to this route-pattern.
display route-pattern 799 Page 1 of 3
Pattern Number: 799 Pattern Name: ENGR Paging
SCCAN? n Secure SIP? n
Grp FRL NPA Pfx Hop Toll No. Inserted DCS/ IXC
No Mrk Lmt List Del Digits QSIG
Dgts Intw
1: 10 0 4 n user
2: n user
3: n user
4: n user
5: n user
6: n user
BCC VALUE TSC CA-TSC ITC BCIE Service/Feature PARM No. Numbering LAR
0 1 2 M 4 W Request Dgts Format
Subaddress
1: y y y y y n n rest none
2: y y y y y n n rest none
3: y y y y y n n rest none
4: y y y y y n n rest none
5: y y y y y n n rest none
6: y y y y y n n rest none
Configure AAR to recognize some digit string and route it over the route you just created:
list aar analysis location 27
AAR DIGIT ANALYSIS REPORT
Location: 27
Dialed Total Route Call Node ANI
String Min Max Pattern Type Number Req
7243 4 4 799 aar n
Determine your AAR Access Code:
display feature-access-codes Page 1 of 10
FEATURE ACCESS CODE (FAC)
[...]
Auto Alternate Routing (AAR) Access Code: 123
[...]
Now physically connect the correct CO port to the paging system. I very strongly recommend using a butt-set to ensure that you are connecting the correct ports together. Making a mistake can damage the gateway, the paging system, or both.
To use the paging system, the users in that location can dial the AAR access code, followed by the AAR analysis digit string that you specific. In this example, they would dial 1237243. The system will connect the caller to the paging system. In the case of this specific paging system, the Valcom will provide dialtone, and the user can then dial whichever zone number they wish to page.
If your stations, policies, and users permit, you can also administer feature buttons on stations so that the user can simply press one button and automatically be connected to the paging system. In this example, you would set the button assignment to autodial
with parameter 1237243#
. The trailing # instructs the phone system to immediately process the call without waiting for any more digits. That may or may not be necessary in your implementation, but the trailing # doesn’t hurt to include, regardless.