Standardizing the parameters for messages.

git-svn-id: http://yate.null.ro/svn/yate/trunk@254 acf43c95-373e-0410-b603-e72c3f656dc1
This commit is contained in:
paulc 2005-03-09 09:45:35 +00:00
parent 19d358ca5f
commit 393a92fdb5
7 changed files with 40 additions and 10 deletions

View File

@ -274,7 +274,7 @@ class YateH323Connection : public H323Connection, public DataEndpoint
{
PCLASSINFO(YateH323Connection, H323Connection)
public:
YateH323Connection(YateH323EndPoint &endpoint, unsigned callReference, void *userdata);
YateH323Connection(YateH323EndPoint &endpoint, H323Transport *transport, unsigned callReference, void *userdata);
~YateH323Connection();
virtual H323Connection::AnswerCallResponse OnAnswerCall(const PString &caller,
const H323SignalPDU &signalPDU, H323SignalPDU &connectPDU);
@ -556,7 +556,7 @@ H323Connection *YateH323EndPoint::CreateConnection(unsigned callReference,
return 0;
}
}
return new YateH323Connection(*this,callReference,userData);
return new YateH323Connection(*this,transport,callReference,userData);
}
#ifdef USE_CAPABILITY_FACTORY
@ -711,7 +711,7 @@ bool YateH323EndPoint::Init(void)
}
YateH323Connection::YateH323Connection(YateH323EndPoint &endpoint,
unsigned callReference, void *userdata)
H323Transport *transport, unsigned callReference, void *userdata)
: H323Connection(endpoint,callReference), DataEndpoint("h323"),
m_nativeRtp(false), m_passtrough(false), m_rtpPort(0), m_remotePort(0)
{
@ -724,9 +724,12 @@ YateH323Connection::YateH323Connection(YateH323EndPoint &endpoint,
hplugin.calls().append(this)->setDelete(false);
s_calls.unlock();
Message* m = new Message("chan.startup");
m->addParam("driver","h323");
m->addParam("id",m_id);
m->addParam("direction",userdata ? "outgoing" : "incoming");
m->addParam("status","new");
if (transport)
m->addParam("address",transport->GetRemoteAddress());
Engine::enqueue(m);
DataEndpoint *dd = static_cast<DataEndpoint *>(userdata);
if (dd && connect(dd))

View File

@ -34,6 +34,7 @@
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/ip.h>
#include <arpa/inet.h>
#include <stdlib.h>
extern "C" {
@ -129,7 +130,7 @@ private:
class YateIAXConnection : public DataEndpoint
{
public:
YateIAXConnection(iax_session *session = 0);
YateIAXConnection(const char* addr, iax_session *session = 0);
~YateIAXConnection();
virtual void disconnected(bool final, const char *reason);
void abort(int type = 0);
@ -494,7 +495,9 @@ void YateIAXEndPoint::answer(iax_event *e)
{
if (!accepting(e))
return;
YateIAXConnection *conn = new YateIAXConnection(e->session);
String addr(::inet_ntoa(e->session->peeraddr.sin_addr));
addr << ":" << ntohs(e->session->peeraddr.sin_port);
YateIAXConnection *conn = new YateIAXConnection(addr,e->session);
if (!conn->startRouting(e))
conn->reject("Server error");
}
@ -639,8 +642,9 @@ void IAXMsgThread::cleanup()
delete m_msg;
}
YateIAXConnection::YateIAXConnection(iax_session *session)
: m_session(session), m_final(false), m_muted(false), m_ast_format(0), m_reason(0)
YateIAXConnection::YateIAXConnection(const char* addr, iax_session *session)
: address(addr), m_session(session), m_final(false), m_muted(false),
m_ast_format(0), m_reason(0)
{
Debug(DebugAll,"YateIAXConnection::YateIAXConnection() [%p]",this);
s_mutex.lock();
@ -660,7 +664,9 @@ YateIAXConnection::YateIAXConnection(iax_session *session)
s_mutex.unlock();
Message* m = new Message("chan.startup");
m->addParam("id",id);
m->addParam("driver","iax");
m->addParam("direction",m_status);
m->addParam("address",address);
m->addParam("status","new");
Engine::enqueue(m);
}
@ -751,6 +757,7 @@ void YateIAXConnection::handleEvent(iax_event *event)
Debug("IAX",DebugInfo,"TEXT inside a call: '%s' [%p]",(char *)event->data,this);
{
Message* m = new Message("chan.text");
m->addParam("driver","iax");
m->addParam("id",id);
m->addParam("text",(char *)event->data);
m->addParam("targetid",targetid.c_str());
@ -767,6 +774,7 @@ void YateIAXConnection::handleEvent(iax_event *event)
char buf[2];
buf[0] = event->subclass;
buf[1] = 0;
m->addParam("driver","iax");
m->addParam("id",id);
m->addParam("text",buf);
m->addParam("targetid",targetid.c_str());
@ -785,6 +793,7 @@ void YateIAXConnection::handleEvent(iax_event *event)
Debug("IAX",DebugInfo,"RING inside a call [%p]",this);
{
Message* m = new Message("call.ringing");
m->addParam("driver","iax");
m->addParam("id",id);
m->addParam("targetid",targetid.c_str());
Engine::enqueue(m);
@ -794,6 +803,7 @@ void YateIAXConnection::handleEvent(iax_event *event)
Debug("IAX",DebugInfo,"ANSWER inside a call [%p]",this);
{
Message* m = new Message("call.answered");
m->addParam("driver","iax");
m->addParam("id",id);
m->addParam("targetid",targetid.c_str());
Engine::enqueue(m);
@ -841,6 +851,7 @@ void YateIAXConnection::hangup(const char *reason)
s_mutex.unlock();
}
Message* m = new Message("chan.hangup");
m->addParam("driver","iax");
m->addParam("id",id);
m->addParam("status","hangup");
m->addParam("reason",reason);
@ -1061,6 +1072,7 @@ bool IAXConnHandler::received(Message &msg, int id)
Debug(DebugInfo,"Transferring connection '%s' [%p] to '%s'",
callid.c_str(),conn,callto.c_str());
Message m("call.execute");
m.addParam("driver","iax");
m.addParam("callto",callto.c_str());
m.addParam("id",conn->id);
m.userData(conn);
@ -1101,7 +1113,7 @@ bool IAXHandler::received(Message &msg)
return false;
}
String ip = dest.matchString(1);
YateIAXConnection *conn = new YateIAXConnection();
YateIAXConnection *conn = new YateIAXConnection(ip);
/* i do this to setup the peercallid by getting id
* from the other party */
conn->targetid = msg.getValue("id");

View File

@ -444,6 +444,7 @@ bool OssHandler::received(Message &msg)
if (direct)
{
Message m("call.execute");
m.addParam("driver","oss");
m.addParam("id",dest);
m.addParam("caller",dest);
m.addParam("callto",direct);
@ -465,6 +466,7 @@ bool OssHandler::received(Message &msg)
return false;
}
Message m("call.route");
m.addParam("driver","oss");
m.addParam("id",dest);
m.addParam("caller",dest);
m.addParam("called",targ);

View File

@ -294,6 +294,7 @@ bool ToneHandler::received(Message &msg)
return false;
}
Message m("call.route");
m.addParam("driver","tone");
m.addParam("id",dest);
m.addParam("caller",dest);
m.addParam("called",targ);

View File

@ -420,6 +420,7 @@ bool WaveHandler::received(Message &msg)
return false;
}
Message m("call.route");
m.addParam("driver","wave");
m.addParam("id",dest);
m.addParam("caller",dest);
m.addParam("called",targ);

View File

@ -734,8 +734,11 @@ YateSIPConnection::YateSIPConnection(Message& msg, SIPTransaction* tr)
m_rtpAddr.c_str(),m_rtpPort.c_str(),m_formats.c_str(),m_rtpFormat.c_str());
Message *ms = new Message("chan.startup");
ms->addParam("driver","sip");
ms->addParam("direction","incoming");
ms->addParam("id",m_id);
String addr(m_host);
addr << ":" << m_port;
ms->addParam("address",addr);
ms->addParam("direction","incoming");
Engine::enqueue(ms);
}
@ -768,8 +771,11 @@ YateSIPConnection::YateSIPConnection(Message& msg, const String& uri)
s_mutex.unlock();
Message *ms = new Message("chan.startup");
ms->addParam("driver","sip");
ms->addParam("direction","outgoing");
ms->addParam("id",m_id);
String addr(m_host);
addr << ":" << m_port;
ms->addParam("address",addr);
ms->addParam("direction","outgoing");
Engine::enqueue(ms);
}
@ -883,6 +889,7 @@ SDPBody* YateSIPConnection::createPasstroughSDP(Message &msg)
SDPBody* YateSIPConnection::createRtpSDP(SIPMessage* msg, const char* formats)
{
Message m("chan.rtp");
m.addParam("driver","sip");
m.addParam("id",id());
m.addParam("direction","bidir");
m.addParam("remoteip",msg->getParty()->getPartyAddr());
@ -903,6 +910,7 @@ SDPBody* YateSIPConnection::createRtpSDP(bool start)
return createSDP(m_rtpLocal,0,m_formats);
}
Message m("chan.rtp");
m.addParam("driver","sip");
m.addParam("id",id());
m.addParam("direction","bidir");
m.addParam("remoteip",m_rtpAddr);
@ -928,6 +936,7 @@ bool YateSIPConnection::startRtp()
return false;
Debug(DebugAll,"YateSIPConnection::startRtp() [%p]",this);
Message m("chan.rtp");
m.addParam("driver","sip");
m.addParam("id",id());
m.addParam("rtpid",m_rtpid);
m.addParam("direction","bidir");

View File

@ -1269,6 +1269,7 @@ bool ZapChan::call(Message &msg, const char *called)
m->addParam("id",id());
m->addParam("span",String(m_span->span()));
m->addParam("channel",String(m_chan));
m->addParam("address",String(m_span->span()) + "/" + String(m_chan));
m->addParam("direction","outgoing");
Engine::enqueue(m);
return true;
@ -1286,6 +1287,7 @@ void ZapChan::ring(q931_call *call)
m->addParam("id",id());
m->addParam("span",String(m_span->span()));
m->addParam("channel",String(m_chan));
m->addParam("address",String(m_span->span()) + "/" + String(m_chan));
m->addParam("direction","incoming");
Engine::enqueue(m);
}