Ich würde gerne eine Online-Suchabfrage bei Anrufeingang in den MD-Client oder das Flexpanel integrieren. Hat das schon jemand realisiert und könnte mir dabei allenfalls helfen?
Die Funktion soll sein:
Wenn eine Nummer nicht im MD-Telefonbuch/Outlook enthalten ist, soll eine weitere Abfrage via url (z.B. Angebot von http://tel.search.ch/api/help) stattfinden. Das Ergebnisse sollen dann wie ein Telefonbucheintrag im Client angezeigt werden. (Bis anhin lösen wir die gewünschte Funktion über den MD-Client/Aktionen URL öffnen, ist aber leider eher langsam und unübersichtlich.)
Please take a look on my new blog article. I wrote a basic widget which uses API mentioned in the first post. You can polish it and adapt for your use cases. I would like to hear your opinion about it and all comments are appreciate.
vielen Dank für Deinen Blog. Ich habe nun endlich einmal Zeit gefunden, um dies zu ergänzen/testen. Leider noch ohne Erfolg.
Ich habe ein neues Panel erstellt und den Code aus dem Custom.txt bei Definition eingefügt und mit dem erhaltenen API-Code ergänzt und gespeichert.
Den XMPP-Server neu gestartet und anschliessend das Panel geöffnet. Leider bleibt es grau in grau (den Rahmen vom widget sehe ich). Bei einem Anrufeingang geschieht auch nichts.
Habe ich etwas übersehen? Hast Du noch einem Tipp für mich?
I am glad to hear that you have tried flex panel widget. I would like to give you a few tips how can you monitor what’s going on.
Please add this import
import java.util.logging.Logger;
Now you can try to print messages or variables from the script. For example you can try to print the phone number of the caller
RequestProcessor.getDefault().post(new Runnable() {
public void run() {
Logger.getLogger(HttpItem.class.getName()).warning(number)
def http = new HTTPBuilder( 'http://tel.search.ch' )
//.... rest ...
Locate application directory on your system (About/Application directory). Navigate to the folder and go to subfolder var/log. Open the message.log file and you will find all printed messages. They will look like “WARNING [HttpItem]: …”
MobyDick client receives the phone number in full format (0041…). You need to be sure that “http://tel.search.ch” accepts full format of the number. You can use some REST client to test API like DHC (aka Dev HTTP Client) in browser. If full format is not supported you should try to format the number in requested format.
I hope those tips will help you to solve your problem.
vielen dank, Du meinst das message.log im Asterisk-Ordner?
Dort gibt es nur die Warnung:
Mar 4 16:09:49] WARNING[10448][C-0000004a] app_dial.c: Unable to create channel of type ‘SIP’ (cause 20 - Subscriber absent)
Resp. was muss alles angewendet oder neu gestartet werden, wenn das Flexpanel angepasst wurde?
FlexPanel is client feature and it executes on the desktop. GeoMue already wrote the path for Windows OS. If you use mac os the path is /Users/$user/Library/Application Support/MobyDickClient/var/log
Ich bin noch nicht so mit der Rest Api vertraut. Benutzer und Zugriff würde funktionieren aber wie kann ich einen Anruf simulieren?
Falls es die Ländervorwahl nicht benötigt, wo könnte ich diese ausklammern/entfernen?
Dein Code funktioniert einwandfrei. Wenn man mit einer Nummer anruft, die nicht im Telefonbuch notiert ist, wird natürlich nichts angezeigt.
Wäre es möglich, dass wenn kein Eintrag gefunden wird, das eine Ausgabe “kein Eintrag” oder ähnliches erscheint?
Auf jeden Fall, vielen herzlichen Dank für Deine Realisierung.
You can try to change definition of FlexPanel script. Please replace this part
FxUtils.runLater(new Runnable() {
@Override
void run() {
//refresh item and show the searched information in the label
HttpItem.this.lblName.setText(xml.entry[0].name.text());
}
});
with this one
String newName = xml.entry[0].name;
if(newName!=null && !newName.isEmpty()) {
FxUtils.runLater(new Runnable() {
@Override
void run() {
//refresh item and show the searched information in the label
HttpItem.this.lblName.setText(xml.entry[0].name.text());
}
});
} else {
FxUtils.runLater(new Runnable() {
@Override
void run() {
//did not find anything. CHANGE TEXT IN QUOTES WITH YOUR MESSAGE
HttpItem.this.lblName.setText("Not found!");
}
});
}
I think you replaced wrong part. Please revert your changes and replace the part from this section.
response.success = { resp, xml ->
println resp.statusLine
println "Call from ${xml.entry[0].content}"
println "Call from ${xml.entry[0].phone}"
println "Call from ${xml.entry[0].name}"
FxUtils.runLater(new Runnable() {
@Override
void run() {
//refresh item and show the searched information in the label
HttpItem.this.lblName.setText(xml.entry[0].name.text());
}
})
}
Wenn Du Lust und Zeit hast, wäre es doch noch schön, wenn es wie beim TeamWidget einen Rahmen rundherum mit einer Beschriftung z. B. Onlineabfrage hätte und wenn ein Eintrag gefunden wird, das Hintergrundfeld grün wird… Spass, bin so schon Happy!