Skype is a software application that allows registered users to communicate with each other through video calls and instant messaging. While making international calls, the caller will always prefer to keep the time difference in mind. This sample demonstrates how Xtend IVR can be used to get the world time via Skype. Utilise this scripting language to screen scrape information from a website.
Download the evaluation version of Xtend IVR and install the telephony application in your system. Run the sample script from the Script Editor. Click here to refer the code.
The automated attendant will work as given below:
LoadFile("CountryMap.txt","$CountryMap")
MAIN:
Display "Waiting for chat . . ."
while !Skype.GetChatMessage()
SleepEvent
endwhile
Display "Received message from " $SkypeChat.FROM_HANDLE " -> " $SkypeChat.
$Country = $SkypeChat.BODY
$Country = alltrim($Country)
if len($Country) < 3
Skype.SendChatMessage($SkypeChat.CHATNAME, "Please send me the name of
the country for which you require the current time.")
goto MAIN
endif
$Response = ScanCountryMap($Country)
if $Response == ""
$Response = ScanCountryMap($Country, true)
endif
if $Response == ""
$Response = Format("I do not know the current time for country %s.
It is possible that this country has many time zones.
Please try a specific state or city in %s", $Country, $Country)
endif
Skype.SendChatMessage($SkypeChat.CHATNAME, $Response)
goto MAIN
Function ScanCountryMap($Country, $MatchAnywhere)
$LineNumber = 1
$ResponseStr = ""
while $LineNumber <= $CountryMap.Filelines
$CurrLine = Format("$CountryMap.Line%d",$LineNumber)
if Find(Upper($$CurrLine),Upper($Country)) >= 0
$pos = Find($$CurrLine," ")
if $pos >= 0
$CountryCode = Left($$CurrLine,$pos)
$CountryName = Mid($$CurrLine,$pos+1)
if !$MatchAnywhere
if upper(alltrim($CountryName)) <>
upper(alltrim($Country))
$LineNumber += 1
continue
endif
endif
Display Format("(%s) Looking up time for %s",
$Country, $CountryName)
$CurrTime = GetTimeFromWorldTimeServer($CountryCode)
if $CurrTime == ""
$LineNumber += 1
continue
endif
$Str = Format("The current time in %s is %s",
$CountryName, $CurrTime)
if $ResponseStr = ""
$ResponseStr = $Str
else
$ResponseStr = Format("%s%c%s",$ResponseStr,
chr(10),$Str)
endif
endif
endif
$LineNumber += 1
endwhile
return $ResponseStr
Function GetTimeFromWorldTimeServer($CountryCode)
if http(Format("http://www.worldtimeserver.com/time.asp?
locationid=%s",$CountryCode)) <> TRUE
return ""
endif
$key = '<span class="font7">'
$endkey = '</span>'
$pos = Find($http.Page, $key)
if $pos < 0
return ""
endif
$pos += len($key)
$CurrTime = Mid($http.Page, $pos)
$pos = Find($CurrTime,$endkey)
if $pos < 0
return ""
endif
$CurrTime = Mid($CurrTime,0,$pos)
$pos = find($CurrTime,":")
if $pos < 0
return ""
endif
$hh = mid($CurrTime,0,$pos)
$pos += 1
$mm = mid($CurrTime,$pos)
$pos = find($mm,' ')
if $pos < 0
return ""
endif
$mm = mid($mm,0,$pos)
$pos = reversefind($CurrTime,' ')
if $pos < 0
return ""
endif
$ampm = upper(mid($CurrTime, $pos+1, 2))
$Str = Format("%d:%02d %s", $hh,$mm,$ampm)
return $Str
ONHANGUP:
hangup
goto MAIN
ONSYSTEMERROR:
log $error
display $error
if $debug
msgbox $error
endif
hangup
goto MAIN