callprocessor.h
Go to the documentation of this file.
/*
*
* Inter Asterisk Exchange 2
*
* The core routine which determines the processing of packets for one call.
*
* Open Phone Abstraction Library (OPAL)
*
* Copyright (c) 2005 Indranet Technologies Ltd.
*
* 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 Derek J Smithies
*
* $Revision: 27078 $
* $Author: rjongbloed $
* $Date: 2012-02-29 22:40:38 -0600 (Wed, 29 Feb 2012) $
*/
#ifndef OPAL_IAX2_CALLPROCESSOR_H
#define OPAL_IAX2_CALLPROCESSOR_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>
class IAX2Connection;
class IAX2CallProcessor : public IAX2Processor
{
PCLASSINFO(IAX2CallProcessor, IAX2Processor);
public:
IAX2CallProcessor(IAX2EndPoint & ep);
virtual ~IAX2CallProcessor();
void AssignConnection(IAX2Connection * _con);
void PutSoundPacketToNetwork(PBYTEArray *sund);
IAX2Encryption & GetEncryptionInfo() { return encryption; }
void ClearCall(OpalConnection::CallEndReason releaseReason = OpalConnection::EndedByLocalUser);
virtual void OnReleased();
void SendDtmf(const PString & dtmfs);
void SendText(const PString & text);
virtual PBoolean SetUpConnection();
PBoolean Matches(IAX2Frame *frame) { return remote == (frame->GetRemoteInfo()); }
virtual void PrintOn(ostream & strm) const;
void ReportStatistics();
PBoolean MatchingLocalCallNumber(PINDEX compare) { return (compare == remote.SourceCallNumber()); }
unsigned short GetSelectedCodec() { return (unsigned short) selectedCodec; }
void AcceptIncomingCall();
virtual PBoolean SetAlerting(
const PString & calleeName,
PBoolean withMedia
) ;
void Hangup(PString messageToSend);
PBoolean IsCallTerminating() { return callStatus & callTerminating; }
void SendHold();
void SendHoldRelease();
void SetUserName(PString & inUserName) { userName = inUserName; };
PString GetUserName() const;
PString GetCallingName() const { return callingName; }
void SetPassword(PString & inPassword) { password = inPassword; };
PString GetPassword() const { return password; };
void SendTransfer(
const PString & calledNumber,
const PString & calledContext = PString::Empty());
void StartStatusCheckTimer(PINDEX msToWait = 10000 );
virtual PBoolean IncomingMessageOutOfOrder(IAX2FullFrame *ff);
void SendAnswerMessageToRemoteNode();
protected:
IAX2Connection * con;
PBoolean RemoteSelectedCodecOk();
void CheckForHangupMessages();
void ProcessNetworkFrame(IAX2Frame * src);
void ProcessNetworkFrame(IAX2MiniFrame * src);
void ProcessNetworkFrame(IAX2FullFrame * src);
void ProcessNetworkFrame(IAX2FullFrameDtmf * src);
void ProcessNetworkFrame(IAX2FullFrameVoice * src);
void ProcessNetworkFrame(IAX2FullFrameVideo * src);
void ProcessNetworkFrame(IAX2FullFrameSessionControl * src);
void ProcessNetworkFrame(IAX2FullFrameNull * src);
virtual PBoolean ProcessNetworkFrame(IAX2FullFrameProtocol * src);
void ProcessNetworkFrame(IAX2FullFrameText * src);
void ProcessNetworkFrame(IAX2FullFrameImage * src);
void ProcessNetworkFrame(IAX2FullFrameHtml * src);
void ProcessNetworkFrame(IAX2FullFrameCng * src);
virtual void ProcessLists();
void ConnectToRemoteNode(PString & destination);
void SendDtmfMessage(char message);
void SendTextMessage(PString & message);
void SendSoundMessage(PBYTEArray *sound);
void SendTransferMessage();
void SendQuelchMessage();
void SendUnQuelchMessage();
void IncAudioFramesSent() { ++audioFramesSent; }
void IncAudioFramesRcvd() { ++audioFramesRcvd; }
void IncVideoFramesSent() { ++videoFramesSent; }
void IncVideoFramesRcvd() { ++videoFramesRcvd; }
void RemoteNodeHasAnswered();
void CallStopSounds();
void ReceivedHookFlash();
void RemoteNodeIsBusy();
void ProcessIncomingAudioFrame(IAX2Frame *newFrame);
void ProcessIncomingVideoFrame(IAX2Frame *newFrame);
void ProcessIaxCmdNew(IAX2FullFrameProtocol *src);
void ProcessIaxCmdAck(IAX2FullFrameProtocol *src);
void ProcessIaxCmdHangup(IAX2FullFrameProtocol *src);
void ProcessIaxCmdReject(IAX2FullFrameProtocol *src);
void ProcessIaxCmdAccept(IAX2FullFrameProtocol *src);
void ProcessIaxCmdAuthReq(IAX2FullFrameProtocol *src);
void ProcessIaxCmdAuthRep(IAX2FullFrameProtocol *src);
void ProcessIaxCmdInval(IAX2FullFrameProtocol *src);
void ProcessIaxCmdDpReq(IAX2FullFrameProtocol *src);
void ProcessIaxCmdDpRep(IAX2FullFrameProtocol *src);
void ProcessIaxCmdDial(IAX2FullFrameProtocol *src);
void ProcessIaxCmdTxreq(IAX2FullFrameProtocol *src);
void ProcessIaxCmdTxcnt(IAX2FullFrameProtocol *src);
void ProcessIaxCmdTxacc(IAX2FullFrameProtocol *src);
void ProcessIaxCmdTxready(IAX2FullFrameProtocol *src);
void ProcessIaxCmdTxrel(IAX2FullFrameProtocol *src);
void ProcessIaxCmdTxrej(IAX2FullFrameProtocol *src);
void ProcessIaxCmdQuelch(IAX2FullFrameProtocol *src);
void ProcessIaxCmdUnquelch(IAX2FullFrameProtocol *src);
void ProcessIaxCmdPage(IAX2FullFrameProtocol *src);
void ProcessIaxCmdMwi(IAX2FullFrameProtocol *src);
void ProcessIaxCmdUnsupport(IAX2FullFrameProtocol *src);
void ProcessIaxCmdTransfer(IAX2FullFrameProtocol *src);
void ProcessIaxCmdProvision(IAX2FullFrameProtocol *src);
void ProcessIaxCmdFwDownl(IAX2FullFrameProtocol *src);
void ProcessIaxCmdFwData(IAX2FullFrameProtocol *src);
void ProcessIaxCmdCallToken(IAX2FullFrameProtocol *src);
IAX2FullFrameProtocol *BuildNewFrameForSending(IAX2FullFrameProtocol *inReplyTo = NULL);
PAtomicInteger audioFramesSent;
PAtomicInteger audioFramesRcvd;
PAtomicInteger videoFramesSent;
PAtomicInteger videoFramesRcvd;
SafeString remotePhoneNumber;
SafeStrings callList;
SafeString dtmfText;
SafeStrings textList;
SafeStrings dtmfNetworkList;
SafeStrings hangList;
PBoolean holdCall;
PBoolean holdReleaseCall;
IAX2SoundList soundWaitingForTransmission;
enum SoundBufferState {
BufferToSmall,
Normal,
BufferToBig
};
SoundBufferState soundBufferState;
PINDEX lastFullFrameTimeStamp;
PBoolean audioCanFlow;
unsigned int selectedCodec;
enum CallStatus {
callNewed = 1 << 0,
callSentRinging = 1 << 1,
callRegistered = 1 << 2,
callAuthorised = 1 << 3,
callAccepted = 1 << 4,
callRinging = 1 << 5,
callAnswered = 1 << 6,
callTerminating = 1 << 7
};
unsigned short callStatus;
void SetCallSentRinging(PBoolean newValue = true)
{ if (newValue) callStatus |= callSentRinging; else callStatus &= ~callSentRinging; }
void SetCallNewed(PBoolean newValue = true)
{ if (newValue) callStatus |= callNewed; else callStatus &= ~callNewed; }
void SetCallRegistered(PBoolean newValue = true)
{ if (newValue) callStatus |= callRegistered; else callStatus &= ~callRegistered; }
void SetCallAuthorised(PBoolean newValue = true)
{ if (newValue) callStatus |= callAuthorised; else callStatus &= ~callAuthorised; }
void SetCallAccepted(PBoolean newValue = true)
{ if (newValue) callStatus |= callAccepted; else callStatus &= ~callAccepted; }
void SetCallRinging(PBoolean newValue = true)
{ if (newValue) callStatus |= callRinging; else callStatus &= ~callRinging; }
void SetCallAnswered(PBoolean newValue = true)
{ if (newValue) callStatus |= callAnswered; else callStatus &= ~callAnswered; }
void SetCallTerminating(PBoolean newValue = true)
{ if (newValue) callStatus |= callTerminating; else callStatus &= ~callTerminating; }
PBoolean IsCallHappening() { return callStatus > 0; }
PBoolean IsCallNewed() { return callStatus & callNewed; }
PBoolean IsCallSentRinging() { return callStatus & callSentRinging; }
PBoolean IsCallRegistered() { return callStatus & callRegistered; }
PBoolean IsCallAuthorised() { return callStatus & callAuthorised; }
PBoolean IsCallAccepted() { return callStatus & callAccepted; }
PBoolean IsCallRinging() { return callStatus & callRinging; }
PBoolean IsCallAnswered() { return callStatus & callAnswered; }
#ifdef DOC_PLUS_PLUS
void OnStatusCheck(PTimer &, INT);
#else
PDECLARE_NOTIFIER(PTimer, IAX2CallProcessor, OnStatusCheck);
#endif
void DoStatusCheck();
void RemoteNodeIsRinging();
void RingingWasAcked();
void AnswerWasAcked();
PBoolean firstMediaFrame;
PBoolean answerCallNow;
PBoolean statusCheckOtherEnd;
PTimer statusCheckTimer;
PINDEX audioFrameDuration;
PINDEX audioCompressedBytes;
PBoolean audioFramesNotStarted;
void CheckForRemoteCapabilities(IAX2FullFrameProtocol *src);
virtual void OnNoResponseTimeout();
virtual void ProcessFullFrame(IAX2FullFrame & fullFrame);
PString callingName;
PString callingExtension;
PString callingDnid;
PString callingContext;
PString userName;
PString password;
PMutex transferMutex;
PBoolean doTransfer;
PString transferCalledNumber;
PString transferCalledContext;
PBoolean suppressHangupFrame;
};
/* The comment below is magic for those who use emacs to edit this file.
* With the comment below, the tab key does auto indent to 2 spaces.
*
* Local Variables:
* mode:c
* c-basic-offset:2
* End:
*/
#endif // OPAL_IAX2
#endif // OPAL_IAX2_CALLPROCESSOR_H
IAX2CallProcessor::GetSelectedCodec
unsigned short GetSelectedCodec()
Definition: callprocessor.h:122
IAX2CallProcessor::SendTransfer
void SendTransfer(const PString &calledNumber, const PString &calledContext=PString::Empty())
IAX2CallProcessor::SetPassword
void SetPassword(PString &inPassword)
Definition: callprocessor.h:181
IAX2CallProcessor::callingContext
PString callingContext
Definition: callprocessor.h:688
IAX2CallProcessor::SendSoundMessage
void SendSoundMessage(PBYTEArray *sound)
IAX2CallProcessor::callSentRinging
Definition: callprocessor.h:534
IAX2CallProcessor::holdReleaseCall
PBoolean holdReleaseCall
Definition: callprocessor.h:500
IAX2CallProcessor::ProcessIaxCmdFwDownl
void ProcessIaxCmdFwDownl(IAX2FullFrameProtocol *src)
IAX2CallProcessor::RingingWasAcked
void RingingWasAcked()
IAX2CallProcessor::ProcessFullFrame
virtual void ProcessFullFrame(IAX2FullFrame &fullFrame)
IAX2CallProcessor::IsCallAccepted
PBoolean IsCallAccepted()
Definition: callprocessor.h:596
IAX2CallProcessor::ProcessIaxCmdHangup
void ProcessIaxCmdHangup(IAX2FullFrameProtocol *src)
IAX2CallProcessor::ProcessIaxCmdTxreq
void ProcessIaxCmdTxreq(IAX2FullFrameProtocol *src)
IAX2CallProcessor::transferCalledContext
PString transferCalledContext
Definition: callprocessor.h:710
sound.h
IAX2CallProcessor::SendText
void SendText(const PString &text)
IAX2CallProcessor::SoundBufferState
SoundBufferState
Definition: callprocessor.h:511
IAX2CallProcessor::ProcessIaxCmdAck
void ProcessIaxCmdAck(IAX2FullFrameProtocol *src)
IAX2FullFrameNull
Definition: frame.h:851
IAX2FullFrameVoice
Definition: frame.h:671
IAX2CallProcessor::transferCalledNumber
PString transferCalledNumber
Definition: callprocessor.h:707
IAX2CallProcessor::remotePhoneNumber
SafeString remotePhoneNumber
Definition: callprocessor.h:476
IAX2EndPoint
Definition: iax2ep.h:104
IAX2CallProcessor::RemoteNodeIsBusy
void RemoteNodeIsBusy()
IAX2CallProcessor::videoFramesRcvd
PAtomicInteger videoFramesRcvd
Definition: callprocessor.h:473
connection.h
buildopts.h
IAX2CallProcessor::IncAudioFramesSent
void IncAudioFramesSent()
Definition: callprocessor.h:308
IAX2CallProcessor::SetCallNewed
void SetCallNewed(PBoolean newValue=true)
Definition: callprocessor.h:551
IAX2CallProcessor::SetCallAnswered
void SetCallAnswered(PBoolean newValue=true)
Definition: callprocessor.h:571
IAX2CallProcessor::callRinging
Definition: callprocessor.h:538
IAX2CallProcessor::audioCanFlow
PBoolean audioCanFlow
Definition: callprocessor.h:525
IAX2CallProcessor::BufferToSmall
Definition: callprocessor.h:512
IAX2CallProcessor::holdCall
PBoolean holdCall
Definition: callprocessor.h:497
IAX2Connection
Definition: iax2con.h:63
IAX2CallProcessor::hangList
SafeStrings hangList
Definition: callprocessor.h:494
IAX2CallProcessor::SendHold
void SendHold()
IAX2CallProcessor::SendUnQuelchMessage
void SendUnQuelchMessage()
IAX2CallProcessor::ReceivedHookFlash
void ReceivedHookFlash()
IAX2CallProcessor::statusCheckOtherEnd
PBoolean statusCheckOtherEnd
Definition: callprocessor.h:647
IAX2CallProcessor::IAX2CallProcessor
IAX2CallProcessor(IAX2EndPoint &ep)
IAX2CallProcessor::ProcessIaxCmdUnsupport
void ProcessIaxCmdUnsupport(IAX2FullFrameProtocol *src)
IAX2CallProcessor::GetUserName
PString GetUserName() const
IAX2CallProcessor::callNewed
Definition: callprocessor.h:533
IAX2CallProcessor::SendDtmfMessage
void SendDtmfMessage(char message)
IAX2CallProcessor::textList
SafeStrings textList
Definition: callprocessor.h:488
IAX2FullFrame
Definition: frame.h:369
IAX2CallProcessor::RemoteNodeIsRinging
void RemoteNodeIsRinging()
IAX2CallProcessor::OnStatusCheck
void OnStatusCheck(PTimer &, INT)
IAX2CallProcessor::ProcessIaxCmdAccept
void ProcessIaxCmdAccept(IAX2FullFrameProtocol *src)
IAX2CallProcessor::ConnectToRemoteNode
void ConnectToRemoteNode(PString &destination)
SafeString
Definition: safestrings.h:107
IAX2CallProcessor::IncVideoFramesSent
void IncVideoFramesSent()
Definition: callprocessor.h:314
IAX2MiniFrame
Definition: frame.h:307
IAX2CallProcessor::password
PString password
Definition: callprocessor.h:698
IAX2CallProcessor::SetCallAuthorised
void SetCallAuthorised(PBoolean newValue=true)
Definition: callprocessor.h:559
IAX2CallProcessor::ProcessIaxCmdTxready
void ProcessIaxCmdTxready(IAX2FullFrameProtocol *src)
IAX2CallProcessor::Hangup
void Hangup(PString messageToSend)
IAX2CallProcessor::IsCallTerminating
PBoolean IsCallTerminating()
Definition: callprocessor.h:152
IAX2CallProcessor::audioCompressedBytes
PINDEX audioCompressedBytes
Definition: callprocessor.h:657
IAX2Processor::remote
IAX2Remote remote
Definition: processor.h:227
IAX2CallProcessor::IsCallRegistered
PBoolean IsCallRegistered()
Definition: callprocessor.h:590
IAX2FullFrameHtml
Definition: frame.h:1111
IAX2CallProcessor
Definition: callprocessor.h:57
IAX2CallProcessor::ProcessIaxCmdAuthRep
void ProcessIaxCmdAuthRep(IAX2FullFrameProtocol *src)
IAX2CallProcessor::OnNoResponseTimeout
virtual void OnNoResponseTimeout()
IAX2CallProcessor::ProcessIaxCmdUnquelch
void ProcessIaxCmdUnquelch(IAX2FullFrameProtocol *src)
IAX2CallProcessor::ProcessIaxCmdFwData
void ProcessIaxCmdFwData(IAX2FullFrameProtocol *src)
IAX2CallProcessor::SendTextMessage
void SendTextMessage(PString &message)
IAX2CallProcessor::PrintOn
virtual void PrintOn(ostream &strm) const
IAX2CallProcessor::soundBufferState
SoundBufferState soundBufferState
Definition: callprocessor.h:518
IAX2CallProcessor::MatchingLocalCallNumber
PBoolean MatchingLocalCallNumber(PINDEX compare)
Definition: callprocessor.h:119
IAX2CallProcessor::callAnswered
Definition: callprocessor.h:539
IAX2CallProcessor::callingExtension
PString callingExtension
Definition: callprocessor.h:681
IAX2CallProcessor::GetPassword
PString GetPassword() const
Definition: callprocessor.h:184
IAX2CallProcessor::SetCallTerminating
void SetCallTerminating(PBoolean newValue=true)
Definition: callprocessor.h:575
IAX2CallProcessor::ProcessIaxCmdDpRep
void ProcessIaxCmdDpRep(IAX2FullFrameProtocol *src)
IAX2CallProcessor::ReportStatistics
void ReportStatistics()
IAX2CallProcessor::callRegistered
Definition: callprocessor.h:535
IAX2CallProcessor::CheckForHangupMessages
void CheckForHangupMessages()
IAX2CallProcessor::callTerminating
Definition: callprocessor.h:540
IAX2CallProcessor::RemoteSelectedCodecOk
PBoolean RemoteSelectedCodecOk()
IAX2CallProcessor::callAccepted
Definition: callprocessor.h:537
IAX2CallProcessor::userName
PString userName
Definition: callprocessor.h:693
IAX2FullFrameProtocol
Definition: frame.h:885
IAX2CallProcessor::doTransfer
PBoolean doTransfer
Definition: callprocessor.h:704
IAX2CallProcessor::ProcessIaxCmdTxrel
void ProcessIaxCmdTxrel(IAX2FullFrameProtocol *src)
frame.h
IAX2CallProcessor::audioFramesSent
PAtomicInteger audioFramesSent
Definition: callprocessor.h:464
SafeStrings
Definition: safestrings.h:53
IAX2CallProcessor::CheckForRemoteCapabilities
void CheckForRemoteCapabilities(IAX2FullFrameProtocol *src)
IAX2CallProcessor::SetCallSentRinging
void SetCallSentRinging(PBoolean newValue=true)
Definition: callprocessor.h:547
IAX2FullFrameCng
Definition: frame.h:1137
IAX2CallProcessor::soundWaitingForTransmission
IAX2SoundList soundWaitingForTransmission
Definition: callprocessor.h:504
IAX2CallProcessor::con
IAX2Connection * con
Definition: callprocessor.h:213
IAX2FullFrameText
Definition: frame.h:1045
iedata.h
IAX2CallProcessor::SetUpConnection
virtual PBoolean SetUpConnection()
IAX2CallProcessor::ProcessIaxCmdTxcnt
void ProcessIaxCmdTxcnt(IAX2FullFrameProtocol *src)
IAX2CallProcessor::callingName
PString callingName
Definition: callprocessor.h:677
IAX2CallProcessor::ProcessIaxCmdDial
void ProcessIaxCmdDial(IAX2FullFrameProtocol *src)
IAX2CallProcessor::ProcessIaxCmdNew
void ProcessIaxCmdNew(IAX2FullFrameProtocol *src)
IAX2CallProcessor::ProcessIaxCmdReject
void ProcessIaxCmdReject(IAX2FullFrameProtocol *src)
IAX2CallProcessor::videoFramesSent
PAtomicInteger videoFramesSent
Definition: callprocessor.h:470
IAX2Encryption
Definition: remote.h:345
IAX2CallProcessor::BufferToBig
Everything is functioning ok.
Definition: callprocessor.h:514
IAX2CallProcessor::statusCheckTimer
PTimer statusCheckTimer
Definition: callprocessor.h:650
IAX2Remote::SourceCallNumber
PINDEX SourceCallNumber()
Definition: remote.h:77
IAX2CallProcessor::SetCallRegistered
void SetCallRegistered(PBoolean newValue=true)
Definition: callprocessor.h:555
IAX2CallProcessor::ProcessIaxCmdMwi
void ProcessIaxCmdMwi(IAX2FullFrameProtocol *src)
IAX2FullFrameVideo
Definition: frame.h:748
IAX2CallProcessor::ProcessIaxCmdQuelch
void ProcessIaxCmdQuelch(IAX2FullFrameProtocol *src)
processor.h
IAX2CallProcessor::IsCallNewed
PBoolean IsCallNewed()
Definition: callprocessor.h:583
IAX2Processor
Definition: processor.h:136
IAX2CallProcessor::SendDtmf
void SendDtmf(const PString &dtmfs)
IAX2FullFrameImage
Definition: frame.h:1084
IAX2CallProcessor::SendQuelchMessage
void SendQuelchMessage()
IAX2CallProcessor::RemoteNodeHasAnswered
void RemoteNodeHasAnswered()
IAX2CallProcessor::ProcessIaxCmdPage
void ProcessIaxCmdPage(IAX2FullFrameProtocol *src)
IAX2SoundList
Definition: sound.h:65
IAX2CallProcessor::StartStatusCheckTimer
void StartStatusCheckTimer(PINDEX msToWait=10000)
IAX2CallProcessor::ClearCall
void ClearCall(OpalConnection::CallEndReason releaseReason=OpalConnection::EndedByLocalUser)
IAX2CallProcessor::DoStatusCheck
void DoStatusCheck()
OpalConnection::CallEndReason
Definition: connection.h:396
IAX2FullFrameDtmf
Definition: frame.h:609
IAX2CallProcessor::IsCallAuthorised
PBoolean IsCallAuthorised()
Definition: callprocessor.h:593
IAX2CallProcessor::lastFullFrameTimeStamp
PINDEX lastFullFrameTimeStamp
Definition: callprocessor.h:522
IAX2CallProcessor::selectedCodec
unsigned int selectedCodec
Definition: callprocessor.h:529
IAX2CallProcessor::AssignConnection
void AssignConnection(IAX2Connection *_con)
IAX2CallProcessor::IncAudioFramesRcvd
void IncAudioFramesRcvd()
Definition: callprocessor.h:311
IAX2Frame::GetRemoteInfo
IAX2Remote & GetRemoteInfo()
Definition: frame.h:115
IAX2CallProcessor::AnswerWasAcked
void AnswerWasAcked()
IAX2CallProcessor::ProcessLists
virtual void ProcessLists()
IAX2CallProcessor::callStatus
unsigned short callStatus
Definition: callprocessor.h:544
IAX2CallProcessor::ProcessNetworkFrame
void ProcessNetworkFrame(IAX2Frame *src)
IAX2CallProcessor::audioFrameDuration
PINDEX audioFrameDuration
Definition: callprocessor.h:654
IAX2CallProcessor::AcceptIncomingCall
void AcceptIncomingCall()
IAX2CallProcessor::ProcessIaxCmdAuthReq
void ProcessIaxCmdAuthReq(IAX2FullFrameProtocol *src)
IAX2CallProcessor::callList
SafeStrings callList
Definition: callprocessor.h:479
IAX2CallProcessor::audioFramesNotStarted
PBoolean audioFramesNotStarted
Definition: callprocessor.h:662
IAX2Processor::encryption
IAX2Encryption encryption
Definition: processor.h:253
IAX2CallProcessor::SetAlerting
virtual PBoolean SetAlerting(const PString &calleeName, PBoolean withMedia)
IAX2CallProcessor::audioFramesRcvd
PAtomicInteger audioFramesRcvd
Definition: callprocessor.h:467
IAX2CallProcessor::OnReleased
virtual void OnReleased()
IAX2CallProcessor::firstMediaFrame
PBoolean firstMediaFrame
Definition: callprocessor.h:637
remote.h
IAX2CallProcessor::suppressHangupFrame
PBoolean suppressHangupFrame
Definition: callprocessor.h:716
IAX2CallProcessor::IncomingMessageOutOfOrder
virtual PBoolean IncomingMessageOutOfOrder(IAX2FullFrame *ff)
IAX2CallProcessor::ProcessIaxCmdTxrej
void ProcessIaxCmdTxrej(IAX2FullFrameProtocol *src)
IAX2CallProcessor::Normal
We need more sound packets to come in.
Definition: callprocessor.h:513
IAX2CallProcessor::IsCallHappening
PBoolean IsCallHappening()
Definition: callprocessor.h:579
IAX2CallProcessor::ProcessIncomingAudioFrame
void ProcessIncomingAudioFrame(IAX2Frame *newFrame)
IAX2CallProcessor::ProcessIaxCmdTransfer
void ProcessIaxCmdTransfer(IAX2FullFrameProtocol *src)
IAX2CallProcessor::answerCallNow
PBoolean answerCallNow
Definition: callprocessor.h:641
IAX2CallProcessor::IsCallAnswered
PBoolean IsCallAnswered()
Definition: callprocessor.h:602
IAX2CallProcessor::CallStopSounds
void CallStopSounds()
IAX2CallProcessor::ProcessIaxCmdTxacc
void ProcessIaxCmdTxacc(IAX2FullFrameProtocol *src)
IAX2CallProcessor::callAuthorised
Definition: callprocessor.h:536
IAX2Frame
Definition: frame.h:75
IAX2CallProcessor::ProcessIaxCmdInval
void ProcessIaxCmdInval(IAX2FullFrameProtocol *src)
IAX2CallProcessor::callingDnid
PString callingDnid
Definition: callprocessor.h:684
IAX2CallProcessor::ProcessIncomingVideoFrame
void ProcessIncomingVideoFrame(IAX2Frame *newFrame)
IAX2CallProcessor::SetUserName
void SetUserName(PString &inUserName)
Definition: callprocessor.h:166
IAX2CallProcessor::IsCallRinging
PBoolean IsCallRinging()
Definition: callprocessor.h:599
safestrings.h
IAX2CallProcessor::SetCallRinging
void SetCallRinging(PBoolean newValue=true)
Definition: callprocessor.h:567
IAX2CallProcessor::PutSoundPacketToNetwork
void PutSoundPacketToNetwork(PBYTEArray *sund)
IAX2CallProcessor::transferMutex
PMutex transferMutex
Definition: callprocessor.h:701
IAX2CallProcessor::ProcessIaxCmdProvision
void ProcessIaxCmdProvision(IAX2FullFrameProtocol *src)
IAX2CallProcessor::GetEncryptionInfo
IAX2Encryption & GetEncryptionInfo()
Definition: callprocessor.h:77
IAX2CallProcessor::SendAnswerMessageToRemoteNode
void SendAnswerMessageToRemoteNode()
IAX2CallProcessor::IncVideoFramesRcvd
void IncVideoFramesRcvd()
Definition: callprocessor.h:317
IAX2CallProcessor::ProcessIaxCmdDpReq
void ProcessIaxCmdDpReq(IAX2FullFrameProtocol *src)
IAX2CallProcessor::IsCallSentRinging
PBoolean IsCallSentRinging()
Definition: callprocessor.h:587
IAX2CallProcessor::dtmfText
SafeString dtmfText
Definition: callprocessor.h:484
IAX2CallProcessor::SendHoldRelease
void SendHoldRelease()
IAX2CallProcessor::Matches
PBoolean Matches(IAX2Frame *frame)
Definition: callprocessor.h:108
IAX2CallProcessor::GetCallingName
PString GetCallingName() const
Definition: callprocessor.h:173
OpalConnection::EndedByLocalUser
Definition: connection.h:362
IAX2FullFrameSessionControl
Definition: frame.h:783
IAX2CallProcessor::dtmfNetworkList
SafeStrings dtmfNetworkList
Definition: callprocessor.h:491
IAX2CallProcessor::SetCallAccepted
void SetCallAccepted(PBoolean newValue=true)
Definition: callprocessor.h:563
IAX2CallProcessor::SendTransferMessage
void SendTransferMessage()
IAX2CallProcessor::BuildNewFrameForSending
IAX2FullFrameProtocol * BuildNewFrameForSending(IAX2FullFrameProtocol *inReplyTo=NULL)
IAX2CallProcessor::CallStatus
CallStatus
Definition: callprocessor.h:532
IAX2CallProcessor::~IAX2CallProcessor
virtual ~IAX2CallProcessor()
IAX2CallProcessor::ProcessIaxCmdCallToken
void ProcessIaxCmdCallToken(IAX2FullFrameProtocol *src)