Mobile Agent

  • Call by Call = 4 x 1 Load (each Mobile Agent equates to load of 4 standard agents - so supporting a max of 2000/4 = 500 total agents on a '2000' Agent Solution)
  • Nailed up Connection = 2 x 1 Load (each Mobile Agent equates to a load of 2 standard Agents) = 1000 Agents on a '2000' Agent Solution
  1. Create your Mobile Agent Phone Profile and Line Profile with a 12XX Extension Range. Note RCP to save Extension uses a 1200XXXX range - as it never dialed by a end user.
  2. Add Agent Users details to Excel for their LCP and RCP Profile
  3. Export to CSV
  4. Import to CUCM
  5. Bulk Add Phone uses Mobile Agent Phone Profile
  6. Add LCP and RCP to CCE CUCM App User 'pguser'
  7. Add LCP to Recording CUCM App User is recording enabled

mobileagentbulk.xlsx

It is possible to record Mobile Agent calls using CUCM Network Based Recording. This uses eXtended Media Forking on the Gateways.
For Inbound CVP Calls, since the Call will arrive into CUCM via via CVP or CUSP SIP trunk, CUCM uses the SIP header 'Call-Info Header' (and a SIP profile - see below for more info) so it knows the originating gateway/CUBE which has the call and so CUCM asks the correct Gateway (via XMF Web Service) to record the call.

Note: This solution only works if using VVB or your IOS Voice Browsers are dedicated. It is not possible to have XMF and IOS Voice Browser on the same device. This is relevant for the legacy 2900 / 3900 which are EOL.


This works for inbound, outbound and dialer calls if setup correctly!
If you need to (and likely you do!) record agent transfer calls which route from CUCM back into CVP, they need to route via a CUBE which is also configured for XMF and configured to be a recording enabled SIP trunk on CUCM, i.e. just like the inbound CVP gateways / CUBEs).

  • It creates a call recording for each individual 'Customer' call, even if using a nailed up connection.
  • Enable Recording on the LCP CTI port and NOT the RCP CTI port. Calls will appear exactly as it would using a physical Phone.
  • There are a number of critical steps to get this working (same config below)
  • Recording Inbound Calls to Agents which route via CVP
    • Each Inbound Gateway / CUBE - needs to be configured to bind its SIP control address to the physical address. So it matches what XMF will use. XMF currently does NOT let you configure a binding address - CSCuy48292 XMF RTP Bind Enhancement - https://quickview.cloudapps.cisco.com/quickview/bug/CSCuy48292
    • Each of these Inbound Gateways / CUBEs need to be added to CUCM and configured for Extended Media Forking
    • The Inbound CVP → CUCM SIP Trunk on CUCM needs to have a SIP profile with Reroute Incoming Request to new Trunk based on set to 'Call-Info Header with purpose=x-cisco-origIP'
  • For Agent Outbound Calls - you need to route out via a SIP trunk to a gateway which is setup for Recording - (you can use the same Gateways as you use for Inbound CVP). Make sure CSS for the LCP port routes out this way.
  • For Dialer Calls, if the Gateway Routes via CUSP (SIP proxy) you need to add a SIP Profile with the Call Info header Set and this SIP Profile applied to the Agent SIP Transfer Dial-peer for Dialer Calls. (Not needed for CVP calls as CVP automatically adds this SIP Header before it routes calls to CUCM)

