Cisco Finesse Webphone Gadget Audio Recording

October 28, 2023 in Cisco
Cisco Finesse Webphone Gadget Audio Recording

Comstice CUCM Webphone and Comstice Finesse Webphone Gadget help Cisco telephony users to make and receive calls using web browsers. We aim to eliminate installed applications such as Cisco Jabber and handle all call audio and video via web browsers with no VPN required on remote user's PC.

Since Comstice Webphone is a third-party device, audio recording will be different than Cisco Built-In Bridge. Comstice supports SIPREC protocol; industry standard audio recording protocol supported by most of the recording solutions. SIPREC retrieves Cisco Call ID and other critical information and sends them as XML-based "Meta Tag" into Audio Recording solutions. This helps to find the call from the Call Detail Records and label it with the ANI, DNIS, timestamp and any other useful information.

Sample SIPREC Meta Data

In this example, we have a sample topology to handle incoming call on the web browser and send a copy of the audio stream into Audio Recording server along with the Meta Data. We want to make sure that the Meta Tag includes Cisco Call ID of the call so that it can be found from CDR records by the Audio Recording solution.

  • 172.16.6.181: Cisco CUCM
  • 172.16.6.86: Comstice SBC
  • 172.16.6.102: SRS Server (Recording Server)
  • 172.16.6.90: Comstice WebRTC Gateway
  • AgentID: johnsmith (Also SIP alias of WebRTC Phone)

Call Flow

  1. Cisco IP Communicator (4902) calls the agent’s Cisco CUCM CTIRemoteDevice extension 2001.In UCCE/PCCE scenario, this will be the LCP port of UCCE Mobile Agent.
  2. CTIRemoteDevice has a remote destination 9.4001 (9 is stripped on CUCM Route Pattern)
  3. Route Pattern 9.4XXX sends the call to ComsticeSBC. 4001 is the SIP extension of the WebRTC session
  4. Once the WebRTC session starts, Comstice SIP Proxy also starts sending the audio stream to Audio Recording Server
  5. SIPREC listener ports, SRTP audio port range, high availability scenarios, SIP TCP or UDP are configurable.

Below information is captured from Comstice SBC;

You can see that the Call ID received from Cisco CUCM is included in the SIPREC meta data sent to the recording server.

1. SIP INVITE FROM Cisco CUCM to Comstice SBC


2023/08/28 12:17:56.378496 172.16.6.86:5060 -> 172.16.6.181:5060
SIP/2.0 200 OK
Via: SIP/2.0/UDP 172.16.6.181:5060;branch=z9hG4bK569223911c9c
Record-Route: <sip:172.16.6.86;lr;did=f7d.bed4d24>
From: <sip:[email protected]>tag=22156~5e5002e6-f8a9-4bdb-9eef-2fe1cdfb1a1c-21740662
To: <sip:[email protected]>tag=v2Zvematg71UK
Call-ID: [email protected]
CSeq: 101 INVITE
Contact: <sip:[email protected]:51103;transport=udp> 
User-Agent: Comstice WebRTC Server SIP Plugin 0.0.8
Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, UPDATE, REFER, MESSAGE, INFO, NOTIFY
Supported: replaces
Content-Type: application/sdp
Content-Disposition: session
Content-Length: 716

v=0
o=- 5230798252559867779 3335221862317398666 IN IP4 172.16.6.90
s=-
t=0 0
m=audio 34364 RTP/AVP 111 63 9 0 8 13 110 126
c=IN IP4 172.16.6.90
a=rtpmap:111 PCMU/8000/2
a=fmtp:111 minptime=10;useinbandfec=1
a=rtpmap:63 red/48000/2
a=fmtp:63 111/111
a=rtpmap:9 G722/8000
a=rtpmap:0 opus/48000
a=rtpmap:8 PCMA/8000
a=rtpmap:13 CN/8000
a=rtpmap:110 telephone-event/48000
a=rtpmap:126 telephone-event/8000
a=mid:0
a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level
a=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:3 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=extmap:4 urn:ietf:params:rtp-hdrext:sdes:mid
a=rtcp-fb:111 transport-cc

2. SIP INVITE from Comstice SBC to Recording Server (Includes SIPREC meta data)

After Comstice SBC sends the INVITE to Comstice WebRTC Gateway, it sends the INVITE below to Audio Recording Server as part of the SIPREC signaling.


