Integrazione di CommuniGate Pro Contact Center con Microsoft Dynamics


Di seguito è riportato un esempio del semplice modulo CG/PL che realizza l'integrazione del Centro di contatto CommuniGate Pro con il sistema Microsoft Dynamics CRM. Come sistema intermedio per implementare l'autenticazione e la comunicazione reciproca, è utilizzato uno script Perl situato sul server di CommuniGate Pro.
#!/usr/bin/perl use strict; use warnings; use LWP::UserAgent; use Authen::NTLM; use HTTP::Request::Common; use CGI qw(:standard); my $oData = '/XRMServices/2011/OrganizationData.svc/'; my $crmServer = param('crmserver'); my $crmName = param('crmname'); my $username = param('username'); my $password = param('password'); my $set = param('set'); my $select = param('select'); my $filter = param('filter'); unless($crmServer && $crmName && $username && $password && $set && $select && $filter) { my $msg = '{"error":{"message":{"value":"incorrect params"}}}'; print "Content-Length: " . length($msg) . "\n"; print "Content-Type: application/json\n\n"; print $msg; exit(0); } my $url = $crmServer . '/' . $crmName . $oData . $set . '?$select=' . $select . '&$filter=' . $filter; my $ua = new LWP::UserAgent(keep_alive=>1); $ua->default_header('Accept' => 'application/json'); my $crmRealm = $crmServer; $crmRealm =~ s/^https*\:\/\///; $ua->credentials($crmRealm, '', $username, $password); my $request = GET $url; my $response = $ua->request($request); my $msg = $response->content; print "Content-Length: " . length($msg) . "\n"; print "Content-Type: application/json\n\n"; print $msg; exit(0);
// ================================================== // // Contact Center integration with MS Dynamics CRM // // Version 2.0.1d // // ================================================== // function consultCRM() forward; var monitorSettings; function ccDynamicsCRM() { return consultCRM(); } /////////////// function consultCRM() { var qParam = EmailUserPart(SIPURItoEmail(RemoteURI())) || ""; if(!IsString(qParam) || qParam == "" || !IsString(monitorSettings.crmServer) || monitorSettings.crmServer == "") { return null; } var url = "http://127.0.0.1:8100/cgi-bin/msdynntlmproxy.pl"; var params = NewDictionary(); params.method = "GET"; params.timeout = 20; params.urlParams = NewDictionary(); params.urlParams.crmserver = monitorSettings.crmServer; params.urlParams.crmname = monitorSettings.crmName || "Demo"; // CRM instance name params.urlParams.username = monitorSettings.crmUser || "DOMAIN\\username"; // CRM administrator username params.urlParams.password = monitorSettings.crmPass || "password"; // CRM administrator password params.urlParams.set = "ContactSet"; params.urlParams.select = "ContactId,FullName,EMailAddress1"; params.urlParams.filter = "Telephone1 eq \'" + qParam + "\'"; var result = HTTPCall(url,params); if(IsDictionary(result) && IsData(result.body)) { var resultJSON = Convert(result.body,"utf-8"); var data = JSONToObject(resultJSON); if(IsDictionary(data)) { if(!data.error) { if(IsDictionary(data.d)) { if(IsArray(data.d.results)) { if(Length(data.d.results)) { var crm = NewArray(); for(var i = 0; i
Per ulteriori informazioni scrivere a support@communigate.ru