Page 1 of 3

Raadplegen online telefoonboek

Posted: Tue Dec 29, 2009 1:57 am
by Alexander
Even snel deze topic plaatsen. (mij nu even iets te laat om uitgebreid te gaan typen)

Noem het onderstaande script bijv zoekopnummer.vb, en geef als parameter bijv mee ("Main","#02;T2"), waarbij #02 het device is die de plugin van Digit bijwerkt met het nummer en T2 het device is waar de gegevens van de eigenaar van het nummer (indien beschikbaar) naar geschreven moet worden.

Ik heb nu twee events waarbij de ene getriggert wordt bij een inkomende oproep en de andere bij de uitgaande.

Code: Select all

Sub Main(ByVal Params As String)
        Dim strDeviceFrom, strDeviceTo, strData, strDeviceValue, strTelnr As String

        strDeviceFrom = hs.stringitem(Params, 1, ";")
        strDeviceTo = hs.stringitem(Params, 2, ";")
        strTelnr = hs.devicestring(strDeviceFrom)

        strData = hs.GetURL("http://www.gevonden.cc", "/zoek1.php?sort=lastname&search=1&phonenumber=" & strTelnr & "&export=csv", False, 80)
	
        if(instr(Ucase(strData), Ucase("Geen vermeldingen gevonden."))) then
           strDeviceValue = "<b>" & strTelnr & "</b><br/>"
           strDeviceValue += "niet gevonden in de online database."
        else
           strDeviceValue = "<b>" & hs.stringitem(strData, 2, ";") & ", " & hs.stringitem(strData, 3, ";") & " met telnr " & hs.stringitem(strData, 1, ";").trim(chrW(34)) & "</b><br/>"
           strDeviceValue += hs.stringitem(strData, 4, ";") & ", " & hs.stringitem(strData, 5, ";") & ", " & hs.stringitem(strData, 6, ";")
        end if
        hs.setdevicestring(strDeviceTo, strDeviceValue, True)
        hs.writelog("Fritz!Box script", strDeviceValue)          
End Sub

Re: Raadplegen online database

Posted: Tue Dec 29, 2009 3:08 am
by Digit
Hi Alexander,

FYI: retrieving more information about to whom a phone number belongs, will be part of a next version of the Plugin.
I started working on this about a month ago, but still have some issues to resolve.
Maybe next year :)

Re: Raadplegen online database

Posted: Wed Dec 30, 2009 12:52 am
by Alexander
Er moet nog een check ingebouwd worden of de checkbox aangekruist is binnen Digit's plugin waar staat vermeld dat alternatieve nummer/naam/else komt te staan als het nummer niet meegezonden wordt. Nu zal het script deze ook proberen te raadplegen. Op zich niet erg, maar wel nutteloos.
Waar wordt deze config weggeschreven Digit? of is ie via een functie binnen je plugin te controleren?

Re: Raadplegen online database

Posted: Wed Dec 30, 2009 12:55 am
by Alexander
Ik moet niet zo snel mijn vragen stellen. Staat in de FBF.ini file. Het antwoord op de laatste vraag ben ik nog wel benieuwd naar, scheelt weer het buitenom uitlezen van een ini file.

Re: Raadplegen online telefoonboek

Posted: Wed Dec 30, 2009 1:47 am
by Digit
Nee, is nog niet uit te vragen via de Plugin, zal ik meenemen in een volgende release.

Re: Raadplegen online telefoonboek

Posted: Wed Dec 30, 2009 9:27 am
by Dickr43
Mooie ontwikkeling dit script! Alleen krijg ik steeds een fout bij het uitvoeren. Ik haal het telnr uit het Last Phonecall device (^11) en heb een status only device aangemaakt voor de gevonden naam (v99). Wanneer ik het script draai dan krijg ik onderstaande foutmelding in de log:

29-12-2009 12:25:00 Event Running script in background: NrOpzoeken("Main","^11;v99")
29-12-2009 12:25:01 Error Running script, script run or compile error in file: NrOpzoeken1006:Expected ')' in line 1 More info: Expected ')'

Doe ik iets fout?

Re: Raadplegen online telefoonboek

Posted: Wed Dec 30, 2009 11:20 am
by Alexander
Is de file als .vb gesaved?

Re: Raadplegen online telefoonboek

Posted: Wed Dec 30, 2009 11:36 am
by Dickr43
Ja, dat was het probleem!

Dank voor je hulp! Werkt nu als een trein.

Re: Raadplegen online telefoonboek

Posted: Wed Dec 30, 2009 10:51 pm
by Alexander
Laatste update (met check voor de unknowncaller veld):

Code: Select all

Sub Main(ByVal Params As String)
        Dim strDeviceFrom, strDeviceTo, strData, strDeviceValue, strTelnr As String

        strDeviceFrom = hs.stringitem(Params, 1, ";")
        strDeviceTo = hs.stringitem(Params, 2, ";")
        strTelnr = hs.devicestring(strDeviceFrom)

        if(Ucase(strTelnr)<>Ucase(hs.GetINISetting("Startup", "UnknownCaller", "", "FBF.ini"))) then
           strData = hs.GetURL("http://www.gevonden.cc", "/zoek1.php?sort=lastname&search=1&phonenumber=" & strTelnr & "&export=csv", False, 80)
	
           if(instr(Ucase(strData), Ucase("Geen vermeldingen gevonden."))) then
              strDeviceValue = "<b>" & strTelnr & "</b><br/>"
              strDeviceValue += "niet gevonden in de online database."
           else
              strDeviceValue = "<b>" & hs.stringitem(strData, 2, ";") & ", " & hs.stringitem(strData, 3, ";") & " met telnr " & hs.stringitem(strData, 1, ";").trim(chrW(34)) & "</b><br/>"
              strDeviceValue += hs.stringitem(strData, 4, ";") & ", " & hs.stringitem(strData, 5, ";") & ", " & hs.stringitem(strData, 6, ";")
           end if
           hs.setdevicestring(strDeviceTo, strDeviceValue, True)
           hs.writelog("Fritz!Box script", strDeviceValue)
        end if
