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).
Enable Connect Tone (Nailed Connection only):
HKEY_LOCAL_MACHINE\SOFTWARE\Cisco Systems,Inc.\ICM\<instance name>\PG1A\PG\CurrentVersion\JGWS\jgw1\JGWData\Config\PlayMAConnectTone
Check the MTP are registered via CUCM GUI and using the gateway command show sccp
! 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 !
! 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 !
Notes
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.
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
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
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 !