Idefisk
Tools
Tutorials
Reviews
VoIP Providers
Archives
AsteriskGuru Archives
Mailing List Archives
FAQ
Search
Memberlist
Usergroups
Register
Profile
Log in to check your private messages
Log in
[Asterisk-cvs] asterisk/channels/h323 ast_h323.cpp,1.23,1.24
AsteriskGuru Archives Forum Index
->
Asterisk-CVS
View previous topic
::
View next topic
Author
Message
jeremy at lists.digium.co
Guest
Posted: Sat Sep 06, 2003 8:27 pm
Post subject: [Asterisk-cvs] asterisk/channels/h323 ast_h323.cpp,1.23,1.24
Update of /usr/cvsroot/asterisk/channels/h323
In directory mongoose.digium.com:/tmp/cvs-serv20407
Modified Files:
ast_h323.cpp ast_h323.h chan_h323.h
Log Message:
implement transfer and call forwarding. Bug #221
Index: ast_h323.cpp
===================================================================
RCS file: /usr/cvsroot/asterisk/channels/h323/ast_h323.cpp,v
retrieving revision 1.23
retrieving revision 1.24
diff -C2 -d -r1.23 -r1.24
*** ast_h323.cpp 25 Aug 2003 18:34:10 -0000 1.23
--- ast_h323.cpp 6 Sep 2003 20:28:51 -0000 1.24
***************
*** 269,272 ****
--- 269,290 ----
H323EndPoint::OnClosedLogicalChannel(connection, channel);
}
+
+ BOOL MyH323EndPoint::OnConnectionForwarded(H323Connection & connection,
+ const PString & forwardParty,
+ const H323SignalPDU & pdu)
+ {
+ if (h323debug)
+ cout << " -- Call Forwarded to " << forwardParty << endl;
+ return FALSE;
+ }
+
+ BOOL MyH323EndPoint::ForwardConnection(H323Connection & connection,
+ const PString & forwardParty,
+ const H323SignalPDU & pdu)
+ {
+ if (h323debug)
+ cout << " -- Forwarding call to " << forwardParty << endl;
+ return H323EndPoint::ForwardConnection(connection, forwardParty, pdu);
+ }
void MyH323EndPoint::OnConnectionEstablished(H323Connection & connection, const PString & estCallToken)
***************
*** 389,393 ****
return new MyH323Connection(*this, callReference, options);
}
!
/* MyH323Connection */
--- 407,453 ----
return new MyH323Connection(*this, callReference, options);
}
!
! H323Connection * MyH323EndPoint::SetupTransfer(const PString & token,
! const PString & callIdentity,
! const PString & remoteParty,
! PString & newToken,
! void * userData)
! {
! PString alias;
! H323TransportAddress address;
!
! H323Connection * connection;
!
! if (h323debug) {
! cout << " -- Setup transfer of " << callIdentity << ":" << endl;
! cout << " -- Call from " << token << endl;
! cout << " -- Remote Party " << remoteParty << endl;
! }
!
! connection = FindConnectionWithLock(token);
!
! if (connection != NULL) {
! unsigned int old_call_reference = connection->GetCallReference();
!
! if (h323debug)
! cout << " -- Old call reference " << old_call_reference << endl;
! connection->Unlock();
!
! if (on_transfer_call(old_call_reference, remoteParty)) {
! if (h323debug)
! cout << " -- Transfer succeded " << endl;
! if (connection->ClearCall(H323Connection::EndedByCallForwarded))
! return NULL;
! return NULL;
! }
! }
! if (h323debug)
! cout << " -- Transfer failed " << endl;
!
! if (connection != NULL) {
! return connection;
! }
! return NULL;
! }
/* MyH323Connection */
***************
*** 735,748 ****
/** Installs the callback functions on behalf of the PBX application */
! void h323_callback_register(setup_incoming_cb ifunc,
! setup_outbound_cb sfunc,
! on_connection_cb confunc,
! start_logchan_cb lfunc,
! clear_con_cb clfunc,
! con_established_cb efunc,
! send_digit_cb dfunc)
{
on_incoming_call = ifunc;
on_outgoing_call = sfunc;
on_create_connection = confunc;
on_start_logical_channel = lfunc;
--- 795,810 ----
/** Installs the callback functions on behalf of the PBX application */
! void h323_callback_register(setup_incoming_cb ifunc,
! setup_outbound_cb sfunc,
! setup_transfer_cb tfunc,
! on_connection_cb confunc,
! start_logchan_cb lfunc,
! clear_con_cb clfunc,
! con_established_cb efunc,
! send_digit_cb dfunc)
{
on_incoming_call = ifunc;
on_outgoing_call = sfunc;
+ on_transfer_call = tfunc;
on_create_connection = confunc;
on_start_logical_channel = lfunc;
***************
*** 751,755 ****
on_send_digit = dfunc;
}
!
/**
* Add capability to the capability table of the end point.
--- 813,817 ----
on_send_digit = dfunc;
}
!
/**
* Add capability to the capability table of the end point.
Index: ast_h323.h
===================================================================
RCS file: /usr/cvsroot/asterisk/channels/h323/ast_h323.h,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** ast_h323.h 25 Aug 2003 18:34:10 -0000 1.9
--- ast_h323.h 6 Sep 2003 20:28:51 -0000 1.10
***************
*** 112,117 ****
--- 112,121 ----
void OnConnectionCleared(H323Connection &, const PString &);
H323Connection * CreateConnection(unsigned, void *);
+ H323Connection * SetupTransfer(const PString &, const PString &, const PString &, PString &, void *);
void SendUserTone(const PString &, char);
H323Capabilities GetCapabilities(void);
+ BOOL OnConnectionForwarded(H323Connection &, const PString &, const H323SignalPDU &);
+
+ BOOL ForwardConnection(H323Connection &, const PString &, const H323SignalPDU &);
PStringArray SupportedPrefixes;
***************
*** 133,145 ****
H323Channel * CreateRealTimeLogicalChannel(const H323Capability &, H323Channel::Directions, unsigned,
const H245_H2250LogicalChannelParameters *);
! H323Connection::AnswerCallResponse OnAnswerCall(const PString &, const H323SignalPDU &, H323SignalPDU &);
BOOL OnAlerting(const H323SignalPDU &, const PString &);
BOOL OnSendReleaseComplete(H323SignalPDU &);
BOOL OnReceivedSignalSetup(const H323SignalPDU &);
- void OnReceivedReleaseComplete(const H323SignalPDU &);
BOOL OnReceivedFacility(const H323SignalPDU &);
BOOL OnSendSignalSetup(H323SignalPDU &);
BOOL OnStartLogicalChannel(H323Channel &);
! BOOL OnClosingLogicalChannel(H323Channel &);
void SendUserInputTone(char, unsigned);
void OnUserInputTone(char, unsigned, unsigned, unsigned);
--- 137,149 ----
H323Channel * CreateRealTimeLogicalChannel(const H323Capability &, H323Channel::Directions, unsigned,
const H245_H2250LogicalChannelParameters *);
! H323Connection::AnswerCallResponse OnAnswerCall(const PString &, const H323SignalPDU &, H323SignalPDU &);
! void OnReceivedReleaseComplete(const H323SignalPDU &);
BOOL OnAlerting(const H323SignalPDU &, const PString &);
BOOL OnSendReleaseComplete(H323SignalPDU &);
BOOL OnReceivedSignalSetup(const H323SignalPDU &);
BOOL OnReceivedFacility(const H323SignalPDU &);
BOOL OnSendSignalSetup(H323SignalPDU &);
BOOL OnStartLogicalChannel(H323Channel &);
! BOOL OnClosingLogicalChannel(H323Channel &);
void SendUserInputTone(char, unsigned);
void OnUserInputTone(char, unsigned, unsigned, unsigned);
Index: chan_h323.h
===================================================================
RCS file: /usr/cvsroot/asterisk/channels/h323/chan_h323.h,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** chan_h323.h 25 Aug 2003 18:34:10 -0000 1.9
--- chan_h323.h 6 Sep 2003 20:28:51 -0000 1.10
***************
*** 131,134 ****
--- 131,139 ----
typedef int (*setup_outbound_cb)(call_details_t);
setup_outbound_cb on_outgoing_call;
+
+ /* This is a callback prototype function, called upon
+ a transfer. */
+ typedef int (*setup_transfer_cb)(unsigned int, const char *);
+ setup_transfer_cb on_transfer_call;
/* This is a callback prototype function, called when the openh323
***************
*** 165,169 ****
/* callback function handler*/
! void h323_callback_register(setup_incoming_cb, setup_outbound_cb, on_connection_cb, start_logchan_cb, clear_con_cb, con_established_cb, send_digit_cb);
int h323_set_capability(int, int);
--- 170,182 ----
/* callback function handler*/
! void h323_callback_register(setup_incoming_cb,
! setup_outbound_cb,
! setup_transfer_cb,
! on_connection_cb,
! start_logchan_cb,
! clear_con_cb,
! con_established_cb,
! send_digit_cb);
!
int h323_set_capability(int, int);
Back to top
Display posts from previous:
All Posts
1 Day
7 Days
2 Weeks
1 Month
3 Months
6 Months
1 Year
Oldest First
Newest First
AsteriskGuru Archives Forum Index
->
Asterisk-CVS
All times are GMT
Page
1
of
1
Jump to:
Select a forum
Asterisk Mailing Lists
----------------
Asterisk-Users
Asterisk-Dev
Asterisk-CVS
Asterisk-Biz
Asterisk-Doc
Asterisk-BSD
Asterisk-Announce
Asterisk Call Centers
Asterisk-Video
Asterisk-Speech-Rec
Bristuff-Users
You
cannot
post new topics in this forum
You
cannot
reply to topics in this forum
You
cannot
edit your posts in this forum
You
cannot
delete your posts in this forum
You
cannot
vote in polls in this forum
Powered by
phpBB
© 2001, 2005 phpBB Group