Technical
Documentation
Contact us and get more informations
The Quakker application is a solution aimed at customers using the salesforce system who want to use information relatno sam kbmax of the above cases, the Quakker application allows you to increase efficiency and save time by automating contact handling and reporting activities.
STANDARDS
i. rfc7118 – https://datatracker.ietf.org/doc/html/rfc7118
“The WebSocket protocol enables two-way real-time communication between clients and servers in web-based applications. This document specifies a WebSocket subprotocol as a reliable transport mechanism between Session Initiation Protocol (SIP) entities to enable use of SIP in web-oriented deployments.”
ii. rfc3261 – https://datatracker.ietf.org/doc/html/rfc3261
“This document describes Session Initiation Protocol (SIP), an application-layer control (signaling) protocol for creating, modifying, and terminating sessions with one or more participants These sessions include Internet telephone calls, multimedia distribution, and multimedia conferences.
SIP invitations used to create sessions carry session descriptions that allow participants to agree on a set of compatible media types. SIP makes use of elements called proxy servers to help route requests to the user’s current location, authenticate and authorize users for services, implement provider call-routing policies, and provide features to users. SIP also provides a registration function that allows users to upload their current locations for use by proxy servers. SIP runs on top of several different transport protocols.” [rfc3261 Abstract]
FUNCTIONALITIES
User access management for the Call Center (login panel, username, password, web socket, agent’s phone number)
Making and receiving calls
Notification of incoming calls – sound on the computer and information on the browser tab 4
Ability to create a new contact, account, or lead for calls from unknown numbers in Salesforce
Generating call plans based on made and received calls (creating tasks)
Creating notes during a meeting (saving on related record) / creating tasks, such as call planning
Access to notes made during a call from the Lead or Contact level
Saving calls as Salesforce Events (missed, unsuccessful, outgoing completed, incoming completed)
Storing information about call duration and overall interaction time for later reporting
Agent availability management (online, offline)
Quick access to the call plan (incoming and uncompleted calls), sorted by time
Notification of upcoming task in the plan
Access to call history screen and notification icon indicating the number of missed calls
Contact identification by phone number
Identifying contacts during incoming calls
Number owner search – contacts, accounts, leads by name or number for making a call
WEBBROWSER SUPPORTING WEBSOCKETS
To ensure the optimal performance and functionality of our application, it is imperative to use web browsers that natively support WebSockets. Below is a list of web browsers that are compliant with WebSockets:
● Google Chrome: Version 16 and later.
● Mozilla Firefox: Version 11 and later.
● Apple Safari: Version 6 and later.
● Microsoft Edge: All versions since its release.
● Opera: Version 12.10 and later.
Note: While other browsers might work with our application, the above-listed ones have been extensively tested and are recommended for the best user experience. Ensure that you are using the latest versions of these browsers to benefit from all the features and security updates.
If you are using a browser not listed here, please refer to its documentation or support page to check for WebSocket compatibility.
Remember to always keep your browser updated to ensure the smooth running of applications and enhance your online security.
SALESFORCE LICENCES
The app is available for the following Salesforce editions:
● Unlimited
● Enterprise
● Professional
SIP WEBSOCKET CAPABLE SERVER
For the effective operation of our application, users must have access to a server that supports SIP (Session Initiation Protocol) over WebSockets. This is a crucial requirement as our application leverages the power and flexibility of SIP combined with the real-time capabilities of WebSockets to facilitate seamless communication.
Details:
SIP WebSocket Transport: Our application relies on the SIP WebSocket Transport mechanism as laid out in RFC 7118. This protocol defines how SIP can operate over WebSocket, allowing for a richer and more interactive user experience.
JsSIP Integration: The application incorporates the JsSIP library, which implements the aforementioned “SIP WebSocket Transport”. With this, JsSIP operates as a “SIP WebSocket Client”, meaning it uses WebSocket as a transport to send and receive SIP messages.
Server Specifications: The SIP server you choose should be capable of handling WebSocket connections and be compliant with RFC 7118. This ensures that the server can seamlessly integrate with our application and facilitate the exchange of SIP messages without any hitches.
Recommendation: Before committing to a SIP provider, ensure they offer support for WebSockets and are familiar with the integration of JsSIP or similar libraries. This will guarantee smoother setup and operation as you utilize our application.
By meeting the aforementioned requirements, users can expect robust and uninterrupted communication facilitated by our advanced application infrastructure. Ensure your SIP server is up-to-date and compliant to enjoy the full range of features on offer.
CLASES
(CcAddNewNumber) – PDF
(CcAddNewTask) – PDF
(CcCallButtonActionCmp) – PDF
(CcContactInfo) – PDF
(CcCustomLookup) – PDF
(CcDialPadSlider) – PDF
(CcFooterMenu) – PDF
(CcHomeScreen) – PDF
(CcPhoneApp) – PDF
(CcPhoneAppSettings) – PDF
(CcPhoneCallScreen) – PDF
(CcPhoneCallScreenExitScreen) – PDF
(CcPhoneContainer) – PDF
(CcSearchBar) – PDF
(CcSearchContainer) – PDF
(CcSearchResults) – PDF
(CcSipLibController) – PDF
(CcStatusChanger) – PDF
(CcUserRegister) – PDF
AUTHORIZATION
Example of message exchange with proper authentication
sending message:
JsSIP:Transport sending message:REGISTER
sip:sip.SipProvaiderDomain.pl SIP/2.0
Via: SIP/2.0/WSS pjcu3ict17cn.invalid;branch=z9hG4bK3927504 Max-Forwards: 69
To: <sip:clorcesolu_11@sip.SipProvaiderDomain.pl>
From: <sip:clorcesolu_11@sip.SipProvaiderDomain.pl>;tag=btu45ag6vv Call-ID: p6mga6n2a1m345i2heimdb
CSeq: 1 REGISTER
Contact:
<sip:l1pu68e8@pjcu3ict17cn.invalid;transport=ws>;+sip.ice;reg-id=1 ;+sip.instance=”<urn:uuid:225d7431-d9e5-4f75-ba3e-76f4ff204011>”;e xpires=600
Expires: 600
Allow:
INVITE,ACK,CANCEL,BYE,UPDATE,MESSAGE,OPTIONS,REFER,INFO,NOTIFY Supported: path,gruu,outbound
User-Agent: JsSIP 3.10.0
Content-Length: 0
received text message:
SIP/2.0 401 Unauthorized
Via: SIP/2.0/WSS
jmg6a93rbrh6.invalid;rport=61821;received=188.146.108.57;branch=z9 hG4bK1098034
From: <sip:clorcesolu_11@sip.SipProvaiderDomain.pl>;tag=k10k5n0jul
To: <sip:clorcesolu_11@sip.SipProvaiderDomain.pl>;tag=as48e73e32 Call-ID: fo3la6fqonltpu4h7pag9v
CSeq: 1 REGISTER
Server: SipProvaiderDomainVPBXv15
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE
Supported: replaces, timer
WWW-Authenticate: Digest algorithm=MD5,
realm=”sip.SipProvaiderDomain.pl”,
nonce=”6cb24f02″ Content-Length: 0
sending message:
REGISTER sip:sip.SipProvaiderDomain.pl SIP/2.0
Via: SIP/2.0/WSS jmg6a93rbrh6.invalid;branch=z9hG4bK5641905 Max-Forwards: 69
To: <sip:clorcesolu_11@sip.SipProvaiderDomain.pl>
From: <sip:clorcesolu_11@sip.SipProvaiderDomain.pl>;tag=k10k5n0jul Call-ID: fo3la6fqonltpu4h7pag9v
CSeq: 2 REGISTER
Authorization: Digest algorithm=MD5, username=”clorcesolu_11″, realm=”sip.SipProvaiderDomain.pl”, nonce=”6cb24f02″, uri=”sip:sip.SipProvaiderDomain.pl”,
response=”7e67b45a890a1c40b4fe6a712dd4ff8e”
Contact:
<sip:j29sue40@jmg6a93rbrh6.invalid;transport=ws>;+sip.ice;reg-id=1 ;+sip.instance=”<urn:uuid:432677a7-ec66-4c66-b5eb-e805f7dde446>”;e xpires=600
Expires: 600
Allow:
INVITE,ACK,CANCEL,BYE,UPDATE,MESSAGE,OPTIONS,REFER,INFO,NOTIFY Supported: path,gruu,outbound
User-Agent: JsSIP 3.10.0
Content-Length: 0
received text message:
OPTIONS sip:j29sue40@jmg6a93rbrh6.invalid;transport=ws SIP/2.0 Via: SIP/2.0/WSS
79.133.211.90;branch=z9hG4bK56fb.1d78fe96d08492b3deb665730a5bb371. 0
Via: SIP/2.0/UDP
79.133.211.69:5060;received=10.192.173.160;branch=z9hG4bK750614bb; rport=5060
Max-Forwards: 69
From: „Unknown” <sip:Unknown@79.133.211.69>;tag=as1d597857 To:
<sip:j29sue40@jmg6a93rbrh6.invalid;transport=ws;alias=188.146.108. 57~61821~6>
Contact: <sip:Unknown@10.192.173.160:5060>
Call-ID: 280a14126b5eaec5490badb81d7a0d0a@79.133.211.69:5060 CSeq: 102 OPTIONS
Date: Wed, 11 Oct 2023 10:39:29 GMT
Supported: replaces, timer
Content-Length: 0
Allow: INVITE, ACK, CANCEL, BYE, NOTIFY, REFER, OPTIONS, SUBSCRIBE, PUBLISH, MESSAGE, REGISTER
User-Agent: TC Edge 1
sending message:
SIP/2.0 200 OK
Via: SIP/2.0/WSS
79.133.211.90;branch=z9hG4bK56fb.1d78fe96d08492b3deb665730a5bb371. 0
Via: SIP/2.0/UDP
79.133.211.69:5060;received=10.192.173.160;branch=z9hG4bK750614bb; rport=5060
To:
<sip:j29sue40@jmg6a93rbrh6.invalid;transport=ws;alias=188.146.108. 57~61821~6>;tag=m7thrjq6po
From: „Unknown” <sip:Unknown@79.133.211.69>;tag=as1d597857
Call-ID: 280a14126b5eaec5490badb81d7a0d0a@79.133.211.69:5060 CSeq: 102 OPTIONS
Allow:
INVITE,ACK,CANCEL,BYE,UPDATE,MESSAGE,OPTIONS,REFER,INFO,NOTIFY Accept: application/sdp, application/dtmf-relay
Supported: outbound
Content-Length: 0
received text message:
SIP/2.0 200 OK
Via: SIP/2.0/WSS
jmg6a93rbrh6.invalid;rport=61821;received=188.146.108.57;branch=z9 hG4bK5641905
From: <sip:clorcesolu_11@sip.SipProvaiderDomain.pl>;tag=k10k5n0jul To: <sip:clorcesolu_11@sip.SipProvaiderDomain.pl>;tag=as48e73e32 Call-ID: fo3la6fqonltpu4h7pag9v
CSeq: 2 REGISTER
Server: SipProvaiderDomainVPBXv15
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE
Supported: replaces, timer
Expires: 600
Contact:
<sip:j29sue40@jmg6a93rbrh6.invalid;transport=ws;alias=188.146.108. 57~61821~6>;expires=600
Date: Wed, 11 Oct 2023 10:39:29 GMT
Content-Length: 0
MAKE CALL
JSSIP:
JsSIP:UA call() +54s
aura_proddebug.js:34336 JsSIP:RTCSession new +0ms
aura_proddebug.js:34336 JsSIP:RTCSession connect() +0ms aura_proddebug.js:34336 JsSIP:RTCSession emit „peerconnection” +2ms
aura_proddebug.js:34336 JsSIP:RTCSession newRTCSession() +0ms aura_proddebug.js:34336 JsSIP:RTCSession session connecting +317ms aura_proddebug.js:34336 JsSIP:RTCSession emit „connecting” +0ms aura_proddebug.js:34336 JsSIP:RTCSession createLocalDescription() +0ms
aura_proddebug.js:34336 JsSIP:RTCSession emit „sdp” +127ms aura_proddebug.js:34336 JsSIP:RTCSession emit „sending” [request:Proxy(Object) {}] +0ms
sending message:
INVITE sip:111222333@sip.SipProvaiderDomain.pl SIP/2.0 Via: SIP/2.0/WSS a1mmpeiigv4s.invalid;branch=z9hG4bK9758115 Max-Forwards: 69
To: <sip:111222333@sip.SipProvaiderDomain.pl>
From: <sip:clorcesolu_11@sip.SipProvaiderDomain.pl>;tag=ho6mc1jlub Call-ID: kk7fio7pctpka2crqf4n
CSeq: 2125 INVITE
Contact: <sip:derp7d9t@a1mmpeiigv4s.invalid;transport=ws;ob> Content-Type: application/sdp
Allow:
INVITE,ACK,CANCEL,BYE,UPDATE,MESSAGE,OPTIONS,REFER,INFO,NOTIFY Supported: ice,replaces,outbound
User-Agent: JsSIP 3.10.0
Content-Length: 1494
v=0
o=- 6888356448041348130 2 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE 0
a=extmap-allow-mixed
a=msid-semantic: WMS bdf7bd99-ef6f-4179-ba01-5f38dc8b0641 m=audio 64248 UDP/TLS/RTP/SAVPF 111 63 9 0 8 13 110 126 c=IN IP4 192.168.8.129
a=rtcp:9 IN IP4 0.0.0.0
a=candidate:1520861122 1 udp 2122260223 192.168.8.129 64248 typ host generation 0 network-id 1
a=candidate:2752293718 1 tcp 1518280447 192.168.8.129 9 typ host tcptype active generation 0 network-id 1
a=ice-ufrag:cw52
a=ice-pwd:Z4kBHYCMmKv7/luN+iiUQ6Il
a=ice-options:trickle
a=fingerprint:sha-256
07:0E:F6:DF:EC:E4:03:51:81:35:70:8F:7C:5D:BE:78:90:21:75:8F:40:50: D3:E9:68:84:09:9F:FC:D1:6F:6B
a=setup:actpass
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-extens ions-01
a=extmap:4 urn:ietf:params:rtp-hdrext:sdes:mid
a=sendrecv
a=msid:bdf7bd99-ef6f-4179-ba01-5f38dc8b0641
77e7f45c-8322-4a5a-aa60-35487050e25b
a=rtcp-mux
a=rtpmap:111 opus/48000/2
a=rtcp-fb:111 transport-cc
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 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:13 CN/8000
a=rtpmap:110 telephone-event/48000
a=rtpmap:126 telephone-event/8000
a=ssrc:2814405681 cname:OEvHRMI9Mka/Vgr7
a=ssrc:2814405681 msid:bdf7bd99-ef6f-4179-ba01-5f38dc8b0641 77e7f45c-8322-4a5a-aa60-35487050e25b
received text message:
SIP/2.0 100 Trying – Thank you for using SipProvaiderDomain Via: SIP/2.0/WSS
a1mmpeiigv4s.invalid;branch=z9hG4bK9758115;rport=23184;received=18 8.146.108.57
To: <sip:111222333@sip.SipProvaiderDomain.pl>
From: <sip:clorcesolu_11@sip.SipProvaiderDomain.pl>;tag=ho6mc1jlub Call-ID: kk7fio7pctpka2crqf4n
CSeq: 2125 INVITE
Server: kamailio (5.2.5 (x86_64/linux))
Content-Length: 0
received text message:
SIP/2.0 401 Unauthorized
From: <sip:clorcesolu_11@sip.SipProvaiderDomain.pl>;tag=ho6mc1jlub To: <sip:111222333@sip.SipProvaiderDomain.pl>;tag=as43af8d62 Call-ID: kk7fio7pctpka2crqf4n
CSeq: 2125 INVITE
Server: SipProvaiderDomainVPBXv15
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE
Supported: replaces, timer
WWW-Authenticate: Digest algorithm=MD5,
realm=”sip.SipProvaiderDomain.pl”, nonce=”2268227e” Content-Length: 0
Via: SIP/2.0/WSS
a1mmpeiigv4s.invalid;rport=23184;received=188.146.108.57;branch=z9 hG4bK9758115
Contact:
<sip:atpsh-64d33965-6e0-2bea31@185.73.230.250:8089;transport=ws>
sending message:
ACK sip:111222333@sip.SipProvaiderDomain.pl SIP/2.0 Via: SIP/2.0/WSS a1mmpeiigv4s.invalid;branch=z9hG4bK9758115 Max-Forwards: 69
To: <sip:111222333@sip.SipProvaiderDomain.pl>;tag=as43af8d62
Contact us:
quakker@clorce.com
+48 601 999 237
+48 22 230 25 97