none
OCS Anrufbefehl aus dem CRM heraus RRS feed

  • Frage

  • Hallo zusammen,

     

    wir setzen bei uns intern den Office Communication Server ein.

    Dort gibt es einen Befehl (tel: irgendeine Telefonnummer), den man unter Ausführen einfach aufrufen kann.

    Meine Frage:

    Ich habe im CRM in der ISV Config Datei einen Button auf dem Firmenobjekt angelegt, welcher eine Funktion aufruft.

    Dann bin ich ins Onload der Firma gegangen und habe dort die Funktion entsprechend definiert mit folgendem Code:

    function tel_geschaeftlich(){  
    
     if (telephone1==null)
     {
     alert("Keine Telefonnummer hinterlegt.");
    }
    else
    {
    tel: +Telefon;
    }
    
     }  
      
    this.tel_geschaeftlich = tel_geschaeftlich;
    
    

    Weiß jemand woran es liegen kann, dass ich 

    1. einen Seitenladefehler bekomme

    2. ob ich den Befehl so aus Javascript heraus überhaupt aufrufen kann? 

     

    VG

    Martin

    Freitag, 1. April 2011 11:44

Antworten

  • Schau Dir mal http://www.microsoft.com/downloads/en/details.aspx?FamilyID=6e2ea762-a6c9-43bd-8c84-bf610073765c&DisplayLang=en an.
    var comm = new ActiveXObject('Communicator.UIAutomation'); try { comm.AutoSignin(); } catch(err) { alert('Please Signin the Office Communicator'); } if (document.crmForm.all.emailaddress1.DataValue==null) { alert('Please enter the E-mail ID'); } else { try { var c = comm.GetContact(document.crmForm.all.emailaddress1.DataValue,comm.MyServiceId); comm.InstantMessage(c); } catch(err) { alert('Invalid operation.Please retry'); } } 
    mit comm.Phone(c) und statt emailaddress1 eben telephone sollte sich eigentlich ein Telefonanruf starten lassen.
    Carsten Groth http://carstengroth.wordpress.com
    Montag, 4. April 2011 14:23