CUCM

  • Configure Gateway Software MTP Resources (CUCM MTP not supported)
  • Configure LCP CTI ports
    • Set the External Phone Number Mask - as this is the CLI that will be presented to customers on Agent outbound Calls
    • Set the CSS so that it routes out the way you want Agent Outbound Calls need to route - needs to route to a Recording Enabled SIP trunk - so outbound calls are recorded!
    • Enable LCP CTI port with your Recording Profile & set use the Gateway Preferred option.
  • Configure RCP CTI ports
    • Set CSS on how you want the Agent Home Phone to be reached. This call leg is NOT recorded - so you can route wherever you need to
    • Set the External Phone Number Mask to a value if you want the Agent to see a specific CLI for the Mobile Agent Incoming Call
  • Associate your LCP and RCP CTI Ports with your CCE pguser CUCM Application User
  • Associate your LCP CTI Port with your Call Recording CUCM Application User
  • Add a SIP trunk for each of your Inbound CVP Gateways / CUBEs to CUCM (you do not need to route out these gateways - but this is needed so CUCM knows which gateway to inform to record the inbound call leg.
    • The SIP Trunk IP address must be the phsyical interface IP address
    • This SIP trunk needs to use the same inbound CSS as the CVP→CUCM SIP trunk (i.e. able to route to an agent based on the number that CUCM will receieve from CVP)
    • Enable this SIP trunk for recording on CUCM

Gateway

  • Bind SIP and RTP to the physical interface and not the Loopback address
  • Configure ws api as per below
  • Reset the SIP trunk and confirm CUCM registers (and stays registered) - show wsapi registrations all

Enable Connect Tone (Nailed Connection only):

  • HKEY_LOCAL_MACHINE\SOFTWARE\Cisco Systems,Inc.\ICM\<instance name>\PG1A\PG\CurrentVersion\JGWS\jgw1\JGWData\Config\PlayMAConnectTone
  • Set it to 1 and cycle the PGs (Recycle the Non Active CUCM PG, wait for it to come into service, then recycle the active CUCM PG)

Summary

  • Each Mobile Agent uses 2 MTP resources - when a call is connected.
  • Configure MTP on CUCM first and then add config to Gateway and confirm it registers to CUCM
  • A side Gateways register with A side CUCM SUB first and B side Gateways register with B side Sub
  • The CVP → CUCM SIP trunk assigns a MTP Resource (so this trunk MRGL) needs to be use GW SW MTP. Note CUCM MTP NOT supported
  • The SIP trunk used to route the outbound call to the Agent Home Phone will alocate the second MTP resource and so the GW MTP needs to be assigned via its MRGL.

MTP Gateway Config

Check the MTP are registered via CUCM GUI and using the gateway command show sccp

A Side
!
sccp local Loopback0
sccp ccm 10.1.1.101 identifier 1 version 7.0
sccp ccm 10.1.1.102 identifier 2 version 7.0
!
dspfarm profile 10 mtp
 no codec g711ulaw
 codec g711alaw
 maximum sessions software 200
 associate application SCCP
!
sccp ccm group 1
 associate ccm 1 priority 1
 associate ccm 2 priority 2
 associate profile 10 register UCCEGW1ASOFTMTP
 no shutdown
!
sccp
!

B Side

!
sccp local Loopback0
sccp ccm 10.1.1.101 identifier 2 version 7.0
sccp ccm 10.1.1.102 identifier 1 version 7.0
!
dspfarm profile 10 mtp
 no codec g711ulaw
 codec g711alaw
 maximum sessions software 200
 associate application SCCP
!
sccp ccm group 1
 associate ccm 2 priority 1
 associate ccm 1 priority 2
 associate profile 10 register UCCEGW1BSOFTMTP
 no shutdown
!
sccp
!

Inbound CVP Gateways / CUBES

  • Create SIP Trunks on CUCM for each of the Gateways / CUBES that route into CVP
  • Enable these SIP trunks for Recording
  • Configure a CSS the same or similar to the Inbound CVP→CUCM SIP trunk
  • If these Gateways will be used to route Outbound calls to Home Agents - assign the MRGL so the Correct SW MTP will be assigned

CVP -> CUCM SIP Trunk

  • Create a Dedicated CVP-CUCM SIP Profile
  • Configure as per CVP guidelines and with the following Set
  • Assign a MRGL which will use the SW Gateway MTPs setup previously

Notes

  • The recording Source port does NOT obey the SIP global config OR bind to the SIP media address. e.g. uses Port 7000 (for both streams) I assume when multiple calls that this will increase. CSCuy48292 XMF RTP Bind Enhancement - https://bst.cloudapps.cisco.com/bugsearch/bug/CSCuy48292
  • The Device Pool of the CTI Port or Phone (e.g. if using Jabber or phone for Gateway Recording) must one of the CUCMs Registered from the Gateway. e.g. Make sure the SIP trunk and Devices uses the CUCM servers that are registered for XMF recording on the gateway.

Since it is NOT possible to bind the RTP stream for eXtended Media Forking. You must make sure the SIP signally binds to the Physical interface. THis means the Orginating IP address that is included in the SIP header and recieved CVP will be set to CUCM. This IP address must the SIP trunk. And also when CUCM sends the Recorder the SIP invite for the CallRecording Call, it gives the SIP trunk as the RTP source. Verint (and I am sure others) Recorders will NOT record the call if it stream comes from a different address.

There is a feature enhancment so you can bind the RTP for XMF in future….
CSCuy48292 XMF RTP Bind Enhancement - https://bst.cloudapps.cisco.com/bugsearch/bug/CSCuy48292

Gateway Config

Bind the SIP Control and RTP Point to the Gig interface. XMF will use the physical interface - so we need to use the same via SIP.

voice service voip
 sip
  bind control source-interface GigabitEthernet0
  bind media source-interface GigabitEthernet0
ip http server ! Enables the HTTP Web Server
no ip http secure-server
ip http max-connections 50 ! Sets the maximum number of concurrent connections to the HTTP sever that will be allowed. The default value is 5.
ip http timeout-policy idle 600 life 86400 requests 86400
http client source G0/0/0 ! The Source IP of the XMF Probes (not critical to set)
! Note - The Initial Registration and Response which comes from CUCM to the SIP Trunk (i.e. CUBE / Gateway) IP address
uc wsapi
message-exchange max-failures 3
source-address <ip address> ! The IP address of the Gateway Physical IP Address
probing interval keepalive 60
probing max-failures 5
!
provider xmf
remote-url 1 http://10.1.1.101:8090/ucm_xmf ! These are the IP addresses of the CUCM servers
remote-url 2 http://10.1.1.102:8090/ucm_xmf ! You just need to add the CUCM Servers that are in the Device
                                            ! Pool of the SIP trunk pointing to this Gateway

Dialer Calls

To enable Recording for the Dialer Calls - CUCM needs to receive the Originating IP address - just as it does for a CVP Call. If you use a CUSP (SIp Proxy) between the Outbound Gateway and CUCM, you need to assign a SIP Profile which sets the Call-Info Header and add to the Agent SIP Refer Dial-peers as per below. If you have dedicated gateways for outbound dialer - these will need to be added as a SIP trunk just as you did with the CVP gateways and enable the Trunk for Recording.

voice class sip-profiles 10
 ! The Below Config sets the necessary header in the SIP invite for the blind Transfer to CUSP and onto CUCM.
 ! The IP address must match the SIP bind address on the Gateway / CUBE and the SIP Trunk IP Address on CUCM
 request INVITE sip-header Call-Info add "Call-Info: <sip:10.1.1.51:5060>;purpose=x-cisco-origIP"
! Your CUSP / CCE Gateways SIP on CUCM trunk will need to have the CVP-SIP profile assigned to it - to redirect to originating IP 
! 
 dial-peer voice 5570001 voip
 description ### SIP Refer for Agent 5 digit Ext ###
 voice-class sip profiles 10
 huntstop
 destination-pattern 557[1-9]....$
 session protocol sipv2
 session target sip-server
 voice-class codec 1
 dtmf-relay rtp-nte
 no vad
!
dial-peer voice 5570002 voip
 description ### SIP Refer for Agent 7 digit Ext ###
 voice-class sip profiles 10
 huntstop
 destination-pattern 557.......$
 session protocol sipv2
 session target sip-server
 voice-class codec 1
 dtmf-relay rtp-nte
 no vad
show voip rtp forking
show call media-forking
show wsapi registration all
debug wsapi intra detail
debug wsapi xmf detail

Before applying below - confirm that no other application or user requires access to the HTTP server running on the gateway! But in our case the only application using the http server is the XMF application and hence we only allow access to the http server from the CUCM Subscribers which are registered to the XMF server.

!
ip http server
ip http access-class ipv4 80
no ip http secure-server
ip http max-connections 50
ip http timeout-policy idle 600 life 86400 requests 86400
ip http client source-interface GigabitEthernet0/0
! 
access-list 80 permit 10.1.1.101 
access-list 80 permit 10.1.1.102
!
  • vendors/cisco/uc/ucce/mobileagents.txt
  • Last modified: 2021/09/06 10:35
  • by gerardorourke