/usr/include/opal/iax2/specialprocessor.h is in libopal-dev 3.10.10~dfsg2-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 | /*
* Inter Asterisk Exchange 2
*
* The entity which receives all manages weirdo iax2 packets that are
* sent outside of a regular call.
*
* Open Phone Abstraction Library (OPAL)
*
* Copyright (c) 2006 Stephen Cook
*
* The contents of this file are subject to the Mozilla Public License
* Version 1.0 (the "License"); you may not use this file except in
* compliance with the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS"
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
* the License for the specific language governing rights and limitations
* under the License.
*
* The Original Code is Open Phone Abstraction Library.
*
* The Initial Developer of the Original Code is Indranet Technologies Ltd
*
* The author of this code is Stephen Cook
*
* $Revision: 24178 $
* $Author: rjongbloed $
* $Date: 2010-04-05 19:10:56 -0500 (Mon, 05 Apr 2010) $
*/
#ifndef OPAL_IAX2_SPECIALPROCESSOR_H
#define OPAL_IAX2_SPECIALPROCESSOR_H
#ifndef _PTLIB_H
#include <ptlib.h>
#endif
#include <opal/buildopts.h>
#if OPAL_IAX2
#include <opal/connection.h>
#include <iax2/processor.h>
#include <iax2/frame.h>
#include <iax2/iedata.h>
#include <iax2/remote.h>
#include <iax2/safestrings.h>
#include <iax2/sound.h>
/**This is the special processor which is created to handle the weirdo iax2 packets
that are sent outside of a particular call. Examples of weirdo packets are the
ping/pong/lagrq/lagrp.
*/
class IAX2SpecialProcessor : public IAX2Processor
{
PCLASSINFO(IAX2SpecialProcessor, IAX2Processor);
public:
/**Construct this class */
IAX2SpecialProcessor(IAX2EndPoint & ep);
/**Destructor */
virtual ~IAX2SpecialProcessor();
protected:
/**Go through the three lists for incoming data (ethernet/sound/UI commands. */
virtual void ProcessLists();
/**Processes a full frame*/
virtual void ProcessFullFrame(IAX2FullFrame & fullFrame);
/**Processes are mini frame*/
virtual void ProcessNetworkFrame(IAX2MiniFrame * src);
/**Print information about the class on to a stream*/
virtual void PrintOn(ostream & strm) const;
/**Called when there is no response to a request*/
virtual void OnNoResponseTimeout();
/**Process an IAX2FullFrameProtocol. This special processor handles
things relative to special needs of full frame protocols.*/
virtual PBoolean ProcessNetworkFrame(IAX2FullFrameProtocol * src);
/**Process a poke command*/
void ProcessIaxCmdPoke(IAX2FullFrameProtocol * src);
/**Test the sequence number of the incoming frame. This is only
valid for handling a call. If the message is outof order, the
supplied fullframe is deleted.
@return false always, as the special packet handler never gets
frame ordered correctly - there will always be skipped frames. */
virtual PBoolean IncomingMessageOutOfOrder(IAX2FullFrame *)
{ return false; }
};
#endif // OPAL_IAX2
#endif // OPAL_IAX2_SPECIALPROCESSOR_H
|