End Sub

Re: Raadplegen online telefoonboek

Posted: Thu Dec 31, 2009 9:58 am
by RdP
Werkt super !!!

Nu mis ik alleen nog een 'eigen' telefoon boek. Waar ik zelf nummer/naam in kan zetten.

Heeft iemand hier al iets mee gedaan of moet ik zelf gaan scripten ??

Thx,
Rien

Re: Raadplegen online telefoonboek

Posted: Thu Dec 31, 2009 10:38 am
by Alexander
Ik zal het script aanpassen, zodat ie eerst de export file van de telefoonboek van de fritz!box gebruikt. Wellicht dat ik het direct uit kan lezen, maar ik zit nu op mijn werk en kan dus niet bij mijn fritz!box.

Re: Raadplegen online telefoonboek

Posted: Thu Dec 31, 2009 10:44 am
by RdP
Dat zou ik erg waarderen !!!

Re: Raadplegen online telefoonboek

Posted: Sat Jan 02, 2010 11:38 am
by RdP
Ik zie niet hoe ik mijn telefoonboek kan exporteren en dus ook niet om het script er in te laten lezen.

Weet iemand een andere manier om het ingebouwde telefoon boek van de Fritzbox uit te lezen ??

Thx,
Rien

Re: Raadplegen online telefoonboek

Posted: Sat Jan 02, 2010 12:17 pm
by Rene
Rien, Als ik het telefoonboek voor me heb staat er een Save knop onder. Overigens heb ik gisteravond zitten neuzen op de Fritzbox waar het telefoonboek opgeslagen wordt, maar ik heb het nog niet kunnen vinden.

Re: Raadplegen online telefoonboek

Posted: Sat Jan 02, 2010 1:18 pm
by Alexander
@rene: Telefoonboek staat gesaved in /var/flash/phonebook, maar ik heb mij daar verder maar niet in verdiept. Ik heb het anders aangepakt.
@rdp & rest: Hierbij het script uitgebreid met het benaderen van de telefoonboek binnen de Fritz!Box. Als het nummer niet voorkomt in deze telefoonboek, dan wordt de online telefoonboek benadert.

Code: Select all

Sub Main(ByVal Params As String)
        Dim strDeviceFrom, strDeviceTo, strData, strDeviceValue, strTelnr, strArray(), strArray2() As String
        Dim i,x As Integer

        strDeviceFrom = hs.stringitem(Params, 1, ";")
        strDeviceTo = hs.stringitem(Params, 2, ";")
        strTelnr = hs.devicestring(strDeviceFrom)

        strData = hs.GetURL("http://" & hs.GetINISetting("Startup", "Hostname", "127.0.0.1", "FBF.ini"), "/cgi-bin/webcm?getpage=../html/de/home/ppFonbuch.html", True, 80)
        strArray = Split(strData,";")

        For i = 0 to uBound(strArray)
           If Instr(strArray(i), strTelnr) then
               x = i
               Do until Instr(strArray(x), "TrFonName")
                  x -= 1
               Loop
               strArray2 = Split(strArray(x), ",")
               strDeviceValue = "<b>" & Replace(strArray2(1),chrW(34),"") & " met telnr " & strTelnr & "</b><br/>"
               Exit For
           End if
        Next i

        if (Ucase(strTelnr)<>Ucase(hs.GetINISetting("Startup", "UnknownCaller", "", "FBF.ini"))) and (strDeviceValue="") then
           strData = hs.GetURL("http://www.gevonden.cc", "/zoek1.php?sort=lastname&search=1&phonenumber=" & strTelnr & "&export=csv", False, 80)
	
           if(instr(Ucase(strData), Ucase("Geen vermeldingen gevonden."))) then
              strDeviceValue = "<b>" & strTelnr & "</b><br/>"
              strDeviceValue += "niet gevonden in de online database."
           else
              strDeviceValue = "<b>" & hs.stringitem(strData, 2, ";") & ", " & hs.stringitem(strData, 3, ";") & " met telnr " & hs.stringitem(strData, 1, ";").trim(chrW(34)) & "</b><br/>"
              strDeviceValue += hs.stringitem(strData, 4, ";") & ", " & hs.stringitem(strData, 5, ";") & ", " & hs.stringitem(strData, 6, ";")
           end if
        end if
        hs.setdevicestring(strDeviceTo, strDeviceValue, True)
        hs.writelog("Fritz!Box script", strDeviceValue)
End Sub
Graag testen. Bij mij werkt het, maar ik heb op de Fritz!Box ook geen wachtwoord staan. Volgens mij was dat ook een vereiste van Digit's plugin of heb ik dat verkeerd begrepen?