IPB

Welcome Guest ( Log In | Register )

 
Reply to this topicStart new topic
> SIP Ping Script
Jazz
post 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()
Go to the top of the page
 
+Quote Post
RA
post 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!


--------------------
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic

 



RSS Lo-Fi Version Time is now: 8th September 2010 - 07:42 AM