Alle Antworten

  • Hallo Martin,

    ich denke, dass du dort per JS einen Link mit dem Format "tel:nummer" erzeugen musst. Der User kann dann auf den Link klicken und durch den Klick wird die weitere Applikation angesteuert.

    Gruß,

    Nils

    Freitag, 1. April 2011 12:18
  • Ergänzung: Also dein Button sollte schon direkt den Link enthalten.

     

    Freitag, 1. April 2011 12:19
  • Hallo Nils,

     

    das Problem ist, dass die Telefonnummer immer vom aktuell geöffneten Datensatz genommen werden soll.

    Und ein einfaches Tel:nummer funktioniert nicht recht.

    Wie gesagt habe es ähnlich der oben angegebenen funktion eingebaut.

     

    VG

    Martin

    Freitag, 1. April 2011 12:24
  • Hallo Martin,

    zunächst muss man wohl das Wirkungsprinzip von "tel:nummer" verstehen. Muss es nicht heißen "tel://nummer"?

    Die Frage zielt darauf ab, welcher Mechanismus die andere Anwendung startet. Wenn es "tel://" ist dann bedeutet das das für diesen Adressraum eine Anwendung registirert ist, so wie für "http://" der Browser oder für "file://" der Explorer.

    Wenn dem so ist, dann ist die Sache einfach. Du navigierst per javascript zu dem URI "tel://nummer".

    Also probiere mal aus, ob Du im Browser die Adresse "tel://telefonnumer" eingeben kannst und ob sich dann die Zielanwendung wie gewünscht öffnet. Falls nicht müseen wir weiter suchen.

    Grüße Thomas

    Freitag, 1. April 2011 13:14
  • Hallo Thomas,

     

    also wenn ich unter Start -> Ausführen folgendes eingebe, öffnet sich automatisch ein Gesprächsfenster des Microsoft Office Communicators, welcher zur selben Zeit auf meinem Rechner läuft:

     

    tel: 123456789

     

    Diesen Befehl möchte ich im CRM auf einen Button legen, der anstatt einer statischen Nummer die Nummer des entsprechenden Kontaktes/der entsprechenden Firma einträgt.

    Sprich ich würde dann anstatt der Nummer einfach das entsprechende Feld übergeben.

     

    VG

    Martin

    Freitag, 1. April 2011 13:19
  • Hallo Martin,

    "Start Ausführen" heißt nichts anderes als einen commandline Befehl abzusetzen.Das geht soweit ich weiss aus Sicherheitsgründen mit Javascript nicht. Sonst könnte jeder Webmaster die wildesten Dinge auf dem rechner des Surfers veranstalten.

    Was passiert wenn Du den Befehl in die Adresse des Browsers eingibts (eventuell mit den //). falls das funktioniert, dann kämen wir weiter.

    Grüße

    Thomas

    Freitag, 1. April 2011 13:40
  • Hallo thomas,

     

    wenn ich den Befehl tel:123456789 in die Adresszeile des Browsers (IE) eingebe, öffnet sich eine Sicherheitswarnung, die mich fragt ob ich den Zugriff auf das Programm Microsoft Communicator zulassen möchte.

     

    Sprich, er bekommt es schon mal angesprochen aber es kommt auch zu einem Sicherheitskonflikt.

    Aber wir kommen der Sache etwas näher.

     

    VG und VD 

    Martin

     

    Montag, 4. April 2011 07:51
  • Hallo Martin,

    probier als nächstes doch mal ein einfaches HTML Dokument mit einem Link zu erstellen:

    <html>
      <head>
        <title>Seite mit Tel-Link</title>
      </head> 
      <body>
        <a href=tel:0123456>Anrufen</a>
      </body>
    </html>

    Wenn das funktioniert, dann solltest du per Javascript dynamisch einen solchen Link bauen können...

    Gruß,

    Nils

    Montag, 4. April 2011 08:52
  • Hallo zusammen,

     

    ich bin einen Schritt weiter gekommen.

    Folgender Code:

    var Telefon = crm.Form.telephone1.DataValue;
    
    function tel_geschaeftlich(){  
    
    window.open("tel:"+Telefon);
    
    
     }  
      
    this.tel_geschaeftlich = tel_geschaeftlich;
    
    

    Folgendes passiert:

     

    Es öffnet sich ein IE Fenster mit beispielsweise tel:123456 in der Adresszeile.

    Zeitgleich geht die Sicherheitswarnung auf, die mich davor warnt, dass ein Programm gestartet wird und mich fragt ob ich es zulassen möchte.

    Hat jemand noch eine Idee wie ich das Ganze ohne ein sich öffnendes IE Fenster hinbekomme? 

     

    Dann wäre ich glücklich und das Problem wäre gelöst :) 

     

    VG und besten Dank für die Hilfe bisher :) 

     

    Martin

    Montag, 4. April 2011 09:01
  • Schau Dir mal http://www.microsoft.com/downloads/en/details.aspx?FamilyID=6e2ea762-a6c9-43bd-8c84-bf610073765c&DisplayLang=en an.
    var comm = new ActiveXObject('Communicator.UIAutomation'); try { comm.AutoSignin(); } catch(err) { alert('Please Signin the Office Communicator'); } if (document.crmForm.all.emailaddress1.DataValue==null) { alert('Please enter the E-mail ID'); } else { try { var c = comm.GetContact(document.crmForm.all.emailaddress1.DataValue,comm.MyServiceId); comm.InstantMessage(c); } catch(err) { alert('Invalid operation.Please retry'); } } 
    mit comm.Phone(c) und statt emailaddress1 eben telephone sollte sich eigentlich ein Telefonanruf starten lassen.
    Carsten Groth http://carstengroth.wordpress.com
    Montag, 4. April 2011 14:23
  • Hallo Carsten,

     

    vielen Dank.

    Das läuft.

     

    VG

    Martin

    Dienstag, 5. April 2011 09:23