2023/08/28 12:17:56.383254 172.16.6.86:5060 -> 172.16.6.102:5060
INVITE sip:172.16.6.102:5060 SIP/2.0
Via: SIP/2.0/UDP 172.16.6.86:5060;branch=z9hG4bKff05.3978d3b4.0
To: <sip:172.16.6.102:5060>
From: <sip:172.16.6.102:5060>tag=144afd77e879bcb6cc364a929bd580e8-ce21
CSeq: 2 INVITE
Call-ID: B2B.324.5426967.1693221475
Max-Forwards: 70
Content-Length: 2363
User-Agent: ComsticeSIP (2.7.1 (x86_64/linux))
Require: siprec
Content-Type: multipart/mixed;boundary=OSS-unique-boundary-42
Contact: <sip:172.16.6.86:5060>+sip.src

--OSS-unique-boundary-42
Content-Type: application/sdp

v=0
o=- 1693221474 0 IN IP4 127.0.0.1
s=-
c=IN IP4 127.0.0.1
t=0 0
m=audio 35007 RTP/AVP 111 63 9 0 8 13 110 126
a=rtpmap:111 PCMU/8000/2
a=fmtp:111 minptime=10;useinbandfec=1
a=rtpmap:63 red/48000/2
a=fmtp:63 111/111
a=rtpmap:9 G722/8000
a=rtpmap:0 opus/48000
a=rtpmap:8 PCMA/8000
a=rtpmap:13 CN/8000
a=rtpmap:110 telephone-event/48000
a=rtpmap:126 telephone-event/8000
a=mid:0
a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level
a=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:3 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=extmap:4 urn:ietf:params:rtp-hdrext:sdes:mid
a=rtcp-fb:111 transport-cc
a=label:1
a=sendonly

3. SIPREC Meta Data Sent to Audio Recording Server


--OSS-unique-boundary-42
Content-Type: application/rs-metadata+xml
Content-Disposition: recording-session

<?xml version="1.0" encoding="UTF-8"?>
<recording xmlns='urn:ietf:params:xml:ns:recording:1'>
 <datamode>complete</datamode>
 <session session_id="/EneJ5EOSD6T9o6G0UFUeg==">
Below is the Call ID sent by Cisco CUCM to Comstice SBC
  [email protected]</sipSessionID> 
 </session>
 <participant participant_id="79Op23nkShCrWRiojFQe2g==">
  <nameID aor="sip:[email protected]"/>
 </participant>
 <participant participant_id="s6jI1M9fRIWdQClivln/1w==">
  <nameID aor="sip:[email protected]"/>
 </participant>
 <stream stream_id="MgBnhcv7Q9iXSV5mrRBgjQ==" session_id="/EneJ5EOSD6T9o6G0UFUeg==">
  <label>1</label>
 </stream>
 <sessionrecordingassoc session_id="/EneJ5EOSD6T9o6G0UFUeg==">
  <associate-time>2023-08-28T12:17:54+0100</associate-time>
 </sessionrecordingassoc>
 <participantsessionassoc participant_id="79Op23nkShCrWRiojFQe2g==" session_id="/EneJ5EOSD6T9o6G0UFUeg==">
  <associate-time>2023-08-28T12:17:54+0100</associate-time>
 </participantsessionassoc>
 <participantsessionassoc participant_id="s6jI1M9fRIWdQClivln/1w==" session_id="/EneJ5EOSD6T9o6G0UFUeg==">
  <associate-time>2023-08-28T12:17:54+0100</associate-time>
 </participantsessionassoc>
 <participantstreamassoc participant_id="79Op23nkShCrWRiojFQe2g==">
  <recv>MgBnhcv7Q9iXSV5mrRBgjQ==</recv>
 </participantstreamassoc>
 <participantstreamassoc participant_id="s6jI1M9fRIWdQClivln/1w==">
  <send>MgBnhcv7Q9iXSV5mrRBgjQ==</send>
 </participantstreamassoc>
</recording>
--OSS-unique-boundary-42—

Conclusion

Comstice CUCM Webphone and Comstice Finesse Webphone Gadget both offer all the features needed for secure remote working scenarios, including audio recording support using SIPREC protocol for incoming and outgoing calls with external as well as internal phones. Click here to learn more about Comstice Finesse Webphone Gadget and also request a demo for more details.

Success!