Hi,
This scenario is related to out of band DTMF where INFO request is received with header "Content-Type" set to "application/dtmf-relay". My application code processes the the message and extracts the Signal & Duration from the Contents. Below is a snapshot of my application code:
SipMessage* sm is passed to my function as an argument after which following is done:
PlainContents *pc = (PlainContents*) sm->getContents();
// Decode and store DTMF info
static const string SIGNAL = "Signal=";
static const string SIGNAL_UPDATE = "Signal-Update=";
static const string DURATION = "Duration=";
string::size_type idx;
string body = pc->text().c_str();
string signal;
string value;
bool signalExists = false;
bool isSignalUpdate = false;
The "body" string is then used to find the Signal and Duration using some string manipulations.
My application was earlier using reSIP 1.6 and my code was working perfectly fine without any issues. However, after upgrading the stack to the latest version 1.9, my application cores at the following line:
string body = pc->text().c_str();
On further debugging, it is found that the core occurs while doing "pc->text().c_str()". The core occurs at the following line of function "const char* Data::c_str() const" in file rutil/Data.cxx:
mBuf[mSize] = 0;
Has something changed in the stack after 1.6 version that is causing the crash? Please help in providing the resolution here.
Thanks,