PeterK Posted June 5, 2018 #1 Share Posted June 5, 2018 Hallo, heute habe ich mal ein einfaches Problem - hoffe ich ? Bei uns im Haus werden alle externen Anrufe bei einzelnen Mitarbeitern zur Zentrale durchgestellt, falls der jeweilige Teilnehmer nicht ans Telefon geht. Falls in der Zentrale auch niemand rangeht, wird eine Email an die Zentrale verschickt (z.B. für Rückrufe). Diese beinhaltet die Rufnummer des Anrufenden sowie Datum und Uhrzeit. (z.B. es wird bei +49 XXX 27 angerufen, 27 geht nicht ran, damit wird auf die +49 XXX 0 weitergeleitet) Gern hätten wir auch die Nummer, die original angerufen wurde, in die Email eingetragen (im obigen Beispiel also +49 XXX 27), damit die Zentrale weiß, wer wirklich angerufen wurde. Leider finde ich aber in den vordefinierten Variablen keine, die die original gewählte Rufnummer beinhaltet. Wenn ich IpPbx.CallingNumber oder CalledNumber verwende, bekomme ich im obeigen Beispiel immer die 0, nicht jedoch die 27. Wenn man in die Einzelverbindungsliste schaut, sieht man auch, warum. Es sind 2 Einträge, der erste beinhaltet den Anruf auf der 27, während die zweite den weitergeleiteten Ruf zeigt. Und alle vordefinerten Variablen scheinen sich auf diesen zweiten Eintrag zu beziehen... Ein Weg wäre, über SQL-Scripte dies abzufragen. Aber vielleicht geht es auch ganz einfach??? Peter Link to comment Share on other sites More sharing options...
Most Valued User srom Posted June 5, 2018 Most Valued User #2 Share Posted June 5, 2018 Das löse ich meist wie folgt, Am Teilnehmer der Umleitet setze ich einen CallingName. if callingname = „“ then callingname = „Bei Maier von :“ &callingnumber else callingname = „Bei Maier von :“&callingname Die Korrekte Schreibweise musst du dir raus suchen oder ich tippe es dir am Laptop nochmal zusammen. Damit hast du alle Informationen im CallingName und kannst diese Übergeben. Hilft dir das so schön weiter ? gruss Sven Link to comment Share on other sites More sharing options...
PeterK Posted June 6, 2018 Author #3 Share Posted June 6, 2018 Hallo Sven, das wäre schon mal eine Idee! Vielleicht noch nicht optimal, aber könnte gehen. Danke Peter Link to comment Share on other sites More sharing options...
Most Valued User srom Posted June 6, 2018 Most Valued User #4 Share Posted June 6, 2018 Könntest dich auch damit beschäftigen Link to comment Share on other sites More sharing options...
PeterK Posted June 7, 2018 Author #5 Share Posted June 7, 2018 Hallo, ich denke, ich habe eine andere Lösung gefunden. Und diese könnte vielleicht auch für andere interessant sein... Es scheint, dass CallId() immer die ID des originalen Anrufs enthält (und nicht die des weitergeleiteten Gesprächs). Damit vereinfacht sich ein VB-Script, dass die entsprechenden Daten aus der IpPbxCDR-Tabelle ausliest, stark: ' CursorTypeEnum Values Const adOpenForwardOnly = 0 Const adOpenKeyset = 1 Const adOpenDynamic = 2 Const adOpenStatic = 3 ' LockTypeEnum Values Const adLockReadOnly = 1 Const adLockPessimistic = 2 Const adLockOptimistic = 3 Const adLockBatchOptimistic = 4 ' CommandTypeEnum Values Const adCmdUnknown = &H8 Const adCmdText = &H1 Const adCmdTable = &H2 Const adCmdStoredProc = &H4 Function GetCalledNameFromCallId(ByVal callId) Dim sDsn Dim sSQL2 Dim rs Dim db Dim TNr Dim sReturn sReturn = "" sDsn = "Provider=SQLOLEDB;Data Source=<MySource>;Initial Catalog=CDR;User ID=<MyUsername>;Password=<MyPassword>" Set db = CreateObject("ADODB.Connection") db.Open sDsn sSQL2 = "SELECT CalledName FROM IpPbxCDR WHERE (CallId = '" & callId & "')" Set rs = CreateObject("ADODB.Recordset") rs.Open sSQL2, db, adOpenDynamic, adLockOptimistic, adCmdText If Not rs.eof = True Then sReturn = Trim(rs("CalledName")) End If rs.Close Set rs = Nothing db.Close Set db = Nothing Set sSQL2 = Nothing GetCalledNameFromCallId = sReturn End Function (ersetzt man alle "CalledNme" durch "CalledNumber" kann man sich auch die Telefonnummer zurückgeben lassen) Und hier die Zuweisung einer Variable: Peter Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.