diff --git a/core/AmB2ABSession.cpp b/core/AmB2ABSession.cpp index 79695a69..65917669 100644 --- a/core/AmB2ABSession.cpp +++ b/core/AmB2ABSession.cpp @@ -182,14 +182,16 @@ void AmB2ABCallerSession::onB2ABEvent(B2ABEvent* ev) void AmB2ABCallerSession::connectCallee(const string& remote_party, const string& remote_uri, const string& local_party, - const string& local_uri) + const string& local_uri, + const string& headers) { if(callee_status != None) terminateOtherLeg(); B2ABConnectLegEvent* ev = new B2ABConnectLegEvent(remote_party,remote_uri, local_party,local_uri, - getLocalTag()); + getLocalTag(), + headers); relayEvent(ev); callee_status = NoReply; @@ -257,7 +259,7 @@ void AmB2ABCalleeSession::onB2ABEvent(B2ABEvent* ev) setCallgroup(co_ev->callgroup); setNegotiateOnReply(true); - if (sendInvite()) { + if (sendInvite(co_ev->headers)) { throw string("INVITE could not be sent\n"); } return; diff --git a/core/AmB2ABSession.h b/core/AmB2ABSession.h index ed171f88..c0d49e2b 100644 --- a/core/AmB2ABSession.h +++ b/core/AmB2ABSession.h @@ -82,18 +82,21 @@ struct B2ABConnectLegEvent: public B2ABEvent string local_party; string local_uri; string callgroup; + string headers; B2ABConnectLegEvent(const string& remote_party, const string& remote_uri, const string& local_party, const string& local_uri, - const string& callgroup) + const string& callgroup, + const string& headers) : B2ABEvent(B2ABConnectLeg), - remote_party(remote_party), - remote_uri(remote_uri), - local_party(local_party), - local_uri(local_uri), - callgroup(callgroup) + remote_party(remote_party), + remote_uri(remote_uri), + local_party(local_party), + local_uri(local_uri), + callgroup(callgroup), + headers(headers) {} }; @@ -214,7 +217,8 @@ class AmB2ABCallerSession: public AmB2ABSession void connectCallee(const string& remote_party, const string& remote_uri, const string& local_party, - const string& local_uri); + const string& local_uri, + const string& headers=""); // @see AmB2ABSession void terminateOtherLeg();