![]() ![]() |
Mar 27 2008, 07:45 PM
Post
#1
|
|
|
Rookie ![]() Group: Members Posts: 23 Joined: 24-May 07 From: Halifax Member No.: 971 |
CODE -----------------------------------------------------------------
-- Name: sipPing.lua -- Author: Jazz Alyxzander -- Required INM version: 3.3 (Build 2685) -- Version: 1.0 -- Date: 2009-02-21 -- Description: This script is used to ensure a Server Response from a Asterisk/Sip server. -- This does not Authenticate and only detects response from the host. -- -- Arguments: -- 1) portNumber -- 2) Time to wait in Seconds ----------------------------------------------------------------- --// =========================================================================== --// Functions --// =========================================================================== --// =========================================================================== --// Variables --// =========================================================================== --// Script Vars debugOn = 0 iArgumentsRequired = 1 --// Var List iReadSize = 256 iRemoteport = 5060 iTimewait = 0 sRequiredCode = "404" --// =========================================================================== --// Initialize Script --// =========================================================================== --// Ensure Arguments are entered Correctly if GetArgumentCount() < iArgumentsRequired then SetExitStatus("Incorrect Number of Paramaters", false); return else iRemoteport = tonumber(GetArgument(0)) iTimewait = tonumber(GetArgument(1)) end -- // Create Socket socket = TLuaSocket:new() iRet = socket:OpenUDP(iRemoteport) if iRet==0 then print("Cannot open port "..iPort.." Error code:"..GetLastError()) SetExitStatus("Socket Error",false) else print("Socket Connected on Port:" .. iRemoteport ); end --// =========================================================================== --// Send SIP invite --// =========================================================================== --// Build Data String sendData = "OPTIONS ".." SIP/2.0\n"; sendData = sendData.."CSeq: 1 OPTIONS\n"; --// Write to Socket socket:Write(sendData, string.len(sendData)) --// =========================================================================== --// Check for response --// =========================================================================== recData = socket:Read(iReadSize, iTimewait) print("Data received from server:") print(recData) --// Return if nodata was read of stream if recData == nill then print("No Response Recieved") SetExitStatus("No Response Recieved", false) return end --// Parse Data iIndexStart = string.find(recData," ")+1 iIndexEnd = string.find(recData," " , iIndexStart)-1 errorCode = string.sub(recData,iIndexStart, iIndexEnd); --// =========================================================================== --// Return --// =========================================================================== if (sRequiredCode == errorCode) then SetExitStatus("Sip Server Responded", true) else SetExitStatus("Error (Unknown): Server returned an Unknown error", false) end --// =========================================================================== --// ~ --// =========================================================================== socket:Close() |
|
|
|
Mar 28 2008, 09:09 AM
Post
#2
|
|
|
INM wizard ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Group: Root Admin Posts: 2,314 Joined: 24-August 04 From: Intellipool AB, Härnösand, Sweden Member No.: 3 |
Very nice!
-------------------- |
|
|
|
![]() ![]() |
|
Lo-Fi Version | Time is now: 8th September 2010 - 07:42 